commit 3c808c3ad7c321d07ea21759b2ea533e860fd448 Author: behnaz arzani Date: Tue Sep 8 15:58:14 2020 -0700 working on pushing to mS branch diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..449da99 --- /dev/null +++ b/.gitignore @@ -0,0 +1,123 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +throughputExp/*.txt +graphFiles/graphs/ +graphFiles/averageGraphs/ +mnat-flowrstbug/ +datafiles/ +notebook/*.csv +nodes/ +nodes_new/ +*.py[cod] +*$py.class +.DS_Store +*.pyc +parsetab.py +parser.out +# C extensions +*.so +verification/.idea/* +Simple/ +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ + +#verifier +/.metadata/ +.settings/ +.classpath +.project +dependency-reduced-pom.xml + diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..a5e53f1 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,9 @@ +[submodule "generateSFA/symbolicautomata"] + path = generateSFA/symbolicautomata + url = https://github.com/vinlnx/symbolicautomata.git +[submodule "generateSFA/z3"] + path = generateSFA/z3 + url = https://github.com/Z3Prover/z3.git +[submodule "cppkafka"] + path = cppkafka + url = https://github.com/mfontanini/cppkafka diff --git a/C++Verifier/Makefile b/C++Verifier/Makefile new file mode 100644 index 0000000..c007071 --- /dev/null +++ b/C++Verifier/Makefile @@ -0,0 +1,40 @@ +TARGET_EXEC ?= main.out + +BUILD_DIR ?= ./build +SRC_DIRS ?= ./src + +CXX = clang++-10 +SRCS := $(shell find $(SRC_DIRS) -name *.cpp) +OBJS := $(SRCS:%=$(BUILD_DIR)/%.o) +DEPS := $(OBJS:.o=.d) + +BASE_FLAGS = -g -std=c++17 -Wall + +ANTLRFLAGS = -I$(HOME)/antl4cpp/runtime/src/ -L~/antl4cpp/dist/ -l antlr4-runtime + +#KAFKA FLAGS +KAFKAFLAGS = -I/usr/local/include/cppkafka/ -L/usr/local/lib/ -l cppkafka -lrdkafka++ + +# SPECIFIY LINK OPTIONS +LINKFLAGS = -lboost_program_options + + +FLAGS = $(BASE_FLAGS) $(LINKFLAGS) + + +$(BUILD_DIR)/$(TARGET_EXEC): $(OBJS) + $(CXX) $(FLAGS) $(OBJS) -o $@ $(ANTLRFLAGS) $(KAFKAFLAGS) -lstdc++fs + +# c++ source +$(BUILD_DIR)/%.cpp.o: %.cpp + $(MKDIR_P) $(dir $@) + $(CXX) $(FLAGS) -c $< -o $@ $(ANTLRFLAGS) + +.PHONY: clean + +clean: + $(RM) -r $(BUILD_DIR) + +-include $(DEPS) + +MKDIR_P ?= mkdir -p diff --git a/C++Verifier/setup.sh b/C++Verifier/setup.sh new file mode 100644 index 0000000..ad0e70f --- /dev/null +++ b/C++Verifier/setup.sh @@ -0,0 +1,45 @@ + +sudo apt-get update +# sudo apt-get upgrade +sudo apt install -y libboost-all-dev +sudo apt install -y unzip +sudo apt install -y cmake +sudo apt install -y uuid-dev +sudo apt install -y clang++-10 + +cd + +wget https://www.antlr.org/download/antlr-4.8-complete.jar +wget https://www.antlr.org/download/antlr4-cpp-runtime-4.8-source.zip + +mkdir antl4cpp + +unzip antlr4-cpp-runtime-4.8-source.zip -d antl4cpp + +cd antl4cpp +mkdir build +mkdir run + +cd build + +cmake .. +DESTDIR=../run make install + +cd ../run/usr/local/include +sudo cp -r antlr4-runtime /usr/local/include +cd ../lib +sudo cp * /usr/local/lib +sudo ldconfig + +cd + +git clone https://github.com/mfontanini/cppkafka.git +sudo apt install -y librdkafka-dev +cd cppkafka +mkdir build +cd build +cmake .. +make +sudo make install +sudo ldconfig + diff --git a/C++Verifier/src/DSFA/ConstraintTreeNode.cpp b/C++Verifier/src/DSFA/ConstraintTreeNode.cpp new file mode 100644 index 0000000..ebe4d99 --- /dev/null +++ b/C++Verifier/src/DSFA/ConstraintTreeNode.cpp @@ -0,0 +1,90 @@ +#ifndef CONSTRAINTTREE_H +#define CONSTRAINTTREE_H +#include +#include +#include + +using namespace std; + +class ConstraintTreeNode { + private: + shared_ptr parent; + + shared_ptr cloneExact() { + shared_ptr newNode(new ConstraintTreeNode(constraint)); + newNode -> currentState = currentState; + // newNode -> lastTime = lastTime; + + for (shared_ptr child : children) { + adopt(newNode, child -> cloneExact()); + } + + return newNode; + } + public: + std::vector> children; + int currentState; + string constraint; + // long lastTime; + ConstraintTreeNode(string _constraint) { + constraint = _constraint; + children = vector>(); + currentState = -1; + // lastTime = -1; + } + + int getCurrentState() { + return currentState; + } + + string printTree(int depth) { + string result = "currentState: " + to_string(currentState); + // result += "lastTime: " + to_string(lastTime); + result += " constraint: " + constraint; + result += " depth: " + to_string(depth); + result += " ==> children: \n" ; + for (shared_ptr child : children) { + result += string(depth, '\n') + child -> printTree(depth + 1); + } + return result; + } + + static shared_ptr makeFreshTree(int startState, std::vector locationList, std::vector variableList) { + + shared_ptr root (new ConstraintTreeNode("")); + + shared_ptr current = root; + + for (int i = 1; i < locationList.size() + variableList.size(); ++i) { + shared_ptr next(new ConstraintTreeNode("")); + adopt(current, next); + current = next; + } + current -> currentState = startState; + // current -> lastTime = 0; + return root; + } + + shared_ptr clone(string newConstraint) { + shared_ptr newNode(new ConstraintTreeNode("")); + adopt(parent, newNode); + newNode -> currentState = currentState; + // newNode -> lastTime = lastTime; + + for (shared_ptr child : children) { + adopt(newNode, child -> cloneExact()); + } + return newNode; + } + + protected: + static void adopt(shared_ptr parent, shared_ptr child) { + if (parent != nullptr) { + parent -> children.push_back(child); + } + child -> parent = parent; + } + +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/DSFA/DSFA.cpp b/C++Verifier/src/DSFA/DSFA.cpp new file mode 100644 index 0000000..137086e --- /dev/null +++ b/C++Verifier/src/DSFA/DSFA.cpp @@ -0,0 +1,216 @@ +#include "DSFA.h" +#include "../utils/utils.cpp" + +bool DSFA::advanceConstraintTreeAndCheckSuppress(shared_ptr p, vector constraints, + vector> rootConstraints) { + bool suppressible = true; + for (int i = 0; i < rootConstraints.size(); ++i) { + suppressible &= traverseConstraintTreeAndCheckSuppress(p, rootConstraints[i], + constraints, 0, rootConstraints); + } + + merge(rootConstraints); + + return suppressible; +} + +pair DSFA::advanceAndCheckSuppress(shared_ptr p, int currentState) { + cout << "currentStateA: " << currentState << endl; + for (auto move : transitions.at(currentState)) { + if (simplifyEvaluate(move.condition, p)) { + return make_pair(move.to, move.suppress); + } + } + throw std::runtime_error("Did not find a valid move for state"); + // return make_pair(0,true); +} + +bool DSFA::hasVariables() { + return variables; +} + +string DSFA::mergeRecursive(shared_ptr current) { + if (current -> children.empty()) { + return to_string(current -> currentState); + } + + std::vector subtreeStrings; + for (shared_ptr child : current -> children) { + subtreeStrings.push_back(mergeRecursive(child)); + } + + for (int i = subtreeStrings.size() - 1; i > 0; --i) { + int freq = count(subtreeStrings.begin(), subtreeStrings.end(), subtreeStrings[i]); + if (freq > 1) { + current ->children.erase(current -> children.begin() + i); + subtreeStrings.erase(subtreeStrings.begin() + i); + } + } + + string ret = ""; + for (int i = 0; i < current -> children.size(); i++) { + ret += "("; + ret += current -> children[i] -> constraint; + ret += " "; + ret += subtreeStrings[i]; + ret += ")"; + } + + return ret; +} + +void DSFA::merge(vector>rootConstraints) { + vector subtreeStrings; + for (shared_ptr roots : rootConstraints) { + subtreeStrings.push_back(mergeRecursive(roots)); + } + + // Deduplicate + for (int i = subtreeStrings.size() - 1; i > 0; --i) { + int freq = count(subtreeStrings.begin(), subtreeStrings.end(), subtreeStrings[i]); + if (freq > 1) { + rootConstraints.erase(rootConstraints.begin() + i); + subtreeStrings.erase(subtreeStrings.begin() + i); + } + } + + for (int i = rootConstraints.size() - 1; i >= 0; --i) { + if (rootConstraints[i] -> currentState == startState) { + rootConstraints.erase(rootConstraints.begin() + i); + } + } +} + +int DSFA::advance(shared_ptr p, int currentState) { + // for (unique_ptr &move : transitions[currentState]) { + cout << "currentStateB: " << currentState << endl; + for (auto move : transitions.at(currentState)) { + if (simplifyEvaluate(move.condition, p)) { + cout << "Moving from: " << currentState << endl; + cout << "Moving to: " << move.to << endl; + return move.to; + } + } + throw std::runtime_error("Did not find a valid move for state"); + // return 0; +} + +bool DSFA::advanceConstraintTreeAndCheckFinal(shared_ptr p, vector constraints, + vector>rootConstraints) { + bool inFinal = false; + + for (int i = 0; i < rootConstraints.size(); ++i) { + + inFinal |= traverseConstraintTreeAndCheckFinal(p, rootConstraints[i], constraints, + 0, rootConstraints); + } + merge(rootConstraints); + + return inFinal; +} + + +bool DSFA::traverseConstraintTreeAndCheckSuppress(shared_ptr p, shared_ptr node, vector constraints, int index, + vector>rootConstraints) { + // DFS through the constraint tree, assembling the constraints as we go + constraints[index] = node -> constraint; + + // When we get to a leaf, advance it + if (node -> children.empty()) { + // Traverse through every possible move. May split. + // cout << "currentStateC: " << node->currentState << endl; + for (auto move : transitions.at(node -> currentState)) { + // for (unique_ptr &move : transitions[node -> currentState]) { + if (move.condition -> evaluate(p, constraints, locationList, variableList, + node -> currentState, rootConstraints)) { + // cout << "Moving from: " << node -> currentState << endl; + // cout << "Moving to: " << move.to << endl; + + node -> currentState = move.to; + // node -> lastTime = p -> getTime(); + return move.suppress; + } + } + throw std::runtime_error("Did not find a valid move for state"); + } + + // Otherwise, just DFS + // Use counter iteration so that we catch new children + bool suppressible = true; + for (int i = 0; i < node -> children.size(); ++i) { + suppressible &= traverseConstraintTreeAndCheckSuppress(p, node -> children[i], + constraints, index + 1, rootConstraints); + } + + return suppressible; +} + +bool DSFA::traverseConstraintTreeAndCheckFinal(shared_ptr p, shared_ptr node, vector constraints, int index, + vector>rootConstraints) { + + constraints[index] = node -> constraint; + if (node -> children.empty()) { + // Traverse through every possible move. May split. + // for (unique_ptr &move : transitions[node -> currentState]) { + // cout << "currentStateD: " << node -> currentState << endl; + for (auto move : transitions.at(node -> currentState)) { + if (move.condition -> evaluate(p, constraints, locationList, variableList, + node -> currentState, rootConstraints)) { + // cout << "Moving from: " << node -> currentState << endl; + // cout << "Moving to: " << move.to << endl; + node -> currentState = move.to; + // node -> lastTime = p -> getTime(); + return checkInFinal(node -> currentState); + } + } + // TODO : Throw error + } + bool inFinal = false; + for (int i = 0; i < node -> children.size(); ++i) { + inFinal |= traverseConstraintTreeAndCheckFinal(p, node -> children[i], constraints, + index + 1, rootConstraints); + } + + return inFinal; +} + + +shared_ptr DSFA::find(vector> constraintList, string val) { + for (shared_ptr c : constraintList) { + if (c -> constraint == val) { + return c; + } + } + + return nullptr; +} + +bool DSFA::checkInFinal(int currentState) { + return contains(finalStates, currentState); +} + +bool DSFA::splitIfNew(vector currentConstraints, int newIndex, + string newConstraint, int currentState, vector> rootConstraints) { + string searchVal = newIndex == 0 ? newConstraint : currentConstraints[0]; + shared_ptr current = find(rootConstraints, searchVal); + if (current == nullptr) { + // duplicate the entire subtree + rootConstraints.push_back(rootConstraints[0] -> clone(newConstraint)); + return true; + } + + for (int i = 1; i < currentConstraints.size(); ++i) { + // iterate through each level of the constraint tree and determine if it exists + searchVal = newIndex == i ? newConstraint : currentConstraints[i]; + shared_ptr next = find(current -> children, searchVal); + if (next == nullptr) { + // duplicate the entire subtree + current -> children[0] -> clone(newConstraint); + return true; + } + current = next; + } + + return false; +} + diff --git a/C++Verifier/src/DSFA/DSFA.h b/C++Verifier/src/DSFA/DSFA.h new file mode 100644 index 0000000..57fb8a1 --- /dev/null +++ b/C++Verifier/src/DSFA/DSFA.h @@ -0,0 +1,54 @@ +#ifndef DSFA_H +#define DSFA_H + +#include "DSFAMove.cpp" +#include + +using namespace std; + +class DSFA { + bool variables; + + unordered_map> transitions; + // stateId -> {EventIndex -> nextStateId} + + // int name; + public: + int startState; + vector finalStates; + + vector locationList; + vector variableList; + + DSFA(int _startState, vector _finalStates, unordered_map> & _transitions, vector _locationList, vector _variableList) { + startState = _startState; + finalStates = move(_finalStates); + transitions = move(_transitions); + locationList = move(_locationList); + variableList = move(_variableList); + + variables = (variableList.size() > 0) ? true : false; + // cout << "variables is set to: " << variables << endl; + // name = rand() % 100; + } + // string getKey(); + bool hasVariables(); + string mergeRecursive(shared_ptr current); + void merge(vector> rootConstraints); + pair advanceAndCheckSuppress(shared_ptr p, int currentState); + int advance(shared_ptr p, int currentState); + bool advanceConstraintTreeAndCheckSuppress(shared_ptr p, vector constraints, + vector> rootConstraints); + bool advanceConstraintTreeAndCheckFinal(shared_ptr p, vector constraints, + vector> rootConstraints); + bool traverseConstraintTreeAndCheckSuppress(shared_ptr p, shared_ptr node, + vector constraints, int index, vector> rootConstraints); + bool traverseConstraintTreeAndCheckFinal(shared_ptr p, shared_ptr node, + vector constraints, int index, vector> rootConstraints); + bool checkInFinal(int currentState); + static bool splitIfNew(vector currentConstraints, int newIndex, + string newConstraint, int currentState, vector> rootConstraints); + static shared_ptr find(vector> constraintList, string val); +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/DSFA/DSFAMove.cpp b/C++Verifier/src/DSFA/DSFAMove.cpp new file mode 100644 index 0000000..e1935e5 --- /dev/null +++ b/C++Verifier/src/DSFA/DSFAMove.cpp @@ -0,0 +1,63 @@ +#ifndef DSFAMOVE_H +#define DSFAMOVE_H + +#include "../expressions/BoolExpr.cpp" +#include "../utils/utils.cpp" + +using namespace std; + +class DSFAMove { + bool toFinal; + + std::vector locationReferences; + unordered_map variableComparisons; + + public: + shared_ptr condition; + int to; + bool suppress; + // DSFAMove() {} + DSFAMove(shared_ptr _condition, bool _suppress, int _to, bool _toFinal, + std::vector _locationReferences, unordered_map _variableComparisons) { + condition = move(_condition); + suppress = _suppress; + to = _to; + toFinal = _toFinal; + locationReferences = move(_locationReferences); + variableComparisons = move(_variableComparisons); + } + friend ostream& operator<< (ostream& out, const DSFAMove& obj); +}; + +inline ostream& operator<< (ostream& out, const DSFAMove& obj) { + string output = "Condition: " + obj.condition -> toString() + "\n"; + output += "To: " + to_string(obj.to) + + "\n"; + + output += "To Final: "; + if (obj.toFinal) { + output += "True\n"; + } else { + output += "False\n"; + } + + output += "suppress: "; + if (obj.suppress) { + output += "True\n"; + } else { + output += "False\n"; + } + + output += "locationReferences: " + joinVectorString(obj.locationReferences, ",") + + "\n"; + output += "variableComparisons: "; + for (auto x : obj.variableComparisons) + output += x.first + " " + x.second + ","; + + output += "\n"; + + out << output << endl; + return out; +} + +#endif \ No newline at end of file diff --git a/C++Verifier/src/DSFA/Invariant.cpp b/C++Verifier/src/DSFA/Invariant.cpp new file mode 100644 index 0000000..d127de2 --- /dev/null +++ b/C++Verifier/src/DSFA/Invariant.cpp @@ -0,0 +1,48 @@ +#ifndef INVARIANT_H +#define INVARIANT_H + +#include "SFAParser.cpp" + +using namespace std;; + +class Invariant { + public: + shared_ptr negatedLocExpr; + shared_ptr filter; + std::vector groupByFields; + std::vector dsfas; + string name; + + Invariant(std::vector filenames) { + dsfas = std::vector(); + for (string filename : filenames) { + // cout << "Pushing back: " << filename << endl; + if (endsWith(filename,".sm.g")) { + name = getNameWOExt(filename); + parseGlobalStateMachine(negatedLocExpr, filter, groupByFields, filename); + } else { + // cout << "Pushing back: " << filename << endl; + dsfas.push_back(std::move(*parseLocalStateMachine(filename))); + } + } + // Add node as groupby + } + + std::string getKeyString(shared_ptr p) { + string output = ""; + for (string key : groupByFields) { + output += p -> get(key) + ","; + } + // cout << "returning key: " << output << endl; + return output; + } + + friend ostream& operator<< (ostream& out, const Invariant& obj); +}; + +inline ostream& operator<< (ostream& out, const Invariant& obj) { + out << obj.name << endl; + return out; +} + +#endif \ No newline at end of file diff --git a/C++Verifier/src/DSFA/SFAParser.cpp b/C++Verifier/src/DSFA/SFAParser.cpp new file mode 100644 index 0000000..44fbf93 --- /dev/null +++ b/C++Verifier/src/DSFA/SFAParser.cpp @@ -0,0 +1,168 @@ +#ifndef SFAPARSER_H +#define SFAPARSER_H + +#include +#include "../antlr4/SimpleSMTLIBLexer.h" + +#include "DSFA.h" +#include "../expressions/ExprBuilder.h" + +using namespace std; + +inline void parseGlobalStateMachine(std::shared_ptr & negatedLocExpr, std::shared_ptr & filter, std::vector & groupByFields, std::string filename) { + // cout << "In parseGlobalStateMachine" << endl; + + std::ifstream infile(filename); + + // cout << "reading file: " << filename << endl; + + std::string line; + + SimpleSMTLIBLexer *lexer; + antlr4::CommonTokenStream *tokens; + SimpleSMTLIBParser *parser; + SimpleSMTLIBParser::StartBoolContext *tree; + + // Line 1: Negative location filter + std::getline(infile, line); + antlr4::ANTLRInputStream * stream = new antlr4::ANTLRInputStream(line); + + lexer = new SimpleSMTLIBLexer(stream); + tokens = new antlr4::CommonTokenStream(lexer); + parser = new SimpleSMTLIBParser(tokens); + tree = parser -> startBool(); + negatedLocExpr = ExprBuilder::buildBoolExpr(tree, NULL, NULL); + + // Line 2: initial state. Skip for local + std::getline(infile, line); + + // Line 3: final state(s). Skip for local + std::getline(infile, line); + + + // Line 4: filter + std::getline(infile, line); + if (line.empty()) { + filter = nullptr; + } else { + delete lexer; + delete tokens; + delete parser; + delete stream; + + stream = new antlr4::ANTLRInputStream(line); + lexer = new SimpleSMTLIBLexer(stream); + tokens = new antlr4::CommonTokenStream(lexer); + parser = new SimpleSMTLIBParser(tokens); + tree = parser -> startBool(); + // cout << "filter line: " << line << endl; + filter = ExprBuilder::buildBoolExpr(tree, nullptr, nullptr); + // cout << "filter created: " << filter -> toString() << endl; + } + + + std::getline(infile, line); + groupByFields = split(line, ','); + + delete stream; + delete lexer; + delete tokens; + delete parser; + + // cout << "parseGlobalStateMachine complete" << endl; + return; +} + +inline bool string2bool (const std::string & v) { + return !v.empty () && + (strcasecmp (v.c_str (), "true") == 0 || + atoi (v.c_str ()) != 0); +} + + +inline std::unique_ptr parseLocalStateMachine(std::string filename) { + std::ifstream infile(filename); + std::string line; + + SimpleSMTLIBLexer *lexer; + antlr4::CommonTokenStream *tokens; + SimpleSMTLIBParser *parser; + antlr4::ANTLRInputStream * stream; + SimpleSMTLIBParser::StartBoolContext *tree; + + // cout << "reading line one" << endl; + // Line 1: initial state + std::getline(infile, line); + + // cout << "line one output: " << line << endl; + int startState = stoi(line); + // cout << "line one parsed output: " << startState << endl; + + // Line 2: final state(s) + vector finalStates; + + // cout << "reading line two" << endl; + std::getline(infile, line); + // cout << "line two output: " << line << endl; + std::vector toks = split(line, ','); + for (string s : toks) { + finalStates.push_back(stoi(s)); + } + + // cout << "line two parsed output: " << endl; + // for (int n: finalStates) { + // cout << n << endl; + // } + + // Line 3: variables + std::getline(infile, line); + std::vector variableList = split(line, ','); + + // Line 4+: transitions + unordered_map> moves; + + + while(std::getline(infile, line)) { + // cout << "line 4+: " << line << endl; + std::vector toks = split(line, ';'); + + // cout << "Antlr input: " << toks[3] << endl; + stream = new antlr4::ANTLRInputStream(toks[3]); + lexer = new SimpleSMTLIBLexer(stream); + tokens = new antlr4::CommonTokenStream(lexer); + parser = new SimpleSMTLIBParser(tokens); + + // cout << "making tree" << endl; + tree = parser -> startBool(); + + shared_ptr> locationReferences(new vector()); + shared_ptr> variableComparisons(new unordered_map()); + // cout << "going in ExprBuilder" << endl; + shared_ptr condition = ExprBuilder::buildBoolExpr(tree, locationReferences, variableComparisons); + // cout << "out of ExprBuilder" << endl; + bool supress = string2bool(toks[0]); + int from = stoi(toks[1]); + int to = stoi(toks[2]); + // cout << "line: " << line << endl; + // cout << "supress: " << supress << endl; + // cout << "making currentMove" << endl; + + // cout << "currentMove made" << endl; + if (!contains(moves, from)) { + // cout << "no issue here" << endl; + moves[from] = vector(); + } + moves.at(from).emplace_back(DSFAMove(condition, supress, to, contains(finalStates, to), *locationReferences, *variableComparisons)); + // cout << "pushed to vector" << endl; + + // delete parser; + delete tokens; + delete lexer; + delete stream; + // cout << "going to next iteration" << endl; + } + // cout << "out of while loop in SFAPARSER parseLocalStateMachine" << endl; + return std::unique_ptr(new DSFA(startState, finalStates, moves, vector(), variableList)); +} + +#endif diff --git a/C++Verifier/src/SFAProcessor.cpp b/C++Verifier/src/SFAProcessor.cpp new file mode 100644 index 0000000..2fbaf0a --- /dev/null +++ b/C++Verifier/src/SFAProcessor.cpp @@ -0,0 +1,106 @@ +#ifndef SFAPROCESSOR_H +#define SFAPROCESSOR_H + +#include "DSFA/Invariant.cpp" + +class SFAProcessor { + private: + shared_ptr inv; + string key; + unordered_map currentStateMap; + unordered_map>> constraintTreeListMap; + + vector constraintBuffer; + + bool processElementSingle(shared_ptr & p, int dsfaNum) { + // cout << "In single" << endl; + // Using raw pointer because don't want to remove the dsfa. + DSFA* dsfa = (&(inv -> dsfas[dsfaNum])); + + int currentState; + try { + // cout << "Getting dsfaNum" << dsfaNum << endl; + currentState = currentStateMap.at(dsfaNum); + } + catch(const std::out_of_range& oor) { + // cout << "Excpetion caught" << endl; + currentState = dsfa -> startState; + } + // cout << "going in advanceAndCheckSuppress" << endl; + pair res = dsfa -> advanceAndCheckSuppress(p, currentState); + + currentStateMap[dsfaNum] = res.first; + return res.second; + } + + bool processElementTree(shared_ptr & p, int dsfaNum) { + // cout << "In tree" << endl; + // Using raw pointer because don't want to remove the dsfa. + DSFA* dsfa = (&(inv -> dsfas[dsfaNum])); + // If this is a new run, make a fresh tree + vector> constraintTreeList = constraintTreeListMap[dsfaNum]; + if (constraintTreeList.size() == 0) { + constraintTreeList.push_back(ConstraintTreeNode::makeFreshTree(dsfa -> startState, + dsfa -> locationList, dsfa -> variableList)); + } + assert (!constraintTreeList.empty()); + + // Note: don't need to check dsfa.locationList.size() as we are in a local SFA + if (constraintBuffer.empty()) { + for (int i = 0; i < dsfa -> variableList.size(); ++i) { + constraintBuffer.push_back(""); + } + } else if (constraintBuffer.size() < dsfa -> variableList.size()) { + for (int i = constraintBuffer.size(); i < dsfa -> variableList.size(); ++i) { + constraintBuffer.push_back(""); + } + } + + // cout << "going in advanceConstraintTreeAndCheckSuppress" << endl; + bool suppressible = dsfa -> advanceConstraintTreeAndCheckSuppress(p, constraintBuffer, constraintTreeList); + + constraintTreeListMap[dsfaNum] = constraintTreeList; + return suppressible; + } + + public: + SFAProcessor(shared_ptr _inv, string _key) { + inv = _inv; + key = _key; + }; + + bool processPacket(shared_ptr & p) { + // cout << "in processPacket" << endl; + if (inv -> filter != nullptr && (!simplifyEvaluate(inv -> filter,p))) { + // cout << "Packet Filtered" << endl; + return false; + } + // cout << "Packet allowed to process" << endl; + bool suppressible = true; + if (inv -> dsfas.size() == 0) { + // cout << "No dsfa so cannot suppress" << endl; + suppressible = false; + } + for (int dsfaNum = 0; dsfaNum < inv -> dsfas.size(); dsfaNum++) { + // Using raw pointer because don't want to remove the dsfa. + DSFA* dsfa = (&(inv -> dsfas[dsfaNum])); + // cout << "Next step" << endl; + if (dsfa -> hasVariables()) { + suppressible &= processElementTree(p, dsfaNum); + } else { + suppressible &= processElementSingle(p, dsfaNum); + } + } + // cout << "After processing. Should I suppress?: " << suppressible << endl; + suppressible &= simplifyEvaluate(inv -> negatedLocExpr,p); + // cout << "After Negative filter. Should I suppress?: " << suppressible << endl; + if (!suppressible) { + return true; + } else { + return false; + } + + } +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/antlr4/SMTLIBv2.g4 b/C++Verifier/src/antlr4/SMTLIBv2.g4 new file mode 100644 index 0000000..31823e7 --- /dev/null +++ b/C++Verifier/src/antlr4/SMTLIBv2.g4 @@ -0,0 +1,1096 @@ +/** + * SMT-LIB (v2.6) grammar + * + * Grammar is baesd on the following specification: + * http://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.6-r2017-07-18.pdf + * + * The MIT License (MIT) + * + * Copyright (c) 2017 Julian Thome + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do + * so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + **/ + +grammar SMTLIBv2; + + +// Lexer Rules Start + + +Comment + : Semicolon ~[\r\n]* -> skip + ; + + +ParOpen + : '(' + ; + +ParClose + : ')' + ; + +Semicolon + : ';' + ; + +String + : '"' (PrintableCharNoDquote | WhiteSpaceChar)+ '"' + ; + +QuotedSymbol: + '|' (PrintableCharNoBackslash | WhiteSpaceChar)+ '|' + ; + + +// Predefined Symbols + +PS_Not + : 'not' + ; +PS_Bool + : 'Bool' + ; +PS_ContinuedExecution + : 'continued-execution' + ; +PS_Error + : 'error' + ; +PS_False + : 'false' + ; +PS_ImmediateExit + : 'immediate-exit' + ; +PS_Incomplete + : 'incomplete' + ; +PS_Logic + : 'logic' + ; +PS_Memout + : 'memout' + ; +PS_Sat + : 'sat' + ; +PS_Success + : 'success' + ; +PS_Theory + : 'theory' + ; +PS_True + : 'true' + ; +PS_Unknown + : 'unknown' + ; +PS_Unsupported + : 'unsupported' + ; +PS_Unsat + : 'unsat' + ; + +// RESERVED Words + +// Command names + + +CMD_Assert + : 'assert' + ; +CMD_CheckSat + : 'check-sat' + ; +CMD_CheckSatAssuming + : 'check-sat-assuming' + ; +CMD_DeclareConst + : 'declare-const' + ; +CMD_DeclareDatatype + : 'declare-datatype' + ; +CMD_DeclareDatatypes + : 'declare-datatypes' + ; +CMD_DeclareFun + : 'declare-fun' + ; +CMD_DeclareSort + : 'declare-sort' + ; +CMD_DefineFun + : 'define-fun' + ; +CMD_DefineFunRec + : 'define-fun-rec' + ; +CMD_DefineFunsRec + : 'define-funs-rec' + ; +CMD_DefineSort + : 'define-sort' + ; +CMD_Echo + : 'echo' + ; +CMD_Exit + : 'exit' + ; +CMD_GetAssertions + : 'get-assertions' + ; +CMD_GetAssignment + : 'get-assignment' + ; +CMD_GetInfo + : 'get-info' + ; +CMD_GetModel + : 'get-model' + ; +CMD_GetOption + : 'get-option' + ; +CMD_GetProof + : 'get-proof' + ; +CMD_GetUnsatAssumptions + : 'get-unsat-assumptions' + ; +CMD_GetUnsatCore + : 'get-unsat-core' + ; +CMD_GetValue + : 'get-value' + ; +CMD_Pop + : 'pop' + ; +CMD_Push + : 'push' + ; +CMD_Reset + : 'reset' + ; +CMD_ResetAssertions + : 'reset-assertions' + ; +CMD_SetInfo + : 'set-info' + ; +CMD_SetLogic + : 'set-logic' + ; +CMD_SetOption + : 'set-option' + ; + + + + +// General reserved words + +GRW_Exclamation + : '!' + ; +GRW_Underscore + : '_' + ; +GRW_As + : 'as' + ; +GRW_Binary + : 'BINARY' + ; +GRW_Decimal + : 'DECIMAL' + ; +GRW_Exists + : 'exists' + ; +GRW_Hexadecimal + : 'HEXADECIMAL' + ; +GRW_Forall + : 'forall' + ; +GRW_Let + : 'let' + ; +GRW_Match + : 'match' + ; +GRW_Numeral + : 'NUMERAL' + ; +GRW_Par + : 'par' + ; +GRW_String + : 'string' + ; + +Numeral + : '0' + | [1-9] Digit* + ; + +Binary: + BinaryDigit+ + ; + +HexDecimal + : '#x' HexDigit HexDigit HexDigit HexDigit + ; + +Decimal + : Numeral '.' '0'* Numeral + ; + + + +fragment HexDigit + : '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' + ; + + +Colon + : ':' + ; + +fragment Digit + : [0-9] + ; + +fragment Sym + : 'a'..'z' + | 'A' .. 'Z' + | '+' + | '=' + | '/' + | '*' + | '%' + | '?' + | '!' + | '$' + | '-' + | '_' + | '~' + | '&' + | '^' + | '<' + | '>' + | '@' + | '.' + ; + + + +fragment BinaryDigit + : [01] + ; + +fragment PrintableChar + : '\u0020' .. '\u007E' + | '\u0080' .. '\uffff' + | EscapedSpace + ; + +fragment PrintableCharNoDquote + : '\u0020' .. '\u0021' + | '\u0023' .. '\u007E' + | '\u0080' .. '\uffff' + | EscapedSpace + ; + +fragment PrintableCharNoBackslash + : '\u0020' .. '\u005B' + | '\u005D' .. '\u007B' + | '\u007D' .. '\u007E' + | '\u0080' .. '\uffff' + | EscapedSpace + ; + +fragment EscapedSpace + : '""' + ; + +fragment WhiteSpaceChar + : '\u0009' + | '\u000A' + | '\u000D' + | '\u0020' + ; + +// Lexer Rules End + +// Predefined Keywords + + + +PK_AllStatistics + : ':all-statistics' + ; +PK_AssertionStackLevels + : ':assertion-stack-levels' + ; +PK_Authors + : ':authors' + ; +PK_Category + : ':category' + ; +PK_Chainable + : ':chainable' + ; +PK_Definition + : ':definition' + ; +PK_DiagnosticOutputChannel + : ':diagnostic-output-channel' + ; +PK_ErrorBehaviour + : ':error-behavior' + ; +PK_Extension + : ':extensions' + ; +PK_Funs + : ':funs' + ; +PK_FunsDescription + : ':funs-description' + ; +PK_GlobalDeclarations + : ':global-declarations' + ; +PK_InteractiveMode + : ':interactive-mode' + ; +PK_Language + : ':language' + ; +PK_LeftAssoc + : ':left-assoc' + ; +PK_License + : ':license' + ; +PK_Named + : ':named' + ; +PK_Name + : ':name' + ; +PK_Notes + : ':notes' + ; +PK_Pattern + : ':pattern' + ; +PK_PrintSuccess + : ':print-success' + ; +PK_ProduceAssertions + : ':produce-assertions' + ; +PK_ProduceAssignments + : ':produce-assignments' + ; +PK_ProduceModels + : ':produce-models' + ; +PK_ProduceProofs + : ':produce-proofs' + ; +PK_ProduceUnsatAssumptions + : ':produce-unsat-assumptions' + ; +PK_ProduceUnsatCores + : ':produce-unsat-cores' + ; +PK_RandomSeed + : ':random-seed' + ; +PK_ReasonUnknown + : ':reason-unknown' + ; +PK_RegularOutputChannel + : ':regular-output-channel' + ; +PK_ReproducibleResourceLimit + : ':reproducible-resource-limit' + ; +PK_RightAssoc + : ':right-assoc' + ; +PK_SmtLibVersion + : ':smt-lib-version' + ; +PK_Sorts + : ':sorts' + ; +PK_SortsDescription + : ':sorts-description' + ; +PK_Source + : ':source' + ; +PK_Status + : ':status' + ; +PK_Theories + : ':theories' + ; +PK_Values + : ':values' + ; +PK_Verbosity + : ':verbosity' + ; +PK_Version + : ':version' + ; + +UndefinedSymbol: + Sym (Digit | Sym)*; + + + +// Parser Rules Start + +// Starting rule(s) + +start + : script EOF + ; + +response + : general_response EOF + ; + +generalReservedWord + : GRW_Exclamation + | GRW_Underscore + | GRW_As + | GRW_Binary + | GRW_Decimal + | GRW_Exists + | GRW_Hexadecimal + | GRW_Forall + | GRW_Let + | GRW_Match + | GRW_Numeral + | GRW_Par + | GRW_String + ; + + +simpleSymbol + : predefSymbol + | UndefinedSymbol + ; + +quotedSymbol + : QuotedSymbol + ; + +predefSymbol + : PS_Not + | PS_Bool + | PS_ContinuedExecution + | PS_Error + | PS_False + | PS_ImmediateExit + | PS_Incomplete + | PS_Logic + | PS_Memout + | PS_Sat + | PS_Success + | PS_Theory + | PS_True + | PS_Unknown + | PS_Unsupported + | PS_Unsat + ; + +predefKeyword + : PK_AllStatistics + | PK_AssertionStackLevels + | PK_Authors + | PK_Category + | PK_Chainable + | PK_Definition + | PK_DiagnosticOutputChannel + | PK_ErrorBehaviour + | PK_Extension + | PK_Funs + | PK_FunsDescription + | PK_GlobalDeclarations + | PK_InteractiveMode + | PK_Language + | PK_LeftAssoc + | PK_License + | PK_Named + | PK_Name + | PK_Notes + | PK_Pattern + | PK_PrintSuccess + | PK_ProduceAssertions + | PK_ProduceAssignments + | PK_ProduceModels + | PK_ProduceProofs + | PK_ProduceUnsatAssumptions + | PK_ProduceUnsatCores + | PK_RandomSeed + | PK_ReasonUnknown + | PK_RegularOutputChannel + | PK_ReproducibleResourceLimit + | PK_RightAssoc + | PK_SmtLibVersion + | PK_Sorts + | PK_SortsDescription + | PK_Source + | PK_Status + | PK_Theories + | PK_Values + | PK_Verbosity + | PK_Version + ; + + + +symbol + : simpleSymbol + | quotedSymbol + ; + +numeral + : Numeral + ; + +decimal + : Decimal + ; + +hexadecimal + : HexDecimal + ; + +binary + : Binary + ; + +string + : String + ; + +keyword + : predefKeyword + | Colon simpleSymbol + ; + +// S-expression + +spec_constant + : numeral + | decimal + | hexadecimal + | binary + | string + ; + + +s_expr + : spec_constant + | symbol + | keyword + | ParOpen s_expr* ParClose + ; + +// Identifiers + +index + : numeral + | symbol + ; + +identifier + : symbol + | ParOpen GRW_Underscore symbol index+ ParClose + ; + +// Attributes + +attribute_value + : spec_constant + | symbol + | ParOpen s_expr* ParClose + ; + +attribute + : keyword + | keyword attribute_value + ; + +// Sorts + +sort + : identifier + | ParOpen identifier sort+ ParClose + ; + + +// Terms and Formulas + +qual_identifer + : identifier + | ParOpen GRW_As identifier sort ParClose + ; + +var_binding + : ParOpen symbol term ParClose + ; + +sorted_var + : ParOpen symbol sort ParClose + ; + +pattern + : symbol + | ParOpen symbol symbol+ ParClose + ; + +match_case + : ParOpen pattern term ParClose + ; + +term + : spec_constant + | qual_identifer + | ParOpen qual_identifer term+ ParClose + | ParOpen GRW_Let ParOpen var_binding+ ParClose term ParClose + | ParOpen GRW_Forall ParOpen sorted_var+ ParClose term ParClose + | ParOpen GRW_Exists ParOpen sorted_var+ ParClose term ParClose + | ParOpen GRW_Match term ParOpen match_case+ ParClose ParClose + | ParOpen GRW_Exclamation term attribute+ ParClose + ; + + +// Theory Declarations + +sort_symbol_decl + : ParOpen identifier numeral attribute* ParClose; + +meta_spec_constant + : GRW_Numeral + | GRW_Decimal + | GRW_String + ; + +fun_symbol_decl + : ParOpen spec_constant sort attribute* ParClose + | ParOpen meta_spec_constant sort attribute* ParClose + | ParOpen identifier sort+ attribute* ParClose + ; + +par_fun_symbol_decl + : fun_symbol_decl + | ParOpen GRW_Par ParOpen symbol+ ParClose ParOpen identifier sort+ + attribute* ParClose ParClose + ; + +theory_attribute + : PK_Sorts ParOpen sort_symbol_decl+ ParClose + | PK_Funs ParOpen par_fun_symbol_decl+ ParClose + | PK_SortsDescription string + | PK_FunsDescription string + | PK_Definition string + | PK_Values string + | PK_Notes string + | attribute + ; + +theory_decl + : ParOpen PS_Theory symbol theory_attribute+ ParClose + ; + + +// Logic Declarations + +logic_attribue + : PK_Theories ParOpen symbol+ ParClose + | PK_Language string + | PK_Extension string + | PK_Values string + | PK_Notes string + | attribute + ; + +logic + : ParOpen PS_Logic symbol logic_attribue+ ParClose + ; + + +// Scripts + +sort_dec + : ParOpen symbol numeral ParClose + ; + +selector_dec + : ParOpen symbol sort ParClose + ; + +constructor_dec + : ParOpen symbol selector_dec* ParClose + ; + +datatype_dec + : ParOpen constructor_dec+ ParClose + | ParOpen GRW_Par ParOpen symbol+ ParClose ParOpen constructor_dec+ + ParClose ParClose + ; + +function_dec + : ParOpen symbol ParOpen sorted_var* ParClose sort ParClose + ; + +function_def + : symbol ParOpen sorted_var* ParClose sort term + ; + +prop_literal + : symbol + | ParOpen PS_Not symbol ParClose + ; + + +script + : command* + ; + +cmd_assert + : CMD_Assert + ; + +cmd_checkSat + : CMD_CheckSat + ; + +cmd_checkSatAssuming + : CMD_CheckSatAssuming + ; + +cmd_declareConst + : CMD_DeclareConst + ; + +cmd_declareDatatype + : CMD_DeclareDatatype + ; + +cmd_declareDatatypes + : CMD_DeclareDatatypes + ; + +cmd_declareFun + : CMD_DeclareFun + ; + +cmd_declareSort + : CMD_DeclareSort + ; + +cmd_defineFun + : CMD_DefineFun + ; + +cmd_defineFunRec + : CMD_DefineFunRec + ; + +cmd_defineFunsRec + : CMD_DefineFunsRec + ; + +cmd_defineSort + : CMD_DefineSort + ; + +cmd_echo + : CMD_Echo + ; + +cmd_exit + : CMD_Exit + ; + +cmd_getAssertions + : CMD_GetAssertions + ; + +cmd_getAssignment + : CMD_GetAssignment + ; + +cmd_getInfo + : CMD_GetInfo + ; + +cmd_getModel + : CMD_GetModel + ; + +cmd_getOption + : CMD_GetOption + ; + +cmd_getProof + : CMD_GetProof + ; + +cmd_getUnsatAssumptions + : CMD_GetUnsatAssumptions + ; + +cmd_getUnsatCore + : CMD_GetUnsatCore + ; + +cmd_getValue + : CMD_GetValue + ; + +cmd_pop + : CMD_Pop + ; + +cmd_push + : CMD_Push + ; + +cmd_reset + : CMD_Reset + ; + +cmd_resetAssertions + : CMD_ResetAssertions + ; + +cmd_setInfo + : CMD_SetInfo + ; + +cmd_setLogic + : CMD_SetLogic + ; + +cmd_setOption + : CMD_SetOption + ; + +command + : ParOpen cmd_assert term ParClose + | ParOpen cmd_checkSat ParClose + | ParOpen cmd_checkSatAssuming ParClose + | ParOpen cmd_declareConst symbol sort ParClose + | ParOpen cmd_declareDatatype symbol datatype_dec ParClose + // cardinalitiees for sort_dec and datatype_dec have to be n+1 + | ParOpen cmd_declareDatatypes ParOpen sort_dec+ ParClose ParOpen + datatype_dec+ ParClose ParClose + | ParOpen cmd_declareFun symbol ParOpen sort* ParClose sort ParClose + | ParOpen cmd_declareSort symbol numeral ParClose + | ParOpen cmd_defineFun function_def ParClose + | ParOpen cmd_defineFunRec function_def ParClose + // cardinalitiees for function_dec and term have to be n+1 + | ParOpen cmd_defineFunsRec ParOpen function_dec+ ParClose + ParOpen term+ ParClose ParClose + | ParOpen cmd_defineSort symbol ParOpen symbol* ParClose sort ParClose + | ParOpen cmd_echo string ParClose + | ParOpen cmd_exit ParClose + | ParOpen cmd_getAssertions ParClose + | ParOpen cmd_getAssignment ParClose + | ParOpen cmd_getInfo info_flag ParClose + | ParOpen cmd_getModel ParClose + | ParOpen cmd_getOption keyword ParClose + | ParOpen cmd_getProof ParClose + | ParOpen cmd_getUnsatAssumptions ParClose + | ParOpen cmd_getUnsatCore ParClose + | ParOpen cmd_getValue ParOpen term+ ParClose ParClose + | ParOpen cmd_pop numeral ParClose + | ParOpen cmd_push numeral ParClose + | ParOpen cmd_reset ParClose + | ParOpen cmd_resetAssertions ParClose + | ParOpen cmd_setInfo attribute ParClose + | ParOpen cmd_setLogic symbol ParClose + | ParOpen cmd_setOption option ParClose + ; + + +b_value + : PS_True + | PS_False + ; + +option + : PK_DiagnosticOutputChannel string + | PK_GlobalDeclarations b_value + | PK_InteractiveMode b_value + | PK_PrintSuccess b_value + | PK_ProduceAssertions b_value + | PK_ProduceAssignments b_value + | PK_ProduceModels b_value + | PK_ProduceProofs b_value + | PK_ProduceUnsatAssumptions b_value + | PK_ProduceUnsatCores b_value + | PK_RandomSeed numeral + | PK_RegularOutputChannel string + | PK_ReproducibleResourceLimit numeral + | PK_Verbosity numeral + | attribute + ; + +info_flag + : PK_AllStatistics + | PK_AssertionStackLevels + | PK_Authors + | PK_ErrorBehaviour + | PK_Name + | PK_ReasonUnknown + | PK_Version + | keyword + ; + +// responses + +error_behaviour + : PS_ImmediateExit + | PS_ContinuedExecution + ; + +reason_unknown + : PS_Memout + | PS_Incomplete + | s_expr + ; + +model_response + : ParOpen CMD_DefineFun function_def ParClose + | ParOpen CMD_DefineFunRec function_def ParClose + // cardinalitiees for function_dec and term have to be n+1 + | ParOpen CMD_DefineFunsRec ParOpen function_dec+ ParClose ParOpen term+ + ParClose ParClose + ; + +info_response + : PK_AssertionStackLevels numeral + | PK_Authors string + | PK_ErrorBehaviour error_behaviour + | PK_Name string + | PK_ReasonUnknown reason_unknown + | PK_Version string + | attribute + ; + +valuation_pair + : ParOpen term term ParClose + ; + +t_valuation_pair + : ParOpen symbol b_value ParClose + ; + +check_sat_response + : PS_Sat + | PS_Unsat + | PS_Unknown + ; + +echo_response + : string + ; + +get_assertions_response + : ParOpen term* ParClose + ; + +get_assignment_response + : ParOpen t_valuation_pair* ParClose + ; + +get_info_response + : ParOpen info_response+ ParClose + ; + +get_model_response + : ParOpen model_response* ParClose + ; + +get_option_response + : attribute_value + ; + +get_proof_response + : s_expr + ; + +get_unsat_assump_response + : ParOpen symbol* ParClose + ; + +get_unsat_core_response + : ParOpen symbol* ParClose + ; + +get_value_response + : ParOpen valuation_pair+ ParClose + ; + +specific_success_response + : check_sat_response + | echo_response + | get_assertions_response + | get_assignment_response + | get_info_response + | get_model_response + | get_option_response + | get_proof_response + | get_unsat_assump_response + | get_unsat_core_response + | get_value_response + ; + +general_response + : PS_Success + | specific_success_response + | PS_Unsupported + | ParOpen PS_Error string ParClose + ; + + +// Parser Rules End + +WS : [ \t\r\n]+ -> skip + ; \ No newline at end of file diff --git a/C++Verifier/src/antlr4/SMTLIBv2.interp b/C++Verifier/src/antlr4/SMTLIBv2.interp new file mode 100644 index 0000000..2086c97 --- /dev/null +++ b/C++Verifier/src/antlr4/SMTLIBv2.interp @@ -0,0 +1,333 @@ +token literal names: +null +null +'(' +')' +';' +null +null +'not' +'Bool' +'continued-execution' +'error' +'false' +'immediate-exit' +'incomplete' +'logic' +'memout' +'sat' +'success' +'theory' +'true' +'unknown' +'unsupported' +'unsat' +'assert' +'check-sat' +'check-sat-assuming' +'declare-const' +'declare-datatype' +'declare-datatypes' +'declare-fun' +'declare-sort' +'define-fun' +'define-fun-rec' +'define-funs-rec' +'define-sort' +'echo' +'exit' +'get-assertions' +'get-assignment' +'get-info' +'get-model' +'get-option' +'get-proof' +'get-unsat-assumptions' +'get-unsat-core' +'get-value' +'pop' +'push' +'reset' +'reset-assertions' +'set-info' +'set-logic' +'set-option' +'!' +'_' +'as' +'BINARY' +'DECIMAL' +'exists' +'HEXADECIMAL' +'forall' +'let' +'match' +'NUMERAL' +'par' +'string' +null +null +null +null +':' +':all-statistics' +':assertion-stack-levels' +':authors' +':category' +':chainable' +':definition' +':diagnostic-output-channel' +':error-behavior' +':extensions' +':funs' +':funs-description' +':global-declarations' +':interactive-mode' +':language' +':left-assoc' +':license' +':named' +':name' +':notes' +':pattern' +':print-success' +':produce-assertions' +':produce-assignments' +':produce-models' +':produce-proofs' +':produce-unsat-assumptions' +':produce-unsat-cores' +':random-seed' +':reason-unknown' +':regular-output-channel' +':reproducible-resource-limit' +':right-assoc' +':smt-lib-version' +':sorts' +':sorts-description' +':source' +':status' +':theories' +':values' +':verbosity' +':version' +null +null + +token symbolic names: +null +Comment +ParOpen +ParClose +Semicolon +String +QuotedSymbol +PS_Not +PS_Bool +PS_ContinuedExecution +PS_Error +PS_False +PS_ImmediateExit +PS_Incomplete +PS_Logic +PS_Memout +PS_Sat +PS_Success +PS_Theory +PS_True +PS_Unknown +PS_Unsupported +PS_Unsat +CMD_Assert +CMD_CheckSat +CMD_CheckSatAssuming +CMD_DeclareConst +CMD_DeclareDatatype +CMD_DeclareDatatypes +CMD_DeclareFun +CMD_DeclareSort +CMD_DefineFun +CMD_DefineFunRec +CMD_DefineFunsRec +CMD_DefineSort +CMD_Echo +CMD_Exit +CMD_GetAssertions +CMD_GetAssignment +CMD_GetInfo +CMD_GetModel +CMD_GetOption +CMD_GetProof +CMD_GetUnsatAssumptions +CMD_GetUnsatCore +CMD_GetValue +CMD_Pop +CMD_Push +CMD_Reset +CMD_ResetAssertions +CMD_SetInfo +CMD_SetLogic +CMD_SetOption +GRW_Exclamation +GRW_Underscore +GRW_As +GRW_Binary +GRW_Decimal +GRW_Exists +GRW_Hexadecimal +GRW_Forall +GRW_Let +GRW_Match +GRW_Numeral +GRW_Par +GRW_String +Numeral +Binary +HexDecimal +Decimal +Colon +PK_AllStatistics +PK_AssertionStackLevels +PK_Authors +PK_Category +PK_Chainable +PK_Definition +PK_DiagnosticOutputChannel +PK_ErrorBehaviour +PK_Extension +PK_Funs +PK_FunsDescription +PK_GlobalDeclarations +PK_InteractiveMode +PK_Language +PK_LeftAssoc +PK_License +PK_Named +PK_Name +PK_Notes +PK_Pattern +PK_PrintSuccess +PK_ProduceAssertions +PK_ProduceAssignments +PK_ProduceModels +PK_ProduceProofs +PK_ProduceUnsatAssumptions +PK_ProduceUnsatCores +PK_RandomSeed +PK_ReasonUnknown +PK_RegularOutputChannel +PK_ReproducibleResourceLimit +PK_RightAssoc +PK_SmtLibVersion +PK_Sorts +PK_SortsDescription +PK_Source +PK_Status +PK_Theories +PK_Values +PK_Verbosity +PK_Version +UndefinedSymbol +WS + +rule names: +start +response +generalReservedWord +simpleSymbol +quotedSymbol +predefSymbol +predefKeyword +symbol +numeral +decimal +hexadecimal +binary +string +keyword +spec_constant +s_expr +index +identifier +attribute_value +attribute +sort +qual_identifer +var_binding +sorted_var +pattern +match_case +term +sort_symbol_decl +meta_spec_constant +fun_symbol_decl +par_fun_symbol_decl +theory_attribute +theory_decl +logic_attribue +logic +sort_dec +selector_dec +constructor_dec +datatype_dec +function_dec +function_def +prop_literal +script +cmd_assert +cmd_checkSat +cmd_checkSatAssuming +cmd_declareConst +cmd_declareDatatype +cmd_declareDatatypes +cmd_declareFun +cmd_declareSort +cmd_defineFun +cmd_defineFunRec +cmd_defineFunsRec +cmd_defineSort +cmd_echo +cmd_exit +cmd_getAssertions +cmd_getAssignment +cmd_getInfo +cmd_getModel +cmd_getOption +cmd_getProof +cmd_getUnsatAssumptions +cmd_getUnsatCore +cmd_getValue +cmd_pop +cmd_push +cmd_reset +cmd_resetAssertions +cmd_setInfo +cmd_setLogic +cmd_setOption +command +b_value +option +info_flag +error_behaviour +reason_unknown +model_response +info_response +valuation_pair +t_valuation_pair +check_sat_response +echo_response +get_assertions_response +get_assignment_response +get_info_response +get_model_response +get_option_response +get_proof_response +get_unsat_assump_response +get_unsat_core_response +get_value_response +specific_success_response +general_response + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 115, 1095, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 5, 5, 205, 10, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3, 9, 5, 9, 215, 10, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 5, 15, 230, 10, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 237, 10, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 244, 10, 17, 12, 17, 14, 17, 247, 11, 17, 3, 17, 5, 17, 250, 10, 17, 3, 18, 3, 18, 5, 18, 254, 10, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 6, 19, 261, 10, 19, 13, 19, 14, 19, 262, 3, 19, 3, 19, 5, 19, 267, 10, 19, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 273, 10, 20, 12, 20, 14, 20, 276, 11, 20, 3, 20, 5, 20, 279, 10, 20, 3, 21, 3, 21, 3, 21, 3, 21, 5, 21, 285, 10, 21, 3, 22, 3, 22, 3, 22, 3, 22, 6, 22, 291, 10, 22, 13, 22, 14, 22, 292, 3, 22, 3, 22, 5, 22, 297, 10, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 5, 23, 306, 10, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 6, 26, 322, 10, 26, 13, 26, 14, 26, 323, 3, 26, 3, 26, 5, 26, 328, 10, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 6, 28, 340, 10, 28, 13, 28, 14, 28, 341, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 6, 28, 350, 10, 28, 13, 28, 14, 28, 351, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 6, 28, 362, 10, 28, 13, 28, 14, 28, 363, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 6, 28, 374, 10, 28, 13, 28, 14, 28, 375, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 6, 28, 387, 10, 28, 13, 28, 14, 28, 388, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 6, 28, 398, 10, 28, 13, 28, 14, 28, 399, 3, 28, 3, 28, 5, 28, 404, 10, 28, 3, 29, 3, 29, 3, 29, 3, 29, 7, 29, 410, 10, 29, 12, 29, 14, 29, 413, 11, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 423, 10, 31, 12, 31, 14, 31, 426, 11, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 434, 10, 31, 12, 31, 14, 31, 437, 11, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 6, 31, 444, 10, 31, 13, 31, 14, 31, 445, 3, 31, 7, 31, 449, 10, 31, 12, 31, 14, 31, 452, 11, 31, 3, 31, 3, 31, 5, 31, 456, 10, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 6, 32, 463, 10, 32, 13, 32, 14, 32, 464, 3, 32, 3, 32, 3, 32, 3, 32, 6, 32, 471, 10, 32, 13, 32, 14, 32, 472, 3, 32, 7, 32, 476, 10, 32, 12, 32, 14, 32, 479, 11, 32, 3, 32, 3, 32, 3, 32, 5, 32, 484, 10, 32, 3, 33, 3, 33, 3, 33, 6, 33, 489, 10, 33, 13, 33, 14, 33, 490, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 6, 33, 498, 10, 33, 13, 33, 14, 33, 499, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 5, 33, 515, 10, 33, 3, 34, 3, 34, 3, 34, 3, 34, 6, 34, 521, 10, 34, 13, 34, 14, 34, 522, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 6, 35, 530, 10, 35, 13, 35, 14, 35, 531, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 5, 35, 545, 10, 35, 3, 36, 3, 36, 3, 36, 3, 36, 6, 36, 551, 10, 36, 13, 36, 14, 36, 552, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 7, 39, 570, 10, 39, 12, 39, 14, 39, 573, 11, 39, 3, 39, 3, 39, 3, 40, 3, 40, 6, 40, 579, 10, 40, 13, 40, 14, 40, 580, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 6, 40, 589, 10, 40, 13, 40, 14, 40, 590, 3, 40, 3, 40, 3, 40, 6, 40, 596, 10, 40, 13, 40, 14, 40, 597, 3, 40, 3, 40, 3, 40, 5, 40, 603, 10, 40, 3, 41, 3, 41, 3, 41, 3, 41, 7, 41, 609, 10, 41, 12, 41, 14, 41, 612, 11, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 7, 42, 621, 10, 42, 12, 42, 14, 42, 624, 11, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 5, 43, 636, 10, 43, 3, 44, 7, 44, 639, 10, 44, 12, 44, 14, 44, 642, 11, 44, 3, 45, 3, 45, 3, 46, 3, 46, 3, 47, 3, 47, 3, 48, 3, 48, 3, 49, 3, 49, 3, 50, 3, 50, 3, 51, 3, 51, 3, 52, 3, 52, 3, 53, 3, 53, 3, 54, 3, 54, 3, 55, 3, 55, 3, 56, 3, 56, 3, 57, 3, 57, 3, 58, 3, 58, 3, 59, 3, 59, 3, 60, 3, 60, 3, 61, 3, 61, 3, 62, 3, 62, 3, 63, 3, 63, 3, 64, 3, 64, 3, 65, 3, 65, 3, 66, 3, 66, 3, 67, 3, 67, 3, 68, 3, 68, 3, 69, 3, 69, 3, 70, 3, 70, 3, 71, 3, 71, 3, 72, 3, 72, 3, 73, 3, 73, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 6, 75, 733, 10, 75, 13, 75, 14, 75, 734, 3, 75, 3, 75, 3, 75, 6, 75, 740, 10, 75, 13, 75, 14, 75, 741, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 7, 75, 752, 10, 75, 12, 75, 14, 75, 755, 11, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 6, 75, 781, 10, 75, 13, 75, 14, 75, 782, 3, 75, 3, 75, 3, 75, 6, 75, 788, 10, 75, 13, 75, 14, 75, 789, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 7, 75, 800, 10, 75, 12, 75, 14, 75, 803, 11, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 6, 75, 856, 10, 75, 13, 75, 14, 75, 857, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 5, 75, 896, 10, 75, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 5, 77, 929, 10, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 5, 78, 939, 10, 78, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 5, 80, 946, 10, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 6, 81, 962, 10, 81, 13, 81, 14, 81, 963, 3, 81, 3, 81, 3, 81, 6, 81, 969, 10, 81, 13, 81, 14, 81, 970, 3, 81, 3, 81, 3, 81, 5, 81, 976, 10, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 991, 10, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 86, 3, 86, 3, 87, 3, 87, 7, 87, 1009, 10, 87, 12, 87, 14, 87, 1012, 11, 87, 3, 87, 3, 87, 3, 88, 3, 88, 7, 88, 1018, 10, 88, 12, 88, 14, 88, 1021, 11, 88, 3, 88, 3, 88, 3, 89, 3, 89, 6, 89, 1027, 10, 89, 13, 89, 14, 89, 1028, 3, 89, 3, 89, 3, 90, 3, 90, 7, 90, 1035, 10, 90, 12, 90, 14, 90, 1038, 11, 90, 3, 90, 3, 90, 3, 91, 3, 91, 3, 92, 3, 92, 3, 93, 3, 93, 7, 93, 1048, 10, 93, 12, 93, 14, 93, 1051, 11, 93, 3, 93, 3, 93, 3, 94, 3, 94, 7, 94, 1057, 10, 94, 12, 94, 14, 94, 1060, 11, 94, 3, 94, 3, 94, 3, 95, 3, 95, 6, 95, 1066, 10, 95, 13, 95, 14, 95, 1067, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 5, 96, 1083, 10, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 5, 97, 1093, 10, 97, 3, 97, 2, 2, 98, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 2, 9, 3, 2, 55, 67, 3, 2, 9, 24, 3, 2, 73, 113, 5, 2, 59, 59, 65, 65, 67, 67, 4, 2, 13, 13, 21, 21, 4, 2, 11, 11, 14, 14, 5, 2, 18, 18, 22, 22, 24, 24, 2, 1160, 2, 194, 3, 2, 2, 2, 4, 197, 3, 2, 2, 2, 6, 200, 3, 2, 2, 2, 8, 204, 3, 2, 2, 2, 10, 206, 3, 2, 2, 2, 12, 208, 3, 2, 2, 2, 14, 210, 3, 2, 2, 2, 16, 214, 3, 2, 2, 2, 18, 216, 3, 2, 2, 2, 20, 218, 3, 2, 2, 2, 22, 220, 3, 2, 2, 2, 24, 222, 3, 2, 2, 2, 26, 224, 3, 2, 2, 2, 28, 229, 3, 2, 2, 2, 30, 236, 3, 2, 2, 2, 32, 249, 3, 2, 2, 2, 34, 253, 3, 2, 2, 2, 36, 266, 3, 2, 2, 2, 38, 278, 3, 2, 2, 2, 40, 284, 3, 2, 2, 2, 42, 296, 3, 2, 2, 2, 44, 305, 3, 2, 2, 2, 46, 307, 3, 2, 2, 2, 48, 312, 3, 2, 2, 2, 50, 327, 3, 2, 2, 2, 52, 329, 3, 2, 2, 2, 54, 403, 3, 2, 2, 2, 56, 405, 3, 2, 2, 2, 58, 416, 3, 2, 2, 2, 60, 455, 3, 2, 2, 2, 62, 483, 3, 2, 2, 2, 64, 514, 3, 2, 2, 2, 66, 516, 3, 2, 2, 2, 68, 544, 3, 2, 2, 2, 70, 546, 3, 2, 2, 2, 72, 556, 3, 2, 2, 2, 74, 561, 3, 2, 2, 2, 76, 566, 3, 2, 2, 2, 78, 602, 3, 2, 2, 2, 80, 604, 3, 2, 2, 2, 82, 617, 3, 2, 2, 2, 84, 635, 3, 2, 2, 2, 86, 640, 3, 2, 2, 2, 88, 643, 3, 2, 2, 2, 90, 645, 3, 2, 2, 2, 92, 647, 3, 2, 2, 2, 94, 649, 3, 2, 2, 2, 96, 651, 3, 2, 2, 2, 98, 653, 3, 2, 2, 2, 100, 655, 3, 2, 2, 2, 102, 657, 3, 2, 2, 2, 104, 659, 3, 2, 2, 2, 106, 661, 3, 2, 2, 2, 108, 663, 3, 2, 2, 2, 110, 665, 3, 2, 2, 2, 112, 667, 3, 2, 2, 2, 114, 669, 3, 2, 2, 2, 116, 671, 3, 2, 2, 2, 118, 673, 3, 2, 2, 2, 120, 675, 3, 2, 2, 2, 122, 677, 3, 2, 2, 2, 124, 679, 3, 2, 2, 2, 126, 681, 3, 2, 2, 2, 128, 683, 3, 2, 2, 2, 130, 685, 3, 2, 2, 2, 132, 687, 3, 2, 2, 2, 134, 689, 3, 2, 2, 2, 136, 691, 3, 2, 2, 2, 138, 693, 3, 2, 2, 2, 140, 695, 3, 2, 2, 2, 142, 697, 3, 2, 2, 2, 144, 699, 3, 2, 2, 2, 146, 701, 3, 2, 2, 2, 148, 895, 3, 2, 2, 2, 150, 897, 3, 2, 2, 2, 152, 928, 3, 2, 2, 2, 154, 938, 3, 2, 2, 2, 156, 940, 3, 2, 2, 2, 158, 945, 3, 2, 2, 2, 160, 975, 3, 2, 2, 2, 162, 990, 3, 2, 2, 2, 164, 992, 3, 2, 2, 2, 166, 997, 3, 2, 2, 2, 168, 1002, 3, 2, 2, 2, 170, 1004, 3, 2, 2, 2, 172, 1006, 3, 2, 2, 2, 174, 1015, 3, 2, 2, 2, 176, 1024, 3, 2, 2, 2, 178, 1032, 3, 2, 2, 2, 180, 1041, 3, 2, 2, 2, 182, 1043, 3, 2, 2, 2, 184, 1045, 3, 2, 2, 2, 186, 1054, 3, 2, 2, 2, 188, 1063, 3, 2, 2, 2, 190, 1082, 3, 2, 2, 2, 192, 1092, 3, 2, 2, 2, 194, 195, 5, 86, 44, 2, 195, 196, 7, 2, 2, 3, 196, 3, 3, 2, 2, 2, 197, 198, 5, 192, 97, 2, 198, 199, 7, 2, 2, 3, 199, 5, 3, 2, 2, 2, 200, 201, 9, 2, 2, 2, 201, 7, 3, 2, 2, 2, 202, 205, 5, 12, 7, 2, 203, 205, 7, 114, 2, 2, 204, 202, 3, 2, 2, 2, 204, 203, 3, 2, 2, 2, 205, 9, 3, 2, 2, 2, 206, 207, 7, 8, 2, 2, 207, 11, 3, 2, 2, 2, 208, 209, 9, 3, 2, 2, 209, 13, 3, 2, 2, 2, 210, 211, 9, 4, 2, 2, 211, 15, 3, 2, 2, 2, 212, 215, 5, 8, 5, 2, 213, 215, 5, 10, 6, 2, 214, 212, 3, 2, 2, 2, 214, 213, 3, 2, 2, 2, 215, 17, 3, 2, 2, 2, 216, 217, 7, 68, 2, 2, 217, 19, 3, 2, 2, 2, 218, 219, 7, 71, 2, 2, 219, 21, 3, 2, 2, 2, 220, 221, 7, 70, 2, 2, 221, 23, 3, 2, 2, 2, 222, 223, 7, 69, 2, 2, 223, 25, 3, 2, 2, 2, 224, 225, 7, 7, 2, 2, 225, 27, 3, 2, 2, 2, 226, 230, 5, 14, 8, 2, 227, 228, 7, 72, 2, 2, 228, 230, 5, 8, 5, 2, 229, 226, 3, 2, 2, 2, 229, 227, 3, 2, 2, 2, 230, 29, 3, 2, 2, 2, 231, 237, 5, 18, 10, 2, 232, 237, 5, 20, 11, 2, 233, 237, 5, 22, 12, 2, 234, 237, 5, 24, 13, 2, 235, 237, 5, 26, 14, 2, 236, 231, 3, 2, 2, 2, 236, 232, 3, 2, 2, 2, 236, 233, 3, 2, 2, 2, 236, 234, 3, 2, 2, 2, 236, 235, 3, 2, 2, 2, 237, 31, 3, 2, 2, 2, 238, 250, 5, 30, 16, 2, 239, 250, 5, 16, 9, 2, 240, 250, 5, 28, 15, 2, 241, 245, 7, 4, 2, 2, 242, 244, 5, 32, 17, 2, 243, 242, 3, 2, 2, 2, 244, 247, 3, 2, 2, 2, 245, 243, 3, 2, 2, 2, 245, 246, 3, 2, 2, 2, 246, 248, 3, 2, 2, 2, 247, 245, 3, 2, 2, 2, 248, 250, 7, 5, 2, 2, 249, 238, 3, 2, 2, 2, 249, 239, 3, 2, 2, 2, 249, 240, 3, 2, 2, 2, 249, 241, 3, 2, 2, 2, 250, 33, 3, 2, 2, 2, 251, 254, 5, 18, 10, 2, 252, 254, 5, 16, 9, 2, 253, 251, 3, 2, 2, 2, 253, 252, 3, 2, 2, 2, 254, 35, 3, 2, 2, 2, 255, 267, 5, 16, 9, 2, 256, 257, 7, 4, 2, 2, 257, 258, 7, 56, 2, 2, 258, 260, 5, 16, 9, 2, 259, 261, 5, 34, 18, 2, 260, 259, 3, 2, 2, 2, 261, 262, 3, 2, 2, 2, 262, 260, 3, 2, 2, 2, 262, 263, 3, 2, 2, 2, 263, 264, 3, 2, 2, 2, 264, 265, 7, 5, 2, 2, 265, 267, 3, 2, 2, 2, 266, 255, 3, 2, 2, 2, 266, 256, 3, 2, 2, 2, 267, 37, 3, 2, 2, 2, 268, 279, 5, 30, 16, 2, 269, 279, 5, 16, 9, 2, 270, 274, 7, 4, 2, 2, 271, 273, 5, 32, 17, 2, 272, 271, 3, 2, 2, 2, 273, 276, 3, 2, 2, 2, 274, 272, 3, 2, 2, 2, 274, 275, 3, 2, 2, 2, 275, 277, 3, 2, 2, 2, 276, 274, 3, 2, 2, 2, 277, 279, 7, 5, 2, 2, 278, 268, 3, 2, 2, 2, 278, 269, 3, 2, 2, 2, 278, 270, 3, 2, 2, 2, 279, 39, 3, 2, 2, 2, 280, 285, 5, 28, 15, 2, 281, 282, 5, 28, 15, 2, 282, 283, 5, 38, 20, 2, 283, 285, 3, 2, 2, 2, 284, 280, 3, 2, 2, 2, 284, 281, 3, 2, 2, 2, 285, 41, 3, 2, 2, 2, 286, 297, 5, 36, 19, 2, 287, 288, 7, 4, 2, 2, 288, 290, 5, 36, 19, 2, 289, 291, 5, 42, 22, 2, 290, 289, 3, 2, 2, 2, 291, 292, 3, 2, 2, 2, 292, 290, 3, 2, 2, 2, 292, 293, 3, 2, 2, 2, 293, 294, 3, 2, 2, 2, 294, 295, 7, 5, 2, 2, 295, 297, 3, 2, 2, 2, 296, 286, 3, 2, 2, 2, 296, 287, 3, 2, 2, 2, 297, 43, 3, 2, 2, 2, 298, 306, 5, 36, 19, 2, 299, 300, 7, 4, 2, 2, 300, 301, 7, 57, 2, 2, 301, 302, 5, 36, 19, 2, 302, 303, 5, 42, 22, 2, 303, 304, 7, 5, 2, 2, 304, 306, 3, 2, 2, 2, 305, 298, 3, 2, 2, 2, 305, 299, 3, 2, 2, 2, 306, 45, 3, 2, 2, 2, 307, 308, 7, 4, 2, 2, 308, 309, 5, 16, 9, 2, 309, 310, 5, 54, 28, 2, 310, 311, 7, 5, 2, 2, 311, 47, 3, 2, 2, 2, 312, 313, 7, 4, 2, 2, 313, 314, 5, 16, 9, 2, 314, 315, 5, 42, 22, 2, 315, 316, 7, 5, 2, 2, 316, 49, 3, 2, 2, 2, 317, 328, 5, 16, 9, 2, 318, 319, 7, 4, 2, 2, 319, 321, 5, 16, 9, 2, 320, 322, 5, 16, 9, 2, 321, 320, 3, 2, 2, 2, 322, 323, 3, 2, 2, 2, 323, 321, 3, 2, 2, 2, 323, 324, 3, 2, 2, 2, 324, 325, 3, 2, 2, 2, 325, 326, 7, 5, 2, 2, 326, 328, 3, 2, 2, 2, 327, 317, 3, 2, 2, 2, 327, 318, 3, 2, 2, 2, 328, 51, 3, 2, 2, 2, 329, 330, 7, 4, 2, 2, 330, 331, 5, 50, 26, 2, 331, 332, 5, 54, 28, 2, 332, 333, 7, 5, 2, 2, 333, 53, 3, 2, 2, 2, 334, 404, 5, 30, 16, 2, 335, 404, 5, 44, 23, 2, 336, 337, 7, 4, 2, 2, 337, 339, 5, 44, 23, 2, 338, 340, 5, 54, 28, 2, 339, 338, 3, 2, 2, 2, 340, 341, 3, 2, 2, 2, 341, 339, 3, 2, 2, 2, 341, 342, 3, 2, 2, 2, 342, 343, 3, 2, 2, 2, 343, 344, 7, 5, 2, 2, 344, 404, 3, 2, 2, 2, 345, 346, 7, 4, 2, 2, 346, 347, 7, 63, 2, 2, 347, 349, 7, 4, 2, 2, 348, 350, 5, 46, 24, 2, 349, 348, 3, 2, 2, 2, 350, 351, 3, 2, 2, 2, 351, 349, 3, 2, 2, 2, 351, 352, 3, 2, 2, 2, 352, 353, 3, 2, 2, 2, 353, 354, 7, 5, 2, 2, 354, 355, 5, 54, 28, 2, 355, 356, 7, 5, 2, 2, 356, 404, 3, 2, 2, 2, 357, 358, 7, 4, 2, 2, 358, 359, 7, 62, 2, 2, 359, 361, 7, 4, 2, 2, 360, 362, 5, 48, 25, 2, 361, 360, 3, 2, 2, 2, 362, 363, 3, 2, 2, 2, 363, 361, 3, 2, 2, 2, 363, 364, 3, 2, 2, 2, 364, 365, 3, 2, 2, 2, 365, 366, 7, 5, 2, 2, 366, 367, 5, 54, 28, 2, 367, 368, 7, 5, 2, 2, 368, 404, 3, 2, 2, 2, 369, 370, 7, 4, 2, 2, 370, 371, 7, 60, 2, 2, 371, 373, 7, 4, 2, 2, 372, 374, 5, 48, 25, 2, 373, 372, 3, 2, 2, 2, 374, 375, 3, 2, 2, 2, 375, 373, 3, 2, 2, 2, 375, 376, 3, 2, 2, 2, 376, 377, 3, 2, 2, 2, 377, 378, 7, 5, 2, 2, 378, 379, 5, 54, 28, 2, 379, 380, 7, 5, 2, 2, 380, 404, 3, 2, 2, 2, 381, 382, 7, 4, 2, 2, 382, 383, 7, 64, 2, 2, 383, 384, 5, 54, 28, 2, 384, 386, 7, 4, 2, 2, 385, 387, 5, 52, 27, 2, 386, 385, 3, 2, 2, 2, 387, 388, 3, 2, 2, 2, 388, 386, 3, 2, 2, 2, 388, 389, 3, 2, 2, 2, 389, 390, 3, 2, 2, 2, 390, 391, 7, 5, 2, 2, 391, 392, 7, 5, 2, 2, 392, 404, 3, 2, 2, 2, 393, 394, 7, 4, 2, 2, 394, 395, 7, 55, 2, 2, 395, 397, 5, 54, 28, 2, 396, 398, 5, 40, 21, 2, 397, 396, 3, 2, 2, 2, 398, 399, 3, 2, 2, 2, 399, 397, 3, 2, 2, 2, 399, 400, 3, 2, 2, 2, 400, 401, 3, 2, 2, 2, 401, 402, 7, 5, 2, 2, 402, 404, 3, 2, 2, 2, 403, 334, 3, 2, 2, 2, 403, 335, 3, 2, 2, 2, 403, 336, 3, 2, 2, 2, 403, 345, 3, 2, 2, 2, 403, 357, 3, 2, 2, 2, 403, 369, 3, 2, 2, 2, 403, 381, 3, 2, 2, 2, 403, 393, 3, 2, 2, 2, 404, 55, 3, 2, 2, 2, 405, 406, 7, 4, 2, 2, 406, 407, 5, 36, 19, 2, 407, 411, 5, 18, 10, 2, 408, 410, 5, 40, 21, 2, 409, 408, 3, 2, 2, 2, 410, 413, 3, 2, 2, 2, 411, 409, 3, 2, 2, 2, 411, 412, 3, 2, 2, 2, 412, 414, 3, 2, 2, 2, 413, 411, 3, 2, 2, 2, 414, 415, 7, 5, 2, 2, 415, 57, 3, 2, 2, 2, 416, 417, 9, 5, 2, 2, 417, 59, 3, 2, 2, 2, 418, 419, 7, 4, 2, 2, 419, 420, 5, 30, 16, 2, 420, 424, 5, 42, 22, 2, 421, 423, 5, 40, 21, 2, 422, 421, 3, 2, 2, 2, 423, 426, 3, 2, 2, 2, 424, 422, 3, 2, 2, 2, 424, 425, 3, 2, 2, 2, 425, 427, 3, 2, 2, 2, 426, 424, 3, 2, 2, 2, 427, 428, 7, 5, 2, 2, 428, 456, 3, 2, 2, 2, 429, 430, 7, 4, 2, 2, 430, 431, 5, 58, 30, 2, 431, 435, 5, 42, 22, 2, 432, 434, 5, 40, 21, 2, 433, 432, 3, 2, 2, 2, 434, 437, 3, 2, 2, 2, 435, 433, 3, 2, 2, 2, 435, 436, 3, 2, 2, 2, 436, 438, 3, 2, 2, 2, 437, 435, 3, 2, 2, 2, 438, 439, 7, 5, 2, 2, 439, 456, 3, 2, 2, 2, 440, 441, 7, 4, 2, 2, 441, 443, 5, 36, 19, 2, 442, 444, 5, 42, 22, 2, 443, 442, 3, 2, 2, 2, 444, 445, 3, 2, 2, 2, 445, 443, 3, 2, 2, 2, 445, 446, 3, 2, 2, 2, 446, 450, 3, 2, 2, 2, 447, 449, 5, 40, 21, 2, 448, 447, 3, 2, 2, 2, 449, 452, 3, 2, 2, 2, 450, 448, 3, 2, 2, 2, 450, 451, 3, 2, 2, 2, 451, 453, 3, 2, 2, 2, 452, 450, 3, 2, 2, 2, 453, 454, 7, 5, 2, 2, 454, 456, 3, 2, 2, 2, 455, 418, 3, 2, 2, 2, 455, 429, 3, 2, 2, 2, 455, 440, 3, 2, 2, 2, 456, 61, 3, 2, 2, 2, 457, 484, 5, 60, 31, 2, 458, 459, 7, 4, 2, 2, 459, 460, 7, 66, 2, 2, 460, 462, 7, 4, 2, 2, 461, 463, 5, 16, 9, 2, 462, 461, 3, 2, 2, 2, 463, 464, 3, 2, 2, 2, 464, 462, 3, 2, 2, 2, 464, 465, 3, 2, 2, 2, 465, 466, 3, 2, 2, 2, 466, 467, 7, 5, 2, 2, 467, 468, 7, 4, 2, 2, 468, 470, 5, 36, 19, 2, 469, 471, 5, 42, 22, 2, 470, 469, 3, 2, 2, 2, 471, 472, 3, 2, 2, 2, 472, 470, 3, 2, 2, 2, 472, 473, 3, 2, 2, 2, 473, 477, 3, 2, 2, 2, 474, 476, 5, 40, 21, 2, 475, 474, 3, 2, 2, 2, 476, 479, 3, 2, 2, 2, 477, 475, 3, 2, 2, 2, 477, 478, 3, 2, 2, 2, 478, 480, 3, 2, 2, 2, 479, 477, 3, 2, 2, 2, 480, 481, 7, 5, 2, 2, 481, 482, 7, 5, 2, 2, 482, 484, 3, 2, 2, 2, 483, 457, 3, 2, 2, 2, 483, 458, 3, 2, 2, 2, 484, 63, 3, 2, 2, 2, 485, 486, 7, 106, 2, 2, 486, 488, 7, 4, 2, 2, 487, 489, 5, 56, 29, 2, 488, 487, 3, 2, 2, 2, 489, 490, 3, 2, 2, 2, 490, 488, 3, 2, 2, 2, 490, 491, 3, 2, 2, 2, 491, 492, 3, 2, 2, 2, 492, 493, 7, 5, 2, 2, 493, 515, 3, 2, 2, 2, 494, 495, 7, 82, 2, 2, 495, 497, 7, 4, 2, 2, 496, 498, 5, 62, 32, 2, 497, 496, 3, 2, 2, 2, 498, 499, 3, 2, 2, 2, 499, 497, 3, 2, 2, 2, 499, 500, 3, 2, 2, 2, 500, 501, 3, 2, 2, 2, 501, 502, 7, 5, 2, 2, 502, 515, 3, 2, 2, 2, 503, 504, 7, 107, 2, 2, 504, 515, 5, 26, 14, 2, 505, 506, 7, 83, 2, 2, 506, 515, 5, 26, 14, 2, 507, 508, 7, 78, 2, 2, 508, 515, 5, 26, 14, 2, 509, 510, 7, 111, 2, 2, 510, 515, 5, 26, 14, 2, 511, 512, 7, 91, 2, 2, 512, 515, 5, 26, 14, 2, 513, 515, 5, 40, 21, 2, 514, 485, 3, 2, 2, 2, 514, 494, 3, 2, 2, 2, 514, 503, 3, 2, 2, 2, 514, 505, 3, 2, 2, 2, 514, 507, 3, 2, 2, 2, 514, 509, 3, 2, 2, 2, 514, 511, 3, 2, 2, 2, 514, 513, 3, 2, 2, 2, 515, 65, 3, 2, 2, 2, 516, 517, 7, 4, 2, 2, 517, 518, 7, 20, 2, 2, 518, 520, 5, 16, 9, 2, 519, 521, 5, 64, 33, 2, 520, 519, 3, 2, 2, 2, 521, 522, 3, 2, 2, 2, 522, 520, 3, 2, 2, 2, 522, 523, 3, 2, 2, 2, 523, 524, 3, 2, 2, 2, 524, 525, 7, 5, 2, 2, 525, 67, 3, 2, 2, 2, 526, 527, 7, 110, 2, 2, 527, 529, 7, 4, 2, 2, 528, 530, 5, 16, 9, 2, 529, 528, 3, 2, 2, 2, 530, 531, 3, 2, 2, 2, 531, 529, 3, 2, 2, 2, 531, 532, 3, 2, 2, 2, 532, 533, 3, 2, 2, 2, 533, 534, 7, 5, 2, 2, 534, 545, 3, 2, 2, 2, 535, 536, 7, 86, 2, 2, 536, 545, 5, 26, 14, 2, 537, 538, 7, 81, 2, 2, 538, 545, 5, 26, 14, 2, 539, 540, 7, 111, 2, 2, 540, 545, 5, 26, 14, 2, 541, 542, 7, 91, 2, 2, 542, 545, 5, 26, 14, 2, 543, 545, 5, 40, 21, 2, 544, 526, 3, 2, 2, 2, 544, 535, 3, 2, 2, 2, 544, 537, 3, 2, 2, 2, 544, 539, 3, 2, 2, 2, 544, 541, 3, 2, 2, 2, 544, 543, 3, 2, 2, 2, 545, 69, 3, 2, 2, 2, 546, 547, 7, 4, 2, 2, 547, 548, 7, 16, 2, 2, 548, 550, 5, 16, 9, 2, 549, 551, 5, 68, 35, 2, 550, 549, 3, 2, 2, 2, 551, 552, 3, 2, 2, 2, 552, 550, 3, 2, 2, 2, 552, 553, 3, 2, 2, 2, 553, 554, 3, 2, 2, 2, 554, 555, 7, 5, 2, 2, 555, 71, 3, 2, 2, 2, 556, 557, 7, 4, 2, 2, 557, 558, 5, 16, 9, 2, 558, 559, 5, 18, 10, 2, 559, 560, 7, 5, 2, 2, 560, 73, 3, 2, 2, 2, 561, 562, 7, 4, 2, 2, 562, 563, 5, 16, 9, 2, 563, 564, 5, 42, 22, 2, 564, 565, 7, 5, 2, 2, 565, 75, 3, 2, 2, 2, 566, 567, 7, 4, 2, 2, 567, 571, 5, 16, 9, 2, 568, 570, 5, 74, 38, 2, 569, 568, 3, 2, 2, 2, 570, 573, 3, 2, 2, 2, 571, 569, 3, 2, 2, 2, 571, 572, 3, 2, 2, 2, 572, 574, 3, 2, 2, 2, 573, 571, 3, 2, 2, 2, 574, 575, 7, 5, 2, 2, 575, 77, 3, 2, 2, 2, 576, 578, 7, 4, 2, 2, 577, 579, 5, 76, 39, 2, 578, 577, 3, 2, 2, 2, 579, 580, 3, 2, 2, 2, 580, 578, 3, 2, 2, 2, 580, 581, 3, 2, 2, 2, 581, 582, 3, 2, 2, 2, 582, 583, 7, 5, 2, 2, 583, 603, 3, 2, 2, 2, 584, 585, 7, 4, 2, 2, 585, 586, 7, 66, 2, 2, 586, 588, 7, 4, 2, 2, 587, 589, 5, 16, 9, 2, 588, 587, 3, 2, 2, 2, 589, 590, 3, 2, 2, 2, 590, 588, 3, 2, 2, 2, 590, 591, 3, 2, 2, 2, 591, 592, 3, 2, 2, 2, 592, 593, 7, 5, 2, 2, 593, 595, 7, 4, 2, 2, 594, 596, 5, 76, 39, 2, 595, 594, 3, 2, 2, 2, 596, 597, 3, 2, 2, 2, 597, 595, 3, 2, 2, 2, 597, 598, 3, 2, 2, 2, 598, 599, 3, 2, 2, 2, 599, 600, 7, 5, 2, 2, 600, 601, 7, 5, 2, 2, 601, 603, 3, 2, 2, 2, 602, 576, 3, 2, 2, 2, 602, 584, 3, 2, 2, 2, 603, 79, 3, 2, 2, 2, 604, 605, 7, 4, 2, 2, 605, 606, 5, 16, 9, 2, 606, 610, 7, 4, 2, 2, 607, 609, 5, 48, 25, 2, 608, 607, 3, 2, 2, 2, 609, 612, 3, 2, 2, 2, 610, 608, 3, 2, 2, 2, 610, 611, 3, 2, 2, 2, 611, 613, 3, 2, 2, 2, 612, 610, 3, 2, 2, 2, 613, 614, 7, 5, 2, 2, 614, 615, 5, 42, 22, 2, 615, 616, 7, 5, 2, 2, 616, 81, 3, 2, 2, 2, 617, 618, 5, 16, 9, 2, 618, 622, 7, 4, 2, 2, 619, 621, 5, 48, 25, 2, 620, 619, 3, 2, 2, 2, 621, 624, 3, 2, 2, 2, 622, 620, 3, 2, 2, 2, 622, 623, 3, 2, 2, 2, 623, 625, 3, 2, 2, 2, 624, 622, 3, 2, 2, 2, 625, 626, 7, 5, 2, 2, 626, 627, 5, 42, 22, 2, 627, 628, 5, 54, 28, 2, 628, 83, 3, 2, 2, 2, 629, 636, 5, 16, 9, 2, 630, 631, 7, 4, 2, 2, 631, 632, 7, 9, 2, 2, 632, 633, 5, 16, 9, 2, 633, 634, 7, 5, 2, 2, 634, 636, 3, 2, 2, 2, 635, 629, 3, 2, 2, 2, 635, 630, 3, 2, 2, 2, 636, 85, 3, 2, 2, 2, 637, 639, 5, 148, 75, 2, 638, 637, 3, 2, 2, 2, 639, 642, 3, 2, 2, 2, 640, 638, 3, 2, 2, 2, 640, 641, 3, 2, 2, 2, 641, 87, 3, 2, 2, 2, 642, 640, 3, 2, 2, 2, 643, 644, 7, 25, 2, 2, 644, 89, 3, 2, 2, 2, 645, 646, 7, 26, 2, 2, 646, 91, 3, 2, 2, 2, 647, 648, 7, 27, 2, 2, 648, 93, 3, 2, 2, 2, 649, 650, 7, 28, 2, 2, 650, 95, 3, 2, 2, 2, 651, 652, 7, 29, 2, 2, 652, 97, 3, 2, 2, 2, 653, 654, 7, 30, 2, 2, 654, 99, 3, 2, 2, 2, 655, 656, 7, 31, 2, 2, 656, 101, 3, 2, 2, 2, 657, 658, 7, 32, 2, 2, 658, 103, 3, 2, 2, 2, 659, 660, 7, 33, 2, 2, 660, 105, 3, 2, 2, 2, 661, 662, 7, 34, 2, 2, 662, 107, 3, 2, 2, 2, 663, 664, 7, 35, 2, 2, 664, 109, 3, 2, 2, 2, 665, 666, 7, 36, 2, 2, 666, 111, 3, 2, 2, 2, 667, 668, 7, 37, 2, 2, 668, 113, 3, 2, 2, 2, 669, 670, 7, 38, 2, 2, 670, 115, 3, 2, 2, 2, 671, 672, 7, 39, 2, 2, 672, 117, 3, 2, 2, 2, 673, 674, 7, 40, 2, 2, 674, 119, 3, 2, 2, 2, 675, 676, 7, 41, 2, 2, 676, 121, 3, 2, 2, 2, 677, 678, 7, 42, 2, 2, 678, 123, 3, 2, 2, 2, 679, 680, 7, 43, 2, 2, 680, 125, 3, 2, 2, 2, 681, 682, 7, 44, 2, 2, 682, 127, 3, 2, 2, 2, 683, 684, 7, 45, 2, 2, 684, 129, 3, 2, 2, 2, 685, 686, 7, 46, 2, 2, 686, 131, 3, 2, 2, 2, 687, 688, 7, 47, 2, 2, 688, 133, 3, 2, 2, 2, 689, 690, 7, 48, 2, 2, 690, 135, 3, 2, 2, 2, 691, 692, 7, 49, 2, 2, 692, 137, 3, 2, 2, 2, 693, 694, 7, 50, 2, 2, 694, 139, 3, 2, 2, 2, 695, 696, 7, 51, 2, 2, 696, 141, 3, 2, 2, 2, 697, 698, 7, 52, 2, 2, 698, 143, 3, 2, 2, 2, 699, 700, 7, 53, 2, 2, 700, 145, 3, 2, 2, 2, 701, 702, 7, 54, 2, 2, 702, 147, 3, 2, 2, 2, 703, 704, 7, 4, 2, 2, 704, 705, 5, 88, 45, 2, 705, 706, 5, 54, 28, 2, 706, 707, 7, 5, 2, 2, 707, 896, 3, 2, 2, 2, 708, 709, 7, 4, 2, 2, 709, 710, 5, 90, 46, 2, 710, 711, 7, 5, 2, 2, 711, 896, 3, 2, 2, 2, 712, 713, 7, 4, 2, 2, 713, 714, 5, 92, 47, 2, 714, 715, 7, 5, 2, 2, 715, 896, 3, 2, 2, 2, 716, 717, 7, 4, 2, 2, 717, 718, 5, 94, 48, 2, 718, 719, 5, 16, 9, 2, 719, 720, 5, 42, 22, 2, 720, 721, 7, 5, 2, 2, 721, 896, 3, 2, 2, 2, 722, 723, 7, 4, 2, 2, 723, 724, 5, 96, 49, 2, 724, 725, 5, 16, 9, 2, 725, 726, 5, 78, 40, 2, 726, 727, 7, 5, 2, 2, 727, 896, 3, 2, 2, 2, 728, 729, 7, 4, 2, 2, 729, 730, 5, 98, 50, 2, 730, 732, 7, 4, 2, 2, 731, 733, 5, 72, 37, 2, 732, 731, 3, 2, 2, 2, 733, 734, 3, 2, 2, 2, 734, 732, 3, 2, 2, 2, 734, 735, 3, 2, 2, 2, 735, 736, 3, 2, 2, 2, 736, 737, 7, 5, 2, 2, 737, 739, 7, 4, 2, 2, 738, 740, 5, 78, 40, 2, 739, 738, 3, 2, 2, 2, 740, 741, 3, 2, 2, 2, 741, 739, 3, 2, 2, 2, 741, 742, 3, 2, 2, 2, 742, 743, 3, 2, 2, 2, 743, 744, 7, 5, 2, 2, 744, 745, 7, 5, 2, 2, 745, 896, 3, 2, 2, 2, 746, 747, 7, 4, 2, 2, 747, 748, 5, 100, 51, 2, 748, 749, 5, 16, 9, 2, 749, 753, 7, 4, 2, 2, 750, 752, 5, 42, 22, 2, 751, 750, 3, 2, 2, 2, 752, 755, 3, 2, 2, 2, 753, 751, 3, 2, 2, 2, 753, 754, 3, 2, 2, 2, 754, 756, 3, 2, 2, 2, 755, 753, 3, 2, 2, 2, 756, 757, 7, 5, 2, 2, 757, 758, 5, 42, 22, 2, 758, 759, 7, 5, 2, 2, 759, 896, 3, 2, 2, 2, 760, 761, 7, 4, 2, 2, 761, 762, 5, 102, 52, 2, 762, 763, 5, 16, 9, 2, 763, 764, 5, 18, 10, 2, 764, 765, 7, 5, 2, 2, 765, 896, 3, 2, 2, 2, 766, 767, 7, 4, 2, 2, 767, 768, 5, 104, 53, 2, 768, 769, 5, 82, 42, 2, 769, 770, 7, 5, 2, 2, 770, 896, 3, 2, 2, 2, 771, 772, 7, 4, 2, 2, 772, 773, 5, 106, 54, 2, 773, 774, 5, 82, 42, 2, 774, 775, 7, 5, 2, 2, 775, 896, 3, 2, 2, 2, 776, 777, 7, 4, 2, 2, 777, 778, 5, 108, 55, 2, 778, 780, 7, 4, 2, 2, 779, 781, 5, 80, 41, 2, 780, 779, 3, 2, 2, 2, 781, 782, 3, 2, 2, 2, 782, 780, 3, 2, 2, 2, 782, 783, 3, 2, 2, 2, 783, 784, 3, 2, 2, 2, 784, 785, 7, 5, 2, 2, 785, 787, 7, 4, 2, 2, 786, 788, 5, 54, 28, 2, 787, 786, 3, 2, 2, 2, 788, 789, 3, 2, 2, 2, 789, 787, 3, 2, 2, 2, 789, 790, 3, 2, 2, 2, 790, 791, 3, 2, 2, 2, 791, 792, 7, 5, 2, 2, 792, 793, 7, 5, 2, 2, 793, 896, 3, 2, 2, 2, 794, 795, 7, 4, 2, 2, 795, 796, 5, 110, 56, 2, 796, 797, 5, 16, 9, 2, 797, 801, 7, 4, 2, 2, 798, 800, 5, 16, 9, 2, 799, 798, 3, 2, 2, 2, 800, 803, 3, 2, 2, 2, 801, 799, 3, 2, 2, 2, 801, 802, 3, 2, 2, 2, 802, 804, 3, 2, 2, 2, 803, 801, 3, 2, 2, 2, 804, 805, 7, 5, 2, 2, 805, 806, 5, 42, 22, 2, 806, 807, 7, 5, 2, 2, 807, 896, 3, 2, 2, 2, 808, 809, 7, 4, 2, 2, 809, 810, 5, 112, 57, 2, 810, 811, 5, 26, 14, 2, 811, 812, 7, 5, 2, 2, 812, 896, 3, 2, 2, 2, 813, 814, 7, 4, 2, 2, 814, 815, 5, 114, 58, 2, 815, 816, 7, 5, 2, 2, 816, 896, 3, 2, 2, 2, 817, 818, 7, 4, 2, 2, 818, 819, 5, 116, 59, 2, 819, 820, 7, 5, 2, 2, 820, 896, 3, 2, 2, 2, 821, 822, 7, 4, 2, 2, 822, 823, 5, 118, 60, 2, 823, 824, 7, 5, 2, 2, 824, 896, 3, 2, 2, 2, 825, 826, 7, 4, 2, 2, 826, 827, 5, 120, 61, 2, 827, 828, 5, 154, 78, 2, 828, 829, 7, 5, 2, 2, 829, 896, 3, 2, 2, 2, 830, 831, 7, 4, 2, 2, 831, 832, 5, 122, 62, 2, 832, 833, 7, 5, 2, 2, 833, 896, 3, 2, 2, 2, 834, 835, 7, 4, 2, 2, 835, 836, 5, 124, 63, 2, 836, 837, 5, 28, 15, 2, 837, 838, 7, 5, 2, 2, 838, 896, 3, 2, 2, 2, 839, 840, 7, 4, 2, 2, 840, 841, 5, 126, 64, 2, 841, 842, 7, 5, 2, 2, 842, 896, 3, 2, 2, 2, 843, 844, 7, 4, 2, 2, 844, 845, 5, 128, 65, 2, 845, 846, 7, 5, 2, 2, 846, 896, 3, 2, 2, 2, 847, 848, 7, 4, 2, 2, 848, 849, 5, 130, 66, 2, 849, 850, 7, 5, 2, 2, 850, 896, 3, 2, 2, 2, 851, 852, 7, 4, 2, 2, 852, 853, 5, 132, 67, 2, 853, 855, 7, 4, 2, 2, 854, 856, 5, 54, 28, 2, 855, 854, 3, 2, 2, 2, 856, 857, 3, 2, 2, 2, 857, 855, 3, 2, 2, 2, 857, 858, 3, 2, 2, 2, 858, 859, 3, 2, 2, 2, 859, 860, 7, 5, 2, 2, 860, 861, 7, 5, 2, 2, 861, 896, 3, 2, 2, 2, 862, 863, 7, 4, 2, 2, 863, 864, 5, 134, 68, 2, 864, 865, 5, 18, 10, 2, 865, 866, 7, 5, 2, 2, 866, 896, 3, 2, 2, 2, 867, 868, 7, 4, 2, 2, 868, 869, 5, 136, 69, 2, 869, 870, 5, 18, 10, 2, 870, 871, 7, 5, 2, 2, 871, 896, 3, 2, 2, 2, 872, 873, 7, 4, 2, 2, 873, 874, 5, 138, 70, 2, 874, 875, 7, 5, 2, 2, 875, 896, 3, 2, 2, 2, 876, 877, 7, 4, 2, 2, 877, 878, 5, 140, 71, 2, 878, 879, 7, 5, 2, 2, 879, 896, 3, 2, 2, 2, 880, 881, 7, 4, 2, 2, 881, 882, 5, 142, 72, 2, 882, 883, 5, 40, 21, 2, 883, 884, 7, 5, 2, 2, 884, 896, 3, 2, 2, 2, 885, 886, 7, 4, 2, 2, 886, 887, 5, 144, 73, 2, 887, 888, 5, 16, 9, 2, 888, 889, 7, 5, 2, 2, 889, 896, 3, 2, 2, 2, 890, 891, 7, 4, 2, 2, 891, 892, 5, 146, 74, 2, 892, 893, 5, 152, 77, 2, 893, 894, 7, 5, 2, 2, 894, 896, 3, 2, 2, 2, 895, 703, 3, 2, 2, 2, 895, 708, 3, 2, 2, 2, 895, 712, 3, 2, 2, 2, 895, 716, 3, 2, 2, 2, 895, 722, 3, 2, 2, 2, 895, 728, 3, 2, 2, 2, 895, 746, 3, 2, 2, 2, 895, 760, 3, 2, 2, 2, 895, 766, 3, 2, 2, 2, 895, 771, 3, 2, 2, 2, 895, 776, 3, 2, 2, 2, 895, 794, 3, 2, 2, 2, 895, 808, 3, 2, 2, 2, 895, 813, 3, 2, 2, 2, 895, 817, 3, 2, 2, 2, 895, 821, 3, 2, 2, 2, 895, 825, 3, 2, 2, 2, 895, 830, 3, 2, 2, 2, 895, 834, 3, 2, 2, 2, 895, 839, 3, 2, 2, 2, 895, 843, 3, 2, 2, 2, 895, 847, 3, 2, 2, 2, 895, 851, 3, 2, 2, 2, 895, 862, 3, 2, 2, 2, 895, 867, 3, 2, 2, 2, 895, 872, 3, 2, 2, 2, 895, 876, 3, 2, 2, 2, 895, 880, 3, 2, 2, 2, 895, 885, 3, 2, 2, 2, 895, 890, 3, 2, 2, 2, 896, 149, 3, 2, 2, 2, 897, 898, 9, 6, 2, 2, 898, 151, 3, 2, 2, 2, 899, 900, 7, 79, 2, 2, 900, 929, 5, 26, 14, 2, 901, 902, 7, 84, 2, 2, 902, 929, 5, 150, 76, 2, 903, 904, 7, 85, 2, 2, 904, 929, 5, 150, 76, 2, 905, 906, 7, 93, 2, 2, 906, 929, 5, 150, 76, 2, 907, 908, 7, 94, 2, 2, 908, 929, 5, 150, 76, 2, 909, 910, 7, 95, 2, 2, 910, 929, 5, 150, 76, 2, 911, 912, 7, 96, 2, 2, 912, 929, 5, 150, 76, 2, 913, 914, 7, 97, 2, 2, 914, 929, 5, 150, 76, 2, 915, 916, 7, 98, 2, 2, 916, 929, 5, 150, 76, 2, 917, 918, 7, 99, 2, 2, 918, 929, 5, 150, 76, 2, 919, 920, 7, 100, 2, 2, 920, 929, 5, 18, 10, 2, 921, 922, 7, 102, 2, 2, 922, 929, 5, 26, 14, 2, 923, 924, 7, 103, 2, 2, 924, 929, 5, 18, 10, 2, 925, 926, 7, 112, 2, 2, 926, 929, 5, 18, 10, 2, 927, 929, 5, 40, 21, 2, 928, 899, 3, 2, 2, 2, 928, 901, 3, 2, 2, 2, 928, 903, 3, 2, 2, 2, 928, 905, 3, 2, 2, 2, 928, 907, 3, 2, 2, 2, 928, 909, 3, 2, 2, 2, 928, 911, 3, 2, 2, 2, 928, 913, 3, 2, 2, 2, 928, 915, 3, 2, 2, 2, 928, 917, 3, 2, 2, 2, 928, 919, 3, 2, 2, 2, 928, 921, 3, 2, 2, 2, 928, 923, 3, 2, 2, 2, 928, 925, 3, 2, 2, 2, 928, 927, 3, 2, 2, 2, 929, 153, 3, 2, 2, 2, 930, 939, 7, 73, 2, 2, 931, 939, 7, 74, 2, 2, 932, 939, 7, 75, 2, 2, 933, 939, 7, 80, 2, 2, 934, 939, 7, 90, 2, 2, 935, 939, 7, 101, 2, 2, 936, 939, 7, 113, 2, 2, 937, 939, 5, 28, 15, 2, 938, 930, 3, 2, 2, 2, 938, 931, 3, 2, 2, 2, 938, 932, 3, 2, 2, 2, 938, 933, 3, 2, 2, 2, 938, 934, 3, 2, 2, 2, 938, 935, 3, 2, 2, 2, 938, 936, 3, 2, 2, 2, 938, 937, 3, 2, 2, 2, 939, 155, 3, 2, 2, 2, 940, 941, 9, 7, 2, 2, 941, 157, 3, 2, 2, 2, 942, 946, 7, 17, 2, 2, 943, 946, 7, 15, 2, 2, 944, 946, 5, 32, 17, 2, 945, 942, 3, 2, 2, 2, 945, 943, 3, 2, 2, 2, 945, 944, 3, 2, 2, 2, 946, 159, 3, 2, 2, 2, 947, 948, 7, 4, 2, 2, 948, 949, 7, 33, 2, 2, 949, 950, 5, 82, 42, 2, 950, 951, 7, 5, 2, 2, 951, 976, 3, 2, 2, 2, 952, 953, 7, 4, 2, 2, 953, 954, 7, 34, 2, 2, 954, 955, 5, 82, 42, 2, 955, 956, 7, 5, 2, 2, 956, 976, 3, 2, 2, 2, 957, 958, 7, 4, 2, 2, 958, 959, 7, 35, 2, 2, 959, 961, 7, 4, 2, 2, 960, 962, 5, 80, 41, 2, 961, 960, 3, 2, 2, 2, 962, 963, 3, 2, 2, 2, 963, 961, 3, 2, 2, 2, 963, 964, 3, 2, 2, 2, 964, 965, 3, 2, 2, 2, 965, 966, 7, 5, 2, 2, 966, 968, 7, 4, 2, 2, 967, 969, 5, 54, 28, 2, 968, 967, 3, 2, 2, 2, 969, 970, 3, 2, 2, 2, 970, 968, 3, 2, 2, 2, 970, 971, 3, 2, 2, 2, 971, 972, 3, 2, 2, 2, 972, 973, 7, 5, 2, 2, 973, 974, 7, 5, 2, 2, 974, 976, 3, 2, 2, 2, 975, 947, 3, 2, 2, 2, 975, 952, 3, 2, 2, 2, 975, 957, 3, 2, 2, 2, 976, 161, 3, 2, 2, 2, 977, 978, 7, 74, 2, 2, 978, 991, 5, 18, 10, 2, 979, 980, 7, 75, 2, 2, 980, 991, 5, 26, 14, 2, 981, 982, 7, 80, 2, 2, 982, 991, 5, 156, 79, 2, 983, 984, 7, 90, 2, 2, 984, 991, 5, 26, 14, 2, 985, 986, 7, 101, 2, 2, 986, 991, 5, 158, 80, 2, 987, 988, 7, 113, 2, 2, 988, 991, 5, 26, 14, 2, 989, 991, 5, 40, 21, 2, 990, 977, 3, 2, 2, 2, 990, 979, 3, 2, 2, 2, 990, 981, 3, 2, 2, 2, 990, 983, 3, 2, 2, 2, 990, 985, 3, 2, 2, 2, 990, 987, 3, 2, 2, 2, 990, 989, 3, 2, 2, 2, 991, 163, 3, 2, 2, 2, 992, 993, 7, 4, 2, 2, 993, 994, 5, 54, 28, 2, 994, 995, 5, 54, 28, 2, 995, 996, 7, 5, 2, 2, 996, 165, 3, 2, 2, 2, 997, 998, 7, 4, 2, 2, 998, 999, 5, 16, 9, 2, 999, 1000, 5, 150, 76, 2, 1000, 1001, 7, 5, 2, 2, 1001, 167, 3, 2, 2, 2, 1002, 1003, 9, 8, 2, 2, 1003, 169, 3, 2, 2, 2, 1004, 1005, 5, 26, 14, 2, 1005, 171, 3, 2, 2, 2, 1006, 1010, 7, 4, 2, 2, 1007, 1009, 5, 54, 28, 2, 1008, 1007, 3, 2, 2, 2, 1009, 1012, 3, 2, 2, 2, 1010, 1008, 3, 2, 2, 2, 1010, 1011, 3, 2, 2, 2, 1011, 1013, 3, 2, 2, 2, 1012, 1010, 3, 2, 2, 2, 1013, 1014, 7, 5, 2, 2, 1014, 173, 3, 2, 2, 2, 1015, 1019, 7, 4, 2, 2, 1016, 1018, 5, 166, 84, 2, 1017, 1016, 3, 2, 2, 2, 1018, 1021, 3, 2, 2, 2, 1019, 1017, 3, 2, 2, 2, 1019, 1020, 3, 2, 2, 2, 1020, 1022, 3, 2, 2, 2, 1021, 1019, 3, 2, 2, 2, 1022, 1023, 7, 5, 2, 2, 1023, 175, 3, 2, 2, 2, 1024, 1026, 7, 4, 2, 2, 1025, 1027, 5, 162, 82, 2, 1026, 1025, 3, 2, 2, 2, 1027, 1028, 3, 2, 2, 2, 1028, 1026, 3, 2, 2, 2, 1028, 1029, 3, 2, 2, 2, 1029, 1030, 3, 2, 2, 2, 1030, 1031, 7, 5, 2, 2, 1031, 177, 3, 2, 2, 2, 1032, 1036, 7, 4, 2, 2, 1033, 1035, 5, 160, 81, 2, 1034, 1033, 3, 2, 2, 2, 1035, 1038, 3, 2, 2, 2, 1036, 1034, 3, 2, 2, 2, 1036, 1037, 3, 2, 2, 2, 1037, 1039, 3, 2, 2, 2, 1038, 1036, 3, 2, 2, 2, 1039, 1040, 7, 5, 2, 2, 1040, 179, 3, 2, 2, 2, 1041, 1042, 5, 38, 20, 2, 1042, 181, 3, 2, 2, 2, 1043, 1044, 5, 32, 17, 2, 1044, 183, 3, 2, 2, 2, 1045, 1049, 7, 4, 2, 2, 1046, 1048, 5, 16, 9, 2, 1047, 1046, 3, 2, 2, 2, 1048, 1051, 3, 2, 2, 2, 1049, 1047, 3, 2, 2, 2, 1049, 1050, 3, 2, 2, 2, 1050, 1052, 3, 2, 2, 2, 1051, 1049, 3, 2, 2, 2, 1052, 1053, 7, 5, 2, 2, 1053, 185, 3, 2, 2, 2, 1054, 1058, 7, 4, 2, 2, 1055, 1057, 5, 16, 9, 2, 1056, 1055, 3, 2, 2, 2, 1057, 1060, 3, 2, 2, 2, 1058, 1056, 3, 2, 2, 2, 1058, 1059, 3, 2, 2, 2, 1059, 1061, 3, 2, 2, 2, 1060, 1058, 3, 2, 2, 2, 1061, 1062, 7, 5, 2, 2, 1062, 187, 3, 2, 2, 2, 1063, 1065, 7, 4, 2, 2, 1064, 1066, 5, 164, 83, 2, 1065, 1064, 3, 2, 2, 2, 1066, 1067, 3, 2, 2, 2, 1067, 1065, 3, 2, 2, 2, 1067, 1068, 3, 2, 2, 2, 1068, 1069, 3, 2, 2, 2, 1069, 1070, 7, 5, 2, 2, 1070, 189, 3, 2, 2, 2, 1071, 1083, 5, 168, 85, 2, 1072, 1083, 5, 170, 86, 2, 1073, 1083, 5, 172, 87, 2, 1074, 1083, 5, 174, 88, 2, 1075, 1083, 5, 176, 89, 2, 1076, 1083, 5, 178, 90, 2, 1077, 1083, 5, 180, 91, 2, 1078, 1083, 5, 182, 92, 2, 1079, 1083, 5, 184, 93, 2, 1080, 1083, 5, 186, 94, 2, 1081, 1083, 5, 188, 95, 2, 1082, 1071, 3, 2, 2, 2, 1082, 1072, 3, 2, 2, 2, 1082, 1073, 3, 2, 2, 2, 1082, 1074, 3, 2, 2, 2, 1082, 1075, 3, 2, 2, 2, 1082, 1076, 3, 2, 2, 2, 1082, 1077, 3, 2, 2, 2, 1082, 1078, 3, 2, 2, 2, 1082, 1079, 3, 2, 2, 2, 1082, 1080, 3, 2, 2, 2, 1082, 1081, 3, 2, 2, 2, 1083, 191, 3, 2, 2, 2, 1084, 1093, 7, 19, 2, 2, 1085, 1093, 5, 190, 96, 2, 1086, 1093, 7, 23, 2, 2, 1087, 1088, 7, 4, 2, 2, 1088, 1089, 7, 12, 2, 2, 1089, 1090, 5, 26, 14, 2, 1090, 1091, 7, 5, 2, 2, 1091, 1093, 3, 2, 2, 2, 1092, 1084, 3, 2, 2, 2, 1092, 1085, 3, 2, 2, 2, 1092, 1086, 3, 2, 2, 2, 1092, 1087, 3, 2, 2, 2, 1093, 193, 3, 2, 2, 2, 76, 204, 214, 229, 236, 245, 249, 253, 262, 266, 274, 278, 284, 292, 296, 305, 323, 327, 341, 351, 363, 375, 388, 399, 403, 411, 424, 435, 445, 450, 455, 464, 472, 477, 483, 490, 499, 514, 522, 531, 544, 552, 571, 580, 590, 597, 602, 610, 622, 635, 640, 734, 741, 753, 782, 789, 801, 857, 895, 928, 938, 945, 963, 970, 975, 990, 1010, 1019, 1028, 1036, 1049, 1058, 1067, 1082, 1092] \ No newline at end of file diff --git a/C++Verifier/src/antlr4/SMTLIBv2.tokens b/C++Verifier/src/antlr4/SMTLIBv2.tokens new file mode 100644 index 0000000..3ec2173 --- /dev/null +++ b/C++Verifier/src/antlr4/SMTLIBv2.tokens @@ -0,0 +1,217 @@ +Comment=1 +ParOpen=2 +ParClose=3 +Semicolon=4 +String=5 +QuotedSymbol=6 +PS_Not=7 +PS_Bool=8 +PS_ContinuedExecution=9 +PS_Error=10 +PS_False=11 +PS_ImmediateExit=12 +PS_Incomplete=13 +PS_Logic=14 +PS_Memout=15 +PS_Sat=16 +PS_Success=17 +PS_Theory=18 +PS_True=19 +PS_Unknown=20 +PS_Unsupported=21 +PS_Unsat=22 +CMD_Assert=23 +CMD_CheckSat=24 +CMD_CheckSatAssuming=25 +CMD_DeclareConst=26 +CMD_DeclareDatatype=27 +CMD_DeclareDatatypes=28 +CMD_DeclareFun=29 +CMD_DeclareSort=30 +CMD_DefineFun=31 +CMD_DefineFunRec=32 +CMD_DefineFunsRec=33 +CMD_DefineSort=34 +CMD_Echo=35 +CMD_Exit=36 +CMD_GetAssertions=37 +CMD_GetAssignment=38 +CMD_GetInfo=39 +CMD_GetModel=40 +CMD_GetOption=41 +CMD_GetProof=42 +CMD_GetUnsatAssumptions=43 +CMD_GetUnsatCore=44 +CMD_GetValue=45 +CMD_Pop=46 +CMD_Push=47 +CMD_Reset=48 +CMD_ResetAssertions=49 +CMD_SetInfo=50 +CMD_SetLogic=51 +CMD_SetOption=52 +GRW_Exclamation=53 +GRW_Underscore=54 +GRW_As=55 +GRW_Binary=56 +GRW_Decimal=57 +GRW_Exists=58 +GRW_Hexadecimal=59 +GRW_Forall=60 +GRW_Let=61 +GRW_Match=62 +GRW_Numeral=63 +GRW_Par=64 +GRW_String=65 +Numeral=66 +Binary=67 +HexDecimal=68 +Decimal=69 +Colon=70 +PK_AllStatistics=71 +PK_AssertionStackLevels=72 +PK_Authors=73 +PK_Category=74 +PK_Chainable=75 +PK_Definition=76 +PK_DiagnosticOutputChannel=77 +PK_ErrorBehaviour=78 +PK_Extension=79 +PK_Funs=80 +PK_FunsDescription=81 +PK_GlobalDeclarations=82 +PK_InteractiveMode=83 +PK_Language=84 +PK_LeftAssoc=85 +PK_License=86 +PK_Named=87 +PK_Name=88 +PK_Notes=89 +PK_Pattern=90 +PK_PrintSuccess=91 +PK_ProduceAssertions=92 +PK_ProduceAssignments=93 +PK_ProduceModels=94 +PK_ProduceProofs=95 +PK_ProduceUnsatAssumptions=96 +PK_ProduceUnsatCores=97 +PK_RandomSeed=98 +PK_ReasonUnknown=99 +PK_RegularOutputChannel=100 +PK_ReproducibleResourceLimit=101 +PK_RightAssoc=102 +PK_SmtLibVersion=103 +PK_Sorts=104 +PK_SortsDescription=105 +PK_Source=106 +PK_Status=107 +PK_Theories=108 +PK_Values=109 +PK_Verbosity=110 +PK_Version=111 +UndefinedSymbol=112 +WS=113 +'('=2 +')'=3 +';'=4 +'not'=7 +'Bool'=8 +'continued-execution'=9 +'error'=10 +'false'=11 +'immediate-exit'=12 +'incomplete'=13 +'logic'=14 +'memout'=15 +'sat'=16 +'success'=17 +'theory'=18 +'true'=19 +'unknown'=20 +'unsupported'=21 +'unsat'=22 +'assert'=23 +'check-sat'=24 +'check-sat-assuming'=25 +'declare-const'=26 +'declare-datatype'=27 +'declare-datatypes'=28 +'declare-fun'=29 +'declare-sort'=30 +'define-fun'=31 +'define-fun-rec'=32 +'define-funs-rec'=33 +'define-sort'=34 +'echo'=35 +'exit'=36 +'get-assertions'=37 +'get-assignment'=38 +'get-info'=39 +'get-model'=40 +'get-option'=41 +'get-proof'=42 +'get-unsat-assumptions'=43 +'get-unsat-core'=44 +'get-value'=45 +'pop'=46 +'push'=47 +'reset'=48 +'reset-assertions'=49 +'set-info'=50 +'set-logic'=51 +'set-option'=52 +'!'=53 +'_'=54 +'as'=55 +'BINARY'=56 +'DECIMAL'=57 +'exists'=58 +'HEXADECIMAL'=59 +'forall'=60 +'let'=61 +'match'=62 +'NUMERAL'=63 +'par'=64 +'string'=65 +':'=70 +':all-statistics'=71 +':assertion-stack-levels'=72 +':authors'=73 +':category'=74 +':chainable'=75 +':definition'=76 +':diagnostic-output-channel'=77 +':error-behavior'=78 +':extensions'=79 +':funs'=80 +':funs-description'=81 +':global-declarations'=82 +':interactive-mode'=83 +':language'=84 +':left-assoc'=85 +':license'=86 +':named'=87 +':name'=88 +':notes'=89 +':pattern'=90 +':print-success'=91 +':produce-assertions'=92 +':produce-assignments'=93 +':produce-models'=94 +':produce-proofs'=95 +':produce-unsat-assumptions'=96 +':produce-unsat-cores'=97 +':random-seed'=98 +':reason-unknown'=99 +':regular-output-channel'=100 +':reproducible-resource-limit'=101 +':right-assoc'=102 +':smt-lib-version'=103 +':sorts'=104 +':sorts-description'=105 +':source'=106 +':status'=107 +':theories'=108 +':values'=109 +':verbosity'=110 +':version'=111 diff --git a/C++Verifier/src/antlr4/SMTLIBv2BaseListener.cpp b/C++Verifier/src/antlr4/SMTLIBv2BaseListener.cpp new file mode 100644 index 0000000..bec6f0d --- /dev/null +++ b/C++Verifier/src/antlr4/SMTLIBv2BaseListener.cpp @@ -0,0 +1,7 @@ + +// Generated from SMTLIBv2.g4 by ANTLR 4.8 + + +#include "SMTLIBv2BaseListener.h" + + diff --git a/C++Verifier/src/antlr4/SMTLIBv2BaseListener.h b/C++Verifier/src/antlr4/SMTLIBv2BaseListener.h new file mode 100644 index 0000000..3f034b1 --- /dev/null +++ b/C++Verifier/src/antlr4/SMTLIBv2BaseListener.h @@ -0,0 +1,314 @@ + +// Generated from SMTLIBv2.g4 by ANTLR 4.8 + +#pragma once + + +#include "antlr4-runtime.h" +#include "SMTLIBv2Listener.h" + + +/** + * This class provides an empty implementation of SMTLIBv2Listener, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. + */ +class SMTLIBv2BaseListener : public SMTLIBv2Listener { +public: + + virtual void enterStart(SMTLIBv2Parser::StartContext * /*ctx*/) override { } + virtual void exitStart(SMTLIBv2Parser::StartContext * /*ctx*/) override { } + + virtual void enterResponse(SMTLIBv2Parser::ResponseContext * /*ctx*/) override { } + virtual void exitResponse(SMTLIBv2Parser::ResponseContext * /*ctx*/) override { } + + virtual void enterGeneralReservedWord(SMTLIBv2Parser::GeneralReservedWordContext * /*ctx*/) override { } + virtual void exitGeneralReservedWord(SMTLIBv2Parser::GeneralReservedWordContext * /*ctx*/) override { } + + virtual void enterSimpleSymbol(SMTLIBv2Parser::SimpleSymbolContext * /*ctx*/) override { } + virtual void exitSimpleSymbol(SMTLIBv2Parser::SimpleSymbolContext * /*ctx*/) override { } + + virtual void enterQuotedSymbol(SMTLIBv2Parser::QuotedSymbolContext * /*ctx*/) override { } + virtual void exitQuotedSymbol(SMTLIBv2Parser::QuotedSymbolContext * /*ctx*/) override { } + + virtual void enterPredefSymbol(SMTLIBv2Parser::PredefSymbolContext * /*ctx*/) override { } + virtual void exitPredefSymbol(SMTLIBv2Parser::PredefSymbolContext * /*ctx*/) override { } + + virtual void enterPredefKeyword(SMTLIBv2Parser::PredefKeywordContext * /*ctx*/) override { } + virtual void exitPredefKeyword(SMTLIBv2Parser::PredefKeywordContext * /*ctx*/) override { } + + virtual void enterSymbol(SMTLIBv2Parser::SymbolContext * /*ctx*/) override { } + virtual void exitSymbol(SMTLIBv2Parser::SymbolContext * /*ctx*/) override { } + + virtual void enterNumeral(SMTLIBv2Parser::NumeralContext * /*ctx*/) override { } + virtual void exitNumeral(SMTLIBv2Parser::NumeralContext * /*ctx*/) override { } + + virtual void enterDecimal(SMTLIBv2Parser::DecimalContext * /*ctx*/) override { } + virtual void exitDecimal(SMTLIBv2Parser::DecimalContext * /*ctx*/) override { } + + virtual void enterHexadecimal(SMTLIBv2Parser::HexadecimalContext * /*ctx*/) override { } + virtual void exitHexadecimal(SMTLIBv2Parser::HexadecimalContext * /*ctx*/) override { } + + virtual void enterBinary(SMTLIBv2Parser::BinaryContext * /*ctx*/) override { } + virtual void exitBinary(SMTLIBv2Parser::BinaryContext * /*ctx*/) override { } + + virtual void enterString(SMTLIBv2Parser::StringContext * /*ctx*/) override { } + virtual void exitString(SMTLIBv2Parser::StringContext * /*ctx*/) override { } + + virtual void enterKeyword(SMTLIBv2Parser::KeywordContext * /*ctx*/) override { } + virtual void exitKeyword(SMTLIBv2Parser::KeywordContext * /*ctx*/) override { } + + virtual void enterSpec_constant(SMTLIBv2Parser::Spec_constantContext * /*ctx*/) override { } + virtual void exitSpec_constant(SMTLIBv2Parser::Spec_constantContext * /*ctx*/) override { } + + virtual void enterS_expr(SMTLIBv2Parser::S_exprContext * /*ctx*/) override { } + virtual void exitS_expr(SMTLIBv2Parser::S_exprContext * /*ctx*/) override { } + + virtual void enterIndex(SMTLIBv2Parser::IndexContext * /*ctx*/) override { } + virtual void exitIndex(SMTLIBv2Parser::IndexContext * /*ctx*/) override { } + + virtual void enterIdentifier(SMTLIBv2Parser::IdentifierContext * /*ctx*/) override { } + virtual void exitIdentifier(SMTLIBv2Parser::IdentifierContext * /*ctx*/) override { } + + virtual void enterAttribute_value(SMTLIBv2Parser::Attribute_valueContext * /*ctx*/) override { } + virtual void exitAttribute_value(SMTLIBv2Parser::Attribute_valueContext * /*ctx*/) override { } + + virtual void enterAttribute(SMTLIBv2Parser::AttributeContext * /*ctx*/) override { } + virtual void exitAttribute(SMTLIBv2Parser::AttributeContext * /*ctx*/) override { } + + virtual void enterSort(SMTLIBv2Parser::SortContext * /*ctx*/) override { } + virtual void exitSort(SMTLIBv2Parser::SortContext * /*ctx*/) override { } + + virtual void enterQual_identifer(SMTLIBv2Parser::Qual_identiferContext * /*ctx*/) override { } + virtual void exitQual_identifer(SMTLIBv2Parser::Qual_identiferContext * /*ctx*/) override { } + + virtual void enterVar_binding(SMTLIBv2Parser::Var_bindingContext * /*ctx*/) override { } + virtual void exitVar_binding(SMTLIBv2Parser::Var_bindingContext * /*ctx*/) override { } + + virtual void enterSorted_var(SMTLIBv2Parser::Sorted_varContext * /*ctx*/) override { } + virtual void exitSorted_var(SMTLIBv2Parser::Sorted_varContext * /*ctx*/) override { } + + virtual void enterPattern(SMTLIBv2Parser::PatternContext * /*ctx*/) override { } + virtual void exitPattern(SMTLIBv2Parser::PatternContext * /*ctx*/) override { } + + virtual void enterMatch_case(SMTLIBv2Parser::Match_caseContext * /*ctx*/) override { } + virtual void exitMatch_case(SMTLIBv2Parser::Match_caseContext * /*ctx*/) override { } + + virtual void enterTerm(SMTLIBv2Parser::TermContext * /*ctx*/) override { } + virtual void exitTerm(SMTLIBv2Parser::TermContext * /*ctx*/) override { } + + virtual void enterSort_symbol_decl(SMTLIBv2Parser::Sort_symbol_declContext * /*ctx*/) override { } + virtual void exitSort_symbol_decl(SMTLIBv2Parser::Sort_symbol_declContext * /*ctx*/) override { } + + virtual void enterMeta_spec_constant(SMTLIBv2Parser::Meta_spec_constantContext * /*ctx*/) override { } + virtual void exitMeta_spec_constant(SMTLIBv2Parser::Meta_spec_constantContext * /*ctx*/) override { } + + virtual void enterFun_symbol_decl(SMTLIBv2Parser::Fun_symbol_declContext * /*ctx*/) override { } + virtual void exitFun_symbol_decl(SMTLIBv2Parser::Fun_symbol_declContext * /*ctx*/) override { } + + virtual void enterPar_fun_symbol_decl(SMTLIBv2Parser::Par_fun_symbol_declContext * /*ctx*/) override { } + virtual void exitPar_fun_symbol_decl(SMTLIBv2Parser::Par_fun_symbol_declContext * /*ctx*/) override { } + + virtual void enterTheory_attribute(SMTLIBv2Parser::Theory_attributeContext * /*ctx*/) override { } + virtual void exitTheory_attribute(SMTLIBv2Parser::Theory_attributeContext * /*ctx*/) override { } + + virtual void enterTheory_decl(SMTLIBv2Parser::Theory_declContext * /*ctx*/) override { } + virtual void exitTheory_decl(SMTLIBv2Parser::Theory_declContext * /*ctx*/) override { } + + virtual void enterLogic_attribue(SMTLIBv2Parser::Logic_attribueContext * /*ctx*/) override { } + virtual void exitLogic_attribue(SMTLIBv2Parser::Logic_attribueContext * /*ctx*/) override { } + + virtual void enterLogic(SMTLIBv2Parser::LogicContext * /*ctx*/) override { } + virtual void exitLogic(SMTLIBv2Parser::LogicContext * /*ctx*/) override { } + + virtual void enterSort_dec(SMTLIBv2Parser::Sort_decContext * /*ctx*/) override { } + virtual void exitSort_dec(SMTLIBv2Parser::Sort_decContext * /*ctx*/) override { } + + virtual void enterSelector_dec(SMTLIBv2Parser::Selector_decContext * /*ctx*/) override { } + virtual void exitSelector_dec(SMTLIBv2Parser::Selector_decContext * /*ctx*/) override { } + + virtual void enterConstructor_dec(SMTLIBv2Parser::Constructor_decContext * /*ctx*/) override { } + virtual void exitConstructor_dec(SMTLIBv2Parser::Constructor_decContext * /*ctx*/) override { } + + virtual void enterDatatype_dec(SMTLIBv2Parser::Datatype_decContext * /*ctx*/) override { } + virtual void exitDatatype_dec(SMTLIBv2Parser::Datatype_decContext * /*ctx*/) override { } + + virtual void enterFunction_dec(SMTLIBv2Parser::Function_decContext * /*ctx*/) override { } + virtual void exitFunction_dec(SMTLIBv2Parser::Function_decContext * /*ctx*/) override { } + + virtual void enterFunction_def(SMTLIBv2Parser::Function_defContext * /*ctx*/) override { } + virtual void exitFunction_def(SMTLIBv2Parser::Function_defContext * /*ctx*/) override { } + + virtual void enterProp_literal(SMTLIBv2Parser::Prop_literalContext * /*ctx*/) override { } + virtual void exitProp_literal(SMTLIBv2Parser::Prop_literalContext * /*ctx*/) override { } + + virtual void enterScript(SMTLIBv2Parser::ScriptContext * /*ctx*/) override { } + virtual void exitScript(SMTLIBv2Parser::ScriptContext * /*ctx*/) override { } + + virtual void enterCmd_assert(SMTLIBv2Parser::Cmd_assertContext * /*ctx*/) override { } + virtual void exitCmd_assert(SMTLIBv2Parser::Cmd_assertContext * /*ctx*/) override { } + + virtual void enterCmd_checkSat(SMTLIBv2Parser::Cmd_checkSatContext * /*ctx*/) override { } + virtual void exitCmd_checkSat(SMTLIBv2Parser::Cmd_checkSatContext * /*ctx*/) override { } + + virtual void enterCmd_checkSatAssuming(SMTLIBv2Parser::Cmd_checkSatAssumingContext * /*ctx*/) override { } + virtual void exitCmd_checkSatAssuming(SMTLIBv2Parser::Cmd_checkSatAssumingContext * /*ctx*/) override { } + + virtual void enterCmd_declareConst(SMTLIBv2Parser::Cmd_declareConstContext * /*ctx*/) override { } + virtual void exitCmd_declareConst(SMTLIBv2Parser::Cmd_declareConstContext * /*ctx*/) override { } + + virtual void enterCmd_declareDatatype(SMTLIBv2Parser::Cmd_declareDatatypeContext * /*ctx*/) override { } + virtual void exitCmd_declareDatatype(SMTLIBv2Parser::Cmd_declareDatatypeContext * /*ctx*/) override { } + + virtual void enterCmd_declareDatatypes(SMTLIBv2Parser::Cmd_declareDatatypesContext * /*ctx*/) override { } + virtual void exitCmd_declareDatatypes(SMTLIBv2Parser::Cmd_declareDatatypesContext * /*ctx*/) override { } + + virtual void enterCmd_declareFun(SMTLIBv2Parser::Cmd_declareFunContext * /*ctx*/) override { } + virtual void exitCmd_declareFun(SMTLIBv2Parser::Cmd_declareFunContext * /*ctx*/) override { } + + virtual void enterCmd_declareSort(SMTLIBv2Parser::Cmd_declareSortContext * /*ctx*/) override { } + virtual void exitCmd_declareSort(SMTLIBv2Parser::Cmd_declareSortContext * /*ctx*/) override { } + + virtual void enterCmd_defineFun(SMTLIBv2Parser::Cmd_defineFunContext * /*ctx*/) override { } + virtual void exitCmd_defineFun(SMTLIBv2Parser::Cmd_defineFunContext * /*ctx*/) override { } + + virtual void enterCmd_defineFunRec(SMTLIBv2Parser::Cmd_defineFunRecContext * /*ctx*/) override { } + virtual void exitCmd_defineFunRec(SMTLIBv2Parser::Cmd_defineFunRecContext * /*ctx*/) override { } + + virtual void enterCmd_defineFunsRec(SMTLIBv2Parser::Cmd_defineFunsRecContext * /*ctx*/) override { } + virtual void exitCmd_defineFunsRec(SMTLIBv2Parser::Cmd_defineFunsRecContext * /*ctx*/) override { } + + virtual void enterCmd_defineSort(SMTLIBv2Parser::Cmd_defineSortContext * /*ctx*/) override { } + virtual void exitCmd_defineSort(SMTLIBv2Parser::Cmd_defineSortContext * /*ctx*/) override { } + + virtual void enterCmd_echo(SMTLIBv2Parser::Cmd_echoContext * /*ctx*/) override { } + virtual void exitCmd_echo(SMTLIBv2Parser::Cmd_echoContext * /*ctx*/) override { } + + virtual void enterCmd_exit(SMTLIBv2Parser::Cmd_exitContext * /*ctx*/) override { } + virtual void exitCmd_exit(SMTLIBv2Parser::Cmd_exitContext * /*ctx*/) override { } + + virtual void enterCmd_getAssertions(SMTLIBv2Parser::Cmd_getAssertionsContext * /*ctx*/) override { } + virtual void exitCmd_getAssertions(SMTLIBv2Parser::Cmd_getAssertionsContext * /*ctx*/) override { } + + virtual void enterCmd_getAssignment(SMTLIBv2Parser::Cmd_getAssignmentContext * /*ctx*/) override { } + virtual void exitCmd_getAssignment(SMTLIBv2Parser::Cmd_getAssignmentContext * /*ctx*/) override { } + + virtual void enterCmd_getInfo(SMTLIBv2Parser::Cmd_getInfoContext * /*ctx*/) override { } + virtual void exitCmd_getInfo(SMTLIBv2Parser::Cmd_getInfoContext * /*ctx*/) override { } + + virtual void enterCmd_getModel(SMTLIBv2Parser::Cmd_getModelContext * /*ctx*/) override { } + virtual void exitCmd_getModel(SMTLIBv2Parser::Cmd_getModelContext * /*ctx*/) override { } + + virtual void enterCmd_getOption(SMTLIBv2Parser::Cmd_getOptionContext * /*ctx*/) override { } + virtual void exitCmd_getOption(SMTLIBv2Parser::Cmd_getOptionContext * /*ctx*/) override { } + + virtual void enterCmd_getProof(SMTLIBv2Parser::Cmd_getProofContext * /*ctx*/) override { } + virtual void exitCmd_getProof(SMTLIBv2Parser::Cmd_getProofContext * /*ctx*/) override { } + + virtual void enterCmd_getUnsatAssumptions(SMTLIBv2Parser::Cmd_getUnsatAssumptionsContext * /*ctx*/) override { } + virtual void exitCmd_getUnsatAssumptions(SMTLIBv2Parser::Cmd_getUnsatAssumptionsContext * /*ctx*/) override { } + + virtual void enterCmd_getUnsatCore(SMTLIBv2Parser::Cmd_getUnsatCoreContext * /*ctx*/) override { } + virtual void exitCmd_getUnsatCore(SMTLIBv2Parser::Cmd_getUnsatCoreContext * /*ctx*/) override { } + + virtual void enterCmd_getValue(SMTLIBv2Parser::Cmd_getValueContext * /*ctx*/) override { } + virtual void exitCmd_getValue(SMTLIBv2Parser::Cmd_getValueContext * /*ctx*/) override { } + + virtual void enterCmd_pop(SMTLIBv2Parser::Cmd_popContext * /*ctx*/) override { } + virtual void exitCmd_pop(SMTLIBv2Parser::Cmd_popContext * /*ctx*/) override { } + + virtual void enterCmd_push(SMTLIBv2Parser::Cmd_pushContext * /*ctx*/) override { } + virtual void exitCmd_push(SMTLIBv2Parser::Cmd_pushContext * /*ctx*/) override { } + + virtual void enterCmd_reset(SMTLIBv2Parser::Cmd_resetContext * /*ctx*/) override { } + virtual void exitCmd_reset(SMTLIBv2Parser::Cmd_resetContext * /*ctx*/) override { } + + virtual void enterCmd_resetAssertions(SMTLIBv2Parser::Cmd_resetAssertionsContext * /*ctx*/) override { } + virtual void exitCmd_resetAssertions(SMTLIBv2Parser::Cmd_resetAssertionsContext * /*ctx*/) override { } + + virtual void enterCmd_setInfo(SMTLIBv2Parser::Cmd_setInfoContext * /*ctx*/) override { } + virtual void exitCmd_setInfo(SMTLIBv2Parser::Cmd_setInfoContext * /*ctx*/) override { } + + virtual void enterCmd_setLogic(SMTLIBv2Parser::Cmd_setLogicContext * /*ctx*/) override { } + virtual void exitCmd_setLogic(SMTLIBv2Parser::Cmd_setLogicContext * /*ctx*/) override { } + + virtual void enterCmd_setOption(SMTLIBv2Parser::Cmd_setOptionContext * /*ctx*/) override { } + virtual void exitCmd_setOption(SMTLIBv2Parser::Cmd_setOptionContext * /*ctx*/) override { } + + virtual void enterCommand(SMTLIBv2Parser::CommandContext * /*ctx*/) override { } + virtual void exitCommand(SMTLIBv2Parser::CommandContext * /*ctx*/) override { } + + virtual void enterB_value(SMTLIBv2Parser::B_valueContext * /*ctx*/) override { } + virtual void exitB_value(SMTLIBv2Parser::B_valueContext * /*ctx*/) override { } + + virtual void enterOption(SMTLIBv2Parser::OptionContext * /*ctx*/) override { } + virtual void exitOption(SMTLIBv2Parser::OptionContext * /*ctx*/) override { } + + virtual void enterInfo_flag(SMTLIBv2Parser::Info_flagContext * /*ctx*/) override { } + virtual void exitInfo_flag(SMTLIBv2Parser::Info_flagContext * /*ctx*/) override { } + + virtual void enterError_behaviour(SMTLIBv2Parser::Error_behaviourContext * /*ctx*/) override { } + virtual void exitError_behaviour(SMTLIBv2Parser::Error_behaviourContext * /*ctx*/) override { } + + virtual void enterReason_unknown(SMTLIBv2Parser::Reason_unknownContext * /*ctx*/) override { } + virtual void exitReason_unknown(SMTLIBv2Parser::Reason_unknownContext * /*ctx*/) override { } + + virtual void enterModel_response(SMTLIBv2Parser::Model_responseContext * /*ctx*/) override { } + virtual void exitModel_response(SMTLIBv2Parser::Model_responseContext * /*ctx*/) override { } + + virtual void enterInfo_response(SMTLIBv2Parser::Info_responseContext * /*ctx*/) override { } + virtual void exitInfo_response(SMTLIBv2Parser::Info_responseContext * /*ctx*/) override { } + + virtual void enterValuation_pair(SMTLIBv2Parser::Valuation_pairContext * /*ctx*/) override { } + virtual void exitValuation_pair(SMTLIBv2Parser::Valuation_pairContext * /*ctx*/) override { } + + virtual void enterT_valuation_pair(SMTLIBv2Parser::T_valuation_pairContext * /*ctx*/) override { } + virtual void exitT_valuation_pair(SMTLIBv2Parser::T_valuation_pairContext * /*ctx*/) override { } + + virtual void enterCheck_sat_response(SMTLIBv2Parser::Check_sat_responseContext * /*ctx*/) override { } + virtual void exitCheck_sat_response(SMTLIBv2Parser::Check_sat_responseContext * /*ctx*/) override { } + + virtual void enterEcho_response(SMTLIBv2Parser::Echo_responseContext * /*ctx*/) override { } + virtual void exitEcho_response(SMTLIBv2Parser::Echo_responseContext * /*ctx*/) override { } + + virtual void enterGet_assertions_response(SMTLIBv2Parser::Get_assertions_responseContext * /*ctx*/) override { } + virtual void exitGet_assertions_response(SMTLIBv2Parser::Get_assertions_responseContext * /*ctx*/) override { } + + virtual void enterGet_assignment_response(SMTLIBv2Parser::Get_assignment_responseContext * /*ctx*/) override { } + virtual void exitGet_assignment_response(SMTLIBv2Parser::Get_assignment_responseContext * /*ctx*/) override { } + + virtual void enterGet_info_response(SMTLIBv2Parser::Get_info_responseContext * /*ctx*/) override { } + virtual void exitGet_info_response(SMTLIBv2Parser::Get_info_responseContext * /*ctx*/) override { } + + virtual void enterGet_model_response(SMTLIBv2Parser::Get_model_responseContext * /*ctx*/) override { } + virtual void exitGet_model_response(SMTLIBv2Parser::Get_model_responseContext * /*ctx*/) override { } + + virtual void enterGet_option_response(SMTLIBv2Parser::Get_option_responseContext * /*ctx*/) override { } + virtual void exitGet_option_response(SMTLIBv2Parser::Get_option_responseContext * /*ctx*/) override { } + + virtual void enterGet_proof_response(SMTLIBv2Parser::Get_proof_responseContext * /*ctx*/) override { } + virtual void exitGet_proof_response(SMTLIBv2Parser::Get_proof_responseContext * /*ctx*/) override { } + + virtual void enterGet_unsat_assump_response(SMTLIBv2Parser::Get_unsat_assump_responseContext * /*ctx*/) override { } + virtual void exitGet_unsat_assump_response(SMTLIBv2Parser::Get_unsat_assump_responseContext * /*ctx*/) override { } + + virtual void enterGet_unsat_core_response(SMTLIBv2Parser::Get_unsat_core_responseContext * /*ctx*/) override { } + virtual void exitGet_unsat_core_response(SMTLIBv2Parser::Get_unsat_core_responseContext * /*ctx*/) override { } + + virtual void enterGet_value_response(SMTLIBv2Parser::Get_value_responseContext * /*ctx*/) override { } + virtual void exitGet_value_response(SMTLIBv2Parser::Get_value_responseContext * /*ctx*/) override { } + + virtual void enterSpecific_success_response(SMTLIBv2Parser::Specific_success_responseContext * /*ctx*/) override { } + virtual void exitSpecific_success_response(SMTLIBv2Parser::Specific_success_responseContext * /*ctx*/) override { } + + virtual void enterGeneral_response(SMTLIBv2Parser::General_responseContext * /*ctx*/) override { } + virtual void exitGeneral_response(SMTLIBv2Parser::General_responseContext * /*ctx*/) override { } + + + virtual void enterEveryRule(antlr4::ParserRuleContext * /*ctx*/) override { } + virtual void exitEveryRule(antlr4::ParserRuleContext * /*ctx*/) override { } + virtual void visitTerminal(antlr4::tree::TerminalNode * /*node*/) override { } + virtual void visitErrorNode(antlr4::tree::ErrorNode * /*node*/) override { } + +}; + diff --git a/C++Verifier/src/antlr4/SMTLIBv2Lexer.cpp b/C++Verifier/src/antlr4/SMTLIBv2Lexer.cpp new file mode 100644 index 0000000..f88e9b8 --- /dev/null +++ b/C++Verifier/src/antlr4/SMTLIBv2Lexer.cpp @@ -0,0 +1,1191 @@ + +// Generated from SMTLIBv2.g4 by ANTLR 4.8 + + +#include "SMTLIBv2Lexer.h" + + +using namespace antlr4; + + +SMTLIBv2Lexer::SMTLIBv2Lexer(CharStream *input) : Lexer(input) { + _interpreter = new atn::LexerATNSimulator(this, _atn, _decisionToDFA, _sharedContextCache); +} + +SMTLIBv2Lexer::~SMTLIBv2Lexer() { + delete _interpreter; +} + +std::string SMTLIBv2Lexer::getGrammarFileName() const { + return "SMTLIBv2.g4"; +} + +const std::vector& SMTLIBv2Lexer::getRuleNames() const { + return _ruleNames; +} + +const std::vector& SMTLIBv2Lexer::getChannelNames() const { + return _channelNames; +} + +const std::vector& SMTLIBv2Lexer::getModeNames() const { + return _modeNames; +} + +const std::vector& SMTLIBv2Lexer::getTokenNames() const { + return _tokenNames; +} + +dfa::Vocabulary& SMTLIBv2Lexer::getVocabulary() const { + return _vocabulary; +} + +const std::vector SMTLIBv2Lexer::getSerializedATN() const { + return _serializedATN; +} + +const atn::ATN& SMTLIBv2Lexer::getATN() const { + return _atn; +} + + + + +// Static vars and initialization. +std::vector SMTLIBv2Lexer::_decisionToDFA; +atn::PredictionContextCache SMTLIBv2Lexer::_sharedContextCache; + +// We own the ATN which in turn owns the ATN states. +atn::ATN SMTLIBv2Lexer::_atn; +std::vector SMTLIBv2Lexer::_serializedATN; + +std::vector SMTLIBv2Lexer::_ruleNames = { + u8"Comment", u8"ParOpen", u8"ParClose", u8"Semicolon", u8"String", u8"QuotedSymbol", + u8"PS_Not", u8"PS_Bool", u8"PS_ContinuedExecution", u8"PS_Error", u8"PS_False", + u8"PS_ImmediateExit", u8"PS_Incomplete", u8"PS_Logic", u8"PS_Memout", + u8"PS_Sat", u8"PS_Success", u8"PS_Theory", u8"PS_True", u8"PS_Unknown", + u8"PS_Unsupported", u8"PS_Unsat", u8"CMD_Assert", u8"CMD_CheckSat", u8"CMD_CheckSatAssuming", + u8"CMD_DeclareConst", u8"CMD_DeclareDatatype", u8"CMD_DeclareDatatypes", + u8"CMD_DeclareFun", u8"CMD_DeclareSort", u8"CMD_DefineFun", u8"CMD_DefineFunRec", + u8"CMD_DefineFunsRec", u8"CMD_DefineSort", u8"CMD_Echo", u8"CMD_Exit", + u8"CMD_GetAssertions", u8"CMD_GetAssignment", u8"CMD_GetInfo", u8"CMD_GetModel", + u8"CMD_GetOption", u8"CMD_GetProof", u8"CMD_GetUnsatAssumptions", u8"CMD_GetUnsatCore", + u8"CMD_GetValue", u8"CMD_Pop", u8"CMD_Push", u8"CMD_Reset", u8"CMD_ResetAssertions", + u8"CMD_SetInfo", u8"CMD_SetLogic", u8"CMD_SetOption", u8"GRW_Exclamation", + u8"GRW_Underscore", u8"GRW_As", u8"GRW_Binary", u8"GRW_Decimal", u8"GRW_Exists", + u8"GRW_Hexadecimal", u8"GRW_Forall", u8"GRW_Let", u8"GRW_Match", u8"GRW_Numeral", + u8"GRW_Par", u8"GRW_String", u8"Numeral", u8"Binary", u8"HexDecimal", + u8"Decimal", u8"HexDigit", u8"Colon", u8"Digit", u8"Sym", u8"BinaryDigit", + u8"PrintableChar", u8"PrintableCharNoDquote", u8"PrintableCharNoBackslash", + u8"EscapedSpace", u8"WhiteSpaceChar", u8"PK_AllStatistics", u8"PK_AssertionStackLevels", + u8"PK_Authors", u8"PK_Category", u8"PK_Chainable", u8"PK_Definition", + u8"PK_DiagnosticOutputChannel", u8"PK_ErrorBehaviour", u8"PK_Extension", + u8"PK_Funs", u8"PK_FunsDescription", u8"PK_GlobalDeclarations", u8"PK_InteractiveMode", + u8"PK_Language", u8"PK_LeftAssoc", u8"PK_License", u8"PK_Named", u8"PK_Name", + u8"PK_Notes", u8"PK_Pattern", u8"PK_PrintSuccess", u8"PK_ProduceAssertions", + u8"PK_ProduceAssignments", u8"PK_ProduceModels", u8"PK_ProduceProofs", + u8"PK_ProduceUnsatAssumptions", u8"PK_ProduceUnsatCores", u8"PK_RandomSeed", + u8"PK_ReasonUnknown", u8"PK_RegularOutputChannel", u8"PK_ReproducibleResourceLimit", + u8"PK_RightAssoc", u8"PK_SmtLibVersion", u8"PK_Sorts", u8"PK_SortsDescription", + u8"PK_Source", u8"PK_Status", u8"PK_Theories", u8"PK_Values", u8"PK_Verbosity", + u8"PK_Version", u8"UndefinedSymbol", u8"WS" +}; + +std::vector SMTLIBv2Lexer::_channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" +}; + +std::vector SMTLIBv2Lexer::_modeNames = { + u8"DEFAULT_MODE" +}; + +std::vector SMTLIBv2Lexer::_literalNames = { + "", "", u8"'('", u8"')'", u8"';'", "", "", u8"'not'", u8"'Bool'", u8"'continued-execution'", + u8"'error'", u8"'false'", u8"'immediate-exit'", u8"'incomplete'", u8"'logic'", + u8"'memout'", u8"'sat'", u8"'success'", u8"'theory'", u8"'true'", u8"'unknown'", + u8"'unsupported'", u8"'unsat'", u8"'assert'", u8"'check-sat'", u8"'check-sat-assuming'", + u8"'declare-const'", u8"'declare-datatype'", u8"'declare-datatypes'", + u8"'declare-fun'", u8"'declare-sort'", u8"'define-fun'", u8"'define-fun-rec'", + u8"'define-funs-rec'", u8"'define-sort'", u8"'echo'", u8"'exit'", u8"'get-assertions'", + u8"'get-assignment'", u8"'get-info'", u8"'get-model'", u8"'get-option'", + u8"'get-proof'", u8"'get-unsat-assumptions'", u8"'get-unsat-core'", u8"'get-value'", + u8"'pop'", u8"'push'", u8"'reset'", u8"'reset-assertions'", u8"'set-info'", + u8"'set-logic'", u8"'set-option'", u8"'!'", u8"'_'", u8"'as'", u8"'BINARY'", + u8"'DECIMAL'", u8"'exists'", u8"'HEXADECIMAL'", u8"'forall'", u8"'let'", + u8"'match'", u8"'NUMERAL'", u8"'par'", u8"'string'", "", "", "", "", u8"':'", + u8"':all-statistics'", u8"':assertion-stack-levels'", u8"':authors'", + u8"':category'", u8"':chainable'", u8"':definition'", u8"':diagnostic-output-channel'", + u8"':error-behavior'", u8"':extensions'", u8"':funs'", u8"':funs-description'", + u8"':global-declarations'", u8"':interactive-mode'", u8"':language'", + u8"':left-assoc'", u8"':license'", u8"':named'", u8"':name'", u8"':notes'", + u8"':pattern'", u8"':print-success'", u8"':produce-assertions'", u8"':produce-assignments'", + u8"':produce-models'", u8"':produce-proofs'", u8"':produce-unsat-assumptions'", + u8"':produce-unsat-cores'", u8"':random-seed'", u8"':reason-unknown'", + u8"':regular-output-channel'", u8"':reproducible-resource-limit'", u8"':right-assoc'", + u8"':smt-lib-version'", u8"':sorts'", u8"':sorts-description'", u8"':source'", + u8"':status'", u8"':theories'", u8"':values'", u8"':verbosity'", u8"':version'" +}; + +std::vector SMTLIBv2Lexer::_symbolicNames = { + "", u8"Comment", u8"ParOpen", u8"ParClose", u8"Semicolon", u8"String", + u8"QuotedSymbol", u8"PS_Not", u8"PS_Bool", u8"PS_ContinuedExecution", + u8"PS_Error", u8"PS_False", u8"PS_ImmediateExit", u8"PS_Incomplete", u8"PS_Logic", + u8"PS_Memout", u8"PS_Sat", u8"PS_Success", u8"PS_Theory", u8"PS_True", + u8"PS_Unknown", u8"PS_Unsupported", u8"PS_Unsat", u8"CMD_Assert", u8"CMD_CheckSat", + u8"CMD_CheckSatAssuming", u8"CMD_DeclareConst", u8"CMD_DeclareDatatype", + u8"CMD_DeclareDatatypes", u8"CMD_DeclareFun", u8"CMD_DeclareSort", u8"CMD_DefineFun", + u8"CMD_DefineFunRec", u8"CMD_DefineFunsRec", u8"CMD_DefineSort", u8"CMD_Echo", + u8"CMD_Exit", u8"CMD_GetAssertions", u8"CMD_GetAssignment", u8"CMD_GetInfo", + u8"CMD_GetModel", u8"CMD_GetOption", u8"CMD_GetProof", u8"CMD_GetUnsatAssumptions", + u8"CMD_GetUnsatCore", u8"CMD_GetValue", u8"CMD_Pop", u8"CMD_Push", u8"CMD_Reset", + u8"CMD_ResetAssertions", u8"CMD_SetInfo", u8"CMD_SetLogic", u8"CMD_SetOption", + u8"GRW_Exclamation", u8"GRW_Underscore", u8"GRW_As", u8"GRW_Binary", u8"GRW_Decimal", + u8"GRW_Exists", u8"GRW_Hexadecimal", u8"GRW_Forall", u8"GRW_Let", u8"GRW_Match", + u8"GRW_Numeral", u8"GRW_Par", u8"GRW_String", u8"Numeral", u8"Binary", + u8"HexDecimal", u8"Decimal", u8"Colon", u8"PK_AllStatistics", u8"PK_AssertionStackLevels", + u8"PK_Authors", u8"PK_Category", u8"PK_Chainable", u8"PK_Definition", + u8"PK_DiagnosticOutputChannel", u8"PK_ErrorBehaviour", u8"PK_Extension", + u8"PK_Funs", u8"PK_FunsDescription", u8"PK_GlobalDeclarations", u8"PK_InteractiveMode", + u8"PK_Language", u8"PK_LeftAssoc", u8"PK_License", u8"PK_Named", u8"PK_Name", + u8"PK_Notes", u8"PK_Pattern", u8"PK_PrintSuccess", u8"PK_ProduceAssertions", + u8"PK_ProduceAssignments", u8"PK_ProduceModels", u8"PK_ProduceProofs", + u8"PK_ProduceUnsatAssumptions", u8"PK_ProduceUnsatCores", u8"PK_RandomSeed", + u8"PK_ReasonUnknown", u8"PK_RegularOutputChannel", u8"PK_ReproducibleResourceLimit", + u8"PK_RightAssoc", u8"PK_SmtLibVersion", u8"PK_Sorts", u8"PK_SortsDescription", + u8"PK_Source", u8"PK_Status", u8"PK_Theories", u8"PK_Values", u8"PK_Verbosity", + u8"PK_Version", u8"UndefinedSymbol", u8"WS" +}; + +dfa::Vocabulary SMTLIBv2Lexer::_vocabulary(_literalNames, _symbolicNames); + +std::vector SMTLIBv2Lexer::_tokenNames; + +SMTLIBv2Lexer::Initializer::Initializer() { + // This code could be in a static initializer lambda, but VS doesn't allow access to private class members from there. + for (size_t i = 0; i < _symbolicNames.size(); ++i) { + std::string name = _vocabulary.getLiteralName(i); + if (name.empty()) { + name = _vocabulary.getSymbolicName(i); + } + + if (name.empty()) { + _tokenNames.push_back(""); + } else { + _tokenNames.push_back(name); + } + } + + _serializedATN = { + 0x3, 0x608b, 0xa72a, 0x8133, 0xb9ed, 0x417c, 0x3be7, 0x7786, 0x5964, + 0x2, 0x73, 0x5df, 0x8, 0x1, 0x4, 0x2, 0x9, 0x2, 0x4, 0x3, 0x9, 0x3, + 0x4, 0x4, 0x9, 0x4, 0x4, 0x5, 0x9, 0x5, 0x4, 0x6, 0x9, 0x6, 0x4, 0x7, + 0x9, 0x7, 0x4, 0x8, 0x9, 0x8, 0x4, 0x9, 0x9, 0x9, 0x4, 0xa, 0x9, 0xa, + 0x4, 0xb, 0x9, 0xb, 0x4, 0xc, 0x9, 0xc, 0x4, 0xd, 0x9, 0xd, 0x4, 0xe, + 0x9, 0xe, 0x4, 0xf, 0x9, 0xf, 0x4, 0x10, 0x9, 0x10, 0x4, 0x11, 0x9, + 0x11, 0x4, 0x12, 0x9, 0x12, 0x4, 0x13, 0x9, 0x13, 0x4, 0x14, 0x9, 0x14, + 0x4, 0x15, 0x9, 0x15, 0x4, 0x16, 0x9, 0x16, 0x4, 0x17, 0x9, 0x17, 0x4, + 0x18, 0x9, 0x18, 0x4, 0x19, 0x9, 0x19, 0x4, 0x1a, 0x9, 0x1a, 0x4, 0x1b, + 0x9, 0x1b, 0x4, 0x1c, 0x9, 0x1c, 0x4, 0x1d, 0x9, 0x1d, 0x4, 0x1e, 0x9, + 0x1e, 0x4, 0x1f, 0x9, 0x1f, 0x4, 0x20, 0x9, 0x20, 0x4, 0x21, 0x9, 0x21, + 0x4, 0x22, 0x9, 0x22, 0x4, 0x23, 0x9, 0x23, 0x4, 0x24, 0x9, 0x24, 0x4, + 0x25, 0x9, 0x25, 0x4, 0x26, 0x9, 0x26, 0x4, 0x27, 0x9, 0x27, 0x4, 0x28, + 0x9, 0x28, 0x4, 0x29, 0x9, 0x29, 0x4, 0x2a, 0x9, 0x2a, 0x4, 0x2b, 0x9, + 0x2b, 0x4, 0x2c, 0x9, 0x2c, 0x4, 0x2d, 0x9, 0x2d, 0x4, 0x2e, 0x9, 0x2e, + 0x4, 0x2f, 0x9, 0x2f, 0x4, 0x30, 0x9, 0x30, 0x4, 0x31, 0x9, 0x31, 0x4, + 0x32, 0x9, 0x32, 0x4, 0x33, 0x9, 0x33, 0x4, 0x34, 0x9, 0x34, 0x4, 0x35, + 0x9, 0x35, 0x4, 0x36, 0x9, 0x36, 0x4, 0x37, 0x9, 0x37, 0x4, 0x38, 0x9, + 0x38, 0x4, 0x39, 0x9, 0x39, 0x4, 0x3a, 0x9, 0x3a, 0x4, 0x3b, 0x9, 0x3b, + 0x4, 0x3c, 0x9, 0x3c, 0x4, 0x3d, 0x9, 0x3d, 0x4, 0x3e, 0x9, 0x3e, 0x4, + 0x3f, 0x9, 0x3f, 0x4, 0x40, 0x9, 0x40, 0x4, 0x41, 0x9, 0x41, 0x4, 0x42, + 0x9, 0x42, 0x4, 0x43, 0x9, 0x43, 0x4, 0x44, 0x9, 0x44, 0x4, 0x45, 0x9, + 0x45, 0x4, 0x46, 0x9, 0x46, 0x4, 0x47, 0x9, 0x47, 0x4, 0x48, 0x9, 0x48, + 0x4, 0x49, 0x9, 0x49, 0x4, 0x4a, 0x9, 0x4a, 0x4, 0x4b, 0x9, 0x4b, 0x4, + 0x4c, 0x9, 0x4c, 0x4, 0x4d, 0x9, 0x4d, 0x4, 0x4e, 0x9, 0x4e, 0x4, 0x4f, + 0x9, 0x4f, 0x4, 0x50, 0x9, 0x50, 0x4, 0x51, 0x9, 0x51, 0x4, 0x52, 0x9, + 0x52, 0x4, 0x53, 0x9, 0x53, 0x4, 0x54, 0x9, 0x54, 0x4, 0x55, 0x9, 0x55, + 0x4, 0x56, 0x9, 0x56, 0x4, 0x57, 0x9, 0x57, 0x4, 0x58, 0x9, 0x58, 0x4, + 0x59, 0x9, 0x59, 0x4, 0x5a, 0x9, 0x5a, 0x4, 0x5b, 0x9, 0x5b, 0x4, 0x5c, + 0x9, 0x5c, 0x4, 0x5d, 0x9, 0x5d, 0x4, 0x5e, 0x9, 0x5e, 0x4, 0x5f, 0x9, + 0x5f, 0x4, 0x60, 0x9, 0x60, 0x4, 0x61, 0x9, 0x61, 0x4, 0x62, 0x9, 0x62, + 0x4, 0x63, 0x9, 0x63, 0x4, 0x64, 0x9, 0x64, 0x4, 0x65, 0x9, 0x65, 0x4, + 0x66, 0x9, 0x66, 0x4, 0x67, 0x9, 0x67, 0x4, 0x68, 0x9, 0x68, 0x4, 0x69, + 0x9, 0x69, 0x4, 0x6a, 0x9, 0x6a, 0x4, 0x6b, 0x9, 0x6b, 0x4, 0x6c, 0x9, + 0x6c, 0x4, 0x6d, 0x9, 0x6d, 0x4, 0x6e, 0x9, 0x6e, 0x4, 0x6f, 0x9, 0x6f, + 0x4, 0x70, 0x9, 0x70, 0x4, 0x71, 0x9, 0x71, 0x4, 0x72, 0x9, 0x72, 0x4, + 0x73, 0x9, 0x73, 0x4, 0x74, 0x9, 0x74, 0x4, 0x75, 0x9, 0x75, 0x4, 0x76, + 0x9, 0x76, 0x4, 0x77, 0x9, 0x77, 0x4, 0x78, 0x9, 0x78, 0x4, 0x79, 0x9, + 0x79, 0x4, 0x7a, 0x9, 0x7a, 0x4, 0x7b, 0x9, 0x7b, 0x3, 0x2, 0x3, 0x2, + 0x7, 0x2, 0xfa, 0xa, 0x2, 0xc, 0x2, 0xe, 0x2, 0xfd, 0xb, 0x2, 0x3, 0x2, + 0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x4, 0x3, 0x4, 0x3, 0x5, 0x3, 0x5, + 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x6, 0x6, 0x10a, 0xa, 0x6, 0xd, 0x6, 0xe, + 0x6, 0x10b, 0x3, 0x6, 0x3, 0x6, 0x3, 0x7, 0x3, 0x7, 0x3, 0x7, 0x6, 0x7, + 0x113, 0xa, 0x7, 0xd, 0x7, 0xe, 0x7, 0x114, 0x3, 0x7, 0x3, 0x7, 0x3, + 0x8, 0x3, 0x8, 0x3, 0x8, 0x3, 0x8, 0x3, 0x9, 0x3, 0x9, 0x3, 0x9, 0x3, + 0x9, 0x3, 0x9, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, + 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, + 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, 0xa, 0x3, + 0xa, 0x3, 0xb, 0x3, 0xb, 0x3, 0xb, 0x3, 0xb, 0x3, 0xb, 0x3, 0xb, 0x3, + 0xc, 0x3, 0xc, 0x3, 0xc, 0x3, 0xc, 0x3, 0xc, 0x3, 0xc, 0x3, 0xd, 0x3, + 0xd, 0x3, 0xd, 0x3, 0xd, 0x3, 0xd, 0x3, 0xd, 0x3, 0xd, 0x3, 0xd, 0x3, + 0xd, 0x3, 0xd, 0x3, 0xd, 0x3, 0xd, 0x3, 0xd, 0x3, 0xd, 0x3, 0xd, 0x3, + 0xe, 0x3, 0xe, 0x3, 0xe, 0x3, 0xe, 0x3, 0xe, 0x3, 0xe, 0x3, 0xe, 0x3, + 0xe, 0x3, 0xe, 0x3, 0xe, 0x3, 0xe, 0x3, 0xf, 0x3, 0xf, 0x3, 0xf, 0x3, + 0xf, 0x3, 0xf, 0x3, 0xf, 0x3, 0x10, 0x3, 0x10, 0x3, 0x10, 0x3, 0x10, + 0x3, 0x10, 0x3, 0x10, 0x3, 0x10, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, + 0x11, 0x3, 0x12, 0x3, 0x12, 0x3, 0x12, 0x3, 0x12, 0x3, 0x12, 0x3, 0x12, + 0x3, 0x12, 0x3, 0x12, 0x3, 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, + 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, 0x14, 0x3, 0x14, 0x3, 0x14, 0x3, 0x14, + 0x3, 0x14, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, + 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x16, 0x3, 0x16, 0x3, 0x16, 0x3, 0x16, + 0x3, 0x16, 0x3, 0x16, 0x3, 0x16, 0x3, 0x16, 0x3, 0x16, 0x3, 0x16, 0x3, + 0x16, 0x3, 0x16, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, + 0x3, 0x17, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, + 0x18, 0x3, 0x18, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, + 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3, 0x1a, 0x3, + 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, + 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, + 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1b, 0x3, 0x1b, + 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, + 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1c, + 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, + 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, + 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, + 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, + 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, + 0x1d, 0x3, 0x1d, 0x3, 0x1e, 0x3, 0x1e, 0x3, 0x1e, 0x3, 0x1e, 0x3, 0x1e, + 0x3, 0x1e, 0x3, 0x1e, 0x3, 0x1e, 0x3, 0x1e, 0x3, 0x1e, 0x3, 0x1e, 0x3, + 0x1e, 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, + 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x3, + 0x1f, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, + 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x3, 0x21, 0x3, + 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, + 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, + 0x21, 0x3, 0x22, 0x3, 0x22, 0x3, 0x22, 0x3, 0x22, 0x3, 0x22, 0x3, 0x22, + 0x3, 0x22, 0x3, 0x22, 0x3, 0x22, 0x3, 0x22, 0x3, 0x22, 0x3, 0x22, 0x3, + 0x22, 0x3, 0x22, 0x3, 0x22, 0x3, 0x22, 0x3, 0x23, 0x3, 0x23, 0x3, 0x23, + 0x3, 0x23, 0x3, 0x23, 0x3, 0x23, 0x3, 0x23, 0x3, 0x23, 0x3, 0x23, 0x3, + 0x23, 0x3, 0x23, 0x3, 0x23, 0x3, 0x24, 0x3, 0x24, 0x3, 0x24, 0x3, 0x24, + 0x3, 0x24, 0x3, 0x25, 0x3, 0x25, 0x3, 0x25, 0x3, 0x25, 0x3, 0x25, 0x3, + 0x26, 0x3, 0x26, 0x3, 0x26, 0x3, 0x26, 0x3, 0x26, 0x3, 0x26, 0x3, 0x26, + 0x3, 0x26, 0x3, 0x26, 0x3, 0x26, 0x3, 0x26, 0x3, 0x26, 0x3, 0x26, 0x3, + 0x26, 0x3, 0x26, 0x3, 0x27, 0x3, 0x27, 0x3, 0x27, 0x3, 0x27, 0x3, 0x27, + 0x3, 0x27, 0x3, 0x27, 0x3, 0x27, 0x3, 0x27, 0x3, 0x27, 0x3, 0x27, 0x3, + 0x27, 0x3, 0x27, 0x3, 0x27, 0x3, 0x27, 0x3, 0x28, 0x3, 0x28, 0x3, 0x28, + 0x3, 0x28, 0x3, 0x28, 0x3, 0x28, 0x3, 0x28, 0x3, 0x28, 0x3, 0x28, 0x3, + 0x29, 0x3, 0x29, 0x3, 0x29, 0x3, 0x29, 0x3, 0x29, 0x3, 0x29, 0x3, 0x29, + 0x3, 0x29, 0x3, 0x29, 0x3, 0x29, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3, + 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2a, + 0x3, 0x2a, 0x3, 0x2b, 0x3, 0x2b, 0x3, 0x2b, 0x3, 0x2b, 0x3, 0x2b, 0x3, + 0x2b, 0x3, 0x2b, 0x3, 0x2b, 0x3, 0x2b, 0x3, 0x2b, 0x3, 0x2c, 0x3, 0x2c, + 0x3, 0x2c, 0x3, 0x2c, 0x3, 0x2c, 0x3, 0x2c, 0x3, 0x2c, 0x3, 0x2c, 0x3, + 0x2c, 0x3, 0x2c, 0x3, 0x2c, 0x3, 0x2c, 0x3, 0x2c, 0x3, 0x2c, 0x3, 0x2c, + 0x3, 0x2c, 0x3, 0x2c, 0x3, 0x2c, 0x3, 0x2c, 0x3, 0x2c, 0x3, 0x2c, 0x3, + 0x2c, 0x3, 0x2d, 0x3, 0x2d, 0x3, 0x2d, 0x3, 0x2d, 0x3, 0x2d, 0x3, 0x2d, + 0x3, 0x2d, 0x3, 0x2d, 0x3, 0x2d, 0x3, 0x2d, 0x3, 0x2d, 0x3, 0x2d, 0x3, + 0x2d, 0x3, 0x2d, 0x3, 0x2d, 0x3, 0x2e, 0x3, 0x2e, 0x3, 0x2e, 0x3, 0x2e, + 0x3, 0x2e, 0x3, 0x2e, 0x3, 0x2e, 0x3, 0x2e, 0x3, 0x2e, 0x3, 0x2e, 0x3, + 0x2f, 0x3, 0x2f, 0x3, 0x2f, 0x3, 0x2f, 0x3, 0x30, 0x3, 0x30, 0x3, 0x30, + 0x3, 0x30, 0x3, 0x30, 0x3, 0x31, 0x3, 0x31, 0x3, 0x31, 0x3, 0x31, 0x3, + 0x31, 0x3, 0x31, 0x3, 0x32, 0x3, 0x32, 0x3, 0x32, 0x3, 0x32, 0x3, 0x32, + 0x3, 0x32, 0x3, 0x32, 0x3, 0x32, 0x3, 0x32, 0x3, 0x32, 0x3, 0x32, 0x3, + 0x32, 0x3, 0x32, 0x3, 0x32, 0x3, 0x32, 0x3, 0x32, 0x3, 0x32, 0x3, 0x33, + 0x3, 0x33, 0x3, 0x33, 0x3, 0x33, 0x3, 0x33, 0x3, 0x33, 0x3, 0x33, 0x3, + 0x33, 0x3, 0x33, 0x3, 0x34, 0x3, 0x34, 0x3, 0x34, 0x3, 0x34, 0x3, 0x34, + 0x3, 0x34, 0x3, 0x34, 0x3, 0x34, 0x3, 0x34, 0x3, 0x34, 0x3, 0x35, 0x3, + 0x35, 0x3, 0x35, 0x3, 0x35, 0x3, 0x35, 0x3, 0x35, 0x3, 0x35, 0x3, 0x35, + 0x3, 0x35, 0x3, 0x35, 0x3, 0x35, 0x3, 0x36, 0x3, 0x36, 0x3, 0x37, 0x3, + 0x37, 0x3, 0x38, 0x3, 0x38, 0x3, 0x38, 0x3, 0x39, 0x3, 0x39, 0x3, 0x39, + 0x3, 0x39, 0x3, 0x39, 0x3, 0x39, 0x3, 0x39, 0x3, 0x3a, 0x3, 0x3a, 0x3, + 0x3a, 0x3, 0x3a, 0x3, 0x3a, 0x3, 0x3a, 0x3, 0x3a, 0x3, 0x3a, 0x3, 0x3b, + 0x3, 0x3b, 0x3, 0x3b, 0x3, 0x3b, 0x3, 0x3b, 0x3, 0x3b, 0x3, 0x3b, 0x3, + 0x3c, 0x3, 0x3c, 0x3, 0x3c, 0x3, 0x3c, 0x3, 0x3c, 0x3, 0x3c, 0x3, 0x3c, + 0x3, 0x3c, 0x3, 0x3c, 0x3, 0x3c, 0x3, 0x3c, 0x3, 0x3c, 0x3, 0x3d, 0x3, + 0x3d, 0x3, 0x3d, 0x3, 0x3d, 0x3, 0x3d, 0x3, 0x3d, 0x3, 0x3d, 0x3, 0x3e, + 0x3, 0x3e, 0x3, 0x3e, 0x3, 0x3e, 0x3, 0x3f, 0x3, 0x3f, 0x3, 0x3f, 0x3, + 0x3f, 0x3, 0x3f, 0x3, 0x3f, 0x3, 0x40, 0x3, 0x40, 0x3, 0x40, 0x3, 0x40, + 0x3, 0x40, 0x3, 0x40, 0x3, 0x40, 0x3, 0x40, 0x3, 0x41, 0x3, 0x41, 0x3, + 0x41, 0x3, 0x41, 0x3, 0x42, 0x3, 0x42, 0x3, 0x42, 0x3, 0x42, 0x3, 0x42, + 0x3, 0x42, 0x3, 0x42, 0x3, 0x43, 0x3, 0x43, 0x3, 0x43, 0x7, 0x43, 0x34c, + 0xa, 0x43, 0xc, 0x43, 0xe, 0x43, 0x34f, 0xb, 0x43, 0x5, 0x43, 0x351, + 0xa, 0x43, 0x3, 0x44, 0x6, 0x44, 0x354, 0xa, 0x44, 0xd, 0x44, 0xe, 0x44, + 0x355, 0x3, 0x45, 0x3, 0x45, 0x3, 0x45, 0x3, 0x45, 0x3, 0x45, 0x3, 0x45, + 0x3, 0x45, 0x3, 0x45, 0x3, 0x46, 0x3, 0x46, 0x3, 0x46, 0x7, 0x46, 0x363, + 0xa, 0x46, 0xc, 0x46, 0xe, 0x46, 0x366, 0xb, 0x46, 0x3, 0x46, 0x3, 0x46, + 0x3, 0x47, 0x3, 0x47, 0x3, 0x48, 0x3, 0x48, 0x3, 0x49, 0x3, 0x49, 0x3, + 0x4a, 0x3, 0x4a, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4c, 0x3, 0x4c, 0x5, 0x4c, + 0x376, 0xa, 0x4c, 0x3, 0x4d, 0x3, 0x4d, 0x5, 0x4d, 0x37a, 0xa, 0x4d, + 0x3, 0x4e, 0x3, 0x4e, 0x5, 0x4e, 0x37e, 0xa, 0x4e, 0x3, 0x4f, 0x3, 0x4f, + 0x3, 0x4f, 0x3, 0x50, 0x3, 0x50, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, + 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, + 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, + 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, + 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, + 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, + 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x53, 0x3, 0x53, 0x3, + 0x53, 0x3, 0x53, 0x3, 0x53, 0x3, 0x53, 0x3, 0x53, 0x3, 0x53, 0x3, 0x53, + 0x3, 0x54, 0x3, 0x54, 0x3, 0x54, 0x3, 0x54, 0x3, 0x54, 0x3, 0x54, 0x3, + 0x54, 0x3, 0x54, 0x3, 0x54, 0x3, 0x54, 0x3, 0x55, 0x3, 0x55, 0x3, 0x55, + 0x3, 0x55, 0x3, 0x55, 0x3, 0x55, 0x3, 0x55, 0x3, 0x55, 0x3, 0x55, 0x3, + 0x55, 0x3, 0x55, 0x3, 0x56, 0x3, 0x56, 0x3, 0x56, 0x3, 0x56, 0x3, 0x56, + 0x3, 0x56, 0x3, 0x56, 0x3, 0x56, 0x3, 0x56, 0x3, 0x56, 0x3, 0x56, 0x3, + 0x56, 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, + 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, 0x3, + 0x57, 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, + 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, 0x3, 0x57, 0x3, + 0x57, 0x3, 0x57, 0x3, 0x58, 0x3, 0x58, 0x3, 0x58, 0x3, 0x58, 0x3, 0x58, + 0x3, 0x58, 0x3, 0x58, 0x3, 0x58, 0x3, 0x58, 0x3, 0x58, 0x3, 0x58, 0x3, + 0x58, 0x3, 0x58, 0x3, 0x58, 0x3, 0x58, 0x3, 0x58, 0x3, 0x59, 0x3, 0x59, + 0x3, 0x59, 0x3, 0x59, 0x3, 0x59, 0x3, 0x59, 0x3, 0x59, 0x3, 0x59, 0x3, + 0x59, 0x3, 0x59, 0x3, 0x59, 0x3, 0x59, 0x3, 0x5a, 0x3, 0x5a, 0x3, 0x5a, + 0x3, 0x5a, 0x3, 0x5a, 0x3, 0x5a, 0x3, 0x5b, 0x3, 0x5b, 0x3, 0x5b, 0x3, + 0x5b, 0x3, 0x5b, 0x3, 0x5b, 0x3, 0x5b, 0x3, 0x5b, 0x3, 0x5b, 0x3, 0x5b, + 0x3, 0x5b, 0x3, 0x5b, 0x3, 0x5b, 0x3, 0x5b, 0x3, 0x5b, 0x3, 0x5b, 0x3, + 0x5b, 0x3, 0x5b, 0x3, 0x5c, 0x3, 0x5c, 0x3, 0x5c, 0x3, 0x5c, 0x3, 0x5c, + 0x3, 0x5c, 0x3, 0x5c, 0x3, 0x5c, 0x3, 0x5c, 0x3, 0x5c, 0x3, 0x5c, 0x3, + 0x5c, 0x3, 0x5c, 0x3, 0x5c, 0x3, 0x5c, 0x3, 0x5c, 0x3, 0x5c, 0x3, 0x5c, + 0x3, 0x5c, 0x3, 0x5c, 0x3, 0x5c, 0x3, 0x5d, 0x3, 0x5d, 0x3, 0x5d, 0x3, + 0x5d, 0x3, 0x5d, 0x3, 0x5d, 0x3, 0x5d, 0x3, 0x5d, 0x3, 0x5d, 0x3, 0x5d, + 0x3, 0x5d, 0x3, 0x5d, 0x3, 0x5d, 0x3, 0x5d, 0x3, 0x5d, 0x3, 0x5d, 0x3, + 0x5d, 0x3, 0x5d, 0x3, 0x5e, 0x3, 0x5e, 0x3, 0x5e, 0x3, 0x5e, 0x3, 0x5e, + 0x3, 0x5e, 0x3, 0x5e, 0x3, 0x5e, 0x3, 0x5e, 0x3, 0x5e, 0x3, 0x5f, 0x3, + 0x5f, 0x3, 0x5f, 0x3, 0x5f, 0x3, 0x5f, 0x3, 0x5f, 0x3, 0x5f, 0x3, 0x5f, + 0x3, 0x5f, 0x3, 0x5f, 0x3, 0x5f, 0x3, 0x5f, 0x3, 0x60, 0x3, 0x60, 0x3, + 0x60, 0x3, 0x60, 0x3, 0x60, 0x3, 0x60, 0x3, 0x60, 0x3, 0x60, 0x3, 0x60, + 0x3, 0x61, 0x3, 0x61, 0x3, 0x61, 0x3, 0x61, 0x3, 0x61, 0x3, 0x61, 0x3, + 0x61, 0x3, 0x62, 0x3, 0x62, 0x3, 0x62, 0x3, 0x62, 0x3, 0x62, 0x3, 0x62, + 0x3, 0x63, 0x3, 0x63, 0x3, 0x63, 0x3, 0x63, 0x3, 0x63, 0x3, 0x63, 0x3, + 0x63, 0x3, 0x64, 0x3, 0x64, 0x3, 0x64, 0x3, 0x64, 0x3, 0x64, 0x3, 0x64, + 0x3, 0x64, 0x3, 0x64, 0x3, 0x64, 0x3, 0x65, 0x3, 0x65, 0x3, 0x65, 0x3, + 0x65, 0x3, 0x65, 0x3, 0x65, 0x3, 0x65, 0x3, 0x65, 0x3, 0x65, 0x3, 0x65, + 0x3, 0x65, 0x3, 0x65, 0x3, 0x65, 0x3, 0x65, 0x3, 0x65, 0x3, 0x66, 0x3, + 0x66, 0x3, 0x66, 0x3, 0x66, 0x3, 0x66, 0x3, 0x66, 0x3, 0x66, 0x3, 0x66, + 0x3, 0x66, 0x3, 0x66, 0x3, 0x66, 0x3, 0x66, 0x3, 0x66, 0x3, 0x66, 0x3, + 0x66, 0x3, 0x66, 0x3, 0x66, 0x3, 0x66, 0x3, 0x66, 0x3, 0x66, 0x3, 0x67, + 0x3, 0x67, 0x3, 0x67, 0x3, 0x67, 0x3, 0x67, 0x3, 0x67, 0x3, 0x67, 0x3, + 0x67, 0x3, 0x67, 0x3, 0x67, 0x3, 0x67, 0x3, 0x67, 0x3, 0x67, 0x3, 0x67, + 0x3, 0x67, 0x3, 0x67, 0x3, 0x67, 0x3, 0x67, 0x3, 0x67, 0x3, 0x67, 0x3, + 0x67, 0x3, 0x68, 0x3, 0x68, 0x3, 0x68, 0x3, 0x68, 0x3, 0x68, 0x3, 0x68, + 0x3, 0x68, 0x3, 0x68, 0x3, 0x68, 0x3, 0x68, 0x3, 0x68, 0x3, 0x68, 0x3, + 0x68, 0x3, 0x68, 0x3, 0x68, 0x3, 0x68, 0x3, 0x69, 0x3, 0x69, 0x3, 0x69, + 0x3, 0x69, 0x3, 0x69, 0x3, 0x69, 0x3, 0x69, 0x3, 0x69, 0x3, 0x69, 0x3, + 0x69, 0x3, 0x69, 0x3, 0x69, 0x3, 0x69, 0x3, 0x69, 0x3, 0x69, 0x3, 0x69, + 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, + 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, + 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, + 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, 0x3, 0x6a, + 0x3, 0x6a, 0x3, 0x6b, 0x3, 0x6b, 0x3, 0x6b, 0x3, 0x6b, 0x3, 0x6b, 0x3, + 0x6b, 0x3, 0x6b, 0x3, 0x6b, 0x3, 0x6b, 0x3, 0x6b, 0x3, 0x6b, 0x3, 0x6b, + 0x3, 0x6b, 0x3, 0x6b, 0x3, 0x6b, 0x3, 0x6b, 0x3, 0x6b, 0x3, 0x6b, 0x3, + 0x6b, 0x3, 0x6b, 0x3, 0x6b, 0x3, 0x6c, 0x3, 0x6c, 0x3, 0x6c, 0x3, 0x6c, + 0x3, 0x6c, 0x3, 0x6c, 0x3, 0x6c, 0x3, 0x6c, 0x3, 0x6c, 0x3, 0x6c, 0x3, + 0x6c, 0x3, 0x6c, 0x3, 0x6c, 0x3, 0x6d, 0x3, 0x6d, 0x3, 0x6d, 0x3, 0x6d, + 0x3, 0x6d, 0x3, 0x6d, 0x3, 0x6d, 0x3, 0x6d, 0x3, 0x6d, 0x3, 0x6d, 0x3, + 0x6d, 0x3, 0x6d, 0x3, 0x6d, 0x3, 0x6d, 0x3, 0x6d, 0x3, 0x6d, 0x3, 0x6e, + 0x3, 0x6e, 0x3, 0x6e, 0x3, 0x6e, 0x3, 0x6e, 0x3, 0x6e, 0x3, 0x6e, 0x3, + 0x6e, 0x3, 0x6e, 0x3, 0x6e, 0x3, 0x6e, 0x3, 0x6e, 0x3, 0x6e, 0x3, 0x6e, + 0x3, 0x6e, 0x3, 0x6e, 0x3, 0x6e, 0x3, 0x6e, 0x3, 0x6e, 0x3, 0x6e, 0x3, + 0x6e, 0x3, 0x6e, 0x3, 0x6e, 0x3, 0x6e, 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, + 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, + 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, + 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, + 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, 0x3, 0x6f, + 0x3, 0x70, 0x3, 0x70, 0x3, 0x70, 0x3, 0x70, 0x3, 0x70, 0x3, 0x70, 0x3, + 0x70, 0x3, 0x70, 0x3, 0x70, 0x3, 0x70, 0x3, 0x70, 0x3, 0x70, 0x3, 0x70, + 0x3, 0x71, 0x3, 0x71, 0x3, 0x71, 0x3, 0x71, 0x3, 0x71, 0x3, 0x71, 0x3, + 0x71, 0x3, 0x71, 0x3, 0x71, 0x3, 0x71, 0x3, 0x71, 0x3, 0x71, 0x3, 0x71, + 0x3, 0x71, 0x3, 0x71, 0x3, 0x71, 0x3, 0x71, 0x3, 0x72, 0x3, 0x72, 0x3, + 0x72, 0x3, 0x72, 0x3, 0x72, 0x3, 0x72, 0x3, 0x72, 0x3, 0x73, 0x3, 0x73, + 0x3, 0x73, 0x3, 0x73, 0x3, 0x73, 0x3, 0x73, 0x3, 0x73, 0x3, 0x73, 0x3, + 0x73, 0x3, 0x73, 0x3, 0x73, 0x3, 0x73, 0x3, 0x73, 0x3, 0x73, 0x3, 0x73, + 0x3, 0x73, 0x3, 0x73, 0x3, 0x73, 0x3, 0x73, 0x3, 0x74, 0x3, 0x74, 0x3, + 0x74, 0x3, 0x74, 0x3, 0x74, 0x3, 0x74, 0x3, 0x74, 0x3, 0x74, 0x3, 0x75, + 0x3, 0x75, 0x3, 0x75, 0x3, 0x75, 0x3, 0x75, 0x3, 0x75, 0x3, 0x75, 0x3, + 0x75, 0x3, 0x76, 0x3, 0x76, 0x3, 0x76, 0x3, 0x76, 0x3, 0x76, 0x3, 0x76, + 0x3, 0x76, 0x3, 0x76, 0x3, 0x76, 0x3, 0x76, 0x3, 0x77, 0x3, 0x77, 0x3, + 0x77, 0x3, 0x77, 0x3, 0x77, 0x3, 0x77, 0x3, 0x77, 0x3, 0x77, 0x3, 0x78, + 0x3, 0x78, 0x3, 0x78, 0x3, 0x78, 0x3, 0x78, 0x3, 0x78, 0x3, 0x78, 0x3, + 0x78, 0x3, 0x78, 0x3, 0x78, 0x3, 0x78, 0x3, 0x79, 0x3, 0x79, 0x3, 0x79, + 0x3, 0x79, 0x3, 0x79, 0x3, 0x79, 0x3, 0x79, 0x3, 0x79, 0x3, 0x79, 0x3, + 0x7a, 0x3, 0x7a, 0x3, 0x7a, 0x7, 0x7a, 0x5d4, 0xa, 0x7a, 0xc, 0x7a, + 0xe, 0x7a, 0x5d7, 0xb, 0x7a, 0x3, 0x7b, 0x6, 0x7b, 0x5da, 0xa, 0x7b, + 0xd, 0x7b, 0xe, 0x7b, 0x5db, 0x3, 0x7b, 0x3, 0x7b, 0x2, 0x2, 0x7c, 0x3, + 0x3, 0x5, 0x4, 0x7, 0x5, 0x9, 0x6, 0xb, 0x7, 0xd, 0x8, 0xf, 0x9, 0x11, + 0xa, 0x13, 0xb, 0x15, 0xc, 0x17, 0xd, 0x19, 0xe, 0x1b, 0xf, 0x1d, 0x10, + 0x1f, 0x11, 0x21, 0x12, 0x23, 0x13, 0x25, 0x14, 0x27, 0x15, 0x29, 0x16, + 0x2b, 0x17, 0x2d, 0x18, 0x2f, 0x19, 0x31, 0x1a, 0x33, 0x1b, 0x35, 0x1c, + 0x37, 0x1d, 0x39, 0x1e, 0x3b, 0x1f, 0x3d, 0x20, 0x3f, 0x21, 0x41, 0x22, + 0x43, 0x23, 0x45, 0x24, 0x47, 0x25, 0x49, 0x26, 0x4b, 0x27, 0x4d, 0x28, + 0x4f, 0x29, 0x51, 0x2a, 0x53, 0x2b, 0x55, 0x2c, 0x57, 0x2d, 0x59, 0x2e, + 0x5b, 0x2f, 0x5d, 0x30, 0x5f, 0x31, 0x61, 0x32, 0x63, 0x33, 0x65, 0x34, + 0x67, 0x35, 0x69, 0x36, 0x6b, 0x37, 0x6d, 0x38, 0x6f, 0x39, 0x71, 0x3a, + 0x73, 0x3b, 0x75, 0x3c, 0x77, 0x3d, 0x79, 0x3e, 0x7b, 0x3f, 0x7d, 0x40, + 0x7f, 0x41, 0x81, 0x42, 0x83, 0x43, 0x85, 0x44, 0x87, 0x45, 0x89, 0x46, + 0x8b, 0x47, 0x8d, 0x2, 0x8f, 0x48, 0x91, 0x2, 0x93, 0x2, 0x95, 0x2, + 0x97, 0x2, 0x99, 0x2, 0x9b, 0x2, 0x9d, 0x2, 0x9f, 0x2, 0xa1, 0x49, 0xa3, + 0x4a, 0xa5, 0x4b, 0xa7, 0x4c, 0xa9, 0x4d, 0xab, 0x4e, 0xad, 0x4f, 0xaf, + 0x50, 0xb1, 0x51, 0xb3, 0x52, 0xb5, 0x53, 0xb7, 0x54, 0xb9, 0x55, 0xbb, + 0x56, 0xbd, 0x57, 0xbf, 0x58, 0xc1, 0x59, 0xc3, 0x5a, 0xc5, 0x5b, 0xc7, + 0x5c, 0xc9, 0x5d, 0xcb, 0x5e, 0xcd, 0x5f, 0xcf, 0x60, 0xd1, 0x61, 0xd3, + 0x62, 0xd5, 0x63, 0xd7, 0x64, 0xd9, 0x65, 0xdb, 0x66, 0xdd, 0x67, 0xdf, + 0x68, 0xe1, 0x69, 0xe3, 0x6a, 0xe5, 0x6b, 0xe7, 0x6c, 0xe9, 0x6d, 0xeb, + 0x6e, 0xed, 0x6f, 0xef, 0x70, 0xf1, 0x71, 0xf3, 0x72, 0xf5, 0x73, 0x3, + 0x2, 0xc, 0x4, 0x2, 0xc, 0xc, 0xf, 0xf, 0x3, 0x2, 0x33, 0x3b, 0x5, 0x2, + 0x32, 0x3b, 0x43, 0x48, 0x63, 0x68, 0x3, 0x2, 0x32, 0x3b, 0xa, 0x2, + 0x23, 0x23, 0x26, 0x28, 0x2c, 0x2d, 0x2f, 0x31, 0x3e, 0x5c, 0x60, 0x61, + 0x63, 0x7c, 0x80, 0x80, 0x3, 0x2, 0x32, 0x33, 0x4, 0x2, 0x22, 0x80, + 0x82, 0x1, 0x5, 0x2, 0x22, 0x23, 0x25, 0x80, 0x82, 0x1, 0x6, 0x2, 0x22, + 0x5d, 0x5f, 0x7d, 0x7f, 0x80, 0x82, 0x1, 0x5, 0x2, 0xb, 0xc, 0xf, 0xf, + 0x22, 0x22, 0x2, 0x5e4, 0x2, 0x3, 0x3, 0x2, 0x2, 0x2, 0x2, 0x5, 0x3, + 0x2, 0x2, 0x2, 0x2, 0x7, 0x3, 0x2, 0x2, 0x2, 0x2, 0x9, 0x3, 0x2, 0x2, + 0x2, 0x2, 0xb, 0x3, 0x2, 0x2, 0x2, 0x2, 0xd, 0x3, 0x2, 0x2, 0x2, 0x2, + 0xf, 0x3, 0x2, 0x2, 0x2, 0x2, 0x11, 0x3, 0x2, 0x2, 0x2, 0x2, 0x13, 0x3, + 0x2, 0x2, 0x2, 0x2, 0x15, 0x3, 0x2, 0x2, 0x2, 0x2, 0x17, 0x3, 0x2, 0x2, + 0x2, 0x2, 0x19, 0x3, 0x2, 0x2, 0x2, 0x2, 0x1b, 0x3, 0x2, 0x2, 0x2, 0x2, + 0x1d, 0x3, 0x2, 0x2, 0x2, 0x2, 0x1f, 0x3, 0x2, 0x2, 0x2, 0x2, 0x21, + 0x3, 0x2, 0x2, 0x2, 0x2, 0x23, 0x3, 0x2, 0x2, 0x2, 0x2, 0x25, 0x3, 0x2, + 0x2, 0x2, 0x2, 0x27, 0x3, 0x2, 0x2, 0x2, 0x2, 0x29, 0x3, 0x2, 0x2, 0x2, + 0x2, 0x2b, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2d, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2f, + 0x3, 0x2, 0x2, 0x2, 0x2, 0x31, 0x3, 0x2, 0x2, 0x2, 0x2, 0x33, 0x3, 0x2, + 0x2, 0x2, 0x2, 0x35, 0x3, 0x2, 0x2, 0x2, 0x2, 0x37, 0x3, 0x2, 0x2, 0x2, + 0x2, 0x39, 0x3, 0x2, 0x2, 0x2, 0x2, 0x3b, 0x3, 0x2, 0x2, 0x2, 0x2, 0x3d, + 0x3, 0x2, 0x2, 0x2, 0x2, 0x3f, 0x3, 0x2, 0x2, 0x2, 0x2, 0x41, 0x3, 0x2, + 0x2, 0x2, 0x2, 0x43, 0x3, 0x2, 0x2, 0x2, 0x2, 0x45, 0x3, 0x2, 0x2, 0x2, + 0x2, 0x47, 0x3, 0x2, 0x2, 0x2, 0x2, 0x49, 0x3, 0x2, 0x2, 0x2, 0x2, 0x4b, + 0x3, 0x2, 0x2, 0x2, 0x2, 0x4d, 0x3, 0x2, 0x2, 0x2, 0x2, 0x4f, 0x3, 0x2, + 0x2, 0x2, 0x2, 0x51, 0x3, 0x2, 0x2, 0x2, 0x2, 0x53, 0x3, 0x2, 0x2, 0x2, + 0x2, 0x55, 0x3, 0x2, 0x2, 0x2, 0x2, 0x57, 0x3, 0x2, 0x2, 0x2, 0x2, 0x59, + 0x3, 0x2, 0x2, 0x2, 0x2, 0x5b, 0x3, 0x2, 0x2, 0x2, 0x2, 0x5d, 0x3, 0x2, + 0x2, 0x2, 0x2, 0x5f, 0x3, 0x2, 0x2, 0x2, 0x2, 0x61, 0x3, 0x2, 0x2, 0x2, + 0x2, 0x63, 0x3, 0x2, 0x2, 0x2, 0x2, 0x65, 0x3, 0x2, 0x2, 0x2, 0x2, 0x67, + 0x3, 0x2, 0x2, 0x2, 0x2, 0x69, 0x3, 0x2, 0x2, 0x2, 0x2, 0x6b, 0x3, 0x2, + 0x2, 0x2, 0x2, 0x6d, 0x3, 0x2, 0x2, 0x2, 0x2, 0x6f, 0x3, 0x2, 0x2, 0x2, + 0x2, 0x71, 0x3, 0x2, 0x2, 0x2, 0x2, 0x73, 0x3, 0x2, 0x2, 0x2, 0x2, 0x75, + 0x3, 0x2, 0x2, 0x2, 0x2, 0x77, 0x3, 0x2, 0x2, 0x2, 0x2, 0x79, 0x3, 0x2, + 0x2, 0x2, 0x2, 0x7b, 0x3, 0x2, 0x2, 0x2, 0x2, 0x7d, 0x3, 0x2, 0x2, 0x2, + 0x2, 0x7f, 0x3, 0x2, 0x2, 0x2, 0x2, 0x81, 0x3, 0x2, 0x2, 0x2, 0x2, 0x83, + 0x3, 0x2, 0x2, 0x2, 0x2, 0x85, 0x3, 0x2, 0x2, 0x2, 0x2, 0x87, 0x3, 0x2, + 0x2, 0x2, 0x2, 0x89, 0x3, 0x2, 0x2, 0x2, 0x2, 0x8b, 0x3, 0x2, 0x2, 0x2, + 0x2, 0x8f, 0x3, 0x2, 0x2, 0x2, 0x2, 0xa1, 0x3, 0x2, 0x2, 0x2, 0x2, 0xa3, + 0x3, 0x2, 0x2, 0x2, 0x2, 0xa5, 0x3, 0x2, 0x2, 0x2, 0x2, 0xa7, 0x3, 0x2, + 0x2, 0x2, 0x2, 0xa9, 0x3, 0x2, 0x2, 0x2, 0x2, 0xab, 0x3, 0x2, 0x2, 0x2, + 0x2, 0xad, 0x3, 0x2, 0x2, 0x2, 0x2, 0xaf, 0x3, 0x2, 0x2, 0x2, 0x2, 0xb1, + 0x3, 0x2, 0x2, 0x2, 0x2, 0xb3, 0x3, 0x2, 0x2, 0x2, 0x2, 0xb5, 0x3, 0x2, + 0x2, 0x2, 0x2, 0xb7, 0x3, 0x2, 0x2, 0x2, 0x2, 0xb9, 0x3, 0x2, 0x2, 0x2, + 0x2, 0xbb, 0x3, 0x2, 0x2, 0x2, 0x2, 0xbd, 0x3, 0x2, 0x2, 0x2, 0x2, 0xbf, + 0x3, 0x2, 0x2, 0x2, 0x2, 0xc1, 0x3, 0x2, 0x2, 0x2, 0x2, 0xc3, 0x3, 0x2, + 0x2, 0x2, 0x2, 0xc5, 0x3, 0x2, 0x2, 0x2, 0x2, 0xc7, 0x3, 0x2, 0x2, 0x2, + 0x2, 0xc9, 0x3, 0x2, 0x2, 0x2, 0x2, 0xcb, 0x3, 0x2, 0x2, 0x2, 0x2, 0xcd, + 0x3, 0x2, 0x2, 0x2, 0x2, 0xcf, 0x3, 0x2, 0x2, 0x2, 0x2, 0xd1, 0x3, 0x2, + 0x2, 0x2, 0x2, 0xd3, 0x3, 0x2, 0x2, 0x2, 0x2, 0xd5, 0x3, 0x2, 0x2, 0x2, + 0x2, 0xd7, 0x3, 0x2, 0x2, 0x2, 0x2, 0xd9, 0x3, 0x2, 0x2, 0x2, 0x2, 0xdb, + 0x3, 0x2, 0x2, 0x2, 0x2, 0xdd, 0x3, 0x2, 0x2, 0x2, 0x2, 0xdf, 0x3, 0x2, + 0x2, 0x2, 0x2, 0xe1, 0x3, 0x2, 0x2, 0x2, 0x2, 0xe3, 0x3, 0x2, 0x2, 0x2, + 0x2, 0xe5, 0x3, 0x2, 0x2, 0x2, 0x2, 0xe7, 0x3, 0x2, 0x2, 0x2, 0x2, 0xe9, + 0x3, 0x2, 0x2, 0x2, 0x2, 0xeb, 0x3, 0x2, 0x2, 0x2, 0x2, 0xed, 0x3, 0x2, + 0x2, 0x2, 0x2, 0xef, 0x3, 0x2, 0x2, 0x2, 0x2, 0xf1, 0x3, 0x2, 0x2, 0x2, + 0x2, 0xf3, 0x3, 0x2, 0x2, 0x2, 0x2, 0xf5, 0x3, 0x2, 0x2, 0x2, 0x3, 0xf7, + 0x3, 0x2, 0x2, 0x2, 0x5, 0x100, 0x3, 0x2, 0x2, 0x2, 0x7, 0x102, 0x3, + 0x2, 0x2, 0x2, 0x9, 0x104, 0x3, 0x2, 0x2, 0x2, 0xb, 0x106, 0x3, 0x2, + 0x2, 0x2, 0xd, 0x10f, 0x3, 0x2, 0x2, 0x2, 0xf, 0x118, 0x3, 0x2, 0x2, + 0x2, 0x11, 0x11c, 0x3, 0x2, 0x2, 0x2, 0x13, 0x121, 0x3, 0x2, 0x2, 0x2, + 0x15, 0x135, 0x3, 0x2, 0x2, 0x2, 0x17, 0x13b, 0x3, 0x2, 0x2, 0x2, 0x19, + 0x141, 0x3, 0x2, 0x2, 0x2, 0x1b, 0x150, 0x3, 0x2, 0x2, 0x2, 0x1d, 0x15b, + 0x3, 0x2, 0x2, 0x2, 0x1f, 0x161, 0x3, 0x2, 0x2, 0x2, 0x21, 0x168, 0x3, + 0x2, 0x2, 0x2, 0x23, 0x16c, 0x3, 0x2, 0x2, 0x2, 0x25, 0x174, 0x3, 0x2, + 0x2, 0x2, 0x27, 0x17b, 0x3, 0x2, 0x2, 0x2, 0x29, 0x180, 0x3, 0x2, 0x2, + 0x2, 0x2b, 0x188, 0x3, 0x2, 0x2, 0x2, 0x2d, 0x194, 0x3, 0x2, 0x2, 0x2, + 0x2f, 0x19a, 0x3, 0x2, 0x2, 0x2, 0x31, 0x1a1, 0x3, 0x2, 0x2, 0x2, 0x33, + 0x1ab, 0x3, 0x2, 0x2, 0x2, 0x35, 0x1be, 0x3, 0x2, 0x2, 0x2, 0x37, 0x1cc, + 0x3, 0x2, 0x2, 0x2, 0x39, 0x1dd, 0x3, 0x2, 0x2, 0x2, 0x3b, 0x1ef, 0x3, + 0x2, 0x2, 0x2, 0x3d, 0x1fb, 0x3, 0x2, 0x2, 0x2, 0x3f, 0x208, 0x3, 0x2, + 0x2, 0x2, 0x41, 0x213, 0x3, 0x2, 0x2, 0x2, 0x43, 0x222, 0x3, 0x2, 0x2, + 0x2, 0x45, 0x232, 0x3, 0x2, 0x2, 0x2, 0x47, 0x23e, 0x3, 0x2, 0x2, 0x2, + 0x49, 0x243, 0x3, 0x2, 0x2, 0x2, 0x4b, 0x248, 0x3, 0x2, 0x2, 0x2, 0x4d, + 0x257, 0x3, 0x2, 0x2, 0x2, 0x4f, 0x266, 0x3, 0x2, 0x2, 0x2, 0x51, 0x26f, + 0x3, 0x2, 0x2, 0x2, 0x53, 0x279, 0x3, 0x2, 0x2, 0x2, 0x55, 0x284, 0x3, + 0x2, 0x2, 0x2, 0x57, 0x28e, 0x3, 0x2, 0x2, 0x2, 0x59, 0x2a4, 0x3, 0x2, + 0x2, 0x2, 0x5b, 0x2b3, 0x3, 0x2, 0x2, 0x2, 0x5d, 0x2bd, 0x3, 0x2, 0x2, + 0x2, 0x5f, 0x2c1, 0x3, 0x2, 0x2, 0x2, 0x61, 0x2c6, 0x3, 0x2, 0x2, 0x2, + 0x63, 0x2cc, 0x3, 0x2, 0x2, 0x2, 0x65, 0x2dd, 0x3, 0x2, 0x2, 0x2, 0x67, + 0x2e6, 0x3, 0x2, 0x2, 0x2, 0x69, 0x2f0, 0x3, 0x2, 0x2, 0x2, 0x6b, 0x2fb, + 0x3, 0x2, 0x2, 0x2, 0x6d, 0x2fd, 0x3, 0x2, 0x2, 0x2, 0x6f, 0x2ff, 0x3, + 0x2, 0x2, 0x2, 0x71, 0x302, 0x3, 0x2, 0x2, 0x2, 0x73, 0x309, 0x3, 0x2, + 0x2, 0x2, 0x75, 0x311, 0x3, 0x2, 0x2, 0x2, 0x77, 0x318, 0x3, 0x2, 0x2, + 0x2, 0x79, 0x324, 0x3, 0x2, 0x2, 0x2, 0x7b, 0x32b, 0x3, 0x2, 0x2, 0x2, + 0x7d, 0x32f, 0x3, 0x2, 0x2, 0x2, 0x7f, 0x335, 0x3, 0x2, 0x2, 0x2, 0x81, + 0x33d, 0x3, 0x2, 0x2, 0x2, 0x83, 0x341, 0x3, 0x2, 0x2, 0x2, 0x85, 0x350, + 0x3, 0x2, 0x2, 0x2, 0x87, 0x353, 0x3, 0x2, 0x2, 0x2, 0x89, 0x357, 0x3, + 0x2, 0x2, 0x2, 0x8b, 0x35f, 0x3, 0x2, 0x2, 0x2, 0x8d, 0x369, 0x3, 0x2, + 0x2, 0x2, 0x8f, 0x36b, 0x3, 0x2, 0x2, 0x2, 0x91, 0x36d, 0x3, 0x2, 0x2, + 0x2, 0x93, 0x36f, 0x3, 0x2, 0x2, 0x2, 0x95, 0x371, 0x3, 0x2, 0x2, 0x2, + 0x97, 0x375, 0x3, 0x2, 0x2, 0x2, 0x99, 0x379, 0x3, 0x2, 0x2, 0x2, 0x9b, + 0x37d, 0x3, 0x2, 0x2, 0x2, 0x9d, 0x37f, 0x3, 0x2, 0x2, 0x2, 0x9f, 0x382, + 0x3, 0x2, 0x2, 0x2, 0xa1, 0x384, 0x3, 0x2, 0x2, 0x2, 0xa3, 0x394, 0x3, + 0x2, 0x2, 0x2, 0xa5, 0x3ac, 0x3, 0x2, 0x2, 0x2, 0xa7, 0x3b5, 0x3, 0x2, + 0x2, 0x2, 0xa9, 0x3bf, 0x3, 0x2, 0x2, 0x2, 0xab, 0x3ca, 0x3, 0x2, 0x2, + 0x2, 0xad, 0x3d6, 0x3, 0x2, 0x2, 0x2, 0xaf, 0x3f1, 0x3, 0x2, 0x2, 0x2, + 0xb1, 0x401, 0x3, 0x2, 0x2, 0x2, 0xb3, 0x40d, 0x3, 0x2, 0x2, 0x2, 0xb5, + 0x413, 0x3, 0x2, 0x2, 0x2, 0xb7, 0x425, 0x3, 0x2, 0x2, 0x2, 0xb9, 0x43a, + 0x3, 0x2, 0x2, 0x2, 0xbb, 0x44c, 0x3, 0x2, 0x2, 0x2, 0xbd, 0x456, 0x3, + 0x2, 0x2, 0x2, 0xbf, 0x462, 0x3, 0x2, 0x2, 0x2, 0xc1, 0x46b, 0x3, 0x2, + 0x2, 0x2, 0xc3, 0x472, 0x3, 0x2, 0x2, 0x2, 0xc5, 0x478, 0x3, 0x2, 0x2, + 0x2, 0xc7, 0x47f, 0x3, 0x2, 0x2, 0x2, 0xc9, 0x488, 0x3, 0x2, 0x2, 0x2, + 0xcb, 0x497, 0x3, 0x2, 0x2, 0x2, 0xcd, 0x4ab, 0x3, 0x2, 0x2, 0x2, 0xcf, + 0x4c0, 0x3, 0x2, 0x2, 0x2, 0xd1, 0x4d0, 0x3, 0x2, 0x2, 0x2, 0xd3, 0x4e0, + 0x3, 0x2, 0x2, 0x2, 0xd5, 0x4fb, 0x3, 0x2, 0x2, 0x2, 0xd7, 0x510, 0x3, + 0x2, 0x2, 0x2, 0xd9, 0x51d, 0x3, 0x2, 0x2, 0x2, 0xdb, 0x52d, 0x3, 0x2, + 0x2, 0x2, 0xdd, 0x545, 0x3, 0x2, 0x2, 0x2, 0xdf, 0x562, 0x3, 0x2, 0x2, + 0x2, 0xe1, 0x56f, 0x3, 0x2, 0x2, 0x2, 0xe3, 0x580, 0x3, 0x2, 0x2, 0x2, + 0xe5, 0x587, 0x3, 0x2, 0x2, 0x2, 0xe7, 0x59a, 0x3, 0x2, 0x2, 0x2, 0xe9, + 0x5a2, 0x3, 0x2, 0x2, 0x2, 0xeb, 0x5aa, 0x3, 0x2, 0x2, 0x2, 0xed, 0x5b4, + 0x3, 0x2, 0x2, 0x2, 0xef, 0x5bc, 0x3, 0x2, 0x2, 0x2, 0xf1, 0x5c7, 0x3, + 0x2, 0x2, 0x2, 0xf3, 0x5d0, 0x3, 0x2, 0x2, 0x2, 0xf5, 0x5d9, 0x3, 0x2, + 0x2, 0x2, 0xf7, 0xfb, 0x5, 0x9, 0x5, 0x2, 0xf8, 0xfa, 0xa, 0x2, 0x2, + 0x2, 0xf9, 0xf8, 0x3, 0x2, 0x2, 0x2, 0xfa, 0xfd, 0x3, 0x2, 0x2, 0x2, + 0xfb, 0xf9, 0x3, 0x2, 0x2, 0x2, 0xfb, 0xfc, 0x3, 0x2, 0x2, 0x2, 0xfc, + 0xfe, 0x3, 0x2, 0x2, 0x2, 0xfd, 0xfb, 0x3, 0x2, 0x2, 0x2, 0xfe, 0xff, + 0x8, 0x2, 0x2, 0x2, 0xff, 0x4, 0x3, 0x2, 0x2, 0x2, 0x100, 0x101, 0x7, + 0x2a, 0x2, 0x2, 0x101, 0x6, 0x3, 0x2, 0x2, 0x2, 0x102, 0x103, 0x7, 0x2b, + 0x2, 0x2, 0x103, 0x8, 0x3, 0x2, 0x2, 0x2, 0x104, 0x105, 0x7, 0x3d, 0x2, + 0x2, 0x105, 0xa, 0x3, 0x2, 0x2, 0x2, 0x106, 0x109, 0x7, 0x24, 0x2, 0x2, + 0x107, 0x10a, 0x5, 0x99, 0x4d, 0x2, 0x108, 0x10a, 0x5, 0x9f, 0x50, 0x2, + 0x109, 0x107, 0x3, 0x2, 0x2, 0x2, 0x109, 0x108, 0x3, 0x2, 0x2, 0x2, + 0x10a, 0x10b, 0x3, 0x2, 0x2, 0x2, 0x10b, 0x109, 0x3, 0x2, 0x2, 0x2, + 0x10b, 0x10c, 0x3, 0x2, 0x2, 0x2, 0x10c, 0x10d, 0x3, 0x2, 0x2, 0x2, + 0x10d, 0x10e, 0x7, 0x24, 0x2, 0x2, 0x10e, 0xc, 0x3, 0x2, 0x2, 0x2, 0x10f, + 0x112, 0x7, 0x7e, 0x2, 0x2, 0x110, 0x113, 0x5, 0x9b, 0x4e, 0x2, 0x111, + 0x113, 0x5, 0x9f, 0x50, 0x2, 0x112, 0x110, 0x3, 0x2, 0x2, 0x2, 0x112, + 0x111, 0x3, 0x2, 0x2, 0x2, 0x113, 0x114, 0x3, 0x2, 0x2, 0x2, 0x114, + 0x112, 0x3, 0x2, 0x2, 0x2, 0x114, 0x115, 0x3, 0x2, 0x2, 0x2, 0x115, + 0x116, 0x3, 0x2, 0x2, 0x2, 0x116, 0x117, 0x7, 0x7e, 0x2, 0x2, 0x117, + 0xe, 0x3, 0x2, 0x2, 0x2, 0x118, 0x119, 0x7, 0x70, 0x2, 0x2, 0x119, 0x11a, + 0x7, 0x71, 0x2, 0x2, 0x11a, 0x11b, 0x7, 0x76, 0x2, 0x2, 0x11b, 0x10, + 0x3, 0x2, 0x2, 0x2, 0x11c, 0x11d, 0x7, 0x44, 0x2, 0x2, 0x11d, 0x11e, + 0x7, 0x71, 0x2, 0x2, 0x11e, 0x11f, 0x7, 0x71, 0x2, 0x2, 0x11f, 0x120, + 0x7, 0x6e, 0x2, 0x2, 0x120, 0x12, 0x3, 0x2, 0x2, 0x2, 0x121, 0x122, + 0x7, 0x65, 0x2, 0x2, 0x122, 0x123, 0x7, 0x71, 0x2, 0x2, 0x123, 0x124, + 0x7, 0x70, 0x2, 0x2, 0x124, 0x125, 0x7, 0x76, 0x2, 0x2, 0x125, 0x126, + 0x7, 0x6b, 0x2, 0x2, 0x126, 0x127, 0x7, 0x70, 0x2, 0x2, 0x127, 0x128, + 0x7, 0x77, 0x2, 0x2, 0x128, 0x129, 0x7, 0x67, 0x2, 0x2, 0x129, 0x12a, + 0x7, 0x66, 0x2, 0x2, 0x12a, 0x12b, 0x7, 0x2f, 0x2, 0x2, 0x12b, 0x12c, + 0x7, 0x67, 0x2, 0x2, 0x12c, 0x12d, 0x7, 0x7a, 0x2, 0x2, 0x12d, 0x12e, + 0x7, 0x67, 0x2, 0x2, 0x12e, 0x12f, 0x7, 0x65, 0x2, 0x2, 0x12f, 0x130, + 0x7, 0x77, 0x2, 0x2, 0x130, 0x131, 0x7, 0x76, 0x2, 0x2, 0x131, 0x132, + 0x7, 0x6b, 0x2, 0x2, 0x132, 0x133, 0x7, 0x71, 0x2, 0x2, 0x133, 0x134, + 0x7, 0x70, 0x2, 0x2, 0x134, 0x14, 0x3, 0x2, 0x2, 0x2, 0x135, 0x136, + 0x7, 0x67, 0x2, 0x2, 0x136, 0x137, 0x7, 0x74, 0x2, 0x2, 0x137, 0x138, + 0x7, 0x74, 0x2, 0x2, 0x138, 0x139, 0x7, 0x71, 0x2, 0x2, 0x139, 0x13a, + 0x7, 0x74, 0x2, 0x2, 0x13a, 0x16, 0x3, 0x2, 0x2, 0x2, 0x13b, 0x13c, + 0x7, 0x68, 0x2, 0x2, 0x13c, 0x13d, 0x7, 0x63, 0x2, 0x2, 0x13d, 0x13e, + 0x7, 0x6e, 0x2, 0x2, 0x13e, 0x13f, 0x7, 0x75, 0x2, 0x2, 0x13f, 0x140, + 0x7, 0x67, 0x2, 0x2, 0x140, 0x18, 0x3, 0x2, 0x2, 0x2, 0x141, 0x142, + 0x7, 0x6b, 0x2, 0x2, 0x142, 0x143, 0x7, 0x6f, 0x2, 0x2, 0x143, 0x144, + 0x7, 0x6f, 0x2, 0x2, 0x144, 0x145, 0x7, 0x67, 0x2, 0x2, 0x145, 0x146, + 0x7, 0x66, 0x2, 0x2, 0x146, 0x147, 0x7, 0x6b, 0x2, 0x2, 0x147, 0x148, + 0x7, 0x63, 0x2, 0x2, 0x148, 0x149, 0x7, 0x76, 0x2, 0x2, 0x149, 0x14a, + 0x7, 0x67, 0x2, 0x2, 0x14a, 0x14b, 0x7, 0x2f, 0x2, 0x2, 0x14b, 0x14c, + 0x7, 0x67, 0x2, 0x2, 0x14c, 0x14d, 0x7, 0x7a, 0x2, 0x2, 0x14d, 0x14e, + 0x7, 0x6b, 0x2, 0x2, 0x14e, 0x14f, 0x7, 0x76, 0x2, 0x2, 0x14f, 0x1a, + 0x3, 0x2, 0x2, 0x2, 0x150, 0x151, 0x7, 0x6b, 0x2, 0x2, 0x151, 0x152, + 0x7, 0x70, 0x2, 0x2, 0x152, 0x153, 0x7, 0x65, 0x2, 0x2, 0x153, 0x154, + 0x7, 0x71, 0x2, 0x2, 0x154, 0x155, 0x7, 0x6f, 0x2, 0x2, 0x155, 0x156, + 0x7, 0x72, 0x2, 0x2, 0x156, 0x157, 0x7, 0x6e, 0x2, 0x2, 0x157, 0x158, + 0x7, 0x67, 0x2, 0x2, 0x158, 0x159, 0x7, 0x76, 0x2, 0x2, 0x159, 0x15a, + 0x7, 0x67, 0x2, 0x2, 0x15a, 0x1c, 0x3, 0x2, 0x2, 0x2, 0x15b, 0x15c, + 0x7, 0x6e, 0x2, 0x2, 0x15c, 0x15d, 0x7, 0x71, 0x2, 0x2, 0x15d, 0x15e, + 0x7, 0x69, 0x2, 0x2, 0x15e, 0x15f, 0x7, 0x6b, 0x2, 0x2, 0x15f, 0x160, + 0x7, 0x65, 0x2, 0x2, 0x160, 0x1e, 0x3, 0x2, 0x2, 0x2, 0x161, 0x162, + 0x7, 0x6f, 0x2, 0x2, 0x162, 0x163, 0x7, 0x67, 0x2, 0x2, 0x163, 0x164, + 0x7, 0x6f, 0x2, 0x2, 0x164, 0x165, 0x7, 0x71, 0x2, 0x2, 0x165, 0x166, + 0x7, 0x77, 0x2, 0x2, 0x166, 0x167, 0x7, 0x76, 0x2, 0x2, 0x167, 0x20, + 0x3, 0x2, 0x2, 0x2, 0x168, 0x169, 0x7, 0x75, 0x2, 0x2, 0x169, 0x16a, + 0x7, 0x63, 0x2, 0x2, 0x16a, 0x16b, 0x7, 0x76, 0x2, 0x2, 0x16b, 0x22, + 0x3, 0x2, 0x2, 0x2, 0x16c, 0x16d, 0x7, 0x75, 0x2, 0x2, 0x16d, 0x16e, + 0x7, 0x77, 0x2, 0x2, 0x16e, 0x16f, 0x7, 0x65, 0x2, 0x2, 0x16f, 0x170, + 0x7, 0x65, 0x2, 0x2, 0x170, 0x171, 0x7, 0x67, 0x2, 0x2, 0x171, 0x172, + 0x7, 0x75, 0x2, 0x2, 0x172, 0x173, 0x7, 0x75, 0x2, 0x2, 0x173, 0x24, + 0x3, 0x2, 0x2, 0x2, 0x174, 0x175, 0x7, 0x76, 0x2, 0x2, 0x175, 0x176, + 0x7, 0x6a, 0x2, 0x2, 0x176, 0x177, 0x7, 0x67, 0x2, 0x2, 0x177, 0x178, + 0x7, 0x71, 0x2, 0x2, 0x178, 0x179, 0x7, 0x74, 0x2, 0x2, 0x179, 0x17a, + 0x7, 0x7b, 0x2, 0x2, 0x17a, 0x26, 0x3, 0x2, 0x2, 0x2, 0x17b, 0x17c, + 0x7, 0x76, 0x2, 0x2, 0x17c, 0x17d, 0x7, 0x74, 0x2, 0x2, 0x17d, 0x17e, + 0x7, 0x77, 0x2, 0x2, 0x17e, 0x17f, 0x7, 0x67, 0x2, 0x2, 0x17f, 0x28, + 0x3, 0x2, 0x2, 0x2, 0x180, 0x181, 0x7, 0x77, 0x2, 0x2, 0x181, 0x182, + 0x7, 0x70, 0x2, 0x2, 0x182, 0x183, 0x7, 0x6d, 0x2, 0x2, 0x183, 0x184, + 0x7, 0x70, 0x2, 0x2, 0x184, 0x185, 0x7, 0x71, 0x2, 0x2, 0x185, 0x186, + 0x7, 0x79, 0x2, 0x2, 0x186, 0x187, 0x7, 0x70, 0x2, 0x2, 0x187, 0x2a, + 0x3, 0x2, 0x2, 0x2, 0x188, 0x189, 0x7, 0x77, 0x2, 0x2, 0x189, 0x18a, + 0x7, 0x70, 0x2, 0x2, 0x18a, 0x18b, 0x7, 0x75, 0x2, 0x2, 0x18b, 0x18c, + 0x7, 0x77, 0x2, 0x2, 0x18c, 0x18d, 0x7, 0x72, 0x2, 0x2, 0x18d, 0x18e, + 0x7, 0x72, 0x2, 0x2, 0x18e, 0x18f, 0x7, 0x71, 0x2, 0x2, 0x18f, 0x190, + 0x7, 0x74, 0x2, 0x2, 0x190, 0x191, 0x7, 0x76, 0x2, 0x2, 0x191, 0x192, + 0x7, 0x67, 0x2, 0x2, 0x192, 0x193, 0x7, 0x66, 0x2, 0x2, 0x193, 0x2c, + 0x3, 0x2, 0x2, 0x2, 0x194, 0x195, 0x7, 0x77, 0x2, 0x2, 0x195, 0x196, + 0x7, 0x70, 0x2, 0x2, 0x196, 0x197, 0x7, 0x75, 0x2, 0x2, 0x197, 0x198, + 0x7, 0x63, 0x2, 0x2, 0x198, 0x199, 0x7, 0x76, 0x2, 0x2, 0x199, 0x2e, + 0x3, 0x2, 0x2, 0x2, 0x19a, 0x19b, 0x7, 0x63, 0x2, 0x2, 0x19b, 0x19c, + 0x7, 0x75, 0x2, 0x2, 0x19c, 0x19d, 0x7, 0x75, 0x2, 0x2, 0x19d, 0x19e, + 0x7, 0x67, 0x2, 0x2, 0x19e, 0x19f, 0x7, 0x74, 0x2, 0x2, 0x19f, 0x1a0, + 0x7, 0x76, 0x2, 0x2, 0x1a0, 0x30, 0x3, 0x2, 0x2, 0x2, 0x1a1, 0x1a2, + 0x7, 0x65, 0x2, 0x2, 0x1a2, 0x1a3, 0x7, 0x6a, 0x2, 0x2, 0x1a3, 0x1a4, + 0x7, 0x67, 0x2, 0x2, 0x1a4, 0x1a5, 0x7, 0x65, 0x2, 0x2, 0x1a5, 0x1a6, + 0x7, 0x6d, 0x2, 0x2, 0x1a6, 0x1a7, 0x7, 0x2f, 0x2, 0x2, 0x1a7, 0x1a8, + 0x7, 0x75, 0x2, 0x2, 0x1a8, 0x1a9, 0x7, 0x63, 0x2, 0x2, 0x1a9, 0x1aa, + 0x7, 0x76, 0x2, 0x2, 0x1aa, 0x32, 0x3, 0x2, 0x2, 0x2, 0x1ab, 0x1ac, + 0x7, 0x65, 0x2, 0x2, 0x1ac, 0x1ad, 0x7, 0x6a, 0x2, 0x2, 0x1ad, 0x1ae, + 0x7, 0x67, 0x2, 0x2, 0x1ae, 0x1af, 0x7, 0x65, 0x2, 0x2, 0x1af, 0x1b0, + 0x7, 0x6d, 0x2, 0x2, 0x1b0, 0x1b1, 0x7, 0x2f, 0x2, 0x2, 0x1b1, 0x1b2, + 0x7, 0x75, 0x2, 0x2, 0x1b2, 0x1b3, 0x7, 0x63, 0x2, 0x2, 0x1b3, 0x1b4, + 0x7, 0x76, 0x2, 0x2, 0x1b4, 0x1b5, 0x7, 0x2f, 0x2, 0x2, 0x1b5, 0x1b6, + 0x7, 0x63, 0x2, 0x2, 0x1b6, 0x1b7, 0x7, 0x75, 0x2, 0x2, 0x1b7, 0x1b8, + 0x7, 0x75, 0x2, 0x2, 0x1b8, 0x1b9, 0x7, 0x77, 0x2, 0x2, 0x1b9, 0x1ba, + 0x7, 0x6f, 0x2, 0x2, 0x1ba, 0x1bb, 0x7, 0x6b, 0x2, 0x2, 0x1bb, 0x1bc, + 0x7, 0x70, 0x2, 0x2, 0x1bc, 0x1bd, 0x7, 0x69, 0x2, 0x2, 0x1bd, 0x34, + 0x3, 0x2, 0x2, 0x2, 0x1be, 0x1bf, 0x7, 0x66, 0x2, 0x2, 0x1bf, 0x1c0, + 0x7, 0x67, 0x2, 0x2, 0x1c0, 0x1c1, 0x7, 0x65, 0x2, 0x2, 0x1c1, 0x1c2, + 0x7, 0x6e, 0x2, 0x2, 0x1c2, 0x1c3, 0x7, 0x63, 0x2, 0x2, 0x1c3, 0x1c4, + 0x7, 0x74, 0x2, 0x2, 0x1c4, 0x1c5, 0x7, 0x67, 0x2, 0x2, 0x1c5, 0x1c6, + 0x7, 0x2f, 0x2, 0x2, 0x1c6, 0x1c7, 0x7, 0x65, 0x2, 0x2, 0x1c7, 0x1c8, + 0x7, 0x71, 0x2, 0x2, 0x1c8, 0x1c9, 0x7, 0x70, 0x2, 0x2, 0x1c9, 0x1ca, + 0x7, 0x75, 0x2, 0x2, 0x1ca, 0x1cb, 0x7, 0x76, 0x2, 0x2, 0x1cb, 0x36, + 0x3, 0x2, 0x2, 0x2, 0x1cc, 0x1cd, 0x7, 0x66, 0x2, 0x2, 0x1cd, 0x1ce, + 0x7, 0x67, 0x2, 0x2, 0x1ce, 0x1cf, 0x7, 0x65, 0x2, 0x2, 0x1cf, 0x1d0, + 0x7, 0x6e, 0x2, 0x2, 0x1d0, 0x1d1, 0x7, 0x63, 0x2, 0x2, 0x1d1, 0x1d2, + 0x7, 0x74, 0x2, 0x2, 0x1d2, 0x1d3, 0x7, 0x67, 0x2, 0x2, 0x1d3, 0x1d4, + 0x7, 0x2f, 0x2, 0x2, 0x1d4, 0x1d5, 0x7, 0x66, 0x2, 0x2, 0x1d5, 0x1d6, + 0x7, 0x63, 0x2, 0x2, 0x1d6, 0x1d7, 0x7, 0x76, 0x2, 0x2, 0x1d7, 0x1d8, + 0x7, 0x63, 0x2, 0x2, 0x1d8, 0x1d9, 0x7, 0x76, 0x2, 0x2, 0x1d9, 0x1da, + 0x7, 0x7b, 0x2, 0x2, 0x1da, 0x1db, 0x7, 0x72, 0x2, 0x2, 0x1db, 0x1dc, + 0x7, 0x67, 0x2, 0x2, 0x1dc, 0x38, 0x3, 0x2, 0x2, 0x2, 0x1dd, 0x1de, + 0x7, 0x66, 0x2, 0x2, 0x1de, 0x1df, 0x7, 0x67, 0x2, 0x2, 0x1df, 0x1e0, + 0x7, 0x65, 0x2, 0x2, 0x1e0, 0x1e1, 0x7, 0x6e, 0x2, 0x2, 0x1e1, 0x1e2, + 0x7, 0x63, 0x2, 0x2, 0x1e2, 0x1e3, 0x7, 0x74, 0x2, 0x2, 0x1e3, 0x1e4, + 0x7, 0x67, 0x2, 0x2, 0x1e4, 0x1e5, 0x7, 0x2f, 0x2, 0x2, 0x1e5, 0x1e6, + 0x7, 0x66, 0x2, 0x2, 0x1e6, 0x1e7, 0x7, 0x63, 0x2, 0x2, 0x1e7, 0x1e8, + 0x7, 0x76, 0x2, 0x2, 0x1e8, 0x1e9, 0x7, 0x63, 0x2, 0x2, 0x1e9, 0x1ea, + 0x7, 0x76, 0x2, 0x2, 0x1ea, 0x1eb, 0x7, 0x7b, 0x2, 0x2, 0x1eb, 0x1ec, + 0x7, 0x72, 0x2, 0x2, 0x1ec, 0x1ed, 0x7, 0x67, 0x2, 0x2, 0x1ed, 0x1ee, + 0x7, 0x75, 0x2, 0x2, 0x1ee, 0x3a, 0x3, 0x2, 0x2, 0x2, 0x1ef, 0x1f0, + 0x7, 0x66, 0x2, 0x2, 0x1f0, 0x1f1, 0x7, 0x67, 0x2, 0x2, 0x1f1, 0x1f2, + 0x7, 0x65, 0x2, 0x2, 0x1f2, 0x1f3, 0x7, 0x6e, 0x2, 0x2, 0x1f3, 0x1f4, + 0x7, 0x63, 0x2, 0x2, 0x1f4, 0x1f5, 0x7, 0x74, 0x2, 0x2, 0x1f5, 0x1f6, + 0x7, 0x67, 0x2, 0x2, 0x1f6, 0x1f7, 0x7, 0x2f, 0x2, 0x2, 0x1f7, 0x1f8, + 0x7, 0x68, 0x2, 0x2, 0x1f8, 0x1f9, 0x7, 0x77, 0x2, 0x2, 0x1f9, 0x1fa, + 0x7, 0x70, 0x2, 0x2, 0x1fa, 0x3c, 0x3, 0x2, 0x2, 0x2, 0x1fb, 0x1fc, + 0x7, 0x66, 0x2, 0x2, 0x1fc, 0x1fd, 0x7, 0x67, 0x2, 0x2, 0x1fd, 0x1fe, + 0x7, 0x65, 0x2, 0x2, 0x1fe, 0x1ff, 0x7, 0x6e, 0x2, 0x2, 0x1ff, 0x200, + 0x7, 0x63, 0x2, 0x2, 0x200, 0x201, 0x7, 0x74, 0x2, 0x2, 0x201, 0x202, + 0x7, 0x67, 0x2, 0x2, 0x202, 0x203, 0x7, 0x2f, 0x2, 0x2, 0x203, 0x204, + 0x7, 0x75, 0x2, 0x2, 0x204, 0x205, 0x7, 0x71, 0x2, 0x2, 0x205, 0x206, + 0x7, 0x74, 0x2, 0x2, 0x206, 0x207, 0x7, 0x76, 0x2, 0x2, 0x207, 0x3e, + 0x3, 0x2, 0x2, 0x2, 0x208, 0x209, 0x7, 0x66, 0x2, 0x2, 0x209, 0x20a, + 0x7, 0x67, 0x2, 0x2, 0x20a, 0x20b, 0x7, 0x68, 0x2, 0x2, 0x20b, 0x20c, + 0x7, 0x6b, 0x2, 0x2, 0x20c, 0x20d, 0x7, 0x70, 0x2, 0x2, 0x20d, 0x20e, + 0x7, 0x67, 0x2, 0x2, 0x20e, 0x20f, 0x7, 0x2f, 0x2, 0x2, 0x20f, 0x210, + 0x7, 0x68, 0x2, 0x2, 0x210, 0x211, 0x7, 0x77, 0x2, 0x2, 0x211, 0x212, + 0x7, 0x70, 0x2, 0x2, 0x212, 0x40, 0x3, 0x2, 0x2, 0x2, 0x213, 0x214, + 0x7, 0x66, 0x2, 0x2, 0x214, 0x215, 0x7, 0x67, 0x2, 0x2, 0x215, 0x216, + 0x7, 0x68, 0x2, 0x2, 0x216, 0x217, 0x7, 0x6b, 0x2, 0x2, 0x217, 0x218, + 0x7, 0x70, 0x2, 0x2, 0x218, 0x219, 0x7, 0x67, 0x2, 0x2, 0x219, 0x21a, + 0x7, 0x2f, 0x2, 0x2, 0x21a, 0x21b, 0x7, 0x68, 0x2, 0x2, 0x21b, 0x21c, + 0x7, 0x77, 0x2, 0x2, 0x21c, 0x21d, 0x7, 0x70, 0x2, 0x2, 0x21d, 0x21e, + 0x7, 0x2f, 0x2, 0x2, 0x21e, 0x21f, 0x7, 0x74, 0x2, 0x2, 0x21f, 0x220, + 0x7, 0x67, 0x2, 0x2, 0x220, 0x221, 0x7, 0x65, 0x2, 0x2, 0x221, 0x42, + 0x3, 0x2, 0x2, 0x2, 0x222, 0x223, 0x7, 0x66, 0x2, 0x2, 0x223, 0x224, + 0x7, 0x67, 0x2, 0x2, 0x224, 0x225, 0x7, 0x68, 0x2, 0x2, 0x225, 0x226, + 0x7, 0x6b, 0x2, 0x2, 0x226, 0x227, 0x7, 0x70, 0x2, 0x2, 0x227, 0x228, + 0x7, 0x67, 0x2, 0x2, 0x228, 0x229, 0x7, 0x2f, 0x2, 0x2, 0x229, 0x22a, + 0x7, 0x68, 0x2, 0x2, 0x22a, 0x22b, 0x7, 0x77, 0x2, 0x2, 0x22b, 0x22c, + 0x7, 0x70, 0x2, 0x2, 0x22c, 0x22d, 0x7, 0x75, 0x2, 0x2, 0x22d, 0x22e, + 0x7, 0x2f, 0x2, 0x2, 0x22e, 0x22f, 0x7, 0x74, 0x2, 0x2, 0x22f, 0x230, + 0x7, 0x67, 0x2, 0x2, 0x230, 0x231, 0x7, 0x65, 0x2, 0x2, 0x231, 0x44, + 0x3, 0x2, 0x2, 0x2, 0x232, 0x233, 0x7, 0x66, 0x2, 0x2, 0x233, 0x234, + 0x7, 0x67, 0x2, 0x2, 0x234, 0x235, 0x7, 0x68, 0x2, 0x2, 0x235, 0x236, + 0x7, 0x6b, 0x2, 0x2, 0x236, 0x237, 0x7, 0x70, 0x2, 0x2, 0x237, 0x238, + 0x7, 0x67, 0x2, 0x2, 0x238, 0x239, 0x7, 0x2f, 0x2, 0x2, 0x239, 0x23a, + 0x7, 0x75, 0x2, 0x2, 0x23a, 0x23b, 0x7, 0x71, 0x2, 0x2, 0x23b, 0x23c, + 0x7, 0x74, 0x2, 0x2, 0x23c, 0x23d, 0x7, 0x76, 0x2, 0x2, 0x23d, 0x46, + 0x3, 0x2, 0x2, 0x2, 0x23e, 0x23f, 0x7, 0x67, 0x2, 0x2, 0x23f, 0x240, + 0x7, 0x65, 0x2, 0x2, 0x240, 0x241, 0x7, 0x6a, 0x2, 0x2, 0x241, 0x242, + 0x7, 0x71, 0x2, 0x2, 0x242, 0x48, 0x3, 0x2, 0x2, 0x2, 0x243, 0x244, + 0x7, 0x67, 0x2, 0x2, 0x244, 0x245, 0x7, 0x7a, 0x2, 0x2, 0x245, 0x246, + 0x7, 0x6b, 0x2, 0x2, 0x246, 0x247, 0x7, 0x76, 0x2, 0x2, 0x247, 0x4a, + 0x3, 0x2, 0x2, 0x2, 0x248, 0x249, 0x7, 0x69, 0x2, 0x2, 0x249, 0x24a, + 0x7, 0x67, 0x2, 0x2, 0x24a, 0x24b, 0x7, 0x76, 0x2, 0x2, 0x24b, 0x24c, + 0x7, 0x2f, 0x2, 0x2, 0x24c, 0x24d, 0x7, 0x63, 0x2, 0x2, 0x24d, 0x24e, + 0x7, 0x75, 0x2, 0x2, 0x24e, 0x24f, 0x7, 0x75, 0x2, 0x2, 0x24f, 0x250, + 0x7, 0x67, 0x2, 0x2, 0x250, 0x251, 0x7, 0x74, 0x2, 0x2, 0x251, 0x252, + 0x7, 0x76, 0x2, 0x2, 0x252, 0x253, 0x7, 0x6b, 0x2, 0x2, 0x253, 0x254, + 0x7, 0x71, 0x2, 0x2, 0x254, 0x255, 0x7, 0x70, 0x2, 0x2, 0x255, 0x256, + 0x7, 0x75, 0x2, 0x2, 0x256, 0x4c, 0x3, 0x2, 0x2, 0x2, 0x257, 0x258, + 0x7, 0x69, 0x2, 0x2, 0x258, 0x259, 0x7, 0x67, 0x2, 0x2, 0x259, 0x25a, + 0x7, 0x76, 0x2, 0x2, 0x25a, 0x25b, 0x7, 0x2f, 0x2, 0x2, 0x25b, 0x25c, + 0x7, 0x63, 0x2, 0x2, 0x25c, 0x25d, 0x7, 0x75, 0x2, 0x2, 0x25d, 0x25e, + 0x7, 0x75, 0x2, 0x2, 0x25e, 0x25f, 0x7, 0x6b, 0x2, 0x2, 0x25f, 0x260, + 0x7, 0x69, 0x2, 0x2, 0x260, 0x261, 0x7, 0x70, 0x2, 0x2, 0x261, 0x262, + 0x7, 0x6f, 0x2, 0x2, 0x262, 0x263, 0x7, 0x67, 0x2, 0x2, 0x263, 0x264, + 0x7, 0x70, 0x2, 0x2, 0x264, 0x265, 0x7, 0x76, 0x2, 0x2, 0x265, 0x4e, + 0x3, 0x2, 0x2, 0x2, 0x266, 0x267, 0x7, 0x69, 0x2, 0x2, 0x267, 0x268, + 0x7, 0x67, 0x2, 0x2, 0x268, 0x269, 0x7, 0x76, 0x2, 0x2, 0x269, 0x26a, + 0x7, 0x2f, 0x2, 0x2, 0x26a, 0x26b, 0x7, 0x6b, 0x2, 0x2, 0x26b, 0x26c, + 0x7, 0x70, 0x2, 0x2, 0x26c, 0x26d, 0x7, 0x68, 0x2, 0x2, 0x26d, 0x26e, + 0x7, 0x71, 0x2, 0x2, 0x26e, 0x50, 0x3, 0x2, 0x2, 0x2, 0x26f, 0x270, + 0x7, 0x69, 0x2, 0x2, 0x270, 0x271, 0x7, 0x67, 0x2, 0x2, 0x271, 0x272, + 0x7, 0x76, 0x2, 0x2, 0x272, 0x273, 0x7, 0x2f, 0x2, 0x2, 0x273, 0x274, + 0x7, 0x6f, 0x2, 0x2, 0x274, 0x275, 0x7, 0x71, 0x2, 0x2, 0x275, 0x276, + 0x7, 0x66, 0x2, 0x2, 0x276, 0x277, 0x7, 0x67, 0x2, 0x2, 0x277, 0x278, + 0x7, 0x6e, 0x2, 0x2, 0x278, 0x52, 0x3, 0x2, 0x2, 0x2, 0x279, 0x27a, + 0x7, 0x69, 0x2, 0x2, 0x27a, 0x27b, 0x7, 0x67, 0x2, 0x2, 0x27b, 0x27c, + 0x7, 0x76, 0x2, 0x2, 0x27c, 0x27d, 0x7, 0x2f, 0x2, 0x2, 0x27d, 0x27e, + 0x7, 0x71, 0x2, 0x2, 0x27e, 0x27f, 0x7, 0x72, 0x2, 0x2, 0x27f, 0x280, + 0x7, 0x76, 0x2, 0x2, 0x280, 0x281, 0x7, 0x6b, 0x2, 0x2, 0x281, 0x282, + 0x7, 0x71, 0x2, 0x2, 0x282, 0x283, 0x7, 0x70, 0x2, 0x2, 0x283, 0x54, + 0x3, 0x2, 0x2, 0x2, 0x284, 0x285, 0x7, 0x69, 0x2, 0x2, 0x285, 0x286, + 0x7, 0x67, 0x2, 0x2, 0x286, 0x287, 0x7, 0x76, 0x2, 0x2, 0x287, 0x288, + 0x7, 0x2f, 0x2, 0x2, 0x288, 0x289, 0x7, 0x72, 0x2, 0x2, 0x289, 0x28a, + 0x7, 0x74, 0x2, 0x2, 0x28a, 0x28b, 0x7, 0x71, 0x2, 0x2, 0x28b, 0x28c, + 0x7, 0x71, 0x2, 0x2, 0x28c, 0x28d, 0x7, 0x68, 0x2, 0x2, 0x28d, 0x56, + 0x3, 0x2, 0x2, 0x2, 0x28e, 0x28f, 0x7, 0x69, 0x2, 0x2, 0x28f, 0x290, + 0x7, 0x67, 0x2, 0x2, 0x290, 0x291, 0x7, 0x76, 0x2, 0x2, 0x291, 0x292, + 0x7, 0x2f, 0x2, 0x2, 0x292, 0x293, 0x7, 0x77, 0x2, 0x2, 0x293, 0x294, + 0x7, 0x70, 0x2, 0x2, 0x294, 0x295, 0x7, 0x75, 0x2, 0x2, 0x295, 0x296, + 0x7, 0x63, 0x2, 0x2, 0x296, 0x297, 0x7, 0x76, 0x2, 0x2, 0x297, 0x298, + 0x7, 0x2f, 0x2, 0x2, 0x298, 0x299, 0x7, 0x63, 0x2, 0x2, 0x299, 0x29a, + 0x7, 0x75, 0x2, 0x2, 0x29a, 0x29b, 0x7, 0x75, 0x2, 0x2, 0x29b, 0x29c, + 0x7, 0x77, 0x2, 0x2, 0x29c, 0x29d, 0x7, 0x6f, 0x2, 0x2, 0x29d, 0x29e, + 0x7, 0x72, 0x2, 0x2, 0x29e, 0x29f, 0x7, 0x76, 0x2, 0x2, 0x29f, 0x2a0, + 0x7, 0x6b, 0x2, 0x2, 0x2a0, 0x2a1, 0x7, 0x71, 0x2, 0x2, 0x2a1, 0x2a2, + 0x7, 0x70, 0x2, 0x2, 0x2a2, 0x2a3, 0x7, 0x75, 0x2, 0x2, 0x2a3, 0x58, + 0x3, 0x2, 0x2, 0x2, 0x2a4, 0x2a5, 0x7, 0x69, 0x2, 0x2, 0x2a5, 0x2a6, + 0x7, 0x67, 0x2, 0x2, 0x2a6, 0x2a7, 0x7, 0x76, 0x2, 0x2, 0x2a7, 0x2a8, + 0x7, 0x2f, 0x2, 0x2, 0x2a8, 0x2a9, 0x7, 0x77, 0x2, 0x2, 0x2a9, 0x2aa, + 0x7, 0x70, 0x2, 0x2, 0x2aa, 0x2ab, 0x7, 0x75, 0x2, 0x2, 0x2ab, 0x2ac, + 0x7, 0x63, 0x2, 0x2, 0x2ac, 0x2ad, 0x7, 0x76, 0x2, 0x2, 0x2ad, 0x2ae, + 0x7, 0x2f, 0x2, 0x2, 0x2ae, 0x2af, 0x7, 0x65, 0x2, 0x2, 0x2af, 0x2b0, + 0x7, 0x71, 0x2, 0x2, 0x2b0, 0x2b1, 0x7, 0x74, 0x2, 0x2, 0x2b1, 0x2b2, + 0x7, 0x67, 0x2, 0x2, 0x2b2, 0x5a, 0x3, 0x2, 0x2, 0x2, 0x2b3, 0x2b4, + 0x7, 0x69, 0x2, 0x2, 0x2b4, 0x2b5, 0x7, 0x67, 0x2, 0x2, 0x2b5, 0x2b6, + 0x7, 0x76, 0x2, 0x2, 0x2b6, 0x2b7, 0x7, 0x2f, 0x2, 0x2, 0x2b7, 0x2b8, + 0x7, 0x78, 0x2, 0x2, 0x2b8, 0x2b9, 0x7, 0x63, 0x2, 0x2, 0x2b9, 0x2ba, + 0x7, 0x6e, 0x2, 0x2, 0x2ba, 0x2bb, 0x7, 0x77, 0x2, 0x2, 0x2bb, 0x2bc, + 0x7, 0x67, 0x2, 0x2, 0x2bc, 0x5c, 0x3, 0x2, 0x2, 0x2, 0x2bd, 0x2be, + 0x7, 0x72, 0x2, 0x2, 0x2be, 0x2bf, 0x7, 0x71, 0x2, 0x2, 0x2bf, 0x2c0, + 0x7, 0x72, 0x2, 0x2, 0x2c0, 0x5e, 0x3, 0x2, 0x2, 0x2, 0x2c1, 0x2c2, + 0x7, 0x72, 0x2, 0x2, 0x2c2, 0x2c3, 0x7, 0x77, 0x2, 0x2, 0x2c3, 0x2c4, + 0x7, 0x75, 0x2, 0x2, 0x2c4, 0x2c5, 0x7, 0x6a, 0x2, 0x2, 0x2c5, 0x60, + 0x3, 0x2, 0x2, 0x2, 0x2c6, 0x2c7, 0x7, 0x74, 0x2, 0x2, 0x2c7, 0x2c8, + 0x7, 0x67, 0x2, 0x2, 0x2c8, 0x2c9, 0x7, 0x75, 0x2, 0x2, 0x2c9, 0x2ca, + 0x7, 0x67, 0x2, 0x2, 0x2ca, 0x2cb, 0x7, 0x76, 0x2, 0x2, 0x2cb, 0x62, + 0x3, 0x2, 0x2, 0x2, 0x2cc, 0x2cd, 0x7, 0x74, 0x2, 0x2, 0x2cd, 0x2ce, + 0x7, 0x67, 0x2, 0x2, 0x2ce, 0x2cf, 0x7, 0x75, 0x2, 0x2, 0x2cf, 0x2d0, + 0x7, 0x67, 0x2, 0x2, 0x2d0, 0x2d1, 0x7, 0x76, 0x2, 0x2, 0x2d1, 0x2d2, + 0x7, 0x2f, 0x2, 0x2, 0x2d2, 0x2d3, 0x7, 0x63, 0x2, 0x2, 0x2d3, 0x2d4, + 0x7, 0x75, 0x2, 0x2, 0x2d4, 0x2d5, 0x7, 0x75, 0x2, 0x2, 0x2d5, 0x2d6, + 0x7, 0x67, 0x2, 0x2, 0x2d6, 0x2d7, 0x7, 0x74, 0x2, 0x2, 0x2d7, 0x2d8, + 0x7, 0x76, 0x2, 0x2, 0x2d8, 0x2d9, 0x7, 0x6b, 0x2, 0x2, 0x2d9, 0x2da, + 0x7, 0x71, 0x2, 0x2, 0x2da, 0x2db, 0x7, 0x70, 0x2, 0x2, 0x2db, 0x2dc, + 0x7, 0x75, 0x2, 0x2, 0x2dc, 0x64, 0x3, 0x2, 0x2, 0x2, 0x2dd, 0x2de, + 0x7, 0x75, 0x2, 0x2, 0x2de, 0x2df, 0x7, 0x67, 0x2, 0x2, 0x2df, 0x2e0, + 0x7, 0x76, 0x2, 0x2, 0x2e0, 0x2e1, 0x7, 0x2f, 0x2, 0x2, 0x2e1, 0x2e2, + 0x7, 0x6b, 0x2, 0x2, 0x2e2, 0x2e3, 0x7, 0x70, 0x2, 0x2, 0x2e3, 0x2e4, + 0x7, 0x68, 0x2, 0x2, 0x2e4, 0x2e5, 0x7, 0x71, 0x2, 0x2, 0x2e5, 0x66, + 0x3, 0x2, 0x2, 0x2, 0x2e6, 0x2e7, 0x7, 0x75, 0x2, 0x2, 0x2e7, 0x2e8, + 0x7, 0x67, 0x2, 0x2, 0x2e8, 0x2e9, 0x7, 0x76, 0x2, 0x2, 0x2e9, 0x2ea, + 0x7, 0x2f, 0x2, 0x2, 0x2ea, 0x2eb, 0x7, 0x6e, 0x2, 0x2, 0x2eb, 0x2ec, + 0x7, 0x71, 0x2, 0x2, 0x2ec, 0x2ed, 0x7, 0x69, 0x2, 0x2, 0x2ed, 0x2ee, + 0x7, 0x6b, 0x2, 0x2, 0x2ee, 0x2ef, 0x7, 0x65, 0x2, 0x2, 0x2ef, 0x68, + 0x3, 0x2, 0x2, 0x2, 0x2f0, 0x2f1, 0x7, 0x75, 0x2, 0x2, 0x2f1, 0x2f2, + 0x7, 0x67, 0x2, 0x2, 0x2f2, 0x2f3, 0x7, 0x76, 0x2, 0x2, 0x2f3, 0x2f4, + 0x7, 0x2f, 0x2, 0x2, 0x2f4, 0x2f5, 0x7, 0x71, 0x2, 0x2, 0x2f5, 0x2f6, + 0x7, 0x72, 0x2, 0x2, 0x2f6, 0x2f7, 0x7, 0x76, 0x2, 0x2, 0x2f7, 0x2f8, + 0x7, 0x6b, 0x2, 0x2, 0x2f8, 0x2f9, 0x7, 0x71, 0x2, 0x2, 0x2f9, 0x2fa, + 0x7, 0x70, 0x2, 0x2, 0x2fa, 0x6a, 0x3, 0x2, 0x2, 0x2, 0x2fb, 0x2fc, + 0x7, 0x23, 0x2, 0x2, 0x2fc, 0x6c, 0x3, 0x2, 0x2, 0x2, 0x2fd, 0x2fe, + 0x7, 0x61, 0x2, 0x2, 0x2fe, 0x6e, 0x3, 0x2, 0x2, 0x2, 0x2ff, 0x300, + 0x7, 0x63, 0x2, 0x2, 0x300, 0x301, 0x7, 0x75, 0x2, 0x2, 0x301, 0x70, + 0x3, 0x2, 0x2, 0x2, 0x302, 0x303, 0x7, 0x44, 0x2, 0x2, 0x303, 0x304, + 0x7, 0x4b, 0x2, 0x2, 0x304, 0x305, 0x7, 0x50, 0x2, 0x2, 0x305, 0x306, + 0x7, 0x43, 0x2, 0x2, 0x306, 0x307, 0x7, 0x54, 0x2, 0x2, 0x307, 0x308, + 0x7, 0x5b, 0x2, 0x2, 0x308, 0x72, 0x3, 0x2, 0x2, 0x2, 0x309, 0x30a, + 0x7, 0x46, 0x2, 0x2, 0x30a, 0x30b, 0x7, 0x47, 0x2, 0x2, 0x30b, 0x30c, + 0x7, 0x45, 0x2, 0x2, 0x30c, 0x30d, 0x7, 0x4b, 0x2, 0x2, 0x30d, 0x30e, + 0x7, 0x4f, 0x2, 0x2, 0x30e, 0x30f, 0x7, 0x43, 0x2, 0x2, 0x30f, 0x310, + 0x7, 0x4e, 0x2, 0x2, 0x310, 0x74, 0x3, 0x2, 0x2, 0x2, 0x311, 0x312, + 0x7, 0x67, 0x2, 0x2, 0x312, 0x313, 0x7, 0x7a, 0x2, 0x2, 0x313, 0x314, + 0x7, 0x6b, 0x2, 0x2, 0x314, 0x315, 0x7, 0x75, 0x2, 0x2, 0x315, 0x316, + 0x7, 0x76, 0x2, 0x2, 0x316, 0x317, 0x7, 0x75, 0x2, 0x2, 0x317, 0x76, + 0x3, 0x2, 0x2, 0x2, 0x318, 0x319, 0x7, 0x4a, 0x2, 0x2, 0x319, 0x31a, + 0x7, 0x47, 0x2, 0x2, 0x31a, 0x31b, 0x7, 0x5a, 0x2, 0x2, 0x31b, 0x31c, + 0x7, 0x43, 0x2, 0x2, 0x31c, 0x31d, 0x7, 0x46, 0x2, 0x2, 0x31d, 0x31e, + 0x7, 0x47, 0x2, 0x2, 0x31e, 0x31f, 0x7, 0x45, 0x2, 0x2, 0x31f, 0x320, + 0x7, 0x4b, 0x2, 0x2, 0x320, 0x321, 0x7, 0x4f, 0x2, 0x2, 0x321, 0x322, + 0x7, 0x43, 0x2, 0x2, 0x322, 0x323, 0x7, 0x4e, 0x2, 0x2, 0x323, 0x78, + 0x3, 0x2, 0x2, 0x2, 0x324, 0x325, 0x7, 0x68, 0x2, 0x2, 0x325, 0x326, + 0x7, 0x71, 0x2, 0x2, 0x326, 0x327, 0x7, 0x74, 0x2, 0x2, 0x327, 0x328, + 0x7, 0x63, 0x2, 0x2, 0x328, 0x329, 0x7, 0x6e, 0x2, 0x2, 0x329, 0x32a, + 0x7, 0x6e, 0x2, 0x2, 0x32a, 0x7a, 0x3, 0x2, 0x2, 0x2, 0x32b, 0x32c, + 0x7, 0x6e, 0x2, 0x2, 0x32c, 0x32d, 0x7, 0x67, 0x2, 0x2, 0x32d, 0x32e, + 0x7, 0x76, 0x2, 0x2, 0x32e, 0x7c, 0x3, 0x2, 0x2, 0x2, 0x32f, 0x330, + 0x7, 0x6f, 0x2, 0x2, 0x330, 0x331, 0x7, 0x63, 0x2, 0x2, 0x331, 0x332, + 0x7, 0x76, 0x2, 0x2, 0x332, 0x333, 0x7, 0x65, 0x2, 0x2, 0x333, 0x334, + 0x7, 0x6a, 0x2, 0x2, 0x334, 0x7e, 0x3, 0x2, 0x2, 0x2, 0x335, 0x336, + 0x7, 0x50, 0x2, 0x2, 0x336, 0x337, 0x7, 0x57, 0x2, 0x2, 0x337, 0x338, + 0x7, 0x4f, 0x2, 0x2, 0x338, 0x339, 0x7, 0x47, 0x2, 0x2, 0x339, 0x33a, + 0x7, 0x54, 0x2, 0x2, 0x33a, 0x33b, 0x7, 0x43, 0x2, 0x2, 0x33b, 0x33c, + 0x7, 0x4e, 0x2, 0x2, 0x33c, 0x80, 0x3, 0x2, 0x2, 0x2, 0x33d, 0x33e, + 0x7, 0x72, 0x2, 0x2, 0x33e, 0x33f, 0x7, 0x63, 0x2, 0x2, 0x33f, 0x340, + 0x7, 0x74, 0x2, 0x2, 0x340, 0x82, 0x3, 0x2, 0x2, 0x2, 0x341, 0x342, + 0x7, 0x75, 0x2, 0x2, 0x342, 0x343, 0x7, 0x76, 0x2, 0x2, 0x343, 0x344, + 0x7, 0x74, 0x2, 0x2, 0x344, 0x345, 0x7, 0x6b, 0x2, 0x2, 0x345, 0x346, + 0x7, 0x70, 0x2, 0x2, 0x346, 0x347, 0x7, 0x69, 0x2, 0x2, 0x347, 0x84, + 0x3, 0x2, 0x2, 0x2, 0x348, 0x351, 0x7, 0x32, 0x2, 0x2, 0x349, 0x34d, + 0x9, 0x3, 0x2, 0x2, 0x34a, 0x34c, 0x5, 0x91, 0x49, 0x2, 0x34b, 0x34a, + 0x3, 0x2, 0x2, 0x2, 0x34c, 0x34f, 0x3, 0x2, 0x2, 0x2, 0x34d, 0x34b, + 0x3, 0x2, 0x2, 0x2, 0x34d, 0x34e, 0x3, 0x2, 0x2, 0x2, 0x34e, 0x351, + 0x3, 0x2, 0x2, 0x2, 0x34f, 0x34d, 0x3, 0x2, 0x2, 0x2, 0x350, 0x348, + 0x3, 0x2, 0x2, 0x2, 0x350, 0x349, 0x3, 0x2, 0x2, 0x2, 0x351, 0x86, 0x3, + 0x2, 0x2, 0x2, 0x352, 0x354, 0x5, 0x95, 0x4b, 0x2, 0x353, 0x352, 0x3, + 0x2, 0x2, 0x2, 0x354, 0x355, 0x3, 0x2, 0x2, 0x2, 0x355, 0x353, 0x3, + 0x2, 0x2, 0x2, 0x355, 0x356, 0x3, 0x2, 0x2, 0x2, 0x356, 0x88, 0x3, 0x2, + 0x2, 0x2, 0x357, 0x358, 0x7, 0x25, 0x2, 0x2, 0x358, 0x359, 0x7, 0x7a, + 0x2, 0x2, 0x359, 0x35a, 0x3, 0x2, 0x2, 0x2, 0x35a, 0x35b, 0x5, 0x8d, + 0x47, 0x2, 0x35b, 0x35c, 0x5, 0x8d, 0x47, 0x2, 0x35c, 0x35d, 0x5, 0x8d, + 0x47, 0x2, 0x35d, 0x35e, 0x5, 0x8d, 0x47, 0x2, 0x35e, 0x8a, 0x3, 0x2, + 0x2, 0x2, 0x35f, 0x360, 0x5, 0x85, 0x43, 0x2, 0x360, 0x364, 0x7, 0x30, + 0x2, 0x2, 0x361, 0x363, 0x7, 0x32, 0x2, 0x2, 0x362, 0x361, 0x3, 0x2, + 0x2, 0x2, 0x363, 0x366, 0x3, 0x2, 0x2, 0x2, 0x364, 0x362, 0x3, 0x2, + 0x2, 0x2, 0x364, 0x365, 0x3, 0x2, 0x2, 0x2, 0x365, 0x367, 0x3, 0x2, + 0x2, 0x2, 0x366, 0x364, 0x3, 0x2, 0x2, 0x2, 0x367, 0x368, 0x5, 0x85, + 0x43, 0x2, 0x368, 0x8c, 0x3, 0x2, 0x2, 0x2, 0x369, 0x36a, 0x9, 0x4, + 0x2, 0x2, 0x36a, 0x8e, 0x3, 0x2, 0x2, 0x2, 0x36b, 0x36c, 0x7, 0x3c, + 0x2, 0x2, 0x36c, 0x90, 0x3, 0x2, 0x2, 0x2, 0x36d, 0x36e, 0x9, 0x5, 0x2, + 0x2, 0x36e, 0x92, 0x3, 0x2, 0x2, 0x2, 0x36f, 0x370, 0x9, 0x6, 0x2, 0x2, + 0x370, 0x94, 0x3, 0x2, 0x2, 0x2, 0x371, 0x372, 0x9, 0x7, 0x2, 0x2, 0x372, + 0x96, 0x3, 0x2, 0x2, 0x2, 0x373, 0x376, 0x9, 0x8, 0x2, 0x2, 0x374, 0x376, + 0x5, 0x9d, 0x4f, 0x2, 0x375, 0x373, 0x3, 0x2, 0x2, 0x2, 0x375, 0x374, + 0x3, 0x2, 0x2, 0x2, 0x376, 0x98, 0x3, 0x2, 0x2, 0x2, 0x377, 0x37a, 0x9, + 0x9, 0x2, 0x2, 0x378, 0x37a, 0x5, 0x9d, 0x4f, 0x2, 0x379, 0x377, 0x3, + 0x2, 0x2, 0x2, 0x379, 0x378, 0x3, 0x2, 0x2, 0x2, 0x37a, 0x9a, 0x3, 0x2, + 0x2, 0x2, 0x37b, 0x37e, 0x9, 0xa, 0x2, 0x2, 0x37c, 0x37e, 0x5, 0x9d, + 0x4f, 0x2, 0x37d, 0x37b, 0x3, 0x2, 0x2, 0x2, 0x37d, 0x37c, 0x3, 0x2, + 0x2, 0x2, 0x37e, 0x9c, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x380, 0x7, 0x24, + 0x2, 0x2, 0x380, 0x381, 0x7, 0x24, 0x2, 0x2, 0x381, 0x9e, 0x3, 0x2, + 0x2, 0x2, 0x382, 0x383, 0x9, 0xb, 0x2, 0x2, 0x383, 0xa0, 0x3, 0x2, 0x2, + 0x2, 0x384, 0x385, 0x7, 0x3c, 0x2, 0x2, 0x385, 0x386, 0x7, 0x63, 0x2, + 0x2, 0x386, 0x387, 0x7, 0x6e, 0x2, 0x2, 0x387, 0x388, 0x7, 0x6e, 0x2, + 0x2, 0x388, 0x389, 0x7, 0x2f, 0x2, 0x2, 0x389, 0x38a, 0x7, 0x75, 0x2, + 0x2, 0x38a, 0x38b, 0x7, 0x76, 0x2, 0x2, 0x38b, 0x38c, 0x7, 0x63, 0x2, + 0x2, 0x38c, 0x38d, 0x7, 0x76, 0x2, 0x2, 0x38d, 0x38e, 0x7, 0x6b, 0x2, + 0x2, 0x38e, 0x38f, 0x7, 0x75, 0x2, 0x2, 0x38f, 0x390, 0x7, 0x76, 0x2, + 0x2, 0x390, 0x391, 0x7, 0x6b, 0x2, 0x2, 0x391, 0x392, 0x7, 0x65, 0x2, + 0x2, 0x392, 0x393, 0x7, 0x75, 0x2, 0x2, 0x393, 0xa2, 0x3, 0x2, 0x2, + 0x2, 0x394, 0x395, 0x7, 0x3c, 0x2, 0x2, 0x395, 0x396, 0x7, 0x63, 0x2, + 0x2, 0x396, 0x397, 0x7, 0x75, 0x2, 0x2, 0x397, 0x398, 0x7, 0x75, 0x2, + 0x2, 0x398, 0x399, 0x7, 0x67, 0x2, 0x2, 0x399, 0x39a, 0x7, 0x74, 0x2, + 0x2, 0x39a, 0x39b, 0x7, 0x76, 0x2, 0x2, 0x39b, 0x39c, 0x7, 0x6b, 0x2, + 0x2, 0x39c, 0x39d, 0x7, 0x71, 0x2, 0x2, 0x39d, 0x39e, 0x7, 0x70, 0x2, + 0x2, 0x39e, 0x39f, 0x7, 0x2f, 0x2, 0x2, 0x39f, 0x3a0, 0x7, 0x75, 0x2, + 0x2, 0x3a0, 0x3a1, 0x7, 0x76, 0x2, 0x2, 0x3a1, 0x3a2, 0x7, 0x63, 0x2, + 0x2, 0x3a2, 0x3a3, 0x7, 0x65, 0x2, 0x2, 0x3a3, 0x3a4, 0x7, 0x6d, 0x2, + 0x2, 0x3a4, 0x3a5, 0x7, 0x2f, 0x2, 0x2, 0x3a5, 0x3a6, 0x7, 0x6e, 0x2, + 0x2, 0x3a6, 0x3a7, 0x7, 0x67, 0x2, 0x2, 0x3a7, 0x3a8, 0x7, 0x78, 0x2, + 0x2, 0x3a8, 0x3a9, 0x7, 0x67, 0x2, 0x2, 0x3a9, 0x3aa, 0x7, 0x6e, 0x2, + 0x2, 0x3aa, 0x3ab, 0x7, 0x75, 0x2, 0x2, 0x3ab, 0xa4, 0x3, 0x2, 0x2, + 0x2, 0x3ac, 0x3ad, 0x7, 0x3c, 0x2, 0x2, 0x3ad, 0x3ae, 0x7, 0x63, 0x2, + 0x2, 0x3ae, 0x3af, 0x7, 0x77, 0x2, 0x2, 0x3af, 0x3b0, 0x7, 0x76, 0x2, + 0x2, 0x3b0, 0x3b1, 0x7, 0x6a, 0x2, 0x2, 0x3b1, 0x3b2, 0x7, 0x71, 0x2, + 0x2, 0x3b2, 0x3b3, 0x7, 0x74, 0x2, 0x2, 0x3b3, 0x3b4, 0x7, 0x75, 0x2, + 0x2, 0x3b4, 0xa6, 0x3, 0x2, 0x2, 0x2, 0x3b5, 0x3b6, 0x7, 0x3c, 0x2, + 0x2, 0x3b6, 0x3b7, 0x7, 0x65, 0x2, 0x2, 0x3b7, 0x3b8, 0x7, 0x63, 0x2, + 0x2, 0x3b8, 0x3b9, 0x7, 0x76, 0x2, 0x2, 0x3b9, 0x3ba, 0x7, 0x67, 0x2, + 0x2, 0x3ba, 0x3bb, 0x7, 0x69, 0x2, 0x2, 0x3bb, 0x3bc, 0x7, 0x71, 0x2, + 0x2, 0x3bc, 0x3bd, 0x7, 0x74, 0x2, 0x2, 0x3bd, 0x3be, 0x7, 0x7b, 0x2, + 0x2, 0x3be, 0xa8, 0x3, 0x2, 0x2, 0x2, 0x3bf, 0x3c0, 0x7, 0x3c, 0x2, + 0x2, 0x3c0, 0x3c1, 0x7, 0x65, 0x2, 0x2, 0x3c1, 0x3c2, 0x7, 0x6a, 0x2, + 0x2, 0x3c2, 0x3c3, 0x7, 0x63, 0x2, 0x2, 0x3c3, 0x3c4, 0x7, 0x6b, 0x2, + 0x2, 0x3c4, 0x3c5, 0x7, 0x70, 0x2, 0x2, 0x3c5, 0x3c6, 0x7, 0x63, 0x2, + 0x2, 0x3c6, 0x3c7, 0x7, 0x64, 0x2, 0x2, 0x3c7, 0x3c8, 0x7, 0x6e, 0x2, + 0x2, 0x3c8, 0x3c9, 0x7, 0x67, 0x2, 0x2, 0x3c9, 0xaa, 0x3, 0x2, 0x2, + 0x2, 0x3ca, 0x3cb, 0x7, 0x3c, 0x2, 0x2, 0x3cb, 0x3cc, 0x7, 0x66, 0x2, + 0x2, 0x3cc, 0x3cd, 0x7, 0x67, 0x2, 0x2, 0x3cd, 0x3ce, 0x7, 0x68, 0x2, + 0x2, 0x3ce, 0x3cf, 0x7, 0x6b, 0x2, 0x2, 0x3cf, 0x3d0, 0x7, 0x70, 0x2, + 0x2, 0x3d0, 0x3d1, 0x7, 0x6b, 0x2, 0x2, 0x3d1, 0x3d2, 0x7, 0x76, 0x2, + 0x2, 0x3d2, 0x3d3, 0x7, 0x6b, 0x2, 0x2, 0x3d3, 0x3d4, 0x7, 0x71, 0x2, + 0x2, 0x3d4, 0x3d5, 0x7, 0x70, 0x2, 0x2, 0x3d5, 0xac, 0x3, 0x2, 0x2, + 0x2, 0x3d6, 0x3d7, 0x7, 0x3c, 0x2, 0x2, 0x3d7, 0x3d8, 0x7, 0x66, 0x2, + 0x2, 0x3d8, 0x3d9, 0x7, 0x6b, 0x2, 0x2, 0x3d9, 0x3da, 0x7, 0x63, 0x2, + 0x2, 0x3da, 0x3db, 0x7, 0x69, 0x2, 0x2, 0x3db, 0x3dc, 0x7, 0x70, 0x2, + 0x2, 0x3dc, 0x3dd, 0x7, 0x71, 0x2, 0x2, 0x3dd, 0x3de, 0x7, 0x75, 0x2, + 0x2, 0x3de, 0x3df, 0x7, 0x76, 0x2, 0x2, 0x3df, 0x3e0, 0x7, 0x6b, 0x2, + 0x2, 0x3e0, 0x3e1, 0x7, 0x65, 0x2, 0x2, 0x3e1, 0x3e2, 0x7, 0x2f, 0x2, + 0x2, 0x3e2, 0x3e3, 0x7, 0x71, 0x2, 0x2, 0x3e3, 0x3e4, 0x7, 0x77, 0x2, + 0x2, 0x3e4, 0x3e5, 0x7, 0x76, 0x2, 0x2, 0x3e5, 0x3e6, 0x7, 0x72, 0x2, + 0x2, 0x3e6, 0x3e7, 0x7, 0x77, 0x2, 0x2, 0x3e7, 0x3e8, 0x7, 0x76, 0x2, + 0x2, 0x3e8, 0x3e9, 0x7, 0x2f, 0x2, 0x2, 0x3e9, 0x3ea, 0x7, 0x65, 0x2, + 0x2, 0x3ea, 0x3eb, 0x7, 0x6a, 0x2, 0x2, 0x3eb, 0x3ec, 0x7, 0x63, 0x2, + 0x2, 0x3ec, 0x3ed, 0x7, 0x70, 0x2, 0x2, 0x3ed, 0x3ee, 0x7, 0x70, 0x2, + 0x2, 0x3ee, 0x3ef, 0x7, 0x67, 0x2, 0x2, 0x3ef, 0x3f0, 0x7, 0x6e, 0x2, + 0x2, 0x3f0, 0xae, 0x3, 0x2, 0x2, 0x2, 0x3f1, 0x3f2, 0x7, 0x3c, 0x2, + 0x2, 0x3f2, 0x3f3, 0x7, 0x67, 0x2, 0x2, 0x3f3, 0x3f4, 0x7, 0x74, 0x2, + 0x2, 0x3f4, 0x3f5, 0x7, 0x74, 0x2, 0x2, 0x3f5, 0x3f6, 0x7, 0x71, 0x2, + 0x2, 0x3f6, 0x3f7, 0x7, 0x74, 0x2, 0x2, 0x3f7, 0x3f8, 0x7, 0x2f, 0x2, + 0x2, 0x3f8, 0x3f9, 0x7, 0x64, 0x2, 0x2, 0x3f9, 0x3fa, 0x7, 0x67, 0x2, + 0x2, 0x3fa, 0x3fb, 0x7, 0x6a, 0x2, 0x2, 0x3fb, 0x3fc, 0x7, 0x63, 0x2, + 0x2, 0x3fc, 0x3fd, 0x7, 0x78, 0x2, 0x2, 0x3fd, 0x3fe, 0x7, 0x6b, 0x2, + 0x2, 0x3fe, 0x3ff, 0x7, 0x71, 0x2, 0x2, 0x3ff, 0x400, 0x7, 0x74, 0x2, + 0x2, 0x400, 0xb0, 0x3, 0x2, 0x2, 0x2, 0x401, 0x402, 0x7, 0x3c, 0x2, + 0x2, 0x402, 0x403, 0x7, 0x67, 0x2, 0x2, 0x403, 0x404, 0x7, 0x7a, 0x2, + 0x2, 0x404, 0x405, 0x7, 0x76, 0x2, 0x2, 0x405, 0x406, 0x7, 0x67, 0x2, + 0x2, 0x406, 0x407, 0x7, 0x70, 0x2, 0x2, 0x407, 0x408, 0x7, 0x75, 0x2, + 0x2, 0x408, 0x409, 0x7, 0x6b, 0x2, 0x2, 0x409, 0x40a, 0x7, 0x71, 0x2, + 0x2, 0x40a, 0x40b, 0x7, 0x70, 0x2, 0x2, 0x40b, 0x40c, 0x7, 0x75, 0x2, + 0x2, 0x40c, 0xb2, 0x3, 0x2, 0x2, 0x2, 0x40d, 0x40e, 0x7, 0x3c, 0x2, + 0x2, 0x40e, 0x40f, 0x7, 0x68, 0x2, 0x2, 0x40f, 0x410, 0x7, 0x77, 0x2, + 0x2, 0x410, 0x411, 0x7, 0x70, 0x2, 0x2, 0x411, 0x412, 0x7, 0x75, 0x2, + 0x2, 0x412, 0xb4, 0x3, 0x2, 0x2, 0x2, 0x413, 0x414, 0x7, 0x3c, 0x2, + 0x2, 0x414, 0x415, 0x7, 0x68, 0x2, 0x2, 0x415, 0x416, 0x7, 0x77, 0x2, + 0x2, 0x416, 0x417, 0x7, 0x70, 0x2, 0x2, 0x417, 0x418, 0x7, 0x75, 0x2, + 0x2, 0x418, 0x419, 0x7, 0x2f, 0x2, 0x2, 0x419, 0x41a, 0x7, 0x66, 0x2, + 0x2, 0x41a, 0x41b, 0x7, 0x67, 0x2, 0x2, 0x41b, 0x41c, 0x7, 0x75, 0x2, + 0x2, 0x41c, 0x41d, 0x7, 0x65, 0x2, 0x2, 0x41d, 0x41e, 0x7, 0x74, 0x2, + 0x2, 0x41e, 0x41f, 0x7, 0x6b, 0x2, 0x2, 0x41f, 0x420, 0x7, 0x72, 0x2, + 0x2, 0x420, 0x421, 0x7, 0x76, 0x2, 0x2, 0x421, 0x422, 0x7, 0x6b, 0x2, + 0x2, 0x422, 0x423, 0x7, 0x71, 0x2, 0x2, 0x423, 0x424, 0x7, 0x70, 0x2, + 0x2, 0x424, 0xb6, 0x3, 0x2, 0x2, 0x2, 0x425, 0x426, 0x7, 0x3c, 0x2, + 0x2, 0x426, 0x427, 0x7, 0x69, 0x2, 0x2, 0x427, 0x428, 0x7, 0x6e, 0x2, + 0x2, 0x428, 0x429, 0x7, 0x71, 0x2, 0x2, 0x429, 0x42a, 0x7, 0x64, 0x2, + 0x2, 0x42a, 0x42b, 0x7, 0x63, 0x2, 0x2, 0x42b, 0x42c, 0x7, 0x6e, 0x2, + 0x2, 0x42c, 0x42d, 0x7, 0x2f, 0x2, 0x2, 0x42d, 0x42e, 0x7, 0x66, 0x2, + 0x2, 0x42e, 0x42f, 0x7, 0x67, 0x2, 0x2, 0x42f, 0x430, 0x7, 0x65, 0x2, + 0x2, 0x430, 0x431, 0x7, 0x6e, 0x2, 0x2, 0x431, 0x432, 0x7, 0x63, 0x2, + 0x2, 0x432, 0x433, 0x7, 0x74, 0x2, 0x2, 0x433, 0x434, 0x7, 0x63, 0x2, + 0x2, 0x434, 0x435, 0x7, 0x76, 0x2, 0x2, 0x435, 0x436, 0x7, 0x6b, 0x2, + 0x2, 0x436, 0x437, 0x7, 0x71, 0x2, 0x2, 0x437, 0x438, 0x7, 0x70, 0x2, + 0x2, 0x438, 0x439, 0x7, 0x75, 0x2, 0x2, 0x439, 0xb8, 0x3, 0x2, 0x2, + 0x2, 0x43a, 0x43b, 0x7, 0x3c, 0x2, 0x2, 0x43b, 0x43c, 0x7, 0x6b, 0x2, + 0x2, 0x43c, 0x43d, 0x7, 0x70, 0x2, 0x2, 0x43d, 0x43e, 0x7, 0x76, 0x2, + 0x2, 0x43e, 0x43f, 0x7, 0x67, 0x2, 0x2, 0x43f, 0x440, 0x7, 0x74, 0x2, + 0x2, 0x440, 0x441, 0x7, 0x63, 0x2, 0x2, 0x441, 0x442, 0x7, 0x65, 0x2, + 0x2, 0x442, 0x443, 0x7, 0x76, 0x2, 0x2, 0x443, 0x444, 0x7, 0x6b, 0x2, + 0x2, 0x444, 0x445, 0x7, 0x78, 0x2, 0x2, 0x445, 0x446, 0x7, 0x67, 0x2, + 0x2, 0x446, 0x447, 0x7, 0x2f, 0x2, 0x2, 0x447, 0x448, 0x7, 0x6f, 0x2, + 0x2, 0x448, 0x449, 0x7, 0x71, 0x2, 0x2, 0x449, 0x44a, 0x7, 0x66, 0x2, + 0x2, 0x44a, 0x44b, 0x7, 0x67, 0x2, 0x2, 0x44b, 0xba, 0x3, 0x2, 0x2, + 0x2, 0x44c, 0x44d, 0x7, 0x3c, 0x2, 0x2, 0x44d, 0x44e, 0x7, 0x6e, 0x2, + 0x2, 0x44e, 0x44f, 0x7, 0x63, 0x2, 0x2, 0x44f, 0x450, 0x7, 0x70, 0x2, + 0x2, 0x450, 0x451, 0x7, 0x69, 0x2, 0x2, 0x451, 0x452, 0x7, 0x77, 0x2, + 0x2, 0x452, 0x453, 0x7, 0x63, 0x2, 0x2, 0x453, 0x454, 0x7, 0x69, 0x2, + 0x2, 0x454, 0x455, 0x7, 0x67, 0x2, 0x2, 0x455, 0xbc, 0x3, 0x2, 0x2, + 0x2, 0x456, 0x457, 0x7, 0x3c, 0x2, 0x2, 0x457, 0x458, 0x7, 0x6e, 0x2, + 0x2, 0x458, 0x459, 0x7, 0x67, 0x2, 0x2, 0x459, 0x45a, 0x7, 0x68, 0x2, + 0x2, 0x45a, 0x45b, 0x7, 0x76, 0x2, 0x2, 0x45b, 0x45c, 0x7, 0x2f, 0x2, + 0x2, 0x45c, 0x45d, 0x7, 0x63, 0x2, 0x2, 0x45d, 0x45e, 0x7, 0x75, 0x2, + 0x2, 0x45e, 0x45f, 0x7, 0x75, 0x2, 0x2, 0x45f, 0x460, 0x7, 0x71, 0x2, + 0x2, 0x460, 0x461, 0x7, 0x65, 0x2, 0x2, 0x461, 0xbe, 0x3, 0x2, 0x2, + 0x2, 0x462, 0x463, 0x7, 0x3c, 0x2, 0x2, 0x463, 0x464, 0x7, 0x6e, 0x2, + 0x2, 0x464, 0x465, 0x7, 0x6b, 0x2, 0x2, 0x465, 0x466, 0x7, 0x65, 0x2, + 0x2, 0x466, 0x467, 0x7, 0x67, 0x2, 0x2, 0x467, 0x468, 0x7, 0x70, 0x2, + 0x2, 0x468, 0x469, 0x7, 0x75, 0x2, 0x2, 0x469, 0x46a, 0x7, 0x67, 0x2, + 0x2, 0x46a, 0xc0, 0x3, 0x2, 0x2, 0x2, 0x46b, 0x46c, 0x7, 0x3c, 0x2, + 0x2, 0x46c, 0x46d, 0x7, 0x70, 0x2, 0x2, 0x46d, 0x46e, 0x7, 0x63, 0x2, + 0x2, 0x46e, 0x46f, 0x7, 0x6f, 0x2, 0x2, 0x46f, 0x470, 0x7, 0x67, 0x2, + 0x2, 0x470, 0x471, 0x7, 0x66, 0x2, 0x2, 0x471, 0xc2, 0x3, 0x2, 0x2, + 0x2, 0x472, 0x473, 0x7, 0x3c, 0x2, 0x2, 0x473, 0x474, 0x7, 0x70, 0x2, + 0x2, 0x474, 0x475, 0x7, 0x63, 0x2, 0x2, 0x475, 0x476, 0x7, 0x6f, 0x2, + 0x2, 0x476, 0x477, 0x7, 0x67, 0x2, 0x2, 0x477, 0xc4, 0x3, 0x2, 0x2, + 0x2, 0x478, 0x479, 0x7, 0x3c, 0x2, 0x2, 0x479, 0x47a, 0x7, 0x70, 0x2, + 0x2, 0x47a, 0x47b, 0x7, 0x71, 0x2, 0x2, 0x47b, 0x47c, 0x7, 0x76, 0x2, + 0x2, 0x47c, 0x47d, 0x7, 0x67, 0x2, 0x2, 0x47d, 0x47e, 0x7, 0x75, 0x2, + 0x2, 0x47e, 0xc6, 0x3, 0x2, 0x2, 0x2, 0x47f, 0x480, 0x7, 0x3c, 0x2, + 0x2, 0x480, 0x481, 0x7, 0x72, 0x2, 0x2, 0x481, 0x482, 0x7, 0x63, 0x2, + 0x2, 0x482, 0x483, 0x7, 0x76, 0x2, 0x2, 0x483, 0x484, 0x7, 0x76, 0x2, + 0x2, 0x484, 0x485, 0x7, 0x67, 0x2, 0x2, 0x485, 0x486, 0x7, 0x74, 0x2, + 0x2, 0x486, 0x487, 0x7, 0x70, 0x2, 0x2, 0x487, 0xc8, 0x3, 0x2, 0x2, + 0x2, 0x488, 0x489, 0x7, 0x3c, 0x2, 0x2, 0x489, 0x48a, 0x7, 0x72, 0x2, + 0x2, 0x48a, 0x48b, 0x7, 0x74, 0x2, 0x2, 0x48b, 0x48c, 0x7, 0x6b, 0x2, + 0x2, 0x48c, 0x48d, 0x7, 0x70, 0x2, 0x2, 0x48d, 0x48e, 0x7, 0x76, 0x2, + 0x2, 0x48e, 0x48f, 0x7, 0x2f, 0x2, 0x2, 0x48f, 0x490, 0x7, 0x75, 0x2, + 0x2, 0x490, 0x491, 0x7, 0x77, 0x2, 0x2, 0x491, 0x492, 0x7, 0x65, 0x2, + 0x2, 0x492, 0x493, 0x7, 0x65, 0x2, 0x2, 0x493, 0x494, 0x7, 0x67, 0x2, + 0x2, 0x494, 0x495, 0x7, 0x75, 0x2, 0x2, 0x495, 0x496, 0x7, 0x75, 0x2, + 0x2, 0x496, 0xca, 0x3, 0x2, 0x2, 0x2, 0x497, 0x498, 0x7, 0x3c, 0x2, + 0x2, 0x498, 0x499, 0x7, 0x72, 0x2, 0x2, 0x499, 0x49a, 0x7, 0x74, 0x2, + 0x2, 0x49a, 0x49b, 0x7, 0x71, 0x2, 0x2, 0x49b, 0x49c, 0x7, 0x66, 0x2, + 0x2, 0x49c, 0x49d, 0x7, 0x77, 0x2, 0x2, 0x49d, 0x49e, 0x7, 0x65, 0x2, + 0x2, 0x49e, 0x49f, 0x7, 0x67, 0x2, 0x2, 0x49f, 0x4a0, 0x7, 0x2f, 0x2, + 0x2, 0x4a0, 0x4a1, 0x7, 0x63, 0x2, 0x2, 0x4a1, 0x4a2, 0x7, 0x75, 0x2, + 0x2, 0x4a2, 0x4a3, 0x7, 0x75, 0x2, 0x2, 0x4a3, 0x4a4, 0x7, 0x67, 0x2, + 0x2, 0x4a4, 0x4a5, 0x7, 0x74, 0x2, 0x2, 0x4a5, 0x4a6, 0x7, 0x76, 0x2, + 0x2, 0x4a6, 0x4a7, 0x7, 0x6b, 0x2, 0x2, 0x4a7, 0x4a8, 0x7, 0x71, 0x2, + 0x2, 0x4a8, 0x4a9, 0x7, 0x70, 0x2, 0x2, 0x4a9, 0x4aa, 0x7, 0x75, 0x2, + 0x2, 0x4aa, 0xcc, 0x3, 0x2, 0x2, 0x2, 0x4ab, 0x4ac, 0x7, 0x3c, 0x2, + 0x2, 0x4ac, 0x4ad, 0x7, 0x72, 0x2, 0x2, 0x4ad, 0x4ae, 0x7, 0x74, 0x2, + 0x2, 0x4ae, 0x4af, 0x7, 0x71, 0x2, 0x2, 0x4af, 0x4b0, 0x7, 0x66, 0x2, + 0x2, 0x4b0, 0x4b1, 0x7, 0x77, 0x2, 0x2, 0x4b1, 0x4b2, 0x7, 0x65, 0x2, + 0x2, 0x4b2, 0x4b3, 0x7, 0x67, 0x2, 0x2, 0x4b3, 0x4b4, 0x7, 0x2f, 0x2, + 0x2, 0x4b4, 0x4b5, 0x7, 0x63, 0x2, 0x2, 0x4b5, 0x4b6, 0x7, 0x75, 0x2, + 0x2, 0x4b6, 0x4b7, 0x7, 0x75, 0x2, 0x2, 0x4b7, 0x4b8, 0x7, 0x6b, 0x2, + 0x2, 0x4b8, 0x4b9, 0x7, 0x69, 0x2, 0x2, 0x4b9, 0x4ba, 0x7, 0x70, 0x2, + 0x2, 0x4ba, 0x4bb, 0x7, 0x6f, 0x2, 0x2, 0x4bb, 0x4bc, 0x7, 0x67, 0x2, + 0x2, 0x4bc, 0x4bd, 0x7, 0x70, 0x2, 0x2, 0x4bd, 0x4be, 0x7, 0x76, 0x2, + 0x2, 0x4be, 0x4bf, 0x7, 0x75, 0x2, 0x2, 0x4bf, 0xce, 0x3, 0x2, 0x2, + 0x2, 0x4c0, 0x4c1, 0x7, 0x3c, 0x2, 0x2, 0x4c1, 0x4c2, 0x7, 0x72, 0x2, + 0x2, 0x4c2, 0x4c3, 0x7, 0x74, 0x2, 0x2, 0x4c3, 0x4c4, 0x7, 0x71, 0x2, + 0x2, 0x4c4, 0x4c5, 0x7, 0x66, 0x2, 0x2, 0x4c5, 0x4c6, 0x7, 0x77, 0x2, + 0x2, 0x4c6, 0x4c7, 0x7, 0x65, 0x2, 0x2, 0x4c7, 0x4c8, 0x7, 0x67, 0x2, + 0x2, 0x4c8, 0x4c9, 0x7, 0x2f, 0x2, 0x2, 0x4c9, 0x4ca, 0x7, 0x6f, 0x2, + 0x2, 0x4ca, 0x4cb, 0x7, 0x71, 0x2, 0x2, 0x4cb, 0x4cc, 0x7, 0x66, 0x2, + 0x2, 0x4cc, 0x4cd, 0x7, 0x67, 0x2, 0x2, 0x4cd, 0x4ce, 0x7, 0x6e, 0x2, + 0x2, 0x4ce, 0x4cf, 0x7, 0x75, 0x2, 0x2, 0x4cf, 0xd0, 0x3, 0x2, 0x2, + 0x2, 0x4d0, 0x4d1, 0x7, 0x3c, 0x2, 0x2, 0x4d1, 0x4d2, 0x7, 0x72, 0x2, + 0x2, 0x4d2, 0x4d3, 0x7, 0x74, 0x2, 0x2, 0x4d3, 0x4d4, 0x7, 0x71, 0x2, + 0x2, 0x4d4, 0x4d5, 0x7, 0x66, 0x2, 0x2, 0x4d5, 0x4d6, 0x7, 0x77, 0x2, + 0x2, 0x4d6, 0x4d7, 0x7, 0x65, 0x2, 0x2, 0x4d7, 0x4d8, 0x7, 0x67, 0x2, + 0x2, 0x4d8, 0x4d9, 0x7, 0x2f, 0x2, 0x2, 0x4d9, 0x4da, 0x7, 0x72, 0x2, + 0x2, 0x4da, 0x4db, 0x7, 0x74, 0x2, 0x2, 0x4db, 0x4dc, 0x7, 0x71, 0x2, + 0x2, 0x4dc, 0x4dd, 0x7, 0x71, 0x2, 0x2, 0x4dd, 0x4de, 0x7, 0x68, 0x2, + 0x2, 0x4de, 0x4df, 0x7, 0x75, 0x2, 0x2, 0x4df, 0xd2, 0x3, 0x2, 0x2, + 0x2, 0x4e0, 0x4e1, 0x7, 0x3c, 0x2, 0x2, 0x4e1, 0x4e2, 0x7, 0x72, 0x2, + 0x2, 0x4e2, 0x4e3, 0x7, 0x74, 0x2, 0x2, 0x4e3, 0x4e4, 0x7, 0x71, 0x2, + 0x2, 0x4e4, 0x4e5, 0x7, 0x66, 0x2, 0x2, 0x4e5, 0x4e6, 0x7, 0x77, 0x2, + 0x2, 0x4e6, 0x4e7, 0x7, 0x65, 0x2, 0x2, 0x4e7, 0x4e8, 0x7, 0x67, 0x2, + 0x2, 0x4e8, 0x4e9, 0x7, 0x2f, 0x2, 0x2, 0x4e9, 0x4ea, 0x7, 0x77, 0x2, + 0x2, 0x4ea, 0x4eb, 0x7, 0x70, 0x2, 0x2, 0x4eb, 0x4ec, 0x7, 0x75, 0x2, + 0x2, 0x4ec, 0x4ed, 0x7, 0x63, 0x2, 0x2, 0x4ed, 0x4ee, 0x7, 0x76, 0x2, + 0x2, 0x4ee, 0x4ef, 0x7, 0x2f, 0x2, 0x2, 0x4ef, 0x4f0, 0x7, 0x63, 0x2, + 0x2, 0x4f0, 0x4f1, 0x7, 0x75, 0x2, 0x2, 0x4f1, 0x4f2, 0x7, 0x75, 0x2, + 0x2, 0x4f2, 0x4f3, 0x7, 0x77, 0x2, 0x2, 0x4f3, 0x4f4, 0x7, 0x6f, 0x2, + 0x2, 0x4f4, 0x4f5, 0x7, 0x72, 0x2, 0x2, 0x4f5, 0x4f6, 0x7, 0x76, 0x2, + 0x2, 0x4f6, 0x4f7, 0x7, 0x6b, 0x2, 0x2, 0x4f7, 0x4f8, 0x7, 0x71, 0x2, + 0x2, 0x4f8, 0x4f9, 0x7, 0x70, 0x2, 0x2, 0x4f9, 0x4fa, 0x7, 0x75, 0x2, + 0x2, 0x4fa, 0xd4, 0x3, 0x2, 0x2, 0x2, 0x4fb, 0x4fc, 0x7, 0x3c, 0x2, + 0x2, 0x4fc, 0x4fd, 0x7, 0x72, 0x2, 0x2, 0x4fd, 0x4fe, 0x7, 0x74, 0x2, + 0x2, 0x4fe, 0x4ff, 0x7, 0x71, 0x2, 0x2, 0x4ff, 0x500, 0x7, 0x66, 0x2, + 0x2, 0x500, 0x501, 0x7, 0x77, 0x2, 0x2, 0x501, 0x502, 0x7, 0x65, 0x2, + 0x2, 0x502, 0x503, 0x7, 0x67, 0x2, 0x2, 0x503, 0x504, 0x7, 0x2f, 0x2, + 0x2, 0x504, 0x505, 0x7, 0x77, 0x2, 0x2, 0x505, 0x506, 0x7, 0x70, 0x2, + 0x2, 0x506, 0x507, 0x7, 0x75, 0x2, 0x2, 0x507, 0x508, 0x7, 0x63, 0x2, + 0x2, 0x508, 0x509, 0x7, 0x76, 0x2, 0x2, 0x509, 0x50a, 0x7, 0x2f, 0x2, + 0x2, 0x50a, 0x50b, 0x7, 0x65, 0x2, 0x2, 0x50b, 0x50c, 0x7, 0x71, 0x2, + 0x2, 0x50c, 0x50d, 0x7, 0x74, 0x2, 0x2, 0x50d, 0x50e, 0x7, 0x67, 0x2, + 0x2, 0x50e, 0x50f, 0x7, 0x75, 0x2, 0x2, 0x50f, 0xd6, 0x3, 0x2, 0x2, + 0x2, 0x510, 0x511, 0x7, 0x3c, 0x2, 0x2, 0x511, 0x512, 0x7, 0x74, 0x2, + 0x2, 0x512, 0x513, 0x7, 0x63, 0x2, 0x2, 0x513, 0x514, 0x7, 0x70, 0x2, + 0x2, 0x514, 0x515, 0x7, 0x66, 0x2, 0x2, 0x515, 0x516, 0x7, 0x71, 0x2, + 0x2, 0x516, 0x517, 0x7, 0x6f, 0x2, 0x2, 0x517, 0x518, 0x7, 0x2f, 0x2, + 0x2, 0x518, 0x519, 0x7, 0x75, 0x2, 0x2, 0x519, 0x51a, 0x7, 0x67, 0x2, + 0x2, 0x51a, 0x51b, 0x7, 0x67, 0x2, 0x2, 0x51b, 0x51c, 0x7, 0x66, 0x2, + 0x2, 0x51c, 0xd8, 0x3, 0x2, 0x2, 0x2, 0x51d, 0x51e, 0x7, 0x3c, 0x2, + 0x2, 0x51e, 0x51f, 0x7, 0x74, 0x2, 0x2, 0x51f, 0x520, 0x7, 0x67, 0x2, + 0x2, 0x520, 0x521, 0x7, 0x63, 0x2, 0x2, 0x521, 0x522, 0x7, 0x75, 0x2, + 0x2, 0x522, 0x523, 0x7, 0x71, 0x2, 0x2, 0x523, 0x524, 0x7, 0x70, 0x2, + 0x2, 0x524, 0x525, 0x7, 0x2f, 0x2, 0x2, 0x525, 0x526, 0x7, 0x77, 0x2, + 0x2, 0x526, 0x527, 0x7, 0x70, 0x2, 0x2, 0x527, 0x528, 0x7, 0x6d, 0x2, + 0x2, 0x528, 0x529, 0x7, 0x70, 0x2, 0x2, 0x529, 0x52a, 0x7, 0x71, 0x2, + 0x2, 0x52a, 0x52b, 0x7, 0x79, 0x2, 0x2, 0x52b, 0x52c, 0x7, 0x70, 0x2, + 0x2, 0x52c, 0xda, 0x3, 0x2, 0x2, 0x2, 0x52d, 0x52e, 0x7, 0x3c, 0x2, + 0x2, 0x52e, 0x52f, 0x7, 0x74, 0x2, 0x2, 0x52f, 0x530, 0x7, 0x67, 0x2, + 0x2, 0x530, 0x531, 0x7, 0x69, 0x2, 0x2, 0x531, 0x532, 0x7, 0x77, 0x2, + 0x2, 0x532, 0x533, 0x7, 0x6e, 0x2, 0x2, 0x533, 0x534, 0x7, 0x63, 0x2, + 0x2, 0x534, 0x535, 0x7, 0x74, 0x2, 0x2, 0x535, 0x536, 0x7, 0x2f, 0x2, + 0x2, 0x536, 0x537, 0x7, 0x71, 0x2, 0x2, 0x537, 0x538, 0x7, 0x77, 0x2, + 0x2, 0x538, 0x539, 0x7, 0x76, 0x2, 0x2, 0x539, 0x53a, 0x7, 0x72, 0x2, + 0x2, 0x53a, 0x53b, 0x7, 0x77, 0x2, 0x2, 0x53b, 0x53c, 0x7, 0x76, 0x2, + 0x2, 0x53c, 0x53d, 0x7, 0x2f, 0x2, 0x2, 0x53d, 0x53e, 0x7, 0x65, 0x2, + 0x2, 0x53e, 0x53f, 0x7, 0x6a, 0x2, 0x2, 0x53f, 0x540, 0x7, 0x63, 0x2, + 0x2, 0x540, 0x541, 0x7, 0x70, 0x2, 0x2, 0x541, 0x542, 0x7, 0x70, 0x2, + 0x2, 0x542, 0x543, 0x7, 0x67, 0x2, 0x2, 0x543, 0x544, 0x7, 0x6e, 0x2, + 0x2, 0x544, 0xdc, 0x3, 0x2, 0x2, 0x2, 0x545, 0x546, 0x7, 0x3c, 0x2, + 0x2, 0x546, 0x547, 0x7, 0x74, 0x2, 0x2, 0x547, 0x548, 0x7, 0x67, 0x2, + 0x2, 0x548, 0x549, 0x7, 0x72, 0x2, 0x2, 0x549, 0x54a, 0x7, 0x74, 0x2, + 0x2, 0x54a, 0x54b, 0x7, 0x71, 0x2, 0x2, 0x54b, 0x54c, 0x7, 0x66, 0x2, + 0x2, 0x54c, 0x54d, 0x7, 0x77, 0x2, 0x2, 0x54d, 0x54e, 0x7, 0x65, 0x2, + 0x2, 0x54e, 0x54f, 0x7, 0x6b, 0x2, 0x2, 0x54f, 0x550, 0x7, 0x64, 0x2, + 0x2, 0x550, 0x551, 0x7, 0x6e, 0x2, 0x2, 0x551, 0x552, 0x7, 0x67, 0x2, + 0x2, 0x552, 0x553, 0x7, 0x2f, 0x2, 0x2, 0x553, 0x554, 0x7, 0x74, 0x2, + 0x2, 0x554, 0x555, 0x7, 0x67, 0x2, 0x2, 0x555, 0x556, 0x7, 0x75, 0x2, + 0x2, 0x556, 0x557, 0x7, 0x71, 0x2, 0x2, 0x557, 0x558, 0x7, 0x77, 0x2, + 0x2, 0x558, 0x559, 0x7, 0x74, 0x2, 0x2, 0x559, 0x55a, 0x7, 0x65, 0x2, + 0x2, 0x55a, 0x55b, 0x7, 0x67, 0x2, 0x2, 0x55b, 0x55c, 0x7, 0x2f, 0x2, + 0x2, 0x55c, 0x55d, 0x7, 0x6e, 0x2, 0x2, 0x55d, 0x55e, 0x7, 0x6b, 0x2, + 0x2, 0x55e, 0x55f, 0x7, 0x6f, 0x2, 0x2, 0x55f, 0x560, 0x7, 0x6b, 0x2, + 0x2, 0x560, 0x561, 0x7, 0x76, 0x2, 0x2, 0x561, 0xde, 0x3, 0x2, 0x2, + 0x2, 0x562, 0x563, 0x7, 0x3c, 0x2, 0x2, 0x563, 0x564, 0x7, 0x74, 0x2, + 0x2, 0x564, 0x565, 0x7, 0x6b, 0x2, 0x2, 0x565, 0x566, 0x7, 0x69, 0x2, + 0x2, 0x566, 0x567, 0x7, 0x6a, 0x2, 0x2, 0x567, 0x568, 0x7, 0x76, 0x2, + 0x2, 0x568, 0x569, 0x7, 0x2f, 0x2, 0x2, 0x569, 0x56a, 0x7, 0x63, 0x2, + 0x2, 0x56a, 0x56b, 0x7, 0x75, 0x2, 0x2, 0x56b, 0x56c, 0x7, 0x75, 0x2, + 0x2, 0x56c, 0x56d, 0x7, 0x71, 0x2, 0x2, 0x56d, 0x56e, 0x7, 0x65, 0x2, + 0x2, 0x56e, 0xe0, 0x3, 0x2, 0x2, 0x2, 0x56f, 0x570, 0x7, 0x3c, 0x2, + 0x2, 0x570, 0x571, 0x7, 0x75, 0x2, 0x2, 0x571, 0x572, 0x7, 0x6f, 0x2, + 0x2, 0x572, 0x573, 0x7, 0x76, 0x2, 0x2, 0x573, 0x574, 0x7, 0x2f, 0x2, + 0x2, 0x574, 0x575, 0x7, 0x6e, 0x2, 0x2, 0x575, 0x576, 0x7, 0x6b, 0x2, + 0x2, 0x576, 0x577, 0x7, 0x64, 0x2, 0x2, 0x577, 0x578, 0x7, 0x2f, 0x2, + 0x2, 0x578, 0x579, 0x7, 0x78, 0x2, 0x2, 0x579, 0x57a, 0x7, 0x67, 0x2, + 0x2, 0x57a, 0x57b, 0x7, 0x74, 0x2, 0x2, 0x57b, 0x57c, 0x7, 0x75, 0x2, + 0x2, 0x57c, 0x57d, 0x7, 0x6b, 0x2, 0x2, 0x57d, 0x57e, 0x7, 0x71, 0x2, + 0x2, 0x57e, 0x57f, 0x7, 0x70, 0x2, 0x2, 0x57f, 0xe2, 0x3, 0x2, 0x2, + 0x2, 0x580, 0x581, 0x7, 0x3c, 0x2, 0x2, 0x581, 0x582, 0x7, 0x75, 0x2, + 0x2, 0x582, 0x583, 0x7, 0x71, 0x2, 0x2, 0x583, 0x584, 0x7, 0x74, 0x2, + 0x2, 0x584, 0x585, 0x7, 0x76, 0x2, 0x2, 0x585, 0x586, 0x7, 0x75, 0x2, + 0x2, 0x586, 0xe4, 0x3, 0x2, 0x2, 0x2, 0x587, 0x588, 0x7, 0x3c, 0x2, + 0x2, 0x588, 0x589, 0x7, 0x75, 0x2, 0x2, 0x589, 0x58a, 0x7, 0x71, 0x2, + 0x2, 0x58a, 0x58b, 0x7, 0x74, 0x2, 0x2, 0x58b, 0x58c, 0x7, 0x76, 0x2, + 0x2, 0x58c, 0x58d, 0x7, 0x75, 0x2, 0x2, 0x58d, 0x58e, 0x7, 0x2f, 0x2, + 0x2, 0x58e, 0x58f, 0x7, 0x66, 0x2, 0x2, 0x58f, 0x590, 0x7, 0x67, 0x2, + 0x2, 0x590, 0x591, 0x7, 0x75, 0x2, 0x2, 0x591, 0x592, 0x7, 0x65, 0x2, + 0x2, 0x592, 0x593, 0x7, 0x74, 0x2, 0x2, 0x593, 0x594, 0x7, 0x6b, 0x2, + 0x2, 0x594, 0x595, 0x7, 0x72, 0x2, 0x2, 0x595, 0x596, 0x7, 0x76, 0x2, + 0x2, 0x596, 0x597, 0x7, 0x6b, 0x2, 0x2, 0x597, 0x598, 0x7, 0x71, 0x2, + 0x2, 0x598, 0x599, 0x7, 0x70, 0x2, 0x2, 0x599, 0xe6, 0x3, 0x2, 0x2, + 0x2, 0x59a, 0x59b, 0x7, 0x3c, 0x2, 0x2, 0x59b, 0x59c, 0x7, 0x75, 0x2, + 0x2, 0x59c, 0x59d, 0x7, 0x71, 0x2, 0x2, 0x59d, 0x59e, 0x7, 0x77, 0x2, + 0x2, 0x59e, 0x59f, 0x7, 0x74, 0x2, 0x2, 0x59f, 0x5a0, 0x7, 0x65, 0x2, + 0x2, 0x5a0, 0x5a1, 0x7, 0x67, 0x2, 0x2, 0x5a1, 0xe8, 0x3, 0x2, 0x2, + 0x2, 0x5a2, 0x5a3, 0x7, 0x3c, 0x2, 0x2, 0x5a3, 0x5a4, 0x7, 0x75, 0x2, + 0x2, 0x5a4, 0x5a5, 0x7, 0x76, 0x2, 0x2, 0x5a5, 0x5a6, 0x7, 0x63, 0x2, + 0x2, 0x5a6, 0x5a7, 0x7, 0x76, 0x2, 0x2, 0x5a7, 0x5a8, 0x7, 0x77, 0x2, + 0x2, 0x5a8, 0x5a9, 0x7, 0x75, 0x2, 0x2, 0x5a9, 0xea, 0x3, 0x2, 0x2, + 0x2, 0x5aa, 0x5ab, 0x7, 0x3c, 0x2, 0x2, 0x5ab, 0x5ac, 0x7, 0x76, 0x2, + 0x2, 0x5ac, 0x5ad, 0x7, 0x6a, 0x2, 0x2, 0x5ad, 0x5ae, 0x7, 0x67, 0x2, + 0x2, 0x5ae, 0x5af, 0x7, 0x71, 0x2, 0x2, 0x5af, 0x5b0, 0x7, 0x74, 0x2, + 0x2, 0x5b0, 0x5b1, 0x7, 0x6b, 0x2, 0x2, 0x5b1, 0x5b2, 0x7, 0x67, 0x2, + 0x2, 0x5b2, 0x5b3, 0x7, 0x75, 0x2, 0x2, 0x5b3, 0xec, 0x3, 0x2, 0x2, + 0x2, 0x5b4, 0x5b5, 0x7, 0x3c, 0x2, 0x2, 0x5b5, 0x5b6, 0x7, 0x78, 0x2, + 0x2, 0x5b6, 0x5b7, 0x7, 0x63, 0x2, 0x2, 0x5b7, 0x5b8, 0x7, 0x6e, 0x2, + 0x2, 0x5b8, 0x5b9, 0x7, 0x77, 0x2, 0x2, 0x5b9, 0x5ba, 0x7, 0x67, 0x2, + 0x2, 0x5ba, 0x5bb, 0x7, 0x75, 0x2, 0x2, 0x5bb, 0xee, 0x3, 0x2, 0x2, + 0x2, 0x5bc, 0x5bd, 0x7, 0x3c, 0x2, 0x2, 0x5bd, 0x5be, 0x7, 0x78, 0x2, + 0x2, 0x5be, 0x5bf, 0x7, 0x67, 0x2, 0x2, 0x5bf, 0x5c0, 0x7, 0x74, 0x2, + 0x2, 0x5c0, 0x5c1, 0x7, 0x64, 0x2, 0x2, 0x5c1, 0x5c2, 0x7, 0x71, 0x2, + 0x2, 0x5c2, 0x5c3, 0x7, 0x75, 0x2, 0x2, 0x5c3, 0x5c4, 0x7, 0x6b, 0x2, + 0x2, 0x5c4, 0x5c5, 0x7, 0x76, 0x2, 0x2, 0x5c5, 0x5c6, 0x7, 0x7b, 0x2, + 0x2, 0x5c6, 0xf0, 0x3, 0x2, 0x2, 0x2, 0x5c7, 0x5c8, 0x7, 0x3c, 0x2, + 0x2, 0x5c8, 0x5c9, 0x7, 0x78, 0x2, 0x2, 0x5c9, 0x5ca, 0x7, 0x67, 0x2, + 0x2, 0x5ca, 0x5cb, 0x7, 0x74, 0x2, 0x2, 0x5cb, 0x5cc, 0x7, 0x75, 0x2, + 0x2, 0x5cc, 0x5cd, 0x7, 0x6b, 0x2, 0x2, 0x5cd, 0x5ce, 0x7, 0x71, 0x2, + 0x2, 0x5ce, 0x5cf, 0x7, 0x70, 0x2, 0x2, 0x5cf, 0xf2, 0x3, 0x2, 0x2, + 0x2, 0x5d0, 0x5d5, 0x5, 0x93, 0x4a, 0x2, 0x5d1, 0x5d4, 0x5, 0x91, 0x49, + 0x2, 0x5d2, 0x5d4, 0x5, 0x93, 0x4a, 0x2, 0x5d3, 0x5d1, 0x3, 0x2, 0x2, + 0x2, 0x5d3, 0x5d2, 0x3, 0x2, 0x2, 0x2, 0x5d4, 0x5d7, 0x3, 0x2, 0x2, + 0x2, 0x5d5, 0x5d3, 0x3, 0x2, 0x2, 0x2, 0x5d5, 0x5d6, 0x3, 0x2, 0x2, + 0x2, 0x5d6, 0xf4, 0x3, 0x2, 0x2, 0x2, 0x5d7, 0x5d5, 0x3, 0x2, 0x2, 0x2, + 0x5d8, 0x5da, 0x9, 0xb, 0x2, 0x2, 0x5d9, 0x5d8, 0x3, 0x2, 0x2, 0x2, + 0x5da, 0x5db, 0x3, 0x2, 0x2, 0x2, 0x5db, 0x5d9, 0x3, 0x2, 0x2, 0x2, + 0x5db, 0x5dc, 0x3, 0x2, 0x2, 0x2, 0x5dc, 0x5dd, 0x3, 0x2, 0x2, 0x2, + 0x5dd, 0x5de, 0x8, 0x7b, 0x2, 0x2, 0x5de, 0xf6, 0x3, 0x2, 0x2, 0x2, + 0x12, 0x2, 0xfb, 0x109, 0x10b, 0x112, 0x114, 0x34d, 0x350, 0x355, 0x364, + 0x375, 0x379, 0x37d, 0x5d3, 0x5d5, 0x5db, 0x3, 0x8, 0x2, 0x2, + }; + + atn::ATNDeserializer deserializer; + _atn = deserializer.deserialize(_serializedATN); + + size_t count = _atn.getNumberOfDecisions(); + _decisionToDFA.reserve(count); + for (size_t i = 0; i < count; i++) { + _decisionToDFA.emplace_back(_atn.getDecisionState(i), i); + } +} + +SMTLIBv2Lexer::Initializer SMTLIBv2Lexer::_init; diff --git a/C++Verifier/src/antlr4/SMTLIBv2Lexer.h b/C++Verifier/src/antlr4/SMTLIBv2Lexer.h new file mode 100644 index 0000000..598283a --- /dev/null +++ b/C++Verifier/src/antlr4/SMTLIBv2Lexer.h @@ -0,0 +1,84 @@ + +// Generated from SMTLIBv2.g4 by ANTLR 4.8 + +#pragma once + + +#include "antlr4-runtime.h" + + + + +class SMTLIBv2Lexer : public antlr4::Lexer { +public: + enum { + Comment = 1, ParOpen = 2, ParClose = 3, Semicolon = 4, String = 5, QuotedSymbol = 6, + PS_Not = 7, PS_Bool = 8, PS_ContinuedExecution = 9, PS_Error = 10, PS_False = 11, + PS_ImmediateExit = 12, PS_Incomplete = 13, PS_Logic = 14, PS_Memout = 15, + PS_Sat = 16, PS_Success = 17, PS_Theory = 18, PS_True = 19, PS_Unknown = 20, + PS_Unsupported = 21, PS_Unsat = 22, CMD_Assert = 23, CMD_CheckSat = 24, + CMD_CheckSatAssuming = 25, CMD_DeclareConst = 26, CMD_DeclareDatatype = 27, + CMD_DeclareDatatypes = 28, CMD_DeclareFun = 29, CMD_DeclareSort = 30, + CMD_DefineFun = 31, CMD_DefineFunRec = 32, CMD_DefineFunsRec = 33, CMD_DefineSort = 34, + CMD_Echo = 35, CMD_Exit = 36, CMD_GetAssertions = 37, CMD_GetAssignment = 38, + CMD_GetInfo = 39, CMD_GetModel = 40, CMD_GetOption = 41, CMD_GetProof = 42, + CMD_GetUnsatAssumptions = 43, CMD_GetUnsatCore = 44, CMD_GetValue = 45, + CMD_Pop = 46, CMD_Push = 47, CMD_Reset = 48, CMD_ResetAssertions = 49, + CMD_SetInfo = 50, CMD_SetLogic = 51, CMD_SetOption = 52, GRW_Exclamation = 53, + GRW_Underscore = 54, GRW_As = 55, GRW_Binary = 56, GRW_Decimal = 57, + GRW_Exists = 58, GRW_Hexadecimal = 59, GRW_Forall = 60, GRW_Let = 61, + GRW_Match = 62, GRW_Numeral = 63, GRW_Par = 64, GRW_String = 65, Numeral = 66, + Binary = 67, HexDecimal = 68, Decimal = 69, Colon = 70, PK_AllStatistics = 71, + PK_AssertionStackLevels = 72, PK_Authors = 73, PK_Category = 74, PK_Chainable = 75, + PK_Definition = 76, PK_DiagnosticOutputChannel = 77, PK_ErrorBehaviour = 78, + PK_Extension = 79, PK_Funs = 80, PK_FunsDescription = 81, PK_GlobalDeclarations = 82, + PK_InteractiveMode = 83, PK_Language = 84, PK_LeftAssoc = 85, PK_License = 86, + PK_Named = 87, PK_Name = 88, PK_Notes = 89, PK_Pattern = 90, PK_PrintSuccess = 91, + PK_ProduceAssertions = 92, PK_ProduceAssignments = 93, PK_ProduceModels = 94, + PK_ProduceProofs = 95, PK_ProduceUnsatAssumptions = 96, PK_ProduceUnsatCores = 97, + PK_RandomSeed = 98, PK_ReasonUnknown = 99, PK_RegularOutputChannel = 100, + PK_ReproducibleResourceLimit = 101, PK_RightAssoc = 102, PK_SmtLibVersion = 103, + PK_Sorts = 104, PK_SortsDescription = 105, PK_Source = 106, PK_Status = 107, + PK_Theories = 108, PK_Values = 109, PK_Verbosity = 110, PK_Version = 111, + UndefinedSymbol = 112, WS = 113 + }; + + SMTLIBv2Lexer(antlr4::CharStream *input); + ~SMTLIBv2Lexer(); + + virtual std::string getGrammarFileName() const override; + virtual const std::vector& getRuleNames() const override; + + virtual const std::vector& getChannelNames() const override; + virtual const std::vector& getModeNames() const override; + virtual const std::vector& getTokenNames() const override; // deprecated, use vocabulary instead + virtual antlr4::dfa::Vocabulary& getVocabulary() const override; + + virtual const std::vector getSerializedATN() const override; + virtual const antlr4::atn::ATN& getATN() const override; + +private: + static std::vector _decisionToDFA; + static antlr4::atn::PredictionContextCache _sharedContextCache; + static std::vector _ruleNames; + static std::vector _tokenNames; + static std::vector _channelNames; + static std::vector _modeNames; + + static std::vector _literalNames; + static std::vector _symbolicNames; + static antlr4::dfa::Vocabulary _vocabulary; + static antlr4::atn::ATN _atn; + static std::vector _serializedATN; + + + // Individual action functions triggered by action() above. + + // Individual semantic predicate functions triggered by sempred() above. + + struct Initializer { + Initializer(); + }; + static Initializer _init; +}; + diff --git a/C++Verifier/src/antlr4/SMTLIBv2Lexer.interp b/C++Verifier/src/antlr4/SMTLIBv2Lexer.interp new file mode 100644 index 0000000..d699a3a --- /dev/null +++ b/C++Verifier/src/antlr4/SMTLIBv2Lexer.interp @@ -0,0 +1,365 @@ +token literal names: +null +null +'(' +')' +';' +null +null +'not' +'Bool' +'continued-execution' +'error' +'false' +'immediate-exit' +'incomplete' +'logic' +'memout' +'sat' +'success' +'theory' +'true' +'unknown' +'unsupported' +'unsat' +'assert' +'check-sat' +'check-sat-assuming' +'declare-const' +'declare-datatype' +'declare-datatypes' +'declare-fun' +'declare-sort' +'define-fun' +'define-fun-rec' +'define-funs-rec' +'define-sort' +'echo' +'exit' +'get-assertions' +'get-assignment' +'get-info' +'get-model' +'get-option' +'get-proof' +'get-unsat-assumptions' +'get-unsat-core' +'get-value' +'pop' +'push' +'reset' +'reset-assertions' +'set-info' +'set-logic' +'set-option' +'!' +'_' +'as' +'BINARY' +'DECIMAL' +'exists' +'HEXADECIMAL' +'forall' +'let' +'match' +'NUMERAL' +'par' +'string' +null +null +null +null +':' +':all-statistics' +':assertion-stack-levels' +':authors' +':category' +':chainable' +':definition' +':diagnostic-output-channel' +':error-behavior' +':extensions' +':funs' +':funs-description' +':global-declarations' +':interactive-mode' +':language' +':left-assoc' +':license' +':named' +':name' +':notes' +':pattern' +':print-success' +':produce-assertions' +':produce-assignments' +':produce-models' +':produce-proofs' +':produce-unsat-assumptions' +':produce-unsat-cores' +':random-seed' +':reason-unknown' +':regular-output-channel' +':reproducible-resource-limit' +':right-assoc' +':smt-lib-version' +':sorts' +':sorts-description' +':source' +':status' +':theories' +':values' +':verbosity' +':version' +null +null + +token symbolic names: +null +Comment +ParOpen +ParClose +Semicolon +String +QuotedSymbol +PS_Not +PS_Bool +PS_ContinuedExecution +PS_Error +PS_False +PS_ImmediateExit +PS_Incomplete +PS_Logic +PS_Memout +PS_Sat +PS_Success +PS_Theory +PS_True +PS_Unknown +PS_Unsupported +PS_Unsat +CMD_Assert +CMD_CheckSat +CMD_CheckSatAssuming +CMD_DeclareConst +CMD_DeclareDatatype +CMD_DeclareDatatypes +CMD_DeclareFun +CMD_DeclareSort +CMD_DefineFun +CMD_DefineFunRec +CMD_DefineFunsRec +CMD_DefineSort +CMD_Echo +CMD_Exit +CMD_GetAssertions +CMD_GetAssignment +CMD_GetInfo +CMD_GetModel +CMD_GetOption +CMD_GetProof +CMD_GetUnsatAssumptions +CMD_GetUnsatCore +CMD_GetValue +CMD_Pop +CMD_Push +CMD_Reset +CMD_ResetAssertions +CMD_SetInfo +CMD_SetLogic +CMD_SetOption +GRW_Exclamation +GRW_Underscore +GRW_As +GRW_Binary +GRW_Decimal +GRW_Exists +GRW_Hexadecimal +GRW_Forall +GRW_Let +GRW_Match +GRW_Numeral +GRW_Par +GRW_String +Numeral +Binary +HexDecimal +Decimal +Colon +PK_AllStatistics +PK_AssertionStackLevels +PK_Authors +PK_Category +PK_Chainable +PK_Definition +PK_DiagnosticOutputChannel +PK_ErrorBehaviour +PK_Extension +PK_Funs +PK_FunsDescription +PK_GlobalDeclarations +PK_InteractiveMode +PK_Language +PK_LeftAssoc +PK_License +PK_Named +PK_Name +PK_Notes +PK_Pattern +PK_PrintSuccess +PK_ProduceAssertions +PK_ProduceAssignments +PK_ProduceModels +PK_ProduceProofs +PK_ProduceUnsatAssumptions +PK_ProduceUnsatCores +PK_RandomSeed +PK_ReasonUnknown +PK_RegularOutputChannel +PK_ReproducibleResourceLimit +PK_RightAssoc +PK_SmtLibVersion +PK_Sorts +PK_SortsDescription +PK_Source +PK_Status +PK_Theories +PK_Values +PK_Verbosity +PK_Version +UndefinedSymbol +WS + +rule names: +Comment +ParOpen +ParClose +Semicolon +String +QuotedSymbol +PS_Not +PS_Bool +PS_ContinuedExecution +PS_Error +PS_False +PS_ImmediateExit +PS_Incomplete +PS_Logic +PS_Memout +PS_Sat +PS_Success +PS_Theory +PS_True +PS_Unknown +PS_Unsupported +PS_Unsat +CMD_Assert +CMD_CheckSat +CMD_CheckSatAssuming +CMD_DeclareConst +CMD_DeclareDatatype +CMD_DeclareDatatypes +CMD_DeclareFun +CMD_DeclareSort +CMD_DefineFun +CMD_DefineFunRec +CMD_DefineFunsRec +CMD_DefineSort +CMD_Echo +CMD_Exit +CMD_GetAssertions +CMD_GetAssignment +CMD_GetInfo +CMD_GetModel +CMD_GetOption +CMD_GetProof +CMD_GetUnsatAssumptions +CMD_GetUnsatCore +CMD_GetValue +CMD_Pop +CMD_Push +CMD_Reset +CMD_ResetAssertions +CMD_SetInfo +CMD_SetLogic +CMD_SetOption +GRW_Exclamation +GRW_Underscore +GRW_As +GRW_Binary +GRW_Decimal +GRW_Exists +GRW_Hexadecimal +GRW_Forall +GRW_Let +GRW_Match +GRW_Numeral +GRW_Par +GRW_String +Numeral +Binary +HexDecimal +Decimal +HexDigit +Colon +Digit +Sym +BinaryDigit +PrintableChar +PrintableCharNoDquote +PrintableCharNoBackslash +EscapedSpace +WhiteSpaceChar +PK_AllStatistics +PK_AssertionStackLevels +PK_Authors +PK_Category +PK_Chainable +PK_Definition +PK_DiagnosticOutputChannel +PK_ErrorBehaviour +PK_Extension +PK_Funs +PK_FunsDescription +PK_GlobalDeclarations +PK_InteractiveMode +PK_Language +PK_LeftAssoc +PK_License +PK_Named +PK_Name +PK_Notes +PK_Pattern +PK_PrintSuccess +PK_ProduceAssertions +PK_ProduceAssignments +PK_ProduceModels +PK_ProduceProofs +PK_ProduceUnsatAssumptions +PK_ProduceUnsatCores +PK_RandomSeed +PK_ReasonUnknown +PK_RegularOutputChannel +PK_ReproducibleResourceLimit +PK_RightAssoc +PK_SmtLibVersion +PK_Sorts +PK_SortsDescription +PK_Source +PK_Status +PK_Theories +PK_Values +PK_Verbosity +PK_Version +UndefinedSymbol +WS + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 115, 1503, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 3, 2, 3, 2, 7, 2, 250, 10, 2, 12, 2, 14, 2, 253, 11, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 6, 6, 266, 10, 6, 13, 6, 14, 6, 267, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 6, 7, 275, 10, 7, 13, 7, 14, 7, 276, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 7, 67, 844, 10, 67, 12, 67, 14, 67, 847, 11, 67, 5, 67, 849, 10, 67, 3, 68, 6, 68, 852, 10, 68, 13, 68, 14, 68, 853, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 7, 70, 867, 10, 70, 12, 70, 14, 70, 870, 11, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 72, 3, 72, 3, 73, 3, 73, 3, 74, 3, 74, 3, 75, 3, 75, 3, 76, 3, 76, 5, 76, 886, 10, 76, 3, 77, 3, 77, 5, 77, 890, 10, 77, 3, 78, 3, 78, 5, 78, 894, 10, 78, 3, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 7, 122, 1492, 10, 122, 12, 122, 14, 122, 1495, 11, 122, 3, 123, 6, 123, 1498, 10, 123, 13, 123, 14, 123, 1499, 3, 123, 3, 123, 2, 2, 124, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105, 54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121, 62, 123, 63, 125, 64, 127, 65, 129, 66, 131, 67, 133, 68, 135, 69, 137, 70, 139, 71, 141, 2, 143, 72, 145, 2, 147, 2, 149, 2, 151, 2, 153, 2, 155, 2, 157, 2, 159, 2, 161, 73, 163, 74, 165, 75, 167, 76, 169, 77, 171, 78, 173, 79, 175, 80, 177, 81, 179, 82, 181, 83, 183, 84, 185, 85, 187, 86, 189, 87, 191, 88, 193, 89, 195, 90, 197, 91, 199, 92, 201, 93, 203, 94, 205, 95, 207, 96, 209, 97, 211, 98, 213, 99, 215, 100, 217, 101, 219, 102, 221, 103, 223, 104, 225, 105, 227, 106, 229, 107, 231, 108, 233, 109, 235, 110, 237, 111, 239, 112, 241, 113, 243, 114, 245, 115, 3, 2, 12, 4, 2, 12, 12, 15, 15, 3, 2, 51, 59, 5, 2, 50, 59, 67, 72, 99, 104, 3, 2, 50, 59, 10, 2, 35, 35, 38, 40, 44, 45, 47, 49, 62, 92, 96, 97, 99, 124, 128, 128, 3, 2, 50, 51, 4, 2, 34, 128, 130, 1, 5, 2, 34, 35, 37, 128, 130, 1, 6, 2, 34, 93, 95, 125, 127, 128, 130, 1, 5, 2, 11, 12, 15, 15, 34, 34, 2, 1508, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 143, 3, 2, 2, 2, 2, 161, 3, 2, 2, 2, 2, 163, 3, 2, 2, 2, 2, 165, 3, 2, 2, 2, 2, 167, 3, 2, 2, 2, 2, 169, 3, 2, 2, 2, 2, 171, 3, 2, 2, 2, 2, 173, 3, 2, 2, 2, 2, 175, 3, 2, 2, 2, 2, 177, 3, 2, 2, 2, 2, 179, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 183, 3, 2, 2, 2, 2, 185, 3, 2, 2, 2, 2, 187, 3, 2, 2, 2, 2, 189, 3, 2, 2, 2, 2, 191, 3, 2, 2, 2, 2, 193, 3, 2, 2, 2, 2, 195, 3, 2, 2, 2, 2, 197, 3, 2, 2, 2, 2, 199, 3, 2, 2, 2, 2, 201, 3, 2, 2, 2, 2, 203, 3, 2, 2, 2, 2, 205, 3, 2, 2, 2, 2, 207, 3, 2, 2, 2, 2, 209, 3, 2, 2, 2, 2, 211, 3, 2, 2, 2, 2, 213, 3, 2, 2, 2, 2, 215, 3, 2, 2, 2, 2, 217, 3, 2, 2, 2, 2, 219, 3, 2, 2, 2, 2, 221, 3, 2, 2, 2, 2, 223, 3, 2, 2, 2, 2, 225, 3, 2, 2, 2, 2, 227, 3, 2, 2, 2, 2, 229, 3, 2, 2, 2, 2, 231, 3, 2, 2, 2, 2, 233, 3, 2, 2, 2, 2, 235, 3, 2, 2, 2, 2, 237, 3, 2, 2, 2, 2, 239, 3, 2, 2, 2, 2, 241, 3, 2, 2, 2, 2, 243, 3, 2, 2, 2, 2, 245, 3, 2, 2, 2, 3, 247, 3, 2, 2, 2, 5, 256, 3, 2, 2, 2, 7, 258, 3, 2, 2, 2, 9, 260, 3, 2, 2, 2, 11, 262, 3, 2, 2, 2, 13, 271, 3, 2, 2, 2, 15, 280, 3, 2, 2, 2, 17, 284, 3, 2, 2, 2, 19, 289, 3, 2, 2, 2, 21, 309, 3, 2, 2, 2, 23, 315, 3, 2, 2, 2, 25, 321, 3, 2, 2, 2, 27, 336, 3, 2, 2, 2, 29, 347, 3, 2, 2, 2, 31, 353, 3, 2, 2, 2, 33, 360, 3, 2, 2, 2, 35, 364, 3, 2, 2, 2, 37, 372, 3, 2, 2, 2, 39, 379, 3, 2, 2, 2, 41, 384, 3, 2, 2, 2, 43, 392, 3, 2, 2, 2, 45, 404, 3, 2, 2, 2, 47, 410, 3, 2, 2, 2, 49, 417, 3, 2, 2, 2, 51, 427, 3, 2, 2, 2, 53, 446, 3, 2, 2, 2, 55, 460, 3, 2, 2, 2, 57, 477, 3, 2, 2, 2, 59, 495, 3, 2, 2, 2, 61, 507, 3, 2, 2, 2, 63, 520, 3, 2, 2, 2, 65, 531, 3, 2, 2, 2, 67, 546, 3, 2, 2, 2, 69, 562, 3, 2, 2, 2, 71, 574, 3, 2, 2, 2, 73, 579, 3, 2, 2, 2, 75, 584, 3, 2, 2, 2, 77, 599, 3, 2, 2, 2, 79, 614, 3, 2, 2, 2, 81, 623, 3, 2, 2, 2, 83, 633, 3, 2, 2, 2, 85, 644, 3, 2, 2, 2, 87, 654, 3, 2, 2, 2, 89, 676, 3, 2, 2, 2, 91, 691, 3, 2, 2, 2, 93, 701, 3, 2, 2, 2, 95, 705, 3, 2, 2, 2, 97, 710, 3, 2, 2, 2, 99, 716, 3, 2, 2, 2, 101, 733, 3, 2, 2, 2, 103, 742, 3, 2, 2, 2, 105, 752, 3, 2, 2, 2, 107, 763, 3, 2, 2, 2, 109, 765, 3, 2, 2, 2, 111, 767, 3, 2, 2, 2, 113, 770, 3, 2, 2, 2, 115, 777, 3, 2, 2, 2, 117, 785, 3, 2, 2, 2, 119, 792, 3, 2, 2, 2, 121, 804, 3, 2, 2, 2, 123, 811, 3, 2, 2, 2, 125, 815, 3, 2, 2, 2, 127, 821, 3, 2, 2, 2, 129, 829, 3, 2, 2, 2, 131, 833, 3, 2, 2, 2, 133, 848, 3, 2, 2, 2, 135, 851, 3, 2, 2, 2, 137, 855, 3, 2, 2, 2, 139, 863, 3, 2, 2, 2, 141, 873, 3, 2, 2, 2, 143, 875, 3, 2, 2, 2, 145, 877, 3, 2, 2, 2, 147, 879, 3, 2, 2, 2, 149, 881, 3, 2, 2, 2, 151, 885, 3, 2, 2, 2, 153, 889, 3, 2, 2, 2, 155, 893, 3, 2, 2, 2, 157, 895, 3, 2, 2, 2, 159, 898, 3, 2, 2, 2, 161, 900, 3, 2, 2, 2, 163, 916, 3, 2, 2, 2, 165, 940, 3, 2, 2, 2, 167, 949, 3, 2, 2, 2, 169, 959, 3, 2, 2, 2, 171, 970, 3, 2, 2, 2, 173, 982, 3, 2, 2, 2, 175, 1009, 3, 2, 2, 2, 177, 1025, 3, 2, 2, 2, 179, 1037, 3, 2, 2, 2, 181, 1043, 3, 2, 2, 2, 183, 1061, 3, 2, 2, 2, 185, 1082, 3, 2, 2, 2, 187, 1100, 3, 2, 2, 2, 189, 1110, 3, 2, 2, 2, 191, 1122, 3, 2, 2, 2, 193, 1131, 3, 2, 2, 2, 195, 1138, 3, 2, 2, 2, 197, 1144, 3, 2, 2, 2, 199, 1151, 3, 2, 2, 2, 201, 1160, 3, 2, 2, 2, 203, 1175, 3, 2, 2, 2, 205, 1195, 3, 2, 2, 2, 207, 1216, 3, 2, 2, 2, 209, 1232, 3, 2, 2, 2, 211, 1248, 3, 2, 2, 2, 213, 1275, 3, 2, 2, 2, 215, 1296, 3, 2, 2, 2, 217, 1309, 3, 2, 2, 2, 219, 1325, 3, 2, 2, 2, 221, 1349, 3, 2, 2, 2, 223, 1378, 3, 2, 2, 2, 225, 1391, 3, 2, 2, 2, 227, 1408, 3, 2, 2, 2, 229, 1415, 3, 2, 2, 2, 231, 1434, 3, 2, 2, 2, 233, 1442, 3, 2, 2, 2, 235, 1450, 3, 2, 2, 2, 237, 1460, 3, 2, 2, 2, 239, 1468, 3, 2, 2, 2, 241, 1479, 3, 2, 2, 2, 243, 1488, 3, 2, 2, 2, 245, 1497, 3, 2, 2, 2, 247, 251, 5, 9, 5, 2, 248, 250, 10, 2, 2, 2, 249, 248, 3, 2, 2, 2, 250, 253, 3, 2, 2, 2, 251, 249, 3, 2, 2, 2, 251, 252, 3, 2, 2, 2, 252, 254, 3, 2, 2, 2, 253, 251, 3, 2, 2, 2, 254, 255, 8, 2, 2, 2, 255, 4, 3, 2, 2, 2, 256, 257, 7, 42, 2, 2, 257, 6, 3, 2, 2, 2, 258, 259, 7, 43, 2, 2, 259, 8, 3, 2, 2, 2, 260, 261, 7, 61, 2, 2, 261, 10, 3, 2, 2, 2, 262, 265, 7, 36, 2, 2, 263, 266, 5, 153, 77, 2, 264, 266, 5, 159, 80, 2, 265, 263, 3, 2, 2, 2, 265, 264, 3, 2, 2, 2, 266, 267, 3, 2, 2, 2, 267, 265, 3, 2, 2, 2, 267, 268, 3, 2, 2, 2, 268, 269, 3, 2, 2, 2, 269, 270, 7, 36, 2, 2, 270, 12, 3, 2, 2, 2, 271, 274, 7, 126, 2, 2, 272, 275, 5, 155, 78, 2, 273, 275, 5, 159, 80, 2, 274, 272, 3, 2, 2, 2, 274, 273, 3, 2, 2, 2, 275, 276, 3, 2, 2, 2, 276, 274, 3, 2, 2, 2, 276, 277, 3, 2, 2, 2, 277, 278, 3, 2, 2, 2, 278, 279, 7, 126, 2, 2, 279, 14, 3, 2, 2, 2, 280, 281, 7, 112, 2, 2, 281, 282, 7, 113, 2, 2, 282, 283, 7, 118, 2, 2, 283, 16, 3, 2, 2, 2, 284, 285, 7, 68, 2, 2, 285, 286, 7, 113, 2, 2, 286, 287, 7, 113, 2, 2, 287, 288, 7, 110, 2, 2, 288, 18, 3, 2, 2, 2, 289, 290, 7, 101, 2, 2, 290, 291, 7, 113, 2, 2, 291, 292, 7, 112, 2, 2, 292, 293, 7, 118, 2, 2, 293, 294, 7, 107, 2, 2, 294, 295, 7, 112, 2, 2, 295, 296, 7, 119, 2, 2, 296, 297, 7, 103, 2, 2, 297, 298, 7, 102, 2, 2, 298, 299, 7, 47, 2, 2, 299, 300, 7, 103, 2, 2, 300, 301, 7, 122, 2, 2, 301, 302, 7, 103, 2, 2, 302, 303, 7, 101, 2, 2, 303, 304, 7, 119, 2, 2, 304, 305, 7, 118, 2, 2, 305, 306, 7, 107, 2, 2, 306, 307, 7, 113, 2, 2, 307, 308, 7, 112, 2, 2, 308, 20, 3, 2, 2, 2, 309, 310, 7, 103, 2, 2, 310, 311, 7, 116, 2, 2, 311, 312, 7, 116, 2, 2, 312, 313, 7, 113, 2, 2, 313, 314, 7, 116, 2, 2, 314, 22, 3, 2, 2, 2, 315, 316, 7, 104, 2, 2, 316, 317, 7, 99, 2, 2, 317, 318, 7, 110, 2, 2, 318, 319, 7, 117, 2, 2, 319, 320, 7, 103, 2, 2, 320, 24, 3, 2, 2, 2, 321, 322, 7, 107, 2, 2, 322, 323, 7, 111, 2, 2, 323, 324, 7, 111, 2, 2, 324, 325, 7, 103, 2, 2, 325, 326, 7, 102, 2, 2, 326, 327, 7, 107, 2, 2, 327, 328, 7, 99, 2, 2, 328, 329, 7, 118, 2, 2, 329, 330, 7, 103, 2, 2, 330, 331, 7, 47, 2, 2, 331, 332, 7, 103, 2, 2, 332, 333, 7, 122, 2, 2, 333, 334, 7, 107, 2, 2, 334, 335, 7, 118, 2, 2, 335, 26, 3, 2, 2, 2, 336, 337, 7, 107, 2, 2, 337, 338, 7, 112, 2, 2, 338, 339, 7, 101, 2, 2, 339, 340, 7, 113, 2, 2, 340, 341, 7, 111, 2, 2, 341, 342, 7, 114, 2, 2, 342, 343, 7, 110, 2, 2, 343, 344, 7, 103, 2, 2, 344, 345, 7, 118, 2, 2, 345, 346, 7, 103, 2, 2, 346, 28, 3, 2, 2, 2, 347, 348, 7, 110, 2, 2, 348, 349, 7, 113, 2, 2, 349, 350, 7, 105, 2, 2, 350, 351, 7, 107, 2, 2, 351, 352, 7, 101, 2, 2, 352, 30, 3, 2, 2, 2, 353, 354, 7, 111, 2, 2, 354, 355, 7, 103, 2, 2, 355, 356, 7, 111, 2, 2, 356, 357, 7, 113, 2, 2, 357, 358, 7, 119, 2, 2, 358, 359, 7, 118, 2, 2, 359, 32, 3, 2, 2, 2, 360, 361, 7, 117, 2, 2, 361, 362, 7, 99, 2, 2, 362, 363, 7, 118, 2, 2, 363, 34, 3, 2, 2, 2, 364, 365, 7, 117, 2, 2, 365, 366, 7, 119, 2, 2, 366, 367, 7, 101, 2, 2, 367, 368, 7, 101, 2, 2, 368, 369, 7, 103, 2, 2, 369, 370, 7, 117, 2, 2, 370, 371, 7, 117, 2, 2, 371, 36, 3, 2, 2, 2, 372, 373, 7, 118, 2, 2, 373, 374, 7, 106, 2, 2, 374, 375, 7, 103, 2, 2, 375, 376, 7, 113, 2, 2, 376, 377, 7, 116, 2, 2, 377, 378, 7, 123, 2, 2, 378, 38, 3, 2, 2, 2, 379, 380, 7, 118, 2, 2, 380, 381, 7, 116, 2, 2, 381, 382, 7, 119, 2, 2, 382, 383, 7, 103, 2, 2, 383, 40, 3, 2, 2, 2, 384, 385, 7, 119, 2, 2, 385, 386, 7, 112, 2, 2, 386, 387, 7, 109, 2, 2, 387, 388, 7, 112, 2, 2, 388, 389, 7, 113, 2, 2, 389, 390, 7, 121, 2, 2, 390, 391, 7, 112, 2, 2, 391, 42, 3, 2, 2, 2, 392, 393, 7, 119, 2, 2, 393, 394, 7, 112, 2, 2, 394, 395, 7, 117, 2, 2, 395, 396, 7, 119, 2, 2, 396, 397, 7, 114, 2, 2, 397, 398, 7, 114, 2, 2, 398, 399, 7, 113, 2, 2, 399, 400, 7, 116, 2, 2, 400, 401, 7, 118, 2, 2, 401, 402, 7, 103, 2, 2, 402, 403, 7, 102, 2, 2, 403, 44, 3, 2, 2, 2, 404, 405, 7, 119, 2, 2, 405, 406, 7, 112, 2, 2, 406, 407, 7, 117, 2, 2, 407, 408, 7, 99, 2, 2, 408, 409, 7, 118, 2, 2, 409, 46, 3, 2, 2, 2, 410, 411, 7, 99, 2, 2, 411, 412, 7, 117, 2, 2, 412, 413, 7, 117, 2, 2, 413, 414, 7, 103, 2, 2, 414, 415, 7, 116, 2, 2, 415, 416, 7, 118, 2, 2, 416, 48, 3, 2, 2, 2, 417, 418, 7, 101, 2, 2, 418, 419, 7, 106, 2, 2, 419, 420, 7, 103, 2, 2, 420, 421, 7, 101, 2, 2, 421, 422, 7, 109, 2, 2, 422, 423, 7, 47, 2, 2, 423, 424, 7, 117, 2, 2, 424, 425, 7, 99, 2, 2, 425, 426, 7, 118, 2, 2, 426, 50, 3, 2, 2, 2, 427, 428, 7, 101, 2, 2, 428, 429, 7, 106, 2, 2, 429, 430, 7, 103, 2, 2, 430, 431, 7, 101, 2, 2, 431, 432, 7, 109, 2, 2, 432, 433, 7, 47, 2, 2, 433, 434, 7, 117, 2, 2, 434, 435, 7, 99, 2, 2, 435, 436, 7, 118, 2, 2, 436, 437, 7, 47, 2, 2, 437, 438, 7, 99, 2, 2, 438, 439, 7, 117, 2, 2, 439, 440, 7, 117, 2, 2, 440, 441, 7, 119, 2, 2, 441, 442, 7, 111, 2, 2, 442, 443, 7, 107, 2, 2, 443, 444, 7, 112, 2, 2, 444, 445, 7, 105, 2, 2, 445, 52, 3, 2, 2, 2, 446, 447, 7, 102, 2, 2, 447, 448, 7, 103, 2, 2, 448, 449, 7, 101, 2, 2, 449, 450, 7, 110, 2, 2, 450, 451, 7, 99, 2, 2, 451, 452, 7, 116, 2, 2, 452, 453, 7, 103, 2, 2, 453, 454, 7, 47, 2, 2, 454, 455, 7, 101, 2, 2, 455, 456, 7, 113, 2, 2, 456, 457, 7, 112, 2, 2, 457, 458, 7, 117, 2, 2, 458, 459, 7, 118, 2, 2, 459, 54, 3, 2, 2, 2, 460, 461, 7, 102, 2, 2, 461, 462, 7, 103, 2, 2, 462, 463, 7, 101, 2, 2, 463, 464, 7, 110, 2, 2, 464, 465, 7, 99, 2, 2, 465, 466, 7, 116, 2, 2, 466, 467, 7, 103, 2, 2, 467, 468, 7, 47, 2, 2, 468, 469, 7, 102, 2, 2, 469, 470, 7, 99, 2, 2, 470, 471, 7, 118, 2, 2, 471, 472, 7, 99, 2, 2, 472, 473, 7, 118, 2, 2, 473, 474, 7, 123, 2, 2, 474, 475, 7, 114, 2, 2, 475, 476, 7, 103, 2, 2, 476, 56, 3, 2, 2, 2, 477, 478, 7, 102, 2, 2, 478, 479, 7, 103, 2, 2, 479, 480, 7, 101, 2, 2, 480, 481, 7, 110, 2, 2, 481, 482, 7, 99, 2, 2, 482, 483, 7, 116, 2, 2, 483, 484, 7, 103, 2, 2, 484, 485, 7, 47, 2, 2, 485, 486, 7, 102, 2, 2, 486, 487, 7, 99, 2, 2, 487, 488, 7, 118, 2, 2, 488, 489, 7, 99, 2, 2, 489, 490, 7, 118, 2, 2, 490, 491, 7, 123, 2, 2, 491, 492, 7, 114, 2, 2, 492, 493, 7, 103, 2, 2, 493, 494, 7, 117, 2, 2, 494, 58, 3, 2, 2, 2, 495, 496, 7, 102, 2, 2, 496, 497, 7, 103, 2, 2, 497, 498, 7, 101, 2, 2, 498, 499, 7, 110, 2, 2, 499, 500, 7, 99, 2, 2, 500, 501, 7, 116, 2, 2, 501, 502, 7, 103, 2, 2, 502, 503, 7, 47, 2, 2, 503, 504, 7, 104, 2, 2, 504, 505, 7, 119, 2, 2, 505, 506, 7, 112, 2, 2, 506, 60, 3, 2, 2, 2, 507, 508, 7, 102, 2, 2, 508, 509, 7, 103, 2, 2, 509, 510, 7, 101, 2, 2, 510, 511, 7, 110, 2, 2, 511, 512, 7, 99, 2, 2, 512, 513, 7, 116, 2, 2, 513, 514, 7, 103, 2, 2, 514, 515, 7, 47, 2, 2, 515, 516, 7, 117, 2, 2, 516, 517, 7, 113, 2, 2, 517, 518, 7, 116, 2, 2, 518, 519, 7, 118, 2, 2, 519, 62, 3, 2, 2, 2, 520, 521, 7, 102, 2, 2, 521, 522, 7, 103, 2, 2, 522, 523, 7, 104, 2, 2, 523, 524, 7, 107, 2, 2, 524, 525, 7, 112, 2, 2, 525, 526, 7, 103, 2, 2, 526, 527, 7, 47, 2, 2, 527, 528, 7, 104, 2, 2, 528, 529, 7, 119, 2, 2, 529, 530, 7, 112, 2, 2, 530, 64, 3, 2, 2, 2, 531, 532, 7, 102, 2, 2, 532, 533, 7, 103, 2, 2, 533, 534, 7, 104, 2, 2, 534, 535, 7, 107, 2, 2, 535, 536, 7, 112, 2, 2, 536, 537, 7, 103, 2, 2, 537, 538, 7, 47, 2, 2, 538, 539, 7, 104, 2, 2, 539, 540, 7, 119, 2, 2, 540, 541, 7, 112, 2, 2, 541, 542, 7, 47, 2, 2, 542, 543, 7, 116, 2, 2, 543, 544, 7, 103, 2, 2, 544, 545, 7, 101, 2, 2, 545, 66, 3, 2, 2, 2, 546, 547, 7, 102, 2, 2, 547, 548, 7, 103, 2, 2, 548, 549, 7, 104, 2, 2, 549, 550, 7, 107, 2, 2, 550, 551, 7, 112, 2, 2, 551, 552, 7, 103, 2, 2, 552, 553, 7, 47, 2, 2, 553, 554, 7, 104, 2, 2, 554, 555, 7, 119, 2, 2, 555, 556, 7, 112, 2, 2, 556, 557, 7, 117, 2, 2, 557, 558, 7, 47, 2, 2, 558, 559, 7, 116, 2, 2, 559, 560, 7, 103, 2, 2, 560, 561, 7, 101, 2, 2, 561, 68, 3, 2, 2, 2, 562, 563, 7, 102, 2, 2, 563, 564, 7, 103, 2, 2, 564, 565, 7, 104, 2, 2, 565, 566, 7, 107, 2, 2, 566, 567, 7, 112, 2, 2, 567, 568, 7, 103, 2, 2, 568, 569, 7, 47, 2, 2, 569, 570, 7, 117, 2, 2, 570, 571, 7, 113, 2, 2, 571, 572, 7, 116, 2, 2, 572, 573, 7, 118, 2, 2, 573, 70, 3, 2, 2, 2, 574, 575, 7, 103, 2, 2, 575, 576, 7, 101, 2, 2, 576, 577, 7, 106, 2, 2, 577, 578, 7, 113, 2, 2, 578, 72, 3, 2, 2, 2, 579, 580, 7, 103, 2, 2, 580, 581, 7, 122, 2, 2, 581, 582, 7, 107, 2, 2, 582, 583, 7, 118, 2, 2, 583, 74, 3, 2, 2, 2, 584, 585, 7, 105, 2, 2, 585, 586, 7, 103, 2, 2, 586, 587, 7, 118, 2, 2, 587, 588, 7, 47, 2, 2, 588, 589, 7, 99, 2, 2, 589, 590, 7, 117, 2, 2, 590, 591, 7, 117, 2, 2, 591, 592, 7, 103, 2, 2, 592, 593, 7, 116, 2, 2, 593, 594, 7, 118, 2, 2, 594, 595, 7, 107, 2, 2, 595, 596, 7, 113, 2, 2, 596, 597, 7, 112, 2, 2, 597, 598, 7, 117, 2, 2, 598, 76, 3, 2, 2, 2, 599, 600, 7, 105, 2, 2, 600, 601, 7, 103, 2, 2, 601, 602, 7, 118, 2, 2, 602, 603, 7, 47, 2, 2, 603, 604, 7, 99, 2, 2, 604, 605, 7, 117, 2, 2, 605, 606, 7, 117, 2, 2, 606, 607, 7, 107, 2, 2, 607, 608, 7, 105, 2, 2, 608, 609, 7, 112, 2, 2, 609, 610, 7, 111, 2, 2, 610, 611, 7, 103, 2, 2, 611, 612, 7, 112, 2, 2, 612, 613, 7, 118, 2, 2, 613, 78, 3, 2, 2, 2, 614, 615, 7, 105, 2, 2, 615, 616, 7, 103, 2, 2, 616, 617, 7, 118, 2, 2, 617, 618, 7, 47, 2, 2, 618, 619, 7, 107, 2, 2, 619, 620, 7, 112, 2, 2, 620, 621, 7, 104, 2, 2, 621, 622, 7, 113, 2, 2, 622, 80, 3, 2, 2, 2, 623, 624, 7, 105, 2, 2, 624, 625, 7, 103, 2, 2, 625, 626, 7, 118, 2, 2, 626, 627, 7, 47, 2, 2, 627, 628, 7, 111, 2, 2, 628, 629, 7, 113, 2, 2, 629, 630, 7, 102, 2, 2, 630, 631, 7, 103, 2, 2, 631, 632, 7, 110, 2, 2, 632, 82, 3, 2, 2, 2, 633, 634, 7, 105, 2, 2, 634, 635, 7, 103, 2, 2, 635, 636, 7, 118, 2, 2, 636, 637, 7, 47, 2, 2, 637, 638, 7, 113, 2, 2, 638, 639, 7, 114, 2, 2, 639, 640, 7, 118, 2, 2, 640, 641, 7, 107, 2, 2, 641, 642, 7, 113, 2, 2, 642, 643, 7, 112, 2, 2, 643, 84, 3, 2, 2, 2, 644, 645, 7, 105, 2, 2, 645, 646, 7, 103, 2, 2, 646, 647, 7, 118, 2, 2, 647, 648, 7, 47, 2, 2, 648, 649, 7, 114, 2, 2, 649, 650, 7, 116, 2, 2, 650, 651, 7, 113, 2, 2, 651, 652, 7, 113, 2, 2, 652, 653, 7, 104, 2, 2, 653, 86, 3, 2, 2, 2, 654, 655, 7, 105, 2, 2, 655, 656, 7, 103, 2, 2, 656, 657, 7, 118, 2, 2, 657, 658, 7, 47, 2, 2, 658, 659, 7, 119, 2, 2, 659, 660, 7, 112, 2, 2, 660, 661, 7, 117, 2, 2, 661, 662, 7, 99, 2, 2, 662, 663, 7, 118, 2, 2, 663, 664, 7, 47, 2, 2, 664, 665, 7, 99, 2, 2, 665, 666, 7, 117, 2, 2, 666, 667, 7, 117, 2, 2, 667, 668, 7, 119, 2, 2, 668, 669, 7, 111, 2, 2, 669, 670, 7, 114, 2, 2, 670, 671, 7, 118, 2, 2, 671, 672, 7, 107, 2, 2, 672, 673, 7, 113, 2, 2, 673, 674, 7, 112, 2, 2, 674, 675, 7, 117, 2, 2, 675, 88, 3, 2, 2, 2, 676, 677, 7, 105, 2, 2, 677, 678, 7, 103, 2, 2, 678, 679, 7, 118, 2, 2, 679, 680, 7, 47, 2, 2, 680, 681, 7, 119, 2, 2, 681, 682, 7, 112, 2, 2, 682, 683, 7, 117, 2, 2, 683, 684, 7, 99, 2, 2, 684, 685, 7, 118, 2, 2, 685, 686, 7, 47, 2, 2, 686, 687, 7, 101, 2, 2, 687, 688, 7, 113, 2, 2, 688, 689, 7, 116, 2, 2, 689, 690, 7, 103, 2, 2, 690, 90, 3, 2, 2, 2, 691, 692, 7, 105, 2, 2, 692, 693, 7, 103, 2, 2, 693, 694, 7, 118, 2, 2, 694, 695, 7, 47, 2, 2, 695, 696, 7, 120, 2, 2, 696, 697, 7, 99, 2, 2, 697, 698, 7, 110, 2, 2, 698, 699, 7, 119, 2, 2, 699, 700, 7, 103, 2, 2, 700, 92, 3, 2, 2, 2, 701, 702, 7, 114, 2, 2, 702, 703, 7, 113, 2, 2, 703, 704, 7, 114, 2, 2, 704, 94, 3, 2, 2, 2, 705, 706, 7, 114, 2, 2, 706, 707, 7, 119, 2, 2, 707, 708, 7, 117, 2, 2, 708, 709, 7, 106, 2, 2, 709, 96, 3, 2, 2, 2, 710, 711, 7, 116, 2, 2, 711, 712, 7, 103, 2, 2, 712, 713, 7, 117, 2, 2, 713, 714, 7, 103, 2, 2, 714, 715, 7, 118, 2, 2, 715, 98, 3, 2, 2, 2, 716, 717, 7, 116, 2, 2, 717, 718, 7, 103, 2, 2, 718, 719, 7, 117, 2, 2, 719, 720, 7, 103, 2, 2, 720, 721, 7, 118, 2, 2, 721, 722, 7, 47, 2, 2, 722, 723, 7, 99, 2, 2, 723, 724, 7, 117, 2, 2, 724, 725, 7, 117, 2, 2, 725, 726, 7, 103, 2, 2, 726, 727, 7, 116, 2, 2, 727, 728, 7, 118, 2, 2, 728, 729, 7, 107, 2, 2, 729, 730, 7, 113, 2, 2, 730, 731, 7, 112, 2, 2, 731, 732, 7, 117, 2, 2, 732, 100, 3, 2, 2, 2, 733, 734, 7, 117, 2, 2, 734, 735, 7, 103, 2, 2, 735, 736, 7, 118, 2, 2, 736, 737, 7, 47, 2, 2, 737, 738, 7, 107, 2, 2, 738, 739, 7, 112, 2, 2, 739, 740, 7, 104, 2, 2, 740, 741, 7, 113, 2, 2, 741, 102, 3, 2, 2, 2, 742, 743, 7, 117, 2, 2, 743, 744, 7, 103, 2, 2, 744, 745, 7, 118, 2, 2, 745, 746, 7, 47, 2, 2, 746, 747, 7, 110, 2, 2, 747, 748, 7, 113, 2, 2, 748, 749, 7, 105, 2, 2, 749, 750, 7, 107, 2, 2, 750, 751, 7, 101, 2, 2, 751, 104, 3, 2, 2, 2, 752, 753, 7, 117, 2, 2, 753, 754, 7, 103, 2, 2, 754, 755, 7, 118, 2, 2, 755, 756, 7, 47, 2, 2, 756, 757, 7, 113, 2, 2, 757, 758, 7, 114, 2, 2, 758, 759, 7, 118, 2, 2, 759, 760, 7, 107, 2, 2, 760, 761, 7, 113, 2, 2, 761, 762, 7, 112, 2, 2, 762, 106, 3, 2, 2, 2, 763, 764, 7, 35, 2, 2, 764, 108, 3, 2, 2, 2, 765, 766, 7, 97, 2, 2, 766, 110, 3, 2, 2, 2, 767, 768, 7, 99, 2, 2, 768, 769, 7, 117, 2, 2, 769, 112, 3, 2, 2, 2, 770, 771, 7, 68, 2, 2, 771, 772, 7, 75, 2, 2, 772, 773, 7, 80, 2, 2, 773, 774, 7, 67, 2, 2, 774, 775, 7, 84, 2, 2, 775, 776, 7, 91, 2, 2, 776, 114, 3, 2, 2, 2, 777, 778, 7, 70, 2, 2, 778, 779, 7, 71, 2, 2, 779, 780, 7, 69, 2, 2, 780, 781, 7, 75, 2, 2, 781, 782, 7, 79, 2, 2, 782, 783, 7, 67, 2, 2, 783, 784, 7, 78, 2, 2, 784, 116, 3, 2, 2, 2, 785, 786, 7, 103, 2, 2, 786, 787, 7, 122, 2, 2, 787, 788, 7, 107, 2, 2, 788, 789, 7, 117, 2, 2, 789, 790, 7, 118, 2, 2, 790, 791, 7, 117, 2, 2, 791, 118, 3, 2, 2, 2, 792, 793, 7, 74, 2, 2, 793, 794, 7, 71, 2, 2, 794, 795, 7, 90, 2, 2, 795, 796, 7, 67, 2, 2, 796, 797, 7, 70, 2, 2, 797, 798, 7, 71, 2, 2, 798, 799, 7, 69, 2, 2, 799, 800, 7, 75, 2, 2, 800, 801, 7, 79, 2, 2, 801, 802, 7, 67, 2, 2, 802, 803, 7, 78, 2, 2, 803, 120, 3, 2, 2, 2, 804, 805, 7, 104, 2, 2, 805, 806, 7, 113, 2, 2, 806, 807, 7, 116, 2, 2, 807, 808, 7, 99, 2, 2, 808, 809, 7, 110, 2, 2, 809, 810, 7, 110, 2, 2, 810, 122, 3, 2, 2, 2, 811, 812, 7, 110, 2, 2, 812, 813, 7, 103, 2, 2, 813, 814, 7, 118, 2, 2, 814, 124, 3, 2, 2, 2, 815, 816, 7, 111, 2, 2, 816, 817, 7, 99, 2, 2, 817, 818, 7, 118, 2, 2, 818, 819, 7, 101, 2, 2, 819, 820, 7, 106, 2, 2, 820, 126, 3, 2, 2, 2, 821, 822, 7, 80, 2, 2, 822, 823, 7, 87, 2, 2, 823, 824, 7, 79, 2, 2, 824, 825, 7, 71, 2, 2, 825, 826, 7, 84, 2, 2, 826, 827, 7, 67, 2, 2, 827, 828, 7, 78, 2, 2, 828, 128, 3, 2, 2, 2, 829, 830, 7, 114, 2, 2, 830, 831, 7, 99, 2, 2, 831, 832, 7, 116, 2, 2, 832, 130, 3, 2, 2, 2, 833, 834, 7, 117, 2, 2, 834, 835, 7, 118, 2, 2, 835, 836, 7, 116, 2, 2, 836, 837, 7, 107, 2, 2, 837, 838, 7, 112, 2, 2, 838, 839, 7, 105, 2, 2, 839, 132, 3, 2, 2, 2, 840, 849, 7, 50, 2, 2, 841, 845, 9, 3, 2, 2, 842, 844, 5, 145, 73, 2, 843, 842, 3, 2, 2, 2, 844, 847, 3, 2, 2, 2, 845, 843, 3, 2, 2, 2, 845, 846, 3, 2, 2, 2, 846, 849, 3, 2, 2, 2, 847, 845, 3, 2, 2, 2, 848, 840, 3, 2, 2, 2, 848, 841, 3, 2, 2, 2, 849, 134, 3, 2, 2, 2, 850, 852, 5, 149, 75, 2, 851, 850, 3, 2, 2, 2, 852, 853, 3, 2, 2, 2, 853, 851, 3, 2, 2, 2, 853, 854, 3, 2, 2, 2, 854, 136, 3, 2, 2, 2, 855, 856, 7, 37, 2, 2, 856, 857, 7, 122, 2, 2, 857, 858, 3, 2, 2, 2, 858, 859, 5, 141, 71, 2, 859, 860, 5, 141, 71, 2, 860, 861, 5, 141, 71, 2, 861, 862, 5, 141, 71, 2, 862, 138, 3, 2, 2, 2, 863, 864, 5, 133, 67, 2, 864, 868, 7, 48, 2, 2, 865, 867, 7, 50, 2, 2, 866, 865, 3, 2, 2, 2, 867, 870, 3, 2, 2, 2, 868, 866, 3, 2, 2, 2, 868, 869, 3, 2, 2, 2, 869, 871, 3, 2, 2, 2, 870, 868, 3, 2, 2, 2, 871, 872, 5, 133, 67, 2, 872, 140, 3, 2, 2, 2, 873, 874, 9, 4, 2, 2, 874, 142, 3, 2, 2, 2, 875, 876, 7, 60, 2, 2, 876, 144, 3, 2, 2, 2, 877, 878, 9, 5, 2, 2, 878, 146, 3, 2, 2, 2, 879, 880, 9, 6, 2, 2, 880, 148, 3, 2, 2, 2, 881, 882, 9, 7, 2, 2, 882, 150, 3, 2, 2, 2, 883, 886, 9, 8, 2, 2, 884, 886, 5, 157, 79, 2, 885, 883, 3, 2, 2, 2, 885, 884, 3, 2, 2, 2, 886, 152, 3, 2, 2, 2, 887, 890, 9, 9, 2, 2, 888, 890, 5, 157, 79, 2, 889, 887, 3, 2, 2, 2, 889, 888, 3, 2, 2, 2, 890, 154, 3, 2, 2, 2, 891, 894, 9, 10, 2, 2, 892, 894, 5, 157, 79, 2, 893, 891, 3, 2, 2, 2, 893, 892, 3, 2, 2, 2, 894, 156, 3, 2, 2, 2, 895, 896, 7, 36, 2, 2, 896, 897, 7, 36, 2, 2, 897, 158, 3, 2, 2, 2, 898, 899, 9, 11, 2, 2, 899, 160, 3, 2, 2, 2, 900, 901, 7, 60, 2, 2, 901, 902, 7, 99, 2, 2, 902, 903, 7, 110, 2, 2, 903, 904, 7, 110, 2, 2, 904, 905, 7, 47, 2, 2, 905, 906, 7, 117, 2, 2, 906, 907, 7, 118, 2, 2, 907, 908, 7, 99, 2, 2, 908, 909, 7, 118, 2, 2, 909, 910, 7, 107, 2, 2, 910, 911, 7, 117, 2, 2, 911, 912, 7, 118, 2, 2, 912, 913, 7, 107, 2, 2, 913, 914, 7, 101, 2, 2, 914, 915, 7, 117, 2, 2, 915, 162, 3, 2, 2, 2, 916, 917, 7, 60, 2, 2, 917, 918, 7, 99, 2, 2, 918, 919, 7, 117, 2, 2, 919, 920, 7, 117, 2, 2, 920, 921, 7, 103, 2, 2, 921, 922, 7, 116, 2, 2, 922, 923, 7, 118, 2, 2, 923, 924, 7, 107, 2, 2, 924, 925, 7, 113, 2, 2, 925, 926, 7, 112, 2, 2, 926, 927, 7, 47, 2, 2, 927, 928, 7, 117, 2, 2, 928, 929, 7, 118, 2, 2, 929, 930, 7, 99, 2, 2, 930, 931, 7, 101, 2, 2, 931, 932, 7, 109, 2, 2, 932, 933, 7, 47, 2, 2, 933, 934, 7, 110, 2, 2, 934, 935, 7, 103, 2, 2, 935, 936, 7, 120, 2, 2, 936, 937, 7, 103, 2, 2, 937, 938, 7, 110, 2, 2, 938, 939, 7, 117, 2, 2, 939, 164, 3, 2, 2, 2, 940, 941, 7, 60, 2, 2, 941, 942, 7, 99, 2, 2, 942, 943, 7, 119, 2, 2, 943, 944, 7, 118, 2, 2, 944, 945, 7, 106, 2, 2, 945, 946, 7, 113, 2, 2, 946, 947, 7, 116, 2, 2, 947, 948, 7, 117, 2, 2, 948, 166, 3, 2, 2, 2, 949, 950, 7, 60, 2, 2, 950, 951, 7, 101, 2, 2, 951, 952, 7, 99, 2, 2, 952, 953, 7, 118, 2, 2, 953, 954, 7, 103, 2, 2, 954, 955, 7, 105, 2, 2, 955, 956, 7, 113, 2, 2, 956, 957, 7, 116, 2, 2, 957, 958, 7, 123, 2, 2, 958, 168, 3, 2, 2, 2, 959, 960, 7, 60, 2, 2, 960, 961, 7, 101, 2, 2, 961, 962, 7, 106, 2, 2, 962, 963, 7, 99, 2, 2, 963, 964, 7, 107, 2, 2, 964, 965, 7, 112, 2, 2, 965, 966, 7, 99, 2, 2, 966, 967, 7, 100, 2, 2, 967, 968, 7, 110, 2, 2, 968, 969, 7, 103, 2, 2, 969, 170, 3, 2, 2, 2, 970, 971, 7, 60, 2, 2, 971, 972, 7, 102, 2, 2, 972, 973, 7, 103, 2, 2, 973, 974, 7, 104, 2, 2, 974, 975, 7, 107, 2, 2, 975, 976, 7, 112, 2, 2, 976, 977, 7, 107, 2, 2, 977, 978, 7, 118, 2, 2, 978, 979, 7, 107, 2, 2, 979, 980, 7, 113, 2, 2, 980, 981, 7, 112, 2, 2, 981, 172, 3, 2, 2, 2, 982, 983, 7, 60, 2, 2, 983, 984, 7, 102, 2, 2, 984, 985, 7, 107, 2, 2, 985, 986, 7, 99, 2, 2, 986, 987, 7, 105, 2, 2, 987, 988, 7, 112, 2, 2, 988, 989, 7, 113, 2, 2, 989, 990, 7, 117, 2, 2, 990, 991, 7, 118, 2, 2, 991, 992, 7, 107, 2, 2, 992, 993, 7, 101, 2, 2, 993, 994, 7, 47, 2, 2, 994, 995, 7, 113, 2, 2, 995, 996, 7, 119, 2, 2, 996, 997, 7, 118, 2, 2, 997, 998, 7, 114, 2, 2, 998, 999, 7, 119, 2, 2, 999, 1000, 7, 118, 2, 2, 1000, 1001, 7, 47, 2, 2, 1001, 1002, 7, 101, 2, 2, 1002, 1003, 7, 106, 2, 2, 1003, 1004, 7, 99, 2, 2, 1004, 1005, 7, 112, 2, 2, 1005, 1006, 7, 112, 2, 2, 1006, 1007, 7, 103, 2, 2, 1007, 1008, 7, 110, 2, 2, 1008, 174, 3, 2, 2, 2, 1009, 1010, 7, 60, 2, 2, 1010, 1011, 7, 103, 2, 2, 1011, 1012, 7, 116, 2, 2, 1012, 1013, 7, 116, 2, 2, 1013, 1014, 7, 113, 2, 2, 1014, 1015, 7, 116, 2, 2, 1015, 1016, 7, 47, 2, 2, 1016, 1017, 7, 100, 2, 2, 1017, 1018, 7, 103, 2, 2, 1018, 1019, 7, 106, 2, 2, 1019, 1020, 7, 99, 2, 2, 1020, 1021, 7, 120, 2, 2, 1021, 1022, 7, 107, 2, 2, 1022, 1023, 7, 113, 2, 2, 1023, 1024, 7, 116, 2, 2, 1024, 176, 3, 2, 2, 2, 1025, 1026, 7, 60, 2, 2, 1026, 1027, 7, 103, 2, 2, 1027, 1028, 7, 122, 2, 2, 1028, 1029, 7, 118, 2, 2, 1029, 1030, 7, 103, 2, 2, 1030, 1031, 7, 112, 2, 2, 1031, 1032, 7, 117, 2, 2, 1032, 1033, 7, 107, 2, 2, 1033, 1034, 7, 113, 2, 2, 1034, 1035, 7, 112, 2, 2, 1035, 1036, 7, 117, 2, 2, 1036, 178, 3, 2, 2, 2, 1037, 1038, 7, 60, 2, 2, 1038, 1039, 7, 104, 2, 2, 1039, 1040, 7, 119, 2, 2, 1040, 1041, 7, 112, 2, 2, 1041, 1042, 7, 117, 2, 2, 1042, 180, 3, 2, 2, 2, 1043, 1044, 7, 60, 2, 2, 1044, 1045, 7, 104, 2, 2, 1045, 1046, 7, 119, 2, 2, 1046, 1047, 7, 112, 2, 2, 1047, 1048, 7, 117, 2, 2, 1048, 1049, 7, 47, 2, 2, 1049, 1050, 7, 102, 2, 2, 1050, 1051, 7, 103, 2, 2, 1051, 1052, 7, 117, 2, 2, 1052, 1053, 7, 101, 2, 2, 1053, 1054, 7, 116, 2, 2, 1054, 1055, 7, 107, 2, 2, 1055, 1056, 7, 114, 2, 2, 1056, 1057, 7, 118, 2, 2, 1057, 1058, 7, 107, 2, 2, 1058, 1059, 7, 113, 2, 2, 1059, 1060, 7, 112, 2, 2, 1060, 182, 3, 2, 2, 2, 1061, 1062, 7, 60, 2, 2, 1062, 1063, 7, 105, 2, 2, 1063, 1064, 7, 110, 2, 2, 1064, 1065, 7, 113, 2, 2, 1065, 1066, 7, 100, 2, 2, 1066, 1067, 7, 99, 2, 2, 1067, 1068, 7, 110, 2, 2, 1068, 1069, 7, 47, 2, 2, 1069, 1070, 7, 102, 2, 2, 1070, 1071, 7, 103, 2, 2, 1071, 1072, 7, 101, 2, 2, 1072, 1073, 7, 110, 2, 2, 1073, 1074, 7, 99, 2, 2, 1074, 1075, 7, 116, 2, 2, 1075, 1076, 7, 99, 2, 2, 1076, 1077, 7, 118, 2, 2, 1077, 1078, 7, 107, 2, 2, 1078, 1079, 7, 113, 2, 2, 1079, 1080, 7, 112, 2, 2, 1080, 1081, 7, 117, 2, 2, 1081, 184, 3, 2, 2, 2, 1082, 1083, 7, 60, 2, 2, 1083, 1084, 7, 107, 2, 2, 1084, 1085, 7, 112, 2, 2, 1085, 1086, 7, 118, 2, 2, 1086, 1087, 7, 103, 2, 2, 1087, 1088, 7, 116, 2, 2, 1088, 1089, 7, 99, 2, 2, 1089, 1090, 7, 101, 2, 2, 1090, 1091, 7, 118, 2, 2, 1091, 1092, 7, 107, 2, 2, 1092, 1093, 7, 120, 2, 2, 1093, 1094, 7, 103, 2, 2, 1094, 1095, 7, 47, 2, 2, 1095, 1096, 7, 111, 2, 2, 1096, 1097, 7, 113, 2, 2, 1097, 1098, 7, 102, 2, 2, 1098, 1099, 7, 103, 2, 2, 1099, 186, 3, 2, 2, 2, 1100, 1101, 7, 60, 2, 2, 1101, 1102, 7, 110, 2, 2, 1102, 1103, 7, 99, 2, 2, 1103, 1104, 7, 112, 2, 2, 1104, 1105, 7, 105, 2, 2, 1105, 1106, 7, 119, 2, 2, 1106, 1107, 7, 99, 2, 2, 1107, 1108, 7, 105, 2, 2, 1108, 1109, 7, 103, 2, 2, 1109, 188, 3, 2, 2, 2, 1110, 1111, 7, 60, 2, 2, 1111, 1112, 7, 110, 2, 2, 1112, 1113, 7, 103, 2, 2, 1113, 1114, 7, 104, 2, 2, 1114, 1115, 7, 118, 2, 2, 1115, 1116, 7, 47, 2, 2, 1116, 1117, 7, 99, 2, 2, 1117, 1118, 7, 117, 2, 2, 1118, 1119, 7, 117, 2, 2, 1119, 1120, 7, 113, 2, 2, 1120, 1121, 7, 101, 2, 2, 1121, 190, 3, 2, 2, 2, 1122, 1123, 7, 60, 2, 2, 1123, 1124, 7, 110, 2, 2, 1124, 1125, 7, 107, 2, 2, 1125, 1126, 7, 101, 2, 2, 1126, 1127, 7, 103, 2, 2, 1127, 1128, 7, 112, 2, 2, 1128, 1129, 7, 117, 2, 2, 1129, 1130, 7, 103, 2, 2, 1130, 192, 3, 2, 2, 2, 1131, 1132, 7, 60, 2, 2, 1132, 1133, 7, 112, 2, 2, 1133, 1134, 7, 99, 2, 2, 1134, 1135, 7, 111, 2, 2, 1135, 1136, 7, 103, 2, 2, 1136, 1137, 7, 102, 2, 2, 1137, 194, 3, 2, 2, 2, 1138, 1139, 7, 60, 2, 2, 1139, 1140, 7, 112, 2, 2, 1140, 1141, 7, 99, 2, 2, 1141, 1142, 7, 111, 2, 2, 1142, 1143, 7, 103, 2, 2, 1143, 196, 3, 2, 2, 2, 1144, 1145, 7, 60, 2, 2, 1145, 1146, 7, 112, 2, 2, 1146, 1147, 7, 113, 2, 2, 1147, 1148, 7, 118, 2, 2, 1148, 1149, 7, 103, 2, 2, 1149, 1150, 7, 117, 2, 2, 1150, 198, 3, 2, 2, 2, 1151, 1152, 7, 60, 2, 2, 1152, 1153, 7, 114, 2, 2, 1153, 1154, 7, 99, 2, 2, 1154, 1155, 7, 118, 2, 2, 1155, 1156, 7, 118, 2, 2, 1156, 1157, 7, 103, 2, 2, 1157, 1158, 7, 116, 2, 2, 1158, 1159, 7, 112, 2, 2, 1159, 200, 3, 2, 2, 2, 1160, 1161, 7, 60, 2, 2, 1161, 1162, 7, 114, 2, 2, 1162, 1163, 7, 116, 2, 2, 1163, 1164, 7, 107, 2, 2, 1164, 1165, 7, 112, 2, 2, 1165, 1166, 7, 118, 2, 2, 1166, 1167, 7, 47, 2, 2, 1167, 1168, 7, 117, 2, 2, 1168, 1169, 7, 119, 2, 2, 1169, 1170, 7, 101, 2, 2, 1170, 1171, 7, 101, 2, 2, 1171, 1172, 7, 103, 2, 2, 1172, 1173, 7, 117, 2, 2, 1173, 1174, 7, 117, 2, 2, 1174, 202, 3, 2, 2, 2, 1175, 1176, 7, 60, 2, 2, 1176, 1177, 7, 114, 2, 2, 1177, 1178, 7, 116, 2, 2, 1178, 1179, 7, 113, 2, 2, 1179, 1180, 7, 102, 2, 2, 1180, 1181, 7, 119, 2, 2, 1181, 1182, 7, 101, 2, 2, 1182, 1183, 7, 103, 2, 2, 1183, 1184, 7, 47, 2, 2, 1184, 1185, 7, 99, 2, 2, 1185, 1186, 7, 117, 2, 2, 1186, 1187, 7, 117, 2, 2, 1187, 1188, 7, 103, 2, 2, 1188, 1189, 7, 116, 2, 2, 1189, 1190, 7, 118, 2, 2, 1190, 1191, 7, 107, 2, 2, 1191, 1192, 7, 113, 2, 2, 1192, 1193, 7, 112, 2, 2, 1193, 1194, 7, 117, 2, 2, 1194, 204, 3, 2, 2, 2, 1195, 1196, 7, 60, 2, 2, 1196, 1197, 7, 114, 2, 2, 1197, 1198, 7, 116, 2, 2, 1198, 1199, 7, 113, 2, 2, 1199, 1200, 7, 102, 2, 2, 1200, 1201, 7, 119, 2, 2, 1201, 1202, 7, 101, 2, 2, 1202, 1203, 7, 103, 2, 2, 1203, 1204, 7, 47, 2, 2, 1204, 1205, 7, 99, 2, 2, 1205, 1206, 7, 117, 2, 2, 1206, 1207, 7, 117, 2, 2, 1207, 1208, 7, 107, 2, 2, 1208, 1209, 7, 105, 2, 2, 1209, 1210, 7, 112, 2, 2, 1210, 1211, 7, 111, 2, 2, 1211, 1212, 7, 103, 2, 2, 1212, 1213, 7, 112, 2, 2, 1213, 1214, 7, 118, 2, 2, 1214, 1215, 7, 117, 2, 2, 1215, 206, 3, 2, 2, 2, 1216, 1217, 7, 60, 2, 2, 1217, 1218, 7, 114, 2, 2, 1218, 1219, 7, 116, 2, 2, 1219, 1220, 7, 113, 2, 2, 1220, 1221, 7, 102, 2, 2, 1221, 1222, 7, 119, 2, 2, 1222, 1223, 7, 101, 2, 2, 1223, 1224, 7, 103, 2, 2, 1224, 1225, 7, 47, 2, 2, 1225, 1226, 7, 111, 2, 2, 1226, 1227, 7, 113, 2, 2, 1227, 1228, 7, 102, 2, 2, 1228, 1229, 7, 103, 2, 2, 1229, 1230, 7, 110, 2, 2, 1230, 1231, 7, 117, 2, 2, 1231, 208, 3, 2, 2, 2, 1232, 1233, 7, 60, 2, 2, 1233, 1234, 7, 114, 2, 2, 1234, 1235, 7, 116, 2, 2, 1235, 1236, 7, 113, 2, 2, 1236, 1237, 7, 102, 2, 2, 1237, 1238, 7, 119, 2, 2, 1238, 1239, 7, 101, 2, 2, 1239, 1240, 7, 103, 2, 2, 1240, 1241, 7, 47, 2, 2, 1241, 1242, 7, 114, 2, 2, 1242, 1243, 7, 116, 2, 2, 1243, 1244, 7, 113, 2, 2, 1244, 1245, 7, 113, 2, 2, 1245, 1246, 7, 104, 2, 2, 1246, 1247, 7, 117, 2, 2, 1247, 210, 3, 2, 2, 2, 1248, 1249, 7, 60, 2, 2, 1249, 1250, 7, 114, 2, 2, 1250, 1251, 7, 116, 2, 2, 1251, 1252, 7, 113, 2, 2, 1252, 1253, 7, 102, 2, 2, 1253, 1254, 7, 119, 2, 2, 1254, 1255, 7, 101, 2, 2, 1255, 1256, 7, 103, 2, 2, 1256, 1257, 7, 47, 2, 2, 1257, 1258, 7, 119, 2, 2, 1258, 1259, 7, 112, 2, 2, 1259, 1260, 7, 117, 2, 2, 1260, 1261, 7, 99, 2, 2, 1261, 1262, 7, 118, 2, 2, 1262, 1263, 7, 47, 2, 2, 1263, 1264, 7, 99, 2, 2, 1264, 1265, 7, 117, 2, 2, 1265, 1266, 7, 117, 2, 2, 1266, 1267, 7, 119, 2, 2, 1267, 1268, 7, 111, 2, 2, 1268, 1269, 7, 114, 2, 2, 1269, 1270, 7, 118, 2, 2, 1270, 1271, 7, 107, 2, 2, 1271, 1272, 7, 113, 2, 2, 1272, 1273, 7, 112, 2, 2, 1273, 1274, 7, 117, 2, 2, 1274, 212, 3, 2, 2, 2, 1275, 1276, 7, 60, 2, 2, 1276, 1277, 7, 114, 2, 2, 1277, 1278, 7, 116, 2, 2, 1278, 1279, 7, 113, 2, 2, 1279, 1280, 7, 102, 2, 2, 1280, 1281, 7, 119, 2, 2, 1281, 1282, 7, 101, 2, 2, 1282, 1283, 7, 103, 2, 2, 1283, 1284, 7, 47, 2, 2, 1284, 1285, 7, 119, 2, 2, 1285, 1286, 7, 112, 2, 2, 1286, 1287, 7, 117, 2, 2, 1287, 1288, 7, 99, 2, 2, 1288, 1289, 7, 118, 2, 2, 1289, 1290, 7, 47, 2, 2, 1290, 1291, 7, 101, 2, 2, 1291, 1292, 7, 113, 2, 2, 1292, 1293, 7, 116, 2, 2, 1293, 1294, 7, 103, 2, 2, 1294, 1295, 7, 117, 2, 2, 1295, 214, 3, 2, 2, 2, 1296, 1297, 7, 60, 2, 2, 1297, 1298, 7, 116, 2, 2, 1298, 1299, 7, 99, 2, 2, 1299, 1300, 7, 112, 2, 2, 1300, 1301, 7, 102, 2, 2, 1301, 1302, 7, 113, 2, 2, 1302, 1303, 7, 111, 2, 2, 1303, 1304, 7, 47, 2, 2, 1304, 1305, 7, 117, 2, 2, 1305, 1306, 7, 103, 2, 2, 1306, 1307, 7, 103, 2, 2, 1307, 1308, 7, 102, 2, 2, 1308, 216, 3, 2, 2, 2, 1309, 1310, 7, 60, 2, 2, 1310, 1311, 7, 116, 2, 2, 1311, 1312, 7, 103, 2, 2, 1312, 1313, 7, 99, 2, 2, 1313, 1314, 7, 117, 2, 2, 1314, 1315, 7, 113, 2, 2, 1315, 1316, 7, 112, 2, 2, 1316, 1317, 7, 47, 2, 2, 1317, 1318, 7, 119, 2, 2, 1318, 1319, 7, 112, 2, 2, 1319, 1320, 7, 109, 2, 2, 1320, 1321, 7, 112, 2, 2, 1321, 1322, 7, 113, 2, 2, 1322, 1323, 7, 121, 2, 2, 1323, 1324, 7, 112, 2, 2, 1324, 218, 3, 2, 2, 2, 1325, 1326, 7, 60, 2, 2, 1326, 1327, 7, 116, 2, 2, 1327, 1328, 7, 103, 2, 2, 1328, 1329, 7, 105, 2, 2, 1329, 1330, 7, 119, 2, 2, 1330, 1331, 7, 110, 2, 2, 1331, 1332, 7, 99, 2, 2, 1332, 1333, 7, 116, 2, 2, 1333, 1334, 7, 47, 2, 2, 1334, 1335, 7, 113, 2, 2, 1335, 1336, 7, 119, 2, 2, 1336, 1337, 7, 118, 2, 2, 1337, 1338, 7, 114, 2, 2, 1338, 1339, 7, 119, 2, 2, 1339, 1340, 7, 118, 2, 2, 1340, 1341, 7, 47, 2, 2, 1341, 1342, 7, 101, 2, 2, 1342, 1343, 7, 106, 2, 2, 1343, 1344, 7, 99, 2, 2, 1344, 1345, 7, 112, 2, 2, 1345, 1346, 7, 112, 2, 2, 1346, 1347, 7, 103, 2, 2, 1347, 1348, 7, 110, 2, 2, 1348, 220, 3, 2, 2, 2, 1349, 1350, 7, 60, 2, 2, 1350, 1351, 7, 116, 2, 2, 1351, 1352, 7, 103, 2, 2, 1352, 1353, 7, 114, 2, 2, 1353, 1354, 7, 116, 2, 2, 1354, 1355, 7, 113, 2, 2, 1355, 1356, 7, 102, 2, 2, 1356, 1357, 7, 119, 2, 2, 1357, 1358, 7, 101, 2, 2, 1358, 1359, 7, 107, 2, 2, 1359, 1360, 7, 100, 2, 2, 1360, 1361, 7, 110, 2, 2, 1361, 1362, 7, 103, 2, 2, 1362, 1363, 7, 47, 2, 2, 1363, 1364, 7, 116, 2, 2, 1364, 1365, 7, 103, 2, 2, 1365, 1366, 7, 117, 2, 2, 1366, 1367, 7, 113, 2, 2, 1367, 1368, 7, 119, 2, 2, 1368, 1369, 7, 116, 2, 2, 1369, 1370, 7, 101, 2, 2, 1370, 1371, 7, 103, 2, 2, 1371, 1372, 7, 47, 2, 2, 1372, 1373, 7, 110, 2, 2, 1373, 1374, 7, 107, 2, 2, 1374, 1375, 7, 111, 2, 2, 1375, 1376, 7, 107, 2, 2, 1376, 1377, 7, 118, 2, 2, 1377, 222, 3, 2, 2, 2, 1378, 1379, 7, 60, 2, 2, 1379, 1380, 7, 116, 2, 2, 1380, 1381, 7, 107, 2, 2, 1381, 1382, 7, 105, 2, 2, 1382, 1383, 7, 106, 2, 2, 1383, 1384, 7, 118, 2, 2, 1384, 1385, 7, 47, 2, 2, 1385, 1386, 7, 99, 2, 2, 1386, 1387, 7, 117, 2, 2, 1387, 1388, 7, 117, 2, 2, 1388, 1389, 7, 113, 2, 2, 1389, 1390, 7, 101, 2, 2, 1390, 224, 3, 2, 2, 2, 1391, 1392, 7, 60, 2, 2, 1392, 1393, 7, 117, 2, 2, 1393, 1394, 7, 111, 2, 2, 1394, 1395, 7, 118, 2, 2, 1395, 1396, 7, 47, 2, 2, 1396, 1397, 7, 110, 2, 2, 1397, 1398, 7, 107, 2, 2, 1398, 1399, 7, 100, 2, 2, 1399, 1400, 7, 47, 2, 2, 1400, 1401, 7, 120, 2, 2, 1401, 1402, 7, 103, 2, 2, 1402, 1403, 7, 116, 2, 2, 1403, 1404, 7, 117, 2, 2, 1404, 1405, 7, 107, 2, 2, 1405, 1406, 7, 113, 2, 2, 1406, 1407, 7, 112, 2, 2, 1407, 226, 3, 2, 2, 2, 1408, 1409, 7, 60, 2, 2, 1409, 1410, 7, 117, 2, 2, 1410, 1411, 7, 113, 2, 2, 1411, 1412, 7, 116, 2, 2, 1412, 1413, 7, 118, 2, 2, 1413, 1414, 7, 117, 2, 2, 1414, 228, 3, 2, 2, 2, 1415, 1416, 7, 60, 2, 2, 1416, 1417, 7, 117, 2, 2, 1417, 1418, 7, 113, 2, 2, 1418, 1419, 7, 116, 2, 2, 1419, 1420, 7, 118, 2, 2, 1420, 1421, 7, 117, 2, 2, 1421, 1422, 7, 47, 2, 2, 1422, 1423, 7, 102, 2, 2, 1423, 1424, 7, 103, 2, 2, 1424, 1425, 7, 117, 2, 2, 1425, 1426, 7, 101, 2, 2, 1426, 1427, 7, 116, 2, 2, 1427, 1428, 7, 107, 2, 2, 1428, 1429, 7, 114, 2, 2, 1429, 1430, 7, 118, 2, 2, 1430, 1431, 7, 107, 2, 2, 1431, 1432, 7, 113, 2, 2, 1432, 1433, 7, 112, 2, 2, 1433, 230, 3, 2, 2, 2, 1434, 1435, 7, 60, 2, 2, 1435, 1436, 7, 117, 2, 2, 1436, 1437, 7, 113, 2, 2, 1437, 1438, 7, 119, 2, 2, 1438, 1439, 7, 116, 2, 2, 1439, 1440, 7, 101, 2, 2, 1440, 1441, 7, 103, 2, 2, 1441, 232, 3, 2, 2, 2, 1442, 1443, 7, 60, 2, 2, 1443, 1444, 7, 117, 2, 2, 1444, 1445, 7, 118, 2, 2, 1445, 1446, 7, 99, 2, 2, 1446, 1447, 7, 118, 2, 2, 1447, 1448, 7, 119, 2, 2, 1448, 1449, 7, 117, 2, 2, 1449, 234, 3, 2, 2, 2, 1450, 1451, 7, 60, 2, 2, 1451, 1452, 7, 118, 2, 2, 1452, 1453, 7, 106, 2, 2, 1453, 1454, 7, 103, 2, 2, 1454, 1455, 7, 113, 2, 2, 1455, 1456, 7, 116, 2, 2, 1456, 1457, 7, 107, 2, 2, 1457, 1458, 7, 103, 2, 2, 1458, 1459, 7, 117, 2, 2, 1459, 236, 3, 2, 2, 2, 1460, 1461, 7, 60, 2, 2, 1461, 1462, 7, 120, 2, 2, 1462, 1463, 7, 99, 2, 2, 1463, 1464, 7, 110, 2, 2, 1464, 1465, 7, 119, 2, 2, 1465, 1466, 7, 103, 2, 2, 1466, 1467, 7, 117, 2, 2, 1467, 238, 3, 2, 2, 2, 1468, 1469, 7, 60, 2, 2, 1469, 1470, 7, 120, 2, 2, 1470, 1471, 7, 103, 2, 2, 1471, 1472, 7, 116, 2, 2, 1472, 1473, 7, 100, 2, 2, 1473, 1474, 7, 113, 2, 2, 1474, 1475, 7, 117, 2, 2, 1475, 1476, 7, 107, 2, 2, 1476, 1477, 7, 118, 2, 2, 1477, 1478, 7, 123, 2, 2, 1478, 240, 3, 2, 2, 2, 1479, 1480, 7, 60, 2, 2, 1480, 1481, 7, 120, 2, 2, 1481, 1482, 7, 103, 2, 2, 1482, 1483, 7, 116, 2, 2, 1483, 1484, 7, 117, 2, 2, 1484, 1485, 7, 107, 2, 2, 1485, 1486, 7, 113, 2, 2, 1486, 1487, 7, 112, 2, 2, 1487, 242, 3, 2, 2, 2, 1488, 1493, 5, 147, 74, 2, 1489, 1492, 5, 145, 73, 2, 1490, 1492, 5, 147, 74, 2, 1491, 1489, 3, 2, 2, 2, 1491, 1490, 3, 2, 2, 2, 1492, 1495, 3, 2, 2, 2, 1493, 1491, 3, 2, 2, 2, 1493, 1494, 3, 2, 2, 2, 1494, 244, 3, 2, 2, 2, 1495, 1493, 3, 2, 2, 2, 1496, 1498, 9, 11, 2, 2, 1497, 1496, 3, 2, 2, 2, 1498, 1499, 3, 2, 2, 2, 1499, 1497, 3, 2, 2, 2, 1499, 1500, 3, 2, 2, 2, 1500, 1501, 3, 2, 2, 2, 1501, 1502, 8, 123, 2, 2, 1502, 246, 3, 2, 2, 2, 18, 2, 251, 265, 267, 274, 276, 845, 848, 853, 868, 885, 889, 893, 1491, 1493, 1499, 3, 8, 2, 2] \ No newline at end of file diff --git a/C++Verifier/src/antlr4/SMTLIBv2Lexer.tokens b/C++Verifier/src/antlr4/SMTLIBv2Lexer.tokens new file mode 100644 index 0000000..3ec2173 --- /dev/null +++ b/C++Verifier/src/antlr4/SMTLIBv2Lexer.tokens @@ -0,0 +1,217 @@ +Comment=1 +ParOpen=2 +ParClose=3 +Semicolon=4 +String=5 +QuotedSymbol=6 +PS_Not=7 +PS_Bool=8 +PS_ContinuedExecution=9 +PS_Error=10 +PS_False=11 +PS_ImmediateExit=12 +PS_Incomplete=13 +PS_Logic=14 +PS_Memout=15 +PS_Sat=16 +PS_Success=17 +PS_Theory=18 +PS_True=19 +PS_Unknown=20 +PS_Unsupported=21 +PS_Unsat=22 +CMD_Assert=23 +CMD_CheckSat=24 +CMD_CheckSatAssuming=25 +CMD_DeclareConst=26 +CMD_DeclareDatatype=27 +CMD_DeclareDatatypes=28 +CMD_DeclareFun=29 +CMD_DeclareSort=30 +CMD_DefineFun=31 +CMD_DefineFunRec=32 +CMD_DefineFunsRec=33 +CMD_DefineSort=34 +CMD_Echo=35 +CMD_Exit=36 +CMD_GetAssertions=37 +CMD_GetAssignment=38 +CMD_GetInfo=39 +CMD_GetModel=40 +CMD_GetOption=41 +CMD_GetProof=42 +CMD_GetUnsatAssumptions=43 +CMD_GetUnsatCore=44 +CMD_GetValue=45 +CMD_Pop=46 +CMD_Push=47 +CMD_Reset=48 +CMD_ResetAssertions=49 +CMD_SetInfo=50 +CMD_SetLogic=51 +CMD_SetOption=52 +GRW_Exclamation=53 +GRW_Underscore=54 +GRW_As=55 +GRW_Binary=56 +GRW_Decimal=57 +GRW_Exists=58 +GRW_Hexadecimal=59 +GRW_Forall=60 +GRW_Let=61 +GRW_Match=62 +GRW_Numeral=63 +GRW_Par=64 +GRW_String=65 +Numeral=66 +Binary=67 +HexDecimal=68 +Decimal=69 +Colon=70 +PK_AllStatistics=71 +PK_AssertionStackLevels=72 +PK_Authors=73 +PK_Category=74 +PK_Chainable=75 +PK_Definition=76 +PK_DiagnosticOutputChannel=77 +PK_ErrorBehaviour=78 +PK_Extension=79 +PK_Funs=80 +PK_FunsDescription=81 +PK_GlobalDeclarations=82 +PK_InteractiveMode=83 +PK_Language=84 +PK_LeftAssoc=85 +PK_License=86 +PK_Named=87 +PK_Name=88 +PK_Notes=89 +PK_Pattern=90 +PK_PrintSuccess=91 +PK_ProduceAssertions=92 +PK_ProduceAssignments=93 +PK_ProduceModels=94 +PK_ProduceProofs=95 +PK_ProduceUnsatAssumptions=96 +PK_ProduceUnsatCores=97 +PK_RandomSeed=98 +PK_ReasonUnknown=99 +PK_RegularOutputChannel=100 +PK_ReproducibleResourceLimit=101 +PK_RightAssoc=102 +PK_SmtLibVersion=103 +PK_Sorts=104 +PK_SortsDescription=105 +PK_Source=106 +PK_Status=107 +PK_Theories=108 +PK_Values=109 +PK_Verbosity=110 +PK_Version=111 +UndefinedSymbol=112 +WS=113 +'('=2 +')'=3 +';'=4 +'not'=7 +'Bool'=8 +'continued-execution'=9 +'error'=10 +'false'=11 +'immediate-exit'=12 +'incomplete'=13 +'logic'=14 +'memout'=15 +'sat'=16 +'success'=17 +'theory'=18 +'true'=19 +'unknown'=20 +'unsupported'=21 +'unsat'=22 +'assert'=23 +'check-sat'=24 +'check-sat-assuming'=25 +'declare-const'=26 +'declare-datatype'=27 +'declare-datatypes'=28 +'declare-fun'=29 +'declare-sort'=30 +'define-fun'=31 +'define-fun-rec'=32 +'define-funs-rec'=33 +'define-sort'=34 +'echo'=35 +'exit'=36 +'get-assertions'=37 +'get-assignment'=38 +'get-info'=39 +'get-model'=40 +'get-option'=41 +'get-proof'=42 +'get-unsat-assumptions'=43 +'get-unsat-core'=44 +'get-value'=45 +'pop'=46 +'push'=47 +'reset'=48 +'reset-assertions'=49 +'set-info'=50 +'set-logic'=51 +'set-option'=52 +'!'=53 +'_'=54 +'as'=55 +'BINARY'=56 +'DECIMAL'=57 +'exists'=58 +'HEXADECIMAL'=59 +'forall'=60 +'let'=61 +'match'=62 +'NUMERAL'=63 +'par'=64 +'string'=65 +':'=70 +':all-statistics'=71 +':assertion-stack-levels'=72 +':authors'=73 +':category'=74 +':chainable'=75 +':definition'=76 +':diagnostic-output-channel'=77 +':error-behavior'=78 +':extensions'=79 +':funs'=80 +':funs-description'=81 +':global-declarations'=82 +':interactive-mode'=83 +':language'=84 +':left-assoc'=85 +':license'=86 +':named'=87 +':name'=88 +':notes'=89 +':pattern'=90 +':print-success'=91 +':produce-assertions'=92 +':produce-assignments'=93 +':produce-models'=94 +':produce-proofs'=95 +':produce-unsat-assumptions'=96 +':produce-unsat-cores'=97 +':random-seed'=98 +':reason-unknown'=99 +':regular-output-channel'=100 +':reproducible-resource-limit'=101 +':right-assoc'=102 +':smt-lib-version'=103 +':sorts'=104 +':sorts-description'=105 +':source'=106 +':status'=107 +':theories'=108 +':values'=109 +':verbosity'=110 +':version'=111 diff --git a/C++Verifier/src/antlr4/SMTLIBv2Listener.cpp b/C++Verifier/src/antlr4/SMTLIBv2Listener.cpp new file mode 100644 index 0000000..0c2518b --- /dev/null +++ b/C++Verifier/src/antlr4/SMTLIBv2Listener.cpp @@ -0,0 +1,7 @@ + +// Generated from SMTLIBv2.g4 by ANTLR 4.8 + + +#include "SMTLIBv2Listener.h" + + diff --git a/C++Verifier/src/antlr4/SMTLIBv2Listener.h b/C++Verifier/src/antlr4/SMTLIBv2Listener.h new file mode 100644 index 0000000..7739e87 --- /dev/null +++ b/C++Verifier/src/antlr4/SMTLIBv2Listener.h @@ -0,0 +1,307 @@ + +// Generated from SMTLIBv2.g4 by ANTLR 4.8 + +#pragma once + + +#include "antlr4-runtime.h" +#include "SMTLIBv2Parser.h" + + +/** + * This interface defines an abstract listener for a parse tree produced by SMTLIBv2Parser. + */ +class SMTLIBv2Listener : public antlr4::tree::ParseTreeListener { +public: + + virtual void enterStart(SMTLIBv2Parser::StartContext *ctx) = 0; + virtual void exitStart(SMTLIBv2Parser::StartContext *ctx) = 0; + + virtual void enterResponse(SMTLIBv2Parser::ResponseContext *ctx) = 0; + virtual void exitResponse(SMTLIBv2Parser::ResponseContext *ctx) = 0; + + virtual void enterGeneralReservedWord(SMTLIBv2Parser::GeneralReservedWordContext *ctx) = 0; + virtual void exitGeneralReservedWord(SMTLIBv2Parser::GeneralReservedWordContext *ctx) = 0; + + virtual void enterSimpleSymbol(SMTLIBv2Parser::SimpleSymbolContext *ctx) = 0; + virtual void exitSimpleSymbol(SMTLIBv2Parser::SimpleSymbolContext *ctx) = 0; + + virtual void enterQuotedSymbol(SMTLIBv2Parser::QuotedSymbolContext *ctx) = 0; + virtual void exitQuotedSymbol(SMTLIBv2Parser::QuotedSymbolContext *ctx) = 0; + + virtual void enterPredefSymbol(SMTLIBv2Parser::PredefSymbolContext *ctx) = 0; + virtual void exitPredefSymbol(SMTLIBv2Parser::PredefSymbolContext *ctx) = 0; + + virtual void enterPredefKeyword(SMTLIBv2Parser::PredefKeywordContext *ctx) = 0; + virtual void exitPredefKeyword(SMTLIBv2Parser::PredefKeywordContext *ctx) = 0; + + virtual void enterSymbol(SMTLIBv2Parser::SymbolContext *ctx) = 0; + virtual void exitSymbol(SMTLIBv2Parser::SymbolContext *ctx) = 0; + + virtual void enterNumeral(SMTLIBv2Parser::NumeralContext *ctx) = 0; + virtual void exitNumeral(SMTLIBv2Parser::NumeralContext *ctx) = 0; + + virtual void enterDecimal(SMTLIBv2Parser::DecimalContext *ctx) = 0; + virtual void exitDecimal(SMTLIBv2Parser::DecimalContext *ctx) = 0; + + virtual void enterHexadecimal(SMTLIBv2Parser::HexadecimalContext *ctx) = 0; + virtual void exitHexadecimal(SMTLIBv2Parser::HexadecimalContext *ctx) = 0; + + virtual void enterBinary(SMTLIBv2Parser::BinaryContext *ctx) = 0; + virtual void exitBinary(SMTLIBv2Parser::BinaryContext *ctx) = 0; + + virtual void enterString(SMTLIBv2Parser::StringContext *ctx) = 0; + virtual void exitString(SMTLIBv2Parser::StringContext *ctx) = 0; + + virtual void enterKeyword(SMTLIBv2Parser::KeywordContext *ctx) = 0; + virtual void exitKeyword(SMTLIBv2Parser::KeywordContext *ctx) = 0; + + virtual void enterSpec_constant(SMTLIBv2Parser::Spec_constantContext *ctx) = 0; + virtual void exitSpec_constant(SMTLIBv2Parser::Spec_constantContext *ctx) = 0; + + virtual void enterS_expr(SMTLIBv2Parser::S_exprContext *ctx) = 0; + virtual void exitS_expr(SMTLIBv2Parser::S_exprContext *ctx) = 0; + + virtual void enterIndex(SMTLIBv2Parser::IndexContext *ctx) = 0; + virtual void exitIndex(SMTLIBv2Parser::IndexContext *ctx) = 0; + + virtual void enterIdentifier(SMTLIBv2Parser::IdentifierContext *ctx) = 0; + virtual void exitIdentifier(SMTLIBv2Parser::IdentifierContext *ctx) = 0; + + virtual void enterAttribute_value(SMTLIBv2Parser::Attribute_valueContext *ctx) = 0; + virtual void exitAttribute_value(SMTLIBv2Parser::Attribute_valueContext *ctx) = 0; + + virtual void enterAttribute(SMTLIBv2Parser::AttributeContext *ctx) = 0; + virtual void exitAttribute(SMTLIBv2Parser::AttributeContext *ctx) = 0; + + virtual void enterSort(SMTLIBv2Parser::SortContext *ctx) = 0; + virtual void exitSort(SMTLIBv2Parser::SortContext *ctx) = 0; + + virtual void enterQual_identifer(SMTLIBv2Parser::Qual_identiferContext *ctx) = 0; + virtual void exitQual_identifer(SMTLIBv2Parser::Qual_identiferContext *ctx) = 0; + + virtual void enterVar_binding(SMTLIBv2Parser::Var_bindingContext *ctx) = 0; + virtual void exitVar_binding(SMTLIBv2Parser::Var_bindingContext *ctx) = 0; + + virtual void enterSorted_var(SMTLIBv2Parser::Sorted_varContext *ctx) = 0; + virtual void exitSorted_var(SMTLIBv2Parser::Sorted_varContext *ctx) = 0; + + virtual void enterPattern(SMTLIBv2Parser::PatternContext *ctx) = 0; + virtual void exitPattern(SMTLIBv2Parser::PatternContext *ctx) = 0; + + virtual void enterMatch_case(SMTLIBv2Parser::Match_caseContext *ctx) = 0; + virtual void exitMatch_case(SMTLIBv2Parser::Match_caseContext *ctx) = 0; + + virtual void enterTerm(SMTLIBv2Parser::TermContext *ctx) = 0; + virtual void exitTerm(SMTLIBv2Parser::TermContext *ctx) = 0; + + virtual void enterSort_symbol_decl(SMTLIBv2Parser::Sort_symbol_declContext *ctx) = 0; + virtual void exitSort_symbol_decl(SMTLIBv2Parser::Sort_symbol_declContext *ctx) = 0; + + virtual void enterMeta_spec_constant(SMTLIBv2Parser::Meta_spec_constantContext *ctx) = 0; + virtual void exitMeta_spec_constant(SMTLIBv2Parser::Meta_spec_constantContext *ctx) = 0; + + virtual void enterFun_symbol_decl(SMTLIBv2Parser::Fun_symbol_declContext *ctx) = 0; + virtual void exitFun_symbol_decl(SMTLIBv2Parser::Fun_symbol_declContext *ctx) = 0; + + virtual void enterPar_fun_symbol_decl(SMTLIBv2Parser::Par_fun_symbol_declContext *ctx) = 0; + virtual void exitPar_fun_symbol_decl(SMTLIBv2Parser::Par_fun_symbol_declContext *ctx) = 0; + + virtual void enterTheory_attribute(SMTLIBv2Parser::Theory_attributeContext *ctx) = 0; + virtual void exitTheory_attribute(SMTLIBv2Parser::Theory_attributeContext *ctx) = 0; + + virtual void enterTheory_decl(SMTLIBv2Parser::Theory_declContext *ctx) = 0; + virtual void exitTheory_decl(SMTLIBv2Parser::Theory_declContext *ctx) = 0; + + virtual void enterLogic_attribue(SMTLIBv2Parser::Logic_attribueContext *ctx) = 0; + virtual void exitLogic_attribue(SMTLIBv2Parser::Logic_attribueContext *ctx) = 0; + + virtual void enterLogic(SMTLIBv2Parser::LogicContext *ctx) = 0; + virtual void exitLogic(SMTLIBv2Parser::LogicContext *ctx) = 0; + + virtual void enterSort_dec(SMTLIBv2Parser::Sort_decContext *ctx) = 0; + virtual void exitSort_dec(SMTLIBv2Parser::Sort_decContext *ctx) = 0; + + virtual void enterSelector_dec(SMTLIBv2Parser::Selector_decContext *ctx) = 0; + virtual void exitSelector_dec(SMTLIBv2Parser::Selector_decContext *ctx) = 0; + + virtual void enterConstructor_dec(SMTLIBv2Parser::Constructor_decContext *ctx) = 0; + virtual void exitConstructor_dec(SMTLIBv2Parser::Constructor_decContext *ctx) = 0; + + virtual void enterDatatype_dec(SMTLIBv2Parser::Datatype_decContext *ctx) = 0; + virtual void exitDatatype_dec(SMTLIBv2Parser::Datatype_decContext *ctx) = 0; + + virtual void enterFunction_dec(SMTLIBv2Parser::Function_decContext *ctx) = 0; + virtual void exitFunction_dec(SMTLIBv2Parser::Function_decContext *ctx) = 0; + + virtual void enterFunction_def(SMTLIBv2Parser::Function_defContext *ctx) = 0; + virtual void exitFunction_def(SMTLIBv2Parser::Function_defContext *ctx) = 0; + + virtual void enterProp_literal(SMTLIBv2Parser::Prop_literalContext *ctx) = 0; + virtual void exitProp_literal(SMTLIBv2Parser::Prop_literalContext *ctx) = 0; + + virtual void enterScript(SMTLIBv2Parser::ScriptContext *ctx) = 0; + virtual void exitScript(SMTLIBv2Parser::ScriptContext *ctx) = 0; + + virtual void enterCmd_assert(SMTLIBv2Parser::Cmd_assertContext *ctx) = 0; + virtual void exitCmd_assert(SMTLIBv2Parser::Cmd_assertContext *ctx) = 0; + + virtual void enterCmd_checkSat(SMTLIBv2Parser::Cmd_checkSatContext *ctx) = 0; + virtual void exitCmd_checkSat(SMTLIBv2Parser::Cmd_checkSatContext *ctx) = 0; + + virtual void enterCmd_checkSatAssuming(SMTLIBv2Parser::Cmd_checkSatAssumingContext *ctx) = 0; + virtual void exitCmd_checkSatAssuming(SMTLIBv2Parser::Cmd_checkSatAssumingContext *ctx) = 0; + + virtual void enterCmd_declareConst(SMTLIBv2Parser::Cmd_declareConstContext *ctx) = 0; + virtual void exitCmd_declareConst(SMTLIBv2Parser::Cmd_declareConstContext *ctx) = 0; + + virtual void enterCmd_declareDatatype(SMTLIBv2Parser::Cmd_declareDatatypeContext *ctx) = 0; + virtual void exitCmd_declareDatatype(SMTLIBv2Parser::Cmd_declareDatatypeContext *ctx) = 0; + + virtual void enterCmd_declareDatatypes(SMTLIBv2Parser::Cmd_declareDatatypesContext *ctx) = 0; + virtual void exitCmd_declareDatatypes(SMTLIBv2Parser::Cmd_declareDatatypesContext *ctx) = 0; + + virtual void enterCmd_declareFun(SMTLIBv2Parser::Cmd_declareFunContext *ctx) = 0; + virtual void exitCmd_declareFun(SMTLIBv2Parser::Cmd_declareFunContext *ctx) = 0; + + virtual void enterCmd_declareSort(SMTLIBv2Parser::Cmd_declareSortContext *ctx) = 0; + virtual void exitCmd_declareSort(SMTLIBv2Parser::Cmd_declareSortContext *ctx) = 0; + + virtual void enterCmd_defineFun(SMTLIBv2Parser::Cmd_defineFunContext *ctx) = 0; + virtual void exitCmd_defineFun(SMTLIBv2Parser::Cmd_defineFunContext *ctx) = 0; + + virtual void enterCmd_defineFunRec(SMTLIBv2Parser::Cmd_defineFunRecContext *ctx) = 0; + virtual void exitCmd_defineFunRec(SMTLIBv2Parser::Cmd_defineFunRecContext *ctx) = 0; + + virtual void enterCmd_defineFunsRec(SMTLIBv2Parser::Cmd_defineFunsRecContext *ctx) = 0; + virtual void exitCmd_defineFunsRec(SMTLIBv2Parser::Cmd_defineFunsRecContext *ctx) = 0; + + virtual void enterCmd_defineSort(SMTLIBv2Parser::Cmd_defineSortContext *ctx) = 0; + virtual void exitCmd_defineSort(SMTLIBv2Parser::Cmd_defineSortContext *ctx) = 0; + + virtual void enterCmd_echo(SMTLIBv2Parser::Cmd_echoContext *ctx) = 0; + virtual void exitCmd_echo(SMTLIBv2Parser::Cmd_echoContext *ctx) = 0; + + virtual void enterCmd_exit(SMTLIBv2Parser::Cmd_exitContext *ctx) = 0; + virtual void exitCmd_exit(SMTLIBv2Parser::Cmd_exitContext *ctx) = 0; + + virtual void enterCmd_getAssertions(SMTLIBv2Parser::Cmd_getAssertionsContext *ctx) = 0; + virtual void exitCmd_getAssertions(SMTLIBv2Parser::Cmd_getAssertionsContext *ctx) = 0; + + virtual void enterCmd_getAssignment(SMTLIBv2Parser::Cmd_getAssignmentContext *ctx) = 0; + virtual void exitCmd_getAssignment(SMTLIBv2Parser::Cmd_getAssignmentContext *ctx) = 0; + + virtual void enterCmd_getInfo(SMTLIBv2Parser::Cmd_getInfoContext *ctx) = 0; + virtual void exitCmd_getInfo(SMTLIBv2Parser::Cmd_getInfoContext *ctx) = 0; + + virtual void enterCmd_getModel(SMTLIBv2Parser::Cmd_getModelContext *ctx) = 0; + virtual void exitCmd_getModel(SMTLIBv2Parser::Cmd_getModelContext *ctx) = 0; + + virtual void enterCmd_getOption(SMTLIBv2Parser::Cmd_getOptionContext *ctx) = 0; + virtual void exitCmd_getOption(SMTLIBv2Parser::Cmd_getOptionContext *ctx) = 0; + + virtual void enterCmd_getProof(SMTLIBv2Parser::Cmd_getProofContext *ctx) = 0; + virtual void exitCmd_getProof(SMTLIBv2Parser::Cmd_getProofContext *ctx) = 0; + + virtual void enterCmd_getUnsatAssumptions(SMTLIBv2Parser::Cmd_getUnsatAssumptionsContext *ctx) = 0; + virtual void exitCmd_getUnsatAssumptions(SMTLIBv2Parser::Cmd_getUnsatAssumptionsContext *ctx) = 0; + + virtual void enterCmd_getUnsatCore(SMTLIBv2Parser::Cmd_getUnsatCoreContext *ctx) = 0; + virtual void exitCmd_getUnsatCore(SMTLIBv2Parser::Cmd_getUnsatCoreContext *ctx) = 0; + + virtual void enterCmd_getValue(SMTLIBv2Parser::Cmd_getValueContext *ctx) = 0; + virtual void exitCmd_getValue(SMTLIBv2Parser::Cmd_getValueContext *ctx) = 0; + + virtual void enterCmd_pop(SMTLIBv2Parser::Cmd_popContext *ctx) = 0; + virtual void exitCmd_pop(SMTLIBv2Parser::Cmd_popContext *ctx) = 0; + + virtual void enterCmd_push(SMTLIBv2Parser::Cmd_pushContext *ctx) = 0; + virtual void exitCmd_push(SMTLIBv2Parser::Cmd_pushContext *ctx) = 0; + + virtual void enterCmd_reset(SMTLIBv2Parser::Cmd_resetContext *ctx) = 0; + virtual void exitCmd_reset(SMTLIBv2Parser::Cmd_resetContext *ctx) = 0; + + virtual void enterCmd_resetAssertions(SMTLIBv2Parser::Cmd_resetAssertionsContext *ctx) = 0; + virtual void exitCmd_resetAssertions(SMTLIBv2Parser::Cmd_resetAssertionsContext *ctx) = 0; + + virtual void enterCmd_setInfo(SMTLIBv2Parser::Cmd_setInfoContext *ctx) = 0; + virtual void exitCmd_setInfo(SMTLIBv2Parser::Cmd_setInfoContext *ctx) = 0; + + virtual void enterCmd_setLogic(SMTLIBv2Parser::Cmd_setLogicContext *ctx) = 0; + virtual void exitCmd_setLogic(SMTLIBv2Parser::Cmd_setLogicContext *ctx) = 0; + + virtual void enterCmd_setOption(SMTLIBv2Parser::Cmd_setOptionContext *ctx) = 0; + virtual void exitCmd_setOption(SMTLIBv2Parser::Cmd_setOptionContext *ctx) = 0; + + virtual void enterCommand(SMTLIBv2Parser::CommandContext *ctx) = 0; + virtual void exitCommand(SMTLIBv2Parser::CommandContext *ctx) = 0; + + virtual void enterB_value(SMTLIBv2Parser::B_valueContext *ctx) = 0; + virtual void exitB_value(SMTLIBv2Parser::B_valueContext *ctx) = 0; + + virtual void enterOption(SMTLIBv2Parser::OptionContext *ctx) = 0; + virtual void exitOption(SMTLIBv2Parser::OptionContext *ctx) = 0; + + virtual void enterInfo_flag(SMTLIBv2Parser::Info_flagContext *ctx) = 0; + virtual void exitInfo_flag(SMTLIBv2Parser::Info_flagContext *ctx) = 0; + + virtual void enterError_behaviour(SMTLIBv2Parser::Error_behaviourContext *ctx) = 0; + virtual void exitError_behaviour(SMTLIBv2Parser::Error_behaviourContext *ctx) = 0; + + virtual void enterReason_unknown(SMTLIBv2Parser::Reason_unknownContext *ctx) = 0; + virtual void exitReason_unknown(SMTLIBv2Parser::Reason_unknownContext *ctx) = 0; + + virtual void enterModel_response(SMTLIBv2Parser::Model_responseContext *ctx) = 0; + virtual void exitModel_response(SMTLIBv2Parser::Model_responseContext *ctx) = 0; + + virtual void enterInfo_response(SMTLIBv2Parser::Info_responseContext *ctx) = 0; + virtual void exitInfo_response(SMTLIBv2Parser::Info_responseContext *ctx) = 0; + + virtual void enterValuation_pair(SMTLIBv2Parser::Valuation_pairContext *ctx) = 0; + virtual void exitValuation_pair(SMTLIBv2Parser::Valuation_pairContext *ctx) = 0; + + virtual void enterT_valuation_pair(SMTLIBv2Parser::T_valuation_pairContext *ctx) = 0; + virtual void exitT_valuation_pair(SMTLIBv2Parser::T_valuation_pairContext *ctx) = 0; + + virtual void enterCheck_sat_response(SMTLIBv2Parser::Check_sat_responseContext *ctx) = 0; + virtual void exitCheck_sat_response(SMTLIBv2Parser::Check_sat_responseContext *ctx) = 0; + + virtual void enterEcho_response(SMTLIBv2Parser::Echo_responseContext *ctx) = 0; + virtual void exitEcho_response(SMTLIBv2Parser::Echo_responseContext *ctx) = 0; + + virtual void enterGet_assertions_response(SMTLIBv2Parser::Get_assertions_responseContext *ctx) = 0; + virtual void exitGet_assertions_response(SMTLIBv2Parser::Get_assertions_responseContext *ctx) = 0; + + virtual void enterGet_assignment_response(SMTLIBv2Parser::Get_assignment_responseContext *ctx) = 0; + virtual void exitGet_assignment_response(SMTLIBv2Parser::Get_assignment_responseContext *ctx) = 0; + + virtual void enterGet_info_response(SMTLIBv2Parser::Get_info_responseContext *ctx) = 0; + virtual void exitGet_info_response(SMTLIBv2Parser::Get_info_responseContext *ctx) = 0; + + virtual void enterGet_model_response(SMTLIBv2Parser::Get_model_responseContext *ctx) = 0; + virtual void exitGet_model_response(SMTLIBv2Parser::Get_model_responseContext *ctx) = 0; + + virtual void enterGet_option_response(SMTLIBv2Parser::Get_option_responseContext *ctx) = 0; + virtual void exitGet_option_response(SMTLIBv2Parser::Get_option_responseContext *ctx) = 0; + + virtual void enterGet_proof_response(SMTLIBv2Parser::Get_proof_responseContext *ctx) = 0; + virtual void exitGet_proof_response(SMTLIBv2Parser::Get_proof_responseContext *ctx) = 0; + + virtual void enterGet_unsat_assump_response(SMTLIBv2Parser::Get_unsat_assump_responseContext *ctx) = 0; + virtual void exitGet_unsat_assump_response(SMTLIBv2Parser::Get_unsat_assump_responseContext *ctx) = 0; + + virtual void enterGet_unsat_core_response(SMTLIBv2Parser::Get_unsat_core_responseContext *ctx) = 0; + virtual void exitGet_unsat_core_response(SMTLIBv2Parser::Get_unsat_core_responseContext *ctx) = 0; + + virtual void enterGet_value_response(SMTLIBv2Parser::Get_value_responseContext *ctx) = 0; + virtual void exitGet_value_response(SMTLIBv2Parser::Get_value_responseContext *ctx) = 0; + + virtual void enterSpecific_success_response(SMTLIBv2Parser::Specific_success_responseContext *ctx) = 0; + virtual void exitSpecific_success_response(SMTLIBv2Parser::Specific_success_responseContext *ctx) = 0; + + virtual void enterGeneral_response(SMTLIBv2Parser::General_responseContext *ctx) = 0; + virtual void exitGeneral_response(SMTLIBv2Parser::General_responseContext *ctx) = 0; + + +}; + diff --git a/C++Verifier/src/antlr4/SMTLIBv2Parser.cpp b/C++Verifier/src/antlr4/SMTLIBv2Parser.cpp new file mode 100644 index 0000000..83e71b6 --- /dev/null +++ b/C++Verifier/src/antlr4/SMTLIBv2Parser.cpp @@ -0,0 +1,10385 @@ + +// Generated from SMTLIBv2.g4 by ANTLR 4.8 + + +#include "SMTLIBv2Listener.h" + +#include "SMTLIBv2Parser.h" + + +using namespace antlrcpp; +using namespace antlr4; + +SMTLIBv2Parser::SMTLIBv2Parser(TokenStream *input) : Parser(input) { + _interpreter = new atn::ParserATNSimulator(this, _atn, _decisionToDFA, _sharedContextCache); +} + +SMTLIBv2Parser::~SMTLIBv2Parser() { + delete _interpreter; +} + +std::string SMTLIBv2Parser::getGrammarFileName() const { + return "SMTLIBv2.g4"; +} + +const std::vector& SMTLIBv2Parser::getRuleNames() const { + return _ruleNames; +} + +dfa::Vocabulary& SMTLIBv2Parser::getVocabulary() const { + return _vocabulary; +} + + +//----------------- StartContext ------------------------------------------------------------------ + +SMTLIBv2Parser::StartContext::StartContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::ScriptContext* SMTLIBv2Parser::StartContext::script() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::StartContext::EOF() { + return getToken(SMTLIBv2Parser::EOF, 0); +} + + +size_t SMTLIBv2Parser::StartContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleStart; +} + +void SMTLIBv2Parser::StartContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterStart(this); +} + +void SMTLIBv2Parser::StartContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitStart(this); +} + +SMTLIBv2Parser::StartContext* SMTLIBv2Parser::start() { + StartContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 0, SMTLIBv2Parser::RuleStart); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(192); + script(); + setState(193); + match(SMTLIBv2Parser::EOF); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- ResponseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::ResponseContext::ResponseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::General_responseContext* SMTLIBv2Parser::ResponseContext::general_response() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::ResponseContext::EOF() { + return getToken(SMTLIBv2Parser::EOF, 0); +} + + +size_t SMTLIBv2Parser::ResponseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleResponse; +} + +void SMTLIBv2Parser::ResponseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterResponse(this); +} + +void SMTLIBv2Parser::ResponseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitResponse(this); +} + +SMTLIBv2Parser::ResponseContext* SMTLIBv2Parser::response() { + ResponseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 2, SMTLIBv2Parser::RuleResponse); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(195); + general_response(); + setState(196); + match(SMTLIBv2Parser::EOF); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- GeneralReservedWordContext ------------------------------------------------------------------ + +SMTLIBv2Parser::GeneralReservedWordContext::GeneralReservedWordContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::GeneralReservedWordContext::GRW_Exclamation() { + return getToken(SMTLIBv2Parser::GRW_Exclamation, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::GeneralReservedWordContext::GRW_Underscore() { + return getToken(SMTLIBv2Parser::GRW_Underscore, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::GeneralReservedWordContext::GRW_As() { + return getToken(SMTLIBv2Parser::GRW_As, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::GeneralReservedWordContext::GRW_Binary() { + return getToken(SMTLIBv2Parser::GRW_Binary, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::GeneralReservedWordContext::GRW_Decimal() { + return getToken(SMTLIBv2Parser::GRW_Decimal, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::GeneralReservedWordContext::GRW_Exists() { + return getToken(SMTLIBv2Parser::GRW_Exists, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::GeneralReservedWordContext::GRW_Hexadecimal() { + return getToken(SMTLIBv2Parser::GRW_Hexadecimal, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::GeneralReservedWordContext::GRW_Forall() { + return getToken(SMTLIBv2Parser::GRW_Forall, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::GeneralReservedWordContext::GRW_Let() { + return getToken(SMTLIBv2Parser::GRW_Let, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::GeneralReservedWordContext::GRW_Match() { + return getToken(SMTLIBv2Parser::GRW_Match, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::GeneralReservedWordContext::GRW_Numeral() { + return getToken(SMTLIBv2Parser::GRW_Numeral, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::GeneralReservedWordContext::GRW_Par() { + return getToken(SMTLIBv2Parser::GRW_Par, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::GeneralReservedWordContext::GRW_String() { + return getToken(SMTLIBv2Parser::GRW_String, 0); +} + + +size_t SMTLIBv2Parser::GeneralReservedWordContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleGeneralReservedWord; +} + +void SMTLIBv2Parser::GeneralReservedWordContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterGeneralReservedWord(this); +} + +void SMTLIBv2Parser::GeneralReservedWordContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitGeneralReservedWord(this); +} + +SMTLIBv2Parser::GeneralReservedWordContext* SMTLIBv2Parser::generalReservedWord() { + GeneralReservedWordContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 4, SMTLIBv2Parser::RuleGeneralReservedWord); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(198); + _la = _input->LA(1); + if (!(((((_la - 53) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 53)) & ((1ULL << (SMTLIBv2Parser::GRW_Exclamation - 53)) + | (1ULL << (SMTLIBv2Parser::GRW_Underscore - 53)) + | (1ULL << (SMTLIBv2Parser::GRW_As - 53)) + | (1ULL << (SMTLIBv2Parser::GRW_Binary - 53)) + | (1ULL << (SMTLIBv2Parser::GRW_Decimal - 53)) + | (1ULL << (SMTLIBv2Parser::GRW_Exists - 53)) + | (1ULL << (SMTLIBv2Parser::GRW_Hexadecimal - 53)) + | (1ULL << (SMTLIBv2Parser::GRW_Forall - 53)) + | (1ULL << (SMTLIBv2Parser::GRW_Let - 53)) + | (1ULL << (SMTLIBv2Parser::GRW_Match - 53)) + | (1ULL << (SMTLIBv2Parser::GRW_Numeral - 53)) + | (1ULL << (SMTLIBv2Parser::GRW_Par - 53)) + | (1ULL << (SMTLIBv2Parser::GRW_String - 53)))) != 0))) { + _errHandler->recoverInline(this); + } + else { + _errHandler->reportMatch(this); + consume(); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- SimpleSymbolContext ------------------------------------------------------------------ + +SMTLIBv2Parser::SimpleSymbolContext::SimpleSymbolContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::PredefSymbolContext* SMTLIBv2Parser::SimpleSymbolContext::predefSymbol() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::SimpleSymbolContext::UndefinedSymbol() { + return getToken(SMTLIBv2Parser::UndefinedSymbol, 0); +} + + +size_t SMTLIBv2Parser::SimpleSymbolContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleSimpleSymbol; +} + +void SMTLIBv2Parser::SimpleSymbolContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterSimpleSymbol(this); +} + +void SMTLIBv2Parser::SimpleSymbolContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitSimpleSymbol(this); +} + +SMTLIBv2Parser::SimpleSymbolContext* SMTLIBv2Parser::simpleSymbol() { + SimpleSymbolContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 6, SMTLIBv2Parser::RuleSimpleSymbol); + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(202); + _errHandler->sync(this); + switch (_input->LA(1)) { + case SMTLIBv2Parser::PS_Not: + case SMTLIBv2Parser::PS_Bool: + case SMTLIBv2Parser::PS_ContinuedExecution: + case SMTLIBv2Parser::PS_Error: + case SMTLIBv2Parser::PS_False: + case SMTLIBv2Parser::PS_ImmediateExit: + case SMTLIBv2Parser::PS_Incomplete: + case SMTLIBv2Parser::PS_Logic: + case SMTLIBv2Parser::PS_Memout: + case SMTLIBv2Parser::PS_Sat: + case SMTLIBv2Parser::PS_Success: + case SMTLIBv2Parser::PS_Theory: + case SMTLIBv2Parser::PS_True: + case SMTLIBv2Parser::PS_Unknown: + case SMTLIBv2Parser::PS_Unsupported: + case SMTLIBv2Parser::PS_Unsat: { + enterOuterAlt(_localctx, 1); + setState(200); + predefSymbol(); + break; + } + + case SMTLIBv2Parser::UndefinedSymbol: { + enterOuterAlt(_localctx, 2); + setState(201); + match(SMTLIBv2Parser::UndefinedSymbol); + break; + } + + default: + throw NoViableAltException(this); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- QuotedSymbolContext ------------------------------------------------------------------ + +SMTLIBv2Parser::QuotedSymbolContext::QuotedSymbolContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::QuotedSymbolContext::QuotedSymbol() { + return getToken(SMTLIBv2Parser::QuotedSymbol, 0); +} + + +size_t SMTLIBv2Parser::QuotedSymbolContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleQuotedSymbol; +} + +void SMTLIBv2Parser::QuotedSymbolContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterQuotedSymbol(this); +} + +void SMTLIBv2Parser::QuotedSymbolContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitQuotedSymbol(this); +} + +SMTLIBv2Parser::QuotedSymbolContext* SMTLIBv2Parser::quotedSymbol() { + QuotedSymbolContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 8, SMTLIBv2Parser::RuleQuotedSymbol); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(204); + match(SMTLIBv2Parser::QuotedSymbol); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- PredefSymbolContext ------------------------------------------------------------------ + +SMTLIBv2Parser::PredefSymbolContext::PredefSymbolContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_Not() { + return getToken(SMTLIBv2Parser::PS_Not, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_Bool() { + return getToken(SMTLIBv2Parser::PS_Bool, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_ContinuedExecution() { + return getToken(SMTLIBv2Parser::PS_ContinuedExecution, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_Error() { + return getToken(SMTLIBv2Parser::PS_Error, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_False() { + return getToken(SMTLIBv2Parser::PS_False, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_ImmediateExit() { + return getToken(SMTLIBv2Parser::PS_ImmediateExit, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_Incomplete() { + return getToken(SMTLIBv2Parser::PS_Incomplete, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_Logic() { + return getToken(SMTLIBv2Parser::PS_Logic, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_Memout() { + return getToken(SMTLIBv2Parser::PS_Memout, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_Sat() { + return getToken(SMTLIBv2Parser::PS_Sat, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_Success() { + return getToken(SMTLIBv2Parser::PS_Success, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_Theory() { + return getToken(SMTLIBv2Parser::PS_Theory, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_True() { + return getToken(SMTLIBv2Parser::PS_True, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_Unknown() { + return getToken(SMTLIBv2Parser::PS_Unknown, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_Unsupported() { + return getToken(SMTLIBv2Parser::PS_Unsupported, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefSymbolContext::PS_Unsat() { + return getToken(SMTLIBv2Parser::PS_Unsat, 0); +} + + +size_t SMTLIBv2Parser::PredefSymbolContext::getRuleIndex() const { + return SMTLIBv2Parser::RulePredefSymbol; +} + +void SMTLIBv2Parser::PredefSymbolContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterPredefSymbol(this); +} + +void SMTLIBv2Parser::PredefSymbolContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitPredefSymbol(this); +} + +SMTLIBv2Parser::PredefSymbolContext* SMTLIBv2Parser::predefSymbol() { + PredefSymbolContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 10, SMTLIBv2Parser::RulePredefSymbol); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(206); + _la = _input->LA(1); + if (!((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0))) { + _errHandler->recoverInline(this); + } + else { + _errHandler->reportMatch(this); + consume(); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- PredefKeywordContext ------------------------------------------------------------------ + +SMTLIBv2Parser::PredefKeywordContext::PredefKeywordContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_AllStatistics() { + return getToken(SMTLIBv2Parser::PK_AllStatistics, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_AssertionStackLevels() { + return getToken(SMTLIBv2Parser::PK_AssertionStackLevels, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Authors() { + return getToken(SMTLIBv2Parser::PK_Authors, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Category() { + return getToken(SMTLIBv2Parser::PK_Category, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Chainable() { + return getToken(SMTLIBv2Parser::PK_Chainable, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Definition() { + return getToken(SMTLIBv2Parser::PK_Definition, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_DiagnosticOutputChannel() { + return getToken(SMTLIBv2Parser::PK_DiagnosticOutputChannel, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_ErrorBehaviour() { + return getToken(SMTLIBv2Parser::PK_ErrorBehaviour, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Extension() { + return getToken(SMTLIBv2Parser::PK_Extension, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Funs() { + return getToken(SMTLIBv2Parser::PK_Funs, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_FunsDescription() { + return getToken(SMTLIBv2Parser::PK_FunsDescription, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_GlobalDeclarations() { + return getToken(SMTLIBv2Parser::PK_GlobalDeclarations, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_InteractiveMode() { + return getToken(SMTLIBv2Parser::PK_InteractiveMode, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Language() { + return getToken(SMTLIBv2Parser::PK_Language, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_LeftAssoc() { + return getToken(SMTLIBv2Parser::PK_LeftAssoc, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_License() { + return getToken(SMTLIBv2Parser::PK_License, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Named() { + return getToken(SMTLIBv2Parser::PK_Named, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Name() { + return getToken(SMTLIBv2Parser::PK_Name, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Notes() { + return getToken(SMTLIBv2Parser::PK_Notes, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Pattern() { + return getToken(SMTLIBv2Parser::PK_Pattern, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_PrintSuccess() { + return getToken(SMTLIBv2Parser::PK_PrintSuccess, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_ProduceAssertions() { + return getToken(SMTLIBv2Parser::PK_ProduceAssertions, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_ProduceAssignments() { + return getToken(SMTLIBv2Parser::PK_ProduceAssignments, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_ProduceModels() { + return getToken(SMTLIBv2Parser::PK_ProduceModels, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_ProduceProofs() { + return getToken(SMTLIBv2Parser::PK_ProduceProofs, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_ProduceUnsatAssumptions() { + return getToken(SMTLIBv2Parser::PK_ProduceUnsatAssumptions, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_ProduceUnsatCores() { + return getToken(SMTLIBv2Parser::PK_ProduceUnsatCores, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_RandomSeed() { + return getToken(SMTLIBv2Parser::PK_RandomSeed, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_ReasonUnknown() { + return getToken(SMTLIBv2Parser::PK_ReasonUnknown, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_RegularOutputChannel() { + return getToken(SMTLIBv2Parser::PK_RegularOutputChannel, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_ReproducibleResourceLimit() { + return getToken(SMTLIBv2Parser::PK_ReproducibleResourceLimit, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_RightAssoc() { + return getToken(SMTLIBv2Parser::PK_RightAssoc, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_SmtLibVersion() { + return getToken(SMTLIBv2Parser::PK_SmtLibVersion, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Sorts() { + return getToken(SMTLIBv2Parser::PK_Sorts, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_SortsDescription() { + return getToken(SMTLIBv2Parser::PK_SortsDescription, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Source() { + return getToken(SMTLIBv2Parser::PK_Source, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Status() { + return getToken(SMTLIBv2Parser::PK_Status, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Theories() { + return getToken(SMTLIBv2Parser::PK_Theories, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Values() { + return getToken(SMTLIBv2Parser::PK_Values, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Verbosity() { + return getToken(SMTLIBv2Parser::PK_Verbosity, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PredefKeywordContext::PK_Version() { + return getToken(SMTLIBv2Parser::PK_Version, 0); +} + + +size_t SMTLIBv2Parser::PredefKeywordContext::getRuleIndex() const { + return SMTLIBv2Parser::RulePredefKeyword; +} + +void SMTLIBv2Parser::PredefKeywordContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterPredefKeyword(this); +} + +void SMTLIBv2Parser::PredefKeywordContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitPredefKeyword(this); +} + +SMTLIBv2Parser::PredefKeywordContext* SMTLIBv2Parser::predefKeyword() { + PredefKeywordContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 12, SMTLIBv2Parser::RulePredefKeyword); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(208); + _la = _input->LA(1); + if (!(((((_la - 71) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 71)) & ((1ULL << (SMTLIBv2Parser::PK_AllStatistics - 71)) + | (1ULL << (SMTLIBv2Parser::PK_AssertionStackLevels - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Authors - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Category - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Chainable - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Definition - 71)) + | (1ULL << (SMTLIBv2Parser::PK_DiagnosticOutputChannel - 71)) + | (1ULL << (SMTLIBv2Parser::PK_ErrorBehaviour - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Extension - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Funs - 71)) + | (1ULL << (SMTLIBv2Parser::PK_FunsDescription - 71)) + | (1ULL << (SMTLIBv2Parser::PK_GlobalDeclarations - 71)) + | (1ULL << (SMTLIBv2Parser::PK_InteractiveMode - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Language - 71)) + | (1ULL << (SMTLIBv2Parser::PK_LeftAssoc - 71)) + | (1ULL << (SMTLIBv2Parser::PK_License - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Named - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Name - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Notes - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Pattern - 71)) + | (1ULL << (SMTLIBv2Parser::PK_PrintSuccess - 71)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssertions - 71)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssignments - 71)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceModels - 71)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceProofs - 71)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatAssumptions - 71)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatCores - 71)) + | (1ULL << (SMTLIBv2Parser::PK_RandomSeed - 71)) + | (1ULL << (SMTLIBv2Parser::PK_ReasonUnknown - 71)) + | (1ULL << (SMTLIBv2Parser::PK_RegularOutputChannel - 71)) + | (1ULL << (SMTLIBv2Parser::PK_ReproducibleResourceLimit - 71)) + | (1ULL << (SMTLIBv2Parser::PK_RightAssoc - 71)) + | (1ULL << (SMTLIBv2Parser::PK_SmtLibVersion - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Sorts - 71)) + | (1ULL << (SMTLIBv2Parser::PK_SortsDescription - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Source - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Status - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Theories - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Values - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Verbosity - 71)) + | (1ULL << (SMTLIBv2Parser::PK_Version - 71)))) != 0))) { + _errHandler->recoverInline(this); + } + else { + _errHandler->reportMatch(this); + consume(); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- SymbolContext ------------------------------------------------------------------ + +SMTLIBv2Parser::SymbolContext::SymbolContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::SimpleSymbolContext* SMTLIBv2Parser::SymbolContext::simpleSymbol() { + return getRuleContext(0); +} + +SMTLIBv2Parser::QuotedSymbolContext* SMTLIBv2Parser::SymbolContext::quotedSymbol() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::SymbolContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleSymbol; +} + +void SMTLIBv2Parser::SymbolContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterSymbol(this); +} + +void SMTLIBv2Parser::SymbolContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitSymbol(this); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::symbol() { + SymbolContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 14, SMTLIBv2Parser::RuleSymbol); + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(212); + _errHandler->sync(this); + switch (_input->LA(1)) { + case SMTLIBv2Parser::PS_Not: + case SMTLIBv2Parser::PS_Bool: + case SMTLIBv2Parser::PS_ContinuedExecution: + case SMTLIBv2Parser::PS_Error: + case SMTLIBv2Parser::PS_False: + case SMTLIBv2Parser::PS_ImmediateExit: + case SMTLIBv2Parser::PS_Incomplete: + case SMTLIBv2Parser::PS_Logic: + case SMTLIBv2Parser::PS_Memout: + case SMTLIBv2Parser::PS_Sat: + case SMTLIBv2Parser::PS_Success: + case SMTLIBv2Parser::PS_Theory: + case SMTLIBv2Parser::PS_True: + case SMTLIBv2Parser::PS_Unknown: + case SMTLIBv2Parser::PS_Unsupported: + case SMTLIBv2Parser::PS_Unsat: + case SMTLIBv2Parser::UndefinedSymbol: { + enterOuterAlt(_localctx, 1); + setState(210); + simpleSymbol(); + break; + } + + case SMTLIBv2Parser::QuotedSymbol: { + enterOuterAlt(_localctx, 2); + setState(211); + quotedSymbol(); + break; + } + + default: + throw NoViableAltException(this); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- NumeralContext ------------------------------------------------------------------ + +SMTLIBv2Parser::NumeralContext::NumeralContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::NumeralContext::Numeral() { + return getToken(SMTLIBv2Parser::Numeral, 0); +} + + +size_t SMTLIBv2Parser::NumeralContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleNumeral; +} + +void SMTLIBv2Parser::NumeralContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterNumeral(this); +} + +void SMTLIBv2Parser::NumeralContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitNumeral(this); +} + +SMTLIBv2Parser::NumeralContext* SMTLIBv2Parser::numeral() { + NumeralContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 16, SMTLIBv2Parser::RuleNumeral); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(214); + match(SMTLIBv2Parser::Numeral); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- DecimalContext ------------------------------------------------------------------ + +SMTLIBv2Parser::DecimalContext::DecimalContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::DecimalContext::Decimal() { + return getToken(SMTLIBv2Parser::Decimal, 0); +} + + +size_t SMTLIBv2Parser::DecimalContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleDecimal; +} + +void SMTLIBv2Parser::DecimalContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterDecimal(this); +} + +void SMTLIBv2Parser::DecimalContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitDecimal(this); +} + +SMTLIBv2Parser::DecimalContext* SMTLIBv2Parser::decimal() { + DecimalContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 18, SMTLIBv2Parser::RuleDecimal); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(216); + match(SMTLIBv2Parser::Decimal); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- HexadecimalContext ------------------------------------------------------------------ + +SMTLIBv2Parser::HexadecimalContext::HexadecimalContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::HexadecimalContext::HexDecimal() { + return getToken(SMTLIBv2Parser::HexDecimal, 0); +} + + +size_t SMTLIBv2Parser::HexadecimalContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleHexadecimal; +} + +void SMTLIBv2Parser::HexadecimalContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterHexadecimal(this); +} + +void SMTLIBv2Parser::HexadecimalContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitHexadecimal(this); +} + +SMTLIBv2Parser::HexadecimalContext* SMTLIBv2Parser::hexadecimal() { + HexadecimalContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 20, SMTLIBv2Parser::RuleHexadecimal); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(218); + match(SMTLIBv2Parser::HexDecimal); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- BinaryContext ------------------------------------------------------------------ + +SMTLIBv2Parser::BinaryContext::BinaryContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::BinaryContext::Binary() { + return getToken(SMTLIBv2Parser::Binary, 0); +} + + +size_t SMTLIBv2Parser::BinaryContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleBinary; +} + +void SMTLIBv2Parser::BinaryContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterBinary(this); +} + +void SMTLIBv2Parser::BinaryContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitBinary(this); +} + +SMTLIBv2Parser::BinaryContext* SMTLIBv2Parser::binary() { + BinaryContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 22, SMTLIBv2Parser::RuleBinary); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(220); + match(SMTLIBv2Parser::Binary); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- StringContext ------------------------------------------------------------------ + +SMTLIBv2Parser::StringContext::StringContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::StringContext::String() { + return getToken(SMTLIBv2Parser::String, 0); +} + + +size_t SMTLIBv2Parser::StringContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleString; +} + +void SMTLIBv2Parser::StringContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterString(this); +} + +void SMTLIBv2Parser::StringContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitString(this); +} + +SMTLIBv2Parser::StringContext* SMTLIBv2Parser::string() { + StringContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 24, SMTLIBv2Parser::RuleString); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(222); + match(SMTLIBv2Parser::String); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- KeywordContext ------------------------------------------------------------------ + +SMTLIBv2Parser::KeywordContext::KeywordContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::PredefKeywordContext* SMTLIBv2Parser::KeywordContext::predefKeyword() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::KeywordContext::Colon() { + return getToken(SMTLIBv2Parser::Colon, 0); +} + +SMTLIBv2Parser::SimpleSymbolContext* SMTLIBv2Parser::KeywordContext::simpleSymbol() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::KeywordContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleKeyword; +} + +void SMTLIBv2Parser::KeywordContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterKeyword(this); +} + +void SMTLIBv2Parser::KeywordContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitKeyword(this); +} + +SMTLIBv2Parser::KeywordContext* SMTLIBv2Parser::keyword() { + KeywordContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 26, SMTLIBv2Parser::RuleKeyword); + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(227); + _errHandler->sync(this); + switch (_input->LA(1)) { + case SMTLIBv2Parser::PK_AllStatistics: + case SMTLIBv2Parser::PK_AssertionStackLevels: + case SMTLIBv2Parser::PK_Authors: + case SMTLIBv2Parser::PK_Category: + case SMTLIBv2Parser::PK_Chainable: + case SMTLIBv2Parser::PK_Definition: + case SMTLIBv2Parser::PK_DiagnosticOutputChannel: + case SMTLIBv2Parser::PK_ErrorBehaviour: + case SMTLIBv2Parser::PK_Extension: + case SMTLIBv2Parser::PK_Funs: + case SMTLIBv2Parser::PK_FunsDescription: + case SMTLIBv2Parser::PK_GlobalDeclarations: + case SMTLIBv2Parser::PK_InteractiveMode: + case SMTLIBv2Parser::PK_Language: + case SMTLIBv2Parser::PK_LeftAssoc: + case SMTLIBv2Parser::PK_License: + case SMTLIBv2Parser::PK_Named: + case SMTLIBv2Parser::PK_Name: + case SMTLIBv2Parser::PK_Notes: + case SMTLIBv2Parser::PK_Pattern: + case SMTLIBv2Parser::PK_PrintSuccess: + case SMTLIBv2Parser::PK_ProduceAssertions: + case SMTLIBv2Parser::PK_ProduceAssignments: + case SMTLIBv2Parser::PK_ProduceModels: + case SMTLIBv2Parser::PK_ProduceProofs: + case SMTLIBv2Parser::PK_ProduceUnsatAssumptions: + case SMTLIBv2Parser::PK_ProduceUnsatCores: + case SMTLIBv2Parser::PK_RandomSeed: + case SMTLIBv2Parser::PK_ReasonUnknown: + case SMTLIBv2Parser::PK_RegularOutputChannel: + case SMTLIBv2Parser::PK_ReproducibleResourceLimit: + case SMTLIBv2Parser::PK_RightAssoc: + case SMTLIBv2Parser::PK_SmtLibVersion: + case SMTLIBv2Parser::PK_Sorts: + case SMTLIBv2Parser::PK_SortsDescription: + case SMTLIBv2Parser::PK_Source: + case SMTLIBv2Parser::PK_Status: + case SMTLIBv2Parser::PK_Theories: + case SMTLIBv2Parser::PK_Values: + case SMTLIBv2Parser::PK_Verbosity: + case SMTLIBv2Parser::PK_Version: { + enterOuterAlt(_localctx, 1); + setState(224); + predefKeyword(); + break; + } + + case SMTLIBv2Parser::Colon: { + enterOuterAlt(_localctx, 2); + setState(225); + match(SMTLIBv2Parser::Colon); + setState(226); + simpleSymbol(); + break; + } + + default: + throw NoViableAltException(this); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Spec_constantContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Spec_constantContext::Spec_constantContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::NumeralContext* SMTLIBv2Parser::Spec_constantContext::numeral() { + return getRuleContext(0); +} + +SMTLIBv2Parser::DecimalContext* SMTLIBv2Parser::Spec_constantContext::decimal() { + return getRuleContext(0); +} + +SMTLIBv2Parser::HexadecimalContext* SMTLIBv2Parser::Spec_constantContext::hexadecimal() { + return getRuleContext(0); +} + +SMTLIBv2Parser::BinaryContext* SMTLIBv2Parser::Spec_constantContext::binary() { + return getRuleContext(0); +} + +SMTLIBv2Parser::StringContext* SMTLIBv2Parser::Spec_constantContext::string() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::Spec_constantContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleSpec_constant; +} + +void SMTLIBv2Parser::Spec_constantContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterSpec_constant(this); +} + +void SMTLIBv2Parser::Spec_constantContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitSpec_constant(this); +} + +SMTLIBv2Parser::Spec_constantContext* SMTLIBv2Parser::spec_constant() { + Spec_constantContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 28, SMTLIBv2Parser::RuleSpec_constant); + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(234); + _errHandler->sync(this); + switch (_input->LA(1)) { + case SMTLIBv2Parser::Numeral: { + enterOuterAlt(_localctx, 1); + setState(229); + numeral(); + break; + } + + case SMTLIBv2Parser::Decimal: { + enterOuterAlt(_localctx, 2); + setState(230); + decimal(); + break; + } + + case SMTLIBv2Parser::HexDecimal: { + enterOuterAlt(_localctx, 3); + setState(231); + hexadecimal(); + break; + } + + case SMTLIBv2Parser::Binary: { + enterOuterAlt(_localctx, 4); + setState(232); + binary(); + break; + } + + case SMTLIBv2Parser::String: { + enterOuterAlt(_localctx, 5); + setState(233); + string(); + break; + } + + default: + throw NoViableAltException(this); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- S_exprContext ------------------------------------------------------------------ + +SMTLIBv2Parser::S_exprContext::S_exprContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::Spec_constantContext* SMTLIBv2Parser::S_exprContext::spec_constant() { + return getRuleContext(0); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::S_exprContext::symbol() { + return getRuleContext(0); +} + +SMTLIBv2Parser::KeywordContext* SMTLIBv2Parser::S_exprContext::keyword() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::S_exprContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::S_exprContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::S_exprContext::s_expr() { + return getRuleContexts(); +} + +SMTLIBv2Parser::S_exprContext* SMTLIBv2Parser::S_exprContext::s_expr(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::S_exprContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleS_expr; +} + +void SMTLIBv2Parser::S_exprContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterS_expr(this); +} + +void SMTLIBv2Parser::S_exprContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitS_expr(this); +} + +SMTLIBv2Parser::S_exprContext* SMTLIBv2Parser::s_expr() { + S_exprContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 30, SMTLIBv2Parser::RuleS_expr); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(247); + _errHandler->sync(this); + switch (_input->LA(1)) { + case SMTLIBv2Parser::String: + case SMTLIBv2Parser::Numeral: + case SMTLIBv2Parser::Binary: + case SMTLIBv2Parser::HexDecimal: + case SMTLIBv2Parser::Decimal: { + enterOuterAlt(_localctx, 1); + setState(236); + spec_constant(); + break; + } + + case SMTLIBv2Parser::QuotedSymbol: + case SMTLIBv2Parser::PS_Not: + case SMTLIBv2Parser::PS_Bool: + case SMTLIBv2Parser::PS_ContinuedExecution: + case SMTLIBv2Parser::PS_Error: + case SMTLIBv2Parser::PS_False: + case SMTLIBv2Parser::PS_ImmediateExit: + case SMTLIBv2Parser::PS_Incomplete: + case SMTLIBv2Parser::PS_Logic: + case SMTLIBv2Parser::PS_Memout: + case SMTLIBv2Parser::PS_Sat: + case SMTLIBv2Parser::PS_Success: + case SMTLIBv2Parser::PS_Theory: + case SMTLIBv2Parser::PS_True: + case SMTLIBv2Parser::PS_Unknown: + case SMTLIBv2Parser::PS_Unsupported: + case SMTLIBv2Parser::PS_Unsat: + case SMTLIBv2Parser::UndefinedSymbol: { + enterOuterAlt(_localctx, 2); + setState(237); + symbol(); + break; + } + + case SMTLIBv2Parser::Colon: + case SMTLIBv2Parser::PK_AllStatistics: + case SMTLIBv2Parser::PK_AssertionStackLevels: + case SMTLIBv2Parser::PK_Authors: + case SMTLIBv2Parser::PK_Category: + case SMTLIBv2Parser::PK_Chainable: + case SMTLIBv2Parser::PK_Definition: + case SMTLIBv2Parser::PK_DiagnosticOutputChannel: + case SMTLIBv2Parser::PK_ErrorBehaviour: + case SMTLIBv2Parser::PK_Extension: + case SMTLIBv2Parser::PK_Funs: + case SMTLIBv2Parser::PK_FunsDescription: + case SMTLIBv2Parser::PK_GlobalDeclarations: + case SMTLIBv2Parser::PK_InteractiveMode: + case SMTLIBv2Parser::PK_Language: + case SMTLIBv2Parser::PK_LeftAssoc: + case SMTLIBv2Parser::PK_License: + case SMTLIBv2Parser::PK_Named: + case SMTLIBv2Parser::PK_Name: + case SMTLIBv2Parser::PK_Notes: + case SMTLIBv2Parser::PK_Pattern: + case SMTLIBv2Parser::PK_PrintSuccess: + case SMTLIBv2Parser::PK_ProduceAssertions: + case SMTLIBv2Parser::PK_ProduceAssignments: + case SMTLIBv2Parser::PK_ProduceModels: + case SMTLIBv2Parser::PK_ProduceProofs: + case SMTLIBv2Parser::PK_ProduceUnsatAssumptions: + case SMTLIBv2Parser::PK_ProduceUnsatCores: + case SMTLIBv2Parser::PK_RandomSeed: + case SMTLIBv2Parser::PK_ReasonUnknown: + case SMTLIBv2Parser::PK_RegularOutputChannel: + case SMTLIBv2Parser::PK_ReproducibleResourceLimit: + case SMTLIBv2Parser::PK_RightAssoc: + case SMTLIBv2Parser::PK_SmtLibVersion: + case SMTLIBv2Parser::PK_Sorts: + case SMTLIBv2Parser::PK_SortsDescription: + case SMTLIBv2Parser::PK_Source: + case SMTLIBv2Parser::PK_Status: + case SMTLIBv2Parser::PK_Theories: + case SMTLIBv2Parser::PK_Values: + case SMTLIBv2Parser::PK_Verbosity: + case SMTLIBv2Parser::PK_Version: { + enterOuterAlt(_localctx, 3); + setState(238); + keyword(); + break; + } + + case SMTLIBv2Parser::ParOpen: { + enterOuterAlt(_localctx, 4); + setState(239); + match(SMTLIBv2Parser::ParOpen); + setState(243); + _errHandler->sync(this); + _la = _input->LA(1); + while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::ParOpen) + | (1ULL << SMTLIBv2Parser::String) + | (1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || ((((_la - 66) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 66)) & ((1ULL << (SMTLIBv2Parser::Numeral - 66)) + | (1ULL << (SMTLIBv2Parser::Binary - 66)) + | (1ULL << (SMTLIBv2Parser::HexDecimal - 66)) + | (1ULL << (SMTLIBv2Parser::Decimal - 66)) + | (1ULL << (SMTLIBv2Parser::Colon - 66)) + | (1ULL << (SMTLIBv2Parser::PK_AllStatistics - 66)) + | (1ULL << (SMTLIBv2Parser::PK_AssertionStackLevels - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Authors - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Category - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Chainable - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Definition - 66)) + | (1ULL << (SMTLIBv2Parser::PK_DiagnosticOutputChannel - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ErrorBehaviour - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Extension - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Funs - 66)) + | (1ULL << (SMTLIBv2Parser::PK_FunsDescription - 66)) + | (1ULL << (SMTLIBv2Parser::PK_GlobalDeclarations - 66)) + | (1ULL << (SMTLIBv2Parser::PK_InteractiveMode - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Language - 66)) + | (1ULL << (SMTLIBv2Parser::PK_LeftAssoc - 66)) + | (1ULL << (SMTLIBv2Parser::PK_License - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Named - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Name - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Notes - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Pattern - 66)) + | (1ULL << (SMTLIBv2Parser::PK_PrintSuccess - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssertions - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssignments - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceModels - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceProofs - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatAssumptions - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatCores - 66)) + | (1ULL << (SMTLIBv2Parser::PK_RandomSeed - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ReasonUnknown - 66)) + | (1ULL << (SMTLIBv2Parser::PK_RegularOutputChannel - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ReproducibleResourceLimit - 66)) + | (1ULL << (SMTLIBv2Parser::PK_RightAssoc - 66)) + | (1ULL << (SMTLIBv2Parser::PK_SmtLibVersion - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Sorts - 66)) + | (1ULL << (SMTLIBv2Parser::PK_SortsDescription - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Source - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Status - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Theories - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Values - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Verbosity - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Version - 66)) + | (1ULL << (SMTLIBv2Parser::UndefinedSymbol - 66)))) != 0)) { + setState(240); + s_expr(); + setState(245); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(246); + match(SMTLIBv2Parser::ParClose); + break; + } + + default: + throw NoViableAltException(this); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- IndexContext ------------------------------------------------------------------ + +SMTLIBv2Parser::IndexContext::IndexContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::NumeralContext* SMTLIBv2Parser::IndexContext::numeral() { + return getRuleContext(0); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::IndexContext::symbol() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::IndexContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleIndex; +} + +void SMTLIBv2Parser::IndexContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterIndex(this); +} + +void SMTLIBv2Parser::IndexContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitIndex(this); +} + +SMTLIBv2Parser::IndexContext* SMTLIBv2Parser::index() { + IndexContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 32, SMTLIBv2Parser::RuleIndex); + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(251); + _errHandler->sync(this); + switch (_input->LA(1)) { + case SMTLIBv2Parser::Numeral: { + enterOuterAlt(_localctx, 1); + setState(249); + numeral(); + break; + } + + case SMTLIBv2Parser::QuotedSymbol: + case SMTLIBv2Parser::PS_Not: + case SMTLIBv2Parser::PS_Bool: + case SMTLIBv2Parser::PS_ContinuedExecution: + case SMTLIBv2Parser::PS_Error: + case SMTLIBv2Parser::PS_False: + case SMTLIBv2Parser::PS_ImmediateExit: + case SMTLIBv2Parser::PS_Incomplete: + case SMTLIBv2Parser::PS_Logic: + case SMTLIBv2Parser::PS_Memout: + case SMTLIBv2Parser::PS_Sat: + case SMTLIBv2Parser::PS_Success: + case SMTLIBv2Parser::PS_Theory: + case SMTLIBv2Parser::PS_True: + case SMTLIBv2Parser::PS_Unknown: + case SMTLIBv2Parser::PS_Unsupported: + case SMTLIBv2Parser::PS_Unsat: + case SMTLIBv2Parser::UndefinedSymbol: { + enterOuterAlt(_localctx, 2); + setState(250); + symbol(); + break; + } + + default: + throw NoViableAltException(this); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- IdentifierContext ------------------------------------------------------------------ + +SMTLIBv2Parser::IdentifierContext::IdentifierContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::IdentifierContext::symbol() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::IdentifierContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::IdentifierContext::GRW_Underscore() { + return getToken(SMTLIBv2Parser::GRW_Underscore, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::IdentifierContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::IdentifierContext::index() { + return getRuleContexts(); +} + +SMTLIBv2Parser::IndexContext* SMTLIBv2Parser::IdentifierContext::index(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::IdentifierContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleIdentifier; +} + +void SMTLIBv2Parser::IdentifierContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterIdentifier(this); +} + +void SMTLIBv2Parser::IdentifierContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitIdentifier(this); +} + +SMTLIBv2Parser::IdentifierContext* SMTLIBv2Parser::identifier() { + IdentifierContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 34, SMTLIBv2Parser::RuleIdentifier); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(264); + _errHandler->sync(this); + switch (_input->LA(1)) { + case SMTLIBv2Parser::QuotedSymbol: + case SMTLIBv2Parser::PS_Not: + case SMTLIBv2Parser::PS_Bool: + case SMTLIBv2Parser::PS_ContinuedExecution: + case SMTLIBv2Parser::PS_Error: + case SMTLIBv2Parser::PS_False: + case SMTLIBv2Parser::PS_ImmediateExit: + case SMTLIBv2Parser::PS_Incomplete: + case SMTLIBv2Parser::PS_Logic: + case SMTLIBv2Parser::PS_Memout: + case SMTLIBv2Parser::PS_Sat: + case SMTLIBv2Parser::PS_Success: + case SMTLIBv2Parser::PS_Theory: + case SMTLIBv2Parser::PS_True: + case SMTLIBv2Parser::PS_Unknown: + case SMTLIBv2Parser::PS_Unsupported: + case SMTLIBv2Parser::PS_Unsat: + case SMTLIBv2Parser::UndefinedSymbol: { + enterOuterAlt(_localctx, 1); + setState(253); + symbol(); + break; + } + + case SMTLIBv2Parser::ParOpen: { + enterOuterAlt(_localctx, 2); + setState(254); + match(SMTLIBv2Parser::ParOpen); + setState(255); + match(SMTLIBv2Parser::GRW_Underscore); + setState(256); + symbol(); + setState(258); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(257); + index(); + setState(260); + _errHandler->sync(this); + _la = _input->LA(1); + } while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || _la == SMTLIBv2Parser::Numeral + + || _la == SMTLIBv2Parser::UndefinedSymbol); + setState(262); + match(SMTLIBv2Parser::ParClose); + break; + } + + default: + throw NoViableAltException(this); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Attribute_valueContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Attribute_valueContext::Attribute_valueContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::Spec_constantContext* SMTLIBv2Parser::Attribute_valueContext::spec_constant() { + return getRuleContext(0); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::Attribute_valueContext::symbol() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Attribute_valueContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Attribute_valueContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::Attribute_valueContext::s_expr() { + return getRuleContexts(); +} + +SMTLIBv2Parser::S_exprContext* SMTLIBv2Parser::Attribute_valueContext::s_expr(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Attribute_valueContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleAttribute_value; +} + +void SMTLIBv2Parser::Attribute_valueContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterAttribute_value(this); +} + +void SMTLIBv2Parser::Attribute_valueContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitAttribute_value(this); +} + +SMTLIBv2Parser::Attribute_valueContext* SMTLIBv2Parser::attribute_value() { + Attribute_valueContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 36, SMTLIBv2Parser::RuleAttribute_value); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(276); + _errHandler->sync(this); + switch (_input->LA(1)) { + case SMTLIBv2Parser::String: + case SMTLIBv2Parser::Numeral: + case SMTLIBv2Parser::Binary: + case SMTLIBv2Parser::HexDecimal: + case SMTLIBv2Parser::Decimal: { + enterOuterAlt(_localctx, 1); + setState(266); + spec_constant(); + break; + } + + case SMTLIBv2Parser::QuotedSymbol: + case SMTLIBv2Parser::PS_Not: + case SMTLIBv2Parser::PS_Bool: + case SMTLIBv2Parser::PS_ContinuedExecution: + case SMTLIBv2Parser::PS_Error: + case SMTLIBv2Parser::PS_False: + case SMTLIBv2Parser::PS_ImmediateExit: + case SMTLIBv2Parser::PS_Incomplete: + case SMTLIBv2Parser::PS_Logic: + case SMTLIBv2Parser::PS_Memout: + case SMTLIBv2Parser::PS_Sat: + case SMTLIBv2Parser::PS_Success: + case SMTLIBv2Parser::PS_Theory: + case SMTLIBv2Parser::PS_True: + case SMTLIBv2Parser::PS_Unknown: + case SMTLIBv2Parser::PS_Unsupported: + case SMTLIBv2Parser::PS_Unsat: + case SMTLIBv2Parser::UndefinedSymbol: { + enterOuterAlt(_localctx, 2); + setState(267); + symbol(); + break; + } + + case SMTLIBv2Parser::ParOpen: { + enterOuterAlt(_localctx, 3); + setState(268); + match(SMTLIBv2Parser::ParOpen); + setState(272); + _errHandler->sync(this); + _la = _input->LA(1); + while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::ParOpen) + | (1ULL << SMTLIBv2Parser::String) + | (1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || ((((_la - 66) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 66)) & ((1ULL << (SMTLIBv2Parser::Numeral - 66)) + | (1ULL << (SMTLIBv2Parser::Binary - 66)) + | (1ULL << (SMTLIBv2Parser::HexDecimal - 66)) + | (1ULL << (SMTLIBv2Parser::Decimal - 66)) + | (1ULL << (SMTLIBv2Parser::Colon - 66)) + | (1ULL << (SMTLIBv2Parser::PK_AllStatistics - 66)) + | (1ULL << (SMTLIBv2Parser::PK_AssertionStackLevels - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Authors - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Category - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Chainable - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Definition - 66)) + | (1ULL << (SMTLIBv2Parser::PK_DiagnosticOutputChannel - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ErrorBehaviour - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Extension - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Funs - 66)) + | (1ULL << (SMTLIBv2Parser::PK_FunsDescription - 66)) + | (1ULL << (SMTLIBv2Parser::PK_GlobalDeclarations - 66)) + | (1ULL << (SMTLIBv2Parser::PK_InteractiveMode - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Language - 66)) + | (1ULL << (SMTLIBv2Parser::PK_LeftAssoc - 66)) + | (1ULL << (SMTLIBv2Parser::PK_License - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Named - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Name - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Notes - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Pattern - 66)) + | (1ULL << (SMTLIBv2Parser::PK_PrintSuccess - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssertions - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssignments - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceModels - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceProofs - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatAssumptions - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatCores - 66)) + | (1ULL << (SMTLIBv2Parser::PK_RandomSeed - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ReasonUnknown - 66)) + | (1ULL << (SMTLIBv2Parser::PK_RegularOutputChannel - 66)) + | (1ULL << (SMTLIBv2Parser::PK_ReproducibleResourceLimit - 66)) + | (1ULL << (SMTLIBv2Parser::PK_RightAssoc - 66)) + | (1ULL << (SMTLIBv2Parser::PK_SmtLibVersion - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Sorts - 66)) + | (1ULL << (SMTLIBv2Parser::PK_SortsDescription - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Source - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Status - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Theories - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Values - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Verbosity - 66)) + | (1ULL << (SMTLIBv2Parser::PK_Version - 66)) + | (1ULL << (SMTLIBv2Parser::UndefinedSymbol - 66)))) != 0)) { + setState(269); + s_expr(); + setState(274); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(275); + match(SMTLIBv2Parser::ParClose); + break; + } + + default: + throw NoViableAltException(this); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- AttributeContext ------------------------------------------------------------------ + +SMTLIBv2Parser::AttributeContext::AttributeContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::KeywordContext* SMTLIBv2Parser::AttributeContext::keyword() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Attribute_valueContext* SMTLIBv2Parser::AttributeContext::attribute_value() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::AttributeContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleAttribute; +} + +void SMTLIBv2Parser::AttributeContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterAttribute(this); +} + +void SMTLIBv2Parser::AttributeContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitAttribute(this); +} + +SMTLIBv2Parser::AttributeContext* SMTLIBv2Parser::attribute() { + AttributeContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 38, SMTLIBv2Parser::RuleAttribute); + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(282); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 11, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(278); + keyword(); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(279); + keyword(); + setState(280); + attribute_value(); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- SortContext ------------------------------------------------------------------ + +SMTLIBv2Parser::SortContext::SortContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::IdentifierContext* SMTLIBv2Parser::SortContext::identifier() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::SortContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::SortContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::SortContext::sort() { + return getRuleContexts(); +} + +SMTLIBv2Parser::SortContext* SMTLIBv2Parser::SortContext::sort(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::SortContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleSort; +} + +void SMTLIBv2Parser::SortContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterSort(this); +} + +void SMTLIBv2Parser::SortContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitSort(this); +} + +SMTLIBv2Parser::SortContext* SMTLIBv2Parser::sort() { + SortContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 40, SMTLIBv2Parser::RuleSort); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(294); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 13, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(284); + identifier(); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(285); + match(SMTLIBv2Parser::ParOpen); + setState(286); + identifier(); + setState(288); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(287); + sort(); + setState(290); + _errHandler->sync(this); + _la = _input->LA(1); + } while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::ParOpen) + | (1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || _la == SMTLIBv2Parser::UndefinedSymbol); + setState(292); + match(SMTLIBv2Parser::ParClose); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Qual_identiferContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Qual_identiferContext::Qual_identiferContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::IdentifierContext* SMTLIBv2Parser::Qual_identiferContext::identifier() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Qual_identiferContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Qual_identiferContext::GRW_As() { + return getToken(SMTLIBv2Parser::GRW_As, 0); +} + +SMTLIBv2Parser::SortContext* SMTLIBv2Parser::Qual_identiferContext::sort() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Qual_identiferContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + + +size_t SMTLIBv2Parser::Qual_identiferContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleQual_identifer; +} + +void SMTLIBv2Parser::Qual_identiferContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterQual_identifer(this); +} + +void SMTLIBv2Parser::Qual_identiferContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitQual_identifer(this); +} + +SMTLIBv2Parser::Qual_identiferContext* SMTLIBv2Parser::qual_identifer() { + Qual_identiferContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 42, SMTLIBv2Parser::RuleQual_identifer); + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(303); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 14, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(296); + identifier(); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(297); + match(SMTLIBv2Parser::ParOpen); + setState(298); + match(SMTLIBv2Parser::GRW_As); + setState(299); + identifier(); + setState(300); + sort(); + setState(301); + match(SMTLIBv2Parser::ParClose); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Var_bindingContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Var_bindingContext::Var_bindingContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Var_bindingContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::Var_bindingContext::symbol() { + return getRuleContext(0); +} + +SMTLIBv2Parser::TermContext* SMTLIBv2Parser::Var_bindingContext::term() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Var_bindingContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + + +size_t SMTLIBv2Parser::Var_bindingContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleVar_binding; +} + +void SMTLIBv2Parser::Var_bindingContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterVar_binding(this); +} + +void SMTLIBv2Parser::Var_bindingContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitVar_binding(this); +} + +SMTLIBv2Parser::Var_bindingContext* SMTLIBv2Parser::var_binding() { + Var_bindingContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 44, SMTLIBv2Parser::RuleVar_binding); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(305); + match(SMTLIBv2Parser::ParOpen); + setState(306); + symbol(); + setState(307); + term(); + setState(308); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Sorted_varContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Sorted_varContext::Sorted_varContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Sorted_varContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::Sorted_varContext::symbol() { + return getRuleContext(0); +} + +SMTLIBv2Parser::SortContext* SMTLIBv2Parser::Sorted_varContext::sort() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Sorted_varContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + + +size_t SMTLIBv2Parser::Sorted_varContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleSorted_var; +} + +void SMTLIBv2Parser::Sorted_varContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterSorted_var(this); +} + +void SMTLIBv2Parser::Sorted_varContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitSorted_var(this); +} + +SMTLIBv2Parser::Sorted_varContext* SMTLIBv2Parser::sorted_var() { + Sorted_varContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 46, SMTLIBv2Parser::RuleSorted_var); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(310); + match(SMTLIBv2Parser::ParOpen); + setState(311); + symbol(); + setState(312); + sort(); + setState(313); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- PatternContext ------------------------------------------------------------------ + +SMTLIBv2Parser::PatternContext::PatternContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +std::vector SMTLIBv2Parser::PatternContext::symbol() { + return getRuleContexts(); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::PatternContext::symbol(size_t i) { + return getRuleContext(i); +} + +tree::TerminalNode* SMTLIBv2Parser::PatternContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::PatternContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + + +size_t SMTLIBv2Parser::PatternContext::getRuleIndex() const { + return SMTLIBv2Parser::RulePattern; +} + +void SMTLIBv2Parser::PatternContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterPattern(this); +} + +void SMTLIBv2Parser::PatternContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitPattern(this); +} + +SMTLIBv2Parser::PatternContext* SMTLIBv2Parser::pattern() { + PatternContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 48, SMTLIBv2Parser::RulePattern); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(325); + _errHandler->sync(this); + switch (_input->LA(1)) { + case SMTLIBv2Parser::QuotedSymbol: + case SMTLIBv2Parser::PS_Not: + case SMTLIBv2Parser::PS_Bool: + case SMTLIBv2Parser::PS_ContinuedExecution: + case SMTLIBv2Parser::PS_Error: + case SMTLIBv2Parser::PS_False: + case SMTLIBv2Parser::PS_ImmediateExit: + case SMTLIBv2Parser::PS_Incomplete: + case SMTLIBv2Parser::PS_Logic: + case SMTLIBv2Parser::PS_Memout: + case SMTLIBv2Parser::PS_Sat: + case SMTLIBv2Parser::PS_Success: + case SMTLIBv2Parser::PS_Theory: + case SMTLIBv2Parser::PS_True: + case SMTLIBv2Parser::PS_Unknown: + case SMTLIBv2Parser::PS_Unsupported: + case SMTLIBv2Parser::PS_Unsat: + case SMTLIBv2Parser::UndefinedSymbol: { + enterOuterAlt(_localctx, 1); + setState(315); + symbol(); + break; + } + + case SMTLIBv2Parser::ParOpen: { + enterOuterAlt(_localctx, 2); + setState(316); + match(SMTLIBv2Parser::ParOpen); + setState(317); + symbol(); + setState(319); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(318); + symbol(); + setState(321); + _errHandler->sync(this); + _la = _input->LA(1); + } while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || _la == SMTLIBv2Parser::UndefinedSymbol); + setState(323); + match(SMTLIBv2Parser::ParClose); + break; + } + + default: + throw NoViableAltException(this); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Match_caseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Match_caseContext::Match_caseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Match_caseContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +SMTLIBv2Parser::PatternContext* SMTLIBv2Parser::Match_caseContext::pattern() { + return getRuleContext(0); +} + +SMTLIBv2Parser::TermContext* SMTLIBv2Parser::Match_caseContext::term() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Match_caseContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + + +size_t SMTLIBv2Parser::Match_caseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleMatch_case; +} + +void SMTLIBv2Parser::Match_caseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterMatch_case(this); +} + +void SMTLIBv2Parser::Match_caseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitMatch_case(this); +} + +SMTLIBv2Parser::Match_caseContext* SMTLIBv2Parser::match_case() { + Match_caseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 50, SMTLIBv2Parser::RuleMatch_case); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(327); + match(SMTLIBv2Parser::ParOpen); + setState(328); + pattern(); + setState(329); + term(); + setState(330); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- TermContext ------------------------------------------------------------------ + +SMTLIBv2Parser::TermContext::TermContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::Spec_constantContext* SMTLIBv2Parser::TermContext::spec_constant() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Qual_identiferContext* SMTLIBv2Parser::TermContext::qual_identifer() { + return getRuleContext(0); +} + +std::vector SMTLIBv2Parser::TermContext::ParOpen() { + return getTokens(SMTLIBv2Parser::ParOpen); +} + +tree::TerminalNode* SMTLIBv2Parser::TermContext::ParOpen(size_t i) { + return getToken(SMTLIBv2Parser::ParOpen, i); +} + +std::vector SMTLIBv2Parser::TermContext::ParClose() { + return getTokens(SMTLIBv2Parser::ParClose); +} + +tree::TerminalNode* SMTLIBv2Parser::TermContext::ParClose(size_t i) { + return getToken(SMTLIBv2Parser::ParClose, i); +} + +std::vector SMTLIBv2Parser::TermContext::term() { + return getRuleContexts(); +} + +SMTLIBv2Parser::TermContext* SMTLIBv2Parser::TermContext::term(size_t i) { + return getRuleContext(i); +} + +tree::TerminalNode* SMTLIBv2Parser::TermContext::GRW_Let() { + return getToken(SMTLIBv2Parser::GRW_Let, 0); +} + +std::vector SMTLIBv2Parser::TermContext::var_binding() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Var_bindingContext* SMTLIBv2Parser::TermContext::var_binding(size_t i) { + return getRuleContext(i); +} + +tree::TerminalNode* SMTLIBv2Parser::TermContext::GRW_Forall() { + return getToken(SMTLIBv2Parser::GRW_Forall, 0); +} + +std::vector SMTLIBv2Parser::TermContext::sorted_var() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Sorted_varContext* SMTLIBv2Parser::TermContext::sorted_var(size_t i) { + return getRuleContext(i); +} + +tree::TerminalNode* SMTLIBv2Parser::TermContext::GRW_Exists() { + return getToken(SMTLIBv2Parser::GRW_Exists, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::TermContext::GRW_Match() { + return getToken(SMTLIBv2Parser::GRW_Match, 0); +} + +std::vector SMTLIBv2Parser::TermContext::match_case() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Match_caseContext* SMTLIBv2Parser::TermContext::match_case(size_t i) { + return getRuleContext(i); +} + +tree::TerminalNode* SMTLIBv2Parser::TermContext::GRW_Exclamation() { + return getToken(SMTLIBv2Parser::GRW_Exclamation, 0); +} + +std::vector SMTLIBv2Parser::TermContext::attribute() { + return getRuleContexts(); +} + +SMTLIBv2Parser::AttributeContext* SMTLIBv2Parser::TermContext::attribute(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::TermContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleTerm; +} + +void SMTLIBv2Parser::TermContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterTerm(this); +} + +void SMTLIBv2Parser::TermContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitTerm(this); +} + +SMTLIBv2Parser::TermContext* SMTLIBv2Parser::term() { + TermContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 52, SMTLIBv2Parser::RuleTerm); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(401); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 23, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(332); + spec_constant(); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(333); + qual_identifer(); + break; + } + + case 3: { + enterOuterAlt(_localctx, 3); + setState(334); + match(SMTLIBv2Parser::ParOpen); + setState(335); + qual_identifer(); + setState(337); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(336); + term(); + setState(339); + _errHandler->sync(this); + _la = _input->LA(1); + } while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::ParOpen) + | (1ULL << SMTLIBv2Parser::String) + | (1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || ((((_la - 66) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 66)) & ((1ULL << (SMTLIBv2Parser::Numeral - 66)) + | (1ULL << (SMTLIBv2Parser::Binary - 66)) + | (1ULL << (SMTLIBv2Parser::HexDecimal - 66)) + | (1ULL << (SMTLIBv2Parser::Decimal - 66)) + | (1ULL << (SMTLIBv2Parser::UndefinedSymbol - 66)))) != 0)); + setState(341); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 4: { + enterOuterAlt(_localctx, 4); + setState(343); + match(SMTLIBv2Parser::ParOpen); + setState(344); + match(SMTLIBv2Parser::GRW_Let); + setState(345); + match(SMTLIBv2Parser::ParOpen); + setState(347); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(346); + var_binding(); + setState(349); + _errHandler->sync(this); + _la = _input->LA(1); + } while (_la == SMTLIBv2Parser::ParOpen); + setState(351); + match(SMTLIBv2Parser::ParClose); + setState(352); + term(); + setState(353); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 5: { + enterOuterAlt(_localctx, 5); + setState(355); + match(SMTLIBv2Parser::ParOpen); + setState(356); + match(SMTLIBv2Parser::GRW_Forall); + setState(357); + match(SMTLIBv2Parser::ParOpen); + setState(359); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(358); + sorted_var(); + setState(361); + _errHandler->sync(this); + _la = _input->LA(1); + } while (_la == SMTLIBv2Parser::ParOpen); + setState(363); + match(SMTLIBv2Parser::ParClose); + setState(364); + term(); + setState(365); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 6: { + enterOuterAlt(_localctx, 6); + setState(367); + match(SMTLIBv2Parser::ParOpen); + setState(368); + match(SMTLIBv2Parser::GRW_Exists); + setState(369); + match(SMTLIBv2Parser::ParOpen); + setState(371); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(370); + sorted_var(); + setState(373); + _errHandler->sync(this); + _la = _input->LA(1); + } while (_la == SMTLIBv2Parser::ParOpen); + setState(375); + match(SMTLIBv2Parser::ParClose); + setState(376); + term(); + setState(377); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 7: { + enterOuterAlt(_localctx, 7); + setState(379); + match(SMTLIBv2Parser::ParOpen); + setState(380); + match(SMTLIBv2Parser::GRW_Match); + setState(381); + term(); + setState(382); + match(SMTLIBv2Parser::ParOpen); + setState(384); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(383); + match_case(); + setState(386); + _errHandler->sync(this); + _la = _input->LA(1); + } while (_la == SMTLIBv2Parser::ParOpen); + setState(388); + match(SMTLIBv2Parser::ParClose); + setState(389); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 8: { + enterOuterAlt(_localctx, 8); + setState(391); + match(SMTLIBv2Parser::ParOpen); + setState(392); + match(SMTLIBv2Parser::GRW_Exclamation); + setState(393); + term(); + setState(395); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(394); + attribute(); + setState(397); + _errHandler->sync(this); + _la = _input->LA(1); + } while (((((_la - 70) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 70)) & ((1ULL << (SMTLIBv2Parser::Colon - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AllStatistics - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AssertionStackLevels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Authors - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Category - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Chainable - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Definition - 70)) + | (1ULL << (SMTLIBv2Parser::PK_DiagnosticOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ErrorBehaviour - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Extension - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Funs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_FunsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_GlobalDeclarations - 70)) + | (1ULL << (SMTLIBv2Parser::PK_InteractiveMode - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Language - 70)) + | (1ULL << (SMTLIBv2Parser::PK_LeftAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_License - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Named - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Name - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Notes - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Pattern - 70)) + | (1ULL << (SMTLIBv2Parser::PK_PrintSuccess - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssertions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssignments - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceModels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceProofs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatAssumptions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatCores - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RandomSeed - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReasonUnknown - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RegularOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReproducibleResourceLimit - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RightAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SmtLibVersion - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Sorts - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SortsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Source - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Status - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Theories - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Values - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Verbosity - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Version - 70)))) != 0)); + setState(399); + match(SMTLIBv2Parser::ParClose); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Sort_symbol_declContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Sort_symbol_declContext::Sort_symbol_declContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Sort_symbol_declContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +SMTLIBv2Parser::IdentifierContext* SMTLIBv2Parser::Sort_symbol_declContext::identifier() { + return getRuleContext(0); +} + +SMTLIBv2Parser::NumeralContext* SMTLIBv2Parser::Sort_symbol_declContext::numeral() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Sort_symbol_declContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::Sort_symbol_declContext::attribute() { + return getRuleContexts(); +} + +SMTLIBv2Parser::AttributeContext* SMTLIBv2Parser::Sort_symbol_declContext::attribute(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Sort_symbol_declContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleSort_symbol_decl; +} + +void SMTLIBv2Parser::Sort_symbol_declContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterSort_symbol_decl(this); +} + +void SMTLIBv2Parser::Sort_symbol_declContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitSort_symbol_decl(this); +} + +SMTLIBv2Parser::Sort_symbol_declContext* SMTLIBv2Parser::sort_symbol_decl() { + Sort_symbol_declContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 54, SMTLIBv2Parser::RuleSort_symbol_decl); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(403); + match(SMTLIBv2Parser::ParOpen); + setState(404); + identifier(); + setState(405); + numeral(); + setState(409); + _errHandler->sync(this); + _la = _input->LA(1); + while (((((_la - 70) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 70)) & ((1ULL << (SMTLIBv2Parser::Colon - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AllStatistics - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AssertionStackLevels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Authors - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Category - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Chainable - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Definition - 70)) + | (1ULL << (SMTLIBv2Parser::PK_DiagnosticOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ErrorBehaviour - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Extension - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Funs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_FunsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_GlobalDeclarations - 70)) + | (1ULL << (SMTLIBv2Parser::PK_InteractiveMode - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Language - 70)) + | (1ULL << (SMTLIBv2Parser::PK_LeftAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_License - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Named - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Name - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Notes - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Pattern - 70)) + | (1ULL << (SMTLIBv2Parser::PK_PrintSuccess - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssertions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssignments - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceModels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceProofs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatAssumptions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatCores - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RandomSeed - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReasonUnknown - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RegularOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReproducibleResourceLimit - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RightAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SmtLibVersion - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Sorts - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SortsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Source - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Status - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Theories - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Values - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Verbosity - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Version - 70)))) != 0)) { + setState(406); + attribute(); + setState(411); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(412); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Meta_spec_constantContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Meta_spec_constantContext::Meta_spec_constantContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Meta_spec_constantContext::GRW_Numeral() { + return getToken(SMTLIBv2Parser::GRW_Numeral, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Meta_spec_constantContext::GRW_Decimal() { + return getToken(SMTLIBv2Parser::GRW_Decimal, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Meta_spec_constantContext::GRW_String() { + return getToken(SMTLIBv2Parser::GRW_String, 0); +} + + +size_t SMTLIBv2Parser::Meta_spec_constantContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleMeta_spec_constant; +} + +void SMTLIBv2Parser::Meta_spec_constantContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterMeta_spec_constant(this); +} + +void SMTLIBv2Parser::Meta_spec_constantContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitMeta_spec_constant(this); +} + +SMTLIBv2Parser::Meta_spec_constantContext* SMTLIBv2Parser::meta_spec_constant() { + Meta_spec_constantContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 56, SMTLIBv2Parser::RuleMeta_spec_constant); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(414); + _la = _input->LA(1); + if (!(((((_la - 57) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 57)) & ((1ULL << (SMTLIBv2Parser::GRW_Decimal - 57)) + | (1ULL << (SMTLIBv2Parser::GRW_Numeral - 57)) + | (1ULL << (SMTLIBv2Parser::GRW_String - 57)))) != 0))) { + _errHandler->recoverInline(this); + } + else { + _errHandler->reportMatch(this); + consume(); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Fun_symbol_declContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Fun_symbol_declContext::Fun_symbol_declContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Fun_symbol_declContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +SMTLIBv2Parser::Spec_constantContext* SMTLIBv2Parser::Fun_symbol_declContext::spec_constant() { + return getRuleContext(0); +} + +std::vector SMTLIBv2Parser::Fun_symbol_declContext::sort() { + return getRuleContexts(); +} + +SMTLIBv2Parser::SortContext* SMTLIBv2Parser::Fun_symbol_declContext::sort(size_t i) { + return getRuleContext(i); +} + +tree::TerminalNode* SMTLIBv2Parser::Fun_symbol_declContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::Fun_symbol_declContext::attribute() { + return getRuleContexts(); +} + +SMTLIBv2Parser::AttributeContext* SMTLIBv2Parser::Fun_symbol_declContext::attribute(size_t i) { + return getRuleContext(i); +} + +SMTLIBv2Parser::Meta_spec_constantContext* SMTLIBv2Parser::Fun_symbol_declContext::meta_spec_constant() { + return getRuleContext(0); +} + +SMTLIBv2Parser::IdentifierContext* SMTLIBv2Parser::Fun_symbol_declContext::identifier() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::Fun_symbol_declContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleFun_symbol_decl; +} + +void SMTLIBv2Parser::Fun_symbol_declContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterFun_symbol_decl(this); +} + +void SMTLIBv2Parser::Fun_symbol_declContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitFun_symbol_decl(this); +} + +SMTLIBv2Parser::Fun_symbol_declContext* SMTLIBv2Parser::fun_symbol_decl() { + Fun_symbol_declContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 58, SMTLIBv2Parser::RuleFun_symbol_decl); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(453); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 29, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(416); + match(SMTLIBv2Parser::ParOpen); + setState(417); + spec_constant(); + setState(418); + sort(); + setState(422); + _errHandler->sync(this); + _la = _input->LA(1); + while (((((_la - 70) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 70)) & ((1ULL << (SMTLIBv2Parser::Colon - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AllStatistics - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AssertionStackLevels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Authors - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Category - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Chainable - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Definition - 70)) + | (1ULL << (SMTLIBv2Parser::PK_DiagnosticOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ErrorBehaviour - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Extension - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Funs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_FunsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_GlobalDeclarations - 70)) + | (1ULL << (SMTLIBv2Parser::PK_InteractiveMode - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Language - 70)) + | (1ULL << (SMTLIBv2Parser::PK_LeftAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_License - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Named - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Name - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Notes - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Pattern - 70)) + | (1ULL << (SMTLIBv2Parser::PK_PrintSuccess - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssertions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssignments - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceModels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceProofs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatAssumptions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatCores - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RandomSeed - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReasonUnknown - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RegularOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReproducibleResourceLimit - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RightAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SmtLibVersion - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Sorts - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SortsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Source - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Status - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Theories - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Values - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Verbosity - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Version - 70)))) != 0)) { + setState(419); + attribute(); + setState(424); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(425); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(427); + match(SMTLIBv2Parser::ParOpen); + setState(428); + meta_spec_constant(); + setState(429); + sort(); + setState(433); + _errHandler->sync(this); + _la = _input->LA(1); + while (((((_la - 70) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 70)) & ((1ULL << (SMTLIBv2Parser::Colon - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AllStatistics - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AssertionStackLevels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Authors - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Category - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Chainable - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Definition - 70)) + | (1ULL << (SMTLIBv2Parser::PK_DiagnosticOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ErrorBehaviour - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Extension - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Funs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_FunsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_GlobalDeclarations - 70)) + | (1ULL << (SMTLIBv2Parser::PK_InteractiveMode - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Language - 70)) + | (1ULL << (SMTLIBv2Parser::PK_LeftAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_License - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Named - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Name - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Notes - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Pattern - 70)) + | (1ULL << (SMTLIBv2Parser::PK_PrintSuccess - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssertions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssignments - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceModels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceProofs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatAssumptions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatCores - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RandomSeed - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReasonUnknown - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RegularOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReproducibleResourceLimit - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RightAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SmtLibVersion - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Sorts - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SortsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Source - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Status - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Theories - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Values - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Verbosity - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Version - 70)))) != 0)) { + setState(430); + attribute(); + setState(435); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(436); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 3: { + enterOuterAlt(_localctx, 3); + setState(438); + match(SMTLIBv2Parser::ParOpen); + setState(439); + identifier(); + setState(441); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(440); + sort(); + setState(443); + _errHandler->sync(this); + _la = _input->LA(1); + } while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::ParOpen) + | (1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || _la == SMTLIBv2Parser::UndefinedSymbol); + setState(448); + _errHandler->sync(this); + _la = _input->LA(1); + while (((((_la - 70) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 70)) & ((1ULL << (SMTLIBv2Parser::Colon - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AllStatistics - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AssertionStackLevels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Authors - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Category - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Chainable - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Definition - 70)) + | (1ULL << (SMTLIBv2Parser::PK_DiagnosticOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ErrorBehaviour - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Extension - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Funs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_FunsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_GlobalDeclarations - 70)) + | (1ULL << (SMTLIBv2Parser::PK_InteractiveMode - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Language - 70)) + | (1ULL << (SMTLIBv2Parser::PK_LeftAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_License - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Named - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Name - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Notes - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Pattern - 70)) + | (1ULL << (SMTLIBv2Parser::PK_PrintSuccess - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssertions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssignments - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceModels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceProofs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatAssumptions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatCores - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RandomSeed - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReasonUnknown - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RegularOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReproducibleResourceLimit - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RightAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SmtLibVersion - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Sorts - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SortsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Source - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Status - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Theories - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Values - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Verbosity - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Version - 70)))) != 0)) { + setState(445); + attribute(); + setState(450); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(451); + match(SMTLIBv2Parser::ParClose); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Par_fun_symbol_declContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Par_fun_symbol_declContext::Par_fun_symbol_declContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::Fun_symbol_declContext* SMTLIBv2Parser::Par_fun_symbol_declContext::fun_symbol_decl() { + return getRuleContext(0); +} + +std::vector SMTLIBv2Parser::Par_fun_symbol_declContext::ParOpen() { + return getTokens(SMTLIBv2Parser::ParOpen); +} + +tree::TerminalNode* SMTLIBv2Parser::Par_fun_symbol_declContext::ParOpen(size_t i) { + return getToken(SMTLIBv2Parser::ParOpen, i); +} + +tree::TerminalNode* SMTLIBv2Parser::Par_fun_symbol_declContext::GRW_Par() { + return getToken(SMTLIBv2Parser::GRW_Par, 0); +} + +std::vector SMTLIBv2Parser::Par_fun_symbol_declContext::ParClose() { + return getTokens(SMTLIBv2Parser::ParClose); +} + +tree::TerminalNode* SMTLIBv2Parser::Par_fun_symbol_declContext::ParClose(size_t i) { + return getToken(SMTLIBv2Parser::ParClose, i); +} + +SMTLIBv2Parser::IdentifierContext* SMTLIBv2Parser::Par_fun_symbol_declContext::identifier() { + return getRuleContext(0); +} + +std::vector SMTLIBv2Parser::Par_fun_symbol_declContext::symbol() { + return getRuleContexts(); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::Par_fun_symbol_declContext::symbol(size_t i) { + return getRuleContext(i); +} + +std::vector SMTLIBv2Parser::Par_fun_symbol_declContext::sort() { + return getRuleContexts(); +} + +SMTLIBv2Parser::SortContext* SMTLIBv2Parser::Par_fun_symbol_declContext::sort(size_t i) { + return getRuleContext(i); +} + +std::vector SMTLIBv2Parser::Par_fun_symbol_declContext::attribute() { + return getRuleContexts(); +} + +SMTLIBv2Parser::AttributeContext* SMTLIBv2Parser::Par_fun_symbol_declContext::attribute(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Par_fun_symbol_declContext::getRuleIndex() const { + return SMTLIBv2Parser::RulePar_fun_symbol_decl; +} + +void SMTLIBv2Parser::Par_fun_symbol_declContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterPar_fun_symbol_decl(this); +} + +void SMTLIBv2Parser::Par_fun_symbol_declContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitPar_fun_symbol_decl(this); +} + +SMTLIBv2Parser::Par_fun_symbol_declContext* SMTLIBv2Parser::par_fun_symbol_decl() { + Par_fun_symbol_declContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 60, SMTLIBv2Parser::RulePar_fun_symbol_decl); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(481); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 33, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(455); + fun_symbol_decl(); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(456); + match(SMTLIBv2Parser::ParOpen); + setState(457); + match(SMTLIBv2Parser::GRW_Par); + setState(458); + match(SMTLIBv2Parser::ParOpen); + setState(460); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(459); + symbol(); + setState(462); + _errHandler->sync(this); + _la = _input->LA(1); + } while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || _la == SMTLIBv2Parser::UndefinedSymbol); + setState(464); + match(SMTLIBv2Parser::ParClose); + setState(465); + match(SMTLIBv2Parser::ParOpen); + setState(466); + identifier(); + setState(468); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(467); + sort(); + setState(470); + _errHandler->sync(this); + _la = _input->LA(1); + } while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::ParOpen) + | (1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || _la == SMTLIBv2Parser::UndefinedSymbol); + setState(475); + _errHandler->sync(this); + _la = _input->LA(1); + while (((((_la - 70) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 70)) & ((1ULL << (SMTLIBv2Parser::Colon - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AllStatistics - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AssertionStackLevels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Authors - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Category - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Chainable - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Definition - 70)) + | (1ULL << (SMTLIBv2Parser::PK_DiagnosticOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ErrorBehaviour - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Extension - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Funs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_FunsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_GlobalDeclarations - 70)) + | (1ULL << (SMTLIBv2Parser::PK_InteractiveMode - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Language - 70)) + | (1ULL << (SMTLIBv2Parser::PK_LeftAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_License - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Named - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Name - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Notes - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Pattern - 70)) + | (1ULL << (SMTLIBv2Parser::PK_PrintSuccess - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssertions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssignments - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceModels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceProofs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatAssumptions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatCores - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RandomSeed - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReasonUnknown - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RegularOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReproducibleResourceLimit - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RightAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SmtLibVersion - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Sorts - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SortsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Source - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Status - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Theories - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Values - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Verbosity - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Version - 70)))) != 0)) { + setState(472); + attribute(); + setState(477); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(478); + match(SMTLIBv2Parser::ParClose); + setState(479); + match(SMTLIBv2Parser::ParClose); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Theory_attributeContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Theory_attributeContext::Theory_attributeContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Theory_attributeContext::PK_Sorts() { + return getToken(SMTLIBv2Parser::PK_Sorts, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Theory_attributeContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Theory_attributeContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::Theory_attributeContext::sort_symbol_decl() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Sort_symbol_declContext* SMTLIBv2Parser::Theory_attributeContext::sort_symbol_decl(size_t i) { + return getRuleContext(i); +} + +tree::TerminalNode* SMTLIBv2Parser::Theory_attributeContext::PK_Funs() { + return getToken(SMTLIBv2Parser::PK_Funs, 0); +} + +std::vector SMTLIBv2Parser::Theory_attributeContext::par_fun_symbol_decl() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Par_fun_symbol_declContext* SMTLIBv2Parser::Theory_attributeContext::par_fun_symbol_decl(size_t i) { + return getRuleContext(i); +} + +tree::TerminalNode* SMTLIBv2Parser::Theory_attributeContext::PK_SortsDescription() { + return getToken(SMTLIBv2Parser::PK_SortsDescription, 0); +} + +SMTLIBv2Parser::StringContext* SMTLIBv2Parser::Theory_attributeContext::string() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Theory_attributeContext::PK_FunsDescription() { + return getToken(SMTLIBv2Parser::PK_FunsDescription, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Theory_attributeContext::PK_Definition() { + return getToken(SMTLIBv2Parser::PK_Definition, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Theory_attributeContext::PK_Values() { + return getToken(SMTLIBv2Parser::PK_Values, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Theory_attributeContext::PK_Notes() { + return getToken(SMTLIBv2Parser::PK_Notes, 0); +} + +SMTLIBv2Parser::AttributeContext* SMTLIBv2Parser::Theory_attributeContext::attribute() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::Theory_attributeContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleTheory_attribute; +} + +void SMTLIBv2Parser::Theory_attributeContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterTheory_attribute(this); +} + +void SMTLIBv2Parser::Theory_attributeContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitTheory_attribute(this); +} + +SMTLIBv2Parser::Theory_attributeContext* SMTLIBv2Parser::theory_attribute() { + Theory_attributeContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 62, SMTLIBv2Parser::RuleTheory_attribute); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(512); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 36, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(483); + match(SMTLIBv2Parser::PK_Sorts); + setState(484); + match(SMTLIBv2Parser::ParOpen); + setState(486); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(485); + sort_symbol_decl(); + setState(488); + _errHandler->sync(this); + _la = _input->LA(1); + } while (_la == SMTLIBv2Parser::ParOpen); + setState(490); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(492); + match(SMTLIBv2Parser::PK_Funs); + setState(493); + match(SMTLIBv2Parser::ParOpen); + setState(495); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(494); + par_fun_symbol_decl(); + setState(497); + _errHandler->sync(this); + _la = _input->LA(1); + } while (_la == SMTLIBv2Parser::ParOpen); + setState(499); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 3: { + enterOuterAlt(_localctx, 3); + setState(501); + match(SMTLIBv2Parser::PK_SortsDescription); + setState(502); + string(); + break; + } + + case 4: { + enterOuterAlt(_localctx, 4); + setState(503); + match(SMTLIBv2Parser::PK_FunsDescription); + setState(504); + string(); + break; + } + + case 5: { + enterOuterAlt(_localctx, 5); + setState(505); + match(SMTLIBv2Parser::PK_Definition); + setState(506); + string(); + break; + } + + case 6: { + enterOuterAlt(_localctx, 6); + setState(507); + match(SMTLIBv2Parser::PK_Values); + setState(508); + string(); + break; + } + + case 7: { + enterOuterAlt(_localctx, 7); + setState(509); + match(SMTLIBv2Parser::PK_Notes); + setState(510); + string(); + break; + } + + case 8: { + enterOuterAlt(_localctx, 8); + setState(511); + attribute(); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Theory_declContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Theory_declContext::Theory_declContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Theory_declContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Theory_declContext::PS_Theory() { + return getToken(SMTLIBv2Parser::PS_Theory, 0); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::Theory_declContext::symbol() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Theory_declContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::Theory_declContext::theory_attribute() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Theory_attributeContext* SMTLIBv2Parser::Theory_declContext::theory_attribute(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Theory_declContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleTheory_decl; +} + +void SMTLIBv2Parser::Theory_declContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterTheory_decl(this); +} + +void SMTLIBv2Parser::Theory_declContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitTheory_decl(this); +} + +SMTLIBv2Parser::Theory_declContext* SMTLIBv2Parser::theory_decl() { + Theory_declContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 64, SMTLIBv2Parser::RuleTheory_decl); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(514); + match(SMTLIBv2Parser::ParOpen); + setState(515); + match(SMTLIBv2Parser::PS_Theory); + setState(516); + symbol(); + setState(518); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(517); + theory_attribute(); + setState(520); + _errHandler->sync(this); + _la = _input->LA(1); + } while (((((_la - 70) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 70)) & ((1ULL << (SMTLIBv2Parser::Colon - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AllStatistics - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AssertionStackLevels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Authors - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Category - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Chainable - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Definition - 70)) + | (1ULL << (SMTLIBv2Parser::PK_DiagnosticOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ErrorBehaviour - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Extension - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Funs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_FunsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_GlobalDeclarations - 70)) + | (1ULL << (SMTLIBv2Parser::PK_InteractiveMode - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Language - 70)) + | (1ULL << (SMTLIBv2Parser::PK_LeftAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_License - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Named - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Name - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Notes - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Pattern - 70)) + | (1ULL << (SMTLIBv2Parser::PK_PrintSuccess - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssertions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssignments - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceModels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceProofs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatAssumptions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatCores - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RandomSeed - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReasonUnknown - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RegularOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReproducibleResourceLimit - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RightAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SmtLibVersion - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Sorts - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SortsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Source - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Status - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Theories - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Values - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Verbosity - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Version - 70)))) != 0)); + setState(522); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Logic_attribueContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Logic_attribueContext::Logic_attribueContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Logic_attribueContext::PK_Theories() { + return getToken(SMTLIBv2Parser::PK_Theories, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Logic_attribueContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Logic_attribueContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::Logic_attribueContext::symbol() { + return getRuleContexts(); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::Logic_attribueContext::symbol(size_t i) { + return getRuleContext(i); +} + +tree::TerminalNode* SMTLIBv2Parser::Logic_attribueContext::PK_Language() { + return getToken(SMTLIBv2Parser::PK_Language, 0); +} + +SMTLIBv2Parser::StringContext* SMTLIBv2Parser::Logic_attribueContext::string() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Logic_attribueContext::PK_Extension() { + return getToken(SMTLIBv2Parser::PK_Extension, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Logic_attribueContext::PK_Values() { + return getToken(SMTLIBv2Parser::PK_Values, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Logic_attribueContext::PK_Notes() { + return getToken(SMTLIBv2Parser::PK_Notes, 0); +} + +SMTLIBv2Parser::AttributeContext* SMTLIBv2Parser::Logic_attribueContext::attribute() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::Logic_attribueContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleLogic_attribue; +} + +void SMTLIBv2Parser::Logic_attribueContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterLogic_attribue(this); +} + +void SMTLIBv2Parser::Logic_attribueContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitLogic_attribue(this); +} + +SMTLIBv2Parser::Logic_attribueContext* SMTLIBv2Parser::logic_attribue() { + Logic_attribueContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 66, SMTLIBv2Parser::RuleLogic_attribue); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(542); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 39, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(524); + match(SMTLIBv2Parser::PK_Theories); + setState(525); + match(SMTLIBv2Parser::ParOpen); + setState(527); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(526); + symbol(); + setState(529); + _errHandler->sync(this); + _la = _input->LA(1); + } while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || _la == SMTLIBv2Parser::UndefinedSymbol); + setState(531); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(533); + match(SMTLIBv2Parser::PK_Language); + setState(534); + string(); + break; + } + + case 3: { + enterOuterAlt(_localctx, 3); + setState(535); + match(SMTLIBv2Parser::PK_Extension); + setState(536); + string(); + break; + } + + case 4: { + enterOuterAlt(_localctx, 4); + setState(537); + match(SMTLIBv2Parser::PK_Values); + setState(538); + string(); + break; + } + + case 5: { + enterOuterAlt(_localctx, 5); + setState(539); + match(SMTLIBv2Parser::PK_Notes); + setState(540); + string(); + break; + } + + case 6: { + enterOuterAlt(_localctx, 6); + setState(541); + attribute(); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- LogicContext ------------------------------------------------------------------ + +SMTLIBv2Parser::LogicContext::LogicContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::LogicContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::LogicContext::PS_Logic() { + return getToken(SMTLIBv2Parser::PS_Logic, 0); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::LogicContext::symbol() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::LogicContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::LogicContext::logic_attribue() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Logic_attribueContext* SMTLIBv2Parser::LogicContext::logic_attribue(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::LogicContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleLogic; +} + +void SMTLIBv2Parser::LogicContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterLogic(this); +} + +void SMTLIBv2Parser::LogicContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitLogic(this); +} + +SMTLIBv2Parser::LogicContext* SMTLIBv2Parser::logic() { + LogicContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 68, SMTLIBv2Parser::RuleLogic); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(544); + match(SMTLIBv2Parser::ParOpen); + setState(545); + match(SMTLIBv2Parser::PS_Logic); + setState(546); + symbol(); + setState(548); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(547); + logic_attribue(); + setState(550); + _errHandler->sync(this); + _la = _input->LA(1); + } while (((((_la - 70) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 70)) & ((1ULL << (SMTLIBv2Parser::Colon - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AllStatistics - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AssertionStackLevels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Authors - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Category - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Chainable - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Definition - 70)) + | (1ULL << (SMTLIBv2Parser::PK_DiagnosticOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ErrorBehaviour - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Extension - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Funs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_FunsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_GlobalDeclarations - 70)) + | (1ULL << (SMTLIBv2Parser::PK_InteractiveMode - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Language - 70)) + | (1ULL << (SMTLIBv2Parser::PK_LeftAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_License - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Named - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Name - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Notes - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Pattern - 70)) + | (1ULL << (SMTLIBv2Parser::PK_PrintSuccess - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssertions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssignments - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceModels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceProofs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatAssumptions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatCores - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RandomSeed - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReasonUnknown - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RegularOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReproducibleResourceLimit - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RightAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SmtLibVersion - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Sorts - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SortsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Source - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Status - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Theories - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Values - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Verbosity - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Version - 70)))) != 0)); + setState(552); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Sort_decContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Sort_decContext::Sort_decContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Sort_decContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::Sort_decContext::symbol() { + return getRuleContext(0); +} + +SMTLIBv2Parser::NumeralContext* SMTLIBv2Parser::Sort_decContext::numeral() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Sort_decContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + + +size_t SMTLIBv2Parser::Sort_decContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleSort_dec; +} + +void SMTLIBv2Parser::Sort_decContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterSort_dec(this); +} + +void SMTLIBv2Parser::Sort_decContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitSort_dec(this); +} + +SMTLIBv2Parser::Sort_decContext* SMTLIBv2Parser::sort_dec() { + Sort_decContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 70, SMTLIBv2Parser::RuleSort_dec); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(554); + match(SMTLIBv2Parser::ParOpen); + setState(555); + symbol(); + setState(556); + numeral(); + setState(557); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Selector_decContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Selector_decContext::Selector_decContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Selector_decContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::Selector_decContext::symbol() { + return getRuleContext(0); +} + +SMTLIBv2Parser::SortContext* SMTLIBv2Parser::Selector_decContext::sort() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Selector_decContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + + +size_t SMTLIBv2Parser::Selector_decContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleSelector_dec; +} + +void SMTLIBv2Parser::Selector_decContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterSelector_dec(this); +} + +void SMTLIBv2Parser::Selector_decContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitSelector_dec(this); +} + +SMTLIBv2Parser::Selector_decContext* SMTLIBv2Parser::selector_dec() { + Selector_decContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 72, SMTLIBv2Parser::RuleSelector_dec); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(559); + match(SMTLIBv2Parser::ParOpen); + setState(560); + symbol(); + setState(561); + sort(); + setState(562); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Constructor_decContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Constructor_decContext::Constructor_decContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Constructor_decContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::Constructor_decContext::symbol() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Constructor_decContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::Constructor_decContext::selector_dec() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Selector_decContext* SMTLIBv2Parser::Constructor_decContext::selector_dec(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Constructor_decContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleConstructor_dec; +} + +void SMTLIBv2Parser::Constructor_decContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterConstructor_dec(this); +} + +void SMTLIBv2Parser::Constructor_decContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitConstructor_dec(this); +} + +SMTLIBv2Parser::Constructor_decContext* SMTLIBv2Parser::constructor_dec() { + Constructor_decContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 74, SMTLIBv2Parser::RuleConstructor_dec); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(564); + match(SMTLIBv2Parser::ParOpen); + setState(565); + symbol(); + setState(569); + _errHandler->sync(this); + _la = _input->LA(1); + while (_la == SMTLIBv2Parser::ParOpen) { + setState(566); + selector_dec(); + setState(571); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(572); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Datatype_decContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Datatype_decContext::Datatype_decContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +std::vector SMTLIBv2Parser::Datatype_decContext::ParOpen() { + return getTokens(SMTLIBv2Parser::ParOpen); +} + +tree::TerminalNode* SMTLIBv2Parser::Datatype_decContext::ParOpen(size_t i) { + return getToken(SMTLIBv2Parser::ParOpen, i); +} + +std::vector SMTLIBv2Parser::Datatype_decContext::ParClose() { + return getTokens(SMTLIBv2Parser::ParClose); +} + +tree::TerminalNode* SMTLIBv2Parser::Datatype_decContext::ParClose(size_t i) { + return getToken(SMTLIBv2Parser::ParClose, i); +} + +std::vector SMTLIBv2Parser::Datatype_decContext::constructor_dec() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Constructor_decContext* SMTLIBv2Parser::Datatype_decContext::constructor_dec(size_t i) { + return getRuleContext(i); +} + +tree::TerminalNode* SMTLIBv2Parser::Datatype_decContext::GRW_Par() { + return getToken(SMTLIBv2Parser::GRW_Par, 0); +} + +std::vector SMTLIBv2Parser::Datatype_decContext::symbol() { + return getRuleContexts(); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::Datatype_decContext::symbol(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Datatype_decContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleDatatype_dec; +} + +void SMTLIBv2Parser::Datatype_decContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterDatatype_dec(this); +} + +void SMTLIBv2Parser::Datatype_decContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitDatatype_dec(this); +} + +SMTLIBv2Parser::Datatype_decContext* SMTLIBv2Parser::datatype_dec() { + Datatype_decContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 76, SMTLIBv2Parser::RuleDatatype_dec); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(600); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 45, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(574); + match(SMTLIBv2Parser::ParOpen); + setState(576); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(575); + constructor_dec(); + setState(578); + _errHandler->sync(this); + _la = _input->LA(1); + } while (_la == SMTLIBv2Parser::ParOpen); + setState(580); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(582); + match(SMTLIBv2Parser::ParOpen); + setState(583); + match(SMTLIBv2Parser::GRW_Par); + setState(584); + match(SMTLIBv2Parser::ParOpen); + setState(586); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(585); + symbol(); + setState(588); + _errHandler->sync(this); + _la = _input->LA(1); + } while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || _la == SMTLIBv2Parser::UndefinedSymbol); + setState(590); + match(SMTLIBv2Parser::ParClose); + setState(591); + match(SMTLIBv2Parser::ParOpen); + setState(593); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(592); + constructor_dec(); + setState(595); + _errHandler->sync(this); + _la = _input->LA(1); + } while (_la == SMTLIBv2Parser::ParOpen); + setState(597); + match(SMTLIBv2Parser::ParClose); + setState(598); + match(SMTLIBv2Parser::ParClose); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Function_decContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Function_decContext::Function_decContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +std::vector SMTLIBv2Parser::Function_decContext::ParOpen() { + return getTokens(SMTLIBv2Parser::ParOpen); +} + +tree::TerminalNode* SMTLIBv2Parser::Function_decContext::ParOpen(size_t i) { + return getToken(SMTLIBv2Parser::ParOpen, i); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::Function_decContext::symbol() { + return getRuleContext(0); +} + +std::vector SMTLIBv2Parser::Function_decContext::ParClose() { + return getTokens(SMTLIBv2Parser::ParClose); +} + +tree::TerminalNode* SMTLIBv2Parser::Function_decContext::ParClose(size_t i) { + return getToken(SMTLIBv2Parser::ParClose, i); +} + +SMTLIBv2Parser::SortContext* SMTLIBv2Parser::Function_decContext::sort() { + return getRuleContext(0); +} + +std::vector SMTLIBv2Parser::Function_decContext::sorted_var() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Sorted_varContext* SMTLIBv2Parser::Function_decContext::sorted_var(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Function_decContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleFunction_dec; +} + +void SMTLIBv2Parser::Function_decContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterFunction_dec(this); +} + +void SMTLIBv2Parser::Function_decContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitFunction_dec(this); +} + +SMTLIBv2Parser::Function_decContext* SMTLIBv2Parser::function_dec() { + Function_decContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 78, SMTLIBv2Parser::RuleFunction_dec); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(602); + match(SMTLIBv2Parser::ParOpen); + setState(603); + symbol(); + setState(604); + match(SMTLIBv2Parser::ParOpen); + setState(608); + _errHandler->sync(this); + _la = _input->LA(1); + while (_la == SMTLIBv2Parser::ParOpen) { + setState(605); + sorted_var(); + setState(610); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(611); + match(SMTLIBv2Parser::ParClose); + setState(612); + sort(); + setState(613); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Function_defContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Function_defContext::Function_defContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::Function_defContext::symbol() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Function_defContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Function_defContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +SMTLIBv2Parser::SortContext* SMTLIBv2Parser::Function_defContext::sort() { + return getRuleContext(0); +} + +SMTLIBv2Parser::TermContext* SMTLIBv2Parser::Function_defContext::term() { + return getRuleContext(0); +} + +std::vector SMTLIBv2Parser::Function_defContext::sorted_var() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Sorted_varContext* SMTLIBv2Parser::Function_defContext::sorted_var(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Function_defContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleFunction_def; +} + +void SMTLIBv2Parser::Function_defContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterFunction_def(this); +} + +void SMTLIBv2Parser::Function_defContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitFunction_def(this); +} + +SMTLIBv2Parser::Function_defContext* SMTLIBv2Parser::function_def() { + Function_defContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 80, SMTLIBv2Parser::RuleFunction_def); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(615); + symbol(); + setState(616); + match(SMTLIBv2Parser::ParOpen); + setState(620); + _errHandler->sync(this); + _la = _input->LA(1); + while (_la == SMTLIBv2Parser::ParOpen) { + setState(617); + sorted_var(); + setState(622); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(623); + match(SMTLIBv2Parser::ParClose); + setState(624); + sort(); + setState(625); + term(); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Prop_literalContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Prop_literalContext::Prop_literalContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::Prop_literalContext::symbol() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Prop_literalContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Prop_literalContext::PS_Not() { + return getToken(SMTLIBv2Parser::PS_Not, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Prop_literalContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + + +size_t SMTLIBv2Parser::Prop_literalContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleProp_literal; +} + +void SMTLIBv2Parser::Prop_literalContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterProp_literal(this); +} + +void SMTLIBv2Parser::Prop_literalContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitProp_literal(this); +} + +SMTLIBv2Parser::Prop_literalContext* SMTLIBv2Parser::prop_literal() { + Prop_literalContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 82, SMTLIBv2Parser::RuleProp_literal); + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(633); + _errHandler->sync(this); + switch (_input->LA(1)) { + case SMTLIBv2Parser::QuotedSymbol: + case SMTLIBv2Parser::PS_Not: + case SMTLIBv2Parser::PS_Bool: + case SMTLIBv2Parser::PS_ContinuedExecution: + case SMTLIBv2Parser::PS_Error: + case SMTLIBv2Parser::PS_False: + case SMTLIBv2Parser::PS_ImmediateExit: + case SMTLIBv2Parser::PS_Incomplete: + case SMTLIBv2Parser::PS_Logic: + case SMTLIBv2Parser::PS_Memout: + case SMTLIBv2Parser::PS_Sat: + case SMTLIBv2Parser::PS_Success: + case SMTLIBv2Parser::PS_Theory: + case SMTLIBv2Parser::PS_True: + case SMTLIBv2Parser::PS_Unknown: + case SMTLIBv2Parser::PS_Unsupported: + case SMTLIBv2Parser::PS_Unsat: + case SMTLIBv2Parser::UndefinedSymbol: { + enterOuterAlt(_localctx, 1); + setState(627); + symbol(); + break; + } + + case SMTLIBv2Parser::ParOpen: { + enterOuterAlt(_localctx, 2); + setState(628); + match(SMTLIBv2Parser::ParOpen); + setState(629); + match(SMTLIBv2Parser::PS_Not); + setState(630); + symbol(); + setState(631); + match(SMTLIBv2Parser::ParClose); + break; + } + + default: + throw NoViableAltException(this); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- ScriptContext ------------------------------------------------------------------ + +SMTLIBv2Parser::ScriptContext::ScriptContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +std::vector SMTLIBv2Parser::ScriptContext::command() { + return getRuleContexts(); +} + +SMTLIBv2Parser::CommandContext* SMTLIBv2Parser::ScriptContext::command(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::ScriptContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleScript; +} + +void SMTLIBv2Parser::ScriptContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterScript(this); +} + +void SMTLIBv2Parser::ScriptContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitScript(this); +} + +SMTLIBv2Parser::ScriptContext* SMTLIBv2Parser::script() { + ScriptContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 84, SMTLIBv2Parser::RuleScript); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(638); + _errHandler->sync(this); + _la = _input->LA(1); + while (_la == SMTLIBv2Parser::ParOpen) { + setState(635); + command(); + setState(640); + _errHandler->sync(this); + _la = _input->LA(1); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_assertContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_assertContext::Cmd_assertContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_assertContext::CMD_Assert() { + return getToken(SMTLIBv2Parser::CMD_Assert, 0); +} + + +size_t SMTLIBv2Parser::Cmd_assertContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_assert; +} + +void SMTLIBv2Parser::Cmd_assertContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_assert(this); +} + +void SMTLIBv2Parser::Cmd_assertContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_assert(this); +} + +SMTLIBv2Parser::Cmd_assertContext* SMTLIBv2Parser::cmd_assert() { + Cmd_assertContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 86, SMTLIBv2Parser::RuleCmd_assert); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(641); + match(SMTLIBv2Parser::CMD_Assert); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_checkSatContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_checkSatContext::Cmd_checkSatContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_checkSatContext::CMD_CheckSat() { + return getToken(SMTLIBv2Parser::CMD_CheckSat, 0); +} + + +size_t SMTLIBv2Parser::Cmd_checkSatContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_checkSat; +} + +void SMTLIBv2Parser::Cmd_checkSatContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_checkSat(this); +} + +void SMTLIBv2Parser::Cmd_checkSatContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_checkSat(this); +} + +SMTLIBv2Parser::Cmd_checkSatContext* SMTLIBv2Parser::cmd_checkSat() { + Cmd_checkSatContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 88, SMTLIBv2Parser::RuleCmd_checkSat); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(643); + match(SMTLIBv2Parser::CMD_CheckSat); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_checkSatAssumingContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_checkSatAssumingContext::Cmd_checkSatAssumingContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_checkSatAssumingContext::CMD_CheckSatAssuming() { + return getToken(SMTLIBv2Parser::CMD_CheckSatAssuming, 0); +} + + +size_t SMTLIBv2Parser::Cmd_checkSatAssumingContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_checkSatAssuming; +} + +void SMTLIBv2Parser::Cmd_checkSatAssumingContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_checkSatAssuming(this); +} + +void SMTLIBv2Parser::Cmd_checkSatAssumingContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_checkSatAssuming(this); +} + +SMTLIBv2Parser::Cmd_checkSatAssumingContext* SMTLIBv2Parser::cmd_checkSatAssuming() { + Cmd_checkSatAssumingContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 90, SMTLIBv2Parser::RuleCmd_checkSatAssuming); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(645); + match(SMTLIBv2Parser::CMD_CheckSatAssuming); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_declareConstContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_declareConstContext::Cmd_declareConstContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_declareConstContext::CMD_DeclareConst() { + return getToken(SMTLIBv2Parser::CMD_DeclareConst, 0); +} + + +size_t SMTLIBv2Parser::Cmd_declareConstContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_declareConst; +} + +void SMTLIBv2Parser::Cmd_declareConstContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_declareConst(this); +} + +void SMTLIBv2Parser::Cmd_declareConstContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_declareConst(this); +} + +SMTLIBv2Parser::Cmd_declareConstContext* SMTLIBv2Parser::cmd_declareConst() { + Cmd_declareConstContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 92, SMTLIBv2Parser::RuleCmd_declareConst); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(647); + match(SMTLIBv2Parser::CMD_DeclareConst); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_declareDatatypeContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_declareDatatypeContext::Cmd_declareDatatypeContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_declareDatatypeContext::CMD_DeclareDatatype() { + return getToken(SMTLIBv2Parser::CMD_DeclareDatatype, 0); +} + + +size_t SMTLIBv2Parser::Cmd_declareDatatypeContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_declareDatatype; +} + +void SMTLIBv2Parser::Cmd_declareDatatypeContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_declareDatatype(this); +} + +void SMTLIBv2Parser::Cmd_declareDatatypeContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_declareDatatype(this); +} + +SMTLIBv2Parser::Cmd_declareDatatypeContext* SMTLIBv2Parser::cmd_declareDatatype() { + Cmd_declareDatatypeContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 94, SMTLIBv2Parser::RuleCmd_declareDatatype); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(649); + match(SMTLIBv2Parser::CMD_DeclareDatatype); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_declareDatatypesContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_declareDatatypesContext::Cmd_declareDatatypesContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_declareDatatypesContext::CMD_DeclareDatatypes() { + return getToken(SMTLIBv2Parser::CMD_DeclareDatatypes, 0); +} + + +size_t SMTLIBv2Parser::Cmd_declareDatatypesContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_declareDatatypes; +} + +void SMTLIBv2Parser::Cmd_declareDatatypesContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_declareDatatypes(this); +} + +void SMTLIBv2Parser::Cmd_declareDatatypesContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_declareDatatypes(this); +} + +SMTLIBv2Parser::Cmd_declareDatatypesContext* SMTLIBv2Parser::cmd_declareDatatypes() { + Cmd_declareDatatypesContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 96, SMTLIBv2Parser::RuleCmd_declareDatatypes); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(651); + match(SMTLIBv2Parser::CMD_DeclareDatatypes); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_declareFunContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_declareFunContext::Cmd_declareFunContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_declareFunContext::CMD_DeclareFun() { + return getToken(SMTLIBv2Parser::CMD_DeclareFun, 0); +} + + +size_t SMTLIBv2Parser::Cmd_declareFunContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_declareFun; +} + +void SMTLIBv2Parser::Cmd_declareFunContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_declareFun(this); +} + +void SMTLIBv2Parser::Cmd_declareFunContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_declareFun(this); +} + +SMTLIBv2Parser::Cmd_declareFunContext* SMTLIBv2Parser::cmd_declareFun() { + Cmd_declareFunContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 98, SMTLIBv2Parser::RuleCmd_declareFun); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(653); + match(SMTLIBv2Parser::CMD_DeclareFun); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_declareSortContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_declareSortContext::Cmd_declareSortContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_declareSortContext::CMD_DeclareSort() { + return getToken(SMTLIBv2Parser::CMD_DeclareSort, 0); +} + + +size_t SMTLIBv2Parser::Cmd_declareSortContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_declareSort; +} + +void SMTLIBv2Parser::Cmd_declareSortContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_declareSort(this); +} + +void SMTLIBv2Parser::Cmd_declareSortContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_declareSort(this); +} + +SMTLIBv2Parser::Cmd_declareSortContext* SMTLIBv2Parser::cmd_declareSort() { + Cmd_declareSortContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 100, SMTLIBv2Parser::RuleCmd_declareSort); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(655); + match(SMTLIBv2Parser::CMD_DeclareSort); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_defineFunContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_defineFunContext::Cmd_defineFunContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_defineFunContext::CMD_DefineFun() { + return getToken(SMTLIBv2Parser::CMD_DefineFun, 0); +} + + +size_t SMTLIBv2Parser::Cmd_defineFunContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_defineFun; +} + +void SMTLIBv2Parser::Cmd_defineFunContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_defineFun(this); +} + +void SMTLIBv2Parser::Cmd_defineFunContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_defineFun(this); +} + +SMTLIBv2Parser::Cmd_defineFunContext* SMTLIBv2Parser::cmd_defineFun() { + Cmd_defineFunContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 102, SMTLIBv2Parser::RuleCmd_defineFun); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(657); + match(SMTLIBv2Parser::CMD_DefineFun); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_defineFunRecContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_defineFunRecContext::Cmd_defineFunRecContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_defineFunRecContext::CMD_DefineFunRec() { + return getToken(SMTLIBv2Parser::CMD_DefineFunRec, 0); +} + + +size_t SMTLIBv2Parser::Cmd_defineFunRecContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_defineFunRec; +} + +void SMTLIBv2Parser::Cmd_defineFunRecContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_defineFunRec(this); +} + +void SMTLIBv2Parser::Cmd_defineFunRecContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_defineFunRec(this); +} + +SMTLIBv2Parser::Cmd_defineFunRecContext* SMTLIBv2Parser::cmd_defineFunRec() { + Cmd_defineFunRecContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 104, SMTLIBv2Parser::RuleCmd_defineFunRec); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(659); + match(SMTLIBv2Parser::CMD_DefineFunRec); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_defineFunsRecContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_defineFunsRecContext::Cmd_defineFunsRecContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_defineFunsRecContext::CMD_DefineFunsRec() { + return getToken(SMTLIBv2Parser::CMD_DefineFunsRec, 0); +} + + +size_t SMTLIBv2Parser::Cmd_defineFunsRecContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_defineFunsRec; +} + +void SMTLIBv2Parser::Cmd_defineFunsRecContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_defineFunsRec(this); +} + +void SMTLIBv2Parser::Cmd_defineFunsRecContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_defineFunsRec(this); +} + +SMTLIBv2Parser::Cmd_defineFunsRecContext* SMTLIBv2Parser::cmd_defineFunsRec() { + Cmd_defineFunsRecContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 106, SMTLIBv2Parser::RuleCmd_defineFunsRec); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(661); + match(SMTLIBv2Parser::CMD_DefineFunsRec); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_defineSortContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_defineSortContext::Cmd_defineSortContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_defineSortContext::CMD_DefineSort() { + return getToken(SMTLIBv2Parser::CMD_DefineSort, 0); +} + + +size_t SMTLIBv2Parser::Cmd_defineSortContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_defineSort; +} + +void SMTLIBv2Parser::Cmd_defineSortContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_defineSort(this); +} + +void SMTLIBv2Parser::Cmd_defineSortContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_defineSort(this); +} + +SMTLIBv2Parser::Cmd_defineSortContext* SMTLIBv2Parser::cmd_defineSort() { + Cmd_defineSortContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 108, SMTLIBv2Parser::RuleCmd_defineSort); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(663); + match(SMTLIBv2Parser::CMD_DefineSort); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_echoContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_echoContext::Cmd_echoContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_echoContext::CMD_Echo() { + return getToken(SMTLIBv2Parser::CMD_Echo, 0); +} + + +size_t SMTLIBv2Parser::Cmd_echoContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_echo; +} + +void SMTLIBv2Parser::Cmd_echoContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_echo(this); +} + +void SMTLIBv2Parser::Cmd_echoContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_echo(this); +} + +SMTLIBv2Parser::Cmd_echoContext* SMTLIBv2Parser::cmd_echo() { + Cmd_echoContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 110, SMTLIBv2Parser::RuleCmd_echo); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(665); + match(SMTLIBv2Parser::CMD_Echo); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_exitContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_exitContext::Cmd_exitContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_exitContext::CMD_Exit() { + return getToken(SMTLIBv2Parser::CMD_Exit, 0); +} + + +size_t SMTLIBv2Parser::Cmd_exitContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_exit; +} + +void SMTLIBv2Parser::Cmd_exitContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_exit(this); +} + +void SMTLIBv2Parser::Cmd_exitContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_exit(this); +} + +SMTLIBv2Parser::Cmd_exitContext* SMTLIBv2Parser::cmd_exit() { + Cmd_exitContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 112, SMTLIBv2Parser::RuleCmd_exit); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(667); + match(SMTLIBv2Parser::CMD_Exit); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_getAssertionsContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_getAssertionsContext::Cmd_getAssertionsContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_getAssertionsContext::CMD_GetAssertions() { + return getToken(SMTLIBv2Parser::CMD_GetAssertions, 0); +} + + +size_t SMTLIBv2Parser::Cmd_getAssertionsContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_getAssertions; +} + +void SMTLIBv2Parser::Cmd_getAssertionsContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_getAssertions(this); +} + +void SMTLIBv2Parser::Cmd_getAssertionsContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_getAssertions(this); +} + +SMTLIBv2Parser::Cmd_getAssertionsContext* SMTLIBv2Parser::cmd_getAssertions() { + Cmd_getAssertionsContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 114, SMTLIBv2Parser::RuleCmd_getAssertions); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(669); + match(SMTLIBv2Parser::CMD_GetAssertions); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_getAssignmentContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_getAssignmentContext::Cmd_getAssignmentContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_getAssignmentContext::CMD_GetAssignment() { + return getToken(SMTLIBv2Parser::CMD_GetAssignment, 0); +} + + +size_t SMTLIBv2Parser::Cmd_getAssignmentContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_getAssignment; +} + +void SMTLIBv2Parser::Cmd_getAssignmentContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_getAssignment(this); +} + +void SMTLIBv2Parser::Cmd_getAssignmentContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_getAssignment(this); +} + +SMTLIBv2Parser::Cmd_getAssignmentContext* SMTLIBv2Parser::cmd_getAssignment() { + Cmd_getAssignmentContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 116, SMTLIBv2Parser::RuleCmd_getAssignment); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(671); + match(SMTLIBv2Parser::CMD_GetAssignment); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_getInfoContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_getInfoContext::Cmd_getInfoContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_getInfoContext::CMD_GetInfo() { + return getToken(SMTLIBv2Parser::CMD_GetInfo, 0); +} + + +size_t SMTLIBv2Parser::Cmd_getInfoContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_getInfo; +} + +void SMTLIBv2Parser::Cmd_getInfoContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_getInfo(this); +} + +void SMTLIBv2Parser::Cmd_getInfoContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_getInfo(this); +} + +SMTLIBv2Parser::Cmd_getInfoContext* SMTLIBv2Parser::cmd_getInfo() { + Cmd_getInfoContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 118, SMTLIBv2Parser::RuleCmd_getInfo); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(673); + match(SMTLIBv2Parser::CMD_GetInfo); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_getModelContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_getModelContext::Cmd_getModelContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_getModelContext::CMD_GetModel() { + return getToken(SMTLIBv2Parser::CMD_GetModel, 0); +} + + +size_t SMTLIBv2Parser::Cmd_getModelContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_getModel; +} + +void SMTLIBv2Parser::Cmd_getModelContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_getModel(this); +} + +void SMTLIBv2Parser::Cmd_getModelContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_getModel(this); +} + +SMTLIBv2Parser::Cmd_getModelContext* SMTLIBv2Parser::cmd_getModel() { + Cmd_getModelContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 120, SMTLIBv2Parser::RuleCmd_getModel); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(675); + match(SMTLIBv2Parser::CMD_GetModel); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_getOptionContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_getOptionContext::Cmd_getOptionContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_getOptionContext::CMD_GetOption() { + return getToken(SMTLIBv2Parser::CMD_GetOption, 0); +} + + +size_t SMTLIBv2Parser::Cmd_getOptionContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_getOption; +} + +void SMTLIBv2Parser::Cmd_getOptionContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_getOption(this); +} + +void SMTLIBv2Parser::Cmd_getOptionContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_getOption(this); +} + +SMTLIBv2Parser::Cmd_getOptionContext* SMTLIBv2Parser::cmd_getOption() { + Cmd_getOptionContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 122, SMTLIBv2Parser::RuleCmd_getOption); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(677); + match(SMTLIBv2Parser::CMD_GetOption); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_getProofContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_getProofContext::Cmd_getProofContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_getProofContext::CMD_GetProof() { + return getToken(SMTLIBv2Parser::CMD_GetProof, 0); +} + + +size_t SMTLIBv2Parser::Cmd_getProofContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_getProof; +} + +void SMTLIBv2Parser::Cmd_getProofContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_getProof(this); +} + +void SMTLIBv2Parser::Cmd_getProofContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_getProof(this); +} + +SMTLIBv2Parser::Cmd_getProofContext* SMTLIBv2Parser::cmd_getProof() { + Cmd_getProofContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 124, SMTLIBv2Parser::RuleCmd_getProof); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(679); + match(SMTLIBv2Parser::CMD_GetProof); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_getUnsatAssumptionsContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_getUnsatAssumptionsContext::Cmd_getUnsatAssumptionsContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_getUnsatAssumptionsContext::CMD_GetUnsatAssumptions() { + return getToken(SMTLIBv2Parser::CMD_GetUnsatAssumptions, 0); +} + + +size_t SMTLIBv2Parser::Cmd_getUnsatAssumptionsContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_getUnsatAssumptions; +} + +void SMTLIBv2Parser::Cmd_getUnsatAssumptionsContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_getUnsatAssumptions(this); +} + +void SMTLIBv2Parser::Cmd_getUnsatAssumptionsContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_getUnsatAssumptions(this); +} + +SMTLIBv2Parser::Cmd_getUnsatAssumptionsContext* SMTLIBv2Parser::cmd_getUnsatAssumptions() { + Cmd_getUnsatAssumptionsContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 126, SMTLIBv2Parser::RuleCmd_getUnsatAssumptions); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(681); + match(SMTLIBv2Parser::CMD_GetUnsatAssumptions); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_getUnsatCoreContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_getUnsatCoreContext::Cmd_getUnsatCoreContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_getUnsatCoreContext::CMD_GetUnsatCore() { + return getToken(SMTLIBv2Parser::CMD_GetUnsatCore, 0); +} + + +size_t SMTLIBv2Parser::Cmd_getUnsatCoreContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_getUnsatCore; +} + +void SMTLIBv2Parser::Cmd_getUnsatCoreContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_getUnsatCore(this); +} + +void SMTLIBv2Parser::Cmd_getUnsatCoreContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_getUnsatCore(this); +} + +SMTLIBv2Parser::Cmd_getUnsatCoreContext* SMTLIBv2Parser::cmd_getUnsatCore() { + Cmd_getUnsatCoreContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 128, SMTLIBv2Parser::RuleCmd_getUnsatCore); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(683); + match(SMTLIBv2Parser::CMD_GetUnsatCore); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_getValueContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_getValueContext::Cmd_getValueContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_getValueContext::CMD_GetValue() { + return getToken(SMTLIBv2Parser::CMD_GetValue, 0); +} + + +size_t SMTLIBv2Parser::Cmd_getValueContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_getValue; +} + +void SMTLIBv2Parser::Cmd_getValueContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_getValue(this); +} + +void SMTLIBv2Parser::Cmd_getValueContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_getValue(this); +} + +SMTLIBv2Parser::Cmd_getValueContext* SMTLIBv2Parser::cmd_getValue() { + Cmd_getValueContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 130, SMTLIBv2Parser::RuleCmd_getValue); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(685); + match(SMTLIBv2Parser::CMD_GetValue); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_popContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_popContext::Cmd_popContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_popContext::CMD_Pop() { + return getToken(SMTLIBv2Parser::CMD_Pop, 0); +} + + +size_t SMTLIBv2Parser::Cmd_popContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_pop; +} + +void SMTLIBv2Parser::Cmd_popContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_pop(this); +} + +void SMTLIBv2Parser::Cmd_popContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_pop(this); +} + +SMTLIBv2Parser::Cmd_popContext* SMTLIBv2Parser::cmd_pop() { + Cmd_popContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 132, SMTLIBv2Parser::RuleCmd_pop); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(687); + match(SMTLIBv2Parser::CMD_Pop); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_pushContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_pushContext::Cmd_pushContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_pushContext::CMD_Push() { + return getToken(SMTLIBv2Parser::CMD_Push, 0); +} + + +size_t SMTLIBv2Parser::Cmd_pushContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_push; +} + +void SMTLIBv2Parser::Cmd_pushContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_push(this); +} + +void SMTLIBv2Parser::Cmd_pushContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_push(this); +} + +SMTLIBv2Parser::Cmd_pushContext* SMTLIBv2Parser::cmd_push() { + Cmd_pushContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 134, SMTLIBv2Parser::RuleCmd_push); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(689); + match(SMTLIBv2Parser::CMD_Push); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_resetContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_resetContext::Cmd_resetContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_resetContext::CMD_Reset() { + return getToken(SMTLIBv2Parser::CMD_Reset, 0); +} + + +size_t SMTLIBv2Parser::Cmd_resetContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_reset; +} + +void SMTLIBv2Parser::Cmd_resetContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_reset(this); +} + +void SMTLIBv2Parser::Cmd_resetContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_reset(this); +} + +SMTLIBv2Parser::Cmd_resetContext* SMTLIBv2Parser::cmd_reset() { + Cmd_resetContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 136, SMTLIBv2Parser::RuleCmd_reset); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(691); + match(SMTLIBv2Parser::CMD_Reset); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_resetAssertionsContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_resetAssertionsContext::Cmd_resetAssertionsContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_resetAssertionsContext::CMD_ResetAssertions() { + return getToken(SMTLIBv2Parser::CMD_ResetAssertions, 0); +} + + +size_t SMTLIBv2Parser::Cmd_resetAssertionsContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_resetAssertions; +} + +void SMTLIBv2Parser::Cmd_resetAssertionsContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_resetAssertions(this); +} + +void SMTLIBv2Parser::Cmd_resetAssertionsContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_resetAssertions(this); +} + +SMTLIBv2Parser::Cmd_resetAssertionsContext* SMTLIBv2Parser::cmd_resetAssertions() { + Cmd_resetAssertionsContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 138, SMTLIBv2Parser::RuleCmd_resetAssertions); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(693); + match(SMTLIBv2Parser::CMD_ResetAssertions); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_setInfoContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_setInfoContext::Cmd_setInfoContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_setInfoContext::CMD_SetInfo() { + return getToken(SMTLIBv2Parser::CMD_SetInfo, 0); +} + + +size_t SMTLIBv2Parser::Cmd_setInfoContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_setInfo; +} + +void SMTLIBv2Parser::Cmd_setInfoContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_setInfo(this); +} + +void SMTLIBv2Parser::Cmd_setInfoContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_setInfo(this); +} + +SMTLIBv2Parser::Cmd_setInfoContext* SMTLIBv2Parser::cmd_setInfo() { + Cmd_setInfoContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 140, SMTLIBv2Parser::RuleCmd_setInfo); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(695); + match(SMTLIBv2Parser::CMD_SetInfo); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_setLogicContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_setLogicContext::Cmd_setLogicContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_setLogicContext::CMD_SetLogic() { + return getToken(SMTLIBv2Parser::CMD_SetLogic, 0); +} + + +size_t SMTLIBv2Parser::Cmd_setLogicContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_setLogic; +} + +void SMTLIBv2Parser::Cmd_setLogicContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_setLogic(this); +} + +void SMTLIBv2Parser::Cmd_setLogicContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_setLogic(this); +} + +SMTLIBv2Parser::Cmd_setLogicContext* SMTLIBv2Parser::cmd_setLogic() { + Cmd_setLogicContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 142, SMTLIBv2Parser::RuleCmd_setLogic); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(697); + match(SMTLIBv2Parser::CMD_SetLogic); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Cmd_setOptionContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Cmd_setOptionContext::Cmd_setOptionContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Cmd_setOptionContext::CMD_SetOption() { + return getToken(SMTLIBv2Parser::CMD_SetOption, 0); +} + + +size_t SMTLIBv2Parser::Cmd_setOptionContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCmd_setOption; +} + +void SMTLIBv2Parser::Cmd_setOptionContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCmd_setOption(this); +} + +void SMTLIBv2Parser::Cmd_setOptionContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCmd_setOption(this); +} + +SMTLIBv2Parser::Cmd_setOptionContext* SMTLIBv2Parser::cmd_setOption() { + Cmd_setOptionContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 144, SMTLIBv2Parser::RuleCmd_setOption); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(699); + match(SMTLIBv2Parser::CMD_SetOption); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- CommandContext ------------------------------------------------------------------ + +SMTLIBv2Parser::CommandContext::CommandContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +std::vector SMTLIBv2Parser::CommandContext::ParOpen() { + return getTokens(SMTLIBv2Parser::ParOpen); +} + +tree::TerminalNode* SMTLIBv2Parser::CommandContext::ParOpen(size_t i) { + return getToken(SMTLIBv2Parser::ParOpen, i); +} + +SMTLIBv2Parser::Cmd_assertContext* SMTLIBv2Parser::CommandContext::cmd_assert() { + return getRuleContext(0); +} + +std::vector SMTLIBv2Parser::CommandContext::term() { + return getRuleContexts(); +} + +SMTLIBv2Parser::TermContext* SMTLIBv2Parser::CommandContext::term(size_t i) { + return getRuleContext(i); +} + +std::vector SMTLIBv2Parser::CommandContext::ParClose() { + return getTokens(SMTLIBv2Parser::ParClose); +} + +tree::TerminalNode* SMTLIBv2Parser::CommandContext::ParClose(size_t i) { + return getToken(SMTLIBv2Parser::ParClose, i); +} + +SMTLIBv2Parser::Cmd_checkSatContext* SMTLIBv2Parser::CommandContext::cmd_checkSat() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_checkSatAssumingContext* SMTLIBv2Parser::CommandContext::cmd_checkSatAssuming() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_declareConstContext* SMTLIBv2Parser::CommandContext::cmd_declareConst() { + return getRuleContext(0); +} + +std::vector SMTLIBv2Parser::CommandContext::symbol() { + return getRuleContexts(); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::CommandContext::symbol(size_t i) { + return getRuleContext(i); +} + +std::vector SMTLIBv2Parser::CommandContext::sort() { + return getRuleContexts(); +} + +SMTLIBv2Parser::SortContext* SMTLIBv2Parser::CommandContext::sort(size_t i) { + return getRuleContext(i); +} + +SMTLIBv2Parser::Cmd_declareDatatypeContext* SMTLIBv2Parser::CommandContext::cmd_declareDatatype() { + return getRuleContext(0); +} + +std::vector SMTLIBv2Parser::CommandContext::datatype_dec() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Datatype_decContext* SMTLIBv2Parser::CommandContext::datatype_dec(size_t i) { + return getRuleContext(i); +} + +SMTLIBv2Parser::Cmd_declareDatatypesContext* SMTLIBv2Parser::CommandContext::cmd_declareDatatypes() { + return getRuleContext(0); +} + +std::vector SMTLIBv2Parser::CommandContext::sort_dec() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Sort_decContext* SMTLIBv2Parser::CommandContext::sort_dec(size_t i) { + return getRuleContext(i); +} + +SMTLIBv2Parser::Cmd_declareFunContext* SMTLIBv2Parser::CommandContext::cmd_declareFun() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_declareSortContext* SMTLIBv2Parser::CommandContext::cmd_declareSort() { + return getRuleContext(0); +} + +SMTLIBv2Parser::NumeralContext* SMTLIBv2Parser::CommandContext::numeral() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_defineFunContext* SMTLIBv2Parser::CommandContext::cmd_defineFun() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Function_defContext* SMTLIBv2Parser::CommandContext::function_def() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_defineFunRecContext* SMTLIBv2Parser::CommandContext::cmd_defineFunRec() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_defineFunsRecContext* SMTLIBv2Parser::CommandContext::cmd_defineFunsRec() { + return getRuleContext(0); +} + +std::vector SMTLIBv2Parser::CommandContext::function_dec() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Function_decContext* SMTLIBv2Parser::CommandContext::function_dec(size_t i) { + return getRuleContext(i); +} + +SMTLIBv2Parser::Cmd_defineSortContext* SMTLIBv2Parser::CommandContext::cmd_defineSort() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_echoContext* SMTLIBv2Parser::CommandContext::cmd_echo() { + return getRuleContext(0); +} + +SMTLIBv2Parser::StringContext* SMTLIBv2Parser::CommandContext::string() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_exitContext* SMTLIBv2Parser::CommandContext::cmd_exit() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_getAssertionsContext* SMTLIBv2Parser::CommandContext::cmd_getAssertions() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_getAssignmentContext* SMTLIBv2Parser::CommandContext::cmd_getAssignment() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_getInfoContext* SMTLIBv2Parser::CommandContext::cmd_getInfo() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Info_flagContext* SMTLIBv2Parser::CommandContext::info_flag() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_getModelContext* SMTLIBv2Parser::CommandContext::cmd_getModel() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_getOptionContext* SMTLIBv2Parser::CommandContext::cmd_getOption() { + return getRuleContext(0); +} + +SMTLIBv2Parser::KeywordContext* SMTLIBv2Parser::CommandContext::keyword() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_getProofContext* SMTLIBv2Parser::CommandContext::cmd_getProof() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_getUnsatAssumptionsContext* SMTLIBv2Parser::CommandContext::cmd_getUnsatAssumptions() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_getUnsatCoreContext* SMTLIBv2Parser::CommandContext::cmd_getUnsatCore() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_getValueContext* SMTLIBv2Parser::CommandContext::cmd_getValue() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_popContext* SMTLIBv2Parser::CommandContext::cmd_pop() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_pushContext* SMTLIBv2Parser::CommandContext::cmd_push() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_resetContext* SMTLIBv2Parser::CommandContext::cmd_reset() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_resetAssertionsContext* SMTLIBv2Parser::CommandContext::cmd_resetAssertions() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_setInfoContext* SMTLIBv2Parser::CommandContext::cmd_setInfo() { + return getRuleContext(0); +} + +SMTLIBv2Parser::AttributeContext* SMTLIBv2Parser::CommandContext::attribute() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_setLogicContext* SMTLIBv2Parser::CommandContext::cmd_setLogic() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Cmd_setOptionContext* SMTLIBv2Parser::CommandContext::cmd_setOption() { + return getRuleContext(0); +} + +SMTLIBv2Parser::OptionContext* SMTLIBv2Parser::CommandContext::option() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::CommandContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCommand; +} + +void SMTLIBv2Parser::CommandContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCommand(this); +} + +void SMTLIBv2Parser::CommandContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCommand(this); +} + +SMTLIBv2Parser::CommandContext* SMTLIBv2Parser::command() { + CommandContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 146, SMTLIBv2Parser::RuleCommand); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(893); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 57, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(701); + match(SMTLIBv2Parser::ParOpen); + setState(702); + cmd_assert(); + setState(703); + term(); + setState(704); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(706); + match(SMTLIBv2Parser::ParOpen); + setState(707); + cmd_checkSat(); + setState(708); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 3: { + enterOuterAlt(_localctx, 3); + setState(710); + match(SMTLIBv2Parser::ParOpen); + setState(711); + cmd_checkSatAssuming(); + setState(712); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 4: { + enterOuterAlt(_localctx, 4); + setState(714); + match(SMTLIBv2Parser::ParOpen); + setState(715); + cmd_declareConst(); + setState(716); + symbol(); + setState(717); + sort(); + setState(718); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 5: { + enterOuterAlt(_localctx, 5); + setState(720); + match(SMTLIBv2Parser::ParOpen); + setState(721); + cmd_declareDatatype(); + setState(722); + symbol(); + setState(723); + datatype_dec(); + setState(724); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 6: { + enterOuterAlt(_localctx, 6); + setState(726); + match(SMTLIBv2Parser::ParOpen); + setState(727); + cmd_declareDatatypes(); + setState(728); + match(SMTLIBv2Parser::ParOpen); + setState(730); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(729); + sort_dec(); + setState(732); + _errHandler->sync(this); + _la = _input->LA(1); + } while (_la == SMTLIBv2Parser::ParOpen); + setState(734); + match(SMTLIBv2Parser::ParClose); + setState(735); + match(SMTLIBv2Parser::ParOpen); + setState(737); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(736); + datatype_dec(); + setState(739); + _errHandler->sync(this); + _la = _input->LA(1); + } while (_la == SMTLIBv2Parser::ParOpen); + setState(741); + match(SMTLIBv2Parser::ParClose); + setState(742); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 7: { + enterOuterAlt(_localctx, 7); + setState(744); + match(SMTLIBv2Parser::ParOpen); + setState(745); + cmd_declareFun(); + setState(746); + symbol(); + setState(747); + match(SMTLIBv2Parser::ParOpen); + setState(751); + _errHandler->sync(this); + _la = _input->LA(1); + while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::ParOpen) + | (1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || _la == SMTLIBv2Parser::UndefinedSymbol) { + setState(748); + sort(); + setState(753); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(754); + match(SMTLIBv2Parser::ParClose); + setState(755); + sort(); + setState(756); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 8: { + enterOuterAlt(_localctx, 8); + setState(758); + match(SMTLIBv2Parser::ParOpen); + setState(759); + cmd_declareSort(); + setState(760); + symbol(); + setState(761); + numeral(); + setState(762); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 9: { + enterOuterAlt(_localctx, 9); + setState(764); + match(SMTLIBv2Parser::ParOpen); + setState(765); + cmd_defineFun(); + setState(766); + function_def(); + setState(767); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 10: { + enterOuterAlt(_localctx, 10); + setState(769); + match(SMTLIBv2Parser::ParOpen); + setState(770); + cmd_defineFunRec(); + setState(771); + function_def(); + setState(772); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 11: { + enterOuterAlt(_localctx, 11); + setState(774); + match(SMTLIBv2Parser::ParOpen); + setState(775); + cmd_defineFunsRec(); + setState(776); + match(SMTLIBv2Parser::ParOpen); + setState(778); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(777); + function_dec(); + setState(780); + _errHandler->sync(this); + _la = _input->LA(1); + } while (_la == SMTLIBv2Parser::ParOpen); + setState(782); + match(SMTLIBv2Parser::ParClose); + setState(783); + match(SMTLIBv2Parser::ParOpen); + setState(785); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(784); + term(); + setState(787); + _errHandler->sync(this); + _la = _input->LA(1); + } while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::ParOpen) + | (1ULL << SMTLIBv2Parser::String) + | (1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || ((((_la - 66) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 66)) & ((1ULL << (SMTLIBv2Parser::Numeral - 66)) + | (1ULL << (SMTLIBv2Parser::Binary - 66)) + | (1ULL << (SMTLIBv2Parser::HexDecimal - 66)) + | (1ULL << (SMTLIBv2Parser::Decimal - 66)) + | (1ULL << (SMTLIBv2Parser::UndefinedSymbol - 66)))) != 0)); + setState(789); + match(SMTLIBv2Parser::ParClose); + setState(790); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 12: { + enterOuterAlt(_localctx, 12); + setState(792); + match(SMTLIBv2Parser::ParOpen); + setState(793); + cmd_defineSort(); + setState(794); + symbol(); + setState(795); + match(SMTLIBv2Parser::ParOpen); + setState(799); + _errHandler->sync(this); + _la = _input->LA(1); + while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || _la == SMTLIBv2Parser::UndefinedSymbol) { + setState(796); + symbol(); + setState(801); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(802); + match(SMTLIBv2Parser::ParClose); + setState(803); + sort(); + setState(804); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 13: { + enterOuterAlt(_localctx, 13); + setState(806); + match(SMTLIBv2Parser::ParOpen); + setState(807); + cmd_echo(); + setState(808); + string(); + setState(809); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 14: { + enterOuterAlt(_localctx, 14); + setState(811); + match(SMTLIBv2Parser::ParOpen); + setState(812); + cmd_exit(); + setState(813); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 15: { + enterOuterAlt(_localctx, 15); + setState(815); + match(SMTLIBv2Parser::ParOpen); + setState(816); + cmd_getAssertions(); + setState(817); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 16: { + enterOuterAlt(_localctx, 16); + setState(819); + match(SMTLIBv2Parser::ParOpen); + setState(820); + cmd_getAssignment(); + setState(821); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 17: { + enterOuterAlt(_localctx, 17); + setState(823); + match(SMTLIBv2Parser::ParOpen); + setState(824); + cmd_getInfo(); + setState(825); + info_flag(); + setState(826); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 18: { + enterOuterAlt(_localctx, 18); + setState(828); + match(SMTLIBv2Parser::ParOpen); + setState(829); + cmd_getModel(); + setState(830); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 19: { + enterOuterAlt(_localctx, 19); + setState(832); + match(SMTLIBv2Parser::ParOpen); + setState(833); + cmd_getOption(); + setState(834); + keyword(); + setState(835); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 20: { + enterOuterAlt(_localctx, 20); + setState(837); + match(SMTLIBv2Parser::ParOpen); + setState(838); + cmd_getProof(); + setState(839); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 21: { + enterOuterAlt(_localctx, 21); + setState(841); + match(SMTLIBv2Parser::ParOpen); + setState(842); + cmd_getUnsatAssumptions(); + setState(843); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 22: { + enterOuterAlt(_localctx, 22); + setState(845); + match(SMTLIBv2Parser::ParOpen); + setState(846); + cmd_getUnsatCore(); + setState(847); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 23: { + enterOuterAlt(_localctx, 23); + setState(849); + match(SMTLIBv2Parser::ParOpen); + setState(850); + cmd_getValue(); + setState(851); + match(SMTLIBv2Parser::ParOpen); + setState(853); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(852); + term(); + setState(855); + _errHandler->sync(this); + _la = _input->LA(1); + } while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::ParOpen) + | (1ULL << SMTLIBv2Parser::String) + | (1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || ((((_la - 66) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 66)) & ((1ULL << (SMTLIBv2Parser::Numeral - 66)) + | (1ULL << (SMTLIBv2Parser::Binary - 66)) + | (1ULL << (SMTLIBv2Parser::HexDecimal - 66)) + | (1ULL << (SMTLIBv2Parser::Decimal - 66)) + | (1ULL << (SMTLIBv2Parser::UndefinedSymbol - 66)))) != 0)); + setState(857); + match(SMTLIBv2Parser::ParClose); + setState(858); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 24: { + enterOuterAlt(_localctx, 24); + setState(860); + match(SMTLIBv2Parser::ParOpen); + setState(861); + cmd_pop(); + setState(862); + numeral(); + setState(863); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 25: { + enterOuterAlt(_localctx, 25); + setState(865); + match(SMTLIBv2Parser::ParOpen); + setState(866); + cmd_push(); + setState(867); + numeral(); + setState(868); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 26: { + enterOuterAlt(_localctx, 26); + setState(870); + match(SMTLIBv2Parser::ParOpen); + setState(871); + cmd_reset(); + setState(872); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 27: { + enterOuterAlt(_localctx, 27); + setState(874); + match(SMTLIBv2Parser::ParOpen); + setState(875); + cmd_resetAssertions(); + setState(876); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 28: { + enterOuterAlt(_localctx, 28); + setState(878); + match(SMTLIBv2Parser::ParOpen); + setState(879); + cmd_setInfo(); + setState(880); + attribute(); + setState(881); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 29: { + enterOuterAlt(_localctx, 29); + setState(883); + match(SMTLIBv2Parser::ParOpen); + setState(884); + cmd_setLogic(); + setState(885); + symbol(); + setState(886); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 30: { + enterOuterAlt(_localctx, 30); + setState(888); + match(SMTLIBv2Parser::ParOpen); + setState(889); + cmd_setOption(); + setState(890); + option(); + setState(891); + match(SMTLIBv2Parser::ParClose); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- B_valueContext ------------------------------------------------------------------ + +SMTLIBv2Parser::B_valueContext::B_valueContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::B_valueContext::PS_True() { + return getToken(SMTLIBv2Parser::PS_True, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::B_valueContext::PS_False() { + return getToken(SMTLIBv2Parser::PS_False, 0); +} + + +size_t SMTLIBv2Parser::B_valueContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleB_value; +} + +void SMTLIBv2Parser::B_valueContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterB_value(this); +} + +void SMTLIBv2Parser::B_valueContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitB_value(this); +} + +SMTLIBv2Parser::B_valueContext* SMTLIBv2Parser::b_value() { + B_valueContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 148, SMTLIBv2Parser::RuleB_value); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(895); + _la = _input->LA(1); + if (!(_la == SMTLIBv2Parser::PS_False + + || _la == SMTLIBv2Parser::PS_True)) { + _errHandler->recoverInline(this); + } + else { + _errHandler->reportMatch(this); + consume(); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- OptionContext ------------------------------------------------------------------ + +SMTLIBv2Parser::OptionContext::OptionContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::OptionContext::PK_DiagnosticOutputChannel() { + return getToken(SMTLIBv2Parser::PK_DiagnosticOutputChannel, 0); +} + +SMTLIBv2Parser::StringContext* SMTLIBv2Parser::OptionContext::string() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::OptionContext::PK_GlobalDeclarations() { + return getToken(SMTLIBv2Parser::PK_GlobalDeclarations, 0); +} + +SMTLIBv2Parser::B_valueContext* SMTLIBv2Parser::OptionContext::b_value() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::OptionContext::PK_InteractiveMode() { + return getToken(SMTLIBv2Parser::PK_InteractiveMode, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::OptionContext::PK_PrintSuccess() { + return getToken(SMTLIBv2Parser::PK_PrintSuccess, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::OptionContext::PK_ProduceAssertions() { + return getToken(SMTLIBv2Parser::PK_ProduceAssertions, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::OptionContext::PK_ProduceAssignments() { + return getToken(SMTLIBv2Parser::PK_ProduceAssignments, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::OptionContext::PK_ProduceModels() { + return getToken(SMTLIBv2Parser::PK_ProduceModels, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::OptionContext::PK_ProduceProofs() { + return getToken(SMTLIBv2Parser::PK_ProduceProofs, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::OptionContext::PK_ProduceUnsatAssumptions() { + return getToken(SMTLIBv2Parser::PK_ProduceUnsatAssumptions, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::OptionContext::PK_ProduceUnsatCores() { + return getToken(SMTLIBv2Parser::PK_ProduceUnsatCores, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::OptionContext::PK_RandomSeed() { + return getToken(SMTLIBv2Parser::PK_RandomSeed, 0); +} + +SMTLIBv2Parser::NumeralContext* SMTLIBv2Parser::OptionContext::numeral() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::OptionContext::PK_RegularOutputChannel() { + return getToken(SMTLIBv2Parser::PK_RegularOutputChannel, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::OptionContext::PK_ReproducibleResourceLimit() { + return getToken(SMTLIBv2Parser::PK_ReproducibleResourceLimit, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::OptionContext::PK_Verbosity() { + return getToken(SMTLIBv2Parser::PK_Verbosity, 0); +} + +SMTLIBv2Parser::AttributeContext* SMTLIBv2Parser::OptionContext::attribute() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::OptionContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleOption; +} + +void SMTLIBv2Parser::OptionContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterOption(this); +} + +void SMTLIBv2Parser::OptionContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitOption(this); +} + +SMTLIBv2Parser::OptionContext* SMTLIBv2Parser::option() { + OptionContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 150, SMTLIBv2Parser::RuleOption); + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(926); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 58, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(897); + match(SMTLIBv2Parser::PK_DiagnosticOutputChannel); + setState(898); + string(); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(899); + match(SMTLIBv2Parser::PK_GlobalDeclarations); + setState(900); + b_value(); + break; + } + + case 3: { + enterOuterAlt(_localctx, 3); + setState(901); + match(SMTLIBv2Parser::PK_InteractiveMode); + setState(902); + b_value(); + break; + } + + case 4: { + enterOuterAlt(_localctx, 4); + setState(903); + match(SMTLIBv2Parser::PK_PrintSuccess); + setState(904); + b_value(); + break; + } + + case 5: { + enterOuterAlt(_localctx, 5); + setState(905); + match(SMTLIBv2Parser::PK_ProduceAssertions); + setState(906); + b_value(); + break; + } + + case 6: { + enterOuterAlt(_localctx, 6); + setState(907); + match(SMTLIBv2Parser::PK_ProduceAssignments); + setState(908); + b_value(); + break; + } + + case 7: { + enterOuterAlt(_localctx, 7); + setState(909); + match(SMTLIBv2Parser::PK_ProduceModels); + setState(910); + b_value(); + break; + } + + case 8: { + enterOuterAlt(_localctx, 8); + setState(911); + match(SMTLIBv2Parser::PK_ProduceProofs); + setState(912); + b_value(); + break; + } + + case 9: { + enterOuterAlt(_localctx, 9); + setState(913); + match(SMTLIBv2Parser::PK_ProduceUnsatAssumptions); + setState(914); + b_value(); + break; + } + + case 10: { + enterOuterAlt(_localctx, 10); + setState(915); + match(SMTLIBv2Parser::PK_ProduceUnsatCores); + setState(916); + b_value(); + break; + } + + case 11: { + enterOuterAlt(_localctx, 11); + setState(917); + match(SMTLIBv2Parser::PK_RandomSeed); + setState(918); + numeral(); + break; + } + + case 12: { + enterOuterAlt(_localctx, 12); + setState(919); + match(SMTLIBv2Parser::PK_RegularOutputChannel); + setState(920); + string(); + break; + } + + case 13: { + enterOuterAlt(_localctx, 13); + setState(921); + match(SMTLIBv2Parser::PK_ReproducibleResourceLimit); + setState(922); + numeral(); + break; + } + + case 14: { + enterOuterAlt(_localctx, 14); + setState(923); + match(SMTLIBv2Parser::PK_Verbosity); + setState(924); + numeral(); + break; + } + + case 15: { + enterOuterAlt(_localctx, 15); + setState(925); + attribute(); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Info_flagContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Info_flagContext::Info_flagContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Info_flagContext::PK_AllStatistics() { + return getToken(SMTLIBv2Parser::PK_AllStatistics, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Info_flagContext::PK_AssertionStackLevels() { + return getToken(SMTLIBv2Parser::PK_AssertionStackLevels, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Info_flagContext::PK_Authors() { + return getToken(SMTLIBv2Parser::PK_Authors, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Info_flagContext::PK_ErrorBehaviour() { + return getToken(SMTLIBv2Parser::PK_ErrorBehaviour, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Info_flagContext::PK_Name() { + return getToken(SMTLIBv2Parser::PK_Name, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Info_flagContext::PK_ReasonUnknown() { + return getToken(SMTLIBv2Parser::PK_ReasonUnknown, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Info_flagContext::PK_Version() { + return getToken(SMTLIBv2Parser::PK_Version, 0); +} + +SMTLIBv2Parser::KeywordContext* SMTLIBv2Parser::Info_flagContext::keyword() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::Info_flagContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleInfo_flag; +} + +void SMTLIBv2Parser::Info_flagContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterInfo_flag(this); +} + +void SMTLIBv2Parser::Info_flagContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitInfo_flag(this); +} + +SMTLIBv2Parser::Info_flagContext* SMTLIBv2Parser::info_flag() { + Info_flagContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 152, SMTLIBv2Parser::RuleInfo_flag); + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(936); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 59, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(928); + match(SMTLIBv2Parser::PK_AllStatistics); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(929); + match(SMTLIBv2Parser::PK_AssertionStackLevels); + break; + } + + case 3: { + enterOuterAlt(_localctx, 3); + setState(930); + match(SMTLIBv2Parser::PK_Authors); + break; + } + + case 4: { + enterOuterAlt(_localctx, 4); + setState(931); + match(SMTLIBv2Parser::PK_ErrorBehaviour); + break; + } + + case 5: { + enterOuterAlt(_localctx, 5); + setState(932); + match(SMTLIBv2Parser::PK_Name); + break; + } + + case 6: { + enterOuterAlt(_localctx, 6); + setState(933); + match(SMTLIBv2Parser::PK_ReasonUnknown); + break; + } + + case 7: { + enterOuterAlt(_localctx, 7); + setState(934); + match(SMTLIBv2Parser::PK_Version); + break; + } + + case 8: { + enterOuterAlt(_localctx, 8); + setState(935); + keyword(); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Error_behaviourContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Error_behaviourContext::Error_behaviourContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Error_behaviourContext::PS_ImmediateExit() { + return getToken(SMTLIBv2Parser::PS_ImmediateExit, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Error_behaviourContext::PS_ContinuedExecution() { + return getToken(SMTLIBv2Parser::PS_ContinuedExecution, 0); +} + + +size_t SMTLIBv2Parser::Error_behaviourContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleError_behaviour; +} + +void SMTLIBv2Parser::Error_behaviourContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterError_behaviour(this); +} + +void SMTLIBv2Parser::Error_behaviourContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitError_behaviour(this); +} + +SMTLIBv2Parser::Error_behaviourContext* SMTLIBv2Parser::error_behaviour() { + Error_behaviourContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 154, SMTLIBv2Parser::RuleError_behaviour); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(938); + _la = _input->LA(1); + if (!(_la == SMTLIBv2Parser::PS_ContinuedExecution + + || _la == SMTLIBv2Parser::PS_ImmediateExit)) { + _errHandler->recoverInline(this); + } + else { + _errHandler->reportMatch(this); + consume(); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Reason_unknownContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Reason_unknownContext::Reason_unknownContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Reason_unknownContext::PS_Memout() { + return getToken(SMTLIBv2Parser::PS_Memout, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Reason_unknownContext::PS_Incomplete() { + return getToken(SMTLIBv2Parser::PS_Incomplete, 0); +} + +SMTLIBv2Parser::S_exprContext* SMTLIBv2Parser::Reason_unknownContext::s_expr() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::Reason_unknownContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleReason_unknown; +} + +void SMTLIBv2Parser::Reason_unknownContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterReason_unknown(this); +} + +void SMTLIBv2Parser::Reason_unknownContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitReason_unknown(this); +} + +SMTLIBv2Parser::Reason_unknownContext* SMTLIBv2Parser::reason_unknown() { + Reason_unknownContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 156, SMTLIBv2Parser::RuleReason_unknown); + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(943); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 60, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(940); + match(SMTLIBv2Parser::PS_Memout); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(941); + match(SMTLIBv2Parser::PS_Incomplete); + break; + } + + case 3: { + enterOuterAlt(_localctx, 3); + setState(942); + s_expr(); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Model_responseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Model_responseContext::Model_responseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +std::vector SMTLIBv2Parser::Model_responseContext::ParOpen() { + return getTokens(SMTLIBv2Parser::ParOpen); +} + +tree::TerminalNode* SMTLIBv2Parser::Model_responseContext::ParOpen(size_t i) { + return getToken(SMTLIBv2Parser::ParOpen, i); +} + +tree::TerminalNode* SMTLIBv2Parser::Model_responseContext::CMD_DefineFun() { + return getToken(SMTLIBv2Parser::CMD_DefineFun, 0); +} + +SMTLIBv2Parser::Function_defContext* SMTLIBv2Parser::Model_responseContext::function_def() { + return getRuleContext(0); +} + +std::vector SMTLIBv2Parser::Model_responseContext::ParClose() { + return getTokens(SMTLIBv2Parser::ParClose); +} + +tree::TerminalNode* SMTLIBv2Parser::Model_responseContext::ParClose(size_t i) { + return getToken(SMTLIBv2Parser::ParClose, i); +} + +tree::TerminalNode* SMTLIBv2Parser::Model_responseContext::CMD_DefineFunRec() { + return getToken(SMTLIBv2Parser::CMD_DefineFunRec, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Model_responseContext::CMD_DefineFunsRec() { + return getToken(SMTLIBv2Parser::CMD_DefineFunsRec, 0); +} + +std::vector SMTLIBv2Parser::Model_responseContext::function_dec() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Function_decContext* SMTLIBv2Parser::Model_responseContext::function_dec(size_t i) { + return getRuleContext(i); +} + +std::vector SMTLIBv2Parser::Model_responseContext::term() { + return getRuleContexts(); +} + +SMTLIBv2Parser::TermContext* SMTLIBv2Parser::Model_responseContext::term(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Model_responseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleModel_response; +} + +void SMTLIBv2Parser::Model_responseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterModel_response(this); +} + +void SMTLIBv2Parser::Model_responseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitModel_response(this); +} + +SMTLIBv2Parser::Model_responseContext* SMTLIBv2Parser::model_response() { + Model_responseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 158, SMTLIBv2Parser::RuleModel_response); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(973); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 63, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(945); + match(SMTLIBv2Parser::ParOpen); + setState(946); + match(SMTLIBv2Parser::CMD_DefineFun); + setState(947); + function_def(); + setState(948); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(950); + match(SMTLIBv2Parser::ParOpen); + setState(951); + match(SMTLIBv2Parser::CMD_DefineFunRec); + setState(952); + function_def(); + setState(953); + match(SMTLIBv2Parser::ParClose); + break; + } + + case 3: { + enterOuterAlt(_localctx, 3); + setState(955); + match(SMTLIBv2Parser::ParOpen); + setState(956); + match(SMTLIBv2Parser::CMD_DefineFunsRec); + setState(957); + match(SMTLIBv2Parser::ParOpen); + setState(959); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(958); + function_dec(); + setState(961); + _errHandler->sync(this); + _la = _input->LA(1); + } while (_la == SMTLIBv2Parser::ParOpen); + setState(963); + match(SMTLIBv2Parser::ParClose); + setState(964); + match(SMTLIBv2Parser::ParOpen); + setState(966); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(965); + term(); + setState(968); + _errHandler->sync(this); + _la = _input->LA(1); + } while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::ParOpen) + | (1ULL << SMTLIBv2Parser::String) + | (1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || ((((_la - 66) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 66)) & ((1ULL << (SMTLIBv2Parser::Numeral - 66)) + | (1ULL << (SMTLIBv2Parser::Binary - 66)) + | (1ULL << (SMTLIBv2Parser::HexDecimal - 66)) + | (1ULL << (SMTLIBv2Parser::Decimal - 66)) + | (1ULL << (SMTLIBv2Parser::UndefinedSymbol - 66)))) != 0)); + setState(970); + match(SMTLIBv2Parser::ParClose); + setState(971); + match(SMTLIBv2Parser::ParClose); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Info_responseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Info_responseContext::Info_responseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Info_responseContext::PK_AssertionStackLevels() { + return getToken(SMTLIBv2Parser::PK_AssertionStackLevels, 0); +} + +SMTLIBv2Parser::NumeralContext* SMTLIBv2Parser::Info_responseContext::numeral() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Info_responseContext::PK_Authors() { + return getToken(SMTLIBv2Parser::PK_Authors, 0); +} + +SMTLIBv2Parser::StringContext* SMTLIBv2Parser::Info_responseContext::string() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Info_responseContext::PK_ErrorBehaviour() { + return getToken(SMTLIBv2Parser::PK_ErrorBehaviour, 0); +} + +SMTLIBv2Parser::Error_behaviourContext* SMTLIBv2Parser::Info_responseContext::error_behaviour() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Info_responseContext::PK_Name() { + return getToken(SMTLIBv2Parser::PK_Name, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Info_responseContext::PK_ReasonUnknown() { + return getToken(SMTLIBv2Parser::PK_ReasonUnknown, 0); +} + +SMTLIBv2Parser::Reason_unknownContext* SMTLIBv2Parser::Info_responseContext::reason_unknown() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::Info_responseContext::PK_Version() { + return getToken(SMTLIBv2Parser::PK_Version, 0); +} + +SMTLIBv2Parser::AttributeContext* SMTLIBv2Parser::Info_responseContext::attribute() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::Info_responseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleInfo_response; +} + +void SMTLIBv2Parser::Info_responseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterInfo_response(this); +} + +void SMTLIBv2Parser::Info_responseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitInfo_response(this); +} + +SMTLIBv2Parser::Info_responseContext* SMTLIBv2Parser::info_response() { + Info_responseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 160, SMTLIBv2Parser::RuleInfo_response); + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(988); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 64, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(975); + match(SMTLIBv2Parser::PK_AssertionStackLevels); + setState(976); + numeral(); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(977); + match(SMTLIBv2Parser::PK_Authors); + setState(978); + string(); + break; + } + + case 3: { + enterOuterAlt(_localctx, 3); + setState(979); + match(SMTLIBv2Parser::PK_ErrorBehaviour); + setState(980); + error_behaviour(); + break; + } + + case 4: { + enterOuterAlt(_localctx, 4); + setState(981); + match(SMTLIBv2Parser::PK_Name); + setState(982); + string(); + break; + } + + case 5: { + enterOuterAlt(_localctx, 5); + setState(983); + match(SMTLIBv2Parser::PK_ReasonUnknown); + setState(984); + reason_unknown(); + break; + } + + case 6: { + enterOuterAlt(_localctx, 6); + setState(985); + match(SMTLIBv2Parser::PK_Version); + setState(986); + string(); + break; + } + + case 7: { + enterOuterAlt(_localctx, 7); + setState(987); + attribute(); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Valuation_pairContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Valuation_pairContext::Valuation_pairContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Valuation_pairContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +std::vector SMTLIBv2Parser::Valuation_pairContext::term() { + return getRuleContexts(); +} + +SMTLIBv2Parser::TermContext* SMTLIBv2Parser::Valuation_pairContext::term(size_t i) { + return getRuleContext(i); +} + +tree::TerminalNode* SMTLIBv2Parser::Valuation_pairContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + + +size_t SMTLIBv2Parser::Valuation_pairContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleValuation_pair; +} + +void SMTLIBv2Parser::Valuation_pairContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterValuation_pair(this); +} + +void SMTLIBv2Parser::Valuation_pairContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitValuation_pair(this); +} + +SMTLIBv2Parser::Valuation_pairContext* SMTLIBv2Parser::valuation_pair() { + Valuation_pairContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 162, SMTLIBv2Parser::RuleValuation_pair); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(990); + match(SMTLIBv2Parser::ParOpen); + setState(991); + term(); + setState(992); + term(); + setState(993); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- T_valuation_pairContext ------------------------------------------------------------------ + +SMTLIBv2Parser::T_valuation_pairContext::T_valuation_pairContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::T_valuation_pairContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::T_valuation_pairContext::symbol() { + return getRuleContext(0); +} + +SMTLIBv2Parser::B_valueContext* SMTLIBv2Parser::T_valuation_pairContext::b_value() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::T_valuation_pairContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + + +size_t SMTLIBv2Parser::T_valuation_pairContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleT_valuation_pair; +} + +void SMTLIBv2Parser::T_valuation_pairContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterT_valuation_pair(this); +} + +void SMTLIBv2Parser::T_valuation_pairContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitT_valuation_pair(this); +} + +SMTLIBv2Parser::T_valuation_pairContext* SMTLIBv2Parser::t_valuation_pair() { + T_valuation_pairContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 164, SMTLIBv2Parser::RuleT_valuation_pair); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(995); + match(SMTLIBv2Parser::ParOpen); + setState(996); + symbol(); + setState(997); + b_value(); + setState(998); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Check_sat_responseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Check_sat_responseContext::Check_sat_responseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Check_sat_responseContext::PS_Sat() { + return getToken(SMTLIBv2Parser::PS_Sat, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Check_sat_responseContext::PS_Unsat() { + return getToken(SMTLIBv2Parser::PS_Unsat, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Check_sat_responseContext::PS_Unknown() { + return getToken(SMTLIBv2Parser::PS_Unknown, 0); +} + + +size_t SMTLIBv2Parser::Check_sat_responseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleCheck_sat_response; +} + +void SMTLIBv2Parser::Check_sat_responseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCheck_sat_response(this); +} + +void SMTLIBv2Parser::Check_sat_responseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCheck_sat_response(this); +} + +SMTLIBv2Parser::Check_sat_responseContext* SMTLIBv2Parser::check_sat_response() { + Check_sat_responseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 166, SMTLIBv2Parser::RuleCheck_sat_response); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(1000); + _la = _input->LA(1); + if (!((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0))) { + _errHandler->recoverInline(this); + } + else { + _errHandler->reportMatch(this); + consume(); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Echo_responseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Echo_responseContext::Echo_responseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::StringContext* SMTLIBv2Parser::Echo_responseContext::string() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::Echo_responseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleEcho_response; +} + +void SMTLIBv2Parser::Echo_responseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterEcho_response(this); +} + +void SMTLIBv2Parser::Echo_responseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitEcho_response(this); +} + +SMTLIBv2Parser::Echo_responseContext* SMTLIBv2Parser::echo_response() { + Echo_responseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 168, SMTLIBv2Parser::RuleEcho_response); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(1002); + string(); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Get_assertions_responseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Get_assertions_responseContext::Get_assertions_responseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Get_assertions_responseContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Get_assertions_responseContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::Get_assertions_responseContext::term() { + return getRuleContexts(); +} + +SMTLIBv2Parser::TermContext* SMTLIBv2Parser::Get_assertions_responseContext::term(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Get_assertions_responseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleGet_assertions_response; +} + +void SMTLIBv2Parser::Get_assertions_responseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterGet_assertions_response(this); +} + +void SMTLIBv2Parser::Get_assertions_responseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitGet_assertions_response(this); +} + +SMTLIBv2Parser::Get_assertions_responseContext* SMTLIBv2Parser::get_assertions_response() { + Get_assertions_responseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 170, SMTLIBv2Parser::RuleGet_assertions_response); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(1004); + match(SMTLIBv2Parser::ParOpen); + setState(1008); + _errHandler->sync(this); + _la = _input->LA(1); + while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::ParOpen) + | (1ULL << SMTLIBv2Parser::String) + | (1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || ((((_la - 66) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 66)) & ((1ULL << (SMTLIBv2Parser::Numeral - 66)) + | (1ULL << (SMTLIBv2Parser::Binary - 66)) + | (1ULL << (SMTLIBv2Parser::HexDecimal - 66)) + | (1ULL << (SMTLIBv2Parser::Decimal - 66)) + | (1ULL << (SMTLIBv2Parser::UndefinedSymbol - 66)))) != 0)) { + setState(1005); + term(); + setState(1010); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(1011); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Get_assignment_responseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Get_assignment_responseContext::Get_assignment_responseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Get_assignment_responseContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Get_assignment_responseContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::Get_assignment_responseContext::t_valuation_pair() { + return getRuleContexts(); +} + +SMTLIBv2Parser::T_valuation_pairContext* SMTLIBv2Parser::Get_assignment_responseContext::t_valuation_pair(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Get_assignment_responseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleGet_assignment_response; +} + +void SMTLIBv2Parser::Get_assignment_responseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterGet_assignment_response(this); +} + +void SMTLIBv2Parser::Get_assignment_responseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitGet_assignment_response(this); +} + +SMTLIBv2Parser::Get_assignment_responseContext* SMTLIBv2Parser::get_assignment_response() { + Get_assignment_responseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 172, SMTLIBv2Parser::RuleGet_assignment_response); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(1013); + match(SMTLIBv2Parser::ParOpen); + setState(1017); + _errHandler->sync(this); + _la = _input->LA(1); + while (_la == SMTLIBv2Parser::ParOpen) { + setState(1014); + t_valuation_pair(); + setState(1019); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(1020); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Get_info_responseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Get_info_responseContext::Get_info_responseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Get_info_responseContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Get_info_responseContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::Get_info_responseContext::info_response() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Info_responseContext* SMTLIBv2Parser::Get_info_responseContext::info_response(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Get_info_responseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleGet_info_response; +} + +void SMTLIBv2Parser::Get_info_responseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterGet_info_response(this); +} + +void SMTLIBv2Parser::Get_info_responseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitGet_info_response(this); +} + +SMTLIBv2Parser::Get_info_responseContext* SMTLIBv2Parser::get_info_response() { + Get_info_responseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 174, SMTLIBv2Parser::RuleGet_info_response); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(1022); + match(SMTLIBv2Parser::ParOpen); + setState(1024); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(1023); + info_response(); + setState(1026); + _errHandler->sync(this); + _la = _input->LA(1); + } while (((((_la - 70) & ~ 0x3fULL) == 0) && + ((1ULL << (_la - 70)) & ((1ULL << (SMTLIBv2Parser::Colon - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AllStatistics - 70)) + | (1ULL << (SMTLIBv2Parser::PK_AssertionStackLevels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Authors - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Category - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Chainable - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Definition - 70)) + | (1ULL << (SMTLIBv2Parser::PK_DiagnosticOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ErrorBehaviour - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Extension - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Funs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_FunsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_GlobalDeclarations - 70)) + | (1ULL << (SMTLIBv2Parser::PK_InteractiveMode - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Language - 70)) + | (1ULL << (SMTLIBv2Parser::PK_LeftAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_License - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Named - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Name - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Notes - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Pattern - 70)) + | (1ULL << (SMTLIBv2Parser::PK_PrintSuccess - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssertions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceAssignments - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceModels - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceProofs - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatAssumptions - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ProduceUnsatCores - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RandomSeed - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReasonUnknown - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RegularOutputChannel - 70)) + | (1ULL << (SMTLIBv2Parser::PK_ReproducibleResourceLimit - 70)) + | (1ULL << (SMTLIBv2Parser::PK_RightAssoc - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SmtLibVersion - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Sorts - 70)) + | (1ULL << (SMTLIBv2Parser::PK_SortsDescription - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Source - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Status - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Theories - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Values - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Verbosity - 70)) + | (1ULL << (SMTLIBv2Parser::PK_Version - 70)))) != 0)); + setState(1028); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Get_model_responseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Get_model_responseContext::Get_model_responseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Get_model_responseContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Get_model_responseContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::Get_model_responseContext::model_response() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Model_responseContext* SMTLIBv2Parser::Get_model_responseContext::model_response(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Get_model_responseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleGet_model_response; +} + +void SMTLIBv2Parser::Get_model_responseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterGet_model_response(this); +} + +void SMTLIBv2Parser::Get_model_responseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitGet_model_response(this); +} + +SMTLIBv2Parser::Get_model_responseContext* SMTLIBv2Parser::get_model_response() { + Get_model_responseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 176, SMTLIBv2Parser::RuleGet_model_response); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(1030); + match(SMTLIBv2Parser::ParOpen); + setState(1034); + _errHandler->sync(this); + _la = _input->LA(1); + while (_la == SMTLIBv2Parser::ParOpen) { + setState(1031); + model_response(); + setState(1036); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(1037); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Get_option_responseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Get_option_responseContext::Get_option_responseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::Attribute_valueContext* SMTLIBv2Parser::Get_option_responseContext::attribute_value() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::Get_option_responseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleGet_option_response; +} + +void SMTLIBv2Parser::Get_option_responseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterGet_option_response(this); +} + +void SMTLIBv2Parser::Get_option_responseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitGet_option_response(this); +} + +SMTLIBv2Parser::Get_option_responseContext* SMTLIBv2Parser::get_option_response() { + Get_option_responseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 178, SMTLIBv2Parser::RuleGet_option_response); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(1039); + attribute_value(); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Get_proof_responseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Get_proof_responseContext::Get_proof_responseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::S_exprContext* SMTLIBv2Parser::Get_proof_responseContext::s_expr() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::Get_proof_responseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleGet_proof_response; +} + +void SMTLIBv2Parser::Get_proof_responseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterGet_proof_response(this); +} + +void SMTLIBv2Parser::Get_proof_responseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitGet_proof_response(this); +} + +SMTLIBv2Parser::Get_proof_responseContext* SMTLIBv2Parser::get_proof_response() { + Get_proof_responseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 180, SMTLIBv2Parser::RuleGet_proof_response); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(1041); + s_expr(); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Get_unsat_assump_responseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Get_unsat_assump_responseContext::Get_unsat_assump_responseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Get_unsat_assump_responseContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Get_unsat_assump_responseContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::Get_unsat_assump_responseContext::symbol() { + return getRuleContexts(); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::Get_unsat_assump_responseContext::symbol(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Get_unsat_assump_responseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleGet_unsat_assump_response; +} + +void SMTLIBv2Parser::Get_unsat_assump_responseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterGet_unsat_assump_response(this); +} + +void SMTLIBv2Parser::Get_unsat_assump_responseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitGet_unsat_assump_response(this); +} + +SMTLIBv2Parser::Get_unsat_assump_responseContext* SMTLIBv2Parser::get_unsat_assump_response() { + Get_unsat_assump_responseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 182, SMTLIBv2Parser::RuleGet_unsat_assump_response); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(1043); + match(SMTLIBv2Parser::ParOpen); + setState(1047); + _errHandler->sync(this); + _la = _input->LA(1); + while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || _la == SMTLIBv2Parser::UndefinedSymbol) { + setState(1044); + symbol(); + setState(1049); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(1050); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Get_unsat_core_responseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Get_unsat_core_responseContext::Get_unsat_core_responseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Get_unsat_core_responseContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Get_unsat_core_responseContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::Get_unsat_core_responseContext::symbol() { + return getRuleContexts(); +} + +SMTLIBv2Parser::SymbolContext* SMTLIBv2Parser::Get_unsat_core_responseContext::symbol(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Get_unsat_core_responseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleGet_unsat_core_response; +} + +void SMTLIBv2Parser::Get_unsat_core_responseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterGet_unsat_core_response(this); +} + +void SMTLIBv2Parser::Get_unsat_core_responseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitGet_unsat_core_response(this); +} + +SMTLIBv2Parser::Get_unsat_core_responseContext* SMTLIBv2Parser::get_unsat_core_response() { + Get_unsat_core_responseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 184, SMTLIBv2Parser::RuleGet_unsat_core_response); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(1052); + match(SMTLIBv2Parser::ParOpen); + setState(1056); + _errHandler->sync(this); + _la = _input->LA(1); + while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SMTLIBv2Parser::QuotedSymbol) + | (1ULL << SMTLIBv2Parser::PS_Not) + | (1ULL << SMTLIBv2Parser::PS_Bool) + | (1ULL << SMTLIBv2Parser::PS_ContinuedExecution) + | (1ULL << SMTLIBv2Parser::PS_Error) + | (1ULL << SMTLIBv2Parser::PS_False) + | (1ULL << SMTLIBv2Parser::PS_ImmediateExit) + | (1ULL << SMTLIBv2Parser::PS_Incomplete) + | (1ULL << SMTLIBv2Parser::PS_Logic) + | (1ULL << SMTLIBv2Parser::PS_Memout) + | (1ULL << SMTLIBv2Parser::PS_Sat) + | (1ULL << SMTLIBv2Parser::PS_Success) + | (1ULL << SMTLIBv2Parser::PS_Theory) + | (1ULL << SMTLIBv2Parser::PS_True) + | (1ULL << SMTLIBv2Parser::PS_Unknown) + | (1ULL << SMTLIBv2Parser::PS_Unsupported) + | (1ULL << SMTLIBv2Parser::PS_Unsat))) != 0) || _la == SMTLIBv2Parser::UndefinedSymbol) { + setState(1053); + symbol(); + setState(1058); + _errHandler->sync(this); + _la = _input->LA(1); + } + setState(1059); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Get_value_responseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Get_value_responseContext::Get_value_responseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::Get_value_responseContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::Get_value_responseContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + +std::vector SMTLIBv2Parser::Get_value_responseContext::valuation_pair() { + return getRuleContexts(); +} + +SMTLIBv2Parser::Valuation_pairContext* SMTLIBv2Parser::Get_value_responseContext::valuation_pair(size_t i) { + return getRuleContext(i); +} + + +size_t SMTLIBv2Parser::Get_value_responseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleGet_value_response; +} + +void SMTLIBv2Parser::Get_value_responseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterGet_value_response(this); +} + +void SMTLIBv2Parser::Get_value_responseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitGet_value_response(this); +} + +SMTLIBv2Parser::Get_value_responseContext* SMTLIBv2Parser::get_value_response() { + Get_value_responseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 186, SMTLIBv2Parser::RuleGet_value_response); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(1061); + match(SMTLIBv2Parser::ParOpen); + setState(1063); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(1062); + valuation_pair(); + setState(1065); + _errHandler->sync(this); + _la = _input->LA(1); + } while (_la == SMTLIBv2Parser::ParOpen); + setState(1067); + match(SMTLIBv2Parser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- Specific_success_responseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::Specific_success_responseContext::Specific_success_responseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SMTLIBv2Parser::Check_sat_responseContext* SMTLIBv2Parser::Specific_success_responseContext::check_sat_response() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Echo_responseContext* SMTLIBv2Parser::Specific_success_responseContext::echo_response() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Get_assertions_responseContext* SMTLIBv2Parser::Specific_success_responseContext::get_assertions_response() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Get_assignment_responseContext* SMTLIBv2Parser::Specific_success_responseContext::get_assignment_response() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Get_info_responseContext* SMTLIBv2Parser::Specific_success_responseContext::get_info_response() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Get_model_responseContext* SMTLIBv2Parser::Specific_success_responseContext::get_model_response() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Get_option_responseContext* SMTLIBv2Parser::Specific_success_responseContext::get_option_response() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Get_proof_responseContext* SMTLIBv2Parser::Specific_success_responseContext::get_proof_response() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Get_unsat_assump_responseContext* SMTLIBv2Parser::Specific_success_responseContext::get_unsat_assump_response() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Get_unsat_core_responseContext* SMTLIBv2Parser::Specific_success_responseContext::get_unsat_core_response() { + return getRuleContext(0); +} + +SMTLIBv2Parser::Get_value_responseContext* SMTLIBv2Parser::Specific_success_responseContext::get_value_response() { + return getRuleContext(0); +} + + +size_t SMTLIBv2Parser::Specific_success_responseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleSpecific_success_response; +} + +void SMTLIBv2Parser::Specific_success_responseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterSpecific_success_response(this); +} + +void SMTLIBv2Parser::Specific_success_responseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitSpecific_success_response(this); +} + +SMTLIBv2Parser::Specific_success_responseContext* SMTLIBv2Parser::specific_success_response() { + Specific_success_responseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 188, SMTLIBv2Parser::RuleSpecific_success_response); + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(1080); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 72, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(1069); + check_sat_response(); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(1070); + echo_response(); + break; + } + + case 3: { + enterOuterAlt(_localctx, 3); + setState(1071); + get_assertions_response(); + break; + } + + case 4: { + enterOuterAlt(_localctx, 4); + setState(1072); + get_assignment_response(); + break; + } + + case 5: { + enterOuterAlt(_localctx, 5); + setState(1073); + get_info_response(); + break; + } + + case 6: { + enterOuterAlt(_localctx, 6); + setState(1074); + get_model_response(); + break; + } + + case 7: { + enterOuterAlt(_localctx, 7); + setState(1075); + get_option_response(); + break; + } + + case 8: { + enterOuterAlt(_localctx, 8); + setState(1076); + get_proof_response(); + break; + } + + case 9: { + enterOuterAlt(_localctx, 9); + setState(1077); + get_unsat_assump_response(); + break; + } + + case 10: { + enterOuterAlt(_localctx, 10); + setState(1078); + get_unsat_core_response(); + break; + } + + case 11: { + enterOuterAlt(_localctx, 11); + setState(1079); + get_value_response(); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- General_responseContext ------------------------------------------------------------------ + +SMTLIBv2Parser::General_responseContext::General_responseContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SMTLIBv2Parser::General_responseContext::PS_Success() { + return getToken(SMTLIBv2Parser::PS_Success, 0); +} + +SMTLIBv2Parser::Specific_success_responseContext* SMTLIBv2Parser::General_responseContext::specific_success_response() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::General_responseContext::PS_Unsupported() { + return getToken(SMTLIBv2Parser::PS_Unsupported, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::General_responseContext::ParOpen() { + return getToken(SMTLIBv2Parser::ParOpen, 0); +} + +tree::TerminalNode* SMTLIBv2Parser::General_responseContext::PS_Error() { + return getToken(SMTLIBv2Parser::PS_Error, 0); +} + +SMTLIBv2Parser::StringContext* SMTLIBv2Parser::General_responseContext::string() { + return getRuleContext(0); +} + +tree::TerminalNode* SMTLIBv2Parser::General_responseContext::ParClose() { + return getToken(SMTLIBv2Parser::ParClose, 0); +} + + +size_t SMTLIBv2Parser::General_responseContext::getRuleIndex() const { + return SMTLIBv2Parser::RuleGeneral_response; +} + +void SMTLIBv2Parser::General_responseContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterGeneral_response(this); +} + +void SMTLIBv2Parser::General_responseContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitGeneral_response(this); +} + +SMTLIBv2Parser::General_responseContext* SMTLIBv2Parser::general_response() { + General_responseContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 190, SMTLIBv2Parser::RuleGeneral_response); + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(1090); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 73, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(1082); + match(SMTLIBv2Parser::PS_Success); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(1083); + specific_success_response(); + break; + } + + case 3: { + enterOuterAlt(_localctx, 3); + setState(1084); + match(SMTLIBv2Parser::PS_Unsupported); + break; + } + + case 4: { + enterOuterAlt(_localctx, 4); + setState(1085); + match(SMTLIBv2Parser::ParOpen); + setState(1086); + match(SMTLIBv2Parser::PS_Error); + setState(1087); + string(); + setState(1088); + match(SMTLIBv2Parser::ParClose); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +// Static vars and initialization. +std::vector SMTLIBv2Parser::_decisionToDFA; +atn::PredictionContextCache SMTLIBv2Parser::_sharedContextCache; + +// We own the ATN which in turn owns the ATN states. +atn::ATN SMTLIBv2Parser::_atn; +std::vector SMTLIBv2Parser::_serializedATN; + +std::vector SMTLIBv2Parser::_ruleNames = { + "start", "response", "generalReservedWord", "simpleSymbol", "quotedSymbol", + "predefSymbol", "predefKeyword", "symbol", "numeral", "decimal", "hexadecimal", + "binary", "string", "keyword", "spec_constant", "s_expr", "index", "identifier", + "attribute_value", "attribute", "sort", "qual_identifer", "var_binding", + "sorted_var", "pattern", "match_case", "term", "sort_symbol_decl", "meta_spec_constant", + "fun_symbol_decl", "par_fun_symbol_decl", "theory_attribute", "theory_decl", + "logic_attribue", "logic", "sort_dec", "selector_dec", "constructor_dec", + "datatype_dec", "function_dec", "function_def", "prop_literal", "script", + "cmd_assert", "cmd_checkSat", "cmd_checkSatAssuming", "cmd_declareConst", + "cmd_declareDatatype", "cmd_declareDatatypes", "cmd_declareFun", "cmd_declareSort", + "cmd_defineFun", "cmd_defineFunRec", "cmd_defineFunsRec", "cmd_defineSort", + "cmd_echo", "cmd_exit", "cmd_getAssertions", "cmd_getAssignment", "cmd_getInfo", + "cmd_getModel", "cmd_getOption", "cmd_getProof", "cmd_getUnsatAssumptions", + "cmd_getUnsatCore", "cmd_getValue", "cmd_pop", "cmd_push", "cmd_reset", + "cmd_resetAssertions", "cmd_setInfo", "cmd_setLogic", "cmd_setOption", + "command", "b_value", "option", "info_flag", "error_behaviour", "reason_unknown", + "model_response", "info_response", "valuation_pair", "t_valuation_pair", + "check_sat_response", "echo_response", "get_assertions_response", "get_assignment_response", + "get_info_response", "get_model_response", "get_option_response", "get_proof_response", + "get_unsat_assump_response", "get_unsat_core_response", "get_value_response", + "specific_success_response", "general_response" +}; + +std::vector SMTLIBv2Parser::_literalNames = { + "", "", "'('", "')'", "';'", "", "", "'not'", "'Bool'", "'continued-execution'", + "'error'", "'false'", "'immediate-exit'", "'incomplete'", "'logic'", "'memout'", + "'sat'", "'success'", "'theory'", "'true'", "'unknown'", "'unsupported'", + "'unsat'", "'assert'", "'check-sat'", "'check-sat-assuming'", "'declare-const'", + "'declare-datatype'", "'declare-datatypes'", "'declare-fun'", "'declare-sort'", + "'define-fun'", "'define-fun-rec'", "'define-funs-rec'", "'define-sort'", + "'echo'", "'exit'", "'get-assertions'", "'get-assignment'", "'get-info'", + "'get-model'", "'get-option'", "'get-proof'", "'get-unsat-assumptions'", + "'get-unsat-core'", "'get-value'", "'pop'", "'push'", "'reset'", "'reset-assertions'", + "'set-info'", "'set-logic'", "'set-option'", "'!'", "'_'", "'as'", "'BINARY'", + "'DECIMAL'", "'exists'", "'HEXADECIMAL'", "'forall'", "'let'", "'match'", + "'NUMERAL'", "'par'", "'string'", "", "", "", "", "':'", "':all-statistics'", + "':assertion-stack-levels'", "':authors'", "':category'", "':chainable'", + "':definition'", "':diagnostic-output-channel'", "':error-behavior'", + "':extensions'", "':funs'", "':funs-description'", "':global-declarations'", + "':interactive-mode'", "':language'", "':left-assoc'", "':license'", "':named'", + "':name'", "':notes'", "':pattern'", "':print-success'", "':produce-assertions'", + "':produce-assignments'", "':produce-models'", "':produce-proofs'", "':produce-unsat-assumptions'", + "':produce-unsat-cores'", "':random-seed'", "':reason-unknown'", "':regular-output-channel'", + "':reproducible-resource-limit'", "':right-assoc'", "':smt-lib-version'", + "':sorts'", "':sorts-description'", "':source'", "':status'", "':theories'", + "':values'", "':verbosity'", "':version'" +}; + +std::vector SMTLIBv2Parser::_symbolicNames = { + "", "Comment", "ParOpen", "ParClose", "Semicolon", "String", "QuotedSymbol", + "PS_Not", "PS_Bool", "PS_ContinuedExecution", "PS_Error", "PS_False", + "PS_ImmediateExit", "PS_Incomplete", "PS_Logic", "PS_Memout", "PS_Sat", + "PS_Success", "PS_Theory", "PS_True", "PS_Unknown", "PS_Unsupported", + "PS_Unsat", "CMD_Assert", "CMD_CheckSat", "CMD_CheckSatAssuming", "CMD_DeclareConst", + "CMD_DeclareDatatype", "CMD_DeclareDatatypes", "CMD_DeclareFun", "CMD_DeclareSort", + "CMD_DefineFun", "CMD_DefineFunRec", "CMD_DefineFunsRec", "CMD_DefineSort", + "CMD_Echo", "CMD_Exit", "CMD_GetAssertions", "CMD_GetAssignment", "CMD_GetInfo", + "CMD_GetModel", "CMD_GetOption", "CMD_GetProof", "CMD_GetUnsatAssumptions", + "CMD_GetUnsatCore", "CMD_GetValue", "CMD_Pop", "CMD_Push", "CMD_Reset", + "CMD_ResetAssertions", "CMD_SetInfo", "CMD_SetLogic", "CMD_SetOption", + "GRW_Exclamation", "GRW_Underscore", "GRW_As", "GRW_Binary", "GRW_Decimal", + "GRW_Exists", "GRW_Hexadecimal", "GRW_Forall", "GRW_Let", "GRW_Match", + "GRW_Numeral", "GRW_Par", "GRW_String", "Numeral", "Binary", "HexDecimal", + "Decimal", "Colon", "PK_AllStatistics", "PK_AssertionStackLevels", "PK_Authors", + "PK_Category", "PK_Chainable", "PK_Definition", "PK_DiagnosticOutputChannel", + "PK_ErrorBehaviour", "PK_Extension", "PK_Funs", "PK_FunsDescription", + "PK_GlobalDeclarations", "PK_InteractiveMode", "PK_Language", "PK_LeftAssoc", + "PK_License", "PK_Named", "PK_Name", "PK_Notes", "PK_Pattern", "PK_PrintSuccess", + "PK_ProduceAssertions", "PK_ProduceAssignments", "PK_ProduceModels", "PK_ProduceProofs", + "PK_ProduceUnsatAssumptions", "PK_ProduceUnsatCores", "PK_RandomSeed", + "PK_ReasonUnknown", "PK_RegularOutputChannel", "PK_ReproducibleResourceLimit", + "PK_RightAssoc", "PK_SmtLibVersion", "PK_Sorts", "PK_SortsDescription", + "PK_Source", "PK_Status", "PK_Theories", "PK_Values", "PK_Verbosity", + "PK_Version", "UndefinedSymbol", "WS" +}; + +dfa::Vocabulary SMTLIBv2Parser::_vocabulary(_literalNames, _symbolicNames); + +std::vector SMTLIBv2Parser::_tokenNames; + +SMTLIBv2Parser::Initializer::Initializer() { + for (size_t i = 0; i < _symbolicNames.size(); ++i) { + std::string name = _vocabulary.getLiteralName(i); + if (name.empty()) { + name = _vocabulary.getSymbolicName(i); + } + + if (name.empty()) { + _tokenNames.push_back(""); + } else { + _tokenNames.push_back(name); + } + } + + _serializedATN = { + 0x3, 0x608b, 0xa72a, 0x8133, 0xb9ed, 0x417c, 0x3be7, 0x7786, 0x5964, + 0x3, 0x73, 0x447, 0x4, 0x2, 0x9, 0x2, 0x4, 0x3, 0x9, 0x3, 0x4, 0x4, + 0x9, 0x4, 0x4, 0x5, 0x9, 0x5, 0x4, 0x6, 0x9, 0x6, 0x4, 0x7, 0x9, 0x7, + 0x4, 0x8, 0x9, 0x8, 0x4, 0x9, 0x9, 0x9, 0x4, 0xa, 0x9, 0xa, 0x4, 0xb, + 0x9, 0xb, 0x4, 0xc, 0x9, 0xc, 0x4, 0xd, 0x9, 0xd, 0x4, 0xe, 0x9, 0xe, + 0x4, 0xf, 0x9, 0xf, 0x4, 0x10, 0x9, 0x10, 0x4, 0x11, 0x9, 0x11, 0x4, + 0x12, 0x9, 0x12, 0x4, 0x13, 0x9, 0x13, 0x4, 0x14, 0x9, 0x14, 0x4, 0x15, + 0x9, 0x15, 0x4, 0x16, 0x9, 0x16, 0x4, 0x17, 0x9, 0x17, 0x4, 0x18, 0x9, + 0x18, 0x4, 0x19, 0x9, 0x19, 0x4, 0x1a, 0x9, 0x1a, 0x4, 0x1b, 0x9, 0x1b, + 0x4, 0x1c, 0x9, 0x1c, 0x4, 0x1d, 0x9, 0x1d, 0x4, 0x1e, 0x9, 0x1e, 0x4, + 0x1f, 0x9, 0x1f, 0x4, 0x20, 0x9, 0x20, 0x4, 0x21, 0x9, 0x21, 0x4, 0x22, + 0x9, 0x22, 0x4, 0x23, 0x9, 0x23, 0x4, 0x24, 0x9, 0x24, 0x4, 0x25, 0x9, + 0x25, 0x4, 0x26, 0x9, 0x26, 0x4, 0x27, 0x9, 0x27, 0x4, 0x28, 0x9, 0x28, + 0x4, 0x29, 0x9, 0x29, 0x4, 0x2a, 0x9, 0x2a, 0x4, 0x2b, 0x9, 0x2b, 0x4, + 0x2c, 0x9, 0x2c, 0x4, 0x2d, 0x9, 0x2d, 0x4, 0x2e, 0x9, 0x2e, 0x4, 0x2f, + 0x9, 0x2f, 0x4, 0x30, 0x9, 0x30, 0x4, 0x31, 0x9, 0x31, 0x4, 0x32, 0x9, + 0x32, 0x4, 0x33, 0x9, 0x33, 0x4, 0x34, 0x9, 0x34, 0x4, 0x35, 0x9, 0x35, + 0x4, 0x36, 0x9, 0x36, 0x4, 0x37, 0x9, 0x37, 0x4, 0x38, 0x9, 0x38, 0x4, + 0x39, 0x9, 0x39, 0x4, 0x3a, 0x9, 0x3a, 0x4, 0x3b, 0x9, 0x3b, 0x4, 0x3c, + 0x9, 0x3c, 0x4, 0x3d, 0x9, 0x3d, 0x4, 0x3e, 0x9, 0x3e, 0x4, 0x3f, 0x9, + 0x3f, 0x4, 0x40, 0x9, 0x40, 0x4, 0x41, 0x9, 0x41, 0x4, 0x42, 0x9, 0x42, + 0x4, 0x43, 0x9, 0x43, 0x4, 0x44, 0x9, 0x44, 0x4, 0x45, 0x9, 0x45, 0x4, + 0x46, 0x9, 0x46, 0x4, 0x47, 0x9, 0x47, 0x4, 0x48, 0x9, 0x48, 0x4, 0x49, + 0x9, 0x49, 0x4, 0x4a, 0x9, 0x4a, 0x4, 0x4b, 0x9, 0x4b, 0x4, 0x4c, 0x9, + 0x4c, 0x4, 0x4d, 0x9, 0x4d, 0x4, 0x4e, 0x9, 0x4e, 0x4, 0x4f, 0x9, 0x4f, + 0x4, 0x50, 0x9, 0x50, 0x4, 0x51, 0x9, 0x51, 0x4, 0x52, 0x9, 0x52, 0x4, + 0x53, 0x9, 0x53, 0x4, 0x54, 0x9, 0x54, 0x4, 0x55, 0x9, 0x55, 0x4, 0x56, + 0x9, 0x56, 0x4, 0x57, 0x9, 0x57, 0x4, 0x58, 0x9, 0x58, 0x4, 0x59, 0x9, + 0x59, 0x4, 0x5a, 0x9, 0x5a, 0x4, 0x5b, 0x9, 0x5b, 0x4, 0x5c, 0x9, 0x5c, + 0x4, 0x5d, 0x9, 0x5d, 0x4, 0x5e, 0x9, 0x5e, 0x4, 0x5f, 0x9, 0x5f, 0x4, + 0x60, 0x9, 0x60, 0x4, 0x61, 0x9, 0x61, 0x3, 0x2, 0x3, 0x2, 0x3, 0x2, + 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x4, 0x3, 0x4, 0x3, 0x5, 0x3, 0x5, + 0x5, 0x5, 0xcd, 0xa, 0x5, 0x3, 0x6, 0x3, 0x6, 0x3, 0x7, 0x3, 0x7, 0x3, + 0x8, 0x3, 0x8, 0x3, 0x9, 0x3, 0x9, 0x5, 0x9, 0xd7, 0xa, 0x9, 0x3, 0xa, + 0x3, 0xa, 0x3, 0xb, 0x3, 0xb, 0x3, 0xc, 0x3, 0xc, 0x3, 0xd, 0x3, 0xd, + 0x3, 0xe, 0x3, 0xe, 0x3, 0xf, 0x3, 0xf, 0x3, 0xf, 0x5, 0xf, 0xe6, 0xa, + 0xf, 0x3, 0x10, 0x3, 0x10, 0x3, 0x10, 0x3, 0x10, 0x3, 0x10, 0x5, 0x10, + 0xed, 0xa, 0x10, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, 0x3, 0x11, + 0x7, 0x11, 0xf4, 0xa, 0x11, 0xc, 0x11, 0xe, 0x11, 0xf7, 0xb, 0x11, 0x3, + 0x11, 0x5, 0x11, 0xfa, 0xa, 0x11, 0x3, 0x12, 0x3, 0x12, 0x5, 0x12, 0xfe, + 0xa, 0x12, 0x3, 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, 0x13, 0x6, + 0x13, 0x105, 0xa, 0x13, 0xd, 0x13, 0xe, 0x13, 0x106, 0x3, 0x13, 0x3, + 0x13, 0x5, 0x13, 0x10b, 0xa, 0x13, 0x3, 0x14, 0x3, 0x14, 0x3, 0x14, + 0x3, 0x14, 0x7, 0x14, 0x111, 0xa, 0x14, 0xc, 0x14, 0xe, 0x14, 0x114, + 0xb, 0x14, 0x3, 0x14, 0x5, 0x14, 0x117, 0xa, 0x14, 0x3, 0x15, 0x3, 0x15, + 0x3, 0x15, 0x3, 0x15, 0x5, 0x15, 0x11d, 0xa, 0x15, 0x3, 0x16, 0x3, 0x16, + 0x3, 0x16, 0x3, 0x16, 0x6, 0x16, 0x123, 0xa, 0x16, 0xd, 0x16, 0xe, 0x16, + 0x124, 0x3, 0x16, 0x3, 0x16, 0x5, 0x16, 0x129, 0xa, 0x16, 0x3, 0x17, + 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x5, + 0x17, 0x132, 0xa, 0x17, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, + 0x3, 0x18, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3, 0x19, 0x3, + 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x6, 0x1a, 0x142, 0xa, 0x1a, + 0xd, 0x1a, 0xe, 0x1a, 0x143, 0x3, 0x1a, 0x3, 0x1a, 0x5, 0x1a, 0x148, + 0xa, 0x1a, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, + 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x6, 0x1c, 0x154, + 0xa, 0x1c, 0xd, 0x1c, 0xe, 0x1c, 0x155, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, + 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x6, 0x1c, 0x15e, 0xa, 0x1c, 0xd, 0x1c, + 0xe, 0x1c, 0x15f, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, + 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x6, 0x1c, 0x16a, 0xa, 0x1c, 0xd, 0x1c, + 0xe, 0x1c, 0x16b, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, + 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x6, 0x1c, 0x176, 0xa, 0x1c, 0xd, 0x1c, + 0xe, 0x1c, 0x177, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, + 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x6, 0x1c, 0x183, 0xa, 0x1c, + 0xd, 0x1c, 0xe, 0x1c, 0x184, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, + 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, 0x6, 0x1c, 0x18e, 0xa, 0x1c, 0xd, 0x1c, + 0xe, 0x1c, 0x18f, 0x3, 0x1c, 0x3, 0x1c, 0x5, 0x1c, 0x194, 0xa, 0x1c, + 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x7, 0x1d, 0x19a, 0xa, 0x1d, + 0xc, 0x1d, 0xe, 0x1d, 0x19d, 0xb, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1e, + 0x3, 0x1e, 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x7, 0x1f, 0x1a7, + 0xa, 0x1f, 0xc, 0x1f, 0xe, 0x1f, 0x1aa, 0xb, 0x1f, 0x3, 0x1f, 0x3, 0x1f, + 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x7, 0x1f, 0x1b2, 0xa, 0x1f, + 0xc, 0x1f, 0xe, 0x1f, 0x1b5, 0xb, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x3, 0x1f, + 0x3, 0x1f, 0x3, 0x1f, 0x6, 0x1f, 0x1bc, 0xa, 0x1f, 0xd, 0x1f, 0xe, 0x1f, + 0x1bd, 0x3, 0x1f, 0x7, 0x1f, 0x1c1, 0xa, 0x1f, 0xc, 0x1f, 0xe, 0x1f, + 0x1c4, 0xb, 0x1f, 0x3, 0x1f, 0x3, 0x1f, 0x5, 0x1f, 0x1c8, 0xa, 0x1f, + 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x6, 0x20, 0x1cf, + 0xa, 0x20, 0xd, 0x20, 0xe, 0x20, 0x1d0, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, + 0x3, 0x20, 0x6, 0x20, 0x1d7, 0xa, 0x20, 0xd, 0x20, 0xe, 0x20, 0x1d8, + 0x3, 0x20, 0x7, 0x20, 0x1dc, 0xa, 0x20, 0xc, 0x20, 0xe, 0x20, 0x1df, + 0xb, 0x20, 0x3, 0x20, 0x3, 0x20, 0x3, 0x20, 0x5, 0x20, 0x1e4, 0xa, 0x20, + 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x6, 0x21, 0x1e9, 0xa, 0x21, 0xd, 0x21, + 0xe, 0x21, 0x1ea, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, + 0x6, 0x21, 0x1f2, 0xa, 0x21, 0xd, 0x21, 0xe, 0x21, 0x1f3, 0x3, 0x21, + 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, + 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x5, 0x21, + 0x203, 0xa, 0x21, 0x3, 0x22, 0x3, 0x22, 0x3, 0x22, 0x3, 0x22, 0x6, 0x22, + 0x209, 0xa, 0x22, 0xd, 0x22, 0xe, 0x22, 0x20a, 0x3, 0x22, 0x3, 0x22, + 0x3, 0x23, 0x3, 0x23, 0x3, 0x23, 0x6, 0x23, 0x212, 0xa, 0x23, 0xd, 0x23, + 0xe, 0x23, 0x213, 0x3, 0x23, 0x3, 0x23, 0x3, 0x23, 0x3, 0x23, 0x3, 0x23, + 0x3, 0x23, 0x3, 0x23, 0x3, 0x23, 0x3, 0x23, 0x3, 0x23, 0x3, 0x23, 0x5, + 0x23, 0x221, 0xa, 0x23, 0x3, 0x24, 0x3, 0x24, 0x3, 0x24, 0x3, 0x24, + 0x6, 0x24, 0x227, 0xa, 0x24, 0xd, 0x24, 0xe, 0x24, 0x228, 0x3, 0x24, + 0x3, 0x24, 0x3, 0x25, 0x3, 0x25, 0x3, 0x25, 0x3, 0x25, 0x3, 0x25, 0x3, + 0x26, 0x3, 0x26, 0x3, 0x26, 0x3, 0x26, 0x3, 0x26, 0x3, 0x27, 0x3, 0x27, + 0x3, 0x27, 0x7, 0x27, 0x23a, 0xa, 0x27, 0xc, 0x27, 0xe, 0x27, 0x23d, + 0xb, 0x27, 0x3, 0x27, 0x3, 0x27, 0x3, 0x28, 0x3, 0x28, 0x6, 0x28, 0x243, + 0xa, 0x28, 0xd, 0x28, 0xe, 0x28, 0x244, 0x3, 0x28, 0x3, 0x28, 0x3, 0x28, + 0x3, 0x28, 0x3, 0x28, 0x3, 0x28, 0x6, 0x28, 0x24d, 0xa, 0x28, 0xd, 0x28, + 0xe, 0x28, 0x24e, 0x3, 0x28, 0x3, 0x28, 0x3, 0x28, 0x6, 0x28, 0x254, + 0xa, 0x28, 0xd, 0x28, 0xe, 0x28, 0x255, 0x3, 0x28, 0x3, 0x28, 0x3, 0x28, + 0x5, 0x28, 0x25b, 0xa, 0x28, 0x3, 0x29, 0x3, 0x29, 0x3, 0x29, 0x3, 0x29, + 0x7, 0x29, 0x261, 0xa, 0x29, 0xc, 0x29, 0xe, 0x29, 0x264, 0xb, 0x29, + 0x3, 0x29, 0x3, 0x29, 0x3, 0x29, 0x3, 0x29, 0x3, 0x2a, 0x3, 0x2a, 0x3, + 0x2a, 0x7, 0x2a, 0x26d, 0xa, 0x2a, 0xc, 0x2a, 0xe, 0x2a, 0x270, 0xb, + 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2a, 0x3, 0x2b, 0x3, 0x2b, + 0x3, 0x2b, 0x3, 0x2b, 0x3, 0x2b, 0x3, 0x2b, 0x5, 0x2b, 0x27c, 0xa, 0x2b, + 0x3, 0x2c, 0x7, 0x2c, 0x27f, 0xa, 0x2c, 0xc, 0x2c, 0xe, 0x2c, 0x282, + 0xb, 0x2c, 0x3, 0x2d, 0x3, 0x2d, 0x3, 0x2e, 0x3, 0x2e, 0x3, 0x2f, 0x3, + 0x2f, 0x3, 0x30, 0x3, 0x30, 0x3, 0x31, 0x3, 0x31, 0x3, 0x32, 0x3, 0x32, + 0x3, 0x33, 0x3, 0x33, 0x3, 0x34, 0x3, 0x34, 0x3, 0x35, 0x3, 0x35, 0x3, + 0x36, 0x3, 0x36, 0x3, 0x37, 0x3, 0x37, 0x3, 0x38, 0x3, 0x38, 0x3, 0x39, + 0x3, 0x39, 0x3, 0x3a, 0x3, 0x3a, 0x3, 0x3b, 0x3, 0x3b, 0x3, 0x3c, 0x3, + 0x3c, 0x3, 0x3d, 0x3, 0x3d, 0x3, 0x3e, 0x3, 0x3e, 0x3, 0x3f, 0x3, 0x3f, + 0x3, 0x40, 0x3, 0x40, 0x3, 0x41, 0x3, 0x41, 0x3, 0x42, 0x3, 0x42, 0x3, + 0x43, 0x3, 0x43, 0x3, 0x44, 0x3, 0x44, 0x3, 0x45, 0x3, 0x45, 0x3, 0x46, + 0x3, 0x46, 0x3, 0x47, 0x3, 0x47, 0x3, 0x48, 0x3, 0x48, 0x3, 0x49, 0x3, + 0x49, 0x3, 0x4a, 0x3, 0x4a, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, + 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, + 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, + 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, + 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x6, 0x4b, + 0x2dd, 0xa, 0x4b, 0xd, 0x4b, 0xe, 0x4b, 0x2de, 0x3, 0x4b, 0x3, 0x4b, + 0x3, 0x4b, 0x6, 0x4b, 0x2e4, 0xa, 0x4b, 0xd, 0x4b, 0xe, 0x4b, 0x2e5, + 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, + 0x4b, 0x3, 0x4b, 0x7, 0x4b, 0x2f0, 0xa, 0x4b, 0xc, 0x4b, 0xe, 0x4b, + 0x2f3, 0xb, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, + 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, + 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, + 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x6, + 0x4b, 0x30d, 0xa, 0x4b, 0xd, 0x4b, 0xe, 0x4b, 0x30e, 0x3, 0x4b, 0x3, + 0x4b, 0x3, 0x4b, 0x6, 0x4b, 0x314, 0xa, 0x4b, 0xd, 0x4b, 0xe, 0x4b, + 0x315, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, + 0x3, 0x4b, 0x3, 0x4b, 0x7, 0x4b, 0x320, 0xa, 0x4b, 0xc, 0x4b, 0xe, 0x4b, + 0x323, 0xb, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, + 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, + 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, + 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, + 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, + 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, + 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, + 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, + 0x4b, 0x6, 0x4b, 0x358, 0xa, 0x4b, 0xd, 0x4b, 0xe, 0x4b, 0x359, 0x3, + 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, + 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, + 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, + 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, + 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, + 0x3, 0x4b, 0x3, 0x4b, 0x3, 0x4b, 0x5, 0x4b, 0x380, 0xa, 0x4b, 0x3, 0x4c, + 0x3, 0x4c, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, + 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, + 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, + 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, + 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x3, 0x4d, 0x5, 0x4d, 0x3a1, 0xa, 0x4d, + 0x3, 0x4e, 0x3, 0x4e, 0x3, 0x4e, 0x3, 0x4e, 0x3, 0x4e, 0x3, 0x4e, 0x3, + 0x4e, 0x3, 0x4e, 0x5, 0x4e, 0x3ab, 0xa, 0x4e, 0x3, 0x4f, 0x3, 0x4f, + 0x3, 0x50, 0x3, 0x50, 0x3, 0x50, 0x5, 0x50, 0x3b2, 0xa, 0x50, 0x3, 0x51, + 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, + 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, + 0x6, 0x51, 0x3c2, 0xa, 0x51, 0xd, 0x51, 0xe, 0x51, 0x3c3, 0x3, 0x51, + 0x3, 0x51, 0x3, 0x51, 0x6, 0x51, 0x3c9, 0xa, 0x51, 0xd, 0x51, 0xe, 0x51, + 0x3ca, 0x3, 0x51, 0x3, 0x51, 0x3, 0x51, 0x5, 0x51, 0x3d0, 0xa, 0x51, + 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, + 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, 0x3, 0x52, + 0x5, 0x52, 0x3df, 0xa, 0x52, 0x3, 0x53, 0x3, 0x53, 0x3, 0x53, 0x3, 0x53, + 0x3, 0x53, 0x3, 0x54, 0x3, 0x54, 0x3, 0x54, 0x3, 0x54, 0x3, 0x54, 0x3, + 0x55, 0x3, 0x55, 0x3, 0x56, 0x3, 0x56, 0x3, 0x57, 0x3, 0x57, 0x7, 0x57, + 0x3f1, 0xa, 0x57, 0xc, 0x57, 0xe, 0x57, 0x3f4, 0xb, 0x57, 0x3, 0x57, + 0x3, 0x57, 0x3, 0x58, 0x3, 0x58, 0x7, 0x58, 0x3fa, 0xa, 0x58, 0xc, 0x58, + 0xe, 0x58, 0x3fd, 0xb, 0x58, 0x3, 0x58, 0x3, 0x58, 0x3, 0x59, 0x3, 0x59, + 0x6, 0x59, 0x403, 0xa, 0x59, 0xd, 0x59, 0xe, 0x59, 0x404, 0x3, 0x59, + 0x3, 0x59, 0x3, 0x5a, 0x3, 0x5a, 0x7, 0x5a, 0x40b, 0xa, 0x5a, 0xc, 0x5a, + 0xe, 0x5a, 0x40e, 0xb, 0x5a, 0x3, 0x5a, 0x3, 0x5a, 0x3, 0x5b, 0x3, 0x5b, + 0x3, 0x5c, 0x3, 0x5c, 0x3, 0x5d, 0x3, 0x5d, 0x7, 0x5d, 0x418, 0xa, 0x5d, + 0xc, 0x5d, 0xe, 0x5d, 0x41b, 0xb, 0x5d, 0x3, 0x5d, 0x3, 0x5d, 0x3, 0x5e, + 0x3, 0x5e, 0x7, 0x5e, 0x421, 0xa, 0x5e, 0xc, 0x5e, 0xe, 0x5e, 0x424, + 0xb, 0x5e, 0x3, 0x5e, 0x3, 0x5e, 0x3, 0x5f, 0x3, 0x5f, 0x6, 0x5f, 0x42a, + 0xa, 0x5f, 0xd, 0x5f, 0xe, 0x5f, 0x42b, 0x3, 0x5f, 0x3, 0x5f, 0x3, 0x60, + 0x3, 0x60, 0x3, 0x60, 0x3, 0x60, 0x3, 0x60, 0x3, 0x60, 0x3, 0x60, 0x3, + 0x60, 0x3, 0x60, 0x3, 0x60, 0x3, 0x60, 0x5, 0x60, 0x43b, 0xa, 0x60, + 0x3, 0x61, 0x3, 0x61, 0x3, 0x61, 0x3, 0x61, 0x3, 0x61, 0x3, 0x61, 0x3, + 0x61, 0x3, 0x61, 0x5, 0x61, 0x445, 0xa, 0x61, 0x3, 0x61, 0x2, 0x2, 0x62, + 0x2, 0x4, 0x6, 0x8, 0xa, 0xc, 0xe, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, + 0x1c, 0x1e, 0x20, 0x22, 0x24, 0x26, 0x28, 0x2a, 0x2c, 0x2e, 0x30, 0x32, + 0x34, 0x36, 0x38, 0x3a, 0x3c, 0x3e, 0x40, 0x42, 0x44, 0x46, 0x48, 0x4a, + 0x4c, 0x4e, 0x50, 0x52, 0x54, 0x56, 0x58, 0x5a, 0x5c, 0x5e, 0x60, 0x62, + 0x64, 0x66, 0x68, 0x6a, 0x6c, 0x6e, 0x70, 0x72, 0x74, 0x76, 0x78, 0x7a, + 0x7c, 0x7e, 0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c, 0x8e, 0x90, 0x92, + 0x94, 0x96, 0x98, 0x9a, 0x9c, 0x9e, 0xa0, 0xa2, 0xa4, 0xa6, 0xa8, 0xaa, + 0xac, 0xae, 0xb0, 0xb2, 0xb4, 0xb6, 0xb8, 0xba, 0xbc, 0xbe, 0xc0, 0x2, + 0x9, 0x3, 0x2, 0x37, 0x43, 0x3, 0x2, 0x9, 0x18, 0x3, 0x2, 0x49, 0x71, + 0x5, 0x2, 0x3b, 0x3b, 0x41, 0x41, 0x43, 0x43, 0x4, 0x2, 0xd, 0xd, 0x15, + 0x15, 0x4, 0x2, 0xb, 0xb, 0xe, 0xe, 0x5, 0x2, 0x12, 0x12, 0x16, 0x16, + 0x18, 0x18, 0x2, 0x488, 0x2, 0xc2, 0x3, 0x2, 0x2, 0x2, 0x4, 0xc5, 0x3, + 0x2, 0x2, 0x2, 0x6, 0xc8, 0x3, 0x2, 0x2, 0x2, 0x8, 0xcc, 0x3, 0x2, 0x2, + 0x2, 0xa, 0xce, 0x3, 0x2, 0x2, 0x2, 0xc, 0xd0, 0x3, 0x2, 0x2, 0x2, 0xe, + 0xd2, 0x3, 0x2, 0x2, 0x2, 0x10, 0xd6, 0x3, 0x2, 0x2, 0x2, 0x12, 0xd8, + 0x3, 0x2, 0x2, 0x2, 0x14, 0xda, 0x3, 0x2, 0x2, 0x2, 0x16, 0xdc, 0x3, + 0x2, 0x2, 0x2, 0x18, 0xde, 0x3, 0x2, 0x2, 0x2, 0x1a, 0xe0, 0x3, 0x2, + 0x2, 0x2, 0x1c, 0xe5, 0x3, 0x2, 0x2, 0x2, 0x1e, 0xec, 0x3, 0x2, 0x2, + 0x2, 0x20, 0xf9, 0x3, 0x2, 0x2, 0x2, 0x22, 0xfd, 0x3, 0x2, 0x2, 0x2, + 0x24, 0x10a, 0x3, 0x2, 0x2, 0x2, 0x26, 0x116, 0x3, 0x2, 0x2, 0x2, 0x28, + 0x11c, 0x3, 0x2, 0x2, 0x2, 0x2a, 0x128, 0x3, 0x2, 0x2, 0x2, 0x2c, 0x131, + 0x3, 0x2, 0x2, 0x2, 0x2e, 0x133, 0x3, 0x2, 0x2, 0x2, 0x30, 0x138, 0x3, + 0x2, 0x2, 0x2, 0x32, 0x147, 0x3, 0x2, 0x2, 0x2, 0x34, 0x149, 0x3, 0x2, + 0x2, 0x2, 0x36, 0x193, 0x3, 0x2, 0x2, 0x2, 0x38, 0x195, 0x3, 0x2, 0x2, + 0x2, 0x3a, 0x1a0, 0x3, 0x2, 0x2, 0x2, 0x3c, 0x1c7, 0x3, 0x2, 0x2, 0x2, + 0x3e, 0x1e3, 0x3, 0x2, 0x2, 0x2, 0x40, 0x202, 0x3, 0x2, 0x2, 0x2, 0x42, + 0x204, 0x3, 0x2, 0x2, 0x2, 0x44, 0x220, 0x3, 0x2, 0x2, 0x2, 0x46, 0x222, + 0x3, 0x2, 0x2, 0x2, 0x48, 0x22c, 0x3, 0x2, 0x2, 0x2, 0x4a, 0x231, 0x3, + 0x2, 0x2, 0x2, 0x4c, 0x236, 0x3, 0x2, 0x2, 0x2, 0x4e, 0x25a, 0x3, 0x2, + 0x2, 0x2, 0x50, 0x25c, 0x3, 0x2, 0x2, 0x2, 0x52, 0x269, 0x3, 0x2, 0x2, + 0x2, 0x54, 0x27b, 0x3, 0x2, 0x2, 0x2, 0x56, 0x280, 0x3, 0x2, 0x2, 0x2, + 0x58, 0x283, 0x3, 0x2, 0x2, 0x2, 0x5a, 0x285, 0x3, 0x2, 0x2, 0x2, 0x5c, + 0x287, 0x3, 0x2, 0x2, 0x2, 0x5e, 0x289, 0x3, 0x2, 0x2, 0x2, 0x60, 0x28b, + 0x3, 0x2, 0x2, 0x2, 0x62, 0x28d, 0x3, 0x2, 0x2, 0x2, 0x64, 0x28f, 0x3, + 0x2, 0x2, 0x2, 0x66, 0x291, 0x3, 0x2, 0x2, 0x2, 0x68, 0x293, 0x3, 0x2, + 0x2, 0x2, 0x6a, 0x295, 0x3, 0x2, 0x2, 0x2, 0x6c, 0x297, 0x3, 0x2, 0x2, + 0x2, 0x6e, 0x299, 0x3, 0x2, 0x2, 0x2, 0x70, 0x29b, 0x3, 0x2, 0x2, 0x2, + 0x72, 0x29d, 0x3, 0x2, 0x2, 0x2, 0x74, 0x29f, 0x3, 0x2, 0x2, 0x2, 0x76, + 0x2a1, 0x3, 0x2, 0x2, 0x2, 0x78, 0x2a3, 0x3, 0x2, 0x2, 0x2, 0x7a, 0x2a5, + 0x3, 0x2, 0x2, 0x2, 0x7c, 0x2a7, 0x3, 0x2, 0x2, 0x2, 0x7e, 0x2a9, 0x3, + 0x2, 0x2, 0x2, 0x80, 0x2ab, 0x3, 0x2, 0x2, 0x2, 0x82, 0x2ad, 0x3, 0x2, + 0x2, 0x2, 0x84, 0x2af, 0x3, 0x2, 0x2, 0x2, 0x86, 0x2b1, 0x3, 0x2, 0x2, + 0x2, 0x88, 0x2b3, 0x3, 0x2, 0x2, 0x2, 0x8a, 0x2b5, 0x3, 0x2, 0x2, 0x2, + 0x8c, 0x2b7, 0x3, 0x2, 0x2, 0x2, 0x8e, 0x2b9, 0x3, 0x2, 0x2, 0x2, 0x90, + 0x2bb, 0x3, 0x2, 0x2, 0x2, 0x92, 0x2bd, 0x3, 0x2, 0x2, 0x2, 0x94, 0x37f, + 0x3, 0x2, 0x2, 0x2, 0x96, 0x381, 0x3, 0x2, 0x2, 0x2, 0x98, 0x3a0, 0x3, + 0x2, 0x2, 0x2, 0x9a, 0x3aa, 0x3, 0x2, 0x2, 0x2, 0x9c, 0x3ac, 0x3, 0x2, + 0x2, 0x2, 0x9e, 0x3b1, 0x3, 0x2, 0x2, 0x2, 0xa0, 0x3cf, 0x3, 0x2, 0x2, + 0x2, 0xa2, 0x3de, 0x3, 0x2, 0x2, 0x2, 0xa4, 0x3e0, 0x3, 0x2, 0x2, 0x2, + 0xa6, 0x3e5, 0x3, 0x2, 0x2, 0x2, 0xa8, 0x3ea, 0x3, 0x2, 0x2, 0x2, 0xaa, + 0x3ec, 0x3, 0x2, 0x2, 0x2, 0xac, 0x3ee, 0x3, 0x2, 0x2, 0x2, 0xae, 0x3f7, + 0x3, 0x2, 0x2, 0x2, 0xb0, 0x400, 0x3, 0x2, 0x2, 0x2, 0xb2, 0x408, 0x3, + 0x2, 0x2, 0x2, 0xb4, 0x411, 0x3, 0x2, 0x2, 0x2, 0xb6, 0x413, 0x3, 0x2, + 0x2, 0x2, 0xb8, 0x415, 0x3, 0x2, 0x2, 0x2, 0xba, 0x41e, 0x3, 0x2, 0x2, + 0x2, 0xbc, 0x427, 0x3, 0x2, 0x2, 0x2, 0xbe, 0x43a, 0x3, 0x2, 0x2, 0x2, + 0xc0, 0x444, 0x3, 0x2, 0x2, 0x2, 0xc2, 0xc3, 0x5, 0x56, 0x2c, 0x2, 0xc3, + 0xc4, 0x7, 0x2, 0x2, 0x3, 0xc4, 0x3, 0x3, 0x2, 0x2, 0x2, 0xc5, 0xc6, + 0x5, 0xc0, 0x61, 0x2, 0xc6, 0xc7, 0x7, 0x2, 0x2, 0x3, 0xc7, 0x5, 0x3, + 0x2, 0x2, 0x2, 0xc8, 0xc9, 0x9, 0x2, 0x2, 0x2, 0xc9, 0x7, 0x3, 0x2, + 0x2, 0x2, 0xca, 0xcd, 0x5, 0xc, 0x7, 0x2, 0xcb, 0xcd, 0x7, 0x72, 0x2, + 0x2, 0xcc, 0xca, 0x3, 0x2, 0x2, 0x2, 0xcc, 0xcb, 0x3, 0x2, 0x2, 0x2, + 0xcd, 0x9, 0x3, 0x2, 0x2, 0x2, 0xce, 0xcf, 0x7, 0x8, 0x2, 0x2, 0xcf, + 0xb, 0x3, 0x2, 0x2, 0x2, 0xd0, 0xd1, 0x9, 0x3, 0x2, 0x2, 0xd1, 0xd, + 0x3, 0x2, 0x2, 0x2, 0xd2, 0xd3, 0x9, 0x4, 0x2, 0x2, 0xd3, 0xf, 0x3, + 0x2, 0x2, 0x2, 0xd4, 0xd7, 0x5, 0x8, 0x5, 0x2, 0xd5, 0xd7, 0x5, 0xa, + 0x6, 0x2, 0xd6, 0xd4, 0x3, 0x2, 0x2, 0x2, 0xd6, 0xd5, 0x3, 0x2, 0x2, + 0x2, 0xd7, 0x11, 0x3, 0x2, 0x2, 0x2, 0xd8, 0xd9, 0x7, 0x44, 0x2, 0x2, + 0xd9, 0x13, 0x3, 0x2, 0x2, 0x2, 0xda, 0xdb, 0x7, 0x47, 0x2, 0x2, 0xdb, + 0x15, 0x3, 0x2, 0x2, 0x2, 0xdc, 0xdd, 0x7, 0x46, 0x2, 0x2, 0xdd, 0x17, + 0x3, 0x2, 0x2, 0x2, 0xde, 0xdf, 0x7, 0x45, 0x2, 0x2, 0xdf, 0x19, 0x3, + 0x2, 0x2, 0x2, 0xe0, 0xe1, 0x7, 0x7, 0x2, 0x2, 0xe1, 0x1b, 0x3, 0x2, + 0x2, 0x2, 0xe2, 0xe6, 0x5, 0xe, 0x8, 0x2, 0xe3, 0xe4, 0x7, 0x48, 0x2, + 0x2, 0xe4, 0xe6, 0x5, 0x8, 0x5, 0x2, 0xe5, 0xe2, 0x3, 0x2, 0x2, 0x2, + 0xe5, 0xe3, 0x3, 0x2, 0x2, 0x2, 0xe6, 0x1d, 0x3, 0x2, 0x2, 0x2, 0xe7, + 0xed, 0x5, 0x12, 0xa, 0x2, 0xe8, 0xed, 0x5, 0x14, 0xb, 0x2, 0xe9, 0xed, + 0x5, 0x16, 0xc, 0x2, 0xea, 0xed, 0x5, 0x18, 0xd, 0x2, 0xeb, 0xed, 0x5, + 0x1a, 0xe, 0x2, 0xec, 0xe7, 0x3, 0x2, 0x2, 0x2, 0xec, 0xe8, 0x3, 0x2, + 0x2, 0x2, 0xec, 0xe9, 0x3, 0x2, 0x2, 0x2, 0xec, 0xea, 0x3, 0x2, 0x2, + 0x2, 0xec, 0xeb, 0x3, 0x2, 0x2, 0x2, 0xed, 0x1f, 0x3, 0x2, 0x2, 0x2, + 0xee, 0xfa, 0x5, 0x1e, 0x10, 0x2, 0xef, 0xfa, 0x5, 0x10, 0x9, 0x2, 0xf0, + 0xfa, 0x5, 0x1c, 0xf, 0x2, 0xf1, 0xf5, 0x7, 0x4, 0x2, 0x2, 0xf2, 0xf4, + 0x5, 0x20, 0x11, 0x2, 0xf3, 0xf2, 0x3, 0x2, 0x2, 0x2, 0xf4, 0xf7, 0x3, + 0x2, 0x2, 0x2, 0xf5, 0xf3, 0x3, 0x2, 0x2, 0x2, 0xf5, 0xf6, 0x3, 0x2, + 0x2, 0x2, 0xf6, 0xf8, 0x3, 0x2, 0x2, 0x2, 0xf7, 0xf5, 0x3, 0x2, 0x2, + 0x2, 0xf8, 0xfa, 0x7, 0x5, 0x2, 0x2, 0xf9, 0xee, 0x3, 0x2, 0x2, 0x2, + 0xf9, 0xef, 0x3, 0x2, 0x2, 0x2, 0xf9, 0xf0, 0x3, 0x2, 0x2, 0x2, 0xf9, + 0xf1, 0x3, 0x2, 0x2, 0x2, 0xfa, 0x21, 0x3, 0x2, 0x2, 0x2, 0xfb, 0xfe, + 0x5, 0x12, 0xa, 0x2, 0xfc, 0xfe, 0x5, 0x10, 0x9, 0x2, 0xfd, 0xfb, 0x3, + 0x2, 0x2, 0x2, 0xfd, 0xfc, 0x3, 0x2, 0x2, 0x2, 0xfe, 0x23, 0x3, 0x2, + 0x2, 0x2, 0xff, 0x10b, 0x5, 0x10, 0x9, 0x2, 0x100, 0x101, 0x7, 0x4, + 0x2, 0x2, 0x101, 0x102, 0x7, 0x38, 0x2, 0x2, 0x102, 0x104, 0x5, 0x10, + 0x9, 0x2, 0x103, 0x105, 0x5, 0x22, 0x12, 0x2, 0x104, 0x103, 0x3, 0x2, + 0x2, 0x2, 0x105, 0x106, 0x3, 0x2, 0x2, 0x2, 0x106, 0x104, 0x3, 0x2, + 0x2, 0x2, 0x106, 0x107, 0x3, 0x2, 0x2, 0x2, 0x107, 0x108, 0x3, 0x2, + 0x2, 0x2, 0x108, 0x109, 0x7, 0x5, 0x2, 0x2, 0x109, 0x10b, 0x3, 0x2, + 0x2, 0x2, 0x10a, 0xff, 0x3, 0x2, 0x2, 0x2, 0x10a, 0x100, 0x3, 0x2, 0x2, + 0x2, 0x10b, 0x25, 0x3, 0x2, 0x2, 0x2, 0x10c, 0x117, 0x5, 0x1e, 0x10, + 0x2, 0x10d, 0x117, 0x5, 0x10, 0x9, 0x2, 0x10e, 0x112, 0x7, 0x4, 0x2, + 0x2, 0x10f, 0x111, 0x5, 0x20, 0x11, 0x2, 0x110, 0x10f, 0x3, 0x2, 0x2, + 0x2, 0x111, 0x114, 0x3, 0x2, 0x2, 0x2, 0x112, 0x110, 0x3, 0x2, 0x2, + 0x2, 0x112, 0x113, 0x3, 0x2, 0x2, 0x2, 0x113, 0x115, 0x3, 0x2, 0x2, + 0x2, 0x114, 0x112, 0x3, 0x2, 0x2, 0x2, 0x115, 0x117, 0x7, 0x5, 0x2, + 0x2, 0x116, 0x10c, 0x3, 0x2, 0x2, 0x2, 0x116, 0x10d, 0x3, 0x2, 0x2, + 0x2, 0x116, 0x10e, 0x3, 0x2, 0x2, 0x2, 0x117, 0x27, 0x3, 0x2, 0x2, 0x2, + 0x118, 0x11d, 0x5, 0x1c, 0xf, 0x2, 0x119, 0x11a, 0x5, 0x1c, 0xf, 0x2, + 0x11a, 0x11b, 0x5, 0x26, 0x14, 0x2, 0x11b, 0x11d, 0x3, 0x2, 0x2, 0x2, + 0x11c, 0x118, 0x3, 0x2, 0x2, 0x2, 0x11c, 0x119, 0x3, 0x2, 0x2, 0x2, + 0x11d, 0x29, 0x3, 0x2, 0x2, 0x2, 0x11e, 0x129, 0x5, 0x24, 0x13, 0x2, + 0x11f, 0x120, 0x7, 0x4, 0x2, 0x2, 0x120, 0x122, 0x5, 0x24, 0x13, 0x2, + 0x121, 0x123, 0x5, 0x2a, 0x16, 0x2, 0x122, 0x121, 0x3, 0x2, 0x2, 0x2, + 0x123, 0x124, 0x3, 0x2, 0x2, 0x2, 0x124, 0x122, 0x3, 0x2, 0x2, 0x2, + 0x124, 0x125, 0x3, 0x2, 0x2, 0x2, 0x125, 0x126, 0x3, 0x2, 0x2, 0x2, + 0x126, 0x127, 0x7, 0x5, 0x2, 0x2, 0x127, 0x129, 0x3, 0x2, 0x2, 0x2, + 0x128, 0x11e, 0x3, 0x2, 0x2, 0x2, 0x128, 0x11f, 0x3, 0x2, 0x2, 0x2, + 0x129, 0x2b, 0x3, 0x2, 0x2, 0x2, 0x12a, 0x132, 0x5, 0x24, 0x13, 0x2, + 0x12b, 0x12c, 0x7, 0x4, 0x2, 0x2, 0x12c, 0x12d, 0x7, 0x39, 0x2, 0x2, + 0x12d, 0x12e, 0x5, 0x24, 0x13, 0x2, 0x12e, 0x12f, 0x5, 0x2a, 0x16, 0x2, + 0x12f, 0x130, 0x7, 0x5, 0x2, 0x2, 0x130, 0x132, 0x3, 0x2, 0x2, 0x2, + 0x131, 0x12a, 0x3, 0x2, 0x2, 0x2, 0x131, 0x12b, 0x3, 0x2, 0x2, 0x2, + 0x132, 0x2d, 0x3, 0x2, 0x2, 0x2, 0x133, 0x134, 0x7, 0x4, 0x2, 0x2, 0x134, + 0x135, 0x5, 0x10, 0x9, 0x2, 0x135, 0x136, 0x5, 0x36, 0x1c, 0x2, 0x136, + 0x137, 0x7, 0x5, 0x2, 0x2, 0x137, 0x2f, 0x3, 0x2, 0x2, 0x2, 0x138, 0x139, + 0x7, 0x4, 0x2, 0x2, 0x139, 0x13a, 0x5, 0x10, 0x9, 0x2, 0x13a, 0x13b, + 0x5, 0x2a, 0x16, 0x2, 0x13b, 0x13c, 0x7, 0x5, 0x2, 0x2, 0x13c, 0x31, + 0x3, 0x2, 0x2, 0x2, 0x13d, 0x148, 0x5, 0x10, 0x9, 0x2, 0x13e, 0x13f, + 0x7, 0x4, 0x2, 0x2, 0x13f, 0x141, 0x5, 0x10, 0x9, 0x2, 0x140, 0x142, + 0x5, 0x10, 0x9, 0x2, 0x141, 0x140, 0x3, 0x2, 0x2, 0x2, 0x142, 0x143, + 0x3, 0x2, 0x2, 0x2, 0x143, 0x141, 0x3, 0x2, 0x2, 0x2, 0x143, 0x144, + 0x3, 0x2, 0x2, 0x2, 0x144, 0x145, 0x3, 0x2, 0x2, 0x2, 0x145, 0x146, + 0x7, 0x5, 0x2, 0x2, 0x146, 0x148, 0x3, 0x2, 0x2, 0x2, 0x147, 0x13d, + 0x3, 0x2, 0x2, 0x2, 0x147, 0x13e, 0x3, 0x2, 0x2, 0x2, 0x148, 0x33, 0x3, + 0x2, 0x2, 0x2, 0x149, 0x14a, 0x7, 0x4, 0x2, 0x2, 0x14a, 0x14b, 0x5, + 0x32, 0x1a, 0x2, 0x14b, 0x14c, 0x5, 0x36, 0x1c, 0x2, 0x14c, 0x14d, 0x7, + 0x5, 0x2, 0x2, 0x14d, 0x35, 0x3, 0x2, 0x2, 0x2, 0x14e, 0x194, 0x5, 0x1e, + 0x10, 0x2, 0x14f, 0x194, 0x5, 0x2c, 0x17, 0x2, 0x150, 0x151, 0x7, 0x4, + 0x2, 0x2, 0x151, 0x153, 0x5, 0x2c, 0x17, 0x2, 0x152, 0x154, 0x5, 0x36, + 0x1c, 0x2, 0x153, 0x152, 0x3, 0x2, 0x2, 0x2, 0x154, 0x155, 0x3, 0x2, + 0x2, 0x2, 0x155, 0x153, 0x3, 0x2, 0x2, 0x2, 0x155, 0x156, 0x3, 0x2, + 0x2, 0x2, 0x156, 0x157, 0x3, 0x2, 0x2, 0x2, 0x157, 0x158, 0x7, 0x5, + 0x2, 0x2, 0x158, 0x194, 0x3, 0x2, 0x2, 0x2, 0x159, 0x15a, 0x7, 0x4, + 0x2, 0x2, 0x15a, 0x15b, 0x7, 0x3f, 0x2, 0x2, 0x15b, 0x15d, 0x7, 0x4, + 0x2, 0x2, 0x15c, 0x15e, 0x5, 0x2e, 0x18, 0x2, 0x15d, 0x15c, 0x3, 0x2, + 0x2, 0x2, 0x15e, 0x15f, 0x3, 0x2, 0x2, 0x2, 0x15f, 0x15d, 0x3, 0x2, + 0x2, 0x2, 0x15f, 0x160, 0x3, 0x2, 0x2, 0x2, 0x160, 0x161, 0x3, 0x2, + 0x2, 0x2, 0x161, 0x162, 0x7, 0x5, 0x2, 0x2, 0x162, 0x163, 0x5, 0x36, + 0x1c, 0x2, 0x163, 0x164, 0x7, 0x5, 0x2, 0x2, 0x164, 0x194, 0x3, 0x2, + 0x2, 0x2, 0x165, 0x166, 0x7, 0x4, 0x2, 0x2, 0x166, 0x167, 0x7, 0x3e, + 0x2, 0x2, 0x167, 0x169, 0x7, 0x4, 0x2, 0x2, 0x168, 0x16a, 0x5, 0x30, + 0x19, 0x2, 0x169, 0x168, 0x3, 0x2, 0x2, 0x2, 0x16a, 0x16b, 0x3, 0x2, + 0x2, 0x2, 0x16b, 0x169, 0x3, 0x2, 0x2, 0x2, 0x16b, 0x16c, 0x3, 0x2, + 0x2, 0x2, 0x16c, 0x16d, 0x3, 0x2, 0x2, 0x2, 0x16d, 0x16e, 0x7, 0x5, + 0x2, 0x2, 0x16e, 0x16f, 0x5, 0x36, 0x1c, 0x2, 0x16f, 0x170, 0x7, 0x5, + 0x2, 0x2, 0x170, 0x194, 0x3, 0x2, 0x2, 0x2, 0x171, 0x172, 0x7, 0x4, + 0x2, 0x2, 0x172, 0x173, 0x7, 0x3c, 0x2, 0x2, 0x173, 0x175, 0x7, 0x4, + 0x2, 0x2, 0x174, 0x176, 0x5, 0x30, 0x19, 0x2, 0x175, 0x174, 0x3, 0x2, + 0x2, 0x2, 0x176, 0x177, 0x3, 0x2, 0x2, 0x2, 0x177, 0x175, 0x3, 0x2, + 0x2, 0x2, 0x177, 0x178, 0x3, 0x2, 0x2, 0x2, 0x178, 0x179, 0x3, 0x2, + 0x2, 0x2, 0x179, 0x17a, 0x7, 0x5, 0x2, 0x2, 0x17a, 0x17b, 0x5, 0x36, + 0x1c, 0x2, 0x17b, 0x17c, 0x7, 0x5, 0x2, 0x2, 0x17c, 0x194, 0x3, 0x2, + 0x2, 0x2, 0x17d, 0x17e, 0x7, 0x4, 0x2, 0x2, 0x17e, 0x17f, 0x7, 0x40, + 0x2, 0x2, 0x17f, 0x180, 0x5, 0x36, 0x1c, 0x2, 0x180, 0x182, 0x7, 0x4, + 0x2, 0x2, 0x181, 0x183, 0x5, 0x34, 0x1b, 0x2, 0x182, 0x181, 0x3, 0x2, + 0x2, 0x2, 0x183, 0x184, 0x3, 0x2, 0x2, 0x2, 0x184, 0x182, 0x3, 0x2, + 0x2, 0x2, 0x184, 0x185, 0x3, 0x2, 0x2, 0x2, 0x185, 0x186, 0x3, 0x2, + 0x2, 0x2, 0x186, 0x187, 0x7, 0x5, 0x2, 0x2, 0x187, 0x188, 0x7, 0x5, + 0x2, 0x2, 0x188, 0x194, 0x3, 0x2, 0x2, 0x2, 0x189, 0x18a, 0x7, 0x4, + 0x2, 0x2, 0x18a, 0x18b, 0x7, 0x37, 0x2, 0x2, 0x18b, 0x18d, 0x5, 0x36, + 0x1c, 0x2, 0x18c, 0x18e, 0x5, 0x28, 0x15, 0x2, 0x18d, 0x18c, 0x3, 0x2, + 0x2, 0x2, 0x18e, 0x18f, 0x3, 0x2, 0x2, 0x2, 0x18f, 0x18d, 0x3, 0x2, + 0x2, 0x2, 0x18f, 0x190, 0x3, 0x2, 0x2, 0x2, 0x190, 0x191, 0x3, 0x2, + 0x2, 0x2, 0x191, 0x192, 0x7, 0x5, 0x2, 0x2, 0x192, 0x194, 0x3, 0x2, + 0x2, 0x2, 0x193, 0x14e, 0x3, 0x2, 0x2, 0x2, 0x193, 0x14f, 0x3, 0x2, + 0x2, 0x2, 0x193, 0x150, 0x3, 0x2, 0x2, 0x2, 0x193, 0x159, 0x3, 0x2, + 0x2, 0x2, 0x193, 0x165, 0x3, 0x2, 0x2, 0x2, 0x193, 0x171, 0x3, 0x2, + 0x2, 0x2, 0x193, 0x17d, 0x3, 0x2, 0x2, 0x2, 0x193, 0x189, 0x3, 0x2, + 0x2, 0x2, 0x194, 0x37, 0x3, 0x2, 0x2, 0x2, 0x195, 0x196, 0x7, 0x4, 0x2, + 0x2, 0x196, 0x197, 0x5, 0x24, 0x13, 0x2, 0x197, 0x19b, 0x5, 0x12, 0xa, + 0x2, 0x198, 0x19a, 0x5, 0x28, 0x15, 0x2, 0x199, 0x198, 0x3, 0x2, 0x2, + 0x2, 0x19a, 0x19d, 0x3, 0x2, 0x2, 0x2, 0x19b, 0x199, 0x3, 0x2, 0x2, + 0x2, 0x19b, 0x19c, 0x3, 0x2, 0x2, 0x2, 0x19c, 0x19e, 0x3, 0x2, 0x2, + 0x2, 0x19d, 0x19b, 0x3, 0x2, 0x2, 0x2, 0x19e, 0x19f, 0x7, 0x5, 0x2, + 0x2, 0x19f, 0x39, 0x3, 0x2, 0x2, 0x2, 0x1a0, 0x1a1, 0x9, 0x5, 0x2, 0x2, + 0x1a1, 0x3b, 0x3, 0x2, 0x2, 0x2, 0x1a2, 0x1a3, 0x7, 0x4, 0x2, 0x2, 0x1a3, + 0x1a4, 0x5, 0x1e, 0x10, 0x2, 0x1a4, 0x1a8, 0x5, 0x2a, 0x16, 0x2, 0x1a5, + 0x1a7, 0x5, 0x28, 0x15, 0x2, 0x1a6, 0x1a5, 0x3, 0x2, 0x2, 0x2, 0x1a7, + 0x1aa, 0x3, 0x2, 0x2, 0x2, 0x1a8, 0x1a6, 0x3, 0x2, 0x2, 0x2, 0x1a8, + 0x1a9, 0x3, 0x2, 0x2, 0x2, 0x1a9, 0x1ab, 0x3, 0x2, 0x2, 0x2, 0x1aa, + 0x1a8, 0x3, 0x2, 0x2, 0x2, 0x1ab, 0x1ac, 0x7, 0x5, 0x2, 0x2, 0x1ac, + 0x1c8, 0x3, 0x2, 0x2, 0x2, 0x1ad, 0x1ae, 0x7, 0x4, 0x2, 0x2, 0x1ae, + 0x1af, 0x5, 0x3a, 0x1e, 0x2, 0x1af, 0x1b3, 0x5, 0x2a, 0x16, 0x2, 0x1b0, + 0x1b2, 0x5, 0x28, 0x15, 0x2, 0x1b1, 0x1b0, 0x3, 0x2, 0x2, 0x2, 0x1b2, + 0x1b5, 0x3, 0x2, 0x2, 0x2, 0x1b3, 0x1b1, 0x3, 0x2, 0x2, 0x2, 0x1b3, + 0x1b4, 0x3, 0x2, 0x2, 0x2, 0x1b4, 0x1b6, 0x3, 0x2, 0x2, 0x2, 0x1b5, + 0x1b3, 0x3, 0x2, 0x2, 0x2, 0x1b6, 0x1b7, 0x7, 0x5, 0x2, 0x2, 0x1b7, + 0x1c8, 0x3, 0x2, 0x2, 0x2, 0x1b8, 0x1b9, 0x7, 0x4, 0x2, 0x2, 0x1b9, + 0x1bb, 0x5, 0x24, 0x13, 0x2, 0x1ba, 0x1bc, 0x5, 0x2a, 0x16, 0x2, 0x1bb, + 0x1ba, 0x3, 0x2, 0x2, 0x2, 0x1bc, 0x1bd, 0x3, 0x2, 0x2, 0x2, 0x1bd, + 0x1bb, 0x3, 0x2, 0x2, 0x2, 0x1bd, 0x1be, 0x3, 0x2, 0x2, 0x2, 0x1be, + 0x1c2, 0x3, 0x2, 0x2, 0x2, 0x1bf, 0x1c1, 0x5, 0x28, 0x15, 0x2, 0x1c0, + 0x1bf, 0x3, 0x2, 0x2, 0x2, 0x1c1, 0x1c4, 0x3, 0x2, 0x2, 0x2, 0x1c2, + 0x1c0, 0x3, 0x2, 0x2, 0x2, 0x1c2, 0x1c3, 0x3, 0x2, 0x2, 0x2, 0x1c3, + 0x1c5, 0x3, 0x2, 0x2, 0x2, 0x1c4, 0x1c2, 0x3, 0x2, 0x2, 0x2, 0x1c5, + 0x1c6, 0x7, 0x5, 0x2, 0x2, 0x1c6, 0x1c8, 0x3, 0x2, 0x2, 0x2, 0x1c7, + 0x1a2, 0x3, 0x2, 0x2, 0x2, 0x1c7, 0x1ad, 0x3, 0x2, 0x2, 0x2, 0x1c7, + 0x1b8, 0x3, 0x2, 0x2, 0x2, 0x1c8, 0x3d, 0x3, 0x2, 0x2, 0x2, 0x1c9, 0x1e4, + 0x5, 0x3c, 0x1f, 0x2, 0x1ca, 0x1cb, 0x7, 0x4, 0x2, 0x2, 0x1cb, 0x1cc, + 0x7, 0x42, 0x2, 0x2, 0x1cc, 0x1ce, 0x7, 0x4, 0x2, 0x2, 0x1cd, 0x1cf, + 0x5, 0x10, 0x9, 0x2, 0x1ce, 0x1cd, 0x3, 0x2, 0x2, 0x2, 0x1cf, 0x1d0, + 0x3, 0x2, 0x2, 0x2, 0x1d0, 0x1ce, 0x3, 0x2, 0x2, 0x2, 0x1d0, 0x1d1, + 0x3, 0x2, 0x2, 0x2, 0x1d1, 0x1d2, 0x3, 0x2, 0x2, 0x2, 0x1d2, 0x1d3, + 0x7, 0x5, 0x2, 0x2, 0x1d3, 0x1d4, 0x7, 0x4, 0x2, 0x2, 0x1d4, 0x1d6, + 0x5, 0x24, 0x13, 0x2, 0x1d5, 0x1d7, 0x5, 0x2a, 0x16, 0x2, 0x1d6, 0x1d5, + 0x3, 0x2, 0x2, 0x2, 0x1d7, 0x1d8, 0x3, 0x2, 0x2, 0x2, 0x1d8, 0x1d6, + 0x3, 0x2, 0x2, 0x2, 0x1d8, 0x1d9, 0x3, 0x2, 0x2, 0x2, 0x1d9, 0x1dd, + 0x3, 0x2, 0x2, 0x2, 0x1da, 0x1dc, 0x5, 0x28, 0x15, 0x2, 0x1db, 0x1da, + 0x3, 0x2, 0x2, 0x2, 0x1dc, 0x1df, 0x3, 0x2, 0x2, 0x2, 0x1dd, 0x1db, + 0x3, 0x2, 0x2, 0x2, 0x1dd, 0x1de, 0x3, 0x2, 0x2, 0x2, 0x1de, 0x1e0, + 0x3, 0x2, 0x2, 0x2, 0x1df, 0x1dd, 0x3, 0x2, 0x2, 0x2, 0x1e0, 0x1e1, + 0x7, 0x5, 0x2, 0x2, 0x1e1, 0x1e2, 0x7, 0x5, 0x2, 0x2, 0x1e2, 0x1e4, + 0x3, 0x2, 0x2, 0x2, 0x1e3, 0x1c9, 0x3, 0x2, 0x2, 0x2, 0x1e3, 0x1ca, + 0x3, 0x2, 0x2, 0x2, 0x1e4, 0x3f, 0x3, 0x2, 0x2, 0x2, 0x1e5, 0x1e6, 0x7, + 0x6a, 0x2, 0x2, 0x1e6, 0x1e8, 0x7, 0x4, 0x2, 0x2, 0x1e7, 0x1e9, 0x5, + 0x38, 0x1d, 0x2, 0x1e8, 0x1e7, 0x3, 0x2, 0x2, 0x2, 0x1e9, 0x1ea, 0x3, + 0x2, 0x2, 0x2, 0x1ea, 0x1e8, 0x3, 0x2, 0x2, 0x2, 0x1ea, 0x1eb, 0x3, + 0x2, 0x2, 0x2, 0x1eb, 0x1ec, 0x3, 0x2, 0x2, 0x2, 0x1ec, 0x1ed, 0x7, + 0x5, 0x2, 0x2, 0x1ed, 0x203, 0x3, 0x2, 0x2, 0x2, 0x1ee, 0x1ef, 0x7, + 0x52, 0x2, 0x2, 0x1ef, 0x1f1, 0x7, 0x4, 0x2, 0x2, 0x1f0, 0x1f2, 0x5, + 0x3e, 0x20, 0x2, 0x1f1, 0x1f0, 0x3, 0x2, 0x2, 0x2, 0x1f2, 0x1f3, 0x3, + 0x2, 0x2, 0x2, 0x1f3, 0x1f1, 0x3, 0x2, 0x2, 0x2, 0x1f3, 0x1f4, 0x3, + 0x2, 0x2, 0x2, 0x1f4, 0x1f5, 0x3, 0x2, 0x2, 0x2, 0x1f5, 0x1f6, 0x7, + 0x5, 0x2, 0x2, 0x1f6, 0x203, 0x3, 0x2, 0x2, 0x2, 0x1f7, 0x1f8, 0x7, + 0x6b, 0x2, 0x2, 0x1f8, 0x203, 0x5, 0x1a, 0xe, 0x2, 0x1f9, 0x1fa, 0x7, + 0x53, 0x2, 0x2, 0x1fa, 0x203, 0x5, 0x1a, 0xe, 0x2, 0x1fb, 0x1fc, 0x7, + 0x4e, 0x2, 0x2, 0x1fc, 0x203, 0x5, 0x1a, 0xe, 0x2, 0x1fd, 0x1fe, 0x7, + 0x6f, 0x2, 0x2, 0x1fe, 0x203, 0x5, 0x1a, 0xe, 0x2, 0x1ff, 0x200, 0x7, + 0x5b, 0x2, 0x2, 0x200, 0x203, 0x5, 0x1a, 0xe, 0x2, 0x201, 0x203, 0x5, + 0x28, 0x15, 0x2, 0x202, 0x1e5, 0x3, 0x2, 0x2, 0x2, 0x202, 0x1ee, 0x3, + 0x2, 0x2, 0x2, 0x202, 0x1f7, 0x3, 0x2, 0x2, 0x2, 0x202, 0x1f9, 0x3, + 0x2, 0x2, 0x2, 0x202, 0x1fb, 0x3, 0x2, 0x2, 0x2, 0x202, 0x1fd, 0x3, + 0x2, 0x2, 0x2, 0x202, 0x1ff, 0x3, 0x2, 0x2, 0x2, 0x202, 0x201, 0x3, + 0x2, 0x2, 0x2, 0x203, 0x41, 0x3, 0x2, 0x2, 0x2, 0x204, 0x205, 0x7, 0x4, + 0x2, 0x2, 0x205, 0x206, 0x7, 0x14, 0x2, 0x2, 0x206, 0x208, 0x5, 0x10, + 0x9, 0x2, 0x207, 0x209, 0x5, 0x40, 0x21, 0x2, 0x208, 0x207, 0x3, 0x2, + 0x2, 0x2, 0x209, 0x20a, 0x3, 0x2, 0x2, 0x2, 0x20a, 0x208, 0x3, 0x2, + 0x2, 0x2, 0x20a, 0x20b, 0x3, 0x2, 0x2, 0x2, 0x20b, 0x20c, 0x3, 0x2, + 0x2, 0x2, 0x20c, 0x20d, 0x7, 0x5, 0x2, 0x2, 0x20d, 0x43, 0x3, 0x2, 0x2, + 0x2, 0x20e, 0x20f, 0x7, 0x6e, 0x2, 0x2, 0x20f, 0x211, 0x7, 0x4, 0x2, + 0x2, 0x210, 0x212, 0x5, 0x10, 0x9, 0x2, 0x211, 0x210, 0x3, 0x2, 0x2, + 0x2, 0x212, 0x213, 0x3, 0x2, 0x2, 0x2, 0x213, 0x211, 0x3, 0x2, 0x2, + 0x2, 0x213, 0x214, 0x3, 0x2, 0x2, 0x2, 0x214, 0x215, 0x3, 0x2, 0x2, + 0x2, 0x215, 0x216, 0x7, 0x5, 0x2, 0x2, 0x216, 0x221, 0x3, 0x2, 0x2, + 0x2, 0x217, 0x218, 0x7, 0x56, 0x2, 0x2, 0x218, 0x221, 0x5, 0x1a, 0xe, + 0x2, 0x219, 0x21a, 0x7, 0x51, 0x2, 0x2, 0x21a, 0x221, 0x5, 0x1a, 0xe, + 0x2, 0x21b, 0x21c, 0x7, 0x6f, 0x2, 0x2, 0x21c, 0x221, 0x5, 0x1a, 0xe, + 0x2, 0x21d, 0x21e, 0x7, 0x5b, 0x2, 0x2, 0x21e, 0x221, 0x5, 0x1a, 0xe, + 0x2, 0x21f, 0x221, 0x5, 0x28, 0x15, 0x2, 0x220, 0x20e, 0x3, 0x2, 0x2, + 0x2, 0x220, 0x217, 0x3, 0x2, 0x2, 0x2, 0x220, 0x219, 0x3, 0x2, 0x2, + 0x2, 0x220, 0x21b, 0x3, 0x2, 0x2, 0x2, 0x220, 0x21d, 0x3, 0x2, 0x2, + 0x2, 0x220, 0x21f, 0x3, 0x2, 0x2, 0x2, 0x221, 0x45, 0x3, 0x2, 0x2, 0x2, + 0x222, 0x223, 0x7, 0x4, 0x2, 0x2, 0x223, 0x224, 0x7, 0x10, 0x2, 0x2, + 0x224, 0x226, 0x5, 0x10, 0x9, 0x2, 0x225, 0x227, 0x5, 0x44, 0x23, 0x2, + 0x226, 0x225, 0x3, 0x2, 0x2, 0x2, 0x227, 0x228, 0x3, 0x2, 0x2, 0x2, + 0x228, 0x226, 0x3, 0x2, 0x2, 0x2, 0x228, 0x229, 0x3, 0x2, 0x2, 0x2, + 0x229, 0x22a, 0x3, 0x2, 0x2, 0x2, 0x22a, 0x22b, 0x7, 0x5, 0x2, 0x2, + 0x22b, 0x47, 0x3, 0x2, 0x2, 0x2, 0x22c, 0x22d, 0x7, 0x4, 0x2, 0x2, 0x22d, + 0x22e, 0x5, 0x10, 0x9, 0x2, 0x22e, 0x22f, 0x5, 0x12, 0xa, 0x2, 0x22f, + 0x230, 0x7, 0x5, 0x2, 0x2, 0x230, 0x49, 0x3, 0x2, 0x2, 0x2, 0x231, 0x232, + 0x7, 0x4, 0x2, 0x2, 0x232, 0x233, 0x5, 0x10, 0x9, 0x2, 0x233, 0x234, + 0x5, 0x2a, 0x16, 0x2, 0x234, 0x235, 0x7, 0x5, 0x2, 0x2, 0x235, 0x4b, + 0x3, 0x2, 0x2, 0x2, 0x236, 0x237, 0x7, 0x4, 0x2, 0x2, 0x237, 0x23b, + 0x5, 0x10, 0x9, 0x2, 0x238, 0x23a, 0x5, 0x4a, 0x26, 0x2, 0x239, 0x238, + 0x3, 0x2, 0x2, 0x2, 0x23a, 0x23d, 0x3, 0x2, 0x2, 0x2, 0x23b, 0x239, + 0x3, 0x2, 0x2, 0x2, 0x23b, 0x23c, 0x3, 0x2, 0x2, 0x2, 0x23c, 0x23e, + 0x3, 0x2, 0x2, 0x2, 0x23d, 0x23b, 0x3, 0x2, 0x2, 0x2, 0x23e, 0x23f, + 0x7, 0x5, 0x2, 0x2, 0x23f, 0x4d, 0x3, 0x2, 0x2, 0x2, 0x240, 0x242, 0x7, + 0x4, 0x2, 0x2, 0x241, 0x243, 0x5, 0x4c, 0x27, 0x2, 0x242, 0x241, 0x3, + 0x2, 0x2, 0x2, 0x243, 0x244, 0x3, 0x2, 0x2, 0x2, 0x244, 0x242, 0x3, + 0x2, 0x2, 0x2, 0x244, 0x245, 0x3, 0x2, 0x2, 0x2, 0x245, 0x246, 0x3, + 0x2, 0x2, 0x2, 0x246, 0x247, 0x7, 0x5, 0x2, 0x2, 0x247, 0x25b, 0x3, + 0x2, 0x2, 0x2, 0x248, 0x249, 0x7, 0x4, 0x2, 0x2, 0x249, 0x24a, 0x7, + 0x42, 0x2, 0x2, 0x24a, 0x24c, 0x7, 0x4, 0x2, 0x2, 0x24b, 0x24d, 0x5, + 0x10, 0x9, 0x2, 0x24c, 0x24b, 0x3, 0x2, 0x2, 0x2, 0x24d, 0x24e, 0x3, + 0x2, 0x2, 0x2, 0x24e, 0x24c, 0x3, 0x2, 0x2, 0x2, 0x24e, 0x24f, 0x3, + 0x2, 0x2, 0x2, 0x24f, 0x250, 0x3, 0x2, 0x2, 0x2, 0x250, 0x251, 0x7, + 0x5, 0x2, 0x2, 0x251, 0x253, 0x7, 0x4, 0x2, 0x2, 0x252, 0x254, 0x5, + 0x4c, 0x27, 0x2, 0x253, 0x252, 0x3, 0x2, 0x2, 0x2, 0x254, 0x255, 0x3, + 0x2, 0x2, 0x2, 0x255, 0x253, 0x3, 0x2, 0x2, 0x2, 0x255, 0x256, 0x3, + 0x2, 0x2, 0x2, 0x256, 0x257, 0x3, 0x2, 0x2, 0x2, 0x257, 0x258, 0x7, + 0x5, 0x2, 0x2, 0x258, 0x259, 0x7, 0x5, 0x2, 0x2, 0x259, 0x25b, 0x3, + 0x2, 0x2, 0x2, 0x25a, 0x240, 0x3, 0x2, 0x2, 0x2, 0x25a, 0x248, 0x3, + 0x2, 0x2, 0x2, 0x25b, 0x4f, 0x3, 0x2, 0x2, 0x2, 0x25c, 0x25d, 0x7, 0x4, + 0x2, 0x2, 0x25d, 0x25e, 0x5, 0x10, 0x9, 0x2, 0x25e, 0x262, 0x7, 0x4, + 0x2, 0x2, 0x25f, 0x261, 0x5, 0x30, 0x19, 0x2, 0x260, 0x25f, 0x3, 0x2, + 0x2, 0x2, 0x261, 0x264, 0x3, 0x2, 0x2, 0x2, 0x262, 0x260, 0x3, 0x2, + 0x2, 0x2, 0x262, 0x263, 0x3, 0x2, 0x2, 0x2, 0x263, 0x265, 0x3, 0x2, + 0x2, 0x2, 0x264, 0x262, 0x3, 0x2, 0x2, 0x2, 0x265, 0x266, 0x7, 0x5, + 0x2, 0x2, 0x266, 0x267, 0x5, 0x2a, 0x16, 0x2, 0x267, 0x268, 0x7, 0x5, + 0x2, 0x2, 0x268, 0x51, 0x3, 0x2, 0x2, 0x2, 0x269, 0x26a, 0x5, 0x10, + 0x9, 0x2, 0x26a, 0x26e, 0x7, 0x4, 0x2, 0x2, 0x26b, 0x26d, 0x5, 0x30, + 0x19, 0x2, 0x26c, 0x26b, 0x3, 0x2, 0x2, 0x2, 0x26d, 0x270, 0x3, 0x2, + 0x2, 0x2, 0x26e, 0x26c, 0x3, 0x2, 0x2, 0x2, 0x26e, 0x26f, 0x3, 0x2, + 0x2, 0x2, 0x26f, 0x271, 0x3, 0x2, 0x2, 0x2, 0x270, 0x26e, 0x3, 0x2, + 0x2, 0x2, 0x271, 0x272, 0x7, 0x5, 0x2, 0x2, 0x272, 0x273, 0x5, 0x2a, + 0x16, 0x2, 0x273, 0x274, 0x5, 0x36, 0x1c, 0x2, 0x274, 0x53, 0x3, 0x2, + 0x2, 0x2, 0x275, 0x27c, 0x5, 0x10, 0x9, 0x2, 0x276, 0x277, 0x7, 0x4, + 0x2, 0x2, 0x277, 0x278, 0x7, 0x9, 0x2, 0x2, 0x278, 0x279, 0x5, 0x10, + 0x9, 0x2, 0x279, 0x27a, 0x7, 0x5, 0x2, 0x2, 0x27a, 0x27c, 0x3, 0x2, + 0x2, 0x2, 0x27b, 0x275, 0x3, 0x2, 0x2, 0x2, 0x27b, 0x276, 0x3, 0x2, + 0x2, 0x2, 0x27c, 0x55, 0x3, 0x2, 0x2, 0x2, 0x27d, 0x27f, 0x5, 0x94, + 0x4b, 0x2, 0x27e, 0x27d, 0x3, 0x2, 0x2, 0x2, 0x27f, 0x282, 0x3, 0x2, + 0x2, 0x2, 0x280, 0x27e, 0x3, 0x2, 0x2, 0x2, 0x280, 0x281, 0x3, 0x2, + 0x2, 0x2, 0x281, 0x57, 0x3, 0x2, 0x2, 0x2, 0x282, 0x280, 0x3, 0x2, 0x2, + 0x2, 0x283, 0x284, 0x7, 0x19, 0x2, 0x2, 0x284, 0x59, 0x3, 0x2, 0x2, + 0x2, 0x285, 0x286, 0x7, 0x1a, 0x2, 0x2, 0x286, 0x5b, 0x3, 0x2, 0x2, + 0x2, 0x287, 0x288, 0x7, 0x1b, 0x2, 0x2, 0x288, 0x5d, 0x3, 0x2, 0x2, + 0x2, 0x289, 0x28a, 0x7, 0x1c, 0x2, 0x2, 0x28a, 0x5f, 0x3, 0x2, 0x2, + 0x2, 0x28b, 0x28c, 0x7, 0x1d, 0x2, 0x2, 0x28c, 0x61, 0x3, 0x2, 0x2, + 0x2, 0x28d, 0x28e, 0x7, 0x1e, 0x2, 0x2, 0x28e, 0x63, 0x3, 0x2, 0x2, + 0x2, 0x28f, 0x290, 0x7, 0x1f, 0x2, 0x2, 0x290, 0x65, 0x3, 0x2, 0x2, + 0x2, 0x291, 0x292, 0x7, 0x20, 0x2, 0x2, 0x292, 0x67, 0x3, 0x2, 0x2, + 0x2, 0x293, 0x294, 0x7, 0x21, 0x2, 0x2, 0x294, 0x69, 0x3, 0x2, 0x2, + 0x2, 0x295, 0x296, 0x7, 0x22, 0x2, 0x2, 0x296, 0x6b, 0x3, 0x2, 0x2, + 0x2, 0x297, 0x298, 0x7, 0x23, 0x2, 0x2, 0x298, 0x6d, 0x3, 0x2, 0x2, + 0x2, 0x299, 0x29a, 0x7, 0x24, 0x2, 0x2, 0x29a, 0x6f, 0x3, 0x2, 0x2, + 0x2, 0x29b, 0x29c, 0x7, 0x25, 0x2, 0x2, 0x29c, 0x71, 0x3, 0x2, 0x2, + 0x2, 0x29d, 0x29e, 0x7, 0x26, 0x2, 0x2, 0x29e, 0x73, 0x3, 0x2, 0x2, + 0x2, 0x29f, 0x2a0, 0x7, 0x27, 0x2, 0x2, 0x2a0, 0x75, 0x3, 0x2, 0x2, + 0x2, 0x2a1, 0x2a2, 0x7, 0x28, 0x2, 0x2, 0x2a2, 0x77, 0x3, 0x2, 0x2, + 0x2, 0x2a3, 0x2a4, 0x7, 0x29, 0x2, 0x2, 0x2a4, 0x79, 0x3, 0x2, 0x2, + 0x2, 0x2a5, 0x2a6, 0x7, 0x2a, 0x2, 0x2, 0x2a6, 0x7b, 0x3, 0x2, 0x2, + 0x2, 0x2a7, 0x2a8, 0x7, 0x2b, 0x2, 0x2, 0x2a8, 0x7d, 0x3, 0x2, 0x2, + 0x2, 0x2a9, 0x2aa, 0x7, 0x2c, 0x2, 0x2, 0x2aa, 0x7f, 0x3, 0x2, 0x2, + 0x2, 0x2ab, 0x2ac, 0x7, 0x2d, 0x2, 0x2, 0x2ac, 0x81, 0x3, 0x2, 0x2, + 0x2, 0x2ad, 0x2ae, 0x7, 0x2e, 0x2, 0x2, 0x2ae, 0x83, 0x3, 0x2, 0x2, + 0x2, 0x2af, 0x2b0, 0x7, 0x2f, 0x2, 0x2, 0x2b0, 0x85, 0x3, 0x2, 0x2, + 0x2, 0x2b1, 0x2b2, 0x7, 0x30, 0x2, 0x2, 0x2b2, 0x87, 0x3, 0x2, 0x2, + 0x2, 0x2b3, 0x2b4, 0x7, 0x31, 0x2, 0x2, 0x2b4, 0x89, 0x3, 0x2, 0x2, + 0x2, 0x2b5, 0x2b6, 0x7, 0x32, 0x2, 0x2, 0x2b6, 0x8b, 0x3, 0x2, 0x2, + 0x2, 0x2b7, 0x2b8, 0x7, 0x33, 0x2, 0x2, 0x2b8, 0x8d, 0x3, 0x2, 0x2, + 0x2, 0x2b9, 0x2ba, 0x7, 0x34, 0x2, 0x2, 0x2ba, 0x8f, 0x3, 0x2, 0x2, + 0x2, 0x2bb, 0x2bc, 0x7, 0x35, 0x2, 0x2, 0x2bc, 0x91, 0x3, 0x2, 0x2, + 0x2, 0x2bd, 0x2be, 0x7, 0x36, 0x2, 0x2, 0x2be, 0x93, 0x3, 0x2, 0x2, + 0x2, 0x2bf, 0x2c0, 0x7, 0x4, 0x2, 0x2, 0x2c0, 0x2c1, 0x5, 0x58, 0x2d, + 0x2, 0x2c1, 0x2c2, 0x5, 0x36, 0x1c, 0x2, 0x2c2, 0x2c3, 0x7, 0x5, 0x2, + 0x2, 0x2c3, 0x380, 0x3, 0x2, 0x2, 0x2, 0x2c4, 0x2c5, 0x7, 0x4, 0x2, + 0x2, 0x2c5, 0x2c6, 0x5, 0x5a, 0x2e, 0x2, 0x2c6, 0x2c7, 0x7, 0x5, 0x2, + 0x2, 0x2c7, 0x380, 0x3, 0x2, 0x2, 0x2, 0x2c8, 0x2c9, 0x7, 0x4, 0x2, + 0x2, 0x2c9, 0x2ca, 0x5, 0x5c, 0x2f, 0x2, 0x2ca, 0x2cb, 0x7, 0x5, 0x2, + 0x2, 0x2cb, 0x380, 0x3, 0x2, 0x2, 0x2, 0x2cc, 0x2cd, 0x7, 0x4, 0x2, + 0x2, 0x2cd, 0x2ce, 0x5, 0x5e, 0x30, 0x2, 0x2ce, 0x2cf, 0x5, 0x10, 0x9, + 0x2, 0x2cf, 0x2d0, 0x5, 0x2a, 0x16, 0x2, 0x2d0, 0x2d1, 0x7, 0x5, 0x2, + 0x2, 0x2d1, 0x380, 0x3, 0x2, 0x2, 0x2, 0x2d2, 0x2d3, 0x7, 0x4, 0x2, + 0x2, 0x2d3, 0x2d4, 0x5, 0x60, 0x31, 0x2, 0x2d4, 0x2d5, 0x5, 0x10, 0x9, + 0x2, 0x2d5, 0x2d6, 0x5, 0x4e, 0x28, 0x2, 0x2d6, 0x2d7, 0x7, 0x5, 0x2, + 0x2, 0x2d7, 0x380, 0x3, 0x2, 0x2, 0x2, 0x2d8, 0x2d9, 0x7, 0x4, 0x2, + 0x2, 0x2d9, 0x2da, 0x5, 0x62, 0x32, 0x2, 0x2da, 0x2dc, 0x7, 0x4, 0x2, + 0x2, 0x2db, 0x2dd, 0x5, 0x48, 0x25, 0x2, 0x2dc, 0x2db, 0x3, 0x2, 0x2, + 0x2, 0x2dd, 0x2de, 0x3, 0x2, 0x2, 0x2, 0x2de, 0x2dc, 0x3, 0x2, 0x2, + 0x2, 0x2de, 0x2df, 0x3, 0x2, 0x2, 0x2, 0x2df, 0x2e0, 0x3, 0x2, 0x2, + 0x2, 0x2e0, 0x2e1, 0x7, 0x5, 0x2, 0x2, 0x2e1, 0x2e3, 0x7, 0x4, 0x2, + 0x2, 0x2e2, 0x2e4, 0x5, 0x4e, 0x28, 0x2, 0x2e3, 0x2e2, 0x3, 0x2, 0x2, + 0x2, 0x2e4, 0x2e5, 0x3, 0x2, 0x2, 0x2, 0x2e5, 0x2e3, 0x3, 0x2, 0x2, + 0x2, 0x2e5, 0x2e6, 0x3, 0x2, 0x2, 0x2, 0x2e6, 0x2e7, 0x3, 0x2, 0x2, + 0x2, 0x2e7, 0x2e8, 0x7, 0x5, 0x2, 0x2, 0x2e8, 0x2e9, 0x7, 0x5, 0x2, + 0x2, 0x2e9, 0x380, 0x3, 0x2, 0x2, 0x2, 0x2ea, 0x2eb, 0x7, 0x4, 0x2, + 0x2, 0x2eb, 0x2ec, 0x5, 0x64, 0x33, 0x2, 0x2ec, 0x2ed, 0x5, 0x10, 0x9, + 0x2, 0x2ed, 0x2f1, 0x7, 0x4, 0x2, 0x2, 0x2ee, 0x2f0, 0x5, 0x2a, 0x16, + 0x2, 0x2ef, 0x2ee, 0x3, 0x2, 0x2, 0x2, 0x2f0, 0x2f3, 0x3, 0x2, 0x2, + 0x2, 0x2f1, 0x2ef, 0x3, 0x2, 0x2, 0x2, 0x2f1, 0x2f2, 0x3, 0x2, 0x2, + 0x2, 0x2f2, 0x2f4, 0x3, 0x2, 0x2, 0x2, 0x2f3, 0x2f1, 0x3, 0x2, 0x2, + 0x2, 0x2f4, 0x2f5, 0x7, 0x5, 0x2, 0x2, 0x2f5, 0x2f6, 0x5, 0x2a, 0x16, + 0x2, 0x2f6, 0x2f7, 0x7, 0x5, 0x2, 0x2, 0x2f7, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x2f8, 0x2f9, 0x7, 0x4, 0x2, 0x2, 0x2f9, 0x2fa, 0x5, 0x66, 0x34, + 0x2, 0x2fa, 0x2fb, 0x5, 0x10, 0x9, 0x2, 0x2fb, 0x2fc, 0x5, 0x12, 0xa, + 0x2, 0x2fc, 0x2fd, 0x7, 0x5, 0x2, 0x2, 0x2fd, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x2fe, 0x2ff, 0x7, 0x4, 0x2, 0x2, 0x2ff, 0x300, 0x5, 0x68, 0x35, + 0x2, 0x300, 0x301, 0x5, 0x52, 0x2a, 0x2, 0x301, 0x302, 0x7, 0x5, 0x2, + 0x2, 0x302, 0x380, 0x3, 0x2, 0x2, 0x2, 0x303, 0x304, 0x7, 0x4, 0x2, + 0x2, 0x304, 0x305, 0x5, 0x6a, 0x36, 0x2, 0x305, 0x306, 0x5, 0x52, 0x2a, + 0x2, 0x306, 0x307, 0x7, 0x5, 0x2, 0x2, 0x307, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x308, 0x309, 0x7, 0x4, 0x2, 0x2, 0x309, 0x30a, 0x5, 0x6c, 0x37, + 0x2, 0x30a, 0x30c, 0x7, 0x4, 0x2, 0x2, 0x30b, 0x30d, 0x5, 0x50, 0x29, + 0x2, 0x30c, 0x30b, 0x3, 0x2, 0x2, 0x2, 0x30d, 0x30e, 0x3, 0x2, 0x2, + 0x2, 0x30e, 0x30c, 0x3, 0x2, 0x2, 0x2, 0x30e, 0x30f, 0x3, 0x2, 0x2, + 0x2, 0x30f, 0x310, 0x3, 0x2, 0x2, 0x2, 0x310, 0x311, 0x7, 0x5, 0x2, + 0x2, 0x311, 0x313, 0x7, 0x4, 0x2, 0x2, 0x312, 0x314, 0x5, 0x36, 0x1c, + 0x2, 0x313, 0x312, 0x3, 0x2, 0x2, 0x2, 0x314, 0x315, 0x3, 0x2, 0x2, + 0x2, 0x315, 0x313, 0x3, 0x2, 0x2, 0x2, 0x315, 0x316, 0x3, 0x2, 0x2, + 0x2, 0x316, 0x317, 0x3, 0x2, 0x2, 0x2, 0x317, 0x318, 0x7, 0x5, 0x2, + 0x2, 0x318, 0x319, 0x7, 0x5, 0x2, 0x2, 0x319, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x31a, 0x31b, 0x7, 0x4, 0x2, 0x2, 0x31b, 0x31c, 0x5, 0x6e, 0x38, + 0x2, 0x31c, 0x31d, 0x5, 0x10, 0x9, 0x2, 0x31d, 0x321, 0x7, 0x4, 0x2, + 0x2, 0x31e, 0x320, 0x5, 0x10, 0x9, 0x2, 0x31f, 0x31e, 0x3, 0x2, 0x2, + 0x2, 0x320, 0x323, 0x3, 0x2, 0x2, 0x2, 0x321, 0x31f, 0x3, 0x2, 0x2, + 0x2, 0x321, 0x322, 0x3, 0x2, 0x2, 0x2, 0x322, 0x324, 0x3, 0x2, 0x2, + 0x2, 0x323, 0x321, 0x3, 0x2, 0x2, 0x2, 0x324, 0x325, 0x7, 0x5, 0x2, + 0x2, 0x325, 0x326, 0x5, 0x2a, 0x16, 0x2, 0x326, 0x327, 0x7, 0x5, 0x2, + 0x2, 0x327, 0x380, 0x3, 0x2, 0x2, 0x2, 0x328, 0x329, 0x7, 0x4, 0x2, + 0x2, 0x329, 0x32a, 0x5, 0x70, 0x39, 0x2, 0x32a, 0x32b, 0x5, 0x1a, 0xe, + 0x2, 0x32b, 0x32c, 0x7, 0x5, 0x2, 0x2, 0x32c, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x32d, 0x32e, 0x7, 0x4, 0x2, 0x2, 0x32e, 0x32f, 0x5, 0x72, 0x3a, + 0x2, 0x32f, 0x330, 0x7, 0x5, 0x2, 0x2, 0x330, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x331, 0x332, 0x7, 0x4, 0x2, 0x2, 0x332, 0x333, 0x5, 0x74, 0x3b, + 0x2, 0x333, 0x334, 0x7, 0x5, 0x2, 0x2, 0x334, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x335, 0x336, 0x7, 0x4, 0x2, 0x2, 0x336, 0x337, 0x5, 0x76, 0x3c, + 0x2, 0x337, 0x338, 0x7, 0x5, 0x2, 0x2, 0x338, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x339, 0x33a, 0x7, 0x4, 0x2, 0x2, 0x33a, 0x33b, 0x5, 0x78, 0x3d, + 0x2, 0x33b, 0x33c, 0x5, 0x9a, 0x4e, 0x2, 0x33c, 0x33d, 0x7, 0x5, 0x2, + 0x2, 0x33d, 0x380, 0x3, 0x2, 0x2, 0x2, 0x33e, 0x33f, 0x7, 0x4, 0x2, + 0x2, 0x33f, 0x340, 0x5, 0x7a, 0x3e, 0x2, 0x340, 0x341, 0x7, 0x5, 0x2, + 0x2, 0x341, 0x380, 0x3, 0x2, 0x2, 0x2, 0x342, 0x343, 0x7, 0x4, 0x2, + 0x2, 0x343, 0x344, 0x5, 0x7c, 0x3f, 0x2, 0x344, 0x345, 0x5, 0x1c, 0xf, + 0x2, 0x345, 0x346, 0x7, 0x5, 0x2, 0x2, 0x346, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x347, 0x348, 0x7, 0x4, 0x2, 0x2, 0x348, 0x349, 0x5, 0x7e, 0x40, + 0x2, 0x349, 0x34a, 0x7, 0x5, 0x2, 0x2, 0x34a, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x34b, 0x34c, 0x7, 0x4, 0x2, 0x2, 0x34c, 0x34d, 0x5, 0x80, 0x41, + 0x2, 0x34d, 0x34e, 0x7, 0x5, 0x2, 0x2, 0x34e, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x34f, 0x350, 0x7, 0x4, 0x2, 0x2, 0x350, 0x351, 0x5, 0x82, 0x42, + 0x2, 0x351, 0x352, 0x7, 0x5, 0x2, 0x2, 0x352, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x353, 0x354, 0x7, 0x4, 0x2, 0x2, 0x354, 0x355, 0x5, 0x84, 0x43, + 0x2, 0x355, 0x357, 0x7, 0x4, 0x2, 0x2, 0x356, 0x358, 0x5, 0x36, 0x1c, + 0x2, 0x357, 0x356, 0x3, 0x2, 0x2, 0x2, 0x358, 0x359, 0x3, 0x2, 0x2, + 0x2, 0x359, 0x357, 0x3, 0x2, 0x2, 0x2, 0x359, 0x35a, 0x3, 0x2, 0x2, + 0x2, 0x35a, 0x35b, 0x3, 0x2, 0x2, 0x2, 0x35b, 0x35c, 0x7, 0x5, 0x2, + 0x2, 0x35c, 0x35d, 0x7, 0x5, 0x2, 0x2, 0x35d, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x35e, 0x35f, 0x7, 0x4, 0x2, 0x2, 0x35f, 0x360, 0x5, 0x86, 0x44, + 0x2, 0x360, 0x361, 0x5, 0x12, 0xa, 0x2, 0x361, 0x362, 0x7, 0x5, 0x2, + 0x2, 0x362, 0x380, 0x3, 0x2, 0x2, 0x2, 0x363, 0x364, 0x7, 0x4, 0x2, + 0x2, 0x364, 0x365, 0x5, 0x88, 0x45, 0x2, 0x365, 0x366, 0x5, 0x12, 0xa, + 0x2, 0x366, 0x367, 0x7, 0x5, 0x2, 0x2, 0x367, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x368, 0x369, 0x7, 0x4, 0x2, 0x2, 0x369, 0x36a, 0x5, 0x8a, 0x46, + 0x2, 0x36a, 0x36b, 0x7, 0x5, 0x2, 0x2, 0x36b, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x36c, 0x36d, 0x7, 0x4, 0x2, 0x2, 0x36d, 0x36e, 0x5, 0x8c, 0x47, + 0x2, 0x36e, 0x36f, 0x7, 0x5, 0x2, 0x2, 0x36f, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x370, 0x371, 0x7, 0x4, 0x2, 0x2, 0x371, 0x372, 0x5, 0x8e, 0x48, + 0x2, 0x372, 0x373, 0x5, 0x28, 0x15, 0x2, 0x373, 0x374, 0x7, 0x5, 0x2, + 0x2, 0x374, 0x380, 0x3, 0x2, 0x2, 0x2, 0x375, 0x376, 0x7, 0x4, 0x2, + 0x2, 0x376, 0x377, 0x5, 0x90, 0x49, 0x2, 0x377, 0x378, 0x5, 0x10, 0x9, + 0x2, 0x378, 0x379, 0x7, 0x5, 0x2, 0x2, 0x379, 0x380, 0x3, 0x2, 0x2, + 0x2, 0x37a, 0x37b, 0x7, 0x4, 0x2, 0x2, 0x37b, 0x37c, 0x5, 0x92, 0x4a, + 0x2, 0x37c, 0x37d, 0x5, 0x98, 0x4d, 0x2, 0x37d, 0x37e, 0x7, 0x5, 0x2, + 0x2, 0x37e, 0x380, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x2bf, 0x3, 0x2, 0x2, + 0x2, 0x37f, 0x2c4, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x2c8, 0x3, 0x2, 0x2, + 0x2, 0x37f, 0x2cc, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x2d2, 0x3, 0x2, 0x2, + 0x2, 0x37f, 0x2d8, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x2ea, 0x3, 0x2, 0x2, + 0x2, 0x37f, 0x2f8, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x2fe, 0x3, 0x2, 0x2, + 0x2, 0x37f, 0x303, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x308, 0x3, 0x2, 0x2, + 0x2, 0x37f, 0x31a, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x328, 0x3, 0x2, 0x2, + 0x2, 0x37f, 0x32d, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x331, 0x3, 0x2, 0x2, + 0x2, 0x37f, 0x335, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x339, 0x3, 0x2, 0x2, + 0x2, 0x37f, 0x33e, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x342, 0x3, 0x2, 0x2, + 0x2, 0x37f, 0x347, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x34b, 0x3, 0x2, 0x2, + 0x2, 0x37f, 0x34f, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x353, 0x3, 0x2, 0x2, + 0x2, 0x37f, 0x35e, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x363, 0x3, 0x2, 0x2, + 0x2, 0x37f, 0x368, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x36c, 0x3, 0x2, 0x2, + 0x2, 0x37f, 0x370, 0x3, 0x2, 0x2, 0x2, 0x37f, 0x375, 0x3, 0x2, 0x2, + 0x2, 0x37f, 0x37a, 0x3, 0x2, 0x2, 0x2, 0x380, 0x95, 0x3, 0x2, 0x2, 0x2, + 0x381, 0x382, 0x9, 0x6, 0x2, 0x2, 0x382, 0x97, 0x3, 0x2, 0x2, 0x2, 0x383, + 0x384, 0x7, 0x4f, 0x2, 0x2, 0x384, 0x3a1, 0x5, 0x1a, 0xe, 0x2, 0x385, + 0x386, 0x7, 0x54, 0x2, 0x2, 0x386, 0x3a1, 0x5, 0x96, 0x4c, 0x2, 0x387, + 0x388, 0x7, 0x55, 0x2, 0x2, 0x388, 0x3a1, 0x5, 0x96, 0x4c, 0x2, 0x389, + 0x38a, 0x7, 0x5d, 0x2, 0x2, 0x38a, 0x3a1, 0x5, 0x96, 0x4c, 0x2, 0x38b, + 0x38c, 0x7, 0x5e, 0x2, 0x2, 0x38c, 0x3a1, 0x5, 0x96, 0x4c, 0x2, 0x38d, + 0x38e, 0x7, 0x5f, 0x2, 0x2, 0x38e, 0x3a1, 0x5, 0x96, 0x4c, 0x2, 0x38f, + 0x390, 0x7, 0x60, 0x2, 0x2, 0x390, 0x3a1, 0x5, 0x96, 0x4c, 0x2, 0x391, + 0x392, 0x7, 0x61, 0x2, 0x2, 0x392, 0x3a1, 0x5, 0x96, 0x4c, 0x2, 0x393, + 0x394, 0x7, 0x62, 0x2, 0x2, 0x394, 0x3a1, 0x5, 0x96, 0x4c, 0x2, 0x395, + 0x396, 0x7, 0x63, 0x2, 0x2, 0x396, 0x3a1, 0x5, 0x96, 0x4c, 0x2, 0x397, + 0x398, 0x7, 0x64, 0x2, 0x2, 0x398, 0x3a1, 0x5, 0x12, 0xa, 0x2, 0x399, + 0x39a, 0x7, 0x66, 0x2, 0x2, 0x39a, 0x3a1, 0x5, 0x1a, 0xe, 0x2, 0x39b, + 0x39c, 0x7, 0x67, 0x2, 0x2, 0x39c, 0x3a1, 0x5, 0x12, 0xa, 0x2, 0x39d, + 0x39e, 0x7, 0x70, 0x2, 0x2, 0x39e, 0x3a1, 0x5, 0x12, 0xa, 0x2, 0x39f, + 0x3a1, 0x5, 0x28, 0x15, 0x2, 0x3a0, 0x383, 0x3, 0x2, 0x2, 0x2, 0x3a0, + 0x385, 0x3, 0x2, 0x2, 0x2, 0x3a0, 0x387, 0x3, 0x2, 0x2, 0x2, 0x3a0, + 0x389, 0x3, 0x2, 0x2, 0x2, 0x3a0, 0x38b, 0x3, 0x2, 0x2, 0x2, 0x3a0, + 0x38d, 0x3, 0x2, 0x2, 0x2, 0x3a0, 0x38f, 0x3, 0x2, 0x2, 0x2, 0x3a0, + 0x391, 0x3, 0x2, 0x2, 0x2, 0x3a0, 0x393, 0x3, 0x2, 0x2, 0x2, 0x3a0, + 0x395, 0x3, 0x2, 0x2, 0x2, 0x3a0, 0x397, 0x3, 0x2, 0x2, 0x2, 0x3a0, + 0x399, 0x3, 0x2, 0x2, 0x2, 0x3a0, 0x39b, 0x3, 0x2, 0x2, 0x2, 0x3a0, + 0x39d, 0x3, 0x2, 0x2, 0x2, 0x3a0, 0x39f, 0x3, 0x2, 0x2, 0x2, 0x3a1, + 0x99, 0x3, 0x2, 0x2, 0x2, 0x3a2, 0x3ab, 0x7, 0x49, 0x2, 0x2, 0x3a3, + 0x3ab, 0x7, 0x4a, 0x2, 0x2, 0x3a4, 0x3ab, 0x7, 0x4b, 0x2, 0x2, 0x3a5, + 0x3ab, 0x7, 0x50, 0x2, 0x2, 0x3a6, 0x3ab, 0x7, 0x5a, 0x2, 0x2, 0x3a7, + 0x3ab, 0x7, 0x65, 0x2, 0x2, 0x3a8, 0x3ab, 0x7, 0x71, 0x2, 0x2, 0x3a9, + 0x3ab, 0x5, 0x1c, 0xf, 0x2, 0x3aa, 0x3a2, 0x3, 0x2, 0x2, 0x2, 0x3aa, + 0x3a3, 0x3, 0x2, 0x2, 0x2, 0x3aa, 0x3a4, 0x3, 0x2, 0x2, 0x2, 0x3aa, + 0x3a5, 0x3, 0x2, 0x2, 0x2, 0x3aa, 0x3a6, 0x3, 0x2, 0x2, 0x2, 0x3aa, + 0x3a7, 0x3, 0x2, 0x2, 0x2, 0x3aa, 0x3a8, 0x3, 0x2, 0x2, 0x2, 0x3aa, + 0x3a9, 0x3, 0x2, 0x2, 0x2, 0x3ab, 0x9b, 0x3, 0x2, 0x2, 0x2, 0x3ac, 0x3ad, + 0x9, 0x7, 0x2, 0x2, 0x3ad, 0x9d, 0x3, 0x2, 0x2, 0x2, 0x3ae, 0x3b2, 0x7, + 0x11, 0x2, 0x2, 0x3af, 0x3b2, 0x7, 0xf, 0x2, 0x2, 0x3b0, 0x3b2, 0x5, + 0x20, 0x11, 0x2, 0x3b1, 0x3ae, 0x3, 0x2, 0x2, 0x2, 0x3b1, 0x3af, 0x3, + 0x2, 0x2, 0x2, 0x3b1, 0x3b0, 0x3, 0x2, 0x2, 0x2, 0x3b2, 0x9f, 0x3, 0x2, + 0x2, 0x2, 0x3b3, 0x3b4, 0x7, 0x4, 0x2, 0x2, 0x3b4, 0x3b5, 0x7, 0x21, + 0x2, 0x2, 0x3b5, 0x3b6, 0x5, 0x52, 0x2a, 0x2, 0x3b6, 0x3b7, 0x7, 0x5, + 0x2, 0x2, 0x3b7, 0x3d0, 0x3, 0x2, 0x2, 0x2, 0x3b8, 0x3b9, 0x7, 0x4, + 0x2, 0x2, 0x3b9, 0x3ba, 0x7, 0x22, 0x2, 0x2, 0x3ba, 0x3bb, 0x5, 0x52, + 0x2a, 0x2, 0x3bb, 0x3bc, 0x7, 0x5, 0x2, 0x2, 0x3bc, 0x3d0, 0x3, 0x2, + 0x2, 0x2, 0x3bd, 0x3be, 0x7, 0x4, 0x2, 0x2, 0x3be, 0x3bf, 0x7, 0x23, + 0x2, 0x2, 0x3bf, 0x3c1, 0x7, 0x4, 0x2, 0x2, 0x3c0, 0x3c2, 0x5, 0x50, + 0x29, 0x2, 0x3c1, 0x3c0, 0x3, 0x2, 0x2, 0x2, 0x3c2, 0x3c3, 0x3, 0x2, + 0x2, 0x2, 0x3c3, 0x3c1, 0x3, 0x2, 0x2, 0x2, 0x3c3, 0x3c4, 0x3, 0x2, + 0x2, 0x2, 0x3c4, 0x3c5, 0x3, 0x2, 0x2, 0x2, 0x3c5, 0x3c6, 0x7, 0x5, + 0x2, 0x2, 0x3c6, 0x3c8, 0x7, 0x4, 0x2, 0x2, 0x3c7, 0x3c9, 0x5, 0x36, + 0x1c, 0x2, 0x3c8, 0x3c7, 0x3, 0x2, 0x2, 0x2, 0x3c9, 0x3ca, 0x3, 0x2, + 0x2, 0x2, 0x3ca, 0x3c8, 0x3, 0x2, 0x2, 0x2, 0x3ca, 0x3cb, 0x3, 0x2, + 0x2, 0x2, 0x3cb, 0x3cc, 0x3, 0x2, 0x2, 0x2, 0x3cc, 0x3cd, 0x7, 0x5, + 0x2, 0x2, 0x3cd, 0x3ce, 0x7, 0x5, 0x2, 0x2, 0x3ce, 0x3d0, 0x3, 0x2, + 0x2, 0x2, 0x3cf, 0x3b3, 0x3, 0x2, 0x2, 0x2, 0x3cf, 0x3b8, 0x3, 0x2, + 0x2, 0x2, 0x3cf, 0x3bd, 0x3, 0x2, 0x2, 0x2, 0x3d0, 0xa1, 0x3, 0x2, 0x2, + 0x2, 0x3d1, 0x3d2, 0x7, 0x4a, 0x2, 0x2, 0x3d2, 0x3df, 0x5, 0x12, 0xa, + 0x2, 0x3d3, 0x3d4, 0x7, 0x4b, 0x2, 0x2, 0x3d4, 0x3df, 0x5, 0x1a, 0xe, + 0x2, 0x3d5, 0x3d6, 0x7, 0x50, 0x2, 0x2, 0x3d6, 0x3df, 0x5, 0x9c, 0x4f, + 0x2, 0x3d7, 0x3d8, 0x7, 0x5a, 0x2, 0x2, 0x3d8, 0x3df, 0x5, 0x1a, 0xe, + 0x2, 0x3d9, 0x3da, 0x7, 0x65, 0x2, 0x2, 0x3da, 0x3df, 0x5, 0x9e, 0x50, + 0x2, 0x3db, 0x3dc, 0x7, 0x71, 0x2, 0x2, 0x3dc, 0x3df, 0x5, 0x1a, 0xe, + 0x2, 0x3dd, 0x3df, 0x5, 0x28, 0x15, 0x2, 0x3de, 0x3d1, 0x3, 0x2, 0x2, + 0x2, 0x3de, 0x3d3, 0x3, 0x2, 0x2, 0x2, 0x3de, 0x3d5, 0x3, 0x2, 0x2, + 0x2, 0x3de, 0x3d7, 0x3, 0x2, 0x2, 0x2, 0x3de, 0x3d9, 0x3, 0x2, 0x2, + 0x2, 0x3de, 0x3db, 0x3, 0x2, 0x2, 0x2, 0x3de, 0x3dd, 0x3, 0x2, 0x2, + 0x2, 0x3df, 0xa3, 0x3, 0x2, 0x2, 0x2, 0x3e0, 0x3e1, 0x7, 0x4, 0x2, 0x2, + 0x3e1, 0x3e2, 0x5, 0x36, 0x1c, 0x2, 0x3e2, 0x3e3, 0x5, 0x36, 0x1c, 0x2, + 0x3e3, 0x3e4, 0x7, 0x5, 0x2, 0x2, 0x3e4, 0xa5, 0x3, 0x2, 0x2, 0x2, 0x3e5, + 0x3e6, 0x7, 0x4, 0x2, 0x2, 0x3e6, 0x3e7, 0x5, 0x10, 0x9, 0x2, 0x3e7, + 0x3e8, 0x5, 0x96, 0x4c, 0x2, 0x3e8, 0x3e9, 0x7, 0x5, 0x2, 0x2, 0x3e9, + 0xa7, 0x3, 0x2, 0x2, 0x2, 0x3ea, 0x3eb, 0x9, 0x8, 0x2, 0x2, 0x3eb, 0xa9, + 0x3, 0x2, 0x2, 0x2, 0x3ec, 0x3ed, 0x5, 0x1a, 0xe, 0x2, 0x3ed, 0xab, + 0x3, 0x2, 0x2, 0x2, 0x3ee, 0x3f2, 0x7, 0x4, 0x2, 0x2, 0x3ef, 0x3f1, + 0x5, 0x36, 0x1c, 0x2, 0x3f0, 0x3ef, 0x3, 0x2, 0x2, 0x2, 0x3f1, 0x3f4, + 0x3, 0x2, 0x2, 0x2, 0x3f2, 0x3f0, 0x3, 0x2, 0x2, 0x2, 0x3f2, 0x3f3, + 0x3, 0x2, 0x2, 0x2, 0x3f3, 0x3f5, 0x3, 0x2, 0x2, 0x2, 0x3f4, 0x3f2, + 0x3, 0x2, 0x2, 0x2, 0x3f5, 0x3f6, 0x7, 0x5, 0x2, 0x2, 0x3f6, 0xad, 0x3, + 0x2, 0x2, 0x2, 0x3f7, 0x3fb, 0x7, 0x4, 0x2, 0x2, 0x3f8, 0x3fa, 0x5, + 0xa6, 0x54, 0x2, 0x3f9, 0x3f8, 0x3, 0x2, 0x2, 0x2, 0x3fa, 0x3fd, 0x3, + 0x2, 0x2, 0x2, 0x3fb, 0x3f9, 0x3, 0x2, 0x2, 0x2, 0x3fb, 0x3fc, 0x3, + 0x2, 0x2, 0x2, 0x3fc, 0x3fe, 0x3, 0x2, 0x2, 0x2, 0x3fd, 0x3fb, 0x3, + 0x2, 0x2, 0x2, 0x3fe, 0x3ff, 0x7, 0x5, 0x2, 0x2, 0x3ff, 0xaf, 0x3, 0x2, + 0x2, 0x2, 0x400, 0x402, 0x7, 0x4, 0x2, 0x2, 0x401, 0x403, 0x5, 0xa2, + 0x52, 0x2, 0x402, 0x401, 0x3, 0x2, 0x2, 0x2, 0x403, 0x404, 0x3, 0x2, + 0x2, 0x2, 0x404, 0x402, 0x3, 0x2, 0x2, 0x2, 0x404, 0x405, 0x3, 0x2, + 0x2, 0x2, 0x405, 0x406, 0x3, 0x2, 0x2, 0x2, 0x406, 0x407, 0x7, 0x5, + 0x2, 0x2, 0x407, 0xb1, 0x3, 0x2, 0x2, 0x2, 0x408, 0x40c, 0x7, 0x4, 0x2, + 0x2, 0x409, 0x40b, 0x5, 0xa0, 0x51, 0x2, 0x40a, 0x409, 0x3, 0x2, 0x2, + 0x2, 0x40b, 0x40e, 0x3, 0x2, 0x2, 0x2, 0x40c, 0x40a, 0x3, 0x2, 0x2, + 0x2, 0x40c, 0x40d, 0x3, 0x2, 0x2, 0x2, 0x40d, 0x40f, 0x3, 0x2, 0x2, + 0x2, 0x40e, 0x40c, 0x3, 0x2, 0x2, 0x2, 0x40f, 0x410, 0x7, 0x5, 0x2, + 0x2, 0x410, 0xb3, 0x3, 0x2, 0x2, 0x2, 0x411, 0x412, 0x5, 0x26, 0x14, + 0x2, 0x412, 0xb5, 0x3, 0x2, 0x2, 0x2, 0x413, 0x414, 0x5, 0x20, 0x11, + 0x2, 0x414, 0xb7, 0x3, 0x2, 0x2, 0x2, 0x415, 0x419, 0x7, 0x4, 0x2, 0x2, + 0x416, 0x418, 0x5, 0x10, 0x9, 0x2, 0x417, 0x416, 0x3, 0x2, 0x2, 0x2, + 0x418, 0x41b, 0x3, 0x2, 0x2, 0x2, 0x419, 0x417, 0x3, 0x2, 0x2, 0x2, + 0x419, 0x41a, 0x3, 0x2, 0x2, 0x2, 0x41a, 0x41c, 0x3, 0x2, 0x2, 0x2, + 0x41b, 0x419, 0x3, 0x2, 0x2, 0x2, 0x41c, 0x41d, 0x7, 0x5, 0x2, 0x2, + 0x41d, 0xb9, 0x3, 0x2, 0x2, 0x2, 0x41e, 0x422, 0x7, 0x4, 0x2, 0x2, 0x41f, + 0x421, 0x5, 0x10, 0x9, 0x2, 0x420, 0x41f, 0x3, 0x2, 0x2, 0x2, 0x421, + 0x424, 0x3, 0x2, 0x2, 0x2, 0x422, 0x420, 0x3, 0x2, 0x2, 0x2, 0x422, + 0x423, 0x3, 0x2, 0x2, 0x2, 0x423, 0x425, 0x3, 0x2, 0x2, 0x2, 0x424, + 0x422, 0x3, 0x2, 0x2, 0x2, 0x425, 0x426, 0x7, 0x5, 0x2, 0x2, 0x426, + 0xbb, 0x3, 0x2, 0x2, 0x2, 0x427, 0x429, 0x7, 0x4, 0x2, 0x2, 0x428, 0x42a, + 0x5, 0xa4, 0x53, 0x2, 0x429, 0x428, 0x3, 0x2, 0x2, 0x2, 0x42a, 0x42b, + 0x3, 0x2, 0x2, 0x2, 0x42b, 0x429, 0x3, 0x2, 0x2, 0x2, 0x42b, 0x42c, + 0x3, 0x2, 0x2, 0x2, 0x42c, 0x42d, 0x3, 0x2, 0x2, 0x2, 0x42d, 0x42e, + 0x7, 0x5, 0x2, 0x2, 0x42e, 0xbd, 0x3, 0x2, 0x2, 0x2, 0x42f, 0x43b, 0x5, + 0xa8, 0x55, 0x2, 0x430, 0x43b, 0x5, 0xaa, 0x56, 0x2, 0x431, 0x43b, 0x5, + 0xac, 0x57, 0x2, 0x432, 0x43b, 0x5, 0xae, 0x58, 0x2, 0x433, 0x43b, 0x5, + 0xb0, 0x59, 0x2, 0x434, 0x43b, 0x5, 0xb2, 0x5a, 0x2, 0x435, 0x43b, 0x5, + 0xb4, 0x5b, 0x2, 0x436, 0x43b, 0x5, 0xb6, 0x5c, 0x2, 0x437, 0x43b, 0x5, + 0xb8, 0x5d, 0x2, 0x438, 0x43b, 0x5, 0xba, 0x5e, 0x2, 0x439, 0x43b, 0x5, + 0xbc, 0x5f, 0x2, 0x43a, 0x42f, 0x3, 0x2, 0x2, 0x2, 0x43a, 0x430, 0x3, + 0x2, 0x2, 0x2, 0x43a, 0x431, 0x3, 0x2, 0x2, 0x2, 0x43a, 0x432, 0x3, + 0x2, 0x2, 0x2, 0x43a, 0x433, 0x3, 0x2, 0x2, 0x2, 0x43a, 0x434, 0x3, + 0x2, 0x2, 0x2, 0x43a, 0x435, 0x3, 0x2, 0x2, 0x2, 0x43a, 0x436, 0x3, + 0x2, 0x2, 0x2, 0x43a, 0x437, 0x3, 0x2, 0x2, 0x2, 0x43a, 0x438, 0x3, + 0x2, 0x2, 0x2, 0x43a, 0x439, 0x3, 0x2, 0x2, 0x2, 0x43b, 0xbf, 0x3, 0x2, + 0x2, 0x2, 0x43c, 0x445, 0x7, 0x13, 0x2, 0x2, 0x43d, 0x445, 0x5, 0xbe, + 0x60, 0x2, 0x43e, 0x445, 0x7, 0x17, 0x2, 0x2, 0x43f, 0x440, 0x7, 0x4, + 0x2, 0x2, 0x440, 0x441, 0x7, 0xc, 0x2, 0x2, 0x441, 0x442, 0x5, 0x1a, + 0xe, 0x2, 0x442, 0x443, 0x7, 0x5, 0x2, 0x2, 0x443, 0x445, 0x3, 0x2, + 0x2, 0x2, 0x444, 0x43c, 0x3, 0x2, 0x2, 0x2, 0x444, 0x43d, 0x3, 0x2, + 0x2, 0x2, 0x444, 0x43e, 0x3, 0x2, 0x2, 0x2, 0x444, 0x43f, 0x3, 0x2, + 0x2, 0x2, 0x445, 0xc1, 0x3, 0x2, 0x2, 0x2, 0x4c, 0xcc, 0xd6, 0xe5, 0xec, + 0xf5, 0xf9, 0xfd, 0x106, 0x10a, 0x112, 0x116, 0x11c, 0x124, 0x128, 0x131, + 0x143, 0x147, 0x155, 0x15f, 0x16b, 0x177, 0x184, 0x18f, 0x193, 0x19b, + 0x1a8, 0x1b3, 0x1bd, 0x1c2, 0x1c7, 0x1d0, 0x1d8, 0x1dd, 0x1e3, 0x1ea, + 0x1f3, 0x202, 0x20a, 0x213, 0x220, 0x228, 0x23b, 0x244, 0x24e, 0x255, + 0x25a, 0x262, 0x26e, 0x27b, 0x280, 0x2de, 0x2e5, 0x2f1, 0x30e, 0x315, + 0x321, 0x359, 0x37f, 0x3a0, 0x3aa, 0x3b1, 0x3c3, 0x3ca, 0x3cf, 0x3de, + 0x3f2, 0x3fb, 0x404, 0x40c, 0x419, 0x422, 0x42b, 0x43a, 0x444, + }; + + atn::ATNDeserializer deserializer; + _atn = deserializer.deserialize(_serializedATN); + + size_t count = _atn.getNumberOfDecisions(); + _decisionToDFA.reserve(count); + for (size_t i = 0; i < count; i++) { + _decisionToDFA.emplace_back(_atn.getDecisionState(i), i); + } +} + +SMTLIBv2Parser::Initializer SMTLIBv2Parser::_init; diff --git a/C++Verifier/src/antlr4/SMTLIBv2Parser.h b/C++Verifier/src/antlr4/SMTLIBv2Parser.h new file mode 100644 index 0000000..2866533 --- /dev/null +++ b/C++Verifier/src/antlr4/SMTLIBv2Parser.h @@ -0,0 +1,1829 @@ + +// Generated from SMTLIBv2.g4 by ANTLR 4.8 + +#pragma once + + +#include "antlr4-runtime.h" + + + + +class SMTLIBv2Parser : public antlr4::Parser { +public: + enum { + Comment = 1, ParOpen = 2, ParClose = 3, Semicolon = 4, String = 5, QuotedSymbol = 6, + PS_Not = 7, PS_Bool = 8, PS_ContinuedExecution = 9, PS_Error = 10, PS_False = 11, + PS_ImmediateExit = 12, PS_Incomplete = 13, PS_Logic = 14, PS_Memout = 15, + PS_Sat = 16, PS_Success = 17, PS_Theory = 18, PS_True = 19, PS_Unknown = 20, + PS_Unsupported = 21, PS_Unsat = 22, CMD_Assert = 23, CMD_CheckSat = 24, + CMD_CheckSatAssuming = 25, CMD_DeclareConst = 26, CMD_DeclareDatatype = 27, + CMD_DeclareDatatypes = 28, CMD_DeclareFun = 29, CMD_DeclareSort = 30, + CMD_DefineFun = 31, CMD_DefineFunRec = 32, CMD_DefineFunsRec = 33, CMD_DefineSort = 34, + CMD_Echo = 35, CMD_Exit = 36, CMD_GetAssertions = 37, CMD_GetAssignment = 38, + CMD_GetInfo = 39, CMD_GetModel = 40, CMD_GetOption = 41, CMD_GetProof = 42, + CMD_GetUnsatAssumptions = 43, CMD_GetUnsatCore = 44, CMD_GetValue = 45, + CMD_Pop = 46, CMD_Push = 47, CMD_Reset = 48, CMD_ResetAssertions = 49, + CMD_SetInfo = 50, CMD_SetLogic = 51, CMD_SetOption = 52, GRW_Exclamation = 53, + GRW_Underscore = 54, GRW_As = 55, GRW_Binary = 56, GRW_Decimal = 57, + GRW_Exists = 58, GRW_Hexadecimal = 59, GRW_Forall = 60, GRW_Let = 61, + GRW_Match = 62, GRW_Numeral = 63, GRW_Par = 64, GRW_String = 65, Numeral = 66, + Binary = 67, HexDecimal = 68, Decimal = 69, Colon = 70, PK_AllStatistics = 71, + PK_AssertionStackLevels = 72, PK_Authors = 73, PK_Category = 74, PK_Chainable = 75, + PK_Definition = 76, PK_DiagnosticOutputChannel = 77, PK_ErrorBehaviour = 78, + PK_Extension = 79, PK_Funs = 80, PK_FunsDescription = 81, PK_GlobalDeclarations = 82, + PK_InteractiveMode = 83, PK_Language = 84, PK_LeftAssoc = 85, PK_License = 86, + PK_Named = 87, PK_Name = 88, PK_Notes = 89, PK_Pattern = 90, PK_PrintSuccess = 91, + PK_ProduceAssertions = 92, PK_ProduceAssignments = 93, PK_ProduceModels = 94, + PK_ProduceProofs = 95, PK_ProduceUnsatAssumptions = 96, PK_ProduceUnsatCores = 97, + PK_RandomSeed = 98, PK_ReasonUnknown = 99, PK_RegularOutputChannel = 100, + PK_ReproducibleResourceLimit = 101, PK_RightAssoc = 102, PK_SmtLibVersion = 103, + PK_Sorts = 104, PK_SortsDescription = 105, PK_Source = 106, PK_Status = 107, + PK_Theories = 108, PK_Values = 109, PK_Verbosity = 110, PK_Version = 111, + UndefinedSymbol = 112, WS = 113 + }; + + enum { + RuleStart = 0, RuleResponse = 1, RuleGeneralReservedWord = 2, RuleSimpleSymbol = 3, + RuleQuotedSymbol = 4, RulePredefSymbol = 5, RulePredefKeyword = 6, RuleSymbol = 7, + RuleNumeral = 8, RuleDecimal = 9, RuleHexadecimal = 10, RuleBinary = 11, + RuleString = 12, RuleKeyword = 13, RuleSpec_constant = 14, RuleS_expr = 15, + RuleIndex = 16, RuleIdentifier = 17, RuleAttribute_value = 18, RuleAttribute = 19, + RuleSort = 20, RuleQual_identifer = 21, RuleVar_binding = 22, RuleSorted_var = 23, + RulePattern = 24, RuleMatch_case = 25, RuleTerm = 26, RuleSort_symbol_decl = 27, + RuleMeta_spec_constant = 28, RuleFun_symbol_decl = 29, RulePar_fun_symbol_decl = 30, + RuleTheory_attribute = 31, RuleTheory_decl = 32, RuleLogic_attribue = 33, + RuleLogic = 34, RuleSort_dec = 35, RuleSelector_dec = 36, RuleConstructor_dec = 37, + RuleDatatype_dec = 38, RuleFunction_dec = 39, RuleFunction_def = 40, + RuleProp_literal = 41, RuleScript = 42, RuleCmd_assert = 43, RuleCmd_checkSat = 44, + RuleCmd_checkSatAssuming = 45, RuleCmd_declareConst = 46, RuleCmd_declareDatatype = 47, + RuleCmd_declareDatatypes = 48, RuleCmd_declareFun = 49, RuleCmd_declareSort = 50, + RuleCmd_defineFun = 51, RuleCmd_defineFunRec = 52, RuleCmd_defineFunsRec = 53, + RuleCmd_defineSort = 54, RuleCmd_echo = 55, RuleCmd_exit = 56, RuleCmd_getAssertions = 57, + RuleCmd_getAssignment = 58, RuleCmd_getInfo = 59, RuleCmd_getModel = 60, + RuleCmd_getOption = 61, RuleCmd_getProof = 62, RuleCmd_getUnsatAssumptions = 63, + RuleCmd_getUnsatCore = 64, RuleCmd_getValue = 65, RuleCmd_pop = 66, + RuleCmd_push = 67, RuleCmd_reset = 68, RuleCmd_resetAssertions = 69, + RuleCmd_setInfo = 70, RuleCmd_setLogic = 71, RuleCmd_setOption = 72, + RuleCommand = 73, RuleB_value = 74, RuleOption = 75, RuleInfo_flag = 76, + RuleError_behaviour = 77, RuleReason_unknown = 78, RuleModel_response = 79, + RuleInfo_response = 80, RuleValuation_pair = 81, RuleT_valuation_pair = 82, + RuleCheck_sat_response = 83, RuleEcho_response = 84, RuleGet_assertions_response = 85, + RuleGet_assignment_response = 86, RuleGet_info_response = 87, RuleGet_model_response = 88, + RuleGet_option_response = 89, RuleGet_proof_response = 90, RuleGet_unsat_assump_response = 91, + RuleGet_unsat_core_response = 92, RuleGet_value_response = 93, RuleSpecific_success_response = 94, + RuleGeneral_response = 95 + }; + + SMTLIBv2Parser(antlr4::TokenStream *input); + ~SMTLIBv2Parser(); + + virtual std::string getGrammarFileName() const override; + virtual const antlr4::atn::ATN& getATN() const override { return _atn; }; + virtual const std::vector& getTokenNames() const override { return _tokenNames; }; // deprecated: use vocabulary instead. + virtual const std::vector& getRuleNames() const override; + virtual antlr4::dfa::Vocabulary& getVocabulary() const override; + + + class StartContext; + class ResponseContext; + class GeneralReservedWordContext; + class SimpleSymbolContext; + class QuotedSymbolContext; + class PredefSymbolContext; + class PredefKeywordContext; + class SymbolContext; + class NumeralContext; + class DecimalContext; + class HexadecimalContext; + class BinaryContext; + class StringContext; + class KeywordContext; + class Spec_constantContext; + class S_exprContext; + class IndexContext; + class IdentifierContext; + class Attribute_valueContext; + class AttributeContext; + class SortContext; + class Qual_identiferContext; + class Var_bindingContext; + class Sorted_varContext; + class PatternContext; + class Match_caseContext; + class TermContext; + class Sort_symbol_declContext; + class Meta_spec_constantContext; + class Fun_symbol_declContext; + class Par_fun_symbol_declContext; + class Theory_attributeContext; + class Theory_declContext; + class Logic_attribueContext; + class LogicContext; + class Sort_decContext; + class Selector_decContext; + class Constructor_decContext; + class Datatype_decContext; + class Function_decContext; + class Function_defContext; + class Prop_literalContext; + class ScriptContext; + class Cmd_assertContext; + class Cmd_checkSatContext; + class Cmd_checkSatAssumingContext; + class Cmd_declareConstContext; + class Cmd_declareDatatypeContext; + class Cmd_declareDatatypesContext; + class Cmd_declareFunContext; + class Cmd_declareSortContext; + class Cmd_defineFunContext; + class Cmd_defineFunRecContext; + class Cmd_defineFunsRecContext; + class Cmd_defineSortContext; + class Cmd_echoContext; + class Cmd_exitContext; + class Cmd_getAssertionsContext; + class Cmd_getAssignmentContext; + class Cmd_getInfoContext; + class Cmd_getModelContext; + class Cmd_getOptionContext; + class Cmd_getProofContext; + class Cmd_getUnsatAssumptionsContext; + class Cmd_getUnsatCoreContext; + class Cmd_getValueContext; + class Cmd_popContext; + class Cmd_pushContext; + class Cmd_resetContext; + class Cmd_resetAssertionsContext; + class Cmd_setInfoContext; + class Cmd_setLogicContext; + class Cmd_setOptionContext; + class CommandContext; + class B_valueContext; + class OptionContext; + class Info_flagContext; + class Error_behaviourContext; + class Reason_unknownContext; + class Model_responseContext; + class Info_responseContext; + class Valuation_pairContext; + class T_valuation_pairContext; + class Check_sat_responseContext; + class Echo_responseContext; + class Get_assertions_responseContext; + class Get_assignment_responseContext; + class Get_info_responseContext; + class Get_model_responseContext; + class Get_option_responseContext; + class Get_proof_responseContext; + class Get_unsat_assump_responseContext; + class Get_unsat_core_responseContext; + class Get_value_responseContext; + class Specific_success_responseContext; + class General_responseContext; + + class StartContext : public antlr4::ParserRuleContext { + public: + StartContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + ScriptContext *script(); + antlr4::tree::TerminalNode *EOF(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + StartContext* start(); + + class ResponseContext : public antlr4::ParserRuleContext { + public: + ResponseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + General_responseContext *general_response(); + antlr4::tree::TerminalNode *EOF(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + ResponseContext* response(); + + class GeneralReservedWordContext : public antlr4::ParserRuleContext { + public: + GeneralReservedWordContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *GRW_Exclamation(); + antlr4::tree::TerminalNode *GRW_Underscore(); + antlr4::tree::TerminalNode *GRW_As(); + antlr4::tree::TerminalNode *GRW_Binary(); + antlr4::tree::TerminalNode *GRW_Decimal(); + antlr4::tree::TerminalNode *GRW_Exists(); + antlr4::tree::TerminalNode *GRW_Hexadecimal(); + antlr4::tree::TerminalNode *GRW_Forall(); + antlr4::tree::TerminalNode *GRW_Let(); + antlr4::tree::TerminalNode *GRW_Match(); + antlr4::tree::TerminalNode *GRW_Numeral(); + antlr4::tree::TerminalNode *GRW_Par(); + antlr4::tree::TerminalNode *GRW_String(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + GeneralReservedWordContext* generalReservedWord(); + + class SimpleSymbolContext : public antlr4::ParserRuleContext { + public: + SimpleSymbolContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + PredefSymbolContext *predefSymbol(); + antlr4::tree::TerminalNode *UndefinedSymbol(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + SimpleSymbolContext* simpleSymbol(); + + class QuotedSymbolContext : public antlr4::ParserRuleContext { + public: + QuotedSymbolContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *QuotedSymbol(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + QuotedSymbolContext* quotedSymbol(); + + class PredefSymbolContext : public antlr4::ParserRuleContext { + public: + PredefSymbolContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *PS_Not(); + antlr4::tree::TerminalNode *PS_Bool(); + antlr4::tree::TerminalNode *PS_ContinuedExecution(); + antlr4::tree::TerminalNode *PS_Error(); + antlr4::tree::TerminalNode *PS_False(); + antlr4::tree::TerminalNode *PS_ImmediateExit(); + antlr4::tree::TerminalNode *PS_Incomplete(); + antlr4::tree::TerminalNode *PS_Logic(); + antlr4::tree::TerminalNode *PS_Memout(); + antlr4::tree::TerminalNode *PS_Sat(); + antlr4::tree::TerminalNode *PS_Success(); + antlr4::tree::TerminalNode *PS_Theory(); + antlr4::tree::TerminalNode *PS_True(); + antlr4::tree::TerminalNode *PS_Unknown(); + antlr4::tree::TerminalNode *PS_Unsupported(); + antlr4::tree::TerminalNode *PS_Unsat(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + PredefSymbolContext* predefSymbol(); + + class PredefKeywordContext : public antlr4::ParserRuleContext { + public: + PredefKeywordContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *PK_AllStatistics(); + antlr4::tree::TerminalNode *PK_AssertionStackLevels(); + antlr4::tree::TerminalNode *PK_Authors(); + antlr4::tree::TerminalNode *PK_Category(); + antlr4::tree::TerminalNode *PK_Chainable(); + antlr4::tree::TerminalNode *PK_Definition(); + antlr4::tree::TerminalNode *PK_DiagnosticOutputChannel(); + antlr4::tree::TerminalNode *PK_ErrorBehaviour(); + antlr4::tree::TerminalNode *PK_Extension(); + antlr4::tree::TerminalNode *PK_Funs(); + antlr4::tree::TerminalNode *PK_FunsDescription(); + antlr4::tree::TerminalNode *PK_GlobalDeclarations(); + antlr4::tree::TerminalNode *PK_InteractiveMode(); + antlr4::tree::TerminalNode *PK_Language(); + antlr4::tree::TerminalNode *PK_LeftAssoc(); + antlr4::tree::TerminalNode *PK_License(); + antlr4::tree::TerminalNode *PK_Named(); + antlr4::tree::TerminalNode *PK_Name(); + antlr4::tree::TerminalNode *PK_Notes(); + antlr4::tree::TerminalNode *PK_Pattern(); + antlr4::tree::TerminalNode *PK_PrintSuccess(); + antlr4::tree::TerminalNode *PK_ProduceAssertions(); + antlr4::tree::TerminalNode *PK_ProduceAssignments(); + antlr4::tree::TerminalNode *PK_ProduceModels(); + antlr4::tree::TerminalNode *PK_ProduceProofs(); + antlr4::tree::TerminalNode *PK_ProduceUnsatAssumptions(); + antlr4::tree::TerminalNode *PK_ProduceUnsatCores(); + antlr4::tree::TerminalNode *PK_RandomSeed(); + antlr4::tree::TerminalNode *PK_ReasonUnknown(); + antlr4::tree::TerminalNode *PK_RegularOutputChannel(); + antlr4::tree::TerminalNode *PK_ReproducibleResourceLimit(); + antlr4::tree::TerminalNode *PK_RightAssoc(); + antlr4::tree::TerminalNode *PK_SmtLibVersion(); + antlr4::tree::TerminalNode *PK_Sorts(); + antlr4::tree::TerminalNode *PK_SortsDescription(); + antlr4::tree::TerminalNode *PK_Source(); + antlr4::tree::TerminalNode *PK_Status(); + antlr4::tree::TerminalNode *PK_Theories(); + antlr4::tree::TerminalNode *PK_Values(); + antlr4::tree::TerminalNode *PK_Verbosity(); + antlr4::tree::TerminalNode *PK_Version(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + PredefKeywordContext* predefKeyword(); + + class SymbolContext : public antlr4::ParserRuleContext { + public: + SymbolContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + SimpleSymbolContext *simpleSymbol(); + QuotedSymbolContext *quotedSymbol(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + SymbolContext* symbol(); + + class NumeralContext : public antlr4::ParserRuleContext { + public: + NumeralContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *Numeral(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + NumeralContext* numeral(); + + class DecimalContext : public antlr4::ParserRuleContext { + public: + DecimalContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *Decimal(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + DecimalContext* decimal(); + + class HexadecimalContext : public antlr4::ParserRuleContext { + public: + HexadecimalContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *HexDecimal(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + HexadecimalContext* hexadecimal(); + + class BinaryContext : public antlr4::ParserRuleContext { + public: + BinaryContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *Binary(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + BinaryContext* binary(); + + class StringContext : public antlr4::ParserRuleContext { + public: + StringContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *String(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + StringContext* string(); + + class KeywordContext : public antlr4::ParserRuleContext { + public: + KeywordContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + PredefKeywordContext *predefKeyword(); + antlr4::tree::TerminalNode *Colon(); + SimpleSymbolContext *simpleSymbol(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + KeywordContext* keyword(); + + class Spec_constantContext : public antlr4::ParserRuleContext { + public: + Spec_constantContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + NumeralContext *numeral(); + DecimalContext *decimal(); + HexadecimalContext *hexadecimal(); + BinaryContext *binary(); + StringContext *string(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Spec_constantContext* spec_constant(); + + class S_exprContext : public antlr4::ParserRuleContext { + public: + S_exprContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + Spec_constantContext *spec_constant(); + SymbolContext *symbol(); + KeywordContext *keyword(); + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *ParClose(); + std::vector s_expr(); + S_exprContext* s_expr(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + S_exprContext* s_expr(); + + class IndexContext : public antlr4::ParserRuleContext { + public: + IndexContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + NumeralContext *numeral(); + SymbolContext *symbol(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + IndexContext* index(); + + class IdentifierContext : public antlr4::ParserRuleContext { + public: + IdentifierContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + SymbolContext *symbol(); + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *GRW_Underscore(); + antlr4::tree::TerminalNode *ParClose(); + std::vector index(); + IndexContext* index(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + IdentifierContext* identifier(); + + class Attribute_valueContext : public antlr4::ParserRuleContext { + public: + Attribute_valueContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + Spec_constantContext *spec_constant(); + SymbolContext *symbol(); + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *ParClose(); + std::vector s_expr(); + S_exprContext* s_expr(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Attribute_valueContext* attribute_value(); + + class AttributeContext : public antlr4::ParserRuleContext { + public: + AttributeContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + KeywordContext *keyword(); + Attribute_valueContext *attribute_value(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + AttributeContext* attribute(); + + class SortContext : public antlr4::ParserRuleContext { + public: + SortContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + IdentifierContext *identifier(); + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *ParClose(); + std::vector sort(); + SortContext* sort(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + SortContext* sort(); + + class Qual_identiferContext : public antlr4::ParserRuleContext { + public: + Qual_identiferContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + IdentifierContext *identifier(); + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *GRW_As(); + SortContext *sort(); + antlr4::tree::TerminalNode *ParClose(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Qual_identiferContext* qual_identifer(); + + class Var_bindingContext : public antlr4::ParserRuleContext { + public: + Var_bindingContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + SymbolContext *symbol(); + TermContext *term(); + antlr4::tree::TerminalNode *ParClose(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Var_bindingContext* var_binding(); + + class Sorted_varContext : public antlr4::ParserRuleContext { + public: + Sorted_varContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + SymbolContext *symbol(); + SortContext *sort(); + antlr4::tree::TerminalNode *ParClose(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Sorted_varContext* sorted_var(); + + class PatternContext : public antlr4::ParserRuleContext { + public: + PatternContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + std::vector symbol(); + SymbolContext* symbol(size_t i); + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *ParClose(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + PatternContext* pattern(); + + class Match_caseContext : public antlr4::ParserRuleContext { + public: + Match_caseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + PatternContext *pattern(); + TermContext *term(); + antlr4::tree::TerminalNode *ParClose(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Match_caseContext* match_case(); + + class TermContext : public antlr4::ParserRuleContext { + public: + TermContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + Spec_constantContext *spec_constant(); + Qual_identiferContext *qual_identifer(); + std::vector ParOpen(); + antlr4::tree::TerminalNode* ParOpen(size_t i); + std::vector ParClose(); + antlr4::tree::TerminalNode* ParClose(size_t i); + std::vector term(); + TermContext* term(size_t i); + antlr4::tree::TerminalNode *GRW_Let(); + std::vector var_binding(); + Var_bindingContext* var_binding(size_t i); + antlr4::tree::TerminalNode *GRW_Forall(); + std::vector sorted_var(); + Sorted_varContext* sorted_var(size_t i); + antlr4::tree::TerminalNode *GRW_Exists(); + antlr4::tree::TerminalNode *GRW_Match(); + std::vector match_case(); + Match_caseContext* match_case(size_t i); + antlr4::tree::TerminalNode *GRW_Exclamation(); + std::vector attribute(); + AttributeContext* attribute(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + TermContext* term(); + + class Sort_symbol_declContext : public antlr4::ParserRuleContext { + public: + Sort_symbol_declContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + IdentifierContext *identifier(); + NumeralContext *numeral(); + antlr4::tree::TerminalNode *ParClose(); + std::vector attribute(); + AttributeContext* attribute(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Sort_symbol_declContext* sort_symbol_decl(); + + class Meta_spec_constantContext : public antlr4::ParserRuleContext { + public: + Meta_spec_constantContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *GRW_Numeral(); + antlr4::tree::TerminalNode *GRW_Decimal(); + antlr4::tree::TerminalNode *GRW_String(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Meta_spec_constantContext* meta_spec_constant(); + + class Fun_symbol_declContext : public antlr4::ParserRuleContext { + public: + Fun_symbol_declContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + Spec_constantContext *spec_constant(); + std::vector sort(); + SortContext* sort(size_t i); + antlr4::tree::TerminalNode *ParClose(); + std::vector attribute(); + AttributeContext* attribute(size_t i); + Meta_spec_constantContext *meta_spec_constant(); + IdentifierContext *identifier(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Fun_symbol_declContext* fun_symbol_decl(); + + class Par_fun_symbol_declContext : public antlr4::ParserRuleContext { + public: + Par_fun_symbol_declContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + Fun_symbol_declContext *fun_symbol_decl(); + std::vector ParOpen(); + antlr4::tree::TerminalNode* ParOpen(size_t i); + antlr4::tree::TerminalNode *GRW_Par(); + std::vector ParClose(); + antlr4::tree::TerminalNode* ParClose(size_t i); + IdentifierContext *identifier(); + std::vector symbol(); + SymbolContext* symbol(size_t i); + std::vector sort(); + SortContext* sort(size_t i); + std::vector attribute(); + AttributeContext* attribute(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Par_fun_symbol_declContext* par_fun_symbol_decl(); + + class Theory_attributeContext : public antlr4::ParserRuleContext { + public: + Theory_attributeContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *PK_Sorts(); + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *ParClose(); + std::vector sort_symbol_decl(); + Sort_symbol_declContext* sort_symbol_decl(size_t i); + antlr4::tree::TerminalNode *PK_Funs(); + std::vector par_fun_symbol_decl(); + Par_fun_symbol_declContext* par_fun_symbol_decl(size_t i); + antlr4::tree::TerminalNode *PK_SortsDescription(); + StringContext *string(); + antlr4::tree::TerminalNode *PK_FunsDescription(); + antlr4::tree::TerminalNode *PK_Definition(); + antlr4::tree::TerminalNode *PK_Values(); + antlr4::tree::TerminalNode *PK_Notes(); + AttributeContext *attribute(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Theory_attributeContext* theory_attribute(); + + class Theory_declContext : public antlr4::ParserRuleContext { + public: + Theory_declContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *PS_Theory(); + SymbolContext *symbol(); + antlr4::tree::TerminalNode *ParClose(); + std::vector theory_attribute(); + Theory_attributeContext* theory_attribute(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Theory_declContext* theory_decl(); + + class Logic_attribueContext : public antlr4::ParserRuleContext { + public: + Logic_attribueContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *PK_Theories(); + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *ParClose(); + std::vector symbol(); + SymbolContext* symbol(size_t i); + antlr4::tree::TerminalNode *PK_Language(); + StringContext *string(); + antlr4::tree::TerminalNode *PK_Extension(); + antlr4::tree::TerminalNode *PK_Values(); + antlr4::tree::TerminalNode *PK_Notes(); + AttributeContext *attribute(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Logic_attribueContext* logic_attribue(); + + class LogicContext : public antlr4::ParserRuleContext { + public: + LogicContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *PS_Logic(); + SymbolContext *symbol(); + antlr4::tree::TerminalNode *ParClose(); + std::vector logic_attribue(); + Logic_attribueContext* logic_attribue(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + LogicContext* logic(); + + class Sort_decContext : public antlr4::ParserRuleContext { + public: + Sort_decContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + SymbolContext *symbol(); + NumeralContext *numeral(); + antlr4::tree::TerminalNode *ParClose(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Sort_decContext* sort_dec(); + + class Selector_decContext : public antlr4::ParserRuleContext { + public: + Selector_decContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + SymbolContext *symbol(); + SortContext *sort(); + antlr4::tree::TerminalNode *ParClose(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Selector_decContext* selector_dec(); + + class Constructor_decContext : public antlr4::ParserRuleContext { + public: + Constructor_decContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + SymbolContext *symbol(); + antlr4::tree::TerminalNode *ParClose(); + std::vector selector_dec(); + Selector_decContext* selector_dec(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Constructor_decContext* constructor_dec(); + + class Datatype_decContext : public antlr4::ParserRuleContext { + public: + Datatype_decContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + std::vector ParOpen(); + antlr4::tree::TerminalNode* ParOpen(size_t i); + std::vector ParClose(); + antlr4::tree::TerminalNode* ParClose(size_t i); + std::vector constructor_dec(); + Constructor_decContext* constructor_dec(size_t i); + antlr4::tree::TerminalNode *GRW_Par(); + std::vector symbol(); + SymbolContext* symbol(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Datatype_decContext* datatype_dec(); + + class Function_decContext : public antlr4::ParserRuleContext { + public: + Function_decContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + std::vector ParOpen(); + antlr4::tree::TerminalNode* ParOpen(size_t i); + SymbolContext *symbol(); + std::vector ParClose(); + antlr4::tree::TerminalNode* ParClose(size_t i); + SortContext *sort(); + std::vector sorted_var(); + Sorted_varContext* sorted_var(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Function_decContext* function_dec(); + + class Function_defContext : public antlr4::ParserRuleContext { + public: + Function_defContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + SymbolContext *symbol(); + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *ParClose(); + SortContext *sort(); + TermContext *term(); + std::vector sorted_var(); + Sorted_varContext* sorted_var(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Function_defContext* function_def(); + + class Prop_literalContext : public antlr4::ParserRuleContext { + public: + Prop_literalContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + SymbolContext *symbol(); + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *PS_Not(); + antlr4::tree::TerminalNode *ParClose(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Prop_literalContext* prop_literal(); + + class ScriptContext : public antlr4::ParserRuleContext { + public: + ScriptContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + std::vector command(); + CommandContext* command(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + ScriptContext* script(); + + class Cmd_assertContext : public antlr4::ParserRuleContext { + public: + Cmd_assertContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_Assert(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_assertContext* cmd_assert(); + + class Cmd_checkSatContext : public antlr4::ParserRuleContext { + public: + Cmd_checkSatContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_CheckSat(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_checkSatContext* cmd_checkSat(); + + class Cmd_checkSatAssumingContext : public antlr4::ParserRuleContext { + public: + Cmd_checkSatAssumingContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_CheckSatAssuming(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_checkSatAssumingContext* cmd_checkSatAssuming(); + + class Cmd_declareConstContext : public antlr4::ParserRuleContext { + public: + Cmd_declareConstContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_DeclareConst(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_declareConstContext* cmd_declareConst(); + + class Cmd_declareDatatypeContext : public antlr4::ParserRuleContext { + public: + Cmd_declareDatatypeContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_DeclareDatatype(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_declareDatatypeContext* cmd_declareDatatype(); + + class Cmd_declareDatatypesContext : public antlr4::ParserRuleContext { + public: + Cmd_declareDatatypesContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_DeclareDatatypes(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_declareDatatypesContext* cmd_declareDatatypes(); + + class Cmd_declareFunContext : public antlr4::ParserRuleContext { + public: + Cmd_declareFunContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_DeclareFun(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_declareFunContext* cmd_declareFun(); + + class Cmd_declareSortContext : public antlr4::ParserRuleContext { + public: + Cmd_declareSortContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_DeclareSort(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_declareSortContext* cmd_declareSort(); + + class Cmd_defineFunContext : public antlr4::ParserRuleContext { + public: + Cmd_defineFunContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_DefineFun(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_defineFunContext* cmd_defineFun(); + + class Cmd_defineFunRecContext : public antlr4::ParserRuleContext { + public: + Cmd_defineFunRecContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_DefineFunRec(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_defineFunRecContext* cmd_defineFunRec(); + + class Cmd_defineFunsRecContext : public antlr4::ParserRuleContext { + public: + Cmd_defineFunsRecContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_DefineFunsRec(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_defineFunsRecContext* cmd_defineFunsRec(); + + class Cmd_defineSortContext : public antlr4::ParserRuleContext { + public: + Cmd_defineSortContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_DefineSort(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_defineSortContext* cmd_defineSort(); + + class Cmd_echoContext : public antlr4::ParserRuleContext { + public: + Cmd_echoContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_Echo(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_echoContext* cmd_echo(); + + class Cmd_exitContext : public antlr4::ParserRuleContext { + public: + Cmd_exitContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_Exit(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_exitContext* cmd_exit(); + + class Cmd_getAssertionsContext : public antlr4::ParserRuleContext { + public: + Cmd_getAssertionsContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_GetAssertions(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_getAssertionsContext* cmd_getAssertions(); + + class Cmd_getAssignmentContext : public antlr4::ParserRuleContext { + public: + Cmd_getAssignmentContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_GetAssignment(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_getAssignmentContext* cmd_getAssignment(); + + class Cmd_getInfoContext : public antlr4::ParserRuleContext { + public: + Cmd_getInfoContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_GetInfo(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_getInfoContext* cmd_getInfo(); + + class Cmd_getModelContext : public antlr4::ParserRuleContext { + public: + Cmd_getModelContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_GetModel(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_getModelContext* cmd_getModel(); + + class Cmd_getOptionContext : public antlr4::ParserRuleContext { + public: + Cmd_getOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_GetOption(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_getOptionContext* cmd_getOption(); + + class Cmd_getProofContext : public antlr4::ParserRuleContext { + public: + Cmd_getProofContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_GetProof(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_getProofContext* cmd_getProof(); + + class Cmd_getUnsatAssumptionsContext : public antlr4::ParserRuleContext { + public: + Cmd_getUnsatAssumptionsContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_GetUnsatAssumptions(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_getUnsatAssumptionsContext* cmd_getUnsatAssumptions(); + + class Cmd_getUnsatCoreContext : public antlr4::ParserRuleContext { + public: + Cmd_getUnsatCoreContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_GetUnsatCore(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_getUnsatCoreContext* cmd_getUnsatCore(); + + class Cmd_getValueContext : public antlr4::ParserRuleContext { + public: + Cmd_getValueContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_GetValue(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_getValueContext* cmd_getValue(); + + class Cmd_popContext : public antlr4::ParserRuleContext { + public: + Cmd_popContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_Pop(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_popContext* cmd_pop(); + + class Cmd_pushContext : public antlr4::ParserRuleContext { + public: + Cmd_pushContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_Push(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_pushContext* cmd_push(); + + class Cmd_resetContext : public antlr4::ParserRuleContext { + public: + Cmd_resetContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_Reset(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_resetContext* cmd_reset(); + + class Cmd_resetAssertionsContext : public antlr4::ParserRuleContext { + public: + Cmd_resetAssertionsContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_ResetAssertions(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_resetAssertionsContext* cmd_resetAssertions(); + + class Cmd_setInfoContext : public antlr4::ParserRuleContext { + public: + Cmd_setInfoContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_SetInfo(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_setInfoContext* cmd_setInfo(); + + class Cmd_setLogicContext : public antlr4::ParserRuleContext { + public: + Cmd_setLogicContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_SetLogic(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_setLogicContext* cmd_setLogic(); + + class Cmd_setOptionContext : public antlr4::ParserRuleContext { + public: + Cmd_setOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *CMD_SetOption(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Cmd_setOptionContext* cmd_setOption(); + + class CommandContext : public antlr4::ParserRuleContext { + public: + CommandContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + std::vector ParOpen(); + antlr4::tree::TerminalNode* ParOpen(size_t i); + Cmd_assertContext *cmd_assert(); + std::vector term(); + TermContext* term(size_t i); + std::vector ParClose(); + antlr4::tree::TerminalNode* ParClose(size_t i); + Cmd_checkSatContext *cmd_checkSat(); + Cmd_checkSatAssumingContext *cmd_checkSatAssuming(); + Cmd_declareConstContext *cmd_declareConst(); + std::vector symbol(); + SymbolContext* symbol(size_t i); + std::vector sort(); + SortContext* sort(size_t i); + Cmd_declareDatatypeContext *cmd_declareDatatype(); + std::vector datatype_dec(); + Datatype_decContext* datatype_dec(size_t i); + Cmd_declareDatatypesContext *cmd_declareDatatypes(); + std::vector sort_dec(); + Sort_decContext* sort_dec(size_t i); + Cmd_declareFunContext *cmd_declareFun(); + Cmd_declareSortContext *cmd_declareSort(); + NumeralContext *numeral(); + Cmd_defineFunContext *cmd_defineFun(); + Function_defContext *function_def(); + Cmd_defineFunRecContext *cmd_defineFunRec(); + Cmd_defineFunsRecContext *cmd_defineFunsRec(); + std::vector function_dec(); + Function_decContext* function_dec(size_t i); + Cmd_defineSortContext *cmd_defineSort(); + Cmd_echoContext *cmd_echo(); + StringContext *string(); + Cmd_exitContext *cmd_exit(); + Cmd_getAssertionsContext *cmd_getAssertions(); + Cmd_getAssignmentContext *cmd_getAssignment(); + Cmd_getInfoContext *cmd_getInfo(); + Info_flagContext *info_flag(); + Cmd_getModelContext *cmd_getModel(); + Cmd_getOptionContext *cmd_getOption(); + KeywordContext *keyword(); + Cmd_getProofContext *cmd_getProof(); + Cmd_getUnsatAssumptionsContext *cmd_getUnsatAssumptions(); + Cmd_getUnsatCoreContext *cmd_getUnsatCore(); + Cmd_getValueContext *cmd_getValue(); + Cmd_popContext *cmd_pop(); + Cmd_pushContext *cmd_push(); + Cmd_resetContext *cmd_reset(); + Cmd_resetAssertionsContext *cmd_resetAssertions(); + Cmd_setInfoContext *cmd_setInfo(); + AttributeContext *attribute(); + Cmd_setLogicContext *cmd_setLogic(); + Cmd_setOptionContext *cmd_setOption(); + OptionContext *option(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + CommandContext* command(); + + class B_valueContext : public antlr4::ParserRuleContext { + public: + B_valueContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *PS_True(); + antlr4::tree::TerminalNode *PS_False(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + B_valueContext* b_value(); + + class OptionContext : public antlr4::ParserRuleContext { + public: + OptionContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *PK_DiagnosticOutputChannel(); + StringContext *string(); + antlr4::tree::TerminalNode *PK_GlobalDeclarations(); + B_valueContext *b_value(); + antlr4::tree::TerminalNode *PK_InteractiveMode(); + antlr4::tree::TerminalNode *PK_PrintSuccess(); + antlr4::tree::TerminalNode *PK_ProduceAssertions(); + antlr4::tree::TerminalNode *PK_ProduceAssignments(); + antlr4::tree::TerminalNode *PK_ProduceModels(); + antlr4::tree::TerminalNode *PK_ProduceProofs(); + antlr4::tree::TerminalNode *PK_ProduceUnsatAssumptions(); + antlr4::tree::TerminalNode *PK_ProduceUnsatCores(); + antlr4::tree::TerminalNode *PK_RandomSeed(); + NumeralContext *numeral(); + antlr4::tree::TerminalNode *PK_RegularOutputChannel(); + antlr4::tree::TerminalNode *PK_ReproducibleResourceLimit(); + antlr4::tree::TerminalNode *PK_Verbosity(); + AttributeContext *attribute(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + OptionContext* option(); + + class Info_flagContext : public antlr4::ParserRuleContext { + public: + Info_flagContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *PK_AllStatistics(); + antlr4::tree::TerminalNode *PK_AssertionStackLevels(); + antlr4::tree::TerminalNode *PK_Authors(); + antlr4::tree::TerminalNode *PK_ErrorBehaviour(); + antlr4::tree::TerminalNode *PK_Name(); + antlr4::tree::TerminalNode *PK_ReasonUnknown(); + antlr4::tree::TerminalNode *PK_Version(); + KeywordContext *keyword(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Info_flagContext* info_flag(); + + class Error_behaviourContext : public antlr4::ParserRuleContext { + public: + Error_behaviourContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *PS_ImmediateExit(); + antlr4::tree::TerminalNode *PS_ContinuedExecution(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Error_behaviourContext* error_behaviour(); + + class Reason_unknownContext : public antlr4::ParserRuleContext { + public: + Reason_unknownContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *PS_Memout(); + antlr4::tree::TerminalNode *PS_Incomplete(); + S_exprContext *s_expr(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Reason_unknownContext* reason_unknown(); + + class Model_responseContext : public antlr4::ParserRuleContext { + public: + Model_responseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + std::vector ParOpen(); + antlr4::tree::TerminalNode* ParOpen(size_t i); + antlr4::tree::TerminalNode *CMD_DefineFun(); + Function_defContext *function_def(); + std::vector ParClose(); + antlr4::tree::TerminalNode* ParClose(size_t i); + antlr4::tree::TerminalNode *CMD_DefineFunRec(); + antlr4::tree::TerminalNode *CMD_DefineFunsRec(); + std::vector function_dec(); + Function_decContext* function_dec(size_t i); + std::vector term(); + TermContext* term(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Model_responseContext* model_response(); + + class Info_responseContext : public antlr4::ParserRuleContext { + public: + Info_responseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *PK_AssertionStackLevels(); + NumeralContext *numeral(); + antlr4::tree::TerminalNode *PK_Authors(); + StringContext *string(); + antlr4::tree::TerminalNode *PK_ErrorBehaviour(); + Error_behaviourContext *error_behaviour(); + antlr4::tree::TerminalNode *PK_Name(); + antlr4::tree::TerminalNode *PK_ReasonUnknown(); + Reason_unknownContext *reason_unknown(); + antlr4::tree::TerminalNode *PK_Version(); + AttributeContext *attribute(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Info_responseContext* info_response(); + + class Valuation_pairContext : public antlr4::ParserRuleContext { + public: + Valuation_pairContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + std::vector term(); + TermContext* term(size_t i); + antlr4::tree::TerminalNode *ParClose(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Valuation_pairContext* valuation_pair(); + + class T_valuation_pairContext : public antlr4::ParserRuleContext { + public: + T_valuation_pairContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + SymbolContext *symbol(); + B_valueContext *b_value(); + antlr4::tree::TerminalNode *ParClose(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + T_valuation_pairContext* t_valuation_pair(); + + class Check_sat_responseContext : public antlr4::ParserRuleContext { + public: + Check_sat_responseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *PS_Sat(); + antlr4::tree::TerminalNode *PS_Unsat(); + antlr4::tree::TerminalNode *PS_Unknown(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Check_sat_responseContext* check_sat_response(); + + class Echo_responseContext : public antlr4::ParserRuleContext { + public: + Echo_responseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + StringContext *string(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Echo_responseContext* echo_response(); + + class Get_assertions_responseContext : public antlr4::ParserRuleContext { + public: + Get_assertions_responseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *ParClose(); + std::vector term(); + TermContext* term(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Get_assertions_responseContext* get_assertions_response(); + + class Get_assignment_responseContext : public antlr4::ParserRuleContext { + public: + Get_assignment_responseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *ParClose(); + std::vector t_valuation_pair(); + T_valuation_pairContext* t_valuation_pair(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Get_assignment_responseContext* get_assignment_response(); + + class Get_info_responseContext : public antlr4::ParserRuleContext { + public: + Get_info_responseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *ParClose(); + std::vector info_response(); + Info_responseContext* info_response(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Get_info_responseContext* get_info_response(); + + class Get_model_responseContext : public antlr4::ParserRuleContext { + public: + Get_model_responseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *ParClose(); + std::vector model_response(); + Model_responseContext* model_response(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Get_model_responseContext* get_model_response(); + + class Get_option_responseContext : public antlr4::ParserRuleContext { + public: + Get_option_responseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + Attribute_valueContext *attribute_value(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Get_option_responseContext* get_option_response(); + + class Get_proof_responseContext : public antlr4::ParserRuleContext { + public: + Get_proof_responseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + S_exprContext *s_expr(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Get_proof_responseContext* get_proof_response(); + + class Get_unsat_assump_responseContext : public antlr4::ParserRuleContext { + public: + Get_unsat_assump_responseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *ParClose(); + std::vector symbol(); + SymbolContext* symbol(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Get_unsat_assump_responseContext* get_unsat_assump_response(); + + class Get_unsat_core_responseContext : public antlr4::ParserRuleContext { + public: + Get_unsat_core_responseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *ParClose(); + std::vector symbol(); + SymbolContext* symbol(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Get_unsat_core_responseContext* get_unsat_core_response(); + + class Get_value_responseContext : public antlr4::ParserRuleContext { + public: + Get_value_responseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *ParClose(); + std::vector valuation_pair(); + Valuation_pairContext* valuation_pair(size_t i); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Get_value_responseContext* get_value_response(); + + class Specific_success_responseContext : public antlr4::ParserRuleContext { + public: + Specific_success_responseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + Check_sat_responseContext *check_sat_response(); + Echo_responseContext *echo_response(); + Get_assertions_responseContext *get_assertions_response(); + Get_assignment_responseContext *get_assignment_response(); + Get_info_responseContext *get_info_response(); + Get_model_responseContext *get_model_response(); + Get_option_responseContext *get_option_response(); + Get_proof_responseContext *get_proof_response(); + Get_unsat_assump_responseContext *get_unsat_assump_response(); + Get_unsat_core_responseContext *get_unsat_core_response(); + Get_value_responseContext *get_value_response(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + Specific_success_responseContext* specific_success_response(); + + class General_responseContext : public antlr4::ParserRuleContext { + public: + General_responseContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *PS_Success(); + Specific_success_responseContext *specific_success_response(); + antlr4::tree::TerminalNode *PS_Unsupported(); + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *PS_Error(); + StringContext *string(); + antlr4::tree::TerminalNode *ParClose(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + General_responseContext* general_response(); + + +private: + static std::vector _decisionToDFA; + static antlr4::atn::PredictionContextCache _sharedContextCache; + static std::vector _ruleNames; + static std::vector _tokenNames; + + static std::vector _literalNames; + static std::vector _symbolicNames; + static antlr4::dfa::Vocabulary _vocabulary; + static antlr4::atn::ATN _atn; + static std::vector _serializedATN; + + + struct Initializer { + Initializer(); + }; + static Initializer _init; +}; + diff --git a/C++Verifier/src/antlr4/SimpleSMTLIBLexer.cpp b/C++Verifier/src/antlr4/SimpleSMTLIBLexer.cpp new file mode 100644 index 0000000..1c2f23b --- /dev/null +++ b/C++Verifier/src/antlr4/SimpleSMTLIBLexer.cpp @@ -0,0 +1,300 @@ + +// Generated from SimpleSMTLIBLexer.g4 by ANTLR 4.8 + + +#include "SimpleSMTLIBLexer.h" + + +using namespace antlr4; + + +SimpleSMTLIBLexer::SimpleSMTLIBLexer(CharStream *input) : Lexer(input) { + _interpreter = new atn::LexerATNSimulator(this, _atn, _decisionToDFA, _sharedContextCache); +} + +SimpleSMTLIBLexer::~SimpleSMTLIBLexer() { + delete _interpreter; +} + +std::string SimpleSMTLIBLexer::getGrammarFileName() const { + return "SimpleSMTLIBLexer.g4"; +} + +const std::vector& SimpleSMTLIBLexer::getRuleNames() const { + return _ruleNames; +} + +const std::vector& SimpleSMTLIBLexer::getChannelNames() const { + return _channelNames; +} + +const std::vector& SimpleSMTLIBLexer::getModeNames() const { + return _modeNames; +} + +const std::vector& SimpleSMTLIBLexer::getTokenNames() const { + return _tokenNames; +} + +dfa::Vocabulary& SimpleSMTLIBLexer::getVocabulary() const { + return _vocabulary; +} + +const std::vector SimpleSMTLIBLexer::getSerializedATN() const { + return _serializedATN; +} + +const atn::ATN& SimpleSMTLIBLexer::getATN() const { + return _atn; +} + + + + +// Static vars and initialization. +std::vector SimpleSMTLIBLexer::_decisionToDFA; +atn::PredictionContextCache SimpleSMTLIBLexer::_sharedContextCache; + +// We own the ATN which in turn owns the ATN states. +atn::ATN SimpleSMTLIBLexer::_atn; +std::vector SimpleSMTLIBLexer::_serializedATN; + +std::vector SimpleSMTLIBLexer::_ruleNames = { + u8"ParOpen", u8"ParClose", u8"PS_And", u8"PS_Or", u8"PS_Not", u8"PS_Eq", + u8"PS_Lt", u8"PS_Le", u8"PS_Gt", u8"PS_Ge", u8"PS_Add", u8"PS_Sub", u8"PS_Div", + u8"PS_Mul", u8"PIPE", u8"DOUBLE_QUOTE", u8"PS_False", u8"PS_True", u8"GRW_Binary", + u8"GRW_Decimal", u8"GRW_Exists", u8"GRW_Hexadecimal", u8"GRW_Forall", + u8"GRW_Let", u8"GRW_Match", u8"GRW_Numeral", u8"GRW_Par", u8"GRW_String", + u8"GRW_Ite", u8"Numeral", u8"Binary", u8"HexDecimal", u8"Decimal", u8"HexDigit", + u8"Digit", u8"Sym", u8"BinaryDigit", u8"UndefinedSymbol", u8"WHITESPACE" +}; + +std::vector SimpleSMTLIBLexer::_channelNames = { + "DEFAULT_TOKEN_CHANNEL", "HIDDEN" +}; + +std::vector SimpleSMTLIBLexer::_modeNames = { + u8"DEFAULT_MODE" +}; + +std::vector SimpleSMTLIBLexer::_literalNames = { + "", u8"'('", u8"')'", u8"'and'", u8"'or'", u8"'not'", u8"'='", u8"'<'", + u8"'<='", u8"'>'", u8"'>='", u8"'+'", u8"'-'", u8"'/'", u8"'*'", u8"'|'", + u8"'\"'", u8"'false'", u8"'true'", u8"'BINARY'", u8"'DECIMAL'", u8"'exists'", + u8"'HEXADECIMAL'", u8"'forall'", u8"'let'", u8"'match'", u8"'NUMERAL'", + u8"'par'", u8"'string'", u8"'ite'" +}; + +std::vector SimpleSMTLIBLexer::_symbolicNames = { + "", u8"ParOpen", u8"ParClose", u8"PS_And", u8"PS_Or", u8"PS_Not", u8"PS_Eq", + u8"PS_Lt", u8"PS_Le", u8"PS_Gt", u8"PS_Ge", u8"PS_Add", u8"PS_Sub", u8"PS_Div", + u8"PS_Mul", u8"PIPE", u8"DOUBLE_QUOTE", u8"PS_False", u8"PS_True", u8"GRW_Binary", + u8"GRW_Decimal", u8"GRW_Exists", u8"GRW_Hexadecimal", u8"GRW_Forall", + u8"GRW_Let", u8"GRW_Match", u8"GRW_Numeral", u8"GRW_Par", u8"GRW_String", + u8"GRW_Ite", u8"Numeral", u8"Binary", u8"HexDecimal", u8"Decimal", u8"UndefinedSymbol", + u8"WHITESPACE" +}; + +dfa::Vocabulary SimpleSMTLIBLexer::_vocabulary(_literalNames, _symbolicNames); + +std::vector SimpleSMTLIBLexer::_tokenNames; + +SimpleSMTLIBLexer::Initializer::Initializer() { + // This code could be in a static initializer lambda, but VS doesn't allow access to private class members from there. + for (size_t i = 0; i < _symbolicNames.size(); ++i) { + std::string name = _vocabulary.getLiteralName(i); + if (name.empty()) { + name = _vocabulary.getSymbolicName(i); + } + + if (name.empty()) { + _tokenNames.push_back(""); + } else { + _tokenNames.push_back(name); + } + } + + _serializedATN = { + 0x3, 0x608b, 0xa72a, 0x8133, 0xb9ed, 0x417c, 0x3be7, 0x7786, 0x5964, + 0x2, 0x25, 0x102, 0x8, 0x1, 0x4, 0x2, 0x9, 0x2, 0x4, 0x3, 0x9, 0x3, + 0x4, 0x4, 0x9, 0x4, 0x4, 0x5, 0x9, 0x5, 0x4, 0x6, 0x9, 0x6, 0x4, 0x7, + 0x9, 0x7, 0x4, 0x8, 0x9, 0x8, 0x4, 0x9, 0x9, 0x9, 0x4, 0xa, 0x9, 0xa, + 0x4, 0xb, 0x9, 0xb, 0x4, 0xc, 0x9, 0xc, 0x4, 0xd, 0x9, 0xd, 0x4, 0xe, + 0x9, 0xe, 0x4, 0xf, 0x9, 0xf, 0x4, 0x10, 0x9, 0x10, 0x4, 0x11, 0x9, + 0x11, 0x4, 0x12, 0x9, 0x12, 0x4, 0x13, 0x9, 0x13, 0x4, 0x14, 0x9, 0x14, + 0x4, 0x15, 0x9, 0x15, 0x4, 0x16, 0x9, 0x16, 0x4, 0x17, 0x9, 0x17, 0x4, + 0x18, 0x9, 0x18, 0x4, 0x19, 0x9, 0x19, 0x4, 0x1a, 0x9, 0x1a, 0x4, 0x1b, + 0x9, 0x1b, 0x4, 0x1c, 0x9, 0x1c, 0x4, 0x1d, 0x9, 0x1d, 0x4, 0x1e, 0x9, + 0x1e, 0x4, 0x1f, 0x9, 0x1f, 0x4, 0x20, 0x9, 0x20, 0x4, 0x21, 0x9, 0x21, + 0x4, 0x22, 0x9, 0x22, 0x4, 0x23, 0x9, 0x23, 0x4, 0x24, 0x9, 0x24, 0x4, + 0x25, 0x9, 0x25, 0x4, 0x26, 0x9, 0x26, 0x4, 0x27, 0x9, 0x27, 0x4, 0x28, + 0x9, 0x28, 0x3, 0x2, 0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x4, 0x3, 0x4, + 0x3, 0x4, 0x3, 0x4, 0x3, 0x5, 0x3, 0x5, 0x3, 0x5, 0x3, 0x6, 0x3, 0x6, + 0x3, 0x6, 0x3, 0x6, 0x3, 0x7, 0x3, 0x7, 0x3, 0x8, 0x3, 0x8, 0x3, 0x9, + 0x3, 0x9, 0x3, 0x9, 0x3, 0xa, 0x3, 0xa, 0x3, 0xb, 0x3, 0xb, 0x3, 0xb, + 0x3, 0xc, 0x3, 0xc, 0x3, 0xd, 0x3, 0xd, 0x3, 0xe, 0x3, 0xe, 0x3, 0xf, + 0x3, 0xf, 0x3, 0x10, 0x3, 0x10, 0x3, 0x11, 0x3, 0x11, 0x3, 0x12, 0x3, + 0x12, 0x3, 0x12, 0x3, 0x12, 0x3, 0x12, 0x3, 0x12, 0x3, 0x13, 0x3, 0x13, + 0x3, 0x13, 0x3, 0x13, 0x3, 0x13, 0x3, 0x14, 0x3, 0x14, 0x3, 0x14, 0x3, + 0x14, 0x3, 0x14, 0x3, 0x14, 0x3, 0x14, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, + 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x15, 0x3, 0x16, 0x3, + 0x16, 0x3, 0x16, 0x3, 0x16, 0x3, 0x16, 0x3, 0x16, 0x3, 0x16, 0x3, 0x17, + 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x3, + 0x17, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x3, 0x17, 0x3, 0x18, 0x3, 0x18, + 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x18, 0x3, 0x19, 0x3, + 0x19, 0x3, 0x19, 0x3, 0x19, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1a, + 0x3, 0x1a, 0x3, 0x1a, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, + 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1b, 0x3, 0x1c, 0x3, 0x1c, 0x3, 0x1c, + 0x3, 0x1c, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, 0x1d, 0x3, + 0x1d, 0x3, 0x1d, 0x3, 0x1e, 0x3, 0x1e, 0x3, 0x1e, 0x3, 0x1e, 0x3, 0x1f, + 0x3, 0x1f, 0x3, 0x1f, 0x7, 0x1f, 0xd1, 0xa, 0x1f, 0xc, 0x1f, 0xe, 0x1f, + 0xd4, 0xb, 0x1f, 0x5, 0x1f, 0xd6, 0xa, 0x1f, 0x3, 0x20, 0x6, 0x20, 0xd9, + 0xa, 0x20, 0xd, 0x20, 0xe, 0x20, 0xda, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, + 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x21, 0x3, 0x22, 0x3, + 0x22, 0x3, 0x22, 0x7, 0x22, 0xe8, 0xa, 0x22, 0xc, 0x22, 0xe, 0x22, 0xeb, + 0xb, 0x22, 0x3, 0x22, 0x3, 0x22, 0x3, 0x23, 0x3, 0x23, 0x3, 0x24, 0x3, + 0x24, 0x3, 0x25, 0x5, 0x25, 0xf4, 0xa, 0x25, 0x3, 0x26, 0x3, 0x26, 0x3, + 0x27, 0x3, 0x27, 0x3, 0x27, 0x6, 0x27, 0xfb, 0xa, 0x27, 0xd, 0x27, 0xe, + 0x27, 0xfc, 0x3, 0x28, 0x3, 0x28, 0x3, 0x28, 0x3, 0x28, 0x2, 0x2, 0x29, + 0x3, 0x3, 0x5, 0x4, 0x7, 0x5, 0x9, 0x6, 0xb, 0x7, 0xd, 0x8, 0xf, 0x9, + 0x11, 0xa, 0x13, 0xb, 0x15, 0xc, 0x17, 0xd, 0x19, 0xe, 0x1b, 0xf, 0x1d, + 0x10, 0x1f, 0x11, 0x21, 0x12, 0x23, 0x13, 0x25, 0x14, 0x27, 0x15, 0x29, + 0x16, 0x2b, 0x17, 0x2d, 0x18, 0x2f, 0x19, 0x31, 0x1a, 0x33, 0x1b, 0x35, + 0x1c, 0x37, 0x1d, 0x39, 0x1e, 0x3b, 0x1f, 0x3d, 0x20, 0x3f, 0x21, 0x41, + 0x22, 0x43, 0x23, 0x45, 0x2, 0x47, 0x2, 0x49, 0x2, 0x4b, 0x2, 0x4d, + 0x24, 0x4f, 0x25, 0x3, 0x2, 0x8, 0x3, 0x2, 0x33, 0x3b, 0x5, 0x2, 0x32, + 0x3b, 0x43, 0x48, 0x63, 0x68, 0x3, 0x2, 0x32, 0x3b, 0x7, 0x2, 0x23, + 0x23, 0x26, 0x26, 0x43, 0x5c, 0x61, 0x61, 0x63, 0x7c, 0x3, 0x2, 0x32, + 0x33, 0x5, 0x2, 0xb, 0xc, 0xe, 0xf, 0x22, 0x22, 0x2, 0x104, 0x2, 0x3, + 0x3, 0x2, 0x2, 0x2, 0x2, 0x5, 0x3, 0x2, 0x2, 0x2, 0x2, 0x7, 0x3, 0x2, + 0x2, 0x2, 0x2, 0x9, 0x3, 0x2, 0x2, 0x2, 0x2, 0xb, 0x3, 0x2, 0x2, 0x2, + 0x2, 0xd, 0x3, 0x2, 0x2, 0x2, 0x2, 0xf, 0x3, 0x2, 0x2, 0x2, 0x2, 0x11, + 0x3, 0x2, 0x2, 0x2, 0x2, 0x13, 0x3, 0x2, 0x2, 0x2, 0x2, 0x15, 0x3, 0x2, + 0x2, 0x2, 0x2, 0x17, 0x3, 0x2, 0x2, 0x2, 0x2, 0x19, 0x3, 0x2, 0x2, 0x2, + 0x2, 0x1b, 0x3, 0x2, 0x2, 0x2, 0x2, 0x1d, 0x3, 0x2, 0x2, 0x2, 0x2, 0x1f, + 0x3, 0x2, 0x2, 0x2, 0x2, 0x21, 0x3, 0x2, 0x2, 0x2, 0x2, 0x23, 0x3, 0x2, + 0x2, 0x2, 0x2, 0x25, 0x3, 0x2, 0x2, 0x2, 0x2, 0x27, 0x3, 0x2, 0x2, 0x2, + 0x2, 0x29, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2b, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2d, + 0x3, 0x2, 0x2, 0x2, 0x2, 0x2f, 0x3, 0x2, 0x2, 0x2, 0x2, 0x31, 0x3, 0x2, + 0x2, 0x2, 0x2, 0x33, 0x3, 0x2, 0x2, 0x2, 0x2, 0x35, 0x3, 0x2, 0x2, 0x2, + 0x2, 0x37, 0x3, 0x2, 0x2, 0x2, 0x2, 0x39, 0x3, 0x2, 0x2, 0x2, 0x2, 0x3b, + 0x3, 0x2, 0x2, 0x2, 0x2, 0x3d, 0x3, 0x2, 0x2, 0x2, 0x2, 0x3f, 0x3, 0x2, + 0x2, 0x2, 0x2, 0x41, 0x3, 0x2, 0x2, 0x2, 0x2, 0x43, 0x3, 0x2, 0x2, 0x2, + 0x2, 0x4d, 0x3, 0x2, 0x2, 0x2, 0x2, 0x4f, 0x3, 0x2, 0x2, 0x2, 0x3, 0x51, + 0x3, 0x2, 0x2, 0x2, 0x5, 0x53, 0x3, 0x2, 0x2, 0x2, 0x7, 0x55, 0x3, 0x2, + 0x2, 0x2, 0x9, 0x59, 0x3, 0x2, 0x2, 0x2, 0xb, 0x5c, 0x3, 0x2, 0x2, 0x2, + 0xd, 0x60, 0x3, 0x2, 0x2, 0x2, 0xf, 0x62, 0x3, 0x2, 0x2, 0x2, 0x11, + 0x64, 0x3, 0x2, 0x2, 0x2, 0x13, 0x67, 0x3, 0x2, 0x2, 0x2, 0x15, 0x69, + 0x3, 0x2, 0x2, 0x2, 0x17, 0x6c, 0x3, 0x2, 0x2, 0x2, 0x19, 0x6e, 0x3, + 0x2, 0x2, 0x2, 0x1b, 0x70, 0x3, 0x2, 0x2, 0x2, 0x1d, 0x72, 0x3, 0x2, + 0x2, 0x2, 0x1f, 0x74, 0x3, 0x2, 0x2, 0x2, 0x21, 0x76, 0x3, 0x2, 0x2, + 0x2, 0x23, 0x78, 0x3, 0x2, 0x2, 0x2, 0x25, 0x7e, 0x3, 0x2, 0x2, 0x2, + 0x27, 0x83, 0x3, 0x2, 0x2, 0x2, 0x29, 0x8a, 0x3, 0x2, 0x2, 0x2, 0x2b, + 0x92, 0x3, 0x2, 0x2, 0x2, 0x2d, 0x99, 0x3, 0x2, 0x2, 0x2, 0x2f, 0xa5, + 0x3, 0x2, 0x2, 0x2, 0x31, 0xac, 0x3, 0x2, 0x2, 0x2, 0x33, 0xb0, 0x3, + 0x2, 0x2, 0x2, 0x35, 0xb6, 0x3, 0x2, 0x2, 0x2, 0x37, 0xbe, 0x3, 0x2, + 0x2, 0x2, 0x39, 0xc2, 0x3, 0x2, 0x2, 0x2, 0x3b, 0xc9, 0x3, 0x2, 0x2, + 0x2, 0x3d, 0xd5, 0x3, 0x2, 0x2, 0x2, 0x3f, 0xd8, 0x3, 0x2, 0x2, 0x2, + 0x41, 0xdc, 0x3, 0x2, 0x2, 0x2, 0x43, 0xe4, 0x3, 0x2, 0x2, 0x2, 0x45, + 0xee, 0x3, 0x2, 0x2, 0x2, 0x47, 0xf0, 0x3, 0x2, 0x2, 0x2, 0x49, 0xf3, + 0x3, 0x2, 0x2, 0x2, 0x4b, 0xf5, 0x3, 0x2, 0x2, 0x2, 0x4d, 0xfa, 0x3, + 0x2, 0x2, 0x2, 0x4f, 0xfe, 0x3, 0x2, 0x2, 0x2, 0x51, 0x52, 0x7, 0x2a, + 0x2, 0x2, 0x52, 0x4, 0x3, 0x2, 0x2, 0x2, 0x53, 0x54, 0x7, 0x2b, 0x2, + 0x2, 0x54, 0x6, 0x3, 0x2, 0x2, 0x2, 0x55, 0x56, 0x7, 0x63, 0x2, 0x2, + 0x56, 0x57, 0x7, 0x70, 0x2, 0x2, 0x57, 0x58, 0x7, 0x66, 0x2, 0x2, 0x58, + 0x8, 0x3, 0x2, 0x2, 0x2, 0x59, 0x5a, 0x7, 0x71, 0x2, 0x2, 0x5a, 0x5b, + 0x7, 0x74, 0x2, 0x2, 0x5b, 0xa, 0x3, 0x2, 0x2, 0x2, 0x5c, 0x5d, 0x7, + 0x70, 0x2, 0x2, 0x5d, 0x5e, 0x7, 0x71, 0x2, 0x2, 0x5e, 0x5f, 0x7, 0x76, + 0x2, 0x2, 0x5f, 0xc, 0x3, 0x2, 0x2, 0x2, 0x60, 0x61, 0x7, 0x3f, 0x2, + 0x2, 0x61, 0xe, 0x3, 0x2, 0x2, 0x2, 0x62, 0x63, 0x7, 0x3e, 0x2, 0x2, + 0x63, 0x10, 0x3, 0x2, 0x2, 0x2, 0x64, 0x65, 0x7, 0x3e, 0x2, 0x2, 0x65, + 0x66, 0x7, 0x3f, 0x2, 0x2, 0x66, 0x12, 0x3, 0x2, 0x2, 0x2, 0x67, 0x68, + 0x7, 0x40, 0x2, 0x2, 0x68, 0x14, 0x3, 0x2, 0x2, 0x2, 0x69, 0x6a, 0x7, + 0x40, 0x2, 0x2, 0x6a, 0x6b, 0x7, 0x3f, 0x2, 0x2, 0x6b, 0x16, 0x3, 0x2, + 0x2, 0x2, 0x6c, 0x6d, 0x7, 0x2d, 0x2, 0x2, 0x6d, 0x18, 0x3, 0x2, 0x2, + 0x2, 0x6e, 0x6f, 0x7, 0x2f, 0x2, 0x2, 0x6f, 0x1a, 0x3, 0x2, 0x2, 0x2, + 0x70, 0x71, 0x7, 0x31, 0x2, 0x2, 0x71, 0x1c, 0x3, 0x2, 0x2, 0x2, 0x72, + 0x73, 0x7, 0x2c, 0x2, 0x2, 0x73, 0x1e, 0x3, 0x2, 0x2, 0x2, 0x74, 0x75, + 0x7, 0x7e, 0x2, 0x2, 0x75, 0x20, 0x3, 0x2, 0x2, 0x2, 0x76, 0x77, 0x7, + 0x24, 0x2, 0x2, 0x77, 0x22, 0x3, 0x2, 0x2, 0x2, 0x78, 0x79, 0x7, 0x68, + 0x2, 0x2, 0x79, 0x7a, 0x7, 0x63, 0x2, 0x2, 0x7a, 0x7b, 0x7, 0x6e, 0x2, + 0x2, 0x7b, 0x7c, 0x7, 0x75, 0x2, 0x2, 0x7c, 0x7d, 0x7, 0x67, 0x2, 0x2, + 0x7d, 0x24, 0x3, 0x2, 0x2, 0x2, 0x7e, 0x7f, 0x7, 0x76, 0x2, 0x2, 0x7f, + 0x80, 0x7, 0x74, 0x2, 0x2, 0x80, 0x81, 0x7, 0x77, 0x2, 0x2, 0x81, 0x82, + 0x7, 0x67, 0x2, 0x2, 0x82, 0x26, 0x3, 0x2, 0x2, 0x2, 0x83, 0x84, 0x7, + 0x44, 0x2, 0x2, 0x84, 0x85, 0x7, 0x4b, 0x2, 0x2, 0x85, 0x86, 0x7, 0x50, + 0x2, 0x2, 0x86, 0x87, 0x7, 0x43, 0x2, 0x2, 0x87, 0x88, 0x7, 0x54, 0x2, + 0x2, 0x88, 0x89, 0x7, 0x5b, 0x2, 0x2, 0x89, 0x28, 0x3, 0x2, 0x2, 0x2, + 0x8a, 0x8b, 0x7, 0x46, 0x2, 0x2, 0x8b, 0x8c, 0x7, 0x47, 0x2, 0x2, 0x8c, + 0x8d, 0x7, 0x45, 0x2, 0x2, 0x8d, 0x8e, 0x7, 0x4b, 0x2, 0x2, 0x8e, 0x8f, + 0x7, 0x4f, 0x2, 0x2, 0x8f, 0x90, 0x7, 0x43, 0x2, 0x2, 0x90, 0x91, 0x7, + 0x4e, 0x2, 0x2, 0x91, 0x2a, 0x3, 0x2, 0x2, 0x2, 0x92, 0x93, 0x7, 0x67, + 0x2, 0x2, 0x93, 0x94, 0x7, 0x7a, 0x2, 0x2, 0x94, 0x95, 0x7, 0x6b, 0x2, + 0x2, 0x95, 0x96, 0x7, 0x75, 0x2, 0x2, 0x96, 0x97, 0x7, 0x76, 0x2, 0x2, + 0x97, 0x98, 0x7, 0x75, 0x2, 0x2, 0x98, 0x2c, 0x3, 0x2, 0x2, 0x2, 0x99, + 0x9a, 0x7, 0x4a, 0x2, 0x2, 0x9a, 0x9b, 0x7, 0x47, 0x2, 0x2, 0x9b, 0x9c, + 0x7, 0x5a, 0x2, 0x2, 0x9c, 0x9d, 0x7, 0x43, 0x2, 0x2, 0x9d, 0x9e, 0x7, + 0x46, 0x2, 0x2, 0x9e, 0x9f, 0x7, 0x47, 0x2, 0x2, 0x9f, 0xa0, 0x7, 0x45, + 0x2, 0x2, 0xa0, 0xa1, 0x7, 0x4b, 0x2, 0x2, 0xa1, 0xa2, 0x7, 0x4f, 0x2, + 0x2, 0xa2, 0xa3, 0x7, 0x43, 0x2, 0x2, 0xa3, 0xa4, 0x7, 0x4e, 0x2, 0x2, + 0xa4, 0x2e, 0x3, 0x2, 0x2, 0x2, 0xa5, 0xa6, 0x7, 0x68, 0x2, 0x2, 0xa6, + 0xa7, 0x7, 0x71, 0x2, 0x2, 0xa7, 0xa8, 0x7, 0x74, 0x2, 0x2, 0xa8, 0xa9, + 0x7, 0x63, 0x2, 0x2, 0xa9, 0xaa, 0x7, 0x6e, 0x2, 0x2, 0xaa, 0xab, 0x7, + 0x6e, 0x2, 0x2, 0xab, 0x30, 0x3, 0x2, 0x2, 0x2, 0xac, 0xad, 0x7, 0x6e, + 0x2, 0x2, 0xad, 0xae, 0x7, 0x67, 0x2, 0x2, 0xae, 0xaf, 0x7, 0x76, 0x2, + 0x2, 0xaf, 0x32, 0x3, 0x2, 0x2, 0x2, 0xb0, 0xb1, 0x7, 0x6f, 0x2, 0x2, + 0xb1, 0xb2, 0x7, 0x63, 0x2, 0x2, 0xb2, 0xb3, 0x7, 0x76, 0x2, 0x2, 0xb3, + 0xb4, 0x7, 0x65, 0x2, 0x2, 0xb4, 0xb5, 0x7, 0x6a, 0x2, 0x2, 0xb5, 0x34, + 0x3, 0x2, 0x2, 0x2, 0xb6, 0xb7, 0x7, 0x50, 0x2, 0x2, 0xb7, 0xb8, 0x7, + 0x57, 0x2, 0x2, 0xb8, 0xb9, 0x7, 0x4f, 0x2, 0x2, 0xb9, 0xba, 0x7, 0x47, + 0x2, 0x2, 0xba, 0xbb, 0x7, 0x54, 0x2, 0x2, 0xbb, 0xbc, 0x7, 0x43, 0x2, + 0x2, 0xbc, 0xbd, 0x7, 0x4e, 0x2, 0x2, 0xbd, 0x36, 0x3, 0x2, 0x2, 0x2, + 0xbe, 0xbf, 0x7, 0x72, 0x2, 0x2, 0xbf, 0xc0, 0x7, 0x63, 0x2, 0x2, 0xc0, + 0xc1, 0x7, 0x74, 0x2, 0x2, 0xc1, 0x38, 0x3, 0x2, 0x2, 0x2, 0xc2, 0xc3, + 0x7, 0x75, 0x2, 0x2, 0xc3, 0xc4, 0x7, 0x76, 0x2, 0x2, 0xc4, 0xc5, 0x7, + 0x74, 0x2, 0x2, 0xc5, 0xc6, 0x7, 0x6b, 0x2, 0x2, 0xc6, 0xc7, 0x7, 0x70, + 0x2, 0x2, 0xc7, 0xc8, 0x7, 0x69, 0x2, 0x2, 0xc8, 0x3a, 0x3, 0x2, 0x2, + 0x2, 0xc9, 0xca, 0x7, 0x6b, 0x2, 0x2, 0xca, 0xcb, 0x7, 0x76, 0x2, 0x2, + 0xcb, 0xcc, 0x7, 0x67, 0x2, 0x2, 0xcc, 0x3c, 0x3, 0x2, 0x2, 0x2, 0xcd, + 0xd6, 0x7, 0x32, 0x2, 0x2, 0xce, 0xd2, 0x9, 0x2, 0x2, 0x2, 0xcf, 0xd1, + 0x5, 0x47, 0x24, 0x2, 0xd0, 0xcf, 0x3, 0x2, 0x2, 0x2, 0xd1, 0xd4, 0x3, + 0x2, 0x2, 0x2, 0xd2, 0xd0, 0x3, 0x2, 0x2, 0x2, 0xd2, 0xd3, 0x3, 0x2, + 0x2, 0x2, 0xd3, 0xd6, 0x3, 0x2, 0x2, 0x2, 0xd4, 0xd2, 0x3, 0x2, 0x2, + 0x2, 0xd5, 0xcd, 0x3, 0x2, 0x2, 0x2, 0xd5, 0xce, 0x3, 0x2, 0x2, 0x2, + 0xd6, 0x3e, 0x3, 0x2, 0x2, 0x2, 0xd7, 0xd9, 0x5, 0x4b, 0x26, 0x2, 0xd8, + 0xd7, 0x3, 0x2, 0x2, 0x2, 0xd9, 0xda, 0x3, 0x2, 0x2, 0x2, 0xda, 0xd8, + 0x3, 0x2, 0x2, 0x2, 0xda, 0xdb, 0x3, 0x2, 0x2, 0x2, 0xdb, 0x40, 0x3, + 0x2, 0x2, 0x2, 0xdc, 0xdd, 0x7, 0x25, 0x2, 0x2, 0xdd, 0xde, 0x7, 0x7a, + 0x2, 0x2, 0xde, 0xdf, 0x3, 0x2, 0x2, 0x2, 0xdf, 0xe0, 0x5, 0x45, 0x23, + 0x2, 0xe0, 0xe1, 0x5, 0x45, 0x23, 0x2, 0xe1, 0xe2, 0x5, 0x45, 0x23, + 0x2, 0xe2, 0xe3, 0x5, 0x45, 0x23, 0x2, 0xe3, 0x42, 0x3, 0x2, 0x2, 0x2, + 0xe4, 0xe5, 0x5, 0x3d, 0x1f, 0x2, 0xe5, 0xe9, 0x7, 0x30, 0x2, 0x2, 0xe6, + 0xe8, 0x7, 0x32, 0x2, 0x2, 0xe7, 0xe6, 0x3, 0x2, 0x2, 0x2, 0xe8, 0xeb, + 0x3, 0x2, 0x2, 0x2, 0xe9, 0xe7, 0x3, 0x2, 0x2, 0x2, 0xe9, 0xea, 0x3, + 0x2, 0x2, 0x2, 0xea, 0xec, 0x3, 0x2, 0x2, 0x2, 0xeb, 0xe9, 0x3, 0x2, + 0x2, 0x2, 0xec, 0xed, 0x5, 0x3d, 0x1f, 0x2, 0xed, 0x44, 0x3, 0x2, 0x2, + 0x2, 0xee, 0xef, 0x9, 0x3, 0x2, 0x2, 0xef, 0x46, 0x3, 0x2, 0x2, 0x2, + 0xf0, 0xf1, 0x9, 0x4, 0x2, 0x2, 0xf1, 0x48, 0x3, 0x2, 0x2, 0x2, 0xf2, + 0xf4, 0x9, 0x5, 0x2, 0x2, 0xf3, 0xf2, 0x3, 0x2, 0x2, 0x2, 0xf4, 0x4a, + 0x3, 0x2, 0x2, 0x2, 0xf5, 0xf6, 0x9, 0x6, 0x2, 0x2, 0xf6, 0x4c, 0x3, + 0x2, 0x2, 0x2, 0xf7, 0xfb, 0x5, 0x47, 0x24, 0x2, 0xf8, 0xfb, 0x5, 0x49, + 0x25, 0x2, 0xf9, 0xfb, 0x7, 0x30, 0x2, 0x2, 0xfa, 0xf7, 0x3, 0x2, 0x2, + 0x2, 0xfa, 0xf8, 0x3, 0x2, 0x2, 0x2, 0xfa, 0xf9, 0x3, 0x2, 0x2, 0x2, + 0xfb, 0xfc, 0x3, 0x2, 0x2, 0x2, 0xfc, 0xfa, 0x3, 0x2, 0x2, 0x2, 0xfc, + 0xfd, 0x3, 0x2, 0x2, 0x2, 0xfd, 0x4e, 0x3, 0x2, 0x2, 0x2, 0xfe, 0xff, + 0x9, 0x7, 0x2, 0x2, 0xff, 0x100, 0x3, 0x2, 0x2, 0x2, 0x100, 0x101, 0x8, + 0x28, 0x2, 0x2, 0x101, 0x50, 0x3, 0x2, 0x2, 0x2, 0xa, 0x2, 0xd2, 0xd5, + 0xda, 0xe9, 0xf3, 0xfa, 0xfc, 0x3, 0x2, 0x3, 0x2, + }; + + atn::ATNDeserializer deserializer; + _atn = deserializer.deserialize(_serializedATN); + + size_t count = _atn.getNumberOfDecisions(); + _decisionToDFA.reserve(count); + for (size_t i = 0; i < count; i++) { + _decisionToDFA.emplace_back(_atn.getDecisionState(i), i); + } +} + +SimpleSMTLIBLexer::Initializer SimpleSMTLIBLexer::_init; diff --git a/C++Verifier/src/antlr4/SimpleSMTLIBLexer.g4 b/C++Verifier/src/antlr4/SimpleSMTLIBLexer.g4 new file mode 100644 index 0000000..b9e5b7e --- /dev/null +++ b/C++Verifier/src/antlr4/SimpleSMTLIBLexer.g4 @@ -0,0 +1,134 @@ +/** + * SMT-LIB (v2.6) grammar + * + * Grammar is baesd on the following specification: + * http://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.6-r2017-07-18.pdf + * + * The MIT License (MIT) + * + * Copyright (c) 2017 Julian Thome + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do + * so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + **/ + +lexer grammar SimpleSMTLIBLexer; + + + +ParOpen : '('; +ParClose : ')'; + +PS_And : 'and'; +PS_Or : 'or'; +PS_Not : 'not'; +PS_Eq : '='; +PS_Lt : '<'; +PS_Le : '<='; +PS_Gt : '>'; +PS_Ge : '>='; +PS_Add : '+'; +PS_Sub : '-'; +PS_Div : '/'; +PS_Mul : '*'; + +PIPE : '|'; +DOUBLE_QUOTE : '"' ; + + +PS_False + : 'false' + ; +PS_True + : 'true' + ; + +GRW_Binary + : 'BINARY' + ; +GRW_Decimal + : 'DECIMAL' + ; +GRW_Exists + : 'exists' + ; +GRW_Hexadecimal + : 'HEXADECIMAL' + ; +GRW_Forall + : 'forall' + ; +GRW_Let + : 'let' + ; +GRW_Match + : 'match' + ; +GRW_Numeral + : 'NUMERAL' + ; +GRW_Par + : 'par' + ; +GRW_String + : 'string' + ; +GRW_Ite + : 'ite' + ; + +Numeral + : '0' + | [1-9] Digit* + ; + +Binary: + BinaryDigit+ + ; + +HexDecimal + : '#x' HexDigit HexDigit HexDigit HexDigit + ; + +Decimal + : Numeral '.' '0'* Numeral + ; + +fragment HexDigit + : [0-9a-fA-F] + ; + +fragment Digit + : [0-9] + ; + +fragment Sym + : [a-zA-Z_] + | '!' + | '$' + ; + +fragment BinaryDigit + : [01] + ; + +UndefinedSymbol: + (Digit | Sym | '.')+; + + +WHITESPACE: [ \t\f\r\n] -> channel(HIDDEN); // Ignore whitespaces. \ No newline at end of file diff --git a/C++Verifier/src/antlr4/SimpleSMTLIBLexer.h b/C++Verifier/src/antlr4/SimpleSMTLIBLexer.h new file mode 100644 index 0000000..a34ba29 --- /dev/null +++ b/C++Verifier/src/antlr4/SimpleSMTLIBLexer.h @@ -0,0 +1,62 @@ + +// Generated from SimpleSMTLIBLexer.g4 by ANTLR 4.8 + +#pragma once + + +#include "antlr4-runtime.h" + + + + +class SimpleSMTLIBLexer : public antlr4::Lexer { +public: + enum { + ParOpen = 1, ParClose = 2, PS_And = 3, PS_Or = 4, PS_Not = 5, PS_Eq = 6, + PS_Lt = 7, PS_Le = 8, PS_Gt = 9, PS_Ge = 10, PS_Add = 11, PS_Sub = 12, + PS_Div = 13, PS_Mul = 14, PIPE = 15, DOUBLE_QUOTE = 16, PS_False = 17, + PS_True = 18, GRW_Binary = 19, GRW_Decimal = 20, GRW_Exists = 21, GRW_Hexadecimal = 22, + GRW_Forall = 23, GRW_Let = 24, GRW_Match = 25, GRW_Numeral = 26, GRW_Par = 27, + GRW_String = 28, GRW_Ite = 29, Numeral = 30, Binary = 31, HexDecimal = 32, + Decimal = 33, UndefinedSymbol = 34, WHITESPACE = 35 + }; + + SimpleSMTLIBLexer(antlr4::CharStream *input); + ~SimpleSMTLIBLexer(); + + virtual std::string getGrammarFileName() const override; + virtual const std::vector& getRuleNames() const override; + + virtual const std::vector& getChannelNames() const override; + virtual const std::vector& getModeNames() const override; + virtual const std::vector& getTokenNames() const override; // deprecated, use vocabulary instead + virtual antlr4::dfa::Vocabulary& getVocabulary() const override; + + virtual const std::vector getSerializedATN() const override; + virtual const antlr4::atn::ATN& getATN() const override; + +private: + static std::vector _decisionToDFA; + static antlr4::atn::PredictionContextCache _sharedContextCache; + static std::vector _ruleNames; + static std::vector _tokenNames; + static std::vector _channelNames; + static std::vector _modeNames; + + static std::vector _literalNames; + static std::vector _symbolicNames; + static antlr4::dfa::Vocabulary _vocabulary; + static antlr4::atn::ATN _atn; + static std::vector _serializedATN; + + + // Individual action functions triggered by action() above. + + // Individual semantic predicate functions triggered by sempred() above. + + struct Initializer { + Initializer(); + }; + static Initializer _init; +}; + diff --git a/C++Verifier/src/antlr4/SimpleSMTLIBLexer.interp b/C++Verifier/src/antlr4/SimpleSMTLIBLexer.interp new file mode 100644 index 0000000..420b130 --- /dev/null +++ b/C++Verifier/src/antlr4/SimpleSMTLIBLexer.interp @@ -0,0 +1,126 @@ +token literal names: +null +'(' +')' +'and' +'or' +'not' +'=' +'<' +'<=' +'>' +'>=' +'+' +'-' +'/' +'*' +'|' +'"' +'false' +'true' +'BINARY' +'DECIMAL' +'exists' +'HEXADECIMAL' +'forall' +'let' +'match' +'NUMERAL' +'par' +'string' +'ite' +null +null +null +null +null +null + +token symbolic names: +null +ParOpen +ParClose +PS_And +PS_Or +PS_Not +PS_Eq +PS_Lt +PS_Le +PS_Gt +PS_Ge +PS_Add +PS_Sub +PS_Div +PS_Mul +PIPE +DOUBLE_QUOTE +PS_False +PS_True +GRW_Binary +GRW_Decimal +GRW_Exists +GRW_Hexadecimal +GRW_Forall +GRW_Let +GRW_Match +GRW_Numeral +GRW_Par +GRW_String +GRW_Ite +Numeral +Binary +HexDecimal +Decimal +UndefinedSymbol +WHITESPACE + +rule names: +ParOpen +ParClose +PS_And +PS_Or +PS_Not +PS_Eq +PS_Lt +PS_Le +PS_Gt +PS_Ge +PS_Add +PS_Sub +PS_Div +PS_Mul +PIPE +DOUBLE_QUOTE +PS_False +PS_True +GRW_Binary +GRW_Decimal +GRW_Exists +GRW_Hexadecimal +GRW_Forall +GRW_Let +GRW_Match +GRW_Numeral +GRW_Par +GRW_String +GRW_Ite +Numeral +Binary +HexDecimal +Decimal +HexDigit +Digit +Sym +BinaryDigit +UndefinedSymbol +WHITESPACE + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 37, 258, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 16, 3, 16, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 7, 31, 209, 10, 31, 12, 31, 14, 31, 212, 11, 31, 5, 31, 214, 10, 31, 3, 32, 6, 32, 217, 10, 32, 13, 32, 14, 32, 218, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 7, 34, 232, 10, 34, 12, 34, 14, 34, 235, 11, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 36, 3, 36, 3, 37, 5, 37, 244, 10, 37, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 6, 39, 251, 10, 39, 13, 39, 14, 39, 252, 3, 40, 3, 40, 3, 40, 3, 40, 2, 2, 41, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 2, 71, 2, 73, 2, 75, 2, 77, 36, 79, 37, 3, 2, 8, 3, 2, 51, 59, 5, 2, 50, 59, 67, 72, 99, 104, 3, 2, 50, 59, 7, 2, 35, 35, 38, 38, 67, 92, 97, 97, 99, 124, 3, 2, 50, 51, 5, 2, 11, 12, 14, 15, 34, 34, 2, 260, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 3, 81, 3, 2, 2, 2, 5, 83, 3, 2, 2, 2, 7, 85, 3, 2, 2, 2, 9, 89, 3, 2, 2, 2, 11, 92, 3, 2, 2, 2, 13, 96, 3, 2, 2, 2, 15, 98, 3, 2, 2, 2, 17, 100, 3, 2, 2, 2, 19, 103, 3, 2, 2, 2, 21, 105, 3, 2, 2, 2, 23, 108, 3, 2, 2, 2, 25, 110, 3, 2, 2, 2, 27, 112, 3, 2, 2, 2, 29, 114, 3, 2, 2, 2, 31, 116, 3, 2, 2, 2, 33, 118, 3, 2, 2, 2, 35, 120, 3, 2, 2, 2, 37, 126, 3, 2, 2, 2, 39, 131, 3, 2, 2, 2, 41, 138, 3, 2, 2, 2, 43, 146, 3, 2, 2, 2, 45, 153, 3, 2, 2, 2, 47, 165, 3, 2, 2, 2, 49, 172, 3, 2, 2, 2, 51, 176, 3, 2, 2, 2, 53, 182, 3, 2, 2, 2, 55, 190, 3, 2, 2, 2, 57, 194, 3, 2, 2, 2, 59, 201, 3, 2, 2, 2, 61, 213, 3, 2, 2, 2, 63, 216, 3, 2, 2, 2, 65, 220, 3, 2, 2, 2, 67, 228, 3, 2, 2, 2, 69, 238, 3, 2, 2, 2, 71, 240, 3, 2, 2, 2, 73, 243, 3, 2, 2, 2, 75, 245, 3, 2, 2, 2, 77, 250, 3, 2, 2, 2, 79, 254, 3, 2, 2, 2, 81, 82, 7, 42, 2, 2, 82, 4, 3, 2, 2, 2, 83, 84, 7, 43, 2, 2, 84, 6, 3, 2, 2, 2, 85, 86, 7, 99, 2, 2, 86, 87, 7, 112, 2, 2, 87, 88, 7, 102, 2, 2, 88, 8, 3, 2, 2, 2, 89, 90, 7, 113, 2, 2, 90, 91, 7, 116, 2, 2, 91, 10, 3, 2, 2, 2, 92, 93, 7, 112, 2, 2, 93, 94, 7, 113, 2, 2, 94, 95, 7, 118, 2, 2, 95, 12, 3, 2, 2, 2, 96, 97, 7, 63, 2, 2, 97, 14, 3, 2, 2, 2, 98, 99, 7, 62, 2, 2, 99, 16, 3, 2, 2, 2, 100, 101, 7, 62, 2, 2, 101, 102, 7, 63, 2, 2, 102, 18, 3, 2, 2, 2, 103, 104, 7, 64, 2, 2, 104, 20, 3, 2, 2, 2, 105, 106, 7, 64, 2, 2, 106, 107, 7, 63, 2, 2, 107, 22, 3, 2, 2, 2, 108, 109, 7, 45, 2, 2, 109, 24, 3, 2, 2, 2, 110, 111, 7, 47, 2, 2, 111, 26, 3, 2, 2, 2, 112, 113, 7, 49, 2, 2, 113, 28, 3, 2, 2, 2, 114, 115, 7, 44, 2, 2, 115, 30, 3, 2, 2, 2, 116, 117, 7, 126, 2, 2, 117, 32, 3, 2, 2, 2, 118, 119, 7, 36, 2, 2, 119, 34, 3, 2, 2, 2, 120, 121, 7, 104, 2, 2, 121, 122, 7, 99, 2, 2, 122, 123, 7, 110, 2, 2, 123, 124, 7, 117, 2, 2, 124, 125, 7, 103, 2, 2, 125, 36, 3, 2, 2, 2, 126, 127, 7, 118, 2, 2, 127, 128, 7, 116, 2, 2, 128, 129, 7, 119, 2, 2, 129, 130, 7, 103, 2, 2, 130, 38, 3, 2, 2, 2, 131, 132, 7, 68, 2, 2, 132, 133, 7, 75, 2, 2, 133, 134, 7, 80, 2, 2, 134, 135, 7, 67, 2, 2, 135, 136, 7, 84, 2, 2, 136, 137, 7, 91, 2, 2, 137, 40, 3, 2, 2, 2, 138, 139, 7, 70, 2, 2, 139, 140, 7, 71, 2, 2, 140, 141, 7, 69, 2, 2, 141, 142, 7, 75, 2, 2, 142, 143, 7, 79, 2, 2, 143, 144, 7, 67, 2, 2, 144, 145, 7, 78, 2, 2, 145, 42, 3, 2, 2, 2, 146, 147, 7, 103, 2, 2, 147, 148, 7, 122, 2, 2, 148, 149, 7, 107, 2, 2, 149, 150, 7, 117, 2, 2, 150, 151, 7, 118, 2, 2, 151, 152, 7, 117, 2, 2, 152, 44, 3, 2, 2, 2, 153, 154, 7, 74, 2, 2, 154, 155, 7, 71, 2, 2, 155, 156, 7, 90, 2, 2, 156, 157, 7, 67, 2, 2, 157, 158, 7, 70, 2, 2, 158, 159, 7, 71, 2, 2, 159, 160, 7, 69, 2, 2, 160, 161, 7, 75, 2, 2, 161, 162, 7, 79, 2, 2, 162, 163, 7, 67, 2, 2, 163, 164, 7, 78, 2, 2, 164, 46, 3, 2, 2, 2, 165, 166, 7, 104, 2, 2, 166, 167, 7, 113, 2, 2, 167, 168, 7, 116, 2, 2, 168, 169, 7, 99, 2, 2, 169, 170, 7, 110, 2, 2, 170, 171, 7, 110, 2, 2, 171, 48, 3, 2, 2, 2, 172, 173, 7, 110, 2, 2, 173, 174, 7, 103, 2, 2, 174, 175, 7, 118, 2, 2, 175, 50, 3, 2, 2, 2, 176, 177, 7, 111, 2, 2, 177, 178, 7, 99, 2, 2, 178, 179, 7, 118, 2, 2, 179, 180, 7, 101, 2, 2, 180, 181, 7, 106, 2, 2, 181, 52, 3, 2, 2, 2, 182, 183, 7, 80, 2, 2, 183, 184, 7, 87, 2, 2, 184, 185, 7, 79, 2, 2, 185, 186, 7, 71, 2, 2, 186, 187, 7, 84, 2, 2, 187, 188, 7, 67, 2, 2, 188, 189, 7, 78, 2, 2, 189, 54, 3, 2, 2, 2, 190, 191, 7, 114, 2, 2, 191, 192, 7, 99, 2, 2, 192, 193, 7, 116, 2, 2, 193, 56, 3, 2, 2, 2, 194, 195, 7, 117, 2, 2, 195, 196, 7, 118, 2, 2, 196, 197, 7, 116, 2, 2, 197, 198, 7, 107, 2, 2, 198, 199, 7, 112, 2, 2, 199, 200, 7, 105, 2, 2, 200, 58, 3, 2, 2, 2, 201, 202, 7, 107, 2, 2, 202, 203, 7, 118, 2, 2, 203, 204, 7, 103, 2, 2, 204, 60, 3, 2, 2, 2, 205, 214, 7, 50, 2, 2, 206, 210, 9, 2, 2, 2, 207, 209, 5, 71, 36, 2, 208, 207, 3, 2, 2, 2, 209, 212, 3, 2, 2, 2, 210, 208, 3, 2, 2, 2, 210, 211, 3, 2, 2, 2, 211, 214, 3, 2, 2, 2, 212, 210, 3, 2, 2, 2, 213, 205, 3, 2, 2, 2, 213, 206, 3, 2, 2, 2, 214, 62, 3, 2, 2, 2, 215, 217, 5, 75, 38, 2, 216, 215, 3, 2, 2, 2, 217, 218, 3, 2, 2, 2, 218, 216, 3, 2, 2, 2, 218, 219, 3, 2, 2, 2, 219, 64, 3, 2, 2, 2, 220, 221, 7, 37, 2, 2, 221, 222, 7, 122, 2, 2, 222, 223, 3, 2, 2, 2, 223, 224, 5, 69, 35, 2, 224, 225, 5, 69, 35, 2, 225, 226, 5, 69, 35, 2, 226, 227, 5, 69, 35, 2, 227, 66, 3, 2, 2, 2, 228, 229, 5, 61, 31, 2, 229, 233, 7, 48, 2, 2, 230, 232, 7, 50, 2, 2, 231, 230, 3, 2, 2, 2, 232, 235, 3, 2, 2, 2, 233, 231, 3, 2, 2, 2, 233, 234, 3, 2, 2, 2, 234, 236, 3, 2, 2, 2, 235, 233, 3, 2, 2, 2, 236, 237, 5, 61, 31, 2, 237, 68, 3, 2, 2, 2, 238, 239, 9, 3, 2, 2, 239, 70, 3, 2, 2, 2, 240, 241, 9, 4, 2, 2, 241, 72, 3, 2, 2, 2, 242, 244, 9, 5, 2, 2, 243, 242, 3, 2, 2, 2, 244, 74, 3, 2, 2, 2, 245, 246, 9, 6, 2, 2, 246, 76, 3, 2, 2, 2, 247, 251, 5, 71, 36, 2, 248, 251, 5, 73, 37, 2, 249, 251, 7, 48, 2, 2, 250, 247, 3, 2, 2, 2, 250, 248, 3, 2, 2, 2, 250, 249, 3, 2, 2, 2, 251, 252, 3, 2, 2, 2, 252, 250, 3, 2, 2, 2, 252, 253, 3, 2, 2, 2, 253, 78, 3, 2, 2, 2, 254, 255, 9, 7, 2, 2, 255, 256, 3, 2, 2, 2, 256, 257, 8, 40, 2, 2, 257, 80, 3, 2, 2, 2, 10, 2, 210, 213, 218, 233, 243, 250, 252, 3, 2, 3, 2] \ No newline at end of file diff --git a/C++Verifier/src/antlr4/SimpleSMTLIBLexer.tokens b/C++Verifier/src/antlr4/SimpleSMTLIBLexer.tokens new file mode 100644 index 0000000..b5d5bef --- /dev/null +++ b/C++Verifier/src/antlr4/SimpleSMTLIBLexer.tokens @@ -0,0 +1,64 @@ +ParOpen=1 +ParClose=2 +PS_And=3 +PS_Or=4 +PS_Not=5 +PS_Eq=6 +PS_Lt=7 +PS_Le=8 +PS_Gt=9 +PS_Ge=10 +PS_Add=11 +PS_Sub=12 +PS_Div=13 +PS_Mul=14 +PIPE=15 +DOUBLE_QUOTE=16 +PS_False=17 +PS_True=18 +GRW_Binary=19 +GRW_Decimal=20 +GRW_Exists=21 +GRW_Hexadecimal=22 +GRW_Forall=23 +GRW_Let=24 +GRW_Match=25 +GRW_Numeral=26 +GRW_Par=27 +GRW_String=28 +GRW_Ite=29 +Numeral=30 +Binary=31 +HexDecimal=32 +Decimal=33 +UndefinedSymbol=34 +WHITESPACE=35 +'('=1 +')'=2 +'and'=3 +'or'=4 +'not'=5 +'='=6 +'<'=7 +'<='=8 +'>'=9 +'>='=10 +'+'=11 +'-'=12 +'/'=13 +'*'=14 +'|'=15 +'"'=16 +'false'=17 +'true'=18 +'BINARY'=19 +'DECIMAL'=20 +'exists'=21 +'HEXADECIMAL'=22 +'forall'=23 +'let'=24 +'match'=25 +'NUMERAL'=26 +'par'=27 +'string'=28 +'ite'=29 diff --git a/C++Verifier/src/antlr4/SimpleSMTLIBParser.cpp b/C++Verifier/src/antlr4/SimpleSMTLIBParser.cpp new file mode 100644 index 0000000..1166f02 --- /dev/null +++ b/C++Verifier/src/antlr4/SimpleSMTLIBParser.cpp @@ -0,0 +1,1033 @@ + +// Generated from SimpleSMTLIBParser.g4 by ANTLR 4.8 + + +#include "SimpleSMTLIBParserListener.h" + +#include "SimpleSMTLIBParser.h" + + +using namespace antlrcpp; +using namespace antlr4; + +SimpleSMTLIBParser::SimpleSMTLIBParser(TokenStream *input) : Parser(input) { + _interpreter = new atn::ParserATNSimulator(this, _atn, _decisionToDFA, _sharedContextCache); +} + +SimpleSMTLIBParser::~SimpleSMTLIBParser() { + delete _interpreter; +} + +std::string SimpleSMTLIBParser::getGrammarFileName() const { + return "SimpleSMTLIBParser.g4"; +} + +const std::vector& SimpleSMTLIBParser::getRuleNames() const { + return _ruleNames; +} + +dfa::Vocabulary& SimpleSMTLIBParser::getVocabulary() const { + return _vocabulary; +} + + +//----------------- StartBoolContext ------------------------------------------------------------------ + +SimpleSMTLIBParser::StartBoolContext::StartBoolContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SimpleSMTLIBParser::BoolExpressionContext* SimpleSMTLIBParser::StartBoolContext::boolExpression() { + return getRuleContext(0); +} + +tree::TerminalNode* SimpleSMTLIBParser::StartBoolContext::EOF() { + return getToken(SimpleSMTLIBParser::EOF, 0); +} + + +size_t SimpleSMTLIBParser::StartBoolContext::getRuleIndex() const { + return SimpleSMTLIBParser::RuleStartBool; +} + +void SimpleSMTLIBParser::StartBoolContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterStartBool(this); +} + +void SimpleSMTLIBParser::StartBoolContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitStartBool(this); +} + +SimpleSMTLIBParser::StartBoolContext* SimpleSMTLIBParser::startBool() { + StartBoolContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 0, SimpleSMTLIBParser::RuleStartBool); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(20); + boolExpression(); + setState(21); + match(SimpleSMTLIBParser::EOF); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- StartArithContext ------------------------------------------------------------------ + +SimpleSMTLIBParser::StartArithContext::StartArithContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +SimpleSMTLIBParser::ArithExpressionContext* SimpleSMTLIBParser::StartArithContext::arithExpression() { + return getRuleContext(0); +} + +tree::TerminalNode* SimpleSMTLIBParser::StartArithContext::EOF() { + return getToken(SimpleSMTLIBParser::EOF, 0); +} + + +size_t SimpleSMTLIBParser::StartArithContext::getRuleIndex() const { + return SimpleSMTLIBParser::RuleStartArith; +} + +void SimpleSMTLIBParser::StartArithContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterStartArith(this); +} + +void SimpleSMTLIBParser::StartArithContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitStartArith(this); +} + +SimpleSMTLIBParser::StartArithContext* SimpleSMTLIBParser::startArith() { + StartArithContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 2, SimpleSMTLIBParser::RuleStartArith); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(23); + arithExpression(); + setState(24); + match(SimpleSMTLIBParser::EOF); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- BoolExpressionContext ------------------------------------------------------------------ + +SimpleSMTLIBParser::BoolExpressionContext::BoolExpressionContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +std::vector SimpleSMTLIBParser::BoolExpressionContext::ParOpen() { + return getTokens(SimpleSMTLIBParser::ParOpen); +} + +tree::TerminalNode* SimpleSMTLIBParser::BoolExpressionContext::ParOpen(size_t i) { + return getToken(SimpleSMTLIBParser::ParOpen, i); +} + +SimpleSMTLIBParser::BoolOpContext* SimpleSMTLIBParser::BoolExpressionContext::boolOp() { + return getRuleContext(0); +} + +std::vector SimpleSMTLIBParser::BoolExpressionContext::ParClose() { + return getTokens(SimpleSMTLIBParser::ParClose); +} + +tree::TerminalNode* SimpleSMTLIBParser::BoolExpressionContext::ParClose(size_t i) { + return getToken(SimpleSMTLIBParser::ParClose, i); +} + +std::vector SimpleSMTLIBParser::BoolExpressionContext::boolExpression() { + return getRuleContexts(); +} + +SimpleSMTLIBParser::BoolExpressionContext* SimpleSMTLIBParser::BoolExpressionContext::boolExpression(size_t i) { + return getRuleContext(i); +} + +SimpleSMTLIBParser::CompOpContext* SimpleSMTLIBParser::BoolExpressionContext::compOp() { + return getRuleContext(0); +} + +std::vector SimpleSMTLIBParser::BoolExpressionContext::arithExpression() { + return getRuleContexts(); +} + +SimpleSMTLIBParser::ArithExpressionContext* SimpleSMTLIBParser::BoolExpressionContext::arithExpression(size_t i) { + return getRuleContext(i); +} + +tree::TerminalNode* SimpleSMTLIBParser::BoolExpressionContext::GRW_Let() { + return getToken(SimpleSMTLIBParser::GRW_Let, 0); +} + +std::vector SimpleSMTLIBParser::BoolExpressionContext::varBinding() { + return getRuleContexts(); +} + +SimpleSMTLIBParser::VarBindingContext* SimpleSMTLIBParser::BoolExpressionContext::varBinding(size_t i) { + return getRuleContext(i); +} + +SimpleSMTLIBParser::BoundVarContext* SimpleSMTLIBParser::BoolExpressionContext::boundVar() { + return getRuleContext(0); +} + +tree::TerminalNode* SimpleSMTLIBParser::BoolExpressionContext::PS_True() { + return getToken(SimpleSMTLIBParser::PS_True, 0); +} + +tree::TerminalNode* SimpleSMTLIBParser::BoolExpressionContext::PS_False() { + return getToken(SimpleSMTLIBParser::PS_False, 0); +} + + +size_t SimpleSMTLIBParser::BoolExpressionContext::getRuleIndex() const { + return SimpleSMTLIBParser::RuleBoolExpression; +} + +void SimpleSMTLIBParser::BoolExpressionContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterBoolExpression(this); +} + +void SimpleSMTLIBParser::BoolExpressionContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitBoolExpression(this); +} + +SimpleSMTLIBParser::BoolExpressionContext* SimpleSMTLIBParser::boolExpression() { + BoolExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 4, SimpleSMTLIBParser::RuleBoolExpression); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(56); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 2, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(26); + match(SimpleSMTLIBParser::ParOpen); + setState(27); + boolOp(); + setState(29); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(28); + boolExpression(); + setState(31); + _errHandler->sync(this); + _la = _input->LA(1); + } while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SimpleSMTLIBParser::ParOpen) + | (1ULL << SimpleSMTLIBParser::PS_False) + | (1ULL << SimpleSMTLIBParser::PS_True) + | (1ULL << SimpleSMTLIBParser::UndefinedSymbol))) != 0)); + setState(33); + match(SimpleSMTLIBParser::ParClose); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(35); + match(SimpleSMTLIBParser::ParOpen); + setState(36); + compOp(); + setState(37); + arithExpression(); + setState(38); + arithExpression(); + setState(39); + match(SimpleSMTLIBParser::ParClose); + break; + } + + case 3: { + enterOuterAlt(_localctx, 3); + setState(41); + match(SimpleSMTLIBParser::ParOpen); + setState(42); + match(SimpleSMTLIBParser::GRW_Let); + setState(43); + match(SimpleSMTLIBParser::ParOpen); + setState(45); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(44); + varBinding(); + setState(47); + _errHandler->sync(this); + _la = _input->LA(1); + } while (_la == SimpleSMTLIBParser::ParOpen); + setState(49); + match(SimpleSMTLIBParser::ParClose); + setState(50); + boolExpression(); + setState(51); + match(SimpleSMTLIBParser::ParClose); + break; + } + + case 4: { + enterOuterAlt(_localctx, 4); + setState(53); + boundVar(); + break; + } + + case 5: { + enterOuterAlt(_localctx, 5); + setState(54); + match(SimpleSMTLIBParser::PS_True); + break; + } + + case 6: { + enterOuterAlt(_localctx, 6); + setState(55); + match(SimpleSMTLIBParser::PS_False); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- BoolOpContext ------------------------------------------------------------------ + +SimpleSMTLIBParser::BoolOpContext::BoolOpContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SimpleSMTLIBParser::BoolOpContext::PS_And() { + return getToken(SimpleSMTLIBParser::PS_And, 0); +} + +tree::TerminalNode* SimpleSMTLIBParser::BoolOpContext::PS_Or() { + return getToken(SimpleSMTLIBParser::PS_Or, 0); +} + +tree::TerminalNode* SimpleSMTLIBParser::BoolOpContext::PS_Not() { + return getToken(SimpleSMTLIBParser::PS_Not, 0); +} + + +size_t SimpleSMTLIBParser::BoolOpContext::getRuleIndex() const { + return SimpleSMTLIBParser::RuleBoolOp; +} + +void SimpleSMTLIBParser::BoolOpContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterBoolOp(this); +} + +void SimpleSMTLIBParser::BoolOpContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitBoolOp(this); +} + +SimpleSMTLIBParser::BoolOpContext* SimpleSMTLIBParser::boolOp() { + BoolOpContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 6, SimpleSMTLIBParser::RuleBoolOp); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(58); + _la = _input->LA(1); + if (!((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SimpleSMTLIBParser::PS_And) + | (1ULL << SimpleSMTLIBParser::PS_Or) + | (1ULL << SimpleSMTLIBParser::PS_Not))) != 0))) { + _errHandler->recoverInline(this); + } + else { + _errHandler->reportMatch(this); + consume(); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- ArithExpressionContext ------------------------------------------------------------------ + +SimpleSMTLIBParser::ArithExpressionContext::ArithExpressionContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SimpleSMTLIBParser::ArithExpressionContext::ParOpen() { + return getToken(SimpleSMTLIBParser::ParOpen, 0); +} + +tree::TerminalNode* SimpleSMTLIBParser::ArithExpressionContext::GRW_Ite() { + return getToken(SimpleSMTLIBParser::GRW_Ite, 0); +} + +SimpleSMTLIBParser::BoolExpressionContext* SimpleSMTLIBParser::ArithExpressionContext::boolExpression() { + return getRuleContext(0); +} + +std::vector SimpleSMTLIBParser::ArithExpressionContext::arithExpression() { + return getRuleContexts(); +} + +SimpleSMTLIBParser::ArithExpressionContext* SimpleSMTLIBParser::ArithExpressionContext::arithExpression(size_t i) { + return getRuleContext(i); +} + +tree::TerminalNode* SimpleSMTLIBParser::ArithExpressionContext::ParClose() { + return getToken(SimpleSMTLIBParser::ParClose, 0); +} + +SimpleSMTLIBParser::ArithOpContext* SimpleSMTLIBParser::ArithExpressionContext::arithOp() { + return getRuleContext(0); +} + +SimpleSMTLIBParser::TerminalContext* SimpleSMTLIBParser::ArithExpressionContext::terminal() { + return getRuleContext(0); +} + + +size_t SimpleSMTLIBParser::ArithExpressionContext::getRuleIndex() const { + return SimpleSMTLIBParser::RuleArithExpression; +} + +void SimpleSMTLIBParser::ArithExpressionContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterArithExpression(this); +} + +void SimpleSMTLIBParser::ArithExpressionContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitArithExpression(this); +} + +SimpleSMTLIBParser::ArithExpressionContext* SimpleSMTLIBParser::arithExpression() { + ArithExpressionContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 8, SimpleSMTLIBParser::RuleArithExpression); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(77); + _errHandler->sync(this); + switch (getInterpreter()->adaptivePredict(_input, 4, _ctx)) { + case 1: { + enterOuterAlt(_localctx, 1); + setState(60); + match(SimpleSMTLIBParser::ParOpen); + setState(61); + match(SimpleSMTLIBParser::GRW_Ite); + setState(62); + boolExpression(); + setState(63); + arithExpression(); + setState(64); + arithExpression(); + setState(65); + match(SimpleSMTLIBParser::ParClose); + break; + } + + case 2: { + enterOuterAlt(_localctx, 2); + setState(67); + match(SimpleSMTLIBParser::ParOpen); + setState(68); + arithOp(); + setState(70); + _errHandler->sync(this); + _la = _input->LA(1); + do { + setState(69); + arithExpression(); + setState(72); + _errHandler->sync(this); + _la = _input->LA(1); + } while ((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SimpleSMTLIBParser::ParOpen) + | (1ULL << SimpleSMTLIBParser::PIPE) + | (1ULL << SimpleSMTLIBParser::Numeral) + | (1ULL << SimpleSMTLIBParser::UndefinedSymbol))) != 0)); + setState(74); + match(SimpleSMTLIBParser::ParClose); + break; + } + + case 3: { + enterOuterAlt(_localctx, 3); + setState(76); + terminal(); + break; + } + + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- CompOpContext ------------------------------------------------------------------ + +SimpleSMTLIBParser::CompOpContext::CompOpContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SimpleSMTLIBParser::CompOpContext::PS_Eq() { + return getToken(SimpleSMTLIBParser::PS_Eq, 0); +} + +tree::TerminalNode* SimpleSMTLIBParser::CompOpContext::PS_Lt() { + return getToken(SimpleSMTLIBParser::PS_Lt, 0); +} + +tree::TerminalNode* SimpleSMTLIBParser::CompOpContext::PS_Le() { + return getToken(SimpleSMTLIBParser::PS_Le, 0); +} + +tree::TerminalNode* SimpleSMTLIBParser::CompOpContext::PS_Gt() { + return getToken(SimpleSMTLIBParser::PS_Gt, 0); +} + +tree::TerminalNode* SimpleSMTLIBParser::CompOpContext::PS_Ge() { + return getToken(SimpleSMTLIBParser::PS_Ge, 0); +} + + +size_t SimpleSMTLIBParser::CompOpContext::getRuleIndex() const { + return SimpleSMTLIBParser::RuleCompOp; +} + +void SimpleSMTLIBParser::CompOpContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterCompOp(this); +} + +void SimpleSMTLIBParser::CompOpContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitCompOp(this); +} + +SimpleSMTLIBParser::CompOpContext* SimpleSMTLIBParser::compOp() { + CompOpContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 10, SimpleSMTLIBParser::RuleCompOp); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(79); + _la = _input->LA(1); + if (!((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SimpleSMTLIBParser::PS_Eq) + | (1ULL << SimpleSMTLIBParser::PS_Lt) + | (1ULL << SimpleSMTLIBParser::PS_Le) + | (1ULL << SimpleSMTLIBParser::PS_Gt) + | (1ULL << SimpleSMTLIBParser::PS_Ge))) != 0))) { + _errHandler->recoverInline(this); + } + else { + _errHandler->reportMatch(this); + consume(); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- ArithOpContext ------------------------------------------------------------------ + +SimpleSMTLIBParser::ArithOpContext::ArithOpContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SimpleSMTLIBParser::ArithOpContext::PS_Add() { + return getToken(SimpleSMTLIBParser::PS_Add, 0); +} + +tree::TerminalNode* SimpleSMTLIBParser::ArithOpContext::PS_Sub() { + return getToken(SimpleSMTLIBParser::PS_Sub, 0); +} + +tree::TerminalNode* SimpleSMTLIBParser::ArithOpContext::PS_Mul() { + return getToken(SimpleSMTLIBParser::PS_Mul, 0); +} + +tree::TerminalNode* SimpleSMTLIBParser::ArithOpContext::PS_Div() { + return getToken(SimpleSMTLIBParser::PS_Div, 0); +} + + +size_t SimpleSMTLIBParser::ArithOpContext::getRuleIndex() const { + return SimpleSMTLIBParser::RuleArithOp; +} + +void SimpleSMTLIBParser::ArithOpContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterArithOp(this); +} + +void SimpleSMTLIBParser::ArithOpContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitArithOp(this); +} + +SimpleSMTLIBParser::ArithOpContext* SimpleSMTLIBParser::arithOp() { + ArithOpContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 12, SimpleSMTLIBParser::RuleArithOp); + size_t _la = 0; + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(81); + _la = _input->LA(1); + if (!((((_la & ~ 0x3fULL) == 0) && + ((1ULL << _la) & ((1ULL << SimpleSMTLIBParser::PS_Add) + | (1ULL << SimpleSMTLIBParser::PS_Sub) + | (1ULL << SimpleSMTLIBParser::PS_Div) + | (1ULL << SimpleSMTLIBParser::PS_Mul))) != 0))) { + _errHandler->recoverInline(this); + } + else { + _errHandler->reportMatch(this); + consume(); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- VarBindingContext ------------------------------------------------------------------ + +SimpleSMTLIBParser::VarBindingContext::VarBindingContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SimpleSMTLIBParser::VarBindingContext::ParOpen() { + return getToken(SimpleSMTLIBParser::ParOpen, 0); +} + +tree::TerminalNode* SimpleSMTLIBParser::VarBindingContext::UndefinedSymbol() { + return getToken(SimpleSMTLIBParser::UndefinedSymbol, 0); +} + +SimpleSMTLIBParser::BoolExpressionContext* SimpleSMTLIBParser::VarBindingContext::boolExpression() { + return getRuleContext(0); +} + +tree::TerminalNode* SimpleSMTLIBParser::VarBindingContext::ParClose() { + return getToken(SimpleSMTLIBParser::ParClose, 0); +} + + +size_t SimpleSMTLIBParser::VarBindingContext::getRuleIndex() const { + return SimpleSMTLIBParser::RuleVarBinding; +} + +void SimpleSMTLIBParser::VarBindingContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterVarBinding(this); +} + +void SimpleSMTLIBParser::VarBindingContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitVarBinding(this); +} + +SimpleSMTLIBParser::VarBindingContext* SimpleSMTLIBParser::varBinding() { + VarBindingContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 14, SimpleSMTLIBParser::RuleVarBinding); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(83); + match(SimpleSMTLIBParser::ParOpen); + setState(84); + match(SimpleSMTLIBParser::UndefinedSymbol); + setState(85); + boolExpression(); + setState(86); + match(SimpleSMTLIBParser::ParClose); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- BoundVarContext ------------------------------------------------------------------ + +SimpleSMTLIBParser::BoundVarContext::BoundVarContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SimpleSMTLIBParser::BoundVarContext::UndefinedSymbol() { + return getToken(SimpleSMTLIBParser::UndefinedSymbol, 0); +} + + +size_t SimpleSMTLIBParser::BoundVarContext::getRuleIndex() const { + return SimpleSMTLIBParser::RuleBoundVar; +} + +void SimpleSMTLIBParser::BoundVarContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterBoundVar(this); +} + +void SimpleSMTLIBParser::BoundVarContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitBoundVar(this); +} + +SimpleSMTLIBParser::BoundVarContext* SimpleSMTLIBParser::boundVar() { + BoundVarContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 16, SimpleSMTLIBParser::RuleBoundVar); + + auto onExit = finally([=] { + exitRule(); + }); + try { + enterOuterAlt(_localctx, 1); + setState(88); + match(SimpleSMTLIBParser::UndefinedSymbol); + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +//----------------- TerminalContext ------------------------------------------------------------------ + +SimpleSMTLIBParser::TerminalContext::TerminalContext(ParserRuleContext *parent, size_t invokingState) + : ParserRuleContext(parent, invokingState) { +} + +tree::TerminalNode* SimpleSMTLIBParser::TerminalContext::UndefinedSymbol() { + return getToken(SimpleSMTLIBParser::UndefinedSymbol, 0); +} + +std::vector SimpleSMTLIBParser::TerminalContext::PIPE() { + return getTokens(SimpleSMTLIBParser::PIPE); +} + +tree::TerminalNode* SimpleSMTLIBParser::TerminalContext::PIPE(size_t i) { + return getToken(SimpleSMTLIBParser::PIPE, i); +} + +std::vector SimpleSMTLIBParser::TerminalContext::DOUBLE_QUOTE() { + return getTokens(SimpleSMTLIBParser::DOUBLE_QUOTE); +} + +tree::TerminalNode* SimpleSMTLIBParser::TerminalContext::DOUBLE_QUOTE(size_t i) { + return getToken(SimpleSMTLIBParser::DOUBLE_QUOTE, i); +} + +tree::TerminalNode* SimpleSMTLIBParser::TerminalContext::Numeral() { + return getToken(SimpleSMTLIBParser::Numeral, 0); +} + + +size_t SimpleSMTLIBParser::TerminalContext::getRuleIndex() const { + return SimpleSMTLIBParser::RuleTerminal; +} + +void SimpleSMTLIBParser::TerminalContext::enterRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->enterTerminal(this); +} + +void SimpleSMTLIBParser::TerminalContext::exitRule(tree::ParseTreeListener *listener) { + auto parserListener = dynamic_cast(listener); + if (parserListener != nullptr) + parserListener->exitTerminal(this); +} + +SimpleSMTLIBParser::TerminalContext* SimpleSMTLIBParser::terminal() { + TerminalContext *_localctx = _tracker.createInstance(_ctx, getState()); + enterRule(_localctx, 18, SimpleSMTLIBParser::RuleTerminal); + + auto onExit = finally([=] { + exitRule(); + }); + try { + setState(97); + _errHandler->sync(this); + switch (_input->LA(1)) { + case SimpleSMTLIBParser::UndefinedSymbol: { + enterOuterAlt(_localctx, 1); + setState(90); + match(SimpleSMTLIBParser::UndefinedSymbol); + break; + } + + case SimpleSMTLIBParser::PIPE: { + enterOuterAlt(_localctx, 2); + setState(91); + match(SimpleSMTLIBParser::PIPE); + setState(92); + match(SimpleSMTLIBParser::DOUBLE_QUOTE); + setState(93); + match(SimpleSMTLIBParser::UndefinedSymbol); + setState(94); + match(SimpleSMTLIBParser::DOUBLE_QUOTE); + setState(95); + match(SimpleSMTLIBParser::PIPE); + break; + } + + case SimpleSMTLIBParser::Numeral: { + enterOuterAlt(_localctx, 3); + setState(96); + match(SimpleSMTLIBParser::Numeral); + break; + } + + default: + throw NoViableAltException(this); + } + + } + catch (RecognitionException &e) { + _errHandler->reportError(this, e); + _localctx->exception = std::current_exception(); + _errHandler->recover(this, _localctx->exception); + } + + return _localctx; +} + +// Static vars and initialization. +std::vector SimpleSMTLIBParser::_decisionToDFA; +atn::PredictionContextCache SimpleSMTLIBParser::_sharedContextCache; + +// We own the ATN which in turn owns the ATN states. +atn::ATN SimpleSMTLIBParser::_atn; +std::vector SimpleSMTLIBParser::_serializedATN; + +std::vector SimpleSMTLIBParser::_ruleNames = { + "startBool", "startArith", "boolExpression", "boolOp", "arithExpression", + "compOp", "arithOp", "varBinding", "boundVar", "terminal" +}; + +std::vector SimpleSMTLIBParser::_literalNames = { + "", "'('", "')'", "'and'", "'or'", "'not'", "'='", "'<'", "'<='", "'>'", + "'>='", "'+'", "'-'", "'/'", "'*'", "'|'", "'\"'", "'false'", "'true'", + "'BINARY'", "'DECIMAL'", "'exists'", "'HEXADECIMAL'", "'forall'", "'let'", + "'match'", "'NUMERAL'", "'par'", "'string'", "'ite'" +}; + +std::vector SimpleSMTLIBParser::_symbolicNames = { + "", "ParOpen", "ParClose", "PS_And", "PS_Or", "PS_Not", "PS_Eq", "PS_Lt", + "PS_Le", "PS_Gt", "PS_Ge", "PS_Add", "PS_Sub", "PS_Div", "PS_Mul", "PIPE", + "DOUBLE_QUOTE", "PS_False", "PS_True", "GRW_Binary", "GRW_Decimal", "GRW_Exists", + "GRW_Hexadecimal", "GRW_Forall", "GRW_Let", "GRW_Match", "GRW_Numeral", + "GRW_Par", "GRW_String", "GRW_Ite", "Numeral", "Binary", "HexDecimal", + "Decimal", "UndefinedSymbol", "WHITESPACE" +}; + +dfa::Vocabulary SimpleSMTLIBParser::_vocabulary(_literalNames, _symbolicNames); + +std::vector SimpleSMTLIBParser::_tokenNames; + +SimpleSMTLIBParser::Initializer::Initializer() { + for (size_t i = 0; i < _symbolicNames.size(); ++i) { + std::string name = _vocabulary.getLiteralName(i); + if (name.empty()) { + name = _vocabulary.getSymbolicName(i); + } + + if (name.empty()) { + _tokenNames.push_back(""); + } else { + _tokenNames.push_back(name); + } + } + + _serializedATN = { + 0x3, 0x608b, 0xa72a, 0x8133, 0xb9ed, 0x417c, 0x3be7, 0x7786, 0x5964, + 0x3, 0x25, 0x66, 0x4, 0x2, 0x9, 0x2, 0x4, 0x3, 0x9, 0x3, 0x4, 0x4, 0x9, + 0x4, 0x4, 0x5, 0x9, 0x5, 0x4, 0x6, 0x9, 0x6, 0x4, 0x7, 0x9, 0x7, 0x4, + 0x8, 0x9, 0x8, 0x4, 0x9, 0x9, 0x9, 0x4, 0xa, 0x9, 0xa, 0x4, 0xb, 0x9, + 0xb, 0x3, 0x2, 0x3, 0x2, 0x3, 0x2, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, + 0x4, 0x3, 0x4, 0x3, 0x4, 0x6, 0x4, 0x20, 0xa, 0x4, 0xd, 0x4, 0xe, 0x4, + 0x21, 0x3, 0x4, 0x3, 0x4, 0x3, 0x4, 0x3, 0x4, 0x3, 0x4, 0x3, 0x4, 0x3, + 0x4, 0x3, 0x4, 0x3, 0x4, 0x3, 0x4, 0x3, 0x4, 0x3, 0x4, 0x6, 0x4, 0x30, + 0xa, 0x4, 0xd, 0x4, 0xe, 0x4, 0x31, 0x3, 0x4, 0x3, 0x4, 0x3, 0x4, 0x3, + 0x4, 0x3, 0x4, 0x3, 0x4, 0x3, 0x4, 0x5, 0x4, 0x3b, 0xa, 0x4, 0x3, 0x5, + 0x3, 0x5, 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, + 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x6, 0x6, 0x49, 0xa, 0x6, 0xd, + 0x6, 0xe, 0x6, 0x4a, 0x3, 0x6, 0x3, 0x6, 0x3, 0x6, 0x5, 0x6, 0x50, 0xa, + 0x6, 0x3, 0x7, 0x3, 0x7, 0x3, 0x8, 0x3, 0x8, 0x3, 0x9, 0x3, 0x9, 0x3, + 0x9, 0x3, 0x9, 0x3, 0x9, 0x3, 0xa, 0x3, 0xa, 0x3, 0xb, 0x3, 0xb, 0x3, + 0xb, 0x3, 0xb, 0x3, 0xb, 0x3, 0xb, 0x3, 0xb, 0x5, 0xb, 0x64, 0xa, 0xb, + 0x3, 0xb, 0x2, 0x2, 0xc, 0x2, 0x4, 0x6, 0x8, 0xa, 0xc, 0xe, 0x10, 0x12, + 0x14, 0x2, 0x5, 0x3, 0x2, 0x5, 0x7, 0x3, 0x2, 0x8, 0xc, 0x3, 0x2, 0xd, + 0x10, 0x2, 0x67, 0x2, 0x16, 0x3, 0x2, 0x2, 0x2, 0x4, 0x19, 0x3, 0x2, + 0x2, 0x2, 0x6, 0x3a, 0x3, 0x2, 0x2, 0x2, 0x8, 0x3c, 0x3, 0x2, 0x2, 0x2, + 0xa, 0x4f, 0x3, 0x2, 0x2, 0x2, 0xc, 0x51, 0x3, 0x2, 0x2, 0x2, 0xe, 0x53, + 0x3, 0x2, 0x2, 0x2, 0x10, 0x55, 0x3, 0x2, 0x2, 0x2, 0x12, 0x5a, 0x3, + 0x2, 0x2, 0x2, 0x14, 0x63, 0x3, 0x2, 0x2, 0x2, 0x16, 0x17, 0x5, 0x6, + 0x4, 0x2, 0x17, 0x18, 0x7, 0x2, 0x2, 0x3, 0x18, 0x3, 0x3, 0x2, 0x2, + 0x2, 0x19, 0x1a, 0x5, 0xa, 0x6, 0x2, 0x1a, 0x1b, 0x7, 0x2, 0x2, 0x3, + 0x1b, 0x5, 0x3, 0x2, 0x2, 0x2, 0x1c, 0x1d, 0x7, 0x3, 0x2, 0x2, 0x1d, + 0x1f, 0x5, 0x8, 0x5, 0x2, 0x1e, 0x20, 0x5, 0x6, 0x4, 0x2, 0x1f, 0x1e, + 0x3, 0x2, 0x2, 0x2, 0x20, 0x21, 0x3, 0x2, 0x2, 0x2, 0x21, 0x1f, 0x3, + 0x2, 0x2, 0x2, 0x21, 0x22, 0x3, 0x2, 0x2, 0x2, 0x22, 0x23, 0x3, 0x2, + 0x2, 0x2, 0x23, 0x24, 0x7, 0x4, 0x2, 0x2, 0x24, 0x3b, 0x3, 0x2, 0x2, + 0x2, 0x25, 0x26, 0x7, 0x3, 0x2, 0x2, 0x26, 0x27, 0x5, 0xc, 0x7, 0x2, + 0x27, 0x28, 0x5, 0xa, 0x6, 0x2, 0x28, 0x29, 0x5, 0xa, 0x6, 0x2, 0x29, + 0x2a, 0x7, 0x4, 0x2, 0x2, 0x2a, 0x3b, 0x3, 0x2, 0x2, 0x2, 0x2b, 0x2c, + 0x7, 0x3, 0x2, 0x2, 0x2c, 0x2d, 0x7, 0x1a, 0x2, 0x2, 0x2d, 0x2f, 0x7, + 0x3, 0x2, 0x2, 0x2e, 0x30, 0x5, 0x10, 0x9, 0x2, 0x2f, 0x2e, 0x3, 0x2, + 0x2, 0x2, 0x30, 0x31, 0x3, 0x2, 0x2, 0x2, 0x31, 0x2f, 0x3, 0x2, 0x2, + 0x2, 0x31, 0x32, 0x3, 0x2, 0x2, 0x2, 0x32, 0x33, 0x3, 0x2, 0x2, 0x2, + 0x33, 0x34, 0x7, 0x4, 0x2, 0x2, 0x34, 0x35, 0x5, 0x6, 0x4, 0x2, 0x35, + 0x36, 0x7, 0x4, 0x2, 0x2, 0x36, 0x3b, 0x3, 0x2, 0x2, 0x2, 0x37, 0x3b, + 0x5, 0x12, 0xa, 0x2, 0x38, 0x3b, 0x7, 0x14, 0x2, 0x2, 0x39, 0x3b, 0x7, + 0x13, 0x2, 0x2, 0x3a, 0x1c, 0x3, 0x2, 0x2, 0x2, 0x3a, 0x25, 0x3, 0x2, + 0x2, 0x2, 0x3a, 0x2b, 0x3, 0x2, 0x2, 0x2, 0x3a, 0x37, 0x3, 0x2, 0x2, + 0x2, 0x3a, 0x38, 0x3, 0x2, 0x2, 0x2, 0x3a, 0x39, 0x3, 0x2, 0x2, 0x2, + 0x3b, 0x7, 0x3, 0x2, 0x2, 0x2, 0x3c, 0x3d, 0x9, 0x2, 0x2, 0x2, 0x3d, + 0x9, 0x3, 0x2, 0x2, 0x2, 0x3e, 0x3f, 0x7, 0x3, 0x2, 0x2, 0x3f, 0x40, + 0x7, 0x1f, 0x2, 0x2, 0x40, 0x41, 0x5, 0x6, 0x4, 0x2, 0x41, 0x42, 0x5, + 0xa, 0x6, 0x2, 0x42, 0x43, 0x5, 0xa, 0x6, 0x2, 0x43, 0x44, 0x7, 0x4, + 0x2, 0x2, 0x44, 0x50, 0x3, 0x2, 0x2, 0x2, 0x45, 0x46, 0x7, 0x3, 0x2, + 0x2, 0x46, 0x48, 0x5, 0xe, 0x8, 0x2, 0x47, 0x49, 0x5, 0xa, 0x6, 0x2, + 0x48, 0x47, 0x3, 0x2, 0x2, 0x2, 0x49, 0x4a, 0x3, 0x2, 0x2, 0x2, 0x4a, + 0x48, 0x3, 0x2, 0x2, 0x2, 0x4a, 0x4b, 0x3, 0x2, 0x2, 0x2, 0x4b, 0x4c, + 0x3, 0x2, 0x2, 0x2, 0x4c, 0x4d, 0x7, 0x4, 0x2, 0x2, 0x4d, 0x50, 0x3, + 0x2, 0x2, 0x2, 0x4e, 0x50, 0x5, 0x14, 0xb, 0x2, 0x4f, 0x3e, 0x3, 0x2, + 0x2, 0x2, 0x4f, 0x45, 0x3, 0x2, 0x2, 0x2, 0x4f, 0x4e, 0x3, 0x2, 0x2, + 0x2, 0x50, 0xb, 0x3, 0x2, 0x2, 0x2, 0x51, 0x52, 0x9, 0x3, 0x2, 0x2, + 0x52, 0xd, 0x3, 0x2, 0x2, 0x2, 0x53, 0x54, 0x9, 0x4, 0x2, 0x2, 0x54, + 0xf, 0x3, 0x2, 0x2, 0x2, 0x55, 0x56, 0x7, 0x3, 0x2, 0x2, 0x56, 0x57, + 0x7, 0x24, 0x2, 0x2, 0x57, 0x58, 0x5, 0x6, 0x4, 0x2, 0x58, 0x59, 0x7, + 0x4, 0x2, 0x2, 0x59, 0x11, 0x3, 0x2, 0x2, 0x2, 0x5a, 0x5b, 0x7, 0x24, + 0x2, 0x2, 0x5b, 0x13, 0x3, 0x2, 0x2, 0x2, 0x5c, 0x64, 0x7, 0x24, 0x2, + 0x2, 0x5d, 0x5e, 0x7, 0x11, 0x2, 0x2, 0x5e, 0x5f, 0x7, 0x12, 0x2, 0x2, + 0x5f, 0x60, 0x7, 0x24, 0x2, 0x2, 0x60, 0x61, 0x7, 0x12, 0x2, 0x2, 0x61, + 0x64, 0x7, 0x11, 0x2, 0x2, 0x62, 0x64, 0x7, 0x20, 0x2, 0x2, 0x63, 0x5c, + 0x3, 0x2, 0x2, 0x2, 0x63, 0x5d, 0x3, 0x2, 0x2, 0x2, 0x63, 0x62, 0x3, + 0x2, 0x2, 0x2, 0x64, 0x15, 0x3, 0x2, 0x2, 0x2, 0x8, 0x21, 0x31, 0x3a, + 0x4a, 0x4f, 0x63, + }; + + atn::ATNDeserializer deserializer; + _atn = deserializer.deserialize(_serializedATN); + + size_t count = _atn.getNumberOfDecisions(); + _decisionToDFA.reserve(count); + for (size_t i = 0; i < count; i++) { + _decisionToDFA.emplace_back(_atn.getDecisionState(i), i); + } +} + +SimpleSMTLIBParser::Initializer SimpleSMTLIBParser::_init; diff --git a/C++Verifier/src/antlr4/SimpleSMTLIBParser.g4 b/C++Verifier/src/antlr4/SimpleSMTLIBParser.g4 new file mode 100644 index 0000000..7efb27a --- /dev/null +++ b/C++Verifier/src/antlr4/SimpleSMTLIBParser.g4 @@ -0,0 +1,92 @@ +/** + * SMT-LIB (v2.6) grammar + * + * Grammar is baesd on the following specification: + * http://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.6-r2017-07-18.pdf + * + * The MIT License (MIT) + * + * Copyright (c) 2017 Julian Thome + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do + * so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + **/ + +parser grammar SimpleSMTLIBParser; + +options { + tokenVocab = SimpleSMTLIBLexer; +} + +startBool + : boolExpression EOF + ; + +startArith + : arithExpression EOF + ; + +boolExpression + : ParOpen boolOp boolExpression+ ParClose + | ParOpen compOp arithExpression arithExpression ParClose + | ParOpen GRW_Let ParOpen varBinding+ ParClose boolExpression ParClose + | boundVar + | PS_True + | PS_False + ; + +boolOp + : PS_And + | PS_Or + | PS_Not + ; + +arithExpression + : ParOpen GRW_Ite boolExpression arithExpression arithExpression ParClose + | ParOpen arithOp arithExpression+ ParClose + | terminal + ; + +compOp + : PS_Eq + | PS_Lt + | PS_Le + | PS_Gt + | PS_Ge + ; + +arithOp + : PS_Add + | PS_Sub + | PS_Mul + | PS_Div + ; + +varBinding + : ParOpen UndefinedSymbol boolExpression ParClose + ; + +boundVar + : UndefinedSymbol + ; + +terminal + : UndefinedSymbol + | PIPE DOUBLE_QUOTE UndefinedSymbol DOUBLE_QUOTE PIPE + | Numeral + ; diff --git a/C++Verifier/src/antlr4/SimpleSMTLIBParser.h b/C++Verifier/src/antlr4/SimpleSMTLIBParser.h new file mode 100644 index 0000000..b2d6e3b --- /dev/null +++ b/C++Verifier/src/antlr4/SimpleSMTLIBParser.h @@ -0,0 +1,241 @@ + +// Generated from SimpleSMTLIBParser.g4 by ANTLR 4.8 + +#pragma once + + +#include "antlr4-runtime.h" + + + + +class SimpleSMTLIBParser : public antlr4::Parser { +public: + enum { + ParOpen = 1, ParClose = 2, PS_And = 3, PS_Or = 4, PS_Not = 5, PS_Eq = 6, + PS_Lt = 7, PS_Le = 8, PS_Gt = 9, PS_Ge = 10, PS_Add = 11, PS_Sub = 12, + PS_Div = 13, PS_Mul = 14, PIPE = 15, DOUBLE_QUOTE = 16, PS_False = 17, + PS_True = 18, GRW_Binary = 19, GRW_Decimal = 20, GRW_Exists = 21, GRW_Hexadecimal = 22, + GRW_Forall = 23, GRW_Let = 24, GRW_Match = 25, GRW_Numeral = 26, GRW_Par = 27, + GRW_String = 28, GRW_Ite = 29, Numeral = 30, Binary = 31, HexDecimal = 32, + Decimal = 33, UndefinedSymbol = 34, WHITESPACE = 35 + }; + + enum { + RuleStartBool = 0, RuleStartArith = 1, RuleBoolExpression = 2, RuleBoolOp = 3, + RuleArithExpression = 4, RuleCompOp = 5, RuleArithOp = 6, RuleVarBinding = 7, + RuleBoundVar = 8, RuleTerminal = 9 + }; + + SimpleSMTLIBParser(antlr4::TokenStream *input); + ~SimpleSMTLIBParser(); + + virtual std::string getGrammarFileName() const override; + virtual const antlr4::atn::ATN& getATN() const override { return _atn; }; + virtual const std::vector& getTokenNames() const override { return _tokenNames; }; // deprecated: use vocabulary instead. + virtual const std::vector& getRuleNames() const override; + virtual antlr4::dfa::Vocabulary& getVocabulary() const override; + + + class StartBoolContext; + class StartArithContext; + class BoolExpressionContext; + class BoolOpContext; + class ArithExpressionContext; + class CompOpContext; + class ArithOpContext; + class VarBindingContext; + class BoundVarContext; + class TerminalContext; + + class StartBoolContext : public antlr4::ParserRuleContext { + public: + StartBoolContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + BoolExpressionContext *boolExpression(); + antlr4::tree::TerminalNode *EOF(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + StartBoolContext* startBool(); + + class StartArithContext : public antlr4::ParserRuleContext { + public: + StartArithContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + ArithExpressionContext *arithExpression(); + antlr4::tree::TerminalNode *EOF(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + StartArithContext* startArith(); + + class BoolExpressionContext : public antlr4::ParserRuleContext { + public: + BoolExpressionContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + std::vector ParOpen(); + antlr4::tree::TerminalNode* ParOpen(size_t i); + BoolOpContext *boolOp(); + std::vector ParClose(); + antlr4::tree::TerminalNode* ParClose(size_t i); + std::vector boolExpression(); + BoolExpressionContext* boolExpression(size_t i); + CompOpContext *compOp(); + std::vector arithExpression(); + ArithExpressionContext* arithExpression(size_t i); + antlr4::tree::TerminalNode *GRW_Let(); + std::vector varBinding(); + VarBindingContext* varBinding(size_t i); + BoundVarContext *boundVar(); + antlr4::tree::TerminalNode *PS_True(); + antlr4::tree::TerminalNode *PS_False(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + BoolExpressionContext* boolExpression(); + + class BoolOpContext : public antlr4::ParserRuleContext { + public: + BoolOpContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *PS_And(); + antlr4::tree::TerminalNode *PS_Or(); + antlr4::tree::TerminalNode *PS_Not(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + BoolOpContext* boolOp(); + + class ArithExpressionContext : public antlr4::ParserRuleContext { + public: + ArithExpressionContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *GRW_Ite(); + BoolExpressionContext *boolExpression(); + std::vector arithExpression(); + ArithExpressionContext* arithExpression(size_t i); + antlr4::tree::TerminalNode *ParClose(); + ArithOpContext *arithOp(); + TerminalContext *terminal(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + ArithExpressionContext* arithExpression(); + + class CompOpContext : public antlr4::ParserRuleContext { + public: + CompOpContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *PS_Eq(); + antlr4::tree::TerminalNode *PS_Lt(); + antlr4::tree::TerminalNode *PS_Le(); + antlr4::tree::TerminalNode *PS_Gt(); + antlr4::tree::TerminalNode *PS_Ge(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + CompOpContext* compOp(); + + class ArithOpContext : public antlr4::ParserRuleContext { + public: + ArithOpContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *PS_Add(); + antlr4::tree::TerminalNode *PS_Sub(); + antlr4::tree::TerminalNode *PS_Mul(); + antlr4::tree::TerminalNode *PS_Div(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + ArithOpContext* arithOp(); + + class VarBindingContext : public antlr4::ParserRuleContext { + public: + VarBindingContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *ParOpen(); + antlr4::tree::TerminalNode *UndefinedSymbol(); + BoolExpressionContext *boolExpression(); + antlr4::tree::TerminalNode *ParClose(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + VarBindingContext* varBinding(); + + class BoundVarContext : public antlr4::ParserRuleContext { + public: + BoundVarContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *UndefinedSymbol(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + BoundVarContext* boundVar(); + + class TerminalContext : public antlr4::ParserRuleContext { + public: + TerminalContext(antlr4::ParserRuleContext *parent, size_t invokingState); + virtual size_t getRuleIndex() const override; + antlr4::tree::TerminalNode *UndefinedSymbol(); + std::vector PIPE(); + antlr4::tree::TerminalNode* PIPE(size_t i); + std::vector DOUBLE_QUOTE(); + antlr4::tree::TerminalNode* DOUBLE_QUOTE(size_t i); + antlr4::tree::TerminalNode *Numeral(); + + virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override; + virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override; + + }; + + TerminalContext* terminal(); + + +private: + static std::vector _decisionToDFA; + static antlr4::atn::PredictionContextCache _sharedContextCache; + static std::vector _ruleNames; + static std::vector _tokenNames; + + static std::vector _literalNames; + static std::vector _symbolicNames; + static antlr4::dfa::Vocabulary _vocabulary; + static antlr4::atn::ATN _atn; + static std::vector _serializedATN; + + + struct Initializer { + Initializer(); + }; + static Initializer _init; +}; + diff --git a/C++Verifier/src/antlr4/SimpleSMTLIBParser.interp b/C++Verifier/src/antlr4/SimpleSMTLIBParser.interp new file mode 100644 index 0000000..1acec39 --- /dev/null +++ b/C++Verifier/src/antlr4/SimpleSMTLIBParser.interp @@ -0,0 +1,91 @@ +token literal names: +null +'(' +')' +'and' +'or' +'not' +'=' +'<' +'<=' +'>' +'>=' +'+' +'-' +'/' +'*' +'|' +'"' +'false' +'true' +'BINARY' +'DECIMAL' +'exists' +'HEXADECIMAL' +'forall' +'let' +'match' +'NUMERAL' +'par' +'string' +'ite' +null +null +null +null +null +null + +token symbolic names: +null +ParOpen +ParClose +PS_And +PS_Or +PS_Not +PS_Eq +PS_Lt +PS_Le +PS_Gt +PS_Ge +PS_Add +PS_Sub +PS_Div +PS_Mul +PIPE +DOUBLE_QUOTE +PS_False +PS_True +GRW_Binary +GRW_Decimal +GRW_Exists +GRW_Hexadecimal +GRW_Forall +GRW_Let +GRW_Match +GRW_Numeral +GRW_Par +GRW_String +GRW_Ite +Numeral +Binary +HexDecimal +Decimal +UndefinedSymbol +WHITESPACE + +rule names: +startBool +startArith +boolExpression +boolOp +arithExpression +compOp +arithOp +varBinding +boundVar +terminal + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 37, 102, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 6, 4, 32, 10, 4, 13, 4, 14, 4, 33, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 6, 4, 48, 10, 4, 13, 4, 14, 4, 49, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 59, 10, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 6, 6, 73, 10, 6, 13, 6, 14, 6, 74, 3, 6, 3, 6, 3, 6, 5, 6, 80, 10, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 100, 10, 11, 3, 11, 2, 2, 12, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 2, 5, 3, 2, 5, 7, 3, 2, 8, 12, 3, 2, 13, 16, 2, 103, 2, 22, 3, 2, 2, 2, 4, 25, 3, 2, 2, 2, 6, 58, 3, 2, 2, 2, 8, 60, 3, 2, 2, 2, 10, 79, 3, 2, 2, 2, 12, 81, 3, 2, 2, 2, 14, 83, 3, 2, 2, 2, 16, 85, 3, 2, 2, 2, 18, 90, 3, 2, 2, 2, 20, 99, 3, 2, 2, 2, 22, 23, 5, 6, 4, 2, 23, 24, 7, 2, 2, 3, 24, 3, 3, 2, 2, 2, 25, 26, 5, 10, 6, 2, 26, 27, 7, 2, 2, 3, 27, 5, 3, 2, 2, 2, 28, 29, 7, 3, 2, 2, 29, 31, 5, 8, 5, 2, 30, 32, 5, 6, 4, 2, 31, 30, 3, 2, 2, 2, 32, 33, 3, 2, 2, 2, 33, 31, 3, 2, 2, 2, 33, 34, 3, 2, 2, 2, 34, 35, 3, 2, 2, 2, 35, 36, 7, 4, 2, 2, 36, 59, 3, 2, 2, 2, 37, 38, 7, 3, 2, 2, 38, 39, 5, 12, 7, 2, 39, 40, 5, 10, 6, 2, 40, 41, 5, 10, 6, 2, 41, 42, 7, 4, 2, 2, 42, 59, 3, 2, 2, 2, 43, 44, 7, 3, 2, 2, 44, 45, 7, 26, 2, 2, 45, 47, 7, 3, 2, 2, 46, 48, 5, 16, 9, 2, 47, 46, 3, 2, 2, 2, 48, 49, 3, 2, 2, 2, 49, 47, 3, 2, 2, 2, 49, 50, 3, 2, 2, 2, 50, 51, 3, 2, 2, 2, 51, 52, 7, 4, 2, 2, 52, 53, 5, 6, 4, 2, 53, 54, 7, 4, 2, 2, 54, 59, 3, 2, 2, 2, 55, 59, 5, 18, 10, 2, 56, 59, 7, 20, 2, 2, 57, 59, 7, 19, 2, 2, 58, 28, 3, 2, 2, 2, 58, 37, 3, 2, 2, 2, 58, 43, 3, 2, 2, 2, 58, 55, 3, 2, 2, 2, 58, 56, 3, 2, 2, 2, 58, 57, 3, 2, 2, 2, 59, 7, 3, 2, 2, 2, 60, 61, 9, 2, 2, 2, 61, 9, 3, 2, 2, 2, 62, 63, 7, 3, 2, 2, 63, 64, 7, 31, 2, 2, 64, 65, 5, 6, 4, 2, 65, 66, 5, 10, 6, 2, 66, 67, 5, 10, 6, 2, 67, 68, 7, 4, 2, 2, 68, 80, 3, 2, 2, 2, 69, 70, 7, 3, 2, 2, 70, 72, 5, 14, 8, 2, 71, 73, 5, 10, 6, 2, 72, 71, 3, 2, 2, 2, 73, 74, 3, 2, 2, 2, 74, 72, 3, 2, 2, 2, 74, 75, 3, 2, 2, 2, 75, 76, 3, 2, 2, 2, 76, 77, 7, 4, 2, 2, 77, 80, 3, 2, 2, 2, 78, 80, 5, 20, 11, 2, 79, 62, 3, 2, 2, 2, 79, 69, 3, 2, 2, 2, 79, 78, 3, 2, 2, 2, 80, 11, 3, 2, 2, 2, 81, 82, 9, 3, 2, 2, 82, 13, 3, 2, 2, 2, 83, 84, 9, 4, 2, 2, 84, 15, 3, 2, 2, 2, 85, 86, 7, 3, 2, 2, 86, 87, 7, 36, 2, 2, 87, 88, 5, 6, 4, 2, 88, 89, 7, 4, 2, 2, 89, 17, 3, 2, 2, 2, 90, 91, 7, 36, 2, 2, 91, 19, 3, 2, 2, 2, 92, 100, 7, 36, 2, 2, 93, 94, 7, 17, 2, 2, 94, 95, 7, 18, 2, 2, 95, 96, 7, 36, 2, 2, 96, 97, 7, 18, 2, 2, 97, 100, 7, 17, 2, 2, 98, 100, 7, 32, 2, 2, 99, 92, 3, 2, 2, 2, 99, 93, 3, 2, 2, 2, 99, 98, 3, 2, 2, 2, 100, 21, 3, 2, 2, 2, 8, 33, 49, 58, 74, 79, 99] \ No newline at end of file diff --git a/C++Verifier/src/antlr4/SimpleSMTLIBParser.tokens b/C++Verifier/src/antlr4/SimpleSMTLIBParser.tokens new file mode 100644 index 0000000..b5d5bef --- /dev/null +++ b/C++Verifier/src/antlr4/SimpleSMTLIBParser.tokens @@ -0,0 +1,64 @@ +ParOpen=1 +ParClose=2 +PS_And=3 +PS_Or=4 +PS_Not=5 +PS_Eq=6 +PS_Lt=7 +PS_Le=8 +PS_Gt=9 +PS_Ge=10 +PS_Add=11 +PS_Sub=12 +PS_Div=13 +PS_Mul=14 +PIPE=15 +DOUBLE_QUOTE=16 +PS_False=17 +PS_True=18 +GRW_Binary=19 +GRW_Decimal=20 +GRW_Exists=21 +GRW_Hexadecimal=22 +GRW_Forall=23 +GRW_Let=24 +GRW_Match=25 +GRW_Numeral=26 +GRW_Par=27 +GRW_String=28 +GRW_Ite=29 +Numeral=30 +Binary=31 +HexDecimal=32 +Decimal=33 +UndefinedSymbol=34 +WHITESPACE=35 +'('=1 +')'=2 +'and'=3 +'or'=4 +'not'=5 +'='=6 +'<'=7 +'<='=8 +'>'=9 +'>='=10 +'+'=11 +'-'=12 +'/'=13 +'*'=14 +'|'=15 +'"'=16 +'false'=17 +'true'=18 +'BINARY'=19 +'DECIMAL'=20 +'exists'=21 +'HEXADECIMAL'=22 +'forall'=23 +'let'=24 +'match'=25 +'NUMERAL'=26 +'par'=27 +'string'=28 +'ite'=29 diff --git a/C++Verifier/src/antlr4/SimpleSMTLIBParserBaseListener.cpp b/C++Verifier/src/antlr4/SimpleSMTLIBParserBaseListener.cpp new file mode 100644 index 0000000..0254199 --- /dev/null +++ b/C++Verifier/src/antlr4/SimpleSMTLIBParserBaseListener.cpp @@ -0,0 +1,7 @@ + +// Generated from SimpleSMTLIBParser.g4 by ANTLR 4.8 + + +#include "SimpleSMTLIBParserBaseListener.h" + + diff --git a/C++Verifier/src/antlr4/SimpleSMTLIBParserBaseListener.h b/C++Verifier/src/antlr4/SimpleSMTLIBParserBaseListener.h new file mode 100644 index 0000000..7d56b3d --- /dev/null +++ b/C++Verifier/src/antlr4/SimpleSMTLIBParserBaseListener.h @@ -0,0 +1,56 @@ + +// Generated from SimpleSMTLIBParser.g4 by ANTLR 4.8 + +#pragma once + + +#include "antlr4-runtime.h" +#include "SimpleSMTLIBParserListener.h" + + +/** + * This class provides an empty implementation of SimpleSMTLIBParserListener, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. + */ +class SimpleSMTLIBParserBaseListener : public SimpleSMTLIBParserListener { +public: + + virtual void enterStartBool(SimpleSMTLIBParser::StartBoolContext * /*ctx*/) override { } + virtual void exitStartBool(SimpleSMTLIBParser::StartBoolContext * /*ctx*/) override { } + + virtual void enterStartArith(SimpleSMTLIBParser::StartArithContext * /*ctx*/) override { } + virtual void exitStartArith(SimpleSMTLIBParser::StartArithContext * /*ctx*/) override { } + + virtual void enterBoolExpression(SimpleSMTLIBParser::BoolExpressionContext * /*ctx*/) override { } + virtual void exitBoolExpression(SimpleSMTLIBParser::BoolExpressionContext * /*ctx*/) override { } + + virtual void enterBoolOp(SimpleSMTLIBParser::BoolOpContext * /*ctx*/) override { } + virtual void exitBoolOp(SimpleSMTLIBParser::BoolOpContext * /*ctx*/) override { } + + virtual void enterArithExpression(SimpleSMTLIBParser::ArithExpressionContext * /*ctx*/) override { } + virtual void exitArithExpression(SimpleSMTLIBParser::ArithExpressionContext * /*ctx*/) override { } + + virtual void enterCompOp(SimpleSMTLIBParser::CompOpContext * /*ctx*/) override { } + virtual void exitCompOp(SimpleSMTLIBParser::CompOpContext * /*ctx*/) override { } + + virtual void enterArithOp(SimpleSMTLIBParser::ArithOpContext * /*ctx*/) override { } + virtual void exitArithOp(SimpleSMTLIBParser::ArithOpContext * /*ctx*/) override { } + + virtual void enterVarBinding(SimpleSMTLIBParser::VarBindingContext * /*ctx*/) override { } + virtual void exitVarBinding(SimpleSMTLIBParser::VarBindingContext * /*ctx*/) override { } + + virtual void enterBoundVar(SimpleSMTLIBParser::BoundVarContext * /*ctx*/) override { } + virtual void exitBoundVar(SimpleSMTLIBParser::BoundVarContext * /*ctx*/) override { } + + virtual void enterTerminal(SimpleSMTLIBParser::TerminalContext * /*ctx*/) override { } + virtual void exitTerminal(SimpleSMTLIBParser::TerminalContext * /*ctx*/) override { } + + + virtual void enterEveryRule(antlr4::ParserRuleContext * /*ctx*/) override { } + virtual void exitEveryRule(antlr4::ParserRuleContext * /*ctx*/) override { } + virtual void visitTerminal(antlr4::tree::TerminalNode * /*node*/) override { } + virtual void visitErrorNode(antlr4::tree::ErrorNode * /*node*/) override { } + +}; + diff --git a/C++Verifier/src/antlr4/SimpleSMTLIBParserListener.cpp b/C++Verifier/src/antlr4/SimpleSMTLIBParserListener.cpp new file mode 100644 index 0000000..0b5e853 --- /dev/null +++ b/C++Verifier/src/antlr4/SimpleSMTLIBParserListener.cpp @@ -0,0 +1,7 @@ + +// Generated from SimpleSMTLIBParser.g4 by ANTLR 4.8 + + +#include "SimpleSMTLIBParserListener.h" + + diff --git a/C++Verifier/src/antlr4/SimpleSMTLIBParserListener.h b/C++Verifier/src/antlr4/SimpleSMTLIBParserListener.h new file mode 100644 index 0000000..06c1156 --- /dev/null +++ b/C++Verifier/src/antlr4/SimpleSMTLIBParserListener.h @@ -0,0 +1,49 @@ + +// Generated from SimpleSMTLIBParser.g4 by ANTLR 4.8 + +#pragma once + + +#include "antlr4-runtime.h" +#include "SimpleSMTLIBParser.h" + + +/** + * This interface defines an abstract listener for a parse tree produced by SimpleSMTLIBParser. + */ +class SimpleSMTLIBParserListener : public antlr4::tree::ParseTreeListener { +public: + + virtual void enterStartBool(SimpleSMTLIBParser::StartBoolContext *ctx) = 0; + virtual void exitStartBool(SimpleSMTLIBParser::StartBoolContext *ctx) = 0; + + virtual void enterStartArith(SimpleSMTLIBParser::StartArithContext *ctx) = 0; + virtual void exitStartArith(SimpleSMTLIBParser::StartArithContext *ctx) = 0; + + virtual void enterBoolExpression(SimpleSMTLIBParser::BoolExpressionContext *ctx) = 0; + virtual void exitBoolExpression(SimpleSMTLIBParser::BoolExpressionContext *ctx) = 0; + + virtual void enterBoolOp(SimpleSMTLIBParser::BoolOpContext *ctx) = 0; + virtual void exitBoolOp(SimpleSMTLIBParser::BoolOpContext *ctx) = 0; + + virtual void enterArithExpression(SimpleSMTLIBParser::ArithExpressionContext *ctx) = 0; + virtual void exitArithExpression(SimpleSMTLIBParser::ArithExpressionContext *ctx) = 0; + + virtual void enterCompOp(SimpleSMTLIBParser::CompOpContext *ctx) = 0; + virtual void exitCompOp(SimpleSMTLIBParser::CompOpContext *ctx) = 0; + + virtual void enterArithOp(SimpleSMTLIBParser::ArithOpContext *ctx) = 0; + virtual void exitArithOp(SimpleSMTLIBParser::ArithOpContext *ctx) = 0; + + virtual void enterVarBinding(SimpleSMTLIBParser::VarBindingContext *ctx) = 0; + virtual void exitVarBinding(SimpleSMTLIBParser::VarBindingContext *ctx) = 0; + + virtual void enterBoundVar(SimpleSMTLIBParser::BoundVarContext *ctx) = 0; + virtual void exitBoundVar(SimpleSMTLIBParser::BoundVarContext *ctx) = 0; + + virtual void enterTerminal(SimpleSMTLIBParser::TerminalContext *ctx) = 0; + virtual void exitTerminal(SimpleSMTLIBParser::TerminalContext *ctx) = 0; + + +}; + diff --git a/C++Verifier/src/expressions/AddExpr.cpp b/C++Verifier/src/expressions/AddExpr.cpp new file mode 100644 index 0000000..1be2837 --- /dev/null +++ b/C++Verifier/src/expressions/AddExpr.cpp @@ -0,0 +1,31 @@ +#ifndef ADDEXPR_H +#define ADDEXPR_H + +#include +#include "ArithExpr.cpp" + +using namespace std; + +class AddExpr: public ArithExpr { + public: + using ArithExpr::ArithExpr; + + void* evaluate(shared_ptr p) { + string leftValue = evalSingle(left, leftType, p); + string rightValue = evalSingle(right, rightType, p); + string *ret = nullptr; + *ret = applyArithOp(leftValue, rightValue, "+"); + return static_cast(ret); + } + + string evaluate(shared_ptr p, vector constraints, vector locationList, vector variableList) { + string leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + string rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + return applyArithOp(leftValue, rightValue, "+"); + } + string toString() { + return "(" + (left -> toString()) + " + " + (right -> toString()) + ")"; + } +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/AndExpr.cpp b/C++Verifier/src/expressions/AndExpr.cpp new file mode 100644 index 0000000..cc919bf --- /dev/null +++ b/C++Verifier/src/expressions/AndExpr.cpp @@ -0,0 +1,37 @@ +#ifndef ANDEXPR_H +#define ANDEXPR_H + +#include +#include "BoolExpr.cpp" +// #include "../utils/Packet.cpp" + +using namespace std; + +class AndExpr: public BoolExpr { + public: + using BoolExpr::BoolExpr; + + void* evaluate(shared_ptr p) { + bool* leftValue = static_cast(dynamic_pointer_cast(left) -> evaluate(p)); + + bool* rightValue = static_cast(dynamic_pointer_cast(right) -> evaluate(p)); + bool* ret = new bool; + *ret = *leftValue && *rightValue; + delete leftValue; + delete rightValue; + *ret = negated ? !(*ret) : (*ret); + return (static_cast(ret)); + } + + bool evaluate(shared_ptr p, vector constraints, vector locationList, vector variableList, int currentState, vector> rootConstraints) { + bool ret = dynamic_pointer_cast(left) -> evaluate(p, constraints, locationList, variableList, currentState, rootConstraints) && dynamic_pointer_cast(right) -> evaluate(p, constraints, locationList, variableList, currentState, rootConstraints); + return negated ? !ret : ret; + } + + string toString() { + string output = (negated ? "!" : ""); + return output + "(" + (left -> toString()) + " && " + (right -> toString()) + ")"; + } +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/ArithExpr.cpp b/C++Verifier/src/expressions/ArithExpr.cpp new file mode 100644 index 0000000..17ed66d --- /dev/null +++ b/C++Verifier/src/expressions/ArithExpr.cpp @@ -0,0 +1,37 @@ +#ifndef ARITHEXPR_H +#define ARITHEXPR_H + +#include +#include "Expr.h" + +using namespace std; + +class ArithExpr: public virtual Expr { +public: + using Expr::Expr; + + virtual void* evaluate(shared_ptr p) = 0; + + virtual string evaluate(shared_ptr p, vector constraints, vector locationList, vector variableList) = 0; + + static string applyArithOp(string leftValue, string rightValue, string operand) { + long leftVal = stol(leftValue); + long rightVal = stol(rightValue); + if (operand == "+") { + return to_string(leftVal + rightVal); + } else if (operand == "-") { + return to_string(leftVal - rightVal); + } else if (operand == "*") { + return to_string(leftVal * rightVal); + } else if (operand == "/") { + return to_string(leftVal / rightVal); + } + throw std::runtime_error("ArithExpr operand not supported"); + + return "0"; + } + virtual ~ArithExpr() {}; + +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/BoolExpr.cpp b/C++Verifier/src/expressions/BoolExpr.cpp new file mode 100644 index 0000000..50c6524 --- /dev/null +++ b/C++Verifier/src/expressions/BoolExpr.cpp @@ -0,0 +1,38 @@ +#ifndef BOOLEXPR_H +#define BOOLEXPR_H + +#include "Expr.h" +#include "../DSFA/ConstraintTreeNode.cpp" + +class BoolExpr: public virtual Expr { + public: + using Expr::Expr; + + virtual bool evaluate(shared_ptr p, vector constraints, vector locationList, vector variableList, int currentState, vector> rootConstraints) = 0; + + virtual void* evaluate(shared_ptr p) = 0; + + void toggleNegated() { + negated = !negated; + } + static bool applyBoolOp(string leftValue, string rightValue, string operand) { + long leftVal = stol(leftValue); + long rightVal = stol(rightValue); + if (operand == ">") { + return leftVal > rightVal; + } else if (operand == ">=") { + return leftVal >= rightVal; + } else if (operand == "<") { + return leftVal < rightVal; + } else if (operand == "<=") { + return leftVal <= rightVal; + } + // TODO: Throw exception heres + + return false; + } + virtual ~BoolExpr() {}; + bool negated = false; +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/DivExpr.cpp b/C++Verifier/src/expressions/DivExpr.cpp new file mode 100644 index 0000000..698d6dc --- /dev/null +++ b/C++Verifier/src/expressions/DivExpr.cpp @@ -0,0 +1,33 @@ +#ifndef DIVEXPR_H +#define DIVEXPR_H + +#include +#include "ArithExpr.cpp" +// #include "../utils/Packet.cpp" + +using namespace std; + +class DivExpr: public ArithExpr { + public: + using ArithExpr::ArithExpr; + + void* evaluate(shared_ptr p) { + string leftValue = evalSingle(left, leftType, p); + string rightValue = evalSingle(right, rightType, p); + string *ret = nullptr; + *ret = applyArithOp(leftValue, rightValue, "/"); + return static_cast(ret); + } + + string evaluate(shared_ptr p, vector constraints, vector locationList, vector variableList) { + string leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + string rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + return applyArithOp(leftValue, rightValue, "/"); + } + + string toString() { + return "(" + (left -> toString()) + " / " + (right -> toString()) + ")"; + } +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/EqExpr.cpp b/C++Verifier/src/expressions/EqExpr.cpp new file mode 100644 index 0000000..03d0747 --- /dev/null +++ b/C++Verifier/src/expressions/EqExpr.cpp @@ -0,0 +1,78 @@ +#ifndef EQEXPR_H +#define EQEXPR_H + +#include +#include "../utils/utils.cpp" +#include "../DSFA/DSFA.h" + +using namespace std; + +class EqExpr: public BoolExpr { + public: + using BoolExpr::BoolExpr; + + void* evaluate(shared_ptr p) { + // cout << "In EqExpr evaluateA: " << toString() << endl; + string leftValue = evalSingle(left, leftType, p); + string rightValue = evalSingle(right, rightType, p); + // cout << "Comparing: " << leftValue << " with: " << rightValue << endl; + bool* ret = new bool; + *ret = (leftValue == rightValue) ^ negated; + // cout << "returned value: " << *ret << endl; + return static_cast(ret); + } + + bool evaluate(shared_ptr p, vector constraints, vector locationList, vector variableList, int currentState, vector> rootConstraints) { + // cout << "In EqExpr evaluateB: " << toString() << endl; + string leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + string rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + // cout << "Comparing: " << leftValue << " with: " << rightValue << endl; + + + // Now parse variables. Need to do this after the above so that we have the concrete int[] values + if (leftType == VARIABLE || leftType == LOCATION_VAR) { + int level; + if (leftType == VARIABLE) { + level = locationList.size() + getIndexInVector(variableList, leftValue); + } else { + level = getIndexInVector(locationList, leftValue); + } + + if (level >= constraints.size() || constraints[level] == "") { + assert(rightValue != ""); + DSFA::splitIfNew(constraints, 0, rightValue, currentState, rootConstraints); + + return negated; + } else { + leftValue = constraints[level]; + } + + } else if (rightType == VARIABLE || rightType == LOCATION_VAR) { + int level; + if (rightType == VARIABLE) { + level = locationList.size() + getIndexInVector(variableList, rightValue); + } else { + level = getIndexInVector(locationList, rightValue); + } + + if (level >= constraints.size() || constraints[level] == "") { + assert(leftValue != ""); + DSFA::splitIfNew(constraints, 0, leftValue, currentState, rootConstraints); + return negated; + } else { + rightValue = constraints[level]; + } + } else if (leftValue == "" || rightValue == "") { + throw std::runtime_error("Unknown Eq Expression fields"); + } + + return (leftValue == rightValue) ^ negated; + } + + string toString() { + string output = (negated ? "!" : ""); + return output + "(" + (left -> toString()) + " == " + (right -> toString()) + ")"; + } +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/Expr.cpp b/C++Verifier/src/expressions/Expr.cpp new file mode 100644 index 0000000..e768b01 --- /dev/null +++ b/C++Verifier/src/expressions/Expr.cpp @@ -0,0 +1,156 @@ +#include "StringExpr.cpp" +#include "BoolExpr.cpp" +#include "NumExpr.cpp" +#include "ArithExpr.cpp" +#include "NegativeContext.cpp" +#include +#include "../utils/utils.cpp" + + +Expr::ExprType Expr::parseType(shared_ptr o) { + // cout << "Expr parsing" << endl; + if (ArithExpr* c = dynamic_cast(o.get())) { + // cout << "Expr parser done1" << endl; + return Expr::ExprType::ARITH; + } else if (BoolExpr* c = dynamic_cast(o.get())) { + // cout << "Expr parser done2" << endl; + return Expr::ExprType::BOOL; + } else if (NumExpr *c = dynamic_cast(o.get())) { + // cout << "Expr parser done3" << endl; + return Expr::ExprType::VALUE; + } else if (NegativeContext *c = dynamic_cast(o.get())) { + throw std::runtime_error("NegativeContexts should not get to this point"); + } else if (StringExpr *c = dynamic_cast(o.get())) { + string s = c -> getValue(); + std::regex e ("^.\".+\".$"); + if (startsWith(s,"$")) { + return Expr::ExprType::VARIABLE; + } else if (s == "META_rho") { + return Expr::ExprType::RHO; + } else if (s == "TIME") { + return Expr::ExprType::TIME; + } else if (std::regex_match(s,e)) { + c -> trimValue(); + return Expr::ExprType::VALUE; + } + } + + return Expr::ExprType::PACKET; +} + + + +Expr::Expr(shared_ptr _left, shared_ptr _right, shared_ptr> locationReferences, + shared_ptr> variableComparisons) { + // cout << "In Expr Constructor" << endl; + init(_left, _right); + // cout << "Left: " << _left -> toString() << " Left Type: " << leftType << endl; + // cout << "Right: " << _right -> toString() << " Right Type: " << rightType << endl; + // exit(0); + if (leftType == Expr::ExprType::RHO) { + locationReferences -> push_back(dynamic_cast(*right).getValue()); + rightType = Expr::ExprType::LOCATION_VAR; + } else if (leftType == Expr::ExprType::VARIABLE) { + (*variableComparisons)[dynamic_cast(*left).getValue()] = dynamic_cast(*right).getValue(); + } + if (rightType == Expr::ExprType::RHO) { + locationReferences -> push_back(dynamic_cast(*left).getValue()); + leftType = Expr::ExprType::LOCATION_VAR; + } else if (rightType == Expr::ExprType::VARIABLE) { + (*variableComparisons)[dynamic_cast(*right).getValue()] = dynamic_cast(*left).getValue(); + } + // cout << "Successfully created Expr" << endl; +} + +string Expr::evalSingle(shared_ptr val, ExprType valType, shared_ptr p) { + string outValue = ""; + // cout << "In evalSingleA: " << val -> toString() << endl; + switch(valType) { + case PACKET: + // cout << "Type is packet" << endl; + if (StringExpr* c = dynamic_cast(val.get())) { + // cout << "Type is StringExpr" << endl; + // cout << "Getting from packet: " << c -> getValue() << endl; + outValue = p -> get(c -> getValue()); + } else if (NumExpr* c = dynamic_cast(val.get())) { + // cout << "Type is NumExpr" << endl; + outValue = p -> get(c -> getValue()); + } + break; + case VALUE: + // cout << "Type is value" << endl; + if (StringExpr* c = dynamic_cast(val.get())) { + // cout << "It is a string value" << endl; + outValue = c -> getValue(); + } else if (NumExpr* c = dynamic_cast(val.get())) { + // cout << "It is a num value" << endl; + outValue = c -> getValue(); + } else { + throw std::runtime_error("Unexpected expression simple evalSingle. Got Value Type, but niether string nor num"); + } + break; + case ARITH: + // cout << "Type is arith" << endl; + outValue = *(static_cast (dynamic_pointer_cast(val) -> evaluate(p))); + break; + default: + cout << valType << endl; + throw std::runtime_error("Unexpected expression simple evalSingle. Got Unknown Type"); + break; + + } + // cout << "returning: " << outValue << endl; + return outValue; +} + +string Expr::evalSingle(shared_ptr val, ExprType valType, shared_ptr p, + vector constraints, vector locationList, vector variableList) { + string outValue = ""; + // cout << "In evalSingleB" << endl; + switch(valType) { + case PACKET: + if (StringExpr* c = dynamic_cast(val.get())) { + outValue = p -> get(c -> getValue()); + } else if (NumExpr* c = dynamic_cast(val.get())) { + outValue = p -> get(c -> getValue()); + } + break; + case VALUE: + if (StringExpr* c = dynamic_cast(val.get())) { + // cout << "It is a string value" << endl; + outValue = c -> getValue(); + } else if (NumExpr* c = dynamic_cast(val.get())) { + // cout << "It is a num value" << endl; + outValue = c -> getValue(); + } else { + throw std::runtime_error("Unexpected expression simple evalSingle. Got Value Type, but niether string nor num"); + } + break; + case TIME: + // // Convert to string + outValue = p -> getTime(); + break; + case RHO: + outValue = p -> getLocation(); + break; + case VARIABLE: + if (StringExpr* c = dynamic_cast(val.get())) { + auto it = std::find (variableList.begin(), variableList.end(), c -> getValue()); + int level = locationList.size() + (it - variableList.begin()); + outValue = constraints[level]; + } else { + outValue = "WRONG VALUE, throw error here"; + throw std::runtime_error("Unexpected expression simple evalSingle. Got Unknown Type in variable"); + } + + break; + case ARITH: + outValue = dynamic_cast(*val).evaluate(p, constraints, locationList, variableList); + break; + default: + cout << valType << endl; + throw std::runtime_error("Unexpected expression simple evalSingle. Got Unknown Type in second evalSingle"); + break; + } + return outValue; +} \ No newline at end of file diff --git a/C++Verifier/src/expressions/Expr.h b/C++Verifier/src/expressions/Expr.h new file mode 100644 index 0000000..600dc4c --- /dev/null +++ b/C++Verifier/src/expressions/Expr.h @@ -0,0 +1,71 @@ +#ifndef EXPR_H +#define EXPR_H + +#include "../utils/Packet.h" + +using namespace std; + +class Expr { + public: + enum ExprType{ + PACKET, VALUE, ARITH, VARIABLE, BOOL, TIME, RHO, LOCATION_VAR + }; + shared_ptr left; + shared_ptr right; + protected: + + ExprType leftType; + ExprType rightType; + + + private: + void init(shared_ptr _left, shared_ptr _right) { + left = _left; + leftType = parseType(_left); + right = _right; + rightType = parseType(_right); + } + void init(shared_ptr _left) { + left = _left; + leftType = parseType(_left); + right = nullptr; + // rightType = NULL; + } + + static Expr::ExprType parseType(shared_ptr o); + + + public: + + + Expr(shared_ptr _left, shared_ptr _right) { + // cout << "In Expr constructor2" << endl; + // cout << "In Expr Constructor2" << endl; + // cout << "Left: " << _left -> toString() << endl; + // cout << "Right: " << _right -> toString() << endl; + init(_left, _right); + // cout << "Left Type: " << leftType << endl; + // cout << "Right Type: " << rightType << endl; + // cout << "Out Expr constructor" << endl; + }; + Expr(shared_ptr left) { + // cout << "In Expr constructor1" << endl; + init(left); + }; + Expr(){ + // cout << "In Expr constructor0" << endl; + }; + Expr(shared_ptr _left, shared_ptr _right, shared_ptr> locationReferences, + shared_ptr> variableComparisons); + + string evalSingle(shared_ptr val, ExprType valType, shared_ptr p); + + string evalSingle(shared_ptr val, ExprType valType, shared_ptr p, + vector constraints, vector locationList, vector variableList); + // virtual void* evaluate(Packet p) {}; + virtual ~Expr() {}; + + virtual string toString() = 0; +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/ExprBuilder.cpp b/C++Verifier/src/expressions/ExprBuilder.cpp new file mode 100644 index 0000000..368ec62 --- /dev/null +++ b/C++Verifier/src/expressions/ExprBuilder.cpp @@ -0,0 +1,239 @@ +#include "ExprBuilder.h" + +using namespace std; + +namespace ExprBuilder { + + + bool isValid(antlr4::tree::ParseTree *ctx) { + return ctx != nullptr; + } + + + + /** + * varBinding + * : ParOpen UndefinedSymbol boolExpression ParClose + * ; + */ + void buildVarBinding(SimpleSMTLIBParser::VarBindingContext *ctx, + const shared_ptr>> oldBindings, shared_ptr>> newBindings, + const shared_ptr> locationReferences, const shared_ptr> variableComparisons) { + (*newBindings)[ctx -> UndefinedSymbol() -> getText()] = buildBoolExpr(ctx ->boolExpression(), + oldBindings, locationReferences, variableComparisons); + } + + /** + * boolExpression + * : ParOpen boolOp boolExpression+ ParClose + * | ParOpen compOp arithExpression arithExpression ParClose + * | ParOpen GRW_Let ParOpen var_binding+ ParClose term ParClose + * | boundVar + * | PS_True + * | PS_False + * ; + */ + + + std::shared_ptr buildBoolExpr(SimpleSMTLIBParser::BoolExpressionContext *ctx, + const shared_ptr>> bindings, + const shared_ptr> locationReferences, + const shared_ptr> variableComparisons) { + string exprRaw = ctx -> getText() ; + // cout << "in buildBoolExpr: " << exprRaw << endl; + shared_ptr ret = nullptr; + + if (isValid(ctx -> boolOp())) { + // cout << "in boolop" << endl; + // ParOpen boolOp boolExpression+ ParClose + // cout << "Number of boolExpression: " << ctx ->boolExpression().size() << endl; + // shared_ptr firstBool(); + ret = buildBoolExpr(ctx -> boolExpression(0), bindings, locationReferences, + variableComparisons); + // cout << "boolop created" << endl; + // cout << "checking text for: " << exprRaw << endl; + if (ctx -> boolOp() -> getText() == "and") { + // cout << "creating and of size: " << endl; + // if (ctx == nullptr) { + // cout << "ctx is nullptr" << endl; + // } + // else if ((ctx -> boolExpression()).empty()) { + // cout << "boolExpression is empty" << endl; + // } + // else if ((ctx -> boolExpression(0)) == nullptr) { + // cout << "0 is nullptr" << endl; + // } else if ((ctx -> boolExpression(1)) == nullptr) { + // cout << "1 is nullptr" << endl; + // } + vector bringingOutVector = ctx -> boolExpression(); + // cout << "vector is out" << endl; + // cout << bringingOutVector.size() << endl; + for (int i = 1; i < bringingOutVector.size(); ++i) { + // cout << "Creating ith object pointer:" << i << endl; + // shared_ptr ithObj(); + // cout << "going to buildBoolExpr for ith object" << endl; + // cout << ithObj -> getText() << endl; + std::shared_ptr right = buildBoolExpr(ctx -> boolExpression(i), bindings, + locationReferences, variableComparisons); + // cout << "going in and constructor" << endl; + // cout << "creating AndExpr: " << endl; + // cout << "with left: " << ret -> toString() << endl; + // cout << "and right: " << right -> toString() << endl; + ret = shared_ptr(new AndExpr(ret, right)); + // cout << "and created" << endl; + } + // cout << "out of and loop" << endl; + + } else if (ctx -> boolOp() -> getText() == "or") { + // cout << "creating or" << endl; + for (int i = 1; i < (ctx -> boolExpression()).size(); ++i) { + std::shared_ptr right = buildBoolExpr(ctx -> boolExpression(i), bindings, + locationReferences, variableComparisons); + // cout << "creating OrExpr: " << endl; + // cout << "with left: " << ret -> toString() << endl; + // cout << "and right: " << right -> toString() << endl; + ret = shared_ptr(new OrExpr(ret, right)); + } + // cout << "or created" << endl; + } else if (ctx -> boolOp() -> getText() == "not") { + // cout << "creating not" << endl; + assert (ctx -> boolExpression().size() == 1); + ret -> negated = true; + } + + } else if (isValid(ctx -> compOp())) { + // cout << "in compop with size: " << ctx->arithExpression().size() << endl; + // shared_ptr arithPtr(()); + shared_ptr left = buildArithExpr(ctx -> arithExpression(0)); + // cout << "left created" << endl; + + // arithPtr = shared_ptr(ctx -> arithExpression(1)); + // cout << "going in right now" << endl; + shared_ptr right = buildArithExpr(ctx -> arithExpression(1)); + // cout << "left and right created" << endl; + // cout << (ctx -> compOp() -> getText()) << endl; + + if (ctx -> compOp() -> getText() == "=") { + // cout << "creating EqExpr: " << endl; + // cout << "with left: " << left -> toString() << endl; + // cout << "and right: " << right -> toString() << endl; + ret = shared_ptr(new EqExpr(left, right, locationReferences, variableComparisons)); + // cout << "EqExpr created" << endl; + } else if (ctx -> compOp() -> getText() == "<") { + ret = shared_ptr(new LtExpr(left, right)); + } else if (ctx -> compOp() -> getText() == "<=") { + ret = shared_ptr(new LeExpr(left, right)); + } else if (ctx -> compOp() -> getText() == ">") { + ret = shared_ptr(new GtExpr(left, right)); + } else if (ctx -> compOp() -> getText() == ">=") { + ret = shared_ptr(new GeExpr(left, right)); + } + // cout << "compop created " << endl; + } else if (isValid(ctx -> GRW_Let())) { + // cout << "in let" << endl; + shared_ptr>> newBindings(new unordered_map>(*bindings)); + for (SimpleSMTLIBParser::VarBindingContext* vb: ctx -> varBinding()) { + buildVarBinding(vb, bindings, newBindings, locationReferences, variableComparisons); + } + assert(ctx -> boolExpression().size() == 1); + ret = buildBoolExpr(ctx -> boolExpression(0), newBindings, locationReferences, variableComparisons); + + } else if (isValid(ctx -> boundVar())) { + // cout << "in boundVar" << endl; + ret = bindings -> at(ctx -> boundVar() -> getText()); + // ret = move(test); + // ret = bindings -> at(test); + } else if (isValid(ctx -> PS_True())) { + // // PS_True + // cout << "true" << endl; + ret = shared_ptr(new TrueExpr()); + } else if (isValid(ctx -> PS_False())) { + // // PS_False + // cout << "false" << endl; + ret = shared_ptr(new TrueExpr()); + ret -> toggleNegated(); + } + // cout << "buildBoolExpr complete: " << exprRaw << endl; + // cout << "returning" << endl; + return ret; + + } + + /** + * arithExpression + * : ParOpen GRW_Ite boolExpression arithExpression arithExpression ParClose + * | ParOpen arithOp arithExpression+ ParClose + * | terminal + * ; + */ + + std::shared_ptr buildArithExpr(SimpleSMTLIBParser::ArithExpressionContext *ctx) { + shared_ptr ret = nullptr; + // cout << "in buildArithExpr" << endl; + if (isValid(ctx -> GRW_Ite())) { + // cout << "in ite " << endl; + shared_ptr condition = buildBoolExpr(ctx -> boolExpression(), shared_ptr>>(new unordered_map>()), nullptr, nullptr); + + shared_ptr left = buildArithExpr(ctx -> arithExpression(0)); + shared_ptr right = buildArithExpr(ctx -> arithExpression(1)); + + ret = std::shared_ptr( new IteExpr(condition, left, right) ); + + } else if (isValid(ctx -> arithOp())) { + // cout << "in arithop " << endl; + if (ctx -> arithExpression().size() == 1) { + assert(ctx -> arithOp() -> getText() == "-"); + shared_ptr only = buildArithExpr(ctx -> arithExpression(0)); + ret = shared_ptr(new NegativeContext(only)); + } else if (ctx -> arithExpression().size() == 2) { + // cout << "in in muti arith " << endl; + ret = buildArithExpr(ctx -> arithExpression(0)); + for (int i = 1; i < ctx -> arithExpression().size(); ++i) { + shared_ptr right = buildArithExpr(ctx -> arithExpression(i)); + if (ctx -> arithOp() -> getText() == "+") { + if (shared_ptr negatedRight = dynamic_pointer_cast(right)) { + ret = shared_ptr(new SubExpr(ret, negatedRight -> left)); + } else { + ret = shared_ptr(new AddExpr(ret, right)); + } + } else if (ctx -> arithOp() -> getText() == "-") { + ret = shared_ptr(new SubExpr(ret, right)); + } else if (ctx -> arithOp() -> getText() == "*") { + if (shared_ptr negatedLeft = dynamic_pointer_cast(ret)) { + // todo: assert left's vaue is 1. + ret = shared_ptr(new NegativeContext(right)); + } else { + ret = shared_ptr(new MulExpr(ret, right)); + } + } else if (ctx -> arithOp() -> getText() == "/") { + ret = shared_ptr(new DivExpr(ret, right)); + } else { + throw std::runtime_error("Unknown arithExpression syntax"); + } + } + } else { + throw std::runtime_error("Unknown arithExpression syntax"); + } + } else if (isValid(ctx -> terminal())) { + // cout << "in terminal " << endl; + if (isValid(ctx -> terminal() -> UndefinedSymbol())) { + ret = shared_ptr(new StringExpr(ctx -> terminal() -> getText())); + } else { + ret = shared_ptr(new NumExpr(stol(ctx -> terminal() -> getText()))); + } + } else { + throw std::runtime_error("Unknown arithExpression syntax"); + } + // cout << "buildArithExpr complete" << endl; + return ret; + } + + std::shared_ptr buildBoolExpr(SimpleSMTLIBParser::StartBoolContext *ctx, + const shared_ptr> locationReferences, const shared_ptr> variableComparisons) { + return buildBoolExpr( + ctx -> boolExpression(), + shared_ptr>> (new unordered_map>()), + locationReferences, + variableComparisons); + } +} diff --git a/C++Verifier/src/expressions/ExprBuilder.h b/C++Verifier/src/expressions/ExprBuilder.h new file mode 100644 index 0000000..1e32bf0 --- /dev/null +++ b/C++Verifier/src/expressions/ExprBuilder.h @@ -0,0 +1,52 @@ +#ifndef EXPRBUILDER_H +#define EXPRBUILDER_H + +#include "../expressions/IteExpr.cpp" + +#include "../expressions/AndExpr.cpp" +#include "../expressions/OrExpr.cpp" +#include "../expressions/EqExpr.cpp" +#include "../expressions/LtExpr.cpp" +#include "../expressions/LeExpr.cpp" +#include "../expressions/GtExpr.cpp" +#include "../expressions/GeExpr.cpp" +#include "../expressions/TrueExpr.cpp" + +#include "../expressions/SubExpr.cpp" +#include "../expressions/AddExpr.cpp" +#include "../expressions/MulExpr.cpp" +#include "../expressions/DivExpr.cpp" +#include "../expressions/StringExpr.cpp" +#include "../expressions/NumExpr.cpp" +#include "../expressions/NegativeContext.cpp" + +#include "../antlr4/SimpleSMTLIBParser.h" + + +namespace ExprBuilder { + bool isValid(shared_ptr ctx); + + void buildVarBinding(SimpleSMTLIBParser::VarBindingContext *ctx, + const shared_ptr>> oldBindings, shared_ptr>> newBindings, + const shared_ptr> locationReferences, const shared_ptr> variableComparisons); + + + + std::shared_ptr buildBoolExpr(SimpleSMTLIBParser::BoolExpressionContext *ctx, + const shared_ptr>> bindings, + const shared_ptr> locationReferences, + const shared_ptr> variableComparisons); + + + std::shared_ptr buildArithExpr(SimpleSMTLIBParser::ArithExpressionContext *ctx); + + std::shared_ptr buildBoolExpr(SimpleSMTLIBParser::StartBoolContext *ctx, + const shared_ptr> locationReferences, + const shared_ptr> variableComparisons); + + +} + + + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/GeExpr.cpp b/C++Verifier/src/expressions/GeExpr.cpp new file mode 100644 index 0000000..4c084ff --- /dev/null +++ b/C++Verifier/src/expressions/GeExpr.cpp @@ -0,0 +1,34 @@ +#ifndef GEEXPR_H +#define GEEXPR_H + +#include +#include "BoolExpr.cpp" +// #include "../utils/Packet.cpp" + +using namespace std; + +class GeExpr: public BoolExpr { + public: + using BoolExpr::BoolExpr; + + void* evaluate(shared_ptr p) { + string leftValue = evalSingle(left, leftType, p); + string rightValue = evalSingle(right, rightType, p); + bool* ret = nullptr; + *ret = applyBoolOp(leftValue, rightValue, ">=") ^ negated; + return static_cast(ret); + } + + bool evaluate(shared_ptr p, vector constraints, vector locationList, vector variableList, int currentState, vector> rootConstraints) { + string leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + string rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + return applyBoolOp(leftValue, rightValue, ">=") ^ negated; + } + + string toString() { + string output = (negated ? "!" : ""); + return output + "(" + left -> toString() + " >= " + right -> toString() + ")"; + } +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/GtExpr.cpp b/C++Verifier/src/expressions/GtExpr.cpp new file mode 100644 index 0000000..7ec51db --- /dev/null +++ b/C++Verifier/src/expressions/GtExpr.cpp @@ -0,0 +1,34 @@ +#ifndef GTEXPR_H +#define GTEXPR_H + +#include +#include "BoolExpr.cpp" +// #include "../utils/Packet.cpp" + +using namespace std; + +class GtExpr: public BoolExpr { + public: + using BoolExpr::BoolExpr; + + void* evaluate(shared_ptr p) { + string leftValue = evalSingle(left, leftType, p); + string rightValue = evalSingle(right, rightType, p); + bool* ret = nullptr; + *ret = applyBoolOp(leftValue, rightValue, ">") ^ negated; + return static_cast(ret); + } + + bool evaluate(shared_ptr p, vector constraints, vector locationList, vector variableList, int currentState, vector> rootConstraints) { + string leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + string rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + return applyBoolOp(leftValue, rightValue, ">") ^ negated; + } + + string toString() { + string output = (negated ? "!" : ""); + return output + "(" + left -> toString() + " > " + right -> toString() + ")"; + } +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/IteExpr.cpp b/C++Verifier/src/expressions/IteExpr.cpp new file mode 100644 index 0000000..84693fd --- /dev/null +++ b/C++Verifier/src/expressions/IteExpr.cpp @@ -0,0 +1,36 @@ +#ifndef ITEEXPR_H +#define ITEEXPR_H + +#include +// #include "../utils/Packet.cpp" +#include "BoolExpr.cpp" + +using namespace std; + +class IteExpr: public Expr { +public: + IteExpr(shared_ptr _condition, shared_ptr left, shared_ptr right) : Expr(move(left), move(right)) { + condition = move(_condition); + } + + void* evaluate(shared_ptr p) { + + bool branch = (!!static_cast(reinterpret_cast(condition -> evaluate(p)))); + string* ret = nullptr; + if (branch) { + *ret = evalSingle(left, leftType, p); + } else { + *ret = evalSingle(right, rightType, p); + } + return static_cast(ret); + } + + string toString() { + return "( ITE " + (condition -> toString()) + " ? " + (left -> toString()) + " : " + (right -> toString()) + ")"; + } + +private: + shared_ptr condition; +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/LeExpr.cpp b/C++Verifier/src/expressions/LeExpr.cpp new file mode 100644 index 0000000..3d1adaa --- /dev/null +++ b/C++Verifier/src/expressions/LeExpr.cpp @@ -0,0 +1,34 @@ +#ifndef LEEXPR_H +#define LEEXPR_H + +#include +#include "BoolExpr.cpp" +// #include "../utils/Packet.cpp" + +using namespace std; + +class LeExpr: public BoolExpr { + public: + using BoolExpr::BoolExpr; + + void* evaluate(shared_ptr p) { + string leftValue = evalSingle(left, leftType, p); + string rightValue = evalSingle(right, rightType, p); + bool* ret = nullptr; + *ret = applyBoolOp(leftValue, rightValue, "<=") ^ negated; + return static_cast(ret); + } + + bool evaluate(shared_ptr p, vector constraints, vector locationList, vector variableList, int currentState, vector> rootConstraints) { + string leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + string rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + return applyBoolOp(leftValue, rightValue, "<=") ^ negated; + } + + string toString() { + string output = (negated ? "!" : ""); + return output + "(" + left -> toString() + " <= " + right -> toString() + ")"; + } +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/LtExpr.cpp b/C++Verifier/src/expressions/LtExpr.cpp new file mode 100644 index 0000000..20ef710 --- /dev/null +++ b/C++Verifier/src/expressions/LtExpr.cpp @@ -0,0 +1,34 @@ +#ifndef LTEXPR_H +#define LTEXPR_H + +#include +#include "BoolExpr.cpp" +// #include "../utils/Packet.h" + +using namespace std; + +class LtExpr: public BoolExpr { + public: + using BoolExpr::BoolExpr; + + void* evaluate(shared_ptr p) { + string leftValue = evalSingle(left, leftType, p); + string rightValue = evalSingle(right, rightType, p); + bool* ret = nullptr; + *ret = applyBoolOp(leftValue, rightValue, "<") ^ negated; + return static_cast(ret); + } + + bool evaluate(shared_ptr p, vector constraints, vector locationList, vector variableList, int currentState, vector> rootConstraints) { + string leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + string rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + return applyBoolOp(leftValue, rightValue, "<") ^ negated; + } + + string toString() { + string output = (negated ? "!" : ""); + return output + "(" + left -> toString() + " < " + right -> toString() + ")"; + } +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/MulExpr.cpp b/C++Verifier/src/expressions/MulExpr.cpp new file mode 100644 index 0000000..335de19 --- /dev/null +++ b/C++Verifier/src/expressions/MulExpr.cpp @@ -0,0 +1,33 @@ +#ifndef MULEXPR_H +#define MULEXPR_H + +#include +#include "ArithExpr.cpp" +// #include "../utils/Packet.cpp" + +using namespace std; + +class MulExpr: public ArithExpr { + public: + using ArithExpr::ArithExpr; + + void* evaluate(shared_ptr p) { + string leftValue = evalSingle(left, leftType, p); + string rightValue = evalSingle(right, rightType, p); + string* ret = nullptr; + *ret = applyArithOp(leftValue, rightValue, "*"); + return static_cast(ret); + } + + string evaluate(shared_ptr p, vector constraints, vector locationList, vector variableList) { + string leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + string rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + return applyArithOp(leftValue, rightValue, "*"); + } + + string toString() { + return "(" + (left -> toString()) + " * " + (right -> toString()) + ")"; + } +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/NegativeContext.cpp b/C++Verifier/src/expressions/NegativeContext.cpp new file mode 100644 index 0000000..9db7837 --- /dev/null +++ b/C++Verifier/src/expressions/NegativeContext.cpp @@ -0,0 +1,14 @@ +#ifndef NEGCONTEXT_H +#define NEGCONTEXT_H + +#include "Expr.h" + +class NegativeContext : public Expr { +public: + using Expr::Expr; + string toString() { + return "NegativeContext"; + } +}; + +#endif diff --git a/C++Verifier/src/expressions/NumExpr.cpp b/C++Verifier/src/expressions/NumExpr.cpp new file mode 100644 index 0000000..0bd8dca --- /dev/null +++ b/C++Verifier/src/expressions/NumExpr.cpp @@ -0,0 +1,28 @@ +#ifndef NUMEXPR_H +#define NUMEXPR_H + +#include "Expr.h" + +using namespace std; + +class NumExpr : public Expr { + long value; + public: + NumExpr(long s) { + // cout << "Creating NumExpr with value: " << s << endl; + value = s; + } + + string getValue() { + + return to_string(value); + } + + string toString() { + // cout << "Current value is " << value << endl; + return getValue(); + } +}; + + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/OrExpr.cpp b/C++Verifier/src/expressions/OrExpr.cpp new file mode 100644 index 0000000..caca63a --- /dev/null +++ b/C++Verifier/src/expressions/OrExpr.cpp @@ -0,0 +1,37 @@ +#ifndef OREXPR_H +#define OREXPR_H + +#include +#include "BoolExpr.cpp" +// #include "../utils/Packet.cpp" + +using namespace std; + +class OrExpr: public BoolExpr { + public: + using BoolExpr::BoolExpr; + + void* evaluate(shared_ptr p) { + bool* leftValue = static_cast(dynamic_pointer_cast(left) -> evaluate(p)); + + bool* rightValue = static_cast(dynamic_pointer_cast(right) -> evaluate(p)); + bool* ret = new bool; + *ret = *leftValue || *rightValue; + delete leftValue; + delete rightValue; + *ret = negated ? !(*ret) : (*ret); + return (static_cast(ret)); + } + + bool evaluate(shared_ptr p, vector constraints, vector locationList, vector variableList, int currentState, vector> rootConstraints) { + bool ret = dynamic_pointer_cast(left) -> evaluate(p, constraints, locationList, variableList, currentState, rootConstraints) || dynamic_pointer_cast(right) -> evaluate(p, constraints, locationList, variableList, currentState, rootConstraints); + return negated ? !ret : ret; + } + + string toString() { + string output = (negated ? "!" : ""); + return output + "(" + (left -> toString()) + " || " + (right -> toString()) + ")"; + } +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/StringExpr.cpp b/C++Verifier/src/expressions/StringExpr.cpp new file mode 100644 index 0000000..974b003 --- /dev/null +++ b/C++Verifier/src/expressions/StringExpr.cpp @@ -0,0 +1,41 @@ +#ifndef STRINGEXPR_H +#define STRINGEXPR_H + +#include "../utils/utils.cpp" +#include "Expr.h" +#include +// #include +using namespace std; + + + +class StringExpr : public Expr { + string value; + std::regex e; + public: + StringExpr(string s) { + if (startsWith(s,"$")) { + leftType = VARIABLE; + } else if (startsWith(s,"META_rho")) { + leftType = RHO; + } else if (startsWith(s,"TIME")) { + leftType = TIME; + } + value = s; + e = regex("^.\".+\".$"); + } + + string getValue() { + return value; + } + + void trimValue() { + value = boost::to_lower_copy(value.substr(2,value.length()-4)); + } + + string toString() { + return value; + } +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/SubExpr.cpp b/C++Verifier/src/expressions/SubExpr.cpp new file mode 100644 index 0000000..71dad71 --- /dev/null +++ b/C++Verifier/src/expressions/SubExpr.cpp @@ -0,0 +1,33 @@ +#ifndef SUBEXPR_H +#define SUBEXPR_H + +#include +#include "ArithExpr.cpp" +// #include "../utils/Packet.cpp" + +using namespace std; + +class SubExpr: public ArithExpr { + public: + using ArithExpr::ArithExpr; + + void* evaluate(shared_ptr p) { + string leftValue = evalSingle(left, leftType, p); + string rightValue = evalSingle(right, rightType, p); + string* ret = nullptr; + *ret = applyArithOp(leftValue, rightValue, "-"); + return static_cast(ret); + } + + string evaluate(shared_ptr p, vector constraints, vector locationList, vector variableList) { + string leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + string rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + return applyArithOp(leftValue, rightValue, "-"); + } + string toString() { + return "(" + (left -> toString()) + " - " + (right -> toString()) + ")"; + } + +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/expressions/TrueExpr.cpp b/C++Verifier/src/expressions/TrueExpr.cpp new file mode 100644 index 0000000..c625710 --- /dev/null +++ b/C++Verifier/src/expressions/TrueExpr.cpp @@ -0,0 +1,32 @@ +#ifndef TRUEEXPR_H +#define TRUEEXPR_H + +#include +#include "BoolExpr.cpp" +// #include "../utils/Packet.cpp" + +using namespace std; + +class TrueExpr: public BoolExpr { +public: + using BoolExpr::BoolExpr; + + void* evaluate(shared_ptr p) { + // cout << "In True evaluateA" << endl; + bool * ret = new bool; + *ret = !negated; + return static_cast (ret); + } + + bool evaluate(shared_ptr p, vector constraints, vector locationList, vector variableList, int currentState, vector> rootConstraints) { + // cout << "In True evaluateB" << endl; + return !negated; + } + + string toString() { + string output = (negated ? "!" : ""); + return output + "True"; + } +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/main.cpp b/C++Verifier/src/main.cpp new file mode 100644 index 0000000..c00559f --- /dev/null +++ b/C++Verifier/src/main.cpp @@ -0,0 +1,276 @@ +#include +#include +#include + +namespace po = boost::program_options; +namespace fs = std::experimental::filesystem; + +#include +#include +#include +#include +#include "SFAProcessor.cpp" +#include "utils/cpuMeasure.h" +#include "utils/PacketParser.cpp" + +using namespace std; +using namespace cppkafka; + +shared_ptr parseLine(string line); +void testKafka(); +void main_process(shared_ptr p, + vector> &invList, + unordered_map >> &invTokeyToProcessor, + shared_ptr producer, + shared_ptr counter); + + +static string prefix; +static string filesOrKafka; +static int filesPerInvariant; + +int main(int argc, char const *argv[]) { + string configDir; + string configFile; + string inputPath; + string KafkaAddress; + string inputType; + string local_socket_ip; + string local_socket_port; + + + po::options_description desc("Allowed options"); + desc.add_options() + ("help", "Arguments for the program") + ("configDir", po::value(&configDir)->default_value("../out/"), "Set configDir") + ("configFile", po::value(&configFile)->default_value("../out/packetformat.json"), "Set configDir") + ("inputPath", po::value(&inputPath)->default_value("../datafiles/38-38.0.001000.csv"), "Set inputPath") + ("filesOrKafka", po::value(&filesOrKafka)->default_value("files"), "Write to file or kafka") + ("KafkaAddress", po::value(&KafkaAddress)->default_value("localhost:9092"), "IP and Port of kafka") + ("numberOfChannels", po::value()->default_value(4), "Number of files/topics to create for Global input") + ("prefix", po::value(&prefix)->default_value("../out/globalInput/"), "Set inputPath") + ("inputType", po::value(&inputType)->default_value("file"), "Input is file or socket") + ("local_socket_ip", po::value(&local_socket_ip)->default_value("127.0.0.1"), "Socket IP where to read events from") + ("local_socket_port", po::value(&local_socket_port)->default_value("10001"), "Socket IP where to read events from") + ; + + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + po::notify(vm); + + // init_cpu_measure(); + + if (vm.count("help")) { + cout << desc << "\n"; + return 0; + } + + pid_t pid = getpid(); + string defaultPath = "/tmp/localVerifier.pid"; + ofstream pidFile(defaultPath); + pidFile << pid << endl; + pidFile.close(); + + + int nFiles = vm["numberOfChannels"].as(); + + fs::path configDirPath(configDir); + configDirPath = fs::absolute(configDirPath); + Configuration config; + shared_ptr producer; + + cout << "configDir = " << configDirPath << "\n" + "inputPath = " << inputPath << std::endl; + + if (filesOrKafka == "files") { + cout << "Output set to files" << endl; + } else if (filesOrKafka == "kafka") { + cout << "Output set to kafka on " << KafkaAddress << endl; + config = { + { "metadata.broker.list", KafkaAddress} + // ,{"debug","all"} + }; + producer = shared_ptr(new Producer(config)); + + + } else { + throw std::runtime_error("Unknown output. Only kafka or files are output options"); + } + + unordered_map> > smFiles; + std::regex e (".*\\.sm\\.([0-9]+|g)"); + for (const auto& dirEntry : fs::recursive_directory_iterator(configDirPath)) { + string filename = dirEntry.path().string(); + if (!(std::regex_match(filename,e))) { + continue; + } + + string basename = filename.substr(0, filename.length() - 5); + if (not contains(smFiles, basename)) { + smFiles[basename] = shared_ptr>(new vector()); + } + shared_ptr> v = smFiles.at(basename); + v -> push_back(filename); + } + + unordered_map >> invTokeyToProcessor; + + vector> invList; + + for (const auto & [ key, value ] : smFiles) { + invList.push_back(shared_ptr(new Invariant(*value))); + } + + int numInvariants = invList.size(); + + cout << "Number of Invariants: " << numInvariants << endl; + + filesPerInvariant = nFiles / numInvariants; + + shared_ptr counter(new int(0)); + + int packetLength = 0; + shared_ptr packetParser = shared_ptr(new PacketParser(configFile)); + packetLength = packetParser -> packetLength; + + cout << "Going to process packets now" << endl; + + if (inputType == "file") { + string line; + ifstream inputFile(inputPath); + while (std::getline(inputFile, line)) { + shared_ptr p = packetParser -> parsePacket(line); + if (p != nullptr) { + main_process(p, invList, invTokeyToProcessor, producer, counter); + } + } + + } else { + int sock = 0, valread; + struct sockaddr_in serv_addr; + unsigned char buffer[1024] = {0}; + if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) + { + printf("\n Socket creation error \n"); + return -1; + } + + serv_addr.sin_family = AF_INET; + serv_addr.sin_port = htons(stoi(local_socket_port)); + + // Convert IPv4 and IPv6 addresses from text to binary form + if(inet_pton(AF_INET, local_socket_ip.c_str(), &serv_addr.sin_addr)<=0) + { + printf("\nInvalid address/ Address not supported \n"); + return -1; + } + + if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) + { + printf("\nConnection Failed \n"); + return -1; + } + + size_t pos = 0; // Start of socket buffer + std::clock_t c_start = std::clock(); + std::clock_t c_end; + double time_elapsed_ms; + unsigned char readBuffer[packetLength]; + memset( readBuffer, 0, packetLength*sizeof(unsigned char)); + int startIndex = 0; // Start of read buffer + while ((valread = read(sock, buffer, (sizeof buffer)))) { + pos = 0; + while(valread - pos >= packetLength) { + + memcpy(readBuffer + startIndex, buffer + pos, packetLength - startIndex); + // for(int i=0; i p = packetParser -> parsePacket(readBuffer); + + p -> inputLine = packetParser -> getPacketString(p); + // cout << "Packet: " << p -> inputLine << endl; + pos += packetLength; + main_process(p, invList, invTokeyToProcessor, producer, counter); + startIndex = 0; + } + int bytesLeft = valread - pos; + if (bytesLeft > 0) { + memcpy(readBuffer + startIndex, buffer + pos, valread - pos); + startIndex = valread - pos; + } + + if (filesOrKafka == "kafka") { + c_end = std::clock(); + time_elapsed_ms = 1000.0 * (c_end-c_start) / CLOCKS_PER_SEC; + if (time_elapsed_ms > 3000) { + producer -> flush(); + c_start = c_end; + } + } + } + } + + if (filesOrKafka == "kafka") { + sleep(5); + producer -> flush(); + } + + cout << "Program finished" << endl; + return 0; +} + +void main_process(shared_ptr p, + vector> &invList, + unordered_map >> &invTokeyToProcessor, + shared_ptr producer, + shared_ptr counter) { + bool out = false; + + for (shared_ptr inv : invList) { + string key = inv -> getKeyString(p); + string invName = inv -> name; + + // Check if we have processors related to key + if (invTokeyToProcessor.find(invName) == invTokeyToProcessor.end()) { + invTokeyToProcessor[invName] = unordered_map>(); + } + + if (invTokeyToProcessor[invName].find(key) == invTokeyToProcessor[invName].end()) { + invTokeyToProcessor[invName][key] = unique_ptr(new SFAProcessor(inv, key)); + } + out = out || (invTokeyToProcessor[invName][key] -> processPacket(p)); + if (out) { + int channel = getChannelNum(key, filesPerInvariant); + string channelName = (inv ->name) + to_string(channel); + string output = p -> originalInput(); + + if (filesOrKafka == "files") { + appendLineToFile(prefix + channelName + ".txt", output); + } else { + producer -> produce(MessageBuilder(channelName).payload(output)); + // (*counter)++; + } + + } + out = false; + + } +} + +// Replace parseline with packetParser parseline +// Goals: Read strings from file or bytes from socket should have the same output. + +shared_ptr parseLine(string line) { + if(startsWith(line, "#") || line.length() == 0 || startsWith(line, "time")) { + return nullptr; + } + return shared_ptr(new Packet(line)); +} + + + + + + diff --git a/C++Verifier/src/rapidjson/allocators.h b/C++Verifier/src/rapidjson/allocators.h new file mode 100644 index 0000000..0b8f5e1 --- /dev/null +++ b/C++Verifier/src/rapidjson/allocators.h @@ -0,0 +1,284 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_ALLOCATORS_H_ +#define RAPIDJSON_ALLOCATORS_H_ + +#include "rapidjson.h" + +RAPIDJSON_NAMESPACE_BEGIN + +/////////////////////////////////////////////////////////////////////////////// +// Allocator + +/*! \class rapidjson::Allocator + \brief Concept for allocating, resizing and freeing memory block. + + Note that Malloc() and Realloc() are non-static but Free() is static. + + So if an allocator need to support Free(), it needs to put its pointer in + the header of memory block. + +\code +concept Allocator { + static const bool kNeedFree; //!< Whether this allocator needs to call Free(). + + // Allocate a memory block. + // \param size of the memory block in bytes. + // \returns pointer to the memory block. + void* Malloc(size_t size); + + // Resize a memory block. + // \param originalPtr The pointer to current memory block. Null pointer is permitted. + // \param originalSize The current size in bytes. (Design issue: since some allocator may not book-keep this, explicitly pass to it can save memory.) + // \param newSize the new size in bytes. + void* Realloc(void* originalPtr, size_t originalSize, size_t newSize); + + // Free a memory block. + // \param pointer to the memory block. Null pointer is permitted. + static void Free(void *ptr); +}; +\endcode +*/ + + +/*! \def RAPIDJSON_ALLOCATOR_DEFAULT_CHUNK_CAPACITY + \ingroup RAPIDJSON_CONFIG + \brief User-defined kDefaultChunkCapacity definition. + + User can define this as any \c size that is a power of 2. +*/ + +#ifndef RAPIDJSON_ALLOCATOR_DEFAULT_CHUNK_CAPACITY +#define RAPIDJSON_ALLOCATOR_DEFAULT_CHUNK_CAPACITY (64 * 1024) +#endif + + +/////////////////////////////////////////////////////////////////////////////// +// CrtAllocator + +//! C-runtime library allocator. +/*! This class is just wrapper for standard C library memory routines. + \note implements Allocator concept +*/ +class CrtAllocator { +public: + static const bool kNeedFree = true; + void* Malloc(size_t size) { + if (size) // behavior of malloc(0) is implementation defined. + return RAPIDJSON_MALLOC(size); + else + return NULL; // standardize to returning NULL. + } + void* Realloc(void* originalPtr, size_t originalSize, size_t newSize) { + (void)originalSize; + if (newSize == 0) { + RAPIDJSON_FREE(originalPtr); + return NULL; + } + return RAPIDJSON_REALLOC(originalPtr, newSize); + } + static void Free(void *ptr) { RAPIDJSON_FREE(ptr); } +}; + +/////////////////////////////////////////////////////////////////////////////// +// MemoryPoolAllocator + +//! Default memory allocator used by the parser and DOM. +/*! This allocator allocate memory blocks from pre-allocated memory chunks. + + It does not free memory blocks. And Realloc() only allocate new memory. + + The memory chunks are allocated by BaseAllocator, which is CrtAllocator by default. + + User may also supply a buffer as the first chunk. + + If the user-buffer is full then additional chunks are allocated by BaseAllocator. + + The user-buffer is not deallocated by this allocator. + + \tparam BaseAllocator the allocator type for allocating memory chunks. Default is CrtAllocator. + \note implements Allocator concept +*/ +template +class MemoryPoolAllocator { +public: + static const bool kNeedFree = false; //!< Tell users that no need to call Free() with this allocator. (concept Allocator) + + //! Constructor with chunkSize. + /*! \param chunkSize The size of memory chunk. The default is kDefaultChunkSize. + \param baseAllocator The allocator for allocating memory chunks. + */ + MemoryPoolAllocator(size_t chunkSize = kDefaultChunkCapacity, BaseAllocator* baseAllocator = 0) : + chunkHead_(0), chunk_capacity_(chunkSize), userBuffer_(0), baseAllocator_(baseAllocator), ownBaseAllocator_(0) + { + } + + //! Constructor with user-supplied buffer. + /*! The user buffer will be used firstly. When it is full, memory pool allocates new chunk with chunk size. + + The user buffer will not be deallocated when this allocator is destructed. + + \param buffer User supplied buffer. + \param size Size of the buffer in bytes. It must at least larger than sizeof(ChunkHeader). + \param chunkSize The size of memory chunk. The default is kDefaultChunkSize. + \param baseAllocator The allocator for allocating memory chunks. + */ + MemoryPoolAllocator(void *buffer, size_t size, size_t chunkSize = kDefaultChunkCapacity, BaseAllocator* baseAllocator = 0) : + chunkHead_(0), chunk_capacity_(chunkSize), userBuffer_(buffer), baseAllocator_(baseAllocator), ownBaseAllocator_(0) + { + RAPIDJSON_ASSERT(buffer != 0); + RAPIDJSON_ASSERT(size > sizeof(ChunkHeader)); + chunkHead_ = reinterpret_cast(buffer); + chunkHead_->capacity = size - sizeof(ChunkHeader); + chunkHead_->size = 0; + chunkHead_->next = 0; + } + + //! Destructor. + /*! This deallocates all memory chunks, excluding the user-supplied buffer. + */ + ~MemoryPoolAllocator() { + Clear(); + RAPIDJSON_DELETE(ownBaseAllocator_); + } + + //! Deallocates all memory chunks, excluding the user-supplied buffer. + void Clear() { + while (chunkHead_ && chunkHead_ != userBuffer_) { + ChunkHeader* next = chunkHead_->next; + baseAllocator_->Free(chunkHead_); + chunkHead_ = next; + } + if (chunkHead_ && chunkHead_ == userBuffer_) + chunkHead_->size = 0; // Clear user buffer + } + + //! Computes the total capacity of allocated memory chunks. + /*! \return total capacity in bytes. + */ + size_t Capacity() const { + size_t capacity = 0; + for (ChunkHeader* c = chunkHead_; c != 0; c = c->next) + capacity += c->capacity; + return capacity; + } + + //! Computes the memory blocks allocated. + /*! \return total used bytes. + */ + size_t Size() const { + size_t size = 0; + for (ChunkHeader* c = chunkHead_; c != 0; c = c->next) + size += c->size; + return size; + } + + //! Allocates a memory block. (concept Allocator) + void* Malloc(size_t size) { + if (!size) + return NULL; + + size = RAPIDJSON_ALIGN(size); + if (chunkHead_ == 0 || chunkHead_->size + size > chunkHead_->capacity) + if (!AddChunk(chunk_capacity_ > size ? chunk_capacity_ : size)) + return NULL; + + void *buffer = reinterpret_cast(chunkHead_) + RAPIDJSON_ALIGN(sizeof(ChunkHeader)) + chunkHead_->size; + chunkHead_->size += size; + return buffer; + } + + //! Resizes a memory block (concept Allocator) + void* Realloc(void* originalPtr, size_t originalSize, size_t newSize) { + if (originalPtr == 0) + return Malloc(newSize); + + if (newSize == 0) + return NULL; + + originalSize = RAPIDJSON_ALIGN(originalSize); + newSize = RAPIDJSON_ALIGN(newSize); + + // Do not shrink if new size is smaller than original + if (originalSize >= newSize) + return originalPtr; + + // Simply expand it if it is the last allocation and there is sufficient space + if (originalPtr == reinterpret_cast(chunkHead_) + RAPIDJSON_ALIGN(sizeof(ChunkHeader)) + chunkHead_->size - originalSize) { + size_t increment = static_cast(newSize - originalSize); + if (chunkHead_->size + increment <= chunkHead_->capacity) { + chunkHead_->size += increment; + return originalPtr; + } + } + + // Realloc process: allocate and copy memory, do not free original buffer. + if (void* newBuffer = Malloc(newSize)) { + if (originalSize) + std::memcpy(newBuffer, originalPtr, originalSize); + return newBuffer; + } + else + return NULL; + } + + //! Frees a memory block (concept Allocator) + static void Free(void *ptr) { (void)ptr; } // Do nothing + +private: + //! Copy constructor is not permitted. + MemoryPoolAllocator(const MemoryPoolAllocator& rhs) /* = delete */; + //! Copy assignment operator is not permitted. + MemoryPoolAllocator& operator=(const MemoryPoolAllocator& rhs) /* = delete */; + + //! Creates a new chunk. + /*! \param capacity Capacity of the chunk in bytes. + \return true if success. + */ + bool AddChunk(size_t capacity) { + if (!baseAllocator_) + ownBaseAllocator_ = baseAllocator_ = RAPIDJSON_NEW(BaseAllocator)(); + if (ChunkHeader* chunk = reinterpret_cast(baseAllocator_->Malloc(RAPIDJSON_ALIGN(sizeof(ChunkHeader)) + capacity))) { + chunk->capacity = capacity; + chunk->size = 0; + chunk->next = chunkHead_; + chunkHead_ = chunk; + return true; + } + else + return false; + } + + static const int kDefaultChunkCapacity = RAPIDJSON_ALLOCATOR_DEFAULT_CHUNK_CAPACITY; //!< Default chunk capacity. + + //! Chunk header for perpending to each chunk. + /*! Chunks are stored as a singly linked list. + */ + struct ChunkHeader { + size_t capacity; //!< Capacity of the chunk in bytes (excluding the header itself). + size_t size; //!< Current size of allocated memory in bytes. + ChunkHeader *next; //!< Next chunk in the linked list. + }; + + ChunkHeader *chunkHead_; //!< Head of the chunk linked-list. Only the head chunk serves allocation. + size_t chunk_capacity_; //!< The minimum capacity of chunk when they are allocated. + void *userBuffer_; //!< User supplied buffer. + BaseAllocator* baseAllocator_; //!< base allocator for allocating memory chunks. + BaseAllocator* ownBaseAllocator_; //!< base allocator created by this object. +}; + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_ENCODINGS_H_ diff --git a/C++Verifier/src/rapidjson/cursorstreamwrapper.h b/C++Verifier/src/rapidjson/cursorstreamwrapper.h new file mode 100644 index 0000000..52c11a7 --- /dev/null +++ b/C++Verifier/src/rapidjson/cursorstreamwrapper.h @@ -0,0 +1,78 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_CURSORSTREAMWRAPPER_H_ +#define RAPIDJSON_CURSORSTREAMWRAPPER_H_ + +#include "stream.h" + +#if defined(__GNUC__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +#endif + +#if defined(_MSC_VER) && _MSC_VER <= 1800 +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4702) // unreachable code +RAPIDJSON_DIAG_OFF(4512) // assignment operator could not be generated +#endif + +RAPIDJSON_NAMESPACE_BEGIN + + +//! Cursor stream wrapper for counting line and column number if error exists. +/*! + \tparam InputStream Any stream that implements Stream Concept +*/ +template > +class CursorStreamWrapper : public GenericStreamWrapper { +public: + typedef typename Encoding::Ch Ch; + + CursorStreamWrapper(InputStream& is): + GenericStreamWrapper(is), line_(1), col_(0) {} + + // counting line and column number + Ch Take() { + Ch ch = this->is_.Take(); + if(ch == '\n') { + line_ ++; + col_ = 0; + } else { + col_ ++; + } + return ch; + } + + //! Get the error line number, if error exists. + size_t GetLine() const { return line_; } + //! Get the error column number, if error exists. + size_t GetColumn() const { return col_; } + +private: + size_t line_; //!< Current Line + size_t col_; //!< Current Column +}; + +#if defined(_MSC_VER) && _MSC_VER <= 1800 +RAPIDJSON_DIAG_POP +#endif + +#if defined(__GNUC__) +RAPIDJSON_DIAG_POP +#endif + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_CURSORSTREAMWRAPPER_H_ diff --git a/C++Verifier/src/rapidjson/document.h b/C++Verifier/src/rapidjson/document.h new file mode 100644 index 0000000..68aaae7 --- /dev/null +++ b/C++Verifier/src/rapidjson/document.h @@ -0,0 +1,2732 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_DOCUMENT_H_ +#define RAPIDJSON_DOCUMENT_H_ + +/*! \file document.h */ + +#include "reader.h" +#include "internal/meta.h" +#include "internal/strfunc.h" +#include "memorystream.h" +#include "encodedstream.h" +#include // placement new +#include +#ifdef __cpp_lib_three_way_comparison +#include +#endif + +RAPIDJSON_DIAG_PUSH +#ifdef __clang__ +RAPIDJSON_DIAG_OFF(padded) +RAPIDJSON_DIAG_OFF(switch-enum) +RAPIDJSON_DIAG_OFF(c++98-compat) +#elif defined(_MSC_VER) +RAPIDJSON_DIAG_OFF(4127) // conditional expression is constant +RAPIDJSON_DIAG_OFF(4244) // conversion from kXxxFlags to 'uint16_t', possible loss of data +#endif + +#ifdef __GNUC__ +RAPIDJSON_DIAG_OFF(effc++) +#endif // __GNUC__ + +#ifndef RAPIDJSON_NOMEMBERITERATORCLASS +#include // std::random_access_iterator_tag +#endif + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS +#include // std::move +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +// Forward declaration. +template +class GenericValue; + +template +class GenericDocument; + +/*! \def RAPIDJSON_DEFAULT_ALLOCATOR + \ingroup RAPIDJSON_CONFIG + \brief Allows to choose default allocator. + + User can define this to use CrtAllocator or MemoryPoolAllocator. +*/ +#ifndef RAPIDJSON_DEFAULT_ALLOCATOR +#define RAPIDJSON_DEFAULT_ALLOCATOR MemoryPoolAllocator +#endif + +/*! \def RAPIDJSON_DEFAULT_STACK_ALLOCATOR + \ingroup RAPIDJSON_CONFIG + \brief Allows to choose default stack allocator for Document. + + User can define this to use CrtAllocator or MemoryPoolAllocator. +*/ +#ifndef RAPIDJSON_DEFAULT_STACK_ALLOCATOR +#define RAPIDJSON_DEFAULT_STACK_ALLOCATOR CrtAllocator +#endif + +/*! \def RAPIDJSON_VALUE_DEFAULT_OBJECT_CAPACITY + \ingroup RAPIDJSON_CONFIG + \brief User defined kDefaultObjectCapacity value. + + User can define this as any natural number. +*/ +#ifndef RAPIDJSON_VALUE_DEFAULT_OBJECT_CAPACITY +// number of objects that rapidjson::Value allocates memory for by default +#define RAPIDJSON_VALUE_DEFAULT_OBJECT_CAPACITY 16 +#endif + +/*! \def RAPIDJSON_VALUE_DEFAULT_ARRAY_CAPACITY + \ingroup RAPIDJSON_CONFIG + \brief User defined kDefaultArrayCapacity value. + + User can define this as any natural number. +*/ +#ifndef RAPIDJSON_VALUE_DEFAULT_ARRAY_CAPACITY +// number of array elements that rapidjson::Value allocates memory for by default +#define RAPIDJSON_VALUE_DEFAULT_ARRAY_CAPACITY 16 +#endif + +//! Name-value pair in a JSON object value. +/*! + This class was internal to GenericValue. It used to be a inner struct. + But a compiler (IBM XL C/C++ for AIX) have reported to have problem with that so it moved as a namespace scope struct. + https://code.google.com/p/rapidjson/issues/detail?id=64 +*/ +template +class GenericMember { +public: + GenericValue name; //!< name of member (must be a string) + GenericValue value; //!< value of member. + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + //! Move constructor in C++11 + GenericMember(GenericMember&& rhs) RAPIDJSON_NOEXCEPT + : name(std::move(rhs.name)), + value(std::move(rhs.value)) + { + } + + //! Move assignment in C++11 + GenericMember& operator=(GenericMember&& rhs) RAPIDJSON_NOEXCEPT { + return *this = static_cast(rhs); + } +#endif + + //! Assignment with move semantics. + /*! \param rhs Source of the assignment. Its name and value will become a null value after assignment. + */ + GenericMember& operator=(GenericMember& rhs) RAPIDJSON_NOEXCEPT { + if (RAPIDJSON_LIKELY(this != &rhs)) { + name = rhs.name; + value = rhs.value; + } + return *this; + } + + // swap() for std::sort() and other potential use in STL. + friend inline void swap(GenericMember& a, GenericMember& b) RAPIDJSON_NOEXCEPT { + a.name.Swap(b.name); + a.value.Swap(b.value); + } + +private: + //! Copy constructor is not permitted. + GenericMember(const GenericMember& rhs); +}; + +/////////////////////////////////////////////////////////////////////////////// +// GenericMemberIterator + +#ifndef RAPIDJSON_NOMEMBERITERATORCLASS + +//! (Constant) member iterator for a JSON object value +/*! + \tparam Const Is this a constant iterator? + \tparam Encoding Encoding of the value. (Even non-string values need to have the same encoding in a document) + \tparam Allocator Allocator type for allocating memory of object, array and string. + + This class implements a Random Access Iterator for GenericMember elements + of a GenericValue, see ISO/IEC 14882:2003(E) C++ standard, 24.1 [lib.iterator.requirements]. + + \note This iterator implementation is mainly intended to avoid implicit + conversions from iterator values to \c NULL, + e.g. from GenericValue::FindMember. + + \note Define \c RAPIDJSON_NOMEMBERITERATORCLASS to fall back to a + pointer-based implementation, if your platform doesn't provide + the C++ header. + + \see GenericMember, GenericValue::MemberIterator, GenericValue::ConstMemberIterator + */ +template +class GenericMemberIterator { + + friend class GenericValue; + template friend class GenericMemberIterator; + + typedef GenericMember PlainType; + typedef typename internal::MaybeAddConst::Type ValueType; + +public: + //! Iterator type itself + typedef GenericMemberIterator Iterator; + //! Constant iterator type + typedef GenericMemberIterator ConstIterator; + //! Non-constant iterator type + typedef GenericMemberIterator NonConstIterator; + + /** \name std::iterator_traits support */ + //@{ + typedef ValueType value_type; + typedef ValueType * pointer; + typedef ValueType & reference; + typedef std::ptrdiff_t difference_type; + typedef std::random_access_iterator_tag iterator_category; + //@} + + //! Pointer to (const) GenericMember + typedef pointer Pointer; + //! Reference to (const) GenericMember + typedef reference Reference; + //! Signed integer type (e.g. \c ptrdiff_t) + typedef difference_type DifferenceType; + + //! Default constructor (singular value) + /*! Creates an iterator pointing to no element. + \note All operations, except for comparisons, are undefined on such values. + */ + GenericMemberIterator() : ptr_() {} + + //! Iterator conversions to more const + /*! + \param it (Non-const) iterator to copy from + + Allows the creation of an iterator from another GenericMemberIterator + that is "less const". Especially, creating a non-constant iterator + from a constant iterator are disabled: + \li const -> non-const (not ok) + \li const -> const (ok) + \li non-const -> const (ok) + \li non-const -> non-const (ok) + + \note If the \c Const template parameter is already \c false, this + constructor effectively defines a regular copy-constructor. + Otherwise, the copy constructor is implicitly defined. + */ + GenericMemberIterator(const NonConstIterator & it) : ptr_(it.ptr_) {} + Iterator& operator=(const NonConstIterator & it) { ptr_ = it.ptr_; return *this; } + + //! @name stepping + //@{ + Iterator& operator++(){ ++ptr_; return *this; } + Iterator& operator--(){ --ptr_; return *this; } + Iterator operator++(int){ Iterator old(*this); ++ptr_; return old; } + Iterator operator--(int){ Iterator old(*this); --ptr_; return old; } + //@} + + //! @name increment/decrement + //@{ + Iterator operator+(DifferenceType n) const { return Iterator(ptr_+n); } + Iterator operator-(DifferenceType n) const { return Iterator(ptr_-n); } + + Iterator& operator+=(DifferenceType n) { ptr_+=n; return *this; } + Iterator& operator-=(DifferenceType n) { ptr_-=n; return *this; } + //@} + + //! @name relations + //@{ + template bool operator==(const GenericMemberIterator& that) const { return ptr_ == that.ptr_; } + template bool operator!=(const GenericMemberIterator& that) const { return ptr_ != that.ptr_; } + template bool operator<=(const GenericMemberIterator& that) const { return ptr_ <= that.ptr_; } + template bool operator>=(const GenericMemberIterator& that) const { return ptr_ >= that.ptr_; } + template bool operator< (const GenericMemberIterator& that) const { return ptr_ < that.ptr_; } + template bool operator> (const GenericMemberIterator& that) const { return ptr_ > that.ptr_; } + +#ifdef __cpp_lib_three_way_comparison + template std::strong_ordering operator<=>(const GenericMemberIterator& that) const { return ptr_ <=> that.ptr_; } +#endif + //@} + + //! @name dereference + //@{ + Reference operator*() const { return *ptr_; } + Pointer operator->() const { return ptr_; } + Reference operator[](DifferenceType n) const { return ptr_[n]; } + //@} + + //! Distance + DifferenceType operator-(ConstIterator that) const { return ptr_-that.ptr_; } + +private: + //! Internal constructor from plain pointer + explicit GenericMemberIterator(Pointer p) : ptr_(p) {} + + Pointer ptr_; //!< raw pointer +}; + +#else // RAPIDJSON_NOMEMBERITERATORCLASS + +// class-based member iterator implementation disabled, use plain pointers + +template +class GenericMemberIterator; + +//! non-const GenericMemberIterator +template +class GenericMemberIterator { + //! use plain pointer as iterator type + typedef GenericMember* Iterator; +}; +//! const GenericMemberIterator +template +class GenericMemberIterator { + //! use plain const pointer as iterator type + typedef const GenericMember* Iterator; +}; + +#endif // RAPIDJSON_NOMEMBERITERATORCLASS + +/////////////////////////////////////////////////////////////////////////////// +// GenericStringRef + +//! Reference to a constant string (not taking a copy) +/*! + \tparam CharType character type of the string + + This helper class is used to automatically infer constant string + references for string literals, especially from \c const \b (!) + character arrays. + + The main use is for creating JSON string values without copying the + source string via an \ref Allocator. This requires that the referenced + string pointers have a sufficient lifetime, which exceeds the lifetime + of the associated GenericValue. + + \b Example + \code + Value v("foo"); // ok, no need to copy & calculate length + const char foo[] = "foo"; + v.SetString(foo); // ok + + const char* bar = foo; + // Value x(bar); // not ok, can't rely on bar's lifetime + Value x(StringRef(bar)); // lifetime explicitly guaranteed by user + Value y(StringRef(bar, 3)); // ok, explicitly pass length + \endcode + + \see StringRef, GenericValue::SetString +*/ +template +struct GenericStringRef { + typedef CharType Ch; //!< character type of the string + + //! Create string reference from \c const character array +#ifndef __clang__ // -Wdocumentation + /*! + This constructor implicitly creates a constant string reference from + a \c const character array. It has better performance than + \ref StringRef(const CharType*) by inferring the string \ref length + from the array length, and also supports strings containing null + characters. + + \tparam N length of the string, automatically inferred + + \param str Constant character array, lifetime assumed to be longer + than the use of the string in e.g. a GenericValue + + \post \ref s == str + + \note Constant complexity. + \note There is a hidden, private overload to disallow references to + non-const character arrays to be created via this constructor. + By this, e.g. function-scope arrays used to be filled via + \c snprintf are excluded from consideration. + In such cases, the referenced string should be \b copied to the + GenericValue instead. + */ +#endif + template + GenericStringRef(const CharType (&str)[N]) RAPIDJSON_NOEXCEPT + : s(str), length(N-1) {} + + //! Explicitly create string reference from \c const character pointer +#ifndef __clang__ // -Wdocumentation + /*! + This constructor can be used to \b explicitly create a reference to + a constant string pointer. + + \see StringRef(const CharType*) + + \param str Constant character pointer, lifetime assumed to be longer + than the use of the string in e.g. a GenericValue + + \post \ref s == str + + \note There is a hidden, private overload to disallow references to + non-const character arrays to be created via this constructor. + By this, e.g. function-scope arrays used to be filled via + \c snprintf are excluded from consideration. + In such cases, the referenced string should be \b copied to the + GenericValue instead. + */ +#endif + explicit GenericStringRef(const CharType* str) + : s(str), length(NotNullStrLen(str)) {} + + //! Create constant string reference from pointer and length +#ifndef __clang__ // -Wdocumentation + /*! \param str constant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue + \param len length of the string, excluding the trailing NULL terminator + + \post \ref s == str && \ref length == len + \note Constant complexity. + */ +#endif + GenericStringRef(const CharType* str, SizeType len) + : s(RAPIDJSON_LIKELY(str) ? str : emptyString), length(len) { RAPIDJSON_ASSERT(str != 0 || len == 0u); } + + GenericStringRef(const GenericStringRef& rhs) : s(rhs.s), length(rhs.length) {} + + //! implicit conversion to plain CharType pointer + operator const Ch *() const { return s; } + + const Ch* const s; //!< plain CharType pointer + const SizeType length; //!< length of the string (excluding the trailing NULL terminator) + +private: + SizeType NotNullStrLen(const CharType* str) { + RAPIDJSON_ASSERT(str != 0); + return internal::StrLen(str); + } + + /// Empty string - used when passing in a NULL pointer + static const Ch emptyString[]; + + //! Disallow construction from non-const array + template + GenericStringRef(CharType (&str)[N]) /* = delete */; + //! Copy assignment operator not permitted - immutable type + GenericStringRef& operator=(const GenericStringRef& rhs) /* = delete */; +}; + +template +const CharType GenericStringRef::emptyString[] = { CharType() }; + +//! Mark a character pointer as constant string +/*! Mark a plain character pointer as a "string literal". This function + can be used to avoid copying a character string to be referenced as a + value in a JSON GenericValue object, if the string's lifetime is known + to be valid long enough. + \tparam CharType Character type of the string + \param str Constant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue + \return GenericStringRef string reference object + \relatesalso GenericStringRef + + \see GenericValue::GenericValue(StringRefType), GenericValue::operator=(StringRefType), GenericValue::SetString(StringRefType), GenericValue::PushBack(StringRefType, Allocator&), GenericValue::AddMember +*/ +template +inline GenericStringRef StringRef(const CharType* str) { + return GenericStringRef(str); +} + +//! Mark a character pointer as constant string +/*! Mark a plain character pointer as a "string literal". This function + can be used to avoid copying a character string to be referenced as a + value in a JSON GenericValue object, if the string's lifetime is known + to be valid long enough. + + This version has better performance with supplied length, and also + supports string containing null characters. + + \tparam CharType character type of the string + \param str Constant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue + \param length The length of source string. + \return GenericStringRef string reference object + \relatesalso GenericStringRef +*/ +template +inline GenericStringRef StringRef(const CharType* str, size_t length) { + return GenericStringRef(str, SizeType(length)); +} + +#if RAPIDJSON_HAS_STDSTRING +//! Mark a string object as constant string +/*! Mark a string object (e.g. \c std::string) as a "string literal". + This function can be used to avoid copying a string to be referenced as a + value in a JSON GenericValue object, if the string's lifetime is known + to be valid long enough. + + \tparam CharType character type of the string + \param str Constant string, lifetime assumed to be longer than the use of the string in e.g. a GenericValue + \return GenericStringRef string reference object + \relatesalso GenericStringRef + \note Requires the definition of the preprocessor symbol \ref RAPIDJSON_HAS_STDSTRING. +*/ +template +inline GenericStringRef StringRef(const std::basic_string& str) { + return GenericStringRef(str.data(), SizeType(str.size())); +} +#endif + +/////////////////////////////////////////////////////////////////////////////// +// GenericValue type traits +namespace internal { + +template +struct IsGenericValueImpl : FalseType {}; + +// select candidates according to nested encoding and allocator types +template struct IsGenericValueImpl::Type, typename Void::Type> + : IsBaseOf, T>::Type {}; + +// helper to match arbitrary GenericValue instantiations, including derived classes +template struct IsGenericValue : IsGenericValueImpl::Type {}; + +} // namespace internal + +/////////////////////////////////////////////////////////////////////////////// +// TypeHelper + +namespace internal { + +template +struct TypeHelper {}; + +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsBool(); } + static bool Get(const ValueType& v) { return v.GetBool(); } + static ValueType& Set(ValueType& v, bool data) { return v.SetBool(data); } + static ValueType& Set(ValueType& v, bool data, typename ValueType::AllocatorType&) { return v.SetBool(data); } +}; + +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsInt(); } + static int Get(const ValueType& v) { return v.GetInt(); } + static ValueType& Set(ValueType& v, int data) { return v.SetInt(data); } + static ValueType& Set(ValueType& v, int data, typename ValueType::AllocatorType&) { return v.SetInt(data); } +}; + +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsUint(); } + static unsigned Get(const ValueType& v) { return v.GetUint(); } + static ValueType& Set(ValueType& v, unsigned data) { return v.SetUint(data); } + static ValueType& Set(ValueType& v, unsigned data, typename ValueType::AllocatorType&) { return v.SetUint(data); } +}; + +#ifdef _MSC_VER +RAPIDJSON_STATIC_ASSERT(sizeof(long) == sizeof(int)); +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsInt(); } + static long Get(const ValueType& v) { return v.GetInt(); } + static ValueType& Set(ValueType& v, long data) { return v.SetInt(data); } + static ValueType& Set(ValueType& v, long data, typename ValueType::AllocatorType&) { return v.SetInt(data); } +}; + +RAPIDJSON_STATIC_ASSERT(sizeof(unsigned long) == sizeof(unsigned)); +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsUint(); } + static unsigned long Get(const ValueType& v) { return v.GetUint(); } + static ValueType& Set(ValueType& v, unsigned long data) { return v.SetUint(data); } + static ValueType& Set(ValueType& v, unsigned long data, typename ValueType::AllocatorType&) { return v.SetUint(data); } +}; +#endif + +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsInt64(); } + static int64_t Get(const ValueType& v) { return v.GetInt64(); } + static ValueType& Set(ValueType& v, int64_t data) { return v.SetInt64(data); } + static ValueType& Set(ValueType& v, int64_t data, typename ValueType::AllocatorType&) { return v.SetInt64(data); } +}; + +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsUint64(); } + static uint64_t Get(const ValueType& v) { return v.GetUint64(); } + static ValueType& Set(ValueType& v, uint64_t data) { return v.SetUint64(data); } + static ValueType& Set(ValueType& v, uint64_t data, typename ValueType::AllocatorType&) { return v.SetUint64(data); } +}; + +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsDouble(); } + static double Get(const ValueType& v) { return v.GetDouble(); } + static ValueType& Set(ValueType& v, double data) { return v.SetDouble(data); } + static ValueType& Set(ValueType& v, double data, typename ValueType::AllocatorType&) { return v.SetDouble(data); } +}; + +template +struct TypeHelper { + static bool Is(const ValueType& v) { return v.IsFloat(); } + static float Get(const ValueType& v) { return v.GetFloat(); } + static ValueType& Set(ValueType& v, float data) { return v.SetFloat(data); } + static ValueType& Set(ValueType& v, float data, typename ValueType::AllocatorType&) { return v.SetFloat(data); } +}; + +template +struct TypeHelper { + typedef const typename ValueType::Ch* StringType; + static bool Is(const ValueType& v) { return v.IsString(); } + static StringType Get(const ValueType& v) { return v.GetString(); } + static ValueType& Set(ValueType& v, const StringType data) { return v.SetString(typename ValueType::StringRefType(data)); } + static ValueType& Set(ValueType& v, const StringType data, typename ValueType::AllocatorType& a) { return v.SetString(data, a); } +}; + +#if RAPIDJSON_HAS_STDSTRING +template +struct TypeHelper > { + typedef std::basic_string StringType; + static bool Is(const ValueType& v) { return v.IsString(); } + static StringType Get(const ValueType& v) { return StringType(v.GetString(), v.GetStringLength()); } + static ValueType& Set(ValueType& v, const StringType& data, typename ValueType::AllocatorType& a) { return v.SetString(data, a); } +}; +#endif + +template +struct TypeHelper { + typedef typename ValueType::Array ArrayType; + static bool Is(const ValueType& v) { return v.IsArray(); } + static ArrayType Get(ValueType& v) { return v.GetArray(); } + static ValueType& Set(ValueType& v, ArrayType data) { return v = data; } + static ValueType& Set(ValueType& v, ArrayType data, typename ValueType::AllocatorType&) { return v = data; } +}; + +template +struct TypeHelper { + typedef typename ValueType::ConstArray ArrayType; + static bool Is(const ValueType& v) { return v.IsArray(); } + static ArrayType Get(const ValueType& v) { return v.GetArray(); } +}; + +template +struct TypeHelper { + typedef typename ValueType::Object ObjectType; + static bool Is(const ValueType& v) { return v.IsObject(); } + static ObjectType Get(ValueType& v) { return v.GetObject(); } + static ValueType& Set(ValueType& v, ObjectType data) { return v = data; } + static ValueType& Set(ValueType& v, ObjectType data, typename ValueType::AllocatorType&) { return v = data; } +}; + +template +struct TypeHelper { + typedef typename ValueType::ConstObject ObjectType; + static bool Is(const ValueType& v) { return v.IsObject(); } + static ObjectType Get(const ValueType& v) { return v.GetObject(); } +}; + +} // namespace internal + +// Forward declarations +template class GenericArray; +template class GenericObject; + +/////////////////////////////////////////////////////////////////////////////// +// GenericValue + +//! Represents a JSON value. Use Value for UTF8 encoding and default allocator. +/*! + A JSON value can be one of 7 types. This class is a variant type supporting + these types. + + Use the Value if UTF8 and default allocator + + \tparam Encoding Encoding of the value. (Even non-string values need to have the same encoding in a document) + \tparam Allocator Allocator type for allocating memory of object, array and string. +*/ +template +class GenericValue { +public: + //! Name-value pair in an object. + typedef GenericMember Member; + typedef Encoding EncodingType; //!< Encoding type from template parameter. + typedef Allocator AllocatorType; //!< Allocator type from template parameter. + typedef typename Encoding::Ch Ch; //!< Character type derived from Encoding. + typedef GenericStringRef StringRefType; //!< Reference to a constant string + typedef typename GenericMemberIterator::Iterator MemberIterator; //!< Member iterator for iterating in object. + typedef typename GenericMemberIterator::Iterator ConstMemberIterator; //!< Constant member iterator for iterating in object. + typedef GenericValue* ValueIterator; //!< Value iterator for iterating in array. + typedef const GenericValue* ConstValueIterator; //!< Constant value iterator for iterating in array. + typedef GenericValue ValueType; //!< Value type of itself. + typedef GenericArray Array; + typedef GenericArray ConstArray; + typedef GenericObject Object; + typedef GenericObject ConstObject; + + //!@name Constructors and destructor. + //@{ + + //! Default constructor creates a null value. + GenericValue() RAPIDJSON_NOEXCEPT : data_() { data_.f.flags = kNullFlag; } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + //! Move constructor in C++11 + GenericValue(GenericValue&& rhs) RAPIDJSON_NOEXCEPT : data_(rhs.data_) { + rhs.data_.f.flags = kNullFlag; // give up contents + } +#endif + +private: + //! Copy constructor is not permitted. + GenericValue(const GenericValue& rhs); + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + //! Moving from a GenericDocument is not permitted. + template + GenericValue(GenericDocument&& rhs); + + //! Move assignment from a GenericDocument is not permitted. + template + GenericValue& operator=(GenericDocument&& rhs); +#endif + +public: + + //! Constructor with JSON value type. + /*! This creates a Value of specified type with default content. + \param type Type of the value. + \note Default content for number is zero. + */ + explicit GenericValue(Type type) RAPIDJSON_NOEXCEPT : data_() { + static const uint16_t defaultFlags[] = { + kNullFlag, kFalseFlag, kTrueFlag, kObjectFlag, kArrayFlag, kShortStringFlag, + kNumberAnyFlag + }; + RAPIDJSON_NOEXCEPT_ASSERT(type >= kNullType && type <= kNumberType); + data_.f.flags = defaultFlags[type]; + + // Use ShortString to store empty string. + if (type == kStringType) + data_.ss.SetLength(0); + } + + //! Explicit copy constructor (with allocator) + /*! Creates a copy of a Value by using the given Allocator + \tparam SourceAllocator allocator of \c rhs + \param rhs Value to copy from (read-only) + \param allocator Allocator for allocating copied elements and buffers. Commonly use GenericDocument::GetAllocator(). + \param copyConstStrings Force copying of constant strings (e.g. referencing an in-situ buffer) + \see CopyFrom() + */ + template + GenericValue(const GenericValue& rhs, Allocator& allocator, bool copyConstStrings = false) { + switch (rhs.GetType()) { + case kObjectType: { + SizeType count = rhs.data_.o.size; + Member* lm = reinterpret_cast(allocator.Malloc(count * sizeof(Member))); + const typename GenericValue::Member* rm = rhs.GetMembersPointer(); + for (SizeType i = 0; i < count; i++) { + new (&lm[i].name) GenericValue(rm[i].name, allocator, copyConstStrings); + new (&lm[i].value) GenericValue(rm[i].value, allocator, copyConstStrings); + } + data_.f.flags = kObjectFlag; + data_.o.size = data_.o.capacity = count; + SetMembersPointer(lm); + } + break; + case kArrayType: { + SizeType count = rhs.data_.a.size; + GenericValue* le = reinterpret_cast(allocator.Malloc(count * sizeof(GenericValue))); + const GenericValue* re = rhs.GetElementsPointer(); + for (SizeType i = 0; i < count; i++) + new (&le[i]) GenericValue(re[i], allocator, copyConstStrings); + data_.f.flags = kArrayFlag; + data_.a.size = data_.a.capacity = count; + SetElementsPointer(le); + } + break; + case kStringType: + if (rhs.data_.f.flags == kConstStringFlag && !copyConstStrings) { + data_.f.flags = rhs.data_.f.flags; + data_ = *reinterpret_cast(&rhs.data_); + } + else + SetStringRaw(StringRef(rhs.GetString(), rhs.GetStringLength()), allocator); + break; + default: + data_.f.flags = rhs.data_.f.flags; + data_ = *reinterpret_cast(&rhs.data_); + break; + } + } + + //! Constructor for boolean value. + /*! \param b Boolean value + \note This constructor is limited to \em real boolean values and rejects + implicitly converted types like arbitrary pointers. Use an explicit cast + to \c bool, if you want to construct a boolean JSON value in such cases. + */ +#ifndef RAPIDJSON_DOXYGEN_RUNNING // hide SFINAE from Doxygen + template + explicit GenericValue(T b, RAPIDJSON_ENABLEIF((internal::IsSame))) RAPIDJSON_NOEXCEPT // See #472 +#else + explicit GenericValue(bool b) RAPIDJSON_NOEXCEPT +#endif + : data_() { + // safe-guard against failing SFINAE + RAPIDJSON_STATIC_ASSERT((internal::IsSame::Value)); + data_.f.flags = b ? kTrueFlag : kFalseFlag; + } + + //! Constructor for int value. + explicit GenericValue(int i) RAPIDJSON_NOEXCEPT : data_() { + data_.n.i64 = i; + data_.f.flags = (i >= 0) ? (kNumberIntFlag | kUintFlag | kUint64Flag) : kNumberIntFlag; + } + + //! Constructor for unsigned value. + explicit GenericValue(unsigned u) RAPIDJSON_NOEXCEPT : data_() { + data_.n.u64 = u; + data_.f.flags = (u & 0x80000000) ? kNumberUintFlag : (kNumberUintFlag | kIntFlag | kInt64Flag); + } + + //! Constructor for int64_t value. + explicit GenericValue(int64_t i64) RAPIDJSON_NOEXCEPT : data_() { + data_.n.i64 = i64; + data_.f.flags = kNumberInt64Flag; + if (i64 >= 0) { + data_.f.flags |= kNumberUint64Flag; + if (!(static_cast(i64) & RAPIDJSON_UINT64_C2(0xFFFFFFFF, 0x00000000))) + data_.f.flags |= kUintFlag; + if (!(static_cast(i64) & RAPIDJSON_UINT64_C2(0xFFFFFFFF, 0x80000000))) + data_.f.flags |= kIntFlag; + } + else if (i64 >= static_cast(RAPIDJSON_UINT64_C2(0xFFFFFFFF, 0x80000000))) + data_.f.flags |= kIntFlag; + } + + //! Constructor for uint64_t value. + explicit GenericValue(uint64_t u64) RAPIDJSON_NOEXCEPT : data_() { + data_.n.u64 = u64; + data_.f.flags = kNumberUint64Flag; + if (!(u64 & RAPIDJSON_UINT64_C2(0x80000000, 0x00000000))) + data_.f.flags |= kInt64Flag; + if (!(u64 & RAPIDJSON_UINT64_C2(0xFFFFFFFF, 0x00000000))) + data_.f.flags |= kUintFlag; + if (!(u64 & RAPIDJSON_UINT64_C2(0xFFFFFFFF, 0x80000000))) + data_.f.flags |= kIntFlag; + } + + //! Constructor for double value. + explicit GenericValue(double d) RAPIDJSON_NOEXCEPT : data_() { data_.n.d = d; data_.f.flags = kNumberDoubleFlag; } + + //! Constructor for float value. + explicit GenericValue(float f) RAPIDJSON_NOEXCEPT : data_() { data_.n.d = static_cast(f); data_.f.flags = kNumberDoubleFlag; } + + //! Constructor for constant string (i.e. do not make a copy of string) + GenericValue(const Ch* s, SizeType length) RAPIDJSON_NOEXCEPT : data_() { SetStringRaw(StringRef(s, length)); } + + //! Constructor for constant string (i.e. do not make a copy of string) + explicit GenericValue(StringRefType s) RAPIDJSON_NOEXCEPT : data_() { SetStringRaw(s); } + + //! Constructor for copy-string (i.e. do make a copy of string) + GenericValue(const Ch* s, SizeType length, Allocator& allocator) : data_() { SetStringRaw(StringRef(s, length), allocator); } + + //! Constructor for copy-string (i.e. do make a copy of string) + GenericValue(const Ch*s, Allocator& allocator) : data_() { SetStringRaw(StringRef(s), allocator); } + +#if RAPIDJSON_HAS_STDSTRING + //! Constructor for copy-string from a string object (i.e. do make a copy of string) + /*! \note Requires the definition of the preprocessor symbol \ref RAPIDJSON_HAS_STDSTRING. + */ + GenericValue(const std::basic_string& s, Allocator& allocator) : data_() { SetStringRaw(StringRef(s), allocator); } +#endif + + //! Constructor for Array. + /*! + \param a An array obtained by \c GetArray(). + \note \c Array is always pass-by-value. + \note the source array is moved into this value and the sourec array becomes empty. + */ + GenericValue(Array a) RAPIDJSON_NOEXCEPT : data_(a.value_.data_) { + a.value_.data_ = Data(); + a.value_.data_.f.flags = kArrayFlag; + } + + //! Constructor for Object. + /*! + \param o An object obtained by \c GetObject(). + \note \c Object is always pass-by-value. + \note the source object is moved into this value and the sourec object becomes empty. + */ + GenericValue(Object o) RAPIDJSON_NOEXCEPT : data_(o.value_.data_) { + o.value_.data_ = Data(); + o.value_.data_.f.flags = kObjectFlag; + } + + //! Destructor. + /*! Need to destruct elements of array, members of object, or copy-string. + */ + ~GenericValue() { + if (Allocator::kNeedFree) { // Shortcut by Allocator's trait + switch(data_.f.flags) { + case kArrayFlag: + { + GenericValue* e = GetElementsPointer(); + for (GenericValue* v = e; v != e + data_.a.size; ++v) + v->~GenericValue(); + Allocator::Free(e); + } + break; + + case kObjectFlag: + for (MemberIterator m = MemberBegin(); m != MemberEnd(); ++m) + m->~Member(); + Allocator::Free(GetMembersPointer()); + break; + + case kCopyStringFlag: + Allocator::Free(const_cast(GetStringPointer())); + break; + + default: + break; // Do nothing for other types. + } + } + } + + //@} + + //!@name Assignment operators + //@{ + + //! Assignment with move semantics. + /*! \param rhs Source of the assignment. It will become a null value after assignment. + */ + GenericValue& operator=(GenericValue& rhs) RAPIDJSON_NOEXCEPT { + if (RAPIDJSON_LIKELY(this != &rhs)) { + this->~GenericValue(); + RawAssign(rhs); + } + return *this; + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + //! Move assignment in C++11 + GenericValue& operator=(GenericValue&& rhs) RAPIDJSON_NOEXCEPT { + return *this = rhs.Move(); + } +#endif + + //! Assignment of constant string reference (no copy) + /*! \param str Constant string reference to be assigned + \note This overload is needed to avoid clashes with the generic primitive type assignment overload below. + \see GenericStringRef, operator=(T) + */ + GenericValue& operator=(StringRefType str) RAPIDJSON_NOEXCEPT { + GenericValue s(str); + return *this = s; + } + + //! Assignment with primitive types. + /*! \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t + \param value The value to be assigned. + + \note The source type \c T explicitly disallows all pointer types, + especially (\c const) \ref Ch*. This helps avoiding implicitly + referencing character strings with insufficient lifetime, use + \ref SetString(const Ch*, Allocator&) (for copying) or + \ref StringRef() (to explicitly mark the pointer as constant) instead. + All other pointer types would implicitly convert to \c bool, + use \ref SetBool() instead. + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::IsPointer), (GenericValue&)) + operator=(T value) { + GenericValue v(value); + return *this = v; + } + + //! Deep-copy assignment from Value + /*! Assigns a \b copy of the Value to the current Value object + \tparam SourceAllocator Allocator type of \c rhs + \param rhs Value to copy from (read-only) + \param allocator Allocator to use for copying + \param copyConstStrings Force copying of constant strings (e.g. referencing an in-situ buffer) + */ + template + GenericValue& CopyFrom(const GenericValue& rhs, Allocator& allocator, bool copyConstStrings = false) { + RAPIDJSON_ASSERT(static_cast(this) != static_cast(&rhs)); + this->~GenericValue(); + new (this) GenericValue(rhs, allocator, copyConstStrings); + return *this; + } + + //! Exchange the contents of this value with those of other. + /*! + \param other Another value. + \note Constant complexity. + */ + GenericValue& Swap(GenericValue& other) RAPIDJSON_NOEXCEPT { + GenericValue temp; + temp.RawAssign(*this); + RawAssign(other); + other.RawAssign(temp); + return *this; + } + + //! free-standing swap function helper + /*! + Helper function to enable support for common swap implementation pattern based on \c std::swap: + \code + void swap(MyClass& a, MyClass& b) { + using std::swap; + swap(a.value, b.value); + // ... + } + \endcode + \see Swap() + */ + friend inline void swap(GenericValue& a, GenericValue& b) RAPIDJSON_NOEXCEPT { a.Swap(b); } + + //! Prepare Value for move semantics + /*! \return *this */ + GenericValue& Move() RAPIDJSON_NOEXCEPT { return *this; } + //@} + + //!@name Equal-to and not-equal-to operators + //@{ + //! Equal-to operator + /*! + \note If an object contains duplicated named member, comparing equality with any object is always \c false. + \note Complexity is quadratic in Object's member number and linear for the rest (number of all values in the subtree and total lengths of all strings). + */ + template + bool operator==(const GenericValue& rhs) const { + typedef GenericValue RhsType; + if (GetType() != rhs.GetType()) + return false; + + switch (GetType()) { + case kObjectType: // Warning: O(n^2) inner-loop + if (data_.o.size != rhs.data_.o.size) + return false; + for (ConstMemberIterator lhsMemberItr = MemberBegin(); lhsMemberItr != MemberEnd(); ++lhsMemberItr) { + typename RhsType::ConstMemberIterator rhsMemberItr = rhs.FindMember(lhsMemberItr->name); + if (rhsMemberItr == rhs.MemberEnd() || lhsMemberItr->value != rhsMemberItr->value) + return false; + } + return true; + + case kArrayType: + if (data_.a.size != rhs.data_.a.size) + return false; + for (SizeType i = 0; i < data_.a.size; i++) + if ((*this)[i] != rhs[i]) + return false; + return true; + + case kStringType: + return StringEqual(rhs); + + case kNumberType: + if (IsDouble() || rhs.IsDouble()) { + double a = GetDouble(); // May convert from integer to double. + double b = rhs.GetDouble(); // Ditto + return a >= b && a <= b; // Prevent -Wfloat-equal + } + else + return data_.n.u64 == rhs.data_.n.u64; + + default: + return true; + } + } + + //! Equal-to operator with const C-string pointer + bool operator==(const Ch* rhs) const { return *this == GenericValue(StringRef(rhs)); } + +#if RAPIDJSON_HAS_STDSTRING + //! Equal-to operator with string object + /*! \note Requires the definition of the preprocessor symbol \ref RAPIDJSON_HAS_STDSTRING. + */ + bool operator==(const std::basic_string& rhs) const { return *this == GenericValue(StringRef(rhs)); } +#endif + + //! Equal-to operator with primitive types + /*! \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t, \c double, \c true, \c false + */ + template RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr,internal::IsGenericValue >), (bool)) operator==(const T& rhs) const { return *this == GenericValue(rhs); } + + //! Not-equal-to operator + /*! \return !(*this == rhs) + */ + template + bool operator!=(const GenericValue& rhs) const { return !(*this == rhs); } + + //! Not-equal-to operator with const C-string pointer + bool operator!=(const Ch* rhs) const { return !(*this == rhs); } + + //! Not-equal-to operator with arbitrary types + /*! \return !(*this == rhs) + */ + template RAPIDJSON_DISABLEIF_RETURN((internal::IsGenericValue), (bool)) operator!=(const T& rhs) const { return !(*this == rhs); } + + //! Equal-to operator with arbitrary types (symmetric version) + /*! \return (rhs == lhs) + */ + template friend RAPIDJSON_DISABLEIF_RETURN((internal::IsGenericValue), (bool)) operator==(const T& lhs, const GenericValue& rhs) { return rhs == lhs; } + + //! Not-Equal-to operator with arbitrary types (symmetric version) + /*! \return !(rhs == lhs) + */ + template friend RAPIDJSON_DISABLEIF_RETURN((internal::IsGenericValue), (bool)) operator!=(const T& lhs, const GenericValue& rhs) { return !(rhs == lhs); } + //@} + + //!@name Type + //@{ + + Type GetType() const { return static_cast(data_.f.flags & kTypeMask); } + bool IsNull() const { return data_.f.flags == kNullFlag; } + bool IsFalse() const { return data_.f.flags == kFalseFlag; } + bool IsTrue() const { return data_.f.flags == kTrueFlag; } + bool IsBool() const { return (data_.f.flags & kBoolFlag) != 0; } + bool IsObject() const { return data_.f.flags == kObjectFlag; } + bool IsArray() const { return data_.f.flags == kArrayFlag; } + bool IsNumber() const { return (data_.f.flags & kNumberFlag) != 0; } + bool IsInt() const { return (data_.f.flags & kIntFlag) != 0; } + bool IsUint() const { return (data_.f.flags & kUintFlag) != 0; } + bool IsInt64() const { return (data_.f.flags & kInt64Flag) != 0; } + bool IsUint64() const { return (data_.f.flags & kUint64Flag) != 0; } + bool IsDouble() const { return (data_.f.flags & kDoubleFlag) != 0; } + bool IsString() const { return (data_.f.flags & kStringFlag) != 0; } + + // Checks whether a number can be losslessly converted to a double. + bool IsLosslessDouble() const { + if (!IsNumber()) return false; + if (IsUint64()) { + uint64_t u = GetUint64(); + volatile double d = static_cast(u); + return (d >= 0.0) + && (d < static_cast((std::numeric_limits::max)())) + && (u == static_cast(d)); + } + if (IsInt64()) { + int64_t i = GetInt64(); + volatile double d = static_cast(i); + return (d >= static_cast((std::numeric_limits::min)())) + && (d < static_cast((std::numeric_limits::max)())) + && (i == static_cast(d)); + } + return true; // double, int, uint are always lossless + } + + // Checks whether a number is a float (possible lossy). + bool IsFloat() const { + if ((data_.f.flags & kDoubleFlag) == 0) + return false; + double d = GetDouble(); + return d >= -3.4028234e38 && d <= 3.4028234e38; + } + // Checks whether a number can be losslessly converted to a float. + bool IsLosslessFloat() const { + if (!IsNumber()) return false; + double a = GetDouble(); + if (a < static_cast(-(std::numeric_limits::max)()) + || a > static_cast((std::numeric_limits::max)())) + return false; + double b = static_cast(static_cast(a)); + return a >= b && a <= b; // Prevent -Wfloat-equal + } + + //@} + + //!@name Null + //@{ + + GenericValue& SetNull() { this->~GenericValue(); new (this) GenericValue(); return *this; } + + //@} + + //!@name Bool + //@{ + + bool GetBool() const { RAPIDJSON_ASSERT(IsBool()); return data_.f.flags == kTrueFlag; } + //!< Set boolean value + /*! \post IsBool() == true */ + GenericValue& SetBool(bool b) { this->~GenericValue(); new (this) GenericValue(b); return *this; } + + //@} + + //!@name Object + //@{ + + //! Set this value as an empty object. + /*! \post IsObject() == true */ + GenericValue& SetObject() { this->~GenericValue(); new (this) GenericValue(kObjectType); return *this; } + + //! Get the number of members in the object. + SizeType MemberCount() const { RAPIDJSON_ASSERT(IsObject()); return data_.o.size; } + + //! Get the capacity of object. + SizeType MemberCapacity() const { RAPIDJSON_ASSERT(IsObject()); return data_.o.capacity; } + + //! Check whether the object is empty. + bool ObjectEmpty() const { RAPIDJSON_ASSERT(IsObject()); return data_.o.size == 0; } + + //! Get a value from an object associated with the name. + /*! \pre IsObject() == true + \tparam T Either \c Ch or \c const \c Ch (template used for disambiguation with \ref operator[](SizeType)) + \note In version 0.1x, if the member is not found, this function returns a null value. This makes issue 7. + Since 0.2, if the name is not correct, it will assert. + If user is unsure whether a member exists, user should use HasMember() first. + A better approach is to use FindMember(). + \note Linear time complexity. + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::NotExpr::Type, Ch> >),(GenericValue&)) operator[](T* name) { + GenericValue n(StringRef(name)); + return (*this)[n]; + } + template + RAPIDJSON_DISABLEIF_RETURN((internal::NotExpr::Type, Ch> >),(const GenericValue&)) operator[](T* name) const { return const_cast(*this)[name]; } + + //! Get a value from an object associated with the name. + /*! \pre IsObject() == true + \tparam SourceAllocator Allocator of the \c name value + + \note Compared to \ref operator[](T*), this version is faster because it does not need a StrLen(). + And it can also handle strings with embedded null characters. + + \note Linear time complexity. + */ + template + GenericValue& operator[](const GenericValue& name) { + MemberIterator member = FindMember(name); + if (member != MemberEnd()) + return member->value; + else { + RAPIDJSON_ASSERT(false); // see above note + + // This will generate -Wexit-time-destructors in clang + // static GenericValue NullValue; + // return NullValue; + + // Use static buffer and placement-new to prevent destruction + static char buffer[sizeof(GenericValue)]; + return *new (buffer) GenericValue(); + } + } + template + const GenericValue& operator[](const GenericValue& name) const { return const_cast(*this)[name]; } + +#if RAPIDJSON_HAS_STDSTRING + //! Get a value from an object associated with name (string object). + GenericValue& operator[](const std::basic_string& name) { return (*this)[GenericValue(StringRef(name))]; } + const GenericValue& operator[](const std::basic_string& name) const { return (*this)[GenericValue(StringRef(name))]; } +#endif + + //! Const member iterator + /*! \pre IsObject() == true */ + ConstMemberIterator MemberBegin() const { RAPIDJSON_ASSERT(IsObject()); return ConstMemberIterator(GetMembersPointer()); } + //! Const \em past-the-end member iterator + /*! \pre IsObject() == true */ + ConstMemberIterator MemberEnd() const { RAPIDJSON_ASSERT(IsObject()); return ConstMemberIterator(GetMembersPointer() + data_.o.size); } + //! Member iterator + /*! \pre IsObject() == true */ + MemberIterator MemberBegin() { RAPIDJSON_ASSERT(IsObject()); return MemberIterator(GetMembersPointer()); } + //! \em Past-the-end member iterator + /*! \pre IsObject() == true */ + MemberIterator MemberEnd() { RAPIDJSON_ASSERT(IsObject()); return MemberIterator(GetMembersPointer() + data_.o.size); } + + //! Request the object to have enough capacity to store members. + /*! \param newCapacity The capacity that the object at least need to have. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \note Linear time complexity. + */ + GenericValue& MemberReserve(SizeType newCapacity, Allocator &allocator) { + RAPIDJSON_ASSERT(IsObject()); + if (newCapacity > data_.o.capacity) { + SetMembersPointer(reinterpret_cast(allocator.Realloc(GetMembersPointer(), data_.o.capacity * sizeof(Member), newCapacity * sizeof(Member)))); + data_.o.capacity = newCapacity; + } + return *this; + } + + //! Check whether a member exists in the object. + /*! + \param name Member name to be searched. + \pre IsObject() == true + \return Whether a member with that name exists. + \note It is better to use FindMember() directly if you need the obtain the value as well. + \note Linear time complexity. + */ + bool HasMember(const Ch* name) const { return FindMember(name) != MemberEnd(); } + +#if RAPIDJSON_HAS_STDSTRING + //! Check whether a member exists in the object with string object. + /*! + \param name Member name to be searched. + \pre IsObject() == true + \return Whether a member with that name exists. + \note It is better to use FindMember() directly if you need the obtain the value as well. + \note Linear time complexity. + */ + bool HasMember(const std::basic_string& name) const { return FindMember(name) != MemberEnd(); } +#endif + + //! Check whether a member exists in the object with GenericValue name. + /*! + This version is faster because it does not need a StrLen(). It can also handle string with null character. + \param name Member name to be searched. + \pre IsObject() == true + \return Whether a member with that name exists. + \note It is better to use FindMember() directly if you need the obtain the value as well. + \note Linear time complexity. + */ + template + bool HasMember(const GenericValue& name) const { return FindMember(name) != MemberEnd(); } + + //! Find member by name. + /*! + \param name Member name to be searched. + \pre IsObject() == true + \return Iterator to member, if it exists. + Otherwise returns \ref MemberEnd(). + + \note Earlier versions of Rapidjson returned a \c NULL pointer, in case + the requested member doesn't exist. For consistency with e.g. + \c std::map, this has been changed to MemberEnd() now. + \note Linear time complexity. + */ + MemberIterator FindMember(const Ch* name) { + GenericValue n(StringRef(name)); + return FindMember(n); + } + + ConstMemberIterator FindMember(const Ch* name) const { return const_cast(*this).FindMember(name); } + + //! Find member by name. + /*! + This version is faster because it does not need a StrLen(). It can also handle string with null character. + \param name Member name to be searched. + \pre IsObject() == true + \return Iterator to member, if it exists. + Otherwise returns \ref MemberEnd(). + + \note Earlier versions of Rapidjson returned a \c NULL pointer, in case + the requested member doesn't exist. For consistency with e.g. + \c std::map, this has been changed to MemberEnd() now. + \note Linear time complexity. + */ + template + MemberIterator FindMember(const GenericValue& name) { + RAPIDJSON_ASSERT(IsObject()); + RAPIDJSON_ASSERT(name.IsString()); + MemberIterator member = MemberBegin(); + for ( ; member != MemberEnd(); ++member) + if (name.StringEqual(member->name)) + break; + return member; + } + template ConstMemberIterator FindMember(const GenericValue& name) const { return const_cast(*this).FindMember(name); } + +#if RAPIDJSON_HAS_STDSTRING + //! Find member by string object name. + /*! + \param name Member name to be searched. + \pre IsObject() == true + \return Iterator to member, if it exists. + Otherwise returns \ref MemberEnd(). + */ + MemberIterator FindMember(const std::basic_string& name) { return FindMember(GenericValue(StringRef(name))); } + ConstMemberIterator FindMember(const std::basic_string& name) const { return FindMember(GenericValue(StringRef(name))); } +#endif + + //! Add a member (name-value pair) to the object. + /*! \param name A string value as name of member. + \param value Value of any type. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \note The ownership of \c name and \c value will be transferred to this object on success. + \pre IsObject() && name.IsString() + \post name.IsNull() && value.IsNull() + \note Amortized Constant time complexity. + */ + GenericValue& AddMember(GenericValue& name, GenericValue& value, Allocator& allocator) { + RAPIDJSON_ASSERT(IsObject()); + RAPIDJSON_ASSERT(name.IsString()); + + ObjectData& o = data_.o; + if (o.size >= o.capacity) + MemberReserve(o.capacity == 0 ? kDefaultObjectCapacity : (o.capacity + (o.capacity + 1) / 2), allocator); + Member* members = GetMembersPointer(); + members[o.size].name.RawAssign(name); + members[o.size].value.RawAssign(value); + o.size++; + return *this; + } + + //! Add a constant string value as member (name-value pair) to the object. + /*! \param name A string value as name of member. + \param value constant string reference as value of member. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \pre IsObject() + \note This overload is needed to avoid clashes with the generic primitive type AddMember(GenericValue&,T,Allocator&) overload below. + \note Amortized Constant time complexity. + */ + GenericValue& AddMember(GenericValue& name, StringRefType value, Allocator& allocator) { + GenericValue v(value); + return AddMember(name, v, allocator); + } + +#if RAPIDJSON_HAS_STDSTRING + //! Add a string object as member (name-value pair) to the object. + /*! \param name A string value as name of member. + \param value constant string reference as value of member. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \pre IsObject() + \note This overload is needed to avoid clashes with the generic primitive type AddMember(GenericValue&,T,Allocator&) overload below. + \note Amortized Constant time complexity. + */ + GenericValue& AddMember(GenericValue& name, std::basic_string& value, Allocator& allocator) { + GenericValue v(value, allocator); + return AddMember(name, v, allocator); + } +#endif + + //! Add any primitive value as member (name-value pair) to the object. + /*! \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t + \param name A string value as name of member. + \param value Value of primitive type \c T as value of member + \param allocator Allocator for reallocating memory. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \pre IsObject() + + \note The source type \c T explicitly disallows all pointer types, + especially (\c const) \ref Ch*. This helps avoiding implicitly + referencing character strings with insufficient lifetime, use + \ref AddMember(StringRefType, GenericValue&, Allocator&) or \ref + AddMember(StringRefType, StringRefType, Allocator&). + All other pointer types would implicitly convert to \c bool, + use an explicit cast instead, if needed. + \note Amortized Constant time complexity. + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (GenericValue&)) + AddMember(GenericValue& name, T value, Allocator& allocator) { + GenericValue v(value); + return AddMember(name, v, allocator); + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + GenericValue& AddMember(GenericValue&& name, GenericValue&& value, Allocator& allocator) { + return AddMember(name, value, allocator); + } + GenericValue& AddMember(GenericValue&& name, GenericValue& value, Allocator& allocator) { + return AddMember(name, value, allocator); + } + GenericValue& AddMember(GenericValue& name, GenericValue&& value, Allocator& allocator) { + return AddMember(name, value, allocator); + } + GenericValue& AddMember(StringRefType name, GenericValue&& value, Allocator& allocator) { + GenericValue n(name); + return AddMember(n, value, allocator); + } +#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS + + + //! Add a member (name-value pair) to the object. + /*! \param name A constant string reference as name of member. + \param value Value of any type. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \note The ownership of \c value will be transferred to this object on success. + \pre IsObject() + \post value.IsNull() + \note Amortized Constant time complexity. + */ + GenericValue& AddMember(StringRefType name, GenericValue& value, Allocator& allocator) { + GenericValue n(name); + return AddMember(n, value, allocator); + } + + //! Add a constant string value as member (name-value pair) to the object. + /*! \param name A constant string reference as name of member. + \param value constant string reference as value of member. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \pre IsObject() + \note This overload is needed to avoid clashes with the generic primitive type AddMember(StringRefType,T,Allocator&) overload below. + \note Amortized Constant time complexity. + */ + GenericValue& AddMember(StringRefType name, StringRefType value, Allocator& allocator) { + GenericValue v(value); + return AddMember(name, v, allocator); + } + + //! Add any primitive value as member (name-value pair) to the object. + /*! \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t + \param name A constant string reference as name of member. + \param value Value of primitive type \c T as value of member + \param allocator Allocator for reallocating memory. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \pre IsObject() + + \note The source type \c T explicitly disallows all pointer types, + especially (\c const) \ref Ch*. This helps avoiding implicitly + referencing character strings with insufficient lifetime, use + \ref AddMember(StringRefType, GenericValue&, Allocator&) or \ref + AddMember(StringRefType, StringRefType, Allocator&). + All other pointer types would implicitly convert to \c bool, + use an explicit cast instead, if needed. + \note Amortized Constant time complexity. + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (GenericValue&)) + AddMember(StringRefType name, T value, Allocator& allocator) { + GenericValue n(name); + return AddMember(n, value, allocator); + } + + //! Remove all members in the object. + /*! This function do not deallocate memory in the object, i.e. the capacity is unchanged. + \note Linear time complexity. + */ + void RemoveAllMembers() { + RAPIDJSON_ASSERT(IsObject()); + for (MemberIterator m = MemberBegin(); m != MemberEnd(); ++m) + m->~Member(); + data_.o.size = 0; + } + + //! Remove a member in object by its name. + /*! \param name Name of member to be removed. + \return Whether the member existed. + \note This function may reorder the object members. Use \ref + EraseMember(ConstMemberIterator) if you need to preserve the + relative order of the remaining members. + \note Linear time complexity. + */ + bool RemoveMember(const Ch* name) { + GenericValue n(StringRef(name)); + return RemoveMember(n); + } + +#if RAPIDJSON_HAS_STDSTRING + bool RemoveMember(const std::basic_string& name) { return RemoveMember(GenericValue(StringRef(name))); } +#endif + + template + bool RemoveMember(const GenericValue& name) { + MemberIterator m = FindMember(name); + if (m != MemberEnd()) { + RemoveMember(m); + return true; + } + else + return false; + } + + //! Remove a member in object by iterator. + /*! \param m member iterator (obtained by FindMember() or MemberBegin()). + \return the new iterator after removal. + \note This function may reorder the object members. Use \ref + EraseMember(ConstMemberIterator) if you need to preserve the + relative order of the remaining members. + \note Constant time complexity. + */ + MemberIterator RemoveMember(MemberIterator m) { + RAPIDJSON_ASSERT(IsObject()); + RAPIDJSON_ASSERT(data_.o.size > 0); + RAPIDJSON_ASSERT(GetMembersPointer() != 0); + RAPIDJSON_ASSERT(m >= MemberBegin() && m < MemberEnd()); + + MemberIterator last(GetMembersPointer() + (data_.o.size - 1)); + if (data_.o.size > 1 && m != last) + *m = *last; // Move the last one to this place + else + m->~Member(); // Only one left, just destroy + --data_.o.size; + return m; + } + + //! Remove a member from an object by iterator. + /*! \param pos iterator to the member to remove + \pre IsObject() == true && \ref MemberBegin() <= \c pos < \ref MemberEnd() + \return Iterator following the removed element. + If the iterator \c pos refers to the last element, the \ref MemberEnd() iterator is returned. + \note This function preserves the relative order of the remaining object + members. If you do not need this, use the more efficient \ref RemoveMember(MemberIterator). + \note Linear time complexity. + */ + MemberIterator EraseMember(ConstMemberIterator pos) { + return EraseMember(pos, pos +1); + } + + //! Remove members in the range [first, last) from an object. + /*! \param first iterator to the first member to remove + \param last iterator following the last member to remove + \pre IsObject() == true && \ref MemberBegin() <= \c first <= \c last <= \ref MemberEnd() + \return Iterator following the last removed element. + \note This function preserves the relative order of the remaining object + members. + \note Linear time complexity. + */ + MemberIterator EraseMember(ConstMemberIterator first, ConstMemberIterator last) { + RAPIDJSON_ASSERT(IsObject()); + RAPIDJSON_ASSERT(data_.o.size > 0); + RAPIDJSON_ASSERT(GetMembersPointer() != 0); + RAPIDJSON_ASSERT(first >= MemberBegin()); + RAPIDJSON_ASSERT(first <= last); + RAPIDJSON_ASSERT(last <= MemberEnd()); + + MemberIterator pos = MemberBegin() + (first - MemberBegin()); + for (MemberIterator itr = pos; itr != last; ++itr) + itr->~Member(); + std::memmove(static_cast(&*pos), &*last, static_cast(MemberEnd() - last) * sizeof(Member)); + data_.o.size -= static_cast(last - first); + return pos; + } + + //! Erase a member in object by its name. + /*! \param name Name of member to be removed. + \return Whether the member existed. + \note Linear time complexity. + */ + bool EraseMember(const Ch* name) { + GenericValue n(StringRef(name)); + return EraseMember(n); + } + +#if RAPIDJSON_HAS_STDSTRING + bool EraseMember(const std::basic_string& name) { return EraseMember(GenericValue(StringRef(name))); } +#endif + + template + bool EraseMember(const GenericValue& name) { + MemberIterator m = FindMember(name); + if (m != MemberEnd()) { + EraseMember(m); + return true; + } + else + return false; + } + + Object GetObject() { RAPIDJSON_ASSERT(IsObject()); return Object(*this); } + ConstObject GetObject() const { RAPIDJSON_ASSERT(IsObject()); return ConstObject(*this); } + + //@} + + //!@name Array + //@{ + + //! Set this value as an empty array. + /*! \post IsArray == true */ + GenericValue& SetArray() { this->~GenericValue(); new (this) GenericValue(kArrayType); return *this; } + + //! Get the number of elements in array. + SizeType Size() const { RAPIDJSON_ASSERT(IsArray()); return data_.a.size; } + + //! Get the capacity of array. + SizeType Capacity() const { RAPIDJSON_ASSERT(IsArray()); return data_.a.capacity; } + + //! Check whether the array is empty. + bool Empty() const { RAPIDJSON_ASSERT(IsArray()); return data_.a.size == 0; } + + //! Remove all elements in the array. + /*! This function do not deallocate memory in the array, i.e. the capacity is unchanged. + \note Linear time complexity. + */ + void Clear() { + RAPIDJSON_ASSERT(IsArray()); + GenericValue* e = GetElementsPointer(); + for (GenericValue* v = e; v != e + data_.a.size; ++v) + v->~GenericValue(); + data_.a.size = 0; + } + + //! Get an element from array by index. + /*! \pre IsArray() == true + \param index Zero-based index of element. + \see operator[](T*) + */ + GenericValue& operator[](SizeType index) { + RAPIDJSON_ASSERT(IsArray()); + RAPIDJSON_ASSERT(index < data_.a.size); + return GetElementsPointer()[index]; + } + const GenericValue& operator[](SizeType index) const { return const_cast(*this)[index]; } + + //! Element iterator + /*! \pre IsArray() == true */ + ValueIterator Begin() { RAPIDJSON_ASSERT(IsArray()); return GetElementsPointer(); } + //! \em Past-the-end element iterator + /*! \pre IsArray() == true */ + ValueIterator End() { RAPIDJSON_ASSERT(IsArray()); return GetElementsPointer() + data_.a.size; } + //! Constant element iterator + /*! \pre IsArray() == true */ + ConstValueIterator Begin() const { return const_cast(*this).Begin(); } + //! Constant \em past-the-end element iterator + /*! \pre IsArray() == true */ + ConstValueIterator End() const { return const_cast(*this).End(); } + + //! Request the array to have enough capacity to store elements. + /*! \param newCapacity The capacity that the array at least need to have. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \note Linear time complexity. + */ + GenericValue& Reserve(SizeType newCapacity, Allocator &allocator) { + RAPIDJSON_ASSERT(IsArray()); + if (newCapacity > data_.a.capacity) { + SetElementsPointer(reinterpret_cast(allocator.Realloc(GetElementsPointer(), data_.a.capacity * sizeof(GenericValue), newCapacity * sizeof(GenericValue)))); + data_.a.capacity = newCapacity; + } + return *this; + } + + //! Append a GenericValue at the end of the array. + /*! \param value Value to be appended. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \pre IsArray() == true + \post value.IsNull() == true + \return The value itself for fluent API. + \note The ownership of \c value will be transferred to this array on success. + \note If the number of elements to be appended is known, calls Reserve() once first may be more efficient. + \note Amortized constant time complexity. + */ + GenericValue& PushBack(GenericValue& value, Allocator& allocator) { + RAPIDJSON_ASSERT(IsArray()); + if (data_.a.size >= data_.a.capacity) + Reserve(data_.a.capacity == 0 ? kDefaultArrayCapacity : (data_.a.capacity + (data_.a.capacity + 1) / 2), allocator); + GetElementsPointer()[data_.a.size++].RawAssign(value); + return *this; + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + GenericValue& PushBack(GenericValue&& value, Allocator& allocator) { + return PushBack(value, allocator); + } +#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS + + //! Append a constant string reference at the end of the array. + /*! \param value Constant string reference to be appended. + \param allocator Allocator for reallocating memory. It must be the same one used previously. Commonly use GenericDocument::GetAllocator(). + \pre IsArray() == true + \return The value itself for fluent API. + \note If the number of elements to be appended is known, calls Reserve() once first may be more efficient. + \note Amortized constant time complexity. + \see GenericStringRef + */ + GenericValue& PushBack(StringRefType value, Allocator& allocator) { + return (*this).template PushBack(value, allocator); + } + + //! Append a primitive value at the end of the array. + /*! \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t + \param value Value of primitive type T to be appended. + \param allocator Allocator for reallocating memory. It must be the same one as used before. Commonly use GenericDocument::GetAllocator(). + \pre IsArray() == true + \return The value itself for fluent API. + \note If the number of elements to be appended is known, calls Reserve() once first may be more efficient. + + \note The source type \c T explicitly disallows all pointer types, + especially (\c const) \ref Ch*. This helps avoiding implicitly + referencing character strings with insufficient lifetime, use + \ref PushBack(GenericValue&, Allocator&) or \ref + PushBack(StringRefType, Allocator&). + All other pointer types would implicitly convert to \c bool, + use an explicit cast instead, if needed. + \note Amortized constant time complexity. + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (GenericValue&)) + PushBack(T value, Allocator& allocator) { + GenericValue v(value); + return PushBack(v, allocator); + } + + //! Remove the last element in the array. + /*! + \note Constant time complexity. + */ + GenericValue& PopBack() { + RAPIDJSON_ASSERT(IsArray()); + RAPIDJSON_ASSERT(!Empty()); + GetElementsPointer()[--data_.a.size].~GenericValue(); + return *this; + } + + //! Remove an element of array by iterator. + /*! + \param pos iterator to the element to remove + \pre IsArray() == true && \ref Begin() <= \c pos < \ref End() + \return Iterator following the removed element. If the iterator pos refers to the last element, the End() iterator is returned. + \note Linear time complexity. + */ + ValueIterator Erase(ConstValueIterator pos) { + return Erase(pos, pos + 1); + } + + //! Remove elements in the range [first, last) of the array. + /*! + \param first iterator to the first element to remove + \param last iterator following the last element to remove + \pre IsArray() == true && \ref Begin() <= \c first <= \c last <= \ref End() + \return Iterator following the last removed element. + \note Linear time complexity. + */ + ValueIterator Erase(ConstValueIterator first, ConstValueIterator last) { + RAPIDJSON_ASSERT(IsArray()); + RAPIDJSON_ASSERT(data_.a.size > 0); + RAPIDJSON_ASSERT(GetElementsPointer() != 0); + RAPIDJSON_ASSERT(first >= Begin()); + RAPIDJSON_ASSERT(first <= last); + RAPIDJSON_ASSERT(last <= End()); + ValueIterator pos = Begin() + (first - Begin()); + for (ValueIterator itr = pos; itr != last; ++itr) + itr->~GenericValue(); + std::memmove(static_cast(pos), last, static_cast(End() - last) * sizeof(GenericValue)); + data_.a.size -= static_cast(last - first); + return pos; + } + + Array GetArray() { RAPIDJSON_ASSERT(IsArray()); return Array(*this); } + ConstArray GetArray() const { RAPIDJSON_ASSERT(IsArray()); return ConstArray(*this); } + + //@} + + //!@name Number + //@{ + + int GetInt() const { RAPIDJSON_ASSERT(data_.f.flags & kIntFlag); return data_.n.i.i; } + unsigned GetUint() const { RAPIDJSON_ASSERT(data_.f.flags & kUintFlag); return data_.n.u.u; } + int64_t GetInt64() const { RAPIDJSON_ASSERT(data_.f.flags & kInt64Flag); return data_.n.i64; } + uint64_t GetUint64() const { RAPIDJSON_ASSERT(data_.f.flags & kUint64Flag); return data_.n.u64; } + + //! Get the value as double type. + /*! \note If the value is 64-bit integer type, it may lose precision. Use \c IsLosslessDouble() to check whether the converison is lossless. + */ + double GetDouble() const { + RAPIDJSON_ASSERT(IsNumber()); + if ((data_.f.flags & kDoubleFlag) != 0) return data_.n.d; // exact type, no conversion. + if ((data_.f.flags & kIntFlag) != 0) return data_.n.i.i; // int -> double + if ((data_.f.flags & kUintFlag) != 0) return data_.n.u.u; // unsigned -> double + if ((data_.f.flags & kInt64Flag) != 0) return static_cast(data_.n.i64); // int64_t -> double (may lose precision) + RAPIDJSON_ASSERT((data_.f.flags & kUint64Flag) != 0); return static_cast(data_.n.u64); // uint64_t -> double (may lose precision) + } + + //! Get the value as float type. + /*! \note If the value is 64-bit integer type, it may lose precision. Use \c IsLosslessFloat() to check whether the converison is lossless. + */ + float GetFloat() const { + return static_cast(GetDouble()); + } + + GenericValue& SetInt(int i) { this->~GenericValue(); new (this) GenericValue(i); return *this; } + GenericValue& SetUint(unsigned u) { this->~GenericValue(); new (this) GenericValue(u); return *this; } + GenericValue& SetInt64(int64_t i64) { this->~GenericValue(); new (this) GenericValue(i64); return *this; } + GenericValue& SetUint64(uint64_t u64) { this->~GenericValue(); new (this) GenericValue(u64); return *this; } + GenericValue& SetDouble(double d) { this->~GenericValue(); new (this) GenericValue(d); return *this; } + GenericValue& SetFloat(float f) { this->~GenericValue(); new (this) GenericValue(static_cast(f)); return *this; } + + //@} + + //!@name String + //@{ + + const Ch* GetString() const { RAPIDJSON_ASSERT(IsString()); return (data_.f.flags & kInlineStrFlag) ? data_.ss.str : GetStringPointer(); } + + //! Get the length of string. + /*! Since rapidjson permits "\\u0000" in the json string, strlen(v.GetString()) may not equal to v.GetStringLength(). + */ + SizeType GetStringLength() const { RAPIDJSON_ASSERT(IsString()); return ((data_.f.flags & kInlineStrFlag) ? (data_.ss.GetLength()) : data_.s.length); } + + //! Set this value as a string without copying source string. + /*! This version has better performance with supplied length, and also support string containing null character. + \param s source string pointer. + \param length The length of source string, excluding the trailing null terminator. + \return The value itself for fluent API. + \post IsString() == true && GetString() == s && GetStringLength() == length + \see SetString(StringRefType) + */ + GenericValue& SetString(const Ch* s, SizeType length) { return SetString(StringRef(s, length)); } + + //! Set this value as a string without copying source string. + /*! \param s source string reference + \return The value itself for fluent API. + \post IsString() == true && GetString() == s && GetStringLength() == s.length + */ + GenericValue& SetString(StringRefType s) { this->~GenericValue(); SetStringRaw(s); return *this; } + + //! Set this value as a string by copying from source string. + /*! This version has better performance with supplied length, and also support string containing null character. + \param s source string. + \param length The length of source string, excluding the trailing null terminator. + \param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \post IsString() == true && GetString() != s && strcmp(GetString(),s) == 0 && GetStringLength() == length + */ + GenericValue& SetString(const Ch* s, SizeType length, Allocator& allocator) { return SetString(StringRef(s, length), allocator); } + + //! Set this value as a string by copying from source string. + /*! \param s source string. + \param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \post IsString() == true && GetString() != s && strcmp(GetString(),s) == 0 && GetStringLength() == length + */ + GenericValue& SetString(const Ch* s, Allocator& allocator) { return SetString(StringRef(s), allocator); } + + //! Set this value as a string by copying from source string. + /*! \param s source string reference + \param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \post IsString() == true && GetString() != s.s && strcmp(GetString(),s) == 0 && GetStringLength() == length + */ + GenericValue& SetString(StringRefType s, Allocator& allocator) { this->~GenericValue(); SetStringRaw(s, allocator); return *this; } + +#if RAPIDJSON_HAS_STDSTRING + //! Set this value as a string by copying from source string. + /*! \param s source string. + \param allocator Allocator for allocating copied buffer. Commonly use GenericDocument::GetAllocator(). + \return The value itself for fluent API. + \post IsString() == true && GetString() != s.data() && strcmp(GetString(),s.data() == 0 && GetStringLength() == s.size() + \note Requires the definition of the preprocessor symbol \ref RAPIDJSON_HAS_STDSTRING. + */ + GenericValue& SetString(const std::basic_string& s, Allocator& allocator) { return SetString(StringRef(s), allocator); } +#endif + + //@} + + //!@name Array + //@{ + + //! Templated version for checking whether this value is type T. + /*! + \tparam T Either \c bool, \c int, \c unsigned, \c int64_t, \c uint64_t, \c double, \c float, \c const \c char*, \c std::basic_string + */ + template + bool Is() const { return internal::TypeHelper::Is(*this); } + + template + T Get() const { return internal::TypeHelper::Get(*this); } + + template + T Get() { return internal::TypeHelper::Get(*this); } + + template + ValueType& Set(const T& data) { return internal::TypeHelper::Set(*this, data); } + + template + ValueType& Set(const T& data, AllocatorType& allocator) { return internal::TypeHelper::Set(*this, data, allocator); } + + //@} + + //! Generate events of this value to a Handler. + /*! This function adopts the GoF visitor pattern. + Typical usage is to output this JSON value as JSON text via Writer, which is a Handler. + It can also be used to deep clone this value via GenericDocument, which is also a Handler. + \tparam Handler type of handler. + \param handler An object implementing concept Handler. + */ + template + bool Accept(Handler& handler) const { + switch(GetType()) { + case kNullType: return handler.Null(); + case kFalseType: return handler.Bool(false); + case kTrueType: return handler.Bool(true); + + case kObjectType: + if (RAPIDJSON_UNLIKELY(!handler.StartObject())) + return false; + for (ConstMemberIterator m = MemberBegin(); m != MemberEnd(); ++m) { + RAPIDJSON_ASSERT(m->name.IsString()); // User may change the type of name by MemberIterator. + if (RAPIDJSON_UNLIKELY(!handler.Key(m->name.GetString(), m->name.GetStringLength(), (m->name.data_.f.flags & kCopyFlag) != 0))) + return false; + if (RAPIDJSON_UNLIKELY(!m->value.Accept(handler))) + return false; + } + return handler.EndObject(data_.o.size); + + case kArrayType: + if (RAPIDJSON_UNLIKELY(!handler.StartArray())) + return false; + for (const GenericValue* v = Begin(); v != End(); ++v) + if (RAPIDJSON_UNLIKELY(!v->Accept(handler))) + return false; + return handler.EndArray(data_.a.size); + + case kStringType: + return handler.String(GetString(), GetStringLength(), (data_.f.flags & kCopyFlag) != 0); + + default: + RAPIDJSON_ASSERT(GetType() == kNumberType); + if (IsDouble()) return handler.Double(data_.n.d); + else if (IsInt()) return handler.Int(data_.n.i.i); + else if (IsUint()) return handler.Uint(data_.n.u.u); + else if (IsInt64()) return handler.Int64(data_.n.i64); + else return handler.Uint64(data_.n.u64); + } + } + +private: + template friend class GenericValue; + template friend class GenericDocument; + + enum { + kBoolFlag = 0x0008, + kNumberFlag = 0x0010, + kIntFlag = 0x0020, + kUintFlag = 0x0040, + kInt64Flag = 0x0080, + kUint64Flag = 0x0100, + kDoubleFlag = 0x0200, + kStringFlag = 0x0400, + kCopyFlag = 0x0800, + kInlineStrFlag = 0x1000, + + // Initial flags of different types. + kNullFlag = kNullType, + kTrueFlag = kTrueType | kBoolFlag, + kFalseFlag = kFalseType | kBoolFlag, + kNumberIntFlag = kNumberType | kNumberFlag | kIntFlag | kInt64Flag, + kNumberUintFlag = kNumberType | kNumberFlag | kUintFlag | kUint64Flag | kInt64Flag, + kNumberInt64Flag = kNumberType | kNumberFlag | kInt64Flag, + kNumberUint64Flag = kNumberType | kNumberFlag | kUint64Flag, + kNumberDoubleFlag = kNumberType | kNumberFlag | kDoubleFlag, + kNumberAnyFlag = kNumberType | kNumberFlag | kIntFlag | kInt64Flag | kUintFlag | kUint64Flag | kDoubleFlag, + kConstStringFlag = kStringType | kStringFlag, + kCopyStringFlag = kStringType | kStringFlag | kCopyFlag, + kShortStringFlag = kStringType | kStringFlag | kCopyFlag | kInlineStrFlag, + kObjectFlag = kObjectType, + kArrayFlag = kArrayType, + + kTypeMask = 0x07 + }; + + static const SizeType kDefaultArrayCapacity = RAPIDJSON_VALUE_DEFAULT_ARRAY_CAPACITY; + static const SizeType kDefaultObjectCapacity = RAPIDJSON_VALUE_DEFAULT_OBJECT_CAPACITY; + + struct Flag { +#if RAPIDJSON_48BITPOINTER_OPTIMIZATION + char payload[sizeof(SizeType) * 2 + 6]; // 2 x SizeType + lower 48-bit pointer +#elif RAPIDJSON_64BIT + char payload[sizeof(SizeType) * 2 + sizeof(void*) + 6]; // 6 padding bytes +#else + char payload[sizeof(SizeType) * 2 + sizeof(void*) + 2]; // 2 padding bytes +#endif + uint16_t flags; + }; + + struct String { + SizeType length; + SizeType hashcode; //!< reserved + const Ch* str; + }; // 12 bytes in 32-bit mode, 16 bytes in 64-bit mode + + // implementation detail: ShortString can represent zero-terminated strings up to MaxSize chars + // (excluding the terminating zero) and store a value to determine the length of the contained + // string in the last character str[LenPos] by storing "MaxSize - length" there. If the string + // to store has the maximal length of MaxSize then str[LenPos] will be 0 and therefore act as + // the string terminator as well. For getting the string length back from that value just use + // "MaxSize - str[LenPos]". + // This allows to store 13-chars strings in 32-bit mode, 21-chars strings in 64-bit mode, + // 13-chars strings for RAPIDJSON_48BITPOINTER_OPTIMIZATION=1 inline (for `UTF8`-encoded strings). + struct ShortString { + enum { MaxChars = sizeof(static_cast(0)->payload) / sizeof(Ch), MaxSize = MaxChars - 1, LenPos = MaxSize }; + Ch str[MaxChars]; + + inline static bool Usable(SizeType len) { return (MaxSize >= len); } + inline void SetLength(SizeType len) { str[LenPos] = static_cast(MaxSize - len); } + inline SizeType GetLength() const { return static_cast(MaxSize - str[LenPos]); } + }; // at most as many bytes as "String" above => 12 bytes in 32-bit mode, 16 bytes in 64-bit mode + + // By using proper binary layout, retrieval of different integer types do not need conversions. + union Number { +#if RAPIDJSON_ENDIAN == RAPIDJSON_LITTLEENDIAN + struct I { + int i; + char padding[4]; + }i; + struct U { + unsigned u; + char padding2[4]; + }u; +#else + struct I { + char padding[4]; + int i; + }i; + struct U { + char padding2[4]; + unsigned u; + }u; +#endif + int64_t i64; + uint64_t u64; + double d; + }; // 8 bytes + + struct ObjectData { + SizeType size; + SizeType capacity; + Member* members; + }; // 12 bytes in 32-bit mode, 16 bytes in 64-bit mode + + struct ArrayData { + SizeType size; + SizeType capacity; + GenericValue* elements; + }; // 12 bytes in 32-bit mode, 16 bytes in 64-bit mode + + union Data { + String s; + ShortString ss; + Number n; + ObjectData o; + ArrayData a; + Flag f; + }; // 16 bytes in 32-bit mode, 24 bytes in 64-bit mode, 16 bytes in 64-bit with RAPIDJSON_48BITPOINTER_OPTIMIZATION + + RAPIDJSON_FORCEINLINE const Ch* GetStringPointer() const { return RAPIDJSON_GETPOINTER(Ch, data_.s.str); } + RAPIDJSON_FORCEINLINE const Ch* SetStringPointer(const Ch* str) { return RAPIDJSON_SETPOINTER(Ch, data_.s.str, str); } + RAPIDJSON_FORCEINLINE GenericValue* GetElementsPointer() const { return RAPIDJSON_GETPOINTER(GenericValue, data_.a.elements); } + RAPIDJSON_FORCEINLINE GenericValue* SetElementsPointer(GenericValue* elements) { return RAPIDJSON_SETPOINTER(GenericValue, data_.a.elements, elements); } + RAPIDJSON_FORCEINLINE Member* GetMembersPointer() const { return RAPIDJSON_GETPOINTER(Member, data_.o.members); } + RAPIDJSON_FORCEINLINE Member* SetMembersPointer(Member* members) { return RAPIDJSON_SETPOINTER(Member, data_.o.members, members); } + + // Initialize this value as array with initial data, without calling destructor. + void SetArrayRaw(GenericValue* values, SizeType count, Allocator& allocator) { + data_.f.flags = kArrayFlag; + if (count) { + GenericValue* e = static_cast(allocator.Malloc(count * sizeof(GenericValue))); + SetElementsPointer(e); + std::memcpy(static_cast(e), values, count * sizeof(GenericValue)); + } + else + SetElementsPointer(0); + data_.a.size = data_.a.capacity = count; + } + + //! Initialize this value as object with initial data, without calling destructor. + void SetObjectRaw(Member* members, SizeType count, Allocator& allocator) { + data_.f.flags = kObjectFlag; + if (count) { + Member* m = static_cast(allocator.Malloc(count * sizeof(Member))); + SetMembersPointer(m); + std::memcpy(static_cast(m), members, count * sizeof(Member)); + } + else + SetMembersPointer(0); + data_.o.size = data_.o.capacity = count; + } + + //! Initialize this value as constant string, without calling destructor. + void SetStringRaw(StringRefType s) RAPIDJSON_NOEXCEPT { + data_.f.flags = kConstStringFlag; + SetStringPointer(s); + data_.s.length = s.length; + } + + //! Initialize this value as copy string with initial data, without calling destructor. + void SetStringRaw(StringRefType s, Allocator& allocator) { + Ch* str = 0; + if (ShortString::Usable(s.length)) { + data_.f.flags = kShortStringFlag; + data_.ss.SetLength(s.length); + str = data_.ss.str; + } else { + data_.f.flags = kCopyStringFlag; + data_.s.length = s.length; + str = static_cast(allocator.Malloc((s.length + 1) * sizeof(Ch))); + SetStringPointer(str); + } + std::memcpy(str, s, s.length * sizeof(Ch)); + str[s.length] = '\0'; + } + + //! Assignment without calling destructor + void RawAssign(GenericValue& rhs) RAPIDJSON_NOEXCEPT { + data_ = rhs.data_; + // data_.f.flags = rhs.data_.f.flags; + rhs.data_.f.flags = kNullFlag; + } + + template + bool StringEqual(const GenericValue& rhs) const { + RAPIDJSON_ASSERT(IsString()); + RAPIDJSON_ASSERT(rhs.IsString()); + + const SizeType len1 = GetStringLength(); + const SizeType len2 = rhs.GetStringLength(); + if(len1 != len2) { return false; } + + const Ch* const str1 = GetString(); + const Ch* const str2 = rhs.GetString(); + if(str1 == str2) { return true; } // fast path for constant string + + return (std::memcmp(str1, str2, sizeof(Ch) * len1) == 0); + } + + Data data_; +}; + +//! GenericValue with UTF8 encoding +typedef GenericValue > Value; + +/////////////////////////////////////////////////////////////////////////////// +// GenericDocument + +//! A document for parsing JSON text as DOM. +/*! + \note implements Handler concept + \tparam Encoding Encoding for both parsing and string storage. + \tparam Allocator Allocator for allocating memory for the DOM + \tparam StackAllocator Allocator for allocating memory for stack during parsing. + \warning Although GenericDocument inherits from GenericValue, the API does \b not provide any virtual functions, especially no virtual destructor. To avoid memory leaks, do not \c delete a GenericDocument object via a pointer to a GenericValue. +*/ +template +class GenericDocument : public GenericValue { +public: + typedef typename Encoding::Ch Ch; //!< Character type derived from Encoding. + typedef GenericValue ValueType; //!< Value type of the document. + typedef Allocator AllocatorType; //!< Allocator type from template parameter. + + //! Constructor + /*! Creates an empty document of specified type. + \param type Mandatory type of object to create. + \param allocator Optional allocator for allocating memory. + \param stackCapacity Optional initial capacity of stack in bytes. + \param stackAllocator Optional allocator for allocating memory for stack. + */ + explicit GenericDocument(Type type, Allocator* allocator = 0, size_t stackCapacity = kDefaultStackCapacity, StackAllocator* stackAllocator = 0) : + GenericValue(type), allocator_(allocator), ownAllocator_(0), stack_(stackAllocator, stackCapacity), parseResult_() + { + if (!allocator_) + ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)(); + } + + //! Constructor + /*! Creates an empty document which type is Null. + \param allocator Optional allocator for allocating memory. + \param stackCapacity Optional initial capacity of stack in bytes. + \param stackAllocator Optional allocator for allocating memory for stack. + */ + GenericDocument(Allocator* allocator = 0, size_t stackCapacity = kDefaultStackCapacity, StackAllocator* stackAllocator = 0) : + allocator_(allocator), ownAllocator_(0), stack_(stackAllocator, stackCapacity), parseResult_() + { + if (!allocator_) + ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)(); + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + //! Move constructor in C++11 + GenericDocument(GenericDocument&& rhs) RAPIDJSON_NOEXCEPT + : ValueType(std::forward(rhs)), // explicit cast to avoid prohibited move from Document + allocator_(rhs.allocator_), + ownAllocator_(rhs.ownAllocator_), + stack_(std::move(rhs.stack_)), + parseResult_(rhs.parseResult_) + { + rhs.allocator_ = 0; + rhs.ownAllocator_ = 0; + rhs.parseResult_ = ParseResult(); + } +#endif + + ~GenericDocument() { + Destroy(); + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + //! Move assignment in C++11 + GenericDocument& operator=(GenericDocument&& rhs) RAPIDJSON_NOEXCEPT + { + // The cast to ValueType is necessary here, because otherwise it would + // attempt to call GenericValue's templated assignment operator. + ValueType::operator=(std::forward(rhs)); + + // Calling the destructor here would prematurely call stack_'s destructor + Destroy(); + + allocator_ = rhs.allocator_; + ownAllocator_ = rhs.ownAllocator_; + stack_ = std::move(rhs.stack_); + parseResult_ = rhs.parseResult_; + + rhs.allocator_ = 0; + rhs.ownAllocator_ = 0; + rhs.parseResult_ = ParseResult(); + + return *this; + } +#endif + + //! Exchange the contents of this document with those of another. + /*! + \param rhs Another document. + \note Constant complexity. + \see GenericValue::Swap + */ + GenericDocument& Swap(GenericDocument& rhs) RAPIDJSON_NOEXCEPT { + ValueType::Swap(rhs); + stack_.Swap(rhs.stack_); + internal::Swap(allocator_, rhs.allocator_); + internal::Swap(ownAllocator_, rhs.ownAllocator_); + internal::Swap(parseResult_, rhs.parseResult_); + return *this; + } + + // Allow Swap with ValueType. + // Refer to Effective C++ 3rd Edition/Item 33: Avoid hiding inherited names. + using ValueType::Swap; + + //! free-standing swap function helper + /*! + Helper function to enable support for common swap implementation pattern based on \c std::swap: + \code + void swap(MyClass& a, MyClass& b) { + using std::swap; + swap(a.doc, b.doc); + // ... + } + \endcode + \see Swap() + */ + friend inline void swap(GenericDocument& a, GenericDocument& b) RAPIDJSON_NOEXCEPT { a.Swap(b); } + + //! Populate this document by a generator which produces SAX events. + /*! \tparam Generator A functor with bool f(Handler) prototype. + \param g Generator functor which sends SAX events to the parameter. + \return The document itself for fluent API. + */ + template + GenericDocument& Populate(Generator& g) { + ClearStackOnExit scope(*this); + if (g(*this)) { + RAPIDJSON_ASSERT(stack_.GetSize() == sizeof(ValueType)); // Got one and only one root object + ValueType::operator=(*stack_.template Pop(1));// Move value from stack to document + } + return *this; + } + + //!@name Parse from stream + //!@{ + + //! Parse JSON text from an input stream (with Encoding conversion) + /*! \tparam parseFlags Combination of \ref ParseFlag. + \tparam SourceEncoding Encoding of input stream + \tparam InputStream Type of input stream, implementing Stream concept + \param is Input stream to be parsed. + \return The document itself for fluent API. + */ + template + GenericDocument& ParseStream(InputStream& is) { + GenericReader reader( + stack_.HasAllocator() ? &stack_.GetAllocator() : 0); + ClearStackOnExit scope(*this); + parseResult_ = reader.template Parse(is, *this); + if (parseResult_) { + RAPIDJSON_ASSERT(stack_.GetSize() == sizeof(ValueType)); // Got one and only one root object + ValueType::operator=(*stack_.template Pop(1));// Move value from stack to document + } + return *this; + } + + //! Parse JSON text from an input stream + /*! \tparam parseFlags Combination of \ref ParseFlag. + \tparam InputStream Type of input stream, implementing Stream concept + \param is Input stream to be parsed. + \return The document itself for fluent API. + */ + template + GenericDocument& ParseStream(InputStream& is) { + return ParseStream(is); + } + + //! Parse JSON text from an input stream (with \ref kParseDefaultFlags) + /*! \tparam InputStream Type of input stream, implementing Stream concept + \param is Input stream to be parsed. + \return The document itself for fluent API. + */ + template + GenericDocument& ParseStream(InputStream& is) { + return ParseStream(is); + } + //!@} + + //!@name Parse in-place from mutable string + //!@{ + + //! Parse JSON text from a mutable string + /*! \tparam parseFlags Combination of \ref ParseFlag. + \param str Mutable zero-terminated string to be parsed. + \return The document itself for fluent API. + */ + template + GenericDocument& ParseInsitu(Ch* str) { + GenericInsituStringStream s(str); + return ParseStream(s); + } + + //! Parse JSON text from a mutable string (with \ref kParseDefaultFlags) + /*! \param str Mutable zero-terminated string to be parsed. + \return The document itself for fluent API. + */ + GenericDocument& ParseInsitu(Ch* str) { + return ParseInsitu(str); + } + //!@} + + //!@name Parse from read-only string + //!@{ + + //! Parse JSON text from a read-only string (with Encoding conversion) + /*! \tparam parseFlags Combination of \ref ParseFlag (must not contain \ref kParseInsituFlag). + \tparam SourceEncoding Transcoding from input Encoding + \param str Read-only zero-terminated string to be parsed. + */ + template + GenericDocument& Parse(const typename SourceEncoding::Ch* str) { + RAPIDJSON_ASSERT(!(parseFlags & kParseInsituFlag)); + GenericStringStream s(str); + return ParseStream(s); + } + + //! Parse JSON text from a read-only string + /*! \tparam parseFlags Combination of \ref ParseFlag (must not contain \ref kParseInsituFlag). + \param str Read-only zero-terminated string to be parsed. + */ + template + GenericDocument& Parse(const Ch* str) { + return Parse(str); + } + + //! Parse JSON text from a read-only string (with \ref kParseDefaultFlags) + /*! \param str Read-only zero-terminated string to be parsed. + */ + GenericDocument& Parse(const Ch* str) { + return Parse(str); + } + + template + GenericDocument& Parse(const typename SourceEncoding::Ch* str, size_t length) { + RAPIDJSON_ASSERT(!(parseFlags & kParseInsituFlag)); + MemoryStream ms(reinterpret_cast(str), length * sizeof(typename SourceEncoding::Ch)); + EncodedInputStream is(ms); + ParseStream(is); + return *this; + } + + template + GenericDocument& Parse(const Ch* str, size_t length) { + return Parse(str, length); + } + + GenericDocument& Parse(const Ch* str, size_t length) { + return Parse(str, length); + } + +#if RAPIDJSON_HAS_STDSTRING + template + GenericDocument& Parse(const std::basic_string& str) { + // c_str() is constant complexity according to standard. Should be faster than Parse(const char*, size_t) + return Parse(str.c_str()); + } + + template + GenericDocument& Parse(const std::basic_string& str) { + return Parse(str.c_str()); + } + + GenericDocument& Parse(const std::basic_string& str) { + return Parse(str); + } +#endif // RAPIDJSON_HAS_STDSTRING + + //!@} + + //!@name Handling parse errors + //!@{ + + //! Whether a parse error has occurred in the last parsing. + bool HasParseError() const { return parseResult_.IsError(); } + + //! Get the \ref ParseErrorCode of last parsing. + ParseErrorCode GetParseError() const { return parseResult_.Code(); } + + //! Get the position of last parsing error in input, 0 otherwise. + size_t GetErrorOffset() const { return parseResult_.Offset(); } + + //! Implicit conversion to get the last parse result +#ifndef __clang // -Wdocumentation + /*! \return \ref ParseResult of the last parse operation + + \code + Document doc; + ParseResult ok = doc.Parse(json); + if (!ok) + printf( "JSON parse error: %s (%u)\n", GetParseError_En(ok.Code()), ok.Offset()); + \endcode + */ +#endif + operator ParseResult() const { return parseResult_; } + //!@} + + //! Get the allocator of this document. + Allocator& GetAllocator() { + RAPIDJSON_ASSERT(allocator_); + return *allocator_; + } + + //! Get the capacity of stack in bytes. + size_t GetStackCapacity() const { return stack_.GetCapacity(); } + +private: + // clear stack on any exit from ParseStream, e.g. due to exception + struct ClearStackOnExit { + explicit ClearStackOnExit(GenericDocument& d) : d_(d) {} + ~ClearStackOnExit() { d_.ClearStack(); } + private: + ClearStackOnExit(const ClearStackOnExit&); + ClearStackOnExit& operator=(const ClearStackOnExit&); + GenericDocument& d_; + }; + + // callers of the following private Handler functions + // template friend class GenericReader; // for parsing + template friend class GenericValue; // for deep copying + +public: + // Implementation of Handler + bool Null() { new (stack_.template Push()) ValueType(); return true; } + bool Bool(bool b) { new (stack_.template Push()) ValueType(b); return true; } + bool Int(int i) { new (stack_.template Push()) ValueType(i); return true; } + bool Uint(unsigned i) { new (stack_.template Push()) ValueType(i); return true; } + bool Int64(int64_t i) { new (stack_.template Push()) ValueType(i); return true; } + bool Uint64(uint64_t i) { new (stack_.template Push()) ValueType(i); return true; } + bool Double(double d) { new (stack_.template Push()) ValueType(d); return true; } + + bool RawNumber(const Ch* str, SizeType length, bool copy) { + if (copy) + new (stack_.template Push()) ValueType(str, length, GetAllocator()); + else + new (stack_.template Push()) ValueType(str, length); + return true; + } + + bool String(const Ch* str, SizeType length, bool copy) { + if (copy) + new (stack_.template Push()) ValueType(str, length, GetAllocator()); + else + new (stack_.template Push()) ValueType(str, length); + return true; + } + + bool StartObject() { new (stack_.template Push()) ValueType(kObjectType); return true; } + + bool Key(const Ch* str, SizeType length, bool copy) { return String(str, length, copy); } + + bool EndObject(SizeType memberCount) { + typename ValueType::Member* members = stack_.template Pop(memberCount); + stack_.template Top()->SetObjectRaw(members, memberCount, GetAllocator()); + return true; + } + + bool StartArray() { new (stack_.template Push()) ValueType(kArrayType); return true; } + + bool EndArray(SizeType elementCount) { + ValueType* elements = stack_.template Pop(elementCount); + stack_.template Top()->SetArrayRaw(elements, elementCount, GetAllocator()); + return true; + } + +private: + //! Prohibit copying + GenericDocument(const GenericDocument&); + //! Prohibit assignment + GenericDocument& operator=(const GenericDocument&); + + void ClearStack() { + if (Allocator::kNeedFree) + while (stack_.GetSize() > 0) // Here assumes all elements in stack array are GenericValue (Member is actually 2 GenericValue objects) + (stack_.template Pop(1))->~ValueType(); + else + stack_.Clear(); + stack_.ShrinkToFit(); + } + + void Destroy() { + RAPIDJSON_DELETE(ownAllocator_); + } + + static const size_t kDefaultStackCapacity = 1024; + Allocator* allocator_; + Allocator* ownAllocator_; + internal::Stack stack_; + ParseResult parseResult_; +}; + +//! GenericDocument with UTF8 encoding +typedef GenericDocument > Document; + + +//! Helper class for accessing Value of array type. +/*! + Instance of this helper class is obtained by \c GenericValue::GetArray(). + In addition to all APIs for array type, it provides range-based for loop if \c RAPIDJSON_HAS_CXX11_RANGE_FOR=1. +*/ +template +class GenericArray { +public: + typedef GenericArray ConstArray; + typedef GenericArray Array; + typedef ValueT PlainType; + typedef typename internal::MaybeAddConst::Type ValueType; + typedef ValueType* ValueIterator; // This may be const or non-const iterator + typedef const ValueT* ConstValueIterator; + typedef typename ValueType::AllocatorType AllocatorType; + typedef typename ValueType::StringRefType StringRefType; + + template + friend class GenericValue; + + GenericArray(const GenericArray& rhs) : value_(rhs.value_) {} + GenericArray& operator=(const GenericArray& rhs) { value_ = rhs.value_; return *this; } + ~GenericArray() {} + + SizeType Size() const { return value_.Size(); } + SizeType Capacity() const { return value_.Capacity(); } + bool Empty() const { return value_.Empty(); } + void Clear() const { value_.Clear(); } + ValueType& operator[](SizeType index) const { return value_[index]; } + ValueIterator Begin() const { return value_.Begin(); } + ValueIterator End() const { return value_.End(); } + GenericArray Reserve(SizeType newCapacity, AllocatorType &allocator) const { value_.Reserve(newCapacity, allocator); return *this; } + GenericArray PushBack(ValueType& value, AllocatorType& allocator) const { value_.PushBack(value, allocator); return *this; } +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + GenericArray PushBack(ValueType&& value, AllocatorType& allocator) const { value_.PushBack(value, allocator); return *this; } +#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS + GenericArray PushBack(StringRefType value, AllocatorType& allocator) const { value_.PushBack(value, allocator); return *this; } + template RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (const GenericArray&)) PushBack(T value, AllocatorType& allocator) const { value_.PushBack(value, allocator); return *this; } + GenericArray PopBack() const { value_.PopBack(); return *this; } + ValueIterator Erase(ConstValueIterator pos) const { return value_.Erase(pos); } + ValueIterator Erase(ConstValueIterator first, ConstValueIterator last) const { return value_.Erase(first, last); } + +#if RAPIDJSON_HAS_CXX11_RANGE_FOR + ValueIterator begin() const { return value_.Begin(); } + ValueIterator end() const { return value_.End(); } +#endif + +private: + GenericArray(); + GenericArray(ValueType& value) : value_(value) {} + ValueType& value_; +}; + +//! Helper class for accessing Value of object type. +/*! + Instance of this helper class is obtained by \c GenericValue::GetObject(). + In addition to all APIs for array type, it provides range-based for loop if \c RAPIDJSON_HAS_CXX11_RANGE_FOR=1. +*/ +template +class GenericObject { +public: + typedef GenericObject ConstObject; + typedef GenericObject Object; + typedef ValueT PlainType; + typedef typename internal::MaybeAddConst::Type ValueType; + typedef GenericMemberIterator MemberIterator; // This may be const or non-const iterator + typedef GenericMemberIterator ConstMemberIterator; + typedef typename ValueType::AllocatorType AllocatorType; + typedef typename ValueType::StringRefType StringRefType; + typedef typename ValueType::EncodingType EncodingType; + typedef typename ValueType::Ch Ch; + + template + friend class GenericValue; + + GenericObject(const GenericObject& rhs) : value_(rhs.value_) {} + GenericObject& operator=(const GenericObject& rhs) { value_ = rhs.value_; return *this; } + ~GenericObject() {} + + SizeType MemberCount() const { return value_.MemberCount(); } + SizeType MemberCapacity() const { return value_.MemberCapacity(); } + bool ObjectEmpty() const { return value_.ObjectEmpty(); } + template ValueType& operator[](T* name) const { return value_[name]; } + template ValueType& operator[](const GenericValue& name) const { return value_[name]; } +#if RAPIDJSON_HAS_STDSTRING + ValueType& operator[](const std::basic_string& name) const { return value_[name]; } +#endif + MemberIterator MemberBegin() const { return value_.MemberBegin(); } + MemberIterator MemberEnd() const { return value_.MemberEnd(); } + GenericObject MemberReserve(SizeType newCapacity, AllocatorType &allocator) const { value_.MemberReserve(newCapacity, allocator); return *this; } + bool HasMember(const Ch* name) const { return value_.HasMember(name); } +#if RAPIDJSON_HAS_STDSTRING + bool HasMember(const std::basic_string& name) const { return value_.HasMember(name); } +#endif + template bool HasMember(const GenericValue& name) const { return value_.HasMember(name); } + MemberIterator FindMember(const Ch* name) const { return value_.FindMember(name); } + template MemberIterator FindMember(const GenericValue& name) const { return value_.FindMember(name); } +#if RAPIDJSON_HAS_STDSTRING + MemberIterator FindMember(const std::basic_string& name) const { return value_.FindMember(name); } +#endif + GenericObject AddMember(ValueType& name, ValueType& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } + GenericObject AddMember(ValueType& name, StringRefType value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } +#if RAPIDJSON_HAS_STDSTRING + GenericObject AddMember(ValueType& name, std::basic_string& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } +#endif + template RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (ValueType&)) AddMember(ValueType& name, T value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + GenericObject AddMember(ValueType&& name, ValueType&& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } + GenericObject AddMember(ValueType&& name, ValueType& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } + GenericObject AddMember(ValueType& name, ValueType&& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } + GenericObject AddMember(StringRefType name, ValueType&& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } +#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS + GenericObject AddMember(StringRefType name, ValueType& value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } + GenericObject AddMember(StringRefType name, StringRefType value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } + template RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (GenericObject)) AddMember(StringRefType name, T value, AllocatorType& allocator) const { value_.AddMember(name, value, allocator); return *this; } + void RemoveAllMembers() { value_.RemoveAllMembers(); } + bool RemoveMember(const Ch* name) const { return value_.RemoveMember(name); } +#if RAPIDJSON_HAS_STDSTRING + bool RemoveMember(const std::basic_string& name) const { return value_.RemoveMember(name); } +#endif + template bool RemoveMember(const GenericValue& name) const { return value_.RemoveMember(name); } + MemberIterator RemoveMember(MemberIterator m) const { return value_.RemoveMember(m); } + MemberIterator EraseMember(ConstMemberIterator pos) const { return value_.EraseMember(pos); } + MemberIterator EraseMember(ConstMemberIterator first, ConstMemberIterator last) const { return value_.EraseMember(first, last); } + bool EraseMember(const Ch* name) const { return value_.EraseMember(name); } +#if RAPIDJSON_HAS_STDSTRING + bool EraseMember(const std::basic_string& name) const { return EraseMember(ValueType(StringRef(name))); } +#endif + template bool EraseMember(const GenericValue& name) const { return value_.EraseMember(name); } + +#if RAPIDJSON_HAS_CXX11_RANGE_FOR + MemberIterator begin() const { return value_.MemberBegin(); } + MemberIterator end() const { return value_.MemberEnd(); } +#endif + +private: + GenericObject(); + GenericObject(ValueType& value) : value_(value) {} + ValueType& value_; +}; + +RAPIDJSON_NAMESPACE_END +RAPIDJSON_DIAG_POP + +#endif // RAPIDJSON_DOCUMENT_H_ diff --git a/C++Verifier/src/rapidjson/encodedstream.h b/C++Verifier/src/rapidjson/encodedstream.h new file mode 100644 index 0000000..223601c --- /dev/null +++ b/C++Verifier/src/rapidjson/encodedstream.h @@ -0,0 +1,299 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_ENCODEDSTREAM_H_ +#define RAPIDJSON_ENCODEDSTREAM_H_ + +#include "stream.h" +#include "memorystream.h" + +#ifdef __GNUC__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +#endif + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Input byte stream wrapper with a statically bound encoding. +/*! + \tparam Encoding The interpretation of encoding of the stream. Either UTF8, UTF16LE, UTF16BE, UTF32LE, UTF32BE. + \tparam InputByteStream Type of input byte stream. For example, FileReadStream. +*/ +template +class EncodedInputStream { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); +public: + typedef typename Encoding::Ch Ch; + + EncodedInputStream(InputByteStream& is) : is_(is) { + current_ = Encoding::TakeBOM(is_); + } + + Ch Peek() const { return current_; } + Ch Take() { Ch c = current_; current_ = Encoding::Take(is_); return c; } + size_t Tell() const { return is_.Tell(); } + + // Not implemented + void Put(Ch) { RAPIDJSON_ASSERT(false); } + void Flush() { RAPIDJSON_ASSERT(false); } + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + +private: + EncodedInputStream(const EncodedInputStream&); + EncodedInputStream& operator=(const EncodedInputStream&); + + InputByteStream& is_; + Ch current_; +}; + +//! Specialized for UTF8 MemoryStream. +template <> +class EncodedInputStream, MemoryStream> { +public: + typedef UTF8<>::Ch Ch; + + EncodedInputStream(MemoryStream& is) : is_(is) { + if (static_cast(is_.Peek()) == 0xEFu) is_.Take(); + if (static_cast(is_.Peek()) == 0xBBu) is_.Take(); + if (static_cast(is_.Peek()) == 0xBFu) is_.Take(); + } + Ch Peek() const { return is_.Peek(); } + Ch Take() { return is_.Take(); } + size_t Tell() const { return is_.Tell(); } + + // Not implemented + void Put(Ch) {} + void Flush() {} + Ch* PutBegin() { return 0; } + size_t PutEnd(Ch*) { return 0; } + + MemoryStream& is_; + +private: + EncodedInputStream(const EncodedInputStream&); + EncodedInputStream& operator=(const EncodedInputStream&); +}; + +//! Output byte stream wrapper with statically bound encoding. +/*! + \tparam Encoding The interpretation of encoding of the stream. Either UTF8, UTF16LE, UTF16BE, UTF32LE, UTF32BE. + \tparam OutputByteStream Type of input byte stream. For example, FileWriteStream. +*/ +template +class EncodedOutputStream { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); +public: + typedef typename Encoding::Ch Ch; + + EncodedOutputStream(OutputByteStream& os, bool putBOM = true) : os_(os) { + if (putBOM) + Encoding::PutBOM(os_); + } + + void Put(Ch c) { Encoding::Put(os_, c); } + void Flush() { os_.Flush(); } + + // Not implemented + Ch Peek() const { RAPIDJSON_ASSERT(false); return 0;} + Ch Take() { RAPIDJSON_ASSERT(false); return 0;} + size_t Tell() const { RAPIDJSON_ASSERT(false); return 0; } + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + +private: + EncodedOutputStream(const EncodedOutputStream&); + EncodedOutputStream& operator=(const EncodedOutputStream&); + + OutputByteStream& os_; +}; + +#define RAPIDJSON_ENCODINGS_FUNC(x) UTF8::x, UTF16LE::x, UTF16BE::x, UTF32LE::x, UTF32BE::x + +//! Input stream wrapper with dynamically bound encoding and automatic encoding detection. +/*! + \tparam CharType Type of character for reading. + \tparam InputByteStream type of input byte stream to be wrapped. +*/ +template +class AutoUTFInputStream { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); +public: + typedef CharType Ch; + + //! Constructor. + /*! + \param is input stream to be wrapped. + \param type UTF encoding type if it is not detected from the stream. + */ + AutoUTFInputStream(InputByteStream& is, UTFType type = kUTF8) : is_(&is), type_(type), hasBOM_(false) { + RAPIDJSON_ASSERT(type >= kUTF8 && type <= kUTF32BE); + DetectType(); + static const TakeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Take) }; + takeFunc_ = f[type_]; + current_ = takeFunc_(*is_); + } + + UTFType GetType() const { return type_; } + bool HasBOM() const { return hasBOM_; } + + Ch Peek() const { return current_; } + Ch Take() { Ch c = current_; current_ = takeFunc_(*is_); return c; } + size_t Tell() const { return is_->Tell(); } + + // Not implemented + void Put(Ch) { RAPIDJSON_ASSERT(false); } + void Flush() { RAPIDJSON_ASSERT(false); } + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + +private: + AutoUTFInputStream(const AutoUTFInputStream&); + AutoUTFInputStream& operator=(const AutoUTFInputStream&); + + // Detect encoding type with BOM or RFC 4627 + void DetectType() { + // BOM (Byte Order Mark): + // 00 00 FE FF UTF-32BE + // FF FE 00 00 UTF-32LE + // FE FF UTF-16BE + // FF FE UTF-16LE + // EF BB BF UTF-8 + + const unsigned char* c = reinterpret_cast(is_->Peek4()); + if (!c) + return; + + unsigned bom = static_cast(c[0] | (c[1] << 8) | (c[2] << 16) | (c[3] << 24)); + hasBOM_ = false; + if (bom == 0xFFFE0000) { type_ = kUTF32BE; hasBOM_ = true; is_->Take(); is_->Take(); is_->Take(); is_->Take(); } + else if (bom == 0x0000FEFF) { type_ = kUTF32LE; hasBOM_ = true; is_->Take(); is_->Take(); is_->Take(); is_->Take(); } + else if ((bom & 0xFFFF) == 0xFFFE) { type_ = kUTF16BE; hasBOM_ = true; is_->Take(); is_->Take(); } + else if ((bom & 0xFFFF) == 0xFEFF) { type_ = kUTF16LE; hasBOM_ = true; is_->Take(); is_->Take(); } + else if ((bom & 0xFFFFFF) == 0xBFBBEF) { type_ = kUTF8; hasBOM_ = true; is_->Take(); is_->Take(); is_->Take(); } + + // RFC 4627: Section 3 + // "Since the first two characters of a JSON text will always be ASCII + // characters [RFC0020], it is possible to determine whether an octet + // stream is UTF-8, UTF-16 (BE or LE), or UTF-32 (BE or LE) by looking + // at the pattern of nulls in the first four octets." + // 00 00 00 xx UTF-32BE + // 00 xx 00 xx UTF-16BE + // xx 00 00 00 UTF-32LE + // xx 00 xx 00 UTF-16LE + // xx xx xx xx UTF-8 + + if (!hasBOM_) { + int pattern = (c[0] ? 1 : 0) | (c[1] ? 2 : 0) | (c[2] ? 4 : 0) | (c[3] ? 8 : 0); + switch (pattern) { + case 0x08: type_ = kUTF32BE; break; + case 0x0A: type_ = kUTF16BE; break; + case 0x01: type_ = kUTF32LE; break; + case 0x05: type_ = kUTF16LE; break; + case 0x0F: type_ = kUTF8; break; + default: break; // Use type defined by user. + } + } + + // Runtime check whether the size of character type is sufficient. It only perform checks with assertion. + if (type_ == kUTF16LE || type_ == kUTF16BE) RAPIDJSON_ASSERT(sizeof(Ch) >= 2); + if (type_ == kUTF32LE || type_ == kUTF32BE) RAPIDJSON_ASSERT(sizeof(Ch) >= 4); + } + + typedef Ch (*TakeFunc)(InputByteStream& is); + InputByteStream* is_; + UTFType type_; + Ch current_; + TakeFunc takeFunc_; + bool hasBOM_; +}; + +//! Output stream wrapper with dynamically bound encoding and automatic encoding detection. +/*! + \tparam CharType Type of character for writing. + \tparam OutputByteStream type of output byte stream to be wrapped. +*/ +template +class AutoUTFOutputStream { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); +public: + typedef CharType Ch; + + //! Constructor. + /*! + \param os output stream to be wrapped. + \param type UTF encoding type. + \param putBOM Whether to write BOM at the beginning of the stream. + */ + AutoUTFOutputStream(OutputByteStream& os, UTFType type, bool putBOM) : os_(&os), type_(type) { + RAPIDJSON_ASSERT(type >= kUTF8 && type <= kUTF32BE); + + // Runtime check whether the size of character type is sufficient. It only perform checks with assertion. + if (type_ == kUTF16LE || type_ == kUTF16BE) RAPIDJSON_ASSERT(sizeof(Ch) >= 2); + if (type_ == kUTF32LE || type_ == kUTF32BE) RAPIDJSON_ASSERT(sizeof(Ch) >= 4); + + static const PutFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Put) }; + putFunc_ = f[type_]; + + if (putBOM) + PutBOM(); + } + + UTFType GetType() const { return type_; } + + void Put(Ch c) { putFunc_(*os_, c); } + void Flush() { os_->Flush(); } + + // Not implemented + Ch Peek() const { RAPIDJSON_ASSERT(false); return 0;} + Ch Take() { RAPIDJSON_ASSERT(false); return 0;} + size_t Tell() const { RAPIDJSON_ASSERT(false); return 0; } + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + +private: + AutoUTFOutputStream(const AutoUTFOutputStream&); + AutoUTFOutputStream& operator=(const AutoUTFOutputStream&); + + void PutBOM() { + typedef void (*PutBOMFunc)(OutputByteStream&); + static const PutBOMFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(PutBOM) }; + f[type_](*os_); + } + + typedef void (*PutFunc)(OutputByteStream&, Ch); + + OutputByteStream* os_; + UTFType type_; + PutFunc putFunc_; +}; + +#undef RAPIDJSON_ENCODINGS_FUNC + +RAPIDJSON_NAMESPACE_END + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +#endif + +#ifdef __GNUC__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_FILESTREAM_H_ diff --git a/C++Verifier/src/rapidjson/encodings.h b/C++Verifier/src/rapidjson/encodings.h new file mode 100644 index 0000000..0b24467 --- /dev/null +++ b/C++Verifier/src/rapidjson/encodings.h @@ -0,0 +1,716 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_ENCODINGS_H_ +#define RAPIDJSON_ENCODINGS_H_ + +#include "rapidjson.h" + +#if defined(_MSC_VER) && !defined(__clang__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4244) // conversion from 'type1' to 'type2', possible loss of data +RAPIDJSON_DIAG_OFF(4702) // unreachable code +#elif defined(__GNUC__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +RAPIDJSON_DIAG_OFF(overflow) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +/////////////////////////////////////////////////////////////////////////////// +// Encoding + +/*! \class rapidjson::Encoding + \brief Concept for encoding of Unicode characters. + +\code +concept Encoding { + typename Ch; //! Type of character. A "character" is actually a code unit in unicode's definition. + + enum { supportUnicode = 1 }; // or 0 if not supporting unicode + + //! \brief Encode a Unicode codepoint to an output stream. + //! \param os Output stream. + //! \param codepoint An unicode codepoint, ranging from 0x0 to 0x10FFFF inclusively. + template + static void Encode(OutputStream& os, unsigned codepoint); + + //! \brief Decode a Unicode codepoint from an input stream. + //! \param is Input stream. + //! \param codepoint Output of the unicode codepoint. + //! \return true if a valid codepoint can be decoded from the stream. + template + static bool Decode(InputStream& is, unsigned* codepoint); + + //! \brief Validate one Unicode codepoint from an encoded stream. + //! \param is Input stream to obtain codepoint. + //! \param os Output for copying one codepoint. + //! \return true if it is valid. + //! \note This function just validating and copying the codepoint without actually decode it. + template + static bool Validate(InputStream& is, OutputStream& os); + + // The following functions are deal with byte streams. + + //! Take a character from input byte stream, skip BOM if exist. + template + static CharType TakeBOM(InputByteStream& is); + + //! Take a character from input byte stream. + template + static Ch Take(InputByteStream& is); + + //! Put BOM to output byte stream. + template + static void PutBOM(OutputByteStream& os); + + //! Put a character to output byte stream. + template + static void Put(OutputByteStream& os, Ch c); +}; +\endcode +*/ + +/////////////////////////////////////////////////////////////////////////////// +// UTF8 + +//! UTF-8 encoding. +/*! http://en.wikipedia.org/wiki/UTF-8 + http://tools.ietf.org/html/rfc3629 + \tparam CharType Code unit for storing 8-bit UTF-8 data. Default is char. + \note implements Encoding concept +*/ +template +struct UTF8 { + typedef CharType Ch; + + enum { supportUnicode = 1 }; + + template + static void Encode(OutputStream& os, unsigned codepoint) { + if (codepoint <= 0x7F) + os.Put(static_cast(codepoint & 0xFF)); + else if (codepoint <= 0x7FF) { + os.Put(static_cast(0xC0 | ((codepoint >> 6) & 0xFF))); + os.Put(static_cast(0x80 | ((codepoint & 0x3F)))); + } + else if (codepoint <= 0xFFFF) { + os.Put(static_cast(0xE0 | ((codepoint >> 12) & 0xFF))); + os.Put(static_cast(0x80 | ((codepoint >> 6) & 0x3F))); + os.Put(static_cast(0x80 | (codepoint & 0x3F))); + } + else { + RAPIDJSON_ASSERT(codepoint <= 0x10FFFF); + os.Put(static_cast(0xF0 | ((codepoint >> 18) & 0xFF))); + os.Put(static_cast(0x80 | ((codepoint >> 12) & 0x3F))); + os.Put(static_cast(0x80 | ((codepoint >> 6) & 0x3F))); + os.Put(static_cast(0x80 | (codepoint & 0x3F))); + } + } + + template + static void EncodeUnsafe(OutputStream& os, unsigned codepoint) { + if (codepoint <= 0x7F) + PutUnsafe(os, static_cast(codepoint & 0xFF)); + else if (codepoint <= 0x7FF) { + PutUnsafe(os, static_cast(0xC0 | ((codepoint >> 6) & 0xFF))); + PutUnsafe(os, static_cast(0x80 | ((codepoint & 0x3F)))); + } + else if (codepoint <= 0xFFFF) { + PutUnsafe(os, static_cast(0xE0 | ((codepoint >> 12) & 0xFF))); + PutUnsafe(os, static_cast(0x80 | ((codepoint >> 6) & 0x3F))); + PutUnsafe(os, static_cast(0x80 | (codepoint & 0x3F))); + } + else { + RAPIDJSON_ASSERT(codepoint <= 0x10FFFF); + PutUnsafe(os, static_cast(0xF0 | ((codepoint >> 18) & 0xFF))); + PutUnsafe(os, static_cast(0x80 | ((codepoint >> 12) & 0x3F))); + PutUnsafe(os, static_cast(0x80 | ((codepoint >> 6) & 0x3F))); + PutUnsafe(os, static_cast(0x80 | (codepoint & 0x3F))); + } + } + + template + static bool Decode(InputStream& is, unsigned* codepoint) { +#define RAPIDJSON_COPY() c = is.Take(); *codepoint = (*codepoint << 6) | (static_cast(c) & 0x3Fu) +#define RAPIDJSON_TRANS(mask) result &= ((GetRange(static_cast(c)) & mask) != 0) +#define RAPIDJSON_TAIL() RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x70) + typename InputStream::Ch c = is.Take(); + if (!(c & 0x80)) { + *codepoint = static_cast(c); + return true; + } + + unsigned char type = GetRange(static_cast(c)); + if (type >= 32) { + *codepoint = 0; + } else { + *codepoint = (0xFFu >> type) & static_cast(c); + } + bool result = true; + switch (type) { + case 2: RAPIDJSON_TAIL(); return result; + case 3: RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + case 4: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x50); RAPIDJSON_TAIL(); return result; + case 5: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x10); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + case 6: RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + case 10: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x20); RAPIDJSON_TAIL(); return result; + case 11: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x60); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + default: return false; + } +#undef RAPIDJSON_COPY +#undef RAPIDJSON_TRANS +#undef RAPIDJSON_TAIL + } + + template + static bool Validate(InputStream& is, OutputStream& os) { +#define RAPIDJSON_COPY() os.Put(c = is.Take()) +#define RAPIDJSON_TRANS(mask) result &= ((GetRange(static_cast(c)) & mask) != 0) +#define RAPIDJSON_TAIL() RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x70) + Ch c; + RAPIDJSON_COPY(); + if (!(c & 0x80)) + return true; + + bool result = true; + switch (GetRange(static_cast(c))) { + case 2: RAPIDJSON_TAIL(); return result; + case 3: RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + case 4: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x50); RAPIDJSON_TAIL(); return result; + case 5: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x10); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + case 6: RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + case 10: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x20); RAPIDJSON_TAIL(); return result; + case 11: RAPIDJSON_COPY(); RAPIDJSON_TRANS(0x60); RAPIDJSON_TAIL(); RAPIDJSON_TAIL(); return result; + default: return false; + } +#undef RAPIDJSON_COPY +#undef RAPIDJSON_TRANS +#undef RAPIDJSON_TAIL + } + + static unsigned char GetRange(unsigned char c) { + // Referring to DFA of http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ + // With new mapping 1 -> 0x10, 7 -> 0x20, 9 -> 0x40, such that AND operation can test multiple types. + static const unsigned char type[] = { + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, + 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, + 8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, + 10,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3, 11,6,6,6,5,8,8,8,8,8,8,8,8,8,8,8, + }; + return type[c]; + } + + template + static CharType TakeBOM(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + typename InputByteStream::Ch c = Take(is); + if (static_cast(c) != 0xEFu) return c; + c = is.Take(); + if (static_cast(c) != 0xBBu) return c; + c = is.Take(); + if (static_cast(c) != 0xBFu) return c; + c = is.Take(); + return c; + } + + template + static Ch Take(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + return static_cast(is.Take()); + } + + template + static void PutBOM(OutputByteStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(0xEFu)); + os.Put(static_cast(0xBBu)); + os.Put(static_cast(0xBFu)); + } + + template + static void Put(OutputByteStream& os, Ch c) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(c)); + } +}; + +/////////////////////////////////////////////////////////////////////////////// +// UTF16 + +//! UTF-16 encoding. +/*! http://en.wikipedia.org/wiki/UTF-16 + http://tools.ietf.org/html/rfc2781 + \tparam CharType Type for storing 16-bit UTF-16 data. Default is wchar_t. C++11 may use char16_t instead. + \note implements Encoding concept + + \note For in-memory access, no need to concern endianness. The code units and code points are represented by CPU's endianness. + For streaming, use UTF16LE and UTF16BE, which handle endianness. +*/ +template +struct UTF16 { + typedef CharType Ch; + RAPIDJSON_STATIC_ASSERT(sizeof(Ch) >= 2); + + enum { supportUnicode = 1 }; + + template + static void Encode(OutputStream& os, unsigned codepoint) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 2); + if (codepoint <= 0xFFFF) { + RAPIDJSON_ASSERT(codepoint < 0xD800 || codepoint > 0xDFFF); // Code point itself cannot be surrogate pair + os.Put(static_cast(codepoint)); + } + else { + RAPIDJSON_ASSERT(codepoint <= 0x10FFFF); + unsigned v = codepoint - 0x10000; + os.Put(static_cast((v >> 10) | 0xD800)); + os.Put(static_cast((v & 0x3FF) | 0xDC00)); + } + } + + + template + static void EncodeUnsafe(OutputStream& os, unsigned codepoint) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 2); + if (codepoint <= 0xFFFF) { + RAPIDJSON_ASSERT(codepoint < 0xD800 || codepoint > 0xDFFF); // Code point itself cannot be surrogate pair + PutUnsafe(os, static_cast(codepoint)); + } + else { + RAPIDJSON_ASSERT(codepoint <= 0x10FFFF); + unsigned v = codepoint - 0x10000; + PutUnsafe(os, static_cast((v >> 10) | 0xD800)); + PutUnsafe(os, static_cast((v & 0x3FF) | 0xDC00)); + } + } + + template + static bool Decode(InputStream& is, unsigned* codepoint) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputStream::Ch) >= 2); + typename InputStream::Ch c = is.Take(); + if (c < 0xD800 || c > 0xDFFF) { + *codepoint = static_cast(c); + return true; + } + else if (c <= 0xDBFF) { + *codepoint = (static_cast(c) & 0x3FF) << 10; + c = is.Take(); + *codepoint |= (static_cast(c) & 0x3FF); + *codepoint += 0x10000; + return c >= 0xDC00 && c <= 0xDFFF; + } + return false; + } + + template + static bool Validate(InputStream& is, OutputStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputStream::Ch) >= 2); + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 2); + typename InputStream::Ch c; + os.Put(static_cast(c = is.Take())); + if (c < 0xD800 || c > 0xDFFF) + return true; + else if (c <= 0xDBFF) { + os.Put(c = is.Take()); + return c >= 0xDC00 && c <= 0xDFFF; + } + return false; + } +}; + +//! UTF-16 little endian encoding. +template +struct UTF16LE : UTF16 { + template + static CharType TakeBOM(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + CharType c = Take(is); + return static_cast(c) == 0xFEFFu ? Take(is) : c; + } + + template + static CharType Take(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + unsigned c = static_cast(is.Take()); + c |= static_cast(static_cast(is.Take())) << 8; + return static_cast(c); + } + + template + static void PutBOM(OutputByteStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(0xFFu)); + os.Put(static_cast(0xFEu)); + } + + template + static void Put(OutputByteStream& os, CharType c) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(static_cast(c) & 0xFFu)); + os.Put(static_cast((static_cast(c) >> 8) & 0xFFu)); + } +}; + +//! UTF-16 big endian encoding. +template +struct UTF16BE : UTF16 { + template + static CharType TakeBOM(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + CharType c = Take(is); + return static_cast(c) == 0xFEFFu ? Take(is) : c; + } + + template + static CharType Take(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + unsigned c = static_cast(static_cast(is.Take())) << 8; + c |= static_cast(static_cast(is.Take())); + return static_cast(c); + } + + template + static void PutBOM(OutputByteStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(0xFEu)); + os.Put(static_cast(0xFFu)); + } + + template + static void Put(OutputByteStream& os, CharType c) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast((static_cast(c) >> 8) & 0xFFu)); + os.Put(static_cast(static_cast(c) & 0xFFu)); + } +}; + +/////////////////////////////////////////////////////////////////////////////// +// UTF32 + +//! UTF-32 encoding. +/*! http://en.wikipedia.org/wiki/UTF-32 + \tparam CharType Type for storing 32-bit UTF-32 data. Default is unsigned. C++11 may use char32_t instead. + \note implements Encoding concept + + \note For in-memory access, no need to concern endianness. The code units and code points are represented by CPU's endianness. + For streaming, use UTF32LE and UTF32BE, which handle endianness. +*/ +template +struct UTF32 { + typedef CharType Ch; + RAPIDJSON_STATIC_ASSERT(sizeof(Ch) >= 4); + + enum { supportUnicode = 1 }; + + template + static void Encode(OutputStream& os, unsigned codepoint) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 4); + RAPIDJSON_ASSERT(codepoint <= 0x10FFFF); + os.Put(codepoint); + } + + template + static void EncodeUnsafe(OutputStream& os, unsigned codepoint) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputStream::Ch) >= 4); + RAPIDJSON_ASSERT(codepoint <= 0x10FFFF); + PutUnsafe(os, codepoint); + } + + template + static bool Decode(InputStream& is, unsigned* codepoint) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputStream::Ch) >= 4); + Ch c = is.Take(); + *codepoint = c; + return c <= 0x10FFFF; + } + + template + static bool Validate(InputStream& is, OutputStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputStream::Ch) >= 4); + Ch c; + os.Put(c = is.Take()); + return c <= 0x10FFFF; + } +}; + +//! UTF-32 little endian enocoding. +template +struct UTF32LE : UTF32 { + template + static CharType TakeBOM(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + CharType c = Take(is); + return static_cast(c) == 0x0000FEFFu ? Take(is) : c; + } + + template + static CharType Take(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + unsigned c = static_cast(is.Take()); + c |= static_cast(static_cast(is.Take())) << 8; + c |= static_cast(static_cast(is.Take())) << 16; + c |= static_cast(static_cast(is.Take())) << 24; + return static_cast(c); + } + + template + static void PutBOM(OutputByteStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(0xFFu)); + os.Put(static_cast(0xFEu)); + os.Put(static_cast(0x00u)); + os.Put(static_cast(0x00u)); + } + + template + static void Put(OutputByteStream& os, CharType c) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(c & 0xFFu)); + os.Put(static_cast((c >> 8) & 0xFFu)); + os.Put(static_cast((c >> 16) & 0xFFu)); + os.Put(static_cast((c >> 24) & 0xFFu)); + } +}; + +//! UTF-32 big endian encoding. +template +struct UTF32BE : UTF32 { + template + static CharType TakeBOM(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + CharType c = Take(is); + return static_cast(c) == 0x0000FEFFu ? Take(is) : c; + } + + template + static CharType Take(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + unsigned c = static_cast(static_cast(is.Take())) << 24; + c |= static_cast(static_cast(is.Take())) << 16; + c |= static_cast(static_cast(is.Take())) << 8; + c |= static_cast(static_cast(is.Take())); + return static_cast(c); + } + + template + static void PutBOM(OutputByteStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(0x00u)); + os.Put(static_cast(0x00u)); + os.Put(static_cast(0xFEu)); + os.Put(static_cast(0xFFu)); + } + + template + static void Put(OutputByteStream& os, CharType c) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast((c >> 24) & 0xFFu)); + os.Put(static_cast((c >> 16) & 0xFFu)); + os.Put(static_cast((c >> 8) & 0xFFu)); + os.Put(static_cast(c & 0xFFu)); + } +}; + +/////////////////////////////////////////////////////////////////////////////// +// ASCII + +//! ASCII encoding. +/*! http://en.wikipedia.org/wiki/ASCII + \tparam CharType Code unit for storing 7-bit ASCII data. Default is char. + \note implements Encoding concept +*/ +template +struct ASCII { + typedef CharType Ch; + + enum { supportUnicode = 0 }; + + template + static void Encode(OutputStream& os, unsigned codepoint) { + RAPIDJSON_ASSERT(codepoint <= 0x7F); + os.Put(static_cast(codepoint & 0xFF)); + } + + template + static void EncodeUnsafe(OutputStream& os, unsigned codepoint) { + RAPIDJSON_ASSERT(codepoint <= 0x7F); + PutUnsafe(os, static_cast(codepoint & 0xFF)); + } + + template + static bool Decode(InputStream& is, unsigned* codepoint) { + uint8_t c = static_cast(is.Take()); + *codepoint = c; + return c <= 0X7F; + } + + template + static bool Validate(InputStream& is, OutputStream& os) { + uint8_t c = static_cast(is.Take()); + os.Put(static_cast(c)); + return c <= 0x7F; + } + + template + static CharType TakeBOM(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + uint8_t c = static_cast(Take(is)); + return static_cast(c); + } + + template + static Ch Take(InputByteStream& is) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename InputByteStream::Ch) == 1); + return static_cast(is.Take()); + } + + template + static void PutBOM(OutputByteStream& os) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + (void)os; + } + + template + static void Put(OutputByteStream& os, Ch c) { + RAPIDJSON_STATIC_ASSERT(sizeof(typename OutputByteStream::Ch) == 1); + os.Put(static_cast(c)); + } +}; + +/////////////////////////////////////////////////////////////////////////////// +// AutoUTF + +//! Runtime-specified UTF encoding type of a stream. +enum UTFType { + kUTF8 = 0, //!< UTF-8. + kUTF16LE = 1, //!< UTF-16 little endian. + kUTF16BE = 2, //!< UTF-16 big endian. + kUTF32LE = 3, //!< UTF-32 little endian. + kUTF32BE = 4 //!< UTF-32 big endian. +}; + +//! Dynamically select encoding according to stream's runtime-specified UTF encoding type. +/*! \note This class can be used with AutoUTFInputtStream and AutoUTFOutputStream, which provides GetType(). +*/ +template +struct AutoUTF { + typedef CharType Ch; + + enum { supportUnicode = 1 }; + +#define RAPIDJSON_ENCODINGS_FUNC(x) UTF8::x, UTF16LE::x, UTF16BE::x, UTF32LE::x, UTF32BE::x + + template + static RAPIDJSON_FORCEINLINE void Encode(OutputStream& os, unsigned codepoint) { + typedef void (*EncodeFunc)(OutputStream&, unsigned); + static const EncodeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Encode) }; + (*f[os.GetType()])(os, codepoint); + } + + template + static RAPIDJSON_FORCEINLINE void EncodeUnsafe(OutputStream& os, unsigned codepoint) { + typedef void (*EncodeFunc)(OutputStream&, unsigned); + static const EncodeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(EncodeUnsafe) }; + (*f[os.GetType()])(os, codepoint); + } + + template + static RAPIDJSON_FORCEINLINE bool Decode(InputStream& is, unsigned* codepoint) { + typedef bool (*DecodeFunc)(InputStream&, unsigned*); + static const DecodeFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Decode) }; + return (*f[is.GetType()])(is, codepoint); + } + + template + static RAPIDJSON_FORCEINLINE bool Validate(InputStream& is, OutputStream& os) { + typedef bool (*ValidateFunc)(InputStream&, OutputStream&); + static const ValidateFunc f[] = { RAPIDJSON_ENCODINGS_FUNC(Validate) }; + return (*f[is.GetType()])(is, os); + } + +#undef RAPIDJSON_ENCODINGS_FUNC +}; + +/////////////////////////////////////////////////////////////////////////////// +// Transcoder + +//! Encoding conversion. +template +struct Transcoder { + //! Take one Unicode codepoint from source encoding, convert it to target encoding and put it to the output stream. + template + static RAPIDJSON_FORCEINLINE bool Transcode(InputStream& is, OutputStream& os) { + unsigned codepoint; + if (!SourceEncoding::Decode(is, &codepoint)) + return false; + TargetEncoding::Encode(os, codepoint); + return true; + } + + template + static RAPIDJSON_FORCEINLINE bool TranscodeUnsafe(InputStream& is, OutputStream& os) { + unsigned codepoint; + if (!SourceEncoding::Decode(is, &codepoint)) + return false; + TargetEncoding::EncodeUnsafe(os, codepoint); + return true; + } + + //! Validate one Unicode codepoint from an encoded stream. + template + static RAPIDJSON_FORCEINLINE bool Validate(InputStream& is, OutputStream& os) { + return Transcode(is, os); // Since source/target encoding is different, must transcode. + } +}; + +// Forward declaration. +template +inline void PutUnsafe(Stream& stream, typename Stream::Ch c); + +//! Specialization of Transcoder with same source and target encoding. +template +struct Transcoder { + template + static RAPIDJSON_FORCEINLINE bool Transcode(InputStream& is, OutputStream& os) { + os.Put(is.Take()); // Just copy one code unit. This semantic is different from primary template class. + return true; + } + + template + static RAPIDJSON_FORCEINLINE bool TranscodeUnsafe(InputStream& is, OutputStream& os) { + PutUnsafe(os, is.Take()); // Just copy one code unit. This semantic is different from primary template class. + return true; + } + + template + static RAPIDJSON_FORCEINLINE bool Validate(InputStream& is, OutputStream& os) { + return Encoding::Validate(is, os); // source/target encoding are the same + } +}; + +RAPIDJSON_NAMESPACE_END + +#if defined(__GNUC__) || (defined(_MSC_VER) && !defined(__clang__)) +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_ENCODINGS_H_ diff --git a/C++Verifier/src/rapidjson/error/en.h b/C++Verifier/src/rapidjson/error/en.h new file mode 100644 index 0000000..2db838b --- /dev/null +++ b/C++Verifier/src/rapidjson/error/en.h @@ -0,0 +1,74 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_ERROR_EN_H_ +#define RAPIDJSON_ERROR_EN_H_ + +#include "error.h" + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(switch-enum) +RAPIDJSON_DIAG_OFF(covered-switch-default) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Maps error code of parsing into error message. +/*! + \ingroup RAPIDJSON_ERRORS + \param parseErrorCode Error code obtained in parsing. + \return the error message. + \note User can make a copy of this function for localization. + Using switch-case is safer for future modification of error codes. +*/ +inline const RAPIDJSON_ERROR_CHARTYPE* GetParseError_En(ParseErrorCode parseErrorCode) { + switch (parseErrorCode) { + case kParseErrorNone: return RAPIDJSON_ERROR_STRING("No error."); + + case kParseErrorDocumentEmpty: return RAPIDJSON_ERROR_STRING("The document is empty."); + case kParseErrorDocumentRootNotSingular: return RAPIDJSON_ERROR_STRING("The document root must not be followed by other values."); + + case kParseErrorValueInvalid: return RAPIDJSON_ERROR_STRING("Invalid value."); + + case kParseErrorObjectMissName: return RAPIDJSON_ERROR_STRING("Missing a name for object member."); + case kParseErrorObjectMissColon: return RAPIDJSON_ERROR_STRING("Missing a colon after a name of object member."); + case kParseErrorObjectMissCommaOrCurlyBracket: return RAPIDJSON_ERROR_STRING("Missing a comma or '}' after an object member."); + + case kParseErrorArrayMissCommaOrSquareBracket: return RAPIDJSON_ERROR_STRING("Missing a comma or ']' after an array element."); + + case kParseErrorStringUnicodeEscapeInvalidHex: return RAPIDJSON_ERROR_STRING("Incorrect hex digit after \\u escape in string."); + case kParseErrorStringUnicodeSurrogateInvalid: return RAPIDJSON_ERROR_STRING("The surrogate pair in string is invalid."); + case kParseErrorStringEscapeInvalid: return RAPIDJSON_ERROR_STRING("Invalid escape character in string."); + case kParseErrorStringMissQuotationMark: return RAPIDJSON_ERROR_STRING("Missing a closing quotation mark in string."); + case kParseErrorStringInvalidEncoding: return RAPIDJSON_ERROR_STRING("Invalid encoding in string."); + + case kParseErrorNumberTooBig: return RAPIDJSON_ERROR_STRING("Number too big to be stored in double."); + case kParseErrorNumberMissFraction: return RAPIDJSON_ERROR_STRING("Miss fraction part in number."); + case kParseErrorNumberMissExponent: return RAPIDJSON_ERROR_STRING("Miss exponent in number."); + + case kParseErrorTermination: return RAPIDJSON_ERROR_STRING("Terminate parsing due to Handler error."); + case kParseErrorUnspecificSyntaxError: return RAPIDJSON_ERROR_STRING("Unspecific syntax error."); + + default: return RAPIDJSON_ERROR_STRING("Unknown error."); + } +} + +RAPIDJSON_NAMESPACE_END + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_ERROR_EN_H_ diff --git a/C++Verifier/src/rapidjson/error/error.h b/C++Verifier/src/rapidjson/error/error.h new file mode 100644 index 0000000..9311d2f --- /dev/null +++ b/C++Verifier/src/rapidjson/error/error.h @@ -0,0 +1,161 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_ERROR_ERROR_H_ +#define RAPIDJSON_ERROR_ERROR_H_ + +#include "../rapidjson.h" + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +#endif + +/*! \file error.h */ + +/*! \defgroup RAPIDJSON_ERRORS RapidJSON error handling */ + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_ERROR_CHARTYPE + +//! Character type of error messages. +/*! \ingroup RAPIDJSON_ERRORS + The default character type is \c char. + On Windows, user can define this macro as \c TCHAR for supporting both + unicode/non-unicode settings. +*/ +#ifndef RAPIDJSON_ERROR_CHARTYPE +#define RAPIDJSON_ERROR_CHARTYPE char +#endif + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_ERROR_STRING + +//! Macro for converting string literial to \ref RAPIDJSON_ERROR_CHARTYPE[]. +/*! \ingroup RAPIDJSON_ERRORS + By default this conversion macro does nothing. + On Windows, user can define this macro as \c _T(x) for supporting both + unicode/non-unicode settings. +*/ +#ifndef RAPIDJSON_ERROR_STRING +#define RAPIDJSON_ERROR_STRING(x) x +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +/////////////////////////////////////////////////////////////////////////////// +// ParseErrorCode + +//! Error code of parsing. +/*! \ingroup RAPIDJSON_ERRORS + \see GenericReader::Parse, GenericReader::GetParseErrorCode +*/ +enum ParseErrorCode { + kParseErrorNone = 0, //!< No error. + + kParseErrorDocumentEmpty, //!< The document is empty. + kParseErrorDocumentRootNotSingular, //!< The document root must not follow by other values. + + kParseErrorValueInvalid, //!< Invalid value. + + kParseErrorObjectMissName, //!< Missing a name for object member. + kParseErrorObjectMissColon, //!< Missing a colon after a name of object member. + kParseErrorObjectMissCommaOrCurlyBracket, //!< Missing a comma or '}' after an object member. + + kParseErrorArrayMissCommaOrSquareBracket, //!< Missing a comma or ']' after an array element. + + kParseErrorStringUnicodeEscapeInvalidHex, //!< Incorrect hex digit after \\u escape in string. + kParseErrorStringUnicodeSurrogateInvalid, //!< The surrogate pair in string is invalid. + kParseErrorStringEscapeInvalid, //!< Invalid escape character in string. + kParseErrorStringMissQuotationMark, //!< Missing a closing quotation mark in string. + kParseErrorStringInvalidEncoding, //!< Invalid encoding in string. + + kParseErrorNumberTooBig, //!< Number too big to be stored in double. + kParseErrorNumberMissFraction, //!< Miss fraction part in number. + kParseErrorNumberMissExponent, //!< Miss exponent in number. + + kParseErrorTermination, //!< Parsing was terminated. + kParseErrorUnspecificSyntaxError //!< Unspecific syntax error. +}; + +//! Result of parsing (wraps ParseErrorCode) +/*! + \ingroup RAPIDJSON_ERRORS + \code + Document doc; + ParseResult ok = doc.Parse("[42]"); + if (!ok) { + fprintf(stderr, "JSON parse error: %s (%u)", + GetParseError_En(ok.Code()), ok.Offset()); + exit(EXIT_FAILURE); + } + \endcode + \see GenericReader::Parse, GenericDocument::Parse +*/ +struct ParseResult { + //!! Unspecified boolean type + typedef bool (ParseResult::*BooleanType)() const; +public: + //! Default constructor, no error. + ParseResult() : code_(kParseErrorNone), offset_(0) {} + //! Constructor to set an error. + ParseResult(ParseErrorCode code, size_t offset) : code_(code), offset_(offset) {} + + //! Get the error code. + ParseErrorCode Code() const { return code_; } + //! Get the error offset, if \ref IsError(), 0 otherwise. + size_t Offset() const { return offset_; } + + //! Explicit conversion to \c bool, returns \c true, iff !\ref IsError(). + operator BooleanType() const { return !IsError() ? &ParseResult::IsError : NULL; } + //! Whether the result is an error. + bool IsError() const { return code_ != kParseErrorNone; } + + bool operator==(const ParseResult& that) const { return code_ == that.code_; } + bool operator==(ParseErrorCode code) const { return code_ == code; } + friend bool operator==(ParseErrorCode code, const ParseResult & err) { return code == err.code_; } + + bool operator!=(const ParseResult& that) const { return !(*this == that); } + bool operator!=(ParseErrorCode code) const { return !(*this == code); } + friend bool operator!=(ParseErrorCode code, const ParseResult & err) { return err != code; } + + //! Reset error code. + void Clear() { Set(kParseErrorNone); } + //! Update error code and offset. + void Set(ParseErrorCode code, size_t offset = 0) { code_ = code; offset_ = offset; } + +private: + ParseErrorCode code_; + size_t offset_; +}; + +//! Function pointer type of GetParseError(). +/*! \ingroup RAPIDJSON_ERRORS + + This is the prototype for \c GetParseError_X(), where \c X is a locale. + User can dynamically change locale in runtime, e.g.: +\code + GetParseErrorFunc GetParseError = GetParseError_En; // or whatever + const RAPIDJSON_ERROR_CHARTYPE* s = GetParseError(document.GetParseErrorCode()); +\endcode +*/ +typedef const RAPIDJSON_ERROR_CHARTYPE* (*GetParseErrorFunc)(ParseErrorCode); + +RAPIDJSON_NAMESPACE_END + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_ERROR_ERROR_H_ diff --git a/C++Verifier/src/rapidjson/filereadstream.h b/C++Verifier/src/rapidjson/filereadstream.h new file mode 100644 index 0000000..6b34370 --- /dev/null +++ b/C++Verifier/src/rapidjson/filereadstream.h @@ -0,0 +1,99 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_FILEREADSTREAM_H_ +#define RAPIDJSON_FILEREADSTREAM_H_ + +#include "stream.h" +#include + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +RAPIDJSON_DIAG_OFF(unreachable-code) +RAPIDJSON_DIAG_OFF(missing-noreturn) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! File byte stream for input using fread(). +/*! + \note implements Stream concept +*/ +class FileReadStream { +public: + typedef char Ch; //!< Character type (byte). + + //! Constructor. + /*! + \param fp File pointer opened for read. + \param buffer user-supplied buffer. + \param bufferSize size of buffer in bytes. Must >=4 bytes. + */ + FileReadStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferSize_(bufferSize), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) { + RAPIDJSON_ASSERT(fp_ != 0); + RAPIDJSON_ASSERT(bufferSize >= 4); + Read(); + } + + Ch Peek() const { return *current_; } + Ch Take() { Ch c = *current_; Read(); return c; } + size_t Tell() const { return count_ + static_cast(current_ - buffer_); } + + // Not implemented + void Put(Ch) { RAPIDJSON_ASSERT(false); } + void Flush() { RAPIDJSON_ASSERT(false); } + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + + // For encoding detection only. + const Ch* Peek4() const { + return (current_ + 4 - !eof_ <= bufferLast_) ? current_ : 0; + } + +private: + void Read() { + if (current_ < bufferLast_) + ++current_; + else if (!eof_) { + count_ += readCount_; + readCount_ = std::fread(buffer_, 1, bufferSize_, fp_); + bufferLast_ = buffer_ + readCount_ - 1; + current_ = buffer_; + + if (readCount_ < bufferSize_) { + buffer_[readCount_] = '\0'; + ++bufferLast_; + eof_ = true; + } + } + } + + std::FILE* fp_; + Ch *buffer_; + size_t bufferSize_; + Ch *bufferLast_; + Ch *current_; + size_t readCount_; + size_t count_; //!< Number of characters read + bool eof_; +}; + +RAPIDJSON_NAMESPACE_END + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_FILESTREAM_H_ diff --git a/C++Verifier/src/rapidjson/filewritestream.h b/C++Verifier/src/rapidjson/filewritestream.h new file mode 100644 index 0000000..8b48fee --- /dev/null +++ b/C++Verifier/src/rapidjson/filewritestream.h @@ -0,0 +1,104 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_FILEWRITESTREAM_H_ +#define RAPIDJSON_FILEWRITESTREAM_H_ + +#include "stream.h" +#include + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(unreachable-code) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Wrapper of C file stream for output using fwrite(). +/*! + \note implements Stream concept +*/ +class FileWriteStream { +public: + typedef char Ch; //!< Character type. Only support char. + + FileWriteStream(std::FILE* fp, char* buffer, size_t bufferSize) : fp_(fp), buffer_(buffer), bufferEnd_(buffer + bufferSize), current_(buffer_) { + RAPIDJSON_ASSERT(fp_ != 0); + } + + void Put(char c) { + if (current_ >= bufferEnd_) + Flush(); + + *current_++ = c; + } + + void PutN(char c, size_t n) { + size_t avail = static_cast(bufferEnd_ - current_); + while (n > avail) { + std::memset(current_, c, avail); + current_ += avail; + Flush(); + n -= avail; + avail = static_cast(bufferEnd_ - current_); + } + + if (n > 0) { + std::memset(current_, c, n); + current_ += n; + } + } + + void Flush() { + if (current_ != buffer_) { + size_t result = std::fwrite(buffer_, 1, static_cast(current_ - buffer_), fp_); + if (result < static_cast(current_ - buffer_)) { + // failure deliberately ignored at this time + // added to avoid warn_unused_result build errors + } + current_ = buffer_; + } + } + + // Not implemented + char Peek() const { RAPIDJSON_ASSERT(false); return 0; } + char Take() { RAPIDJSON_ASSERT(false); return 0; } + size_t Tell() const { RAPIDJSON_ASSERT(false); return 0; } + char* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(char*) { RAPIDJSON_ASSERT(false); return 0; } + +private: + // Prohibit copy constructor & assignment operator. + FileWriteStream(const FileWriteStream&); + FileWriteStream& operator=(const FileWriteStream&); + + std::FILE* fp_; + char *buffer_; + char *bufferEnd_; + char *current_; +}; + +//! Implement specialized version of PutN() with memset() for better performance. +template<> +inline void PutN(FileWriteStream& stream, char c, size_t n) { + stream.PutN(c, n); +} + +RAPIDJSON_NAMESPACE_END + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_FILESTREAM_H_ diff --git a/C++Verifier/src/rapidjson/fwd.h b/C++Verifier/src/rapidjson/fwd.h new file mode 100644 index 0000000..b74a2b8 --- /dev/null +++ b/C++Verifier/src/rapidjson/fwd.h @@ -0,0 +1,151 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_FWD_H_ +#define RAPIDJSON_FWD_H_ + +#include "rapidjson.h" + +RAPIDJSON_NAMESPACE_BEGIN + +// encodings.h + +template struct UTF8; +template struct UTF16; +template struct UTF16BE; +template struct UTF16LE; +template struct UTF32; +template struct UTF32BE; +template struct UTF32LE; +template struct ASCII; +template struct AutoUTF; + +template +struct Transcoder; + +// allocators.h + +class CrtAllocator; + +template +class MemoryPoolAllocator; + +// stream.h + +template +struct GenericStringStream; + +typedef GenericStringStream > StringStream; + +template +struct GenericInsituStringStream; + +typedef GenericInsituStringStream > InsituStringStream; + +// stringbuffer.h + +template +class GenericStringBuffer; + +typedef GenericStringBuffer, CrtAllocator> StringBuffer; + +// filereadstream.h + +class FileReadStream; + +// filewritestream.h + +class FileWriteStream; + +// memorybuffer.h + +template +struct GenericMemoryBuffer; + +typedef GenericMemoryBuffer MemoryBuffer; + +// memorystream.h + +struct MemoryStream; + +// reader.h + +template +struct BaseReaderHandler; + +template +class GenericReader; + +typedef GenericReader, UTF8, CrtAllocator> Reader; + +// writer.h + +template +class Writer; + +// prettywriter.h + +template +class PrettyWriter; + +// document.h + +template +class GenericMember; + +template +class GenericMemberIterator; + +template +struct GenericStringRef; + +template +class GenericValue; + +typedef GenericValue, MemoryPoolAllocator > Value; + +template +class GenericDocument; + +typedef GenericDocument, MemoryPoolAllocator, CrtAllocator> Document; + +// pointer.h + +template +class GenericPointer; + +typedef GenericPointer Pointer; + +// schema.h + +template +class IGenericRemoteSchemaDocumentProvider; + +template +class GenericSchemaDocument; + +typedef GenericSchemaDocument SchemaDocument; +typedef IGenericRemoteSchemaDocumentProvider IRemoteSchemaDocumentProvider; + +template < + typename SchemaDocumentType, + typename OutputHandler, + typename StateAllocator> +class GenericSchemaValidator; + +typedef GenericSchemaValidator, void>, CrtAllocator> SchemaValidator; + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_RAPIDJSONFWD_H_ diff --git a/C++Verifier/src/rapidjson/internal/biginteger.h b/C++Verifier/src/rapidjson/internal/biginteger.h new file mode 100644 index 0000000..8eb87c7 --- /dev/null +++ b/C++Verifier/src/rapidjson/internal/biginteger.h @@ -0,0 +1,290 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_BIGINTEGER_H_ +#define RAPIDJSON_BIGINTEGER_H_ + +#include "../rapidjson.h" + +#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && defined(_M_AMD64) +#include // for _umul128 +#pragma intrinsic(_umul128) +#endif + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +class BigInteger { +public: + typedef uint64_t Type; + + BigInteger(const BigInteger& rhs) : count_(rhs.count_) { + std::memcpy(digits_, rhs.digits_, count_ * sizeof(Type)); + } + + explicit BigInteger(uint64_t u) : count_(1) { + digits_[0] = u; + } + + BigInteger(const char* decimals, size_t length) : count_(1) { + RAPIDJSON_ASSERT(length > 0); + digits_[0] = 0; + size_t i = 0; + const size_t kMaxDigitPerIteration = 19; // 2^64 = 18446744073709551616 > 10^19 + while (length >= kMaxDigitPerIteration) { + AppendDecimal64(decimals + i, decimals + i + kMaxDigitPerIteration); + length -= kMaxDigitPerIteration; + i += kMaxDigitPerIteration; + } + + if (length > 0) + AppendDecimal64(decimals + i, decimals + i + length); + } + + BigInteger& operator=(const BigInteger &rhs) + { + if (this != &rhs) { + count_ = rhs.count_; + std::memcpy(digits_, rhs.digits_, count_ * sizeof(Type)); + } + return *this; + } + + BigInteger& operator=(uint64_t u) { + digits_[0] = u; + count_ = 1; + return *this; + } + + BigInteger& operator+=(uint64_t u) { + Type backup = digits_[0]; + digits_[0] += u; + for (size_t i = 0; i < count_ - 1; i++) { + if (digits_[i] >= backup) + return *this; // no carry + backup = digits_[i + 1]; + digits_[i + 1] += 1; + } + + // Last carry + if (digits_[count_ - 1] < backup) + PushBack(1); + + return *this; + } + + BigInteger& operator*=(uint64_t u) { + if (u == 0) return *this = 0; + if (u == 1) return *this; + if (*this == 1) return *this = u; + + uint64_t k = 0; + for (size_t i = 0; i < count_; i++) { + uint64_t hi; + digits_[i] = MulAdd64(digits_[i], u, k, &hi); + k = hi; + } + + if (k > 0) + PushBack(k); + + return *this; + } + + BigInteger& operator*=(uint32_t u) { + if (u == 0) return *this = 0; + if (u == 1) return *this; + if (*this == 1) return *this = u; + + uint64_t k = 0; + for (size_t i = 0; i < count_; i++) { + const uint64_t c = digits_[i] >> 32; + const uint64_t d = digits_[i] & 0xFFFFFFFF; + const uint64_t uc = u * c; + const uint64_t ud = u * d; + const uint64_t p0 = ud + k; + const uint64_t p1 = uc + (p0 >> 32); + digits_[i] = (p0 & 0xFFFFFFFF) | (p1 << 32); + k = p1 >> 32; + } + + if (k > 0) + PushBack(k); + + return *this; + } + + BigInteger& operator<<=(size_t shift) { + if (IsZero() || shift == 0) return *this; + + size_t offset = shift / kTypeBit; + size_t interShift = shift % kTypeBit; + RAPIDJSON_ASSERT(count_ + offset <= kCapacity); + + if (interShift == 0) { + std::memmove(digits_ + offset, digits_, count_ * sizeof(Type)); + count_ += offset; + } + else { + digits_[count_] = 0; + for (size_t i = count_; i > 0; i--) + digits_[i + offset] = (digits_[i] << interShift) | (digits_[i - 1] >> (kTypeBit - interShift)); + digits_[offset] = digits_[0] << interShift; + count_ += offset; + if (digits_[count_]) + count_++; + } + + std::memset(digits_, 0, offset * sizeof(Type)); + + return *this; + } + + bool operator==(const BigInteger& rhs) const { + return count_ == rhs.count_ && std::memcmp(digits_, rhs.digits_, count_ * sizeof(Type)) == 0; + } + + bool operator==(const Type rhs) const { + return count_ == 1 && digits_[0] == rhs; + } + + BigInteger& MultiplyPow5(unsigned exp) { + static const uint32_t kPow5[12] = { + 5, + 5 * 5, + 5 * 5 * 5, + 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5, + 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 * 5 + }; + if (exp == 0) return *this; + for (; exp >= 27; exp -= 27) *this *= RAPIDJSON_UINT64_C2(0X6765C793, 0XFA10079D); // 5^27 + for (; exp >= 13; exp -= 13) *this *= static_cast(1220703125u); // 5^13 + if (exp > 0) *this *= kPow5[exp - 1]; + return *this; + } + + // Compute absolute difference of this and rhs. + // Assume this != rhs + bool Difference(const BigInteger& rhs, BigInteger* out) const { + int cmp = Compare(rhs); + RAPIDJSON_ASSERT(cmp != 0); + const BigInteger *a, *b; // Makes a > b + bool ret; + if (cmp < 0) { a = &rhs; b = this; ret = true; } + else { a = this; b = &rhs; ret = false; } + + Type borrow = 0; + for (size_t i = 0; i < a->count_; i++) { + Type d = a->digits_[i] - borrow; + if (i < b->count_) + d -= b->digits_[i]; + borrow = (d > a->digits_[i]) ? 1 : 0; + out->digits_[i] = d; + if (d != 0) + out->count_ = i + 1; + } + + return ret; + } + + int Compare(const BigInteger& rhs) const { + if (count_ != rhs.count_) + return count_ < rhs.count_ ? -1 : 1; + + for (size_t i = count_; i-- > 0;) + if (digits_[i] != rhs.digits_[i]) + return digits_[i] < rhs.digits_[i] ? -1 : 1; + + return 0; + } + + size_t GetCount() const { return count_; } + Type GetDigit(size_t index) const { RAPIDJSON_ASSERT(index < count_); return digits_[index]; } + bool IsZero() const { return count_ == 1 && digits_[0] == 0; } + +private: + void AppendDecimal64(const char* begin, const char* end) { + uint64_t u = ParseUint64(begin, end); + if (IsZero()) + *this = u; + else { + unsigned exp = static_cast(end - begin); + (MultiplyPow5(exp) <<= exp) += u; // *this = *this * 10^exp + u + } + } + + void PushBack(Type digit) { + RAPIDJSON_ASSERT(count_ < kCapacity); + digits_[count_++] = digit; + } + + static uint64_t ParseUint64(const char* begin, const char* end) { + uint64_t r = 0; + for (const char* p = begin; p != end; ++p) { + RAPIDJSON_ASSERT(*p >= '0' && *p <= '9'); + r = r * 10u + static_cast(*p - '0'); + } + return r; + } + + // Assume a * b + k < 2^128 + static uint64_t MulAdd64(uint64_t a, uint64_t b, uint64_t k, uint64_t* outHigh) { +#if defined(_MSC_VER) && defined(_M_AMD64) + uint64_t low = _umul128(a, b, outHigh) + k; + if (low < k) + (*outHigh)++; + return low; +#elif (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && defined(__x86_64__) + __extension__ typedef unsigned __int128 uint128; + uint128 p = static_cast(a) * static_cast(b); + p += k; + *outHigh = static_cast(p >> 64); + return static_cast(p); +#else + const uint64_t a0 = a & 0xFFFFFFFF, a1 = a >> 32, b0 = b & 0xFFFFFFFF, b1 = b >> 32; + uint64_t x0 = a0 * b0, x1 = a0 * b1, x2 = a1 * b0, x3 = a1 * b1; + x1 += (x0 >> 32); // can't give carry + x1 += x2; + if (x1 < x2) + x3 += (static_cast(1) << 32); + uint64_t lo = (x1 << 32) + (x0 & 0xFFFFFFFF); + uint64_t hi = x3 + (x1 >> 32); + + lo += k; + if (lo < k) + hi++; + *outHigh = hi; + return lo; +#endif + } + + static const size_t kBitCount = 3328; // 64bit * 54 > 10^1000 + static const size_t kCapacity = kBitCount / sizeof(Type); + static const size_t kTypeBit = sizeof(Type) * 8; + + Type digits_[kCapacity]; + size_t count_; +}; + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_BIGINTEGER_H_ diff --git a/C++Verifier/src/rapidjson/internal/clzll.h b/C++Verifier/src/rapidjson/internal/clzll.h new file mode 100644 index 0000000..47bb7ab --- /dev/null +++ b/C++Verifier/src/rapidjson/internal/clzll.h @@ -0,0 +1,71 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_CLZLL_H_ +#define RAPIDJSON_CLZLL_H_ + +#include "../rapidjson.h" + +#if defined(_MSC_VER) && !defined(UNDER_CE) +#include +#if defined(_WIN64) +#pragma intrinsic(_BitScanReverse64) +#else +#pragma intrinsic(_BitScanReverse) +#endif +#endif + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +inline uint32_t clzll(uint64_t x) { + // Passing 0 to __builtin_clzll is UB in GCC and results in an + // infinite loop in the software implementation. + RAPIDJSON_ASSERT(x != 0); + +#if defined(_MSC_VER) && !defined(UNDER_CE) + unsigned long r = 0; +#if defined(_WIN64) + _BitScanReverse64(&r, x); +#else + // Scan the high 32 bits. + if (_BitScanReverse(&r, static_cast(x >> 32))) + return 63 - (r + 32); + + // Scan the low 32 bits. + _BitScanReverse(&r, static_cast(x & 0xFFFFFFFF)); +#endif // _WIN64 + + return 63 - r; +#elif (defined(__GNUC__) && __GNUC__ >= 4) || RAPIDJSON_HAS_BUILTIN(__builtin_clzll) + // __builtin_clzll wrapper + return static_cast(__builtin_clzll(x)); +#else + // naive version + uint32_t r = 0; + while (!(x & (static_cast(1) << 63))) { + x <<= 1; + ++r; + } + + return r; +#endif // _MSC_VER +} + +#define RAPIDJSON_CLZLL RAPIDJSON_NAMESPACE::internal::clzll + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_CLZLL_H_ diff --git a/C++Verifier/src/rapidjson/internal/diyfp.h b/C++Verifier/src/rapidjson/internal/diyfp.h new file mode 100644 index 0000000..8f7d853 --- /dev/null +++ b/C++Verifier/src/rapidjson/internal/diyfp.h @@ -0,0 +1,257 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +// This is a C++ header-only implementation of Grisu2 algorithm from the publication: +// Loitsch, Florian. "Printing floating-point numbers quickly and accurately with +// integers." ACM Sigplan Notices 45.6 (2010): 233-243. + +#ifndef RAPIDJSON_DIYFP_H_ +#define RAPIDJSON_DIYFP_H_ + +#include "../rapidjson.h" +#include "clzll.h" +#include + +#if defined(_MSC_VER) && defined(_M_AMD64) && !defined(__INTEL_COMPILER) +#include +#pragma intrinsic(_umul128) +#endif + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +#ifdef __GNUC__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +#endif + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +#endif + +struct DiyFp { + DiyFp() : f(), e() {} + + DiyFp(uint64_t fp, int exp) : f(fp), e(exp) {} + + explicit DiyFp(double d) { + union { + double d; + uint64_t u64; + } u = { d }; + + int biased_e = static_cast((u.u64 & kDpExponentMask) >> kDpSignificandSize); + uint64_t significand = (u.u64 & kDpSignificandMask); + if (biased_e != 0) { + f = significand + kDpHiddenBit; + e = biased_e - kDpExponentBias; + } + else { + f = significand; + e = kDpMinExponent + 1; + } + } + + DiyFp operator-(const DiyFp& rhs) const { + return DiyFp(f - rhs.f, e); + } + + DiyFp operator*(const DiyFp& rhs) const { +#if defined(_MSC_VER) && defined(_M_AMD64) + uint64_t h; + uint64_t l = _umul128(f, rhs.f, &h); + if (l & (uint64_t(1) << 63)) // rounding + h++; + return DiyFp(h, e + rhs.e + 64); +#elif (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && defined(__x86_64__) + __extension__ typedef unsigned __int128 uint128; + uint128 p = static_cast(f) * static_cast(rhs.f); + uint64_t h = static_cast(p >> 64); + uint64_t l = static_cast(p); + if (l & (uint64_t(1) << 63)) // rounding + h++; + return DiyFp(h, e + rhs.e + 64); +#else + const uint64_t M32 = 0xFFFFFFFF; + const uint64_t a = f >> 32; + const uint64_t b = f & M32; + const uint64_t c = rhs.f >> 32; + const uint64_t d = rhs.f & M32; + const uint64_t ac = a * c; + const uint64_t bc = b * c; + const uint64_t ad = a * d; + const uint64_t bd = b * d; + uint64_t tmp = (bd >> 32) + (ad & M32) + (bc & M32); + tmp += 1U << 31; /// mult_round + return DiyFp(ac + (ad >> 32) + (bc >> 32) + (tmp >> 32), e + rhs.e + 64); +#endif + } + + DiyFp Normalize() const { + int s = static_cast(clzll(f)); + return DiyFp(f << s, e - s); + } + + DiyFp NormalizeBoundary() const { + DiyFp res = *this; + while (!(res.f & (kDpHiddenBit << 1))) { + res.f <<= 1; + res.e--; + } + res.f <<= (kDiySignificandSize - kDpSignificandSize - 2); + res.e = res.e - (kDiySignificandSize - kDpSignificandSize - 2); + return res; + } + + void NormalizedBoundaries(DiyFp* minus, DiyFp* plus) const { + DiyFp pl = DiyFp((f << 1) + 1, e - 1).NormalizeBoundary(); + DiyFp mi = (f == kDpHiddenBit) ? DiyFp((f << 2) - 1, e - 2) : DiyFp((f << 1) - 1, e - 1); + mi.f <<= mi.e - pl.e; + mi.e = pl.e; + *plus = pl; + *minus = mi; + } + + double ToDouble() const { + union { + double d; + uint64_t u64; + }u; + RAPIDJSON_ASSERT(f <= kDpHiddenBit + kDpSignificandMask); + if (e < kDpDenormalExponent) { + // Underflow. + return 0.0; + } + if (e >= kDpMaxExponent) { + // Overflow. + return std::numeric_limits::infinity(); + } + const uint64_t be = (e == kDpDenormalExponent && (f & kDpHiddenBit) == 0) ? 0 : + static_cast(e + kDpExponentBias); + u.u64 = (f & kDpSignificandMask) | (be << kDpSignificandSize); + return u.d; + } + + static const int kDiySignificandSize = 64; + static const int kDpSignificandSize = 52; + static const int kDpExponentBias = 0x3FF + kDpSignificandSize; + static const int kDpMaxExponent = 0x7FF - kDpExponentBias; + static const int kDpMinExponent = -kDpExponentBias; + static const int kDpDenormalExponent = -kDpExponentBias + 1; + static const uint64_t kDpExponentMask = RAPIDJSON_UINT64_C2(0x7FF00000, 0x00000000); + static const uint64_t kDpSignificandMask = RAPIDJSON_UINT64_C2(0x000FFFFF, 0xFFFFFFFF); + static const uint64_t kDpHiddenBit = RAPIDJSON_UINT64_C2(0x00100000, 0x00000000); + + uint64_t f; + int e; +}; + +inline DiyFp GetCachedPowerByIndex(size_t index) { + // 10^-348, 10^-340, ..., 10^340 + static const uint64_t kCachedPowers_F[] = { + RAPIDJSON_UINT64_C2(0xfa8fd5a0, 0x081c0288), RAPIDJSON_UINT64_C2(0xbaaee17f, 0xa23ebf76), + RAPIDJSON_UINT64_C2(0x8b16fb20, 0x3055ac76), RAPIDJSON_UINT64_C2(0xcf42894a, 0x5dce35ea), + RAPIDJSON_UINT64_C2(0x9a6bb0aa, 0x55653b2d), RAPIDJSON_UINT64_C2(0xe61acf03, 0x3d1a45df), + RAPIDJSON_UINT64_C2(0xab70fe17, 0xc79ac6ca), RAPIDJSON_UINT64_C2(0xff77b1fc, 0xbebcdc4f), + RAPIDJSON_UINT64_C2(0xbe5691ef, 0x416bd60c), RAPIDJSON_UINT64_C2(0x8dd01fad, 0x907ffc3c), + RAPIDJSON_UINT64_C2(0xd3515c28, 0x31559a83), RAPIDJSON_UINT64_C2(0x9d71ac8f, 0xada6c9b5), + RAPIDJSON_UINT64_C2(0xea9c2277, 0x23ee8bcb), RAPIDJSON_UINT64_C2(0xaecc4991, 0x4078536d), + RAPIDJSON_UINT64_C2(0x823c1279, 0x5db6ce57), RAPIDJSON_UINT64_C2(0xc2109436, 0x4dfb5637), + RAPIDJSON_UINT64_C2(0x9096ea6f, 0x3848984f), RAPIDJSON_UINT64_C2(0xd77485cb, 0x25823ac7), + RAPIDJSON_UINT64_C2(0xa086cfcd, 0x97bf97f4), RAPIDJSON_UINT64_C2(0xef340a98, 0x172aace5), + RAPIDJSON_UINT64_C2(0xb23867fb, 0x2a35b28e), RAPIDJSON_UINT64_C2(0x84c8d4df, 0xd2c63f3b), + RAPIDJSON_UINT64_C2(0xc5dd4427, 0x1ad3cdba), RAPIDJSON_UINT64_C2(0x936b9fce, 0xbb25c996), + RAPIDJSON_UINT64_C2(0xdbac6c24, 0x7d62a584), RAPIDJSON_UINT64_C2(0xa3ab6658, 0x0d5fdaf6), + RAPIDJSON_UINT64_C2(0xf3e2f893, 0xdec3f126), RAPIDJSON_UINT64_C2(0xb5b5ada8, 0xaaff80b8), + RAPIDJSON_UINT64_C2(0x87625f05, 0x6c7c4a8b), RAPIDJSON_UINT64_C2(0xc9bcff60, 0x34c13053), + RAPIDJSON_UINT64_C2(0x964e858c, 0x91ba2655), RAPIDJSON_UINT64_C2(0xdff97724, 0x70297ebd), + RAPIDJSON_UINT64_C2(0xa6dfbd9f, 0xb8e5b88f), RAPIDJSON_UINT64_C2(0xf8a95fcf, 0x88747d94), + RAPIDJSON_UINT64_C2(0xb9447093, 0x8fa89bcf), RAPIDJSON_UINT64_C2(0x8a08f0f8, 0xbf0f156b), + RAPIDJSON_UINT64_C2(0xcdb02555, 0x653131b6), RAPIDJSON_UINT64_C2(0x993fe2c6, 0xd07b7fac), + RAPIDJSON_UINT64_C2(0xe45c10c4, 0x2a2b3b06), RAPIDJSON_UINT64_C2(0xaa242499, 0x697392d3), + RAPIDJSON_UINT64_C2(0xfd87b5f2, 0x8300ca0e), RAPIDJSON_UINT64_C2(0xbce50864, 0x92111aeb), + RAPIDJSON_UINT64_C2(0x8cbccc09, 0x6f5088cc), RAPIDJSON_UINT64_C2(0xd1b71758, 0xe219652c), + RAPIDJSON_UINT64_C2(0x9c400000, 0x00000000), RAPIDJSON_UINT64_C2(0xe8d4a510, 0x00000000), + RAPIDJSON_UINT64_C2(0xad78ebc5, 0xac620000), RAPIDJSON_UINT64_C2(0x813f3978, 0xf8940984), + RAPIDJSON_UINT64_C2(0xc097ce7b, 0xc90715b3), RAPIDJSON_UINT64_C2(0x8f7e32ce, 0x7bea5c70), + RAPIDJSON_UINT64_C2(0xd5d238a4, 0xabe98068), RAPIDJSON_UINT64_C2(0x9f4f2726, 0x179a2245), + RAPIDJSON_UINT64_C2(0xed63a231, 0xd4c4fb27), RAPIDJSON_UINT64_C2(0xb0de6538, 0x8cc8ada8), + RAPIDJSON_UINT64_C2(0x83c7088e, 0x1aab65db), RAPIDJSON_UINT64_C2(0xc45d1df9, 0x42711d9a), + RAPIDJSON_UINT64_C2(0x924d692c, 0xa61be758), RAPIDJSON_UINT64_C2(0xda01ee64, 0x1a708dea), + RAPIDJSON_UINT64_C2(0xa26da399, 0x9aef774a), RAPIDJSON_UINT64_C2(0xf209787b, 0xb47d6b85), + RAPIDJSON_UINT64_C2(0xb454e4a1, 0x79dd1877), RAPIDJSON_UINT64_C2(0x865b8692, 0x5b9bc5c2), + RAPIDJSON_UINT64_C2(0xc83553c5, 0xc8965d3d), RAPIDJSON_UINT64_C2(0x952ab45c, 0xfa97a0b3), + RAPIDJSON_UINT64_C2(0xde469fbd, 0x99a05fe3), RAPIDJSON_UINT64_C2(0xa59bc234, 0xdb398c25), + RAPIDJSON_UINT64_C2(0xf6c69a72, 0xa3989f5c), RAPIDJSON_UINT64_C2(0xb7dcbf53, 0x54e9bece), + RAPIDJSON_UINT64_C2(0x88fcf317, 0xf22241e2), RAPIDJSON_UINT64_C2(0xcc20ce9b, 0xd35c78a5), + RAPIDJSON_UINT64_C2(0x98165af3, 0x7b2153df), RAPIDJSON_UINT64_C2(0xe2a0b5dc, 0x971f303a), + RAPIDJSON_UINT64_C2(0xa8d9d153, 0x5ce3b396), RAPIDJSON_UINT64_C2(0xfb9b7cd9, 0xa4a7443c), + RAPIDJSON_UINT64_C2(0xbb764c4c, 0xa7a44410), RAPIDJSON_UINT64_C2(0x8bab8eef, 0xb6409c1a), + RAPIDJSON_UINT64_C2(0xd01fef10, 0xa657842c), RAPIDJSON_UINT64_C2(0x9b10a4e5, 0xe9913129), + RAPIDJSON_UINT64_C2(0xe7109bfb, 0xa19c0c9d), RAPIDJSON_UINT64_C2(0xac2820d9, 0x623bf429), + RAPIDJSON_UINT64_C2(0x80444b5e, 0x7aa7cf85), RAPIDJSON_UINT64_C2(0xbf21e440, 0x03acdd2d), + RAPIDJSON_UINT64_C2(0x8e679c2f, 0x5e44ff8f), RAPIDJSON_UINT64_C2(0xd433179d, 0x9c8cb841), + RAPIDJSON_UINT64_C2(0x9e19db92, 0xb4e31ba9), RAPIDJSON_UINT64_C2(0xeb96bf6e, 0xbadf77d9), + RAPIDJSON_UINT64_C2(0xaf87023b, 0x9bf0ee6b) + }; + static const int16_t kCachedPowers_E[] = { + -1220, -1193, -1166, -1140, -1113, -1087, -1060, -1034, -1007, -980, + -954, -927, -901, -874, -847, -821, -794, -768, -741, -715, + -688, -661, -635, -608, -582, -555, -529, -502, -475, -449, + -422, -396, -369, -343, -316, -289, -263, -236, -210, -183, + -157, -130, -103, -77, -50, -24, 3, 30, 56, 83, + 109, 136, 162, 189, 216, 242, 269, 295, 322, 348, + 375, 402, 428, 455, 481, 508, 534, 561, 588, 614, + 641, 667, 694, 720, 747, 774, 800, 827, 853, 880, + 907, 933, 960, 986, 1013, 1039, 1066 + }; + RAPIDJSON_ASSERT(index < 87); + return DiyFp(kCachedPowers_F[index], kCachedPowers_E[index]); +} + +inline DiyFp GetCachedPower(int e, int* K) { + + //int k = static_cast(ceil((-61 - e) * 0.30102999566398114)) + 374; + double dk = (-61 - e) * 0.30102999566398114 + 347; // dk must be positive, so can do ceiling in positive + int k = static_cast(dk); + if (dk - k > 0.0) + k++; + + unsigned index = static_cast((k >> 3) + 1); + *K = -(-348 + static_cast(index << 3)); // decimal exponent no need lookup table + + return GetCachedPowerByIndex(index); +} + +inline DiyFp GetCachedPower10(int exp, int *outExp) { + RAPIDJSON_ASSERT(exp >= -348); + unsigned index = static_cast(exp + 348) / 8u; + *outExp = -348 + static_cast(index) * 8; + return GetCachedPowerByIndex(index); +} + +#ifdef __GNUC__ +RAPIDJSON_DIAG_POP +#endif + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +RAPIDJSON_DIAG_OFF(padded) +#endif + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_DIYFP_H_ diff --git a/C++Verifier/src/rapidjson/internal/dtoa.h b/C++Verifier/src/rapidjson/internal/dtoa.h new file mode 100644 index 0000000..bf2e9b2 --- /dev/null +++ b/C++Verifier/src/rapidjson/internal/dtoa.h @@ -0,0 +1,245 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +// This is a C++ header-only implementation of Grisu2 algorithm from the publication: +// Loitsch, Florian. "Printing floating-point numbers quickly and accurately with +// integers." ACM Sigplan Notices 45.6 (2010): 233-243. + +#ifndef RAPIDJSON_DTOA_ +#define RAPIDJSON_DTOA_ + +#include "itoa.h" // GetDigitsLut() +#include "diyfp.h" +#include "ieee754.h" + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +#ifdef __GNUC__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +RAPIDJSON_DIAG_OFF(array-bounds) // some gcc versions generate wrong warnings https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59124 +#endif + +inline void GrisuRound(char* buffer, int len, uint64_t delta, uint64_t rest, uint64_t ten_kappa, uint64_t wp_w) { + while (rest < wp_w && delta - rest >= ten_kappa && + (rest + ten_kappa < wp_w || /// closer + wp_w - rest > rest + ten_kappa - wp_w)) { + buffer[len - 1]--; + rest += ten_kappa; + } +} + +inline int CountDecimalDigit32(uint32_t n) { + // Simple pure C++ implementation was faster than __builtin_clz version in this situation. + if (n < 10) return 1; + if (n < 100) return 2; + if (n < 1000) return 3; + if (n < 10000) return 4; + if (n < 100000) return 5; + if (n < 1000000) return 6; + if (n < 10000000) return 7; + if (n < 100000000) return 8; + // Will not reach 10 digits in DigitGen() + //if (n < 1000000000) return 9; + //return 10; + return 9; +} + +inline void DigitGen(const DiyFp& W, const DiyFp& Mp, uint64_t delta, char* buffer, int* len, int* K) { + static const uint32_t kPow10[] = { 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000 }; + const DiyFp one(uint64_t(1) << -Mp.e, Mp.e); + const DiyFp wp_w = Mp - W; + uint32_t p1 = static_cast(Mp.f >> -one.e); + uint64_t p2 = Mp.f & (one.f - 1); + int kappa = CountDecimalDigit32(p1); // kappa in [0, 9] + *len = 0; + + while (kappa > 0) { + uint32_t d = 0; + switch (kappa) { + case 9: d = p1 / 100000000; p1 %= 100000000; break; + case 8: d = p1 / 10000000; p1 %= 10000000; break; + case 7: d = p1 / 1000000; p1 %= 1000000; break; + case 6: d = p1 / 100000; p1 %= 100000; break; + case 5: d = p1 / 10000; p1 %= 10000; break; + case 4: d = p1 / 1000; p1 %= 1000; break; + case 3: d = p1 / 100; p1 %= 100; break; + case 2: d = p1 / 10; p1 %= 10; break; + case 1: d = p1; p1 = 0; break; + default:; + } + if (d || *len) + buffer[(*len)++] = static_cast('0' + static_cast(d)); + kappa--; + uint64_t tmp = (static_cast(p1) << -one.e) + p2; + if (tmp <= delta) { + *K += kappa; + GrisuRound(buffer, *len, delta, tmp, static_cast(kPow10[kappa]) << -one.e, wp_w.f); + return; + } + } + + // kappa = 0 + for (;;) { + p2 *= 10; + delta *= 10; + char d = static_cast(p2 >> -one.e); + if (d || *len) + buffer[(*len)++] = static_cast('0' + d); + p2 &= one.f - 1; + kappa--; + if (p2 < delta) { + *K += kappa; + int index = -kappa; + GrisuRound(buffer, *len, delta, p2, one.f, wp_w.f * (index < 9 ? kPow10[index] : 0)); + return; + } + } +} + +inline void Grisu2(double value, char* buffer, int* length, int* K) { + const DiyFp v(value); + DiyFp w_m, w_p; + v.NormalizedBoundaries(&w_m, &w_p); + + const DiyFp c_mk = GetCachedPower(w_p.e, K); + const DiyFp W = v.Normalize() * c_mk; + DiyFp Wp = w_p * c_mk; + DiyFp Wm = w_m * c_mk; + Wm.f++; + Wp.f--; + DigitGen(W, Wp, Wp.f - Wm.f, buffer, length, K); +} + +inline char* WriteExponent(int K, char* buffer) { + if (K < 0) { + *buffer++ = '-'; + K = -K; + } + + if (K >= 100) { + *buffer++ = static_cast('0' + static_cast(K / 100)); + K %= 100; + const char* d = GetDigitsLut() + K * 2; + *buffer++ = d[0]; + *buffer++ = d[1]; + } + else if (K >= 10) { + const char* d = GetDigitsLut() + K * 2; + *buffer++ = d[0]; + *buffer++ = d[1]; + } + else + *buffer++ = static_cast('0' + static_cast(K)); + + return buffer; +} + +inline char* Prettify(char* buffer, int length, int k, int maxDecimalPlaces) { + const int kk = length + k; // 10^(kk-1) <= v < 10^kk + + if (0 <= k && kk <= 21) { + // 1234e7 -> 12340000000 + for (int i = length; i < kk; i++) + buffer[i] = '0'; + buffer[kk] = '.'; + buffer[kk + 1] = '0'; + return &buffer[kk + 2]; + } + else if (0 < kk && kk <= 21) { + // 1234e-2 -> 12.34 + std::memmove(&buffer[kk + 1], &buffer[kk], static_cast(length - kk)); + buffer[kk] = '.'; + if (0 > k + maxDecimalPlaces) { + // When maxDecimalPlaces = 2, 1.2345 -> 1.23, 1.102 -> 1.1 + // Remove extra trailing zeros (at least one) after truncation. + for (int i = kk + maxDecimalPlaces; i > kk + 1; i--) + if (buffer[i] != '0') + return &buffer[i + 1]; + return &buffer[kk + 2]; // Reserve one zero + } + else + return &buffer[length + 1]; + } + else if (-6 < kk && kk <= 0) { + // 1234e-6 -> 0.001234 + const int offset = 2 - kk; + std::memmove(&buffer[offset], &buffer[0], static_cast(length)); + buffer[0] = '0'; + buffer[1] = '.'; + for (int i = 2; i < offset; i++) + buffer[i] = '0'; + if (length - kk > maxDecimalPlaces) { + // When maxDecimalPlaces = 2, 0.123 -> 0.12, 0.102 -> 0.1 + // Remove extra trailing zeros (at least one) after truncation. + for (int i = maxDecimalPlaces + 1; i > 2; i--) + if (buffer[i] != '0') + return &buffer[i + 1]; + return &buffer[3]; // Reserve one zero + } + else + return &buffer[length + offset]; + } + else if (kk < -maxDecimalPlaces) { + // Truncate to zero + buffer[0] = '0'; + buffer[1] = '.'; + buffer[2] = '0'; + return &buffer[3]; + } + else if (length == 1) { + // 1e30 + buffer[1] = 'e'; + return WriteExponent(kk - 1, &buffer[2]); + } + else { + // 1234e30 -> 1.234e33 + std::memmove(&buffer[2], &buffer[1], static_cast(length - 1)); + buffer[1] = '.'; + buffer[length + 1] = 'e'; + return WriteExponent(kk - 1, &buffer[0 + length + 2]); + } +} + +inline char* dtoa(double value, char* buffer, int maxDecimalPlaces = 324) { + RAPIDJSON_ASSERT(maxDecimalPlaces >= 1); + Double d(value); + if (d.IsZero()) { + if (d.Sign()) + *buffer++ = '-'; // -0.0, Issue #289 + buffer[0] = '0'; + buffer[1] = '.'; + buffer[2] = '0'; + return &buffer[3]; + } + else { + if (value < 0) { + *buffer++ = '-'; + value = -value; + } + int length, K; + Grisu2(value, buffer, &length, &K); + return Prettify(buffer, length, K, maxDecimalPlaces); + } +} + +#ifdef __GNUC__ +RAPIDJSON_DIAG_POP +#endif + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_DTOA_ diff --git a/C++Verifier/src/rapidjson/internal/ieee754.h b/C++Verifier/src/rapidjson/internal/ieee754.h new file mode 100644 index 0000000..c2684ba --- /dev/null +++ b/C++Verifier/src/rapidjson/internal/ieee754.h @@ -0,0 +1,78 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_IEEE754_ +#define RAPIDJSON_IEEE754_ + +#include "../rapidjson.h" + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +class Double { +public: + Double() {} + Double(double d) : d_(d) {} + Double(uint64_t u) : u_(u) {} + + double Value() const { return d_; } + uint64_t Uint64Value() const { return u_; } + + double NextPositiveDouble() const { + RAPIDJSON_ASSERT(!Sign()); + return Double(u_ + 1).Value(); + } + + bool Sign() const { return (u_ & kSignMask) != 0; } + uint64_t Significand() const { return u_ & kSignificandMask; } + int Exponent() const { return static_cast(((u_ & kExponentMask) >> kSignificandSize) - kExponentBias); } + + bool IsNan() const { return (u_ & kExponentMask) == kExponentMask && Significand() != 0; } + bool IsInf() const { return (u_ & kExponentMask) == kExponentMask && Significand() == 0; } + bool IsNanOrInf() const { return (u_ & kExponentMask) == kExponentMask; } + bool IsNormal() const { return (u_ & kExponentMask) != 0 || Significand() == 0; } + bool IsZero() const { return (u_ & (kExponentMask | kSignificandMask)) == 0; } + + uint64_t IntegerSignificand() const { return IsNormal() ? Significand() | kHiddenBit : Significand(); } + int IntegerExponent() const { return (IsNormal() ? Exponent() : kDenormalExponent) - kSignificandSize; } + uint64_t ToBias() const { return (u_ & kSignMask) ? ~u_ + 1 : u_ | kSignMask; } + + static int EffectiveSignificandSize(int order) { + if (order >= -1021) + return 53; + else if (order <= -1074) + return 0; + else + return order + 1074; + } + +private: + static const int kSignificandSize = 52; + static const int kExponentBias = 0x3FF; + static const int kDenormalExponent = 1 - kExponentBias; + static const uint64_t kSignMask = RAPIDJSON_UINT64_C2(0x80000000, 0x00000000); + static const uint64_t kExponentMask = RAPIDJSON_UINT64_C2(0x7FF00000, 0x00000000); + static const uint64_t kSignificandMask = RAPIDJSON_UINT64_C2(0x000FFFFF, 0xFFFFFFFF); + static const uint64_t kHiddenBit = RAPIDJSON_UINT64_C2(0x00100000, 0x00000000); + + union { + double d_; + uint64_t u_; + }; +}; + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_IEEE754_ diff --git a/C++Verifier/src/rapidjson/internal/itoa.h b/C++Verifier/src/rapidjson/internal/itoa.h new file mode 100644 index 0000000..9b1c45c --- /dev/null +++ b/C++Verifier/src/rapidjson/internal/itoa.h @@ -0,0 +1,308 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_ITOA_ +#define RAPIDJSON_ITOA_ + +#include "../rapidjson.h" + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +inline const char* GetDigitsLut() { + static const char cDigitsLut[200] = { + '0','0','0','1','0','2','0','3','0','4','0','5','0','6','0','7','0','8','0','9', + '1','0','1','1','1','2','1','3','1','4','1','5','1','6','1','7','1','8','1','9', + '2','0','2','1','2','2','2','3','2','4','2','5','2','6','2','7','2','8','2','9', + '3','0','3','1','3','2','3','3','3','4','3','5','3','6','3','7','3','8','3','9', + '4','0','4','1','4','2','4','3','4','4','4','5','4','6','4','7','4','8','4','9', + '5','0','5','1','5','2','5','3','5','4','5','5','5','6','5','7','5','8','5','9', + '6','0','6','1','6','2','6','3','6','4','6','5','6','6','6','7','6','8','6','9', + '7','0','7','1','7','2','7','3','7','4','7','5','7','6','7','7','7','8','7','9', + '8','0','8','1','8','2','8','3','8','4','8','5','8','6','8','7','8','8','8','9', + '9','0','9','1','9','2','9','3','9','4','9','5','9','6','9','7','9','8','9','9' + }; + return cDigitsLut; +} + +inline char* u32toa(uint32_t value, char* buffer) { + RAPIDJSON_ASSERT(buffer != 0); + + const char* cDigitsLut = GetDigitsLut(); + + if (value < 10000) { + const uint32_t d1 = (value / 100) << 1; + const uint32_t d2 = (value % 100) << 1; + + if (value >= 1000) + *buffer++ = cDigitsLut[d1]; + if (value >= 100) + *buffer++ = cDigitsLut[d1 + 1]; + if (value >= 10) + *buffer++ = cDigitsLut[d2]; + *buffer++ = cDigitsLut[d2 + 1]; + } + else if (value < 100000000) { + // value = bbbbcccc + const uint32_t b = value / 10000; + const uint32_t c = value % 10000; + + const uint32_t d1 = (b / 100) << 1; + const uint32_t d2 = (b % 100) << 1; + + const uint32_t d3 = (c / 100) << 1; + const uint32_t d4 = (c % 100) << 1; + + if (value >= 10000000) + *buffer++ = cDigitsLut[d1]; + if (value >= 1000000) + *buffer++ = cDigitsLut[d1 + 1]; + if (value >= 100000) + *buffer++ = cDigitsLut[d2]; + *buffer++ = cDigitsLut[d2 + 1]; + + *buffer++ = cDigitsLut[d3]; + *buffer++ = cDigitsLut[d3 + 1]; + *buffer++ = cDigitsLut[d4]; + *buffer++ = cDigitsLut[d4 + 1]; + } + else { + // value = aabbbbcccc in decimal + + const uint32_t a = value / 100000000; // 1 to 42 + value %= 100000000; + + if (a >= 10) { + const unsigned i = a << 1; + *buffer++ = cDigitsLut[i]; + *buffer++ = cDigitsLut[i + 1]; + } + else + *buffer++ = static_cast('0' + static_cast(a)); + + const uint32_t b = value / 10000; // 0 to 9999 + const uint32_t c = value % 10000; // 0 to 9999 + + const uint32_t d1 = (b / 100) << 1; + const uint32_t d2 = (b % 100) << 1; + + const uint32_t d3 = (c / 100) << 1; + const uint32_t d4 = (c % 100) << 1; + + *buffer++ = cDigitsLut[d1]; + *buffer++ = cDigitsLut[d1 + 1]; + *buffer++ = cDigitsLut[d2]; + *buffer++ = cDigitsLut[d2 + 1]; + *buffer++ = cDigitsLut[d3]; + *buffer++ = cDigitsLut[d3 + 1]; + *buffer++ = cDigitsLut[d4]; + *buffer++ = cDigitsLut[d4 + 1]; + } + return buffer; +} + +inline char* i32toa(int32_t value, char* buffer) { + RAPIDJSON_ASSERT(buffer != 0); + uint32_t u = static_cast(value); + if (value < 0) { + *buffer++ = '-'; + u = ~u + 1; + } + + return u32toa(u, buffer); +} + +inline char* u64toa(uint64_t value, char* buffer) { + RAPIDJSON_ASSERT(buffer != 0); + const char* cDigitsLut = GetDigitsLut(); + const uint64_t kTen8 = 100000000; + const uint64_t kTen9 = kTen8 * 10; + const uint64_t kTen10 = kTen8 * 100; + const uint64_t kTen11 = kTen8 * 1000; + const uint64_t kTen12 = kTen8 * 10000; + const uint64_t kTen13 = kTen8 * 100000; + const uint64_t kTen14 = kTen8 * 1000000; + const uint64_t kTen15 = kTen8 * 10000000; + const uint64_t kTen16 = kTen8 * kTen8; + + if (value < kTen8) { + uint32_t v = static_cast(value); + if (v < 10000) { + const uint32_t d1 = (v / 100) << 1; + const uint32_t d2 = (v % 100) << 1; + + if (v >= 1000) + *buffer++ = cDigitsLut[d1]; + if (v >= 100) + *buffer++ = cDigitsLut[d1 + 1]; + if (v >= 10) + *buffer++ = cDigitsLut[d2]; + *buffer++ = cDigitsLut[d2 + 1]; + } + else { + // value = bbbbcccc + const uint32_t b = v / 10000; + const uint32_t c = v % 10000; + + const uint32_t d1 = (b / 100) << 1; + const uint32_t d2 = (b % 100) << 1; + + const uint32_t d3 = (c / 100) << 1; + const uint32_t d4 = (c % 100) << 1; + + if (value >= 10000000) + *buffer++ = cDigitsLut[d1]; + if (value >= 1000000) + *buffer++ = cDigitsLut[d1 + 1]; + if (value >= 100000) + *buffer++ = cDigitsLut[d2]; + *buffer++ = cDigitsLut[d2 + 1]; + + *buffer++ = cDigitsLut[d3]; + *buffer++ = cDigitsLut[d3 + 1]; + *buffer++ = cDigitsLut[d4]; + *buffer++ = cDigitsLut[d4 + 1]; + } + } + else if (value < kTen16) { + const uint32_t v0 = static_cast(value / kTen8); + const uint32_t v1 = static_cast(value % kTen8); + + const uint32_t b0 = v0 / 10000; + const uint32_t c0 = v0 % 10000; + + const uint32_t d1 = (b0 / 100) << 1; + const uint32_t d2 = (b0 % 100) << 1; + + const uint32_t d3 = (c0 / 100) << 1; + const uint32_t d4 = (c0 % 100) << 1; + + const uint32_t b1 = v1 / 10000; + const uint32_t c1 = v1 % 10000; + + const uint32_t d5 = (b1 / 100) << 1; + const uint32_t d6 = (b1 % 100) << 1; + + const uint32_t d7 = (c1 / 100) << 1; + const uint32_t d8 = (c1 % 100) << 1; + + if (value >= kTen15) + *buffer++ = cDigitsLut[d1]; + if (value >= kTen14) + *buffer++ = cDigitsLut[d1 + 1]; + if (value >= kTen13) + *buffer++ = cDigitsLut[d2]; + if (value >= kTen12) + *buffer++ = cDigitsLut[d2 + 1]; + if (value >= kTen11) + *buffer++ = cDigitsLut[d3]; + if (value >= kTen10) + *buffer++ = cDigitsLut[d3 + 1]; + if (value >= kTen9) + *buffer++ = cDigitsLut[d4]; + + *buffer++ = cDigitsLut[d4 + 1]; + *buffer++ = cDigitsLut[d5]; + *buffer++ = cDigitsLut[d5 + 1]; + *buffer++ = cDigitsLut[d6]; + *buffer++ = cDigitsLut[d6 + 1]; + *buffer++ = cDigitsLut[d7]; + *buffer++ = cDigitsLut[d7 + 1]; + *buffer++ = cDigitsLut[d8]; + *buffer++ = cDigitsLut[d8 + 1]; + } + else { + const uint32_t a = static_cast(value / kTen16); // 1 to 1844 + value %= kTen16; + + if (a < 10) + *buffer++ = static_cast('0' + static_cast(a)); + else if (a < 100) { + const uint32_t i = a << 1; + *buffer++ = cDigitsLut[i]; + *buffer++ = cDigitsLut[i + 1]; + } + else if (a < 1000) { + *buffer++ = static_cast('0' + static_cast(a / 100)); + + const uint32_t i = (a % 100) << 1; + *buffer++ = cDigitsLut[i]; + *buffer++ = cDigitsLut[i + 1]; + } + else { + const uint32_t i = (a / 100) << 1; + const uint32_t j = (a % 100) << 1; + *buffer++ = cDigitsLut[i]; + *buffer++ = cDigitsLut[i + 1]; + *buffer++ = cDigitsLut[j]; + *buffer++ = cDigitsLut[j + 1]; + } + + const uint32_t v0 = static_cast(value / kTen8); + const uint32_t v1 = static_cast(value % kTen8); + + const uint32_t b0 = v0 / 10000; + const uint32_t c0 = v0 % 10000; + + const uint32_t d1 = (b0 / 100) << 1; + const uint32_t d2 = (b0 % 100) << 1; + + const uint32_t d3 = (c0 / 100) << 1; + const uint32_t d4 = (c0 % 100) << 1; + + const uint32_t b1 = v1 / 10000; + const uint32_t c1 = v1 % 10000; + + const uint32_t d5 = (b1 / 100) << 1; + const uint32_t d6 = (b1 % 100) << 1; + + const uint32_t d7 = (c1 / 100) << 1; + const uint32_t d8 = (c1 % 100) << 1; + + *buffer++ = cDigitsLut[d1]; + *buffer++ = cDigitsLut[d1 + 1]; + *buffer++ = cDigitsLut[d2]; + *buffer++ = cDigitsLut[d2 + 1]; + *buffer++ = cDigitsLut[d3]; + *buffer++ = cDigitsLut[d3 + 1]; + *buffer++ = cDigitsLut[d4]; + *buffer++ = cDigitsLut[d4 + 1]; + *buffer++ = cDigitsLut[d5]; + *buffer++ = cDigitsLut[d5 + 1]; + *buffer++ = cDigitsLut[d6]; + *buffer++ = cDigitsLut[d6 + 1]; + *buffer++ = cDigitsLut[d7]; + *buffer++ = cDigitsLut[d7 + 1]; + *buffer++ = cDigitsLut[d8]; + *buffer++ = cDigitsLut[d8 + 1]; + } + + return buffer; +} + +inline char* i64toa(int64_t value, char* buffer) { + RAPIDJSON_ASSERT(buffer != 0); + uint64_t u = static_cast(value); + if (value < 0) { + *buffer++ = '-'; + u = ~u + 1; + } + + return u64toa(u, buffer); +} + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_ITOA_ diff --git a/C++Verifier/src/rapidjson/internal/meta.h b/C++Verifier/src/rapidjson/internal/meta.h new file mode 100644 index 0000000..d401edf --- /dev/null +++ b/C++Verifier/src/rapidjson/internal/meta.h @@ -0,0 +1,186 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_INTERNAL_META_H_ +#define RAPIDJSON_INTERNAL_META_H_ + +#include "../rapidjson.h" + +#ifdef __GNUC__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +#endif + +#if defined(_MSC_VER) && !defined(__clang__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(6334) +#endif + +#if RAPIDJSON_HAS_CXX11_TYPETRAITS +#include +#endif + +//@cond RAPIDJSON_INTERNAL +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +// Helper to wrap/convert arbitrary types to void, useful for arbitrary type matching +template struct Void { typedef void Type; }; + +/////////////////////////////////////////////////////////////////////////////// +// BoolType, TrueType, FalseType +// +template struct BoolType { + static const bool Value = Cond; + typedef BoolType Type; +}; +typedef BoolType TrueType; +typedef BoolType FalseType; + + +/////////////////////////////////////////////////////////////////////////////// +// SelectIf, BoolExpr, NotExpr, AndExpr, OrExpr +// + +template struct SelectIfImpl { template struct Apply { typedef T1 Type; }; }; +template <> struct SelectIfImpl { template struct Apply { typedef T2 Type; }; }; +template struct SelectIfCond : SelectIfImpl::template Apply {}; +template struct SelectIf : SelectIfCond {}; + +template struct AndExprCond : FalseType {}; +template <> struct AndExprCond : TrueType {}; +template struct OrExprCond : TrueType {}; +template <> struct OrExprCond : FalseType {}; + +template struct BoolExpr : SelectIf::Type {}; +template struct NotExpr : SelectIf::Type {}; +template struct AndExpr : AndExprCond::Type {}; +template struct OrExpr : OrExprCond::Type {}; + + +/////////////////////////////////////////////////////////////////////////////// +// AddConst, MaybeAddConst, RemoveConst +template struct AddConst { typedef const T Type; }; +template struct MaybeAddConst : SelectIfCond {}; +template struct RemoveConst { typedef T Type; }; +template struct RemoveConst { typedef T Type; }; + + +/////////////////////////////////////////////////////////////////////////////// +// IsSame, IsConst, IsMoreConst, IsPointer +// +template struct IsSame : FalseType {}; +template struct IsSame : TrueType {}; + +template struct IsConst : FalseType {}; +template struct IsConst : TrueType {}; + +template +struct IsMoreConst + : AndExpr::Type, typename RemoveConst::Type>, + BoolType::Value >= IsConst::Value> >::Type {}; + +template struct IsPointer : FalseType {}; +template struct IsPointer : TrueType {}; + +/////////////////////////////////////////////////////////////////////////////// +// IsBaseOf +// +#if RAPIDJSON_HAS_CXX11_TYPETRAITS + +template struct IsBaseOf + : BoolType< ::std::is_base_of::value> {}; + +#else // simplified version adopted from Boost + +template struct IsBaseOfImpl { + RAPIDJSON_STATIC_ASSERT(sizeof(B) != 0); + RAPIDJSON_STATIC_ASSERT(sizeof(D) != 0); + + typedef char (&Yes)[1]; + typedef char (&No) [2]; + + template + static Yes Check(const D*, T); + static No Check(const B*, int); + + struct Host { + operator const B*() const; + operator const D*(); + }; + + enum { Value = (sizeof(Check(Host(), 0)) == sizeof(Yes)) }; +}; + +template struct IsBaseOf + : OrExpr, BoolExpr > >::Type {}; + +#endif // RAPIDJSON_HAS_CXX11_TYPETRAITS + + +////////////////////////////////////////////////////////////////////////// +// EnableIf / DisableIf +// +template struct EnableIfCond { typedef T Type; }; +template struct EnableIfCond { /* empty */ }; + +template struct DisableIfCond { typedef T Type; }; +template struct DisableIfCond { /* empty */ }; + +template +struct EnableIf : EnableIfCond {}; + +template +struct DisableIf : DisableIfCond {}; + +// SFINAE helpers +struct SfinaeTag {}; +template struct RemoveSfinaeTag; +template struct RemoveSfinaeTag { typedef T Type; }; + +#define RAPIDJSON_REMOVEFPTR_(type) \ + typename ::RAPIDJSON_NAMESPACE::internal::RemoveSfinaeTag \ + < ::RAPIDJSON_NAMESPACE::internal::SfinaeTag&(*) type>::Type + +#define RAPIDJSON_ENABLEIF(cond) \ + typename ::RAPIDJSON_NAMESPACE::internal::EnableIf \ + ::Type * = NULL + +#define RAPIDJSON_DISABLEIF(cond) \ + typename ::RAPIDJSON_NAMESPACE::internal::DisableIf \ + ::Type * = NULL + +#define RAPIDJSON_ENABLEIF_RETURN(cond,returntype) \ + typename ::RAPIDJSON_NAMESPACE::internal::EnableIf \ + ::Type + +#define RAPIDJSON_DISABLEIF_RETURN(cond,returntype) \ + typename ::RAPIDJSON_NAMESPACE::internal::DisableIf \ + ::Type + +} // namespace internal +RAPIDJSON_NAMESPACE_END +//@endcond + +#if defined(_MSC_VER) && !defined(__clang__) +RAPIDJSON_DIAG_POP +#endif + +#ifdef __GNUC__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_INTERNAL_META_H_ diff --git a/C++Verifier/src/rapidjson/internal/pow10.h b/C++Verifier/src/rapidjson/internal/pow10.h new file mode 100644 index 0000000..02f475d --- /dev/null +++ b/C++Verifier/src/rapidjson/internal/pow10.h @@ -0,0 +1,55 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_POW10_ +#define RAPIDJSON_POW10_ + +#include "../rapidjson.h" + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +//! Computes integer powers of 10 in double (10.0^n). +/*! This function uses lookup table for fast and accurate results. + \param n non-negative exponent. Must <= 308. + \return 10.0^n +*/ +inline double Pow10(int n) { + static const double e[] = { // 1e-0...1e308: 309 * 8 bytes = 2472 bytes + 1e+0, + 1e+1, 1e+2, 1e+3, 1e+4, 1e+5, 1e+6, 1e+7, 1e+8, 1e+9, 1e+10, 1e+11, 1e+12, 1e+13, 1e+14, 1e+15, 1e+16, 1e+17, 1e+18, 1e+19, 1e+20, + 1e+21, 1e+22, 1e+23, 1e+24, 1e+25, 1e+26, 1e+27, 1e+28, 1e+29, 1e+30, 1e+31, 1e+32, 1e+33, 1e+34, 1e+35, 1e+36, 1e+37, 1e+38, 1e+39, 1e+40, + 1e+41, 1e+42, 1e+43, 1e+44, 1e+45, 1e+46, 1e+47, 1e+48, 1e+49, 1e+50, 1e+51, 1e+52, 1e+53, 1e+54, 1e+55, 1e+56, 1e+57, 1e+58, 1e+59, 1e+60, + 1e+61, 1e+62, 1e+63, 1e+64, 1e+65, 1e+66, 1e+67, 1e+68, 1e+69, 1e+70, 1e+71, 1e+72, 1e+73, 1e+74, 1e+75, 1e+76, 1e+77, 1e+78, 1e+79, 1e+80, + 1e+81, 1e+82, 1e+83, 1e+84, 1e+85, 1e+86, 1e+87, 1e+88, 1e+89, 1e+90, 1e+91, 1e+92, 1e+93, 1e+94, 1e+95, 1e+96, 1e+97, 1e+98, 1e+99, 1e+100, + 1e+101,1e+102,1e+103,1e+104,1e+105,1e+106,1e+107,1e+108,1e+109,1e+110,1e+111,1e+112,1e+113,1e+114,1e+115,1e+116,1e+117,1e+118,1e+119,1e+120, + 1e+121,1e+122,1e+123,1e+124,1e+125,1e+126,1e+127,1e+128,1e+129,1e+130,1e+131,1e+132,1e+133,1e+134,1e+135,1e+136,1e+137,1e+138,1e+139,1e+140, + 1e+141,1e+142,1e+143,1e+144,1e+145,1e+146,1e+147,1e+148,1e+149,1e+150,1e+151,1e+152,1e+153,1e+154,1e+155,1e+156,1e+157,1e+158,1e+159,1e+160, + 1e+161,1e+162,1e+163,1e+164,1e+165,1e+166,1e+167,1e+168,1e+169,1e+170,1e+171,1e+172,1e+173,1e+174,1e+175,1e+176,1e+177,1e+178,1e+179,1e+180, + 1e+181,1e+182,1e+183,1e+184,1e+185,1e+186,1e+187,1e+188,1e+189,1e+190,1e+191,1e+192,1e+193,1e+194,1e+195,1e+196,1e+197,1e+198,1e+199,1e+200, + 1e+201,1e+202,1e+203,1e+204,1e+205,1e+206,1e+207,1e+208,1e+209,1e+210,1e+211,1e+212,1e+213,1e+214,1e+215,1e+216,1e+217,1e+218,1e+219,1e+220, + 1e+221,1e+222,1e+223,1e+224,1e+225,1e+226,1e+227,1e+228,1e+229,1e+230,1e+231,1e+232,1e+233,1e+234,1e+235,1e+236,1e+237,1e+238,1e+239,1e+240, + 1e+241,1e+242,1e+243,1e+244,1e+245,1e+246,1e+247,1e+248,1e+249,1e+250,1e+251,1e+252,1e+253,1e+254,1e+255,1e+256,1e+257,1e+258,1e+259,1e+260, + 1e+261,1e+262,1e+263,1e+264,1e+265,1e+266,1e+267,1e+268,1e+269,1e+270,1e+271,1e+272,1e+273,1e+274,1e+275,1e+276,1e+277,1e+278,1e+279,1e+280, + 1e+281,1e+282,1e+283,1e+284,1e+285,1e+286,1e+287,1e+288,1e+289,1e+290,1e+291,1e+292,1e+293,1e+294,1e+295,1e+296,1e+297,1e+298,1e+299,1e+300, + 1e+301,1e+302,1e+303,1e+304,1e+305,1e+306,1e+307,1e+308 + }; + RAPIDJSON_ASSERT(n >= 0 && n <= 308); + return e[n]; +} + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_POW10_ diff --git a/C++Verifier/src/rapidjson/internal/regex.h b/C++Verifier/src/rapidjson/internal/regex.h new file mode 100644 index 0000000..af7e06d --- /dev/null +++ b/C++Verifier/src/rapidjson/internal/regex.h @@ -0,0 +1,739 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_INTERNAL_REGEX_H_ +#define RAPIDJSON_INTERNAL_REGEX_H_ + +#include "../allocators.h" +#include "../stream.h" +#include "stack.h" + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +RAPIDJSON_DIAG_OFF(switch-enum) +#elif defined(_MSC_VER) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4512) // assignment operator could not be generated +#endif + +#ifdef __GNUC__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +#endif + +#ifndef RAPIDJSON_REGEX_VERBOSE +#define RAPIDJSON_REGEX_VERBOSE 0 +#endif + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +/////////////////////////////////////////////////////////////////////////////// +// DecodedStream + +template +class DecodedStream { +public: + DecodedStream(SourceStream& ss) : ss_(ss), codepoint_() { Decode(); } + unsigned Peek() { return codepoint_; } + unsigned Take() { + unsigned c = codepoint_; + if (c) // No further decoding when '\0' + Decode(); + return c; + } + +private: + void Decode() { + if (!Encoding::Decode(ss_, &codepoint_)) + codepoint_ = 0; + } + + SourceStream& ss_; + unsigned codepoint_; +}; + +/////////////////////////////////////////////////////////////////////////////// +// GenericRegex + +static const SizeType kRegexInvalidState = ~SizeType(0); //!< Represents an invalid index in GenericRegex::State::out, out1 +static const SizeType kRegexInvalidRange = ~SizeType(0); + +template +class GenericRegexSearch; + +//! Regular expression engine with subset of ECMAscript grammar. +/*! + Supported regular expression syntax: + - \c ab Concatenation + - \c a|b Alternation + - \c a? Zero or one + - \c a* Zero or more + - \c a+ One or more + - \c a{3} Exactly 3 times + - \c a{3,} At least 3 times + - \c a{3,5} 3 to 5 times + - \c (ab) Grouping + - \c ^a At the beginning + - \c a$ At the end + - \c . Any character + - \c [abc] Character classes + - \c [a-c] Character class range + - \c [a-z0-9_] Character class combination + - \c [^abc] Negated character classes + - \c [^a-c] Negated character class range + - \c [\b] Backspace (U+0008) + - \c \\| \\\\ ... Escape characters + - \c \\f Form feed (U+000C) + - \c \\n Line feed (U+000A) + - \c \\r Carriage return (U+000D) + - \c \\t Tab (U+0009) + - \c \\v Vertical tab (U+000B) + + \note This is a Thompson NFA engine, implemented with reference to + Cox, Russ. "Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby,...).", + https://swtch.com/~rsc/regexp/regexp1.html +*/ +template +class GenericRegex { +public: + typedef Encoding EncodingType; + typedef typename Encoding::Ch Ch; + template friend class GenericRegexSearch; + + GenericRegex(const Ch* source, Allocator* allocator = 0) : + ownAllocator_(allocator ? 0 : RAPIDJSON_NEW(Allocator)()), allocator_(allocator ? allocator : ownAllocator_), + states_(allocator_, 256), ranges_(allocator_, 256), root_(kRegexInvalidState), stateCount_(), rangeCount_(), + anchorBegin_(), anchorEnd_() + { + GenericStringStream ss(source); + DecodedStream, Encoding> ds(ss); + Parse(ds); + } + + ~GenericRegex() + { + RAPIDJSON_DELETE(ownAllocator_); + } + + bool IsValid() const { + return root_ != kRegexInvalidState; + } + +private: + enum Operator { + kZeroOrOne, + kZeroOrMore, + kOneOrMore, + kConcatenation, + kAlternation, + kLeftParenthesis + }; + + static const unsigned kAnyCharacterClass = 0xFFFFFFFF; //!< For '.' + static const unsigned kRangeCharacterClass = 0xFFFFFFFE; + static const unsigned kRangeNegationFlag = 0x80000000; + + struct Range { + unsigned start; // + unsigned end; + SizeType next; + }; + + struct State { + SizeType out; //!< Equals to kInvalid for matching state + SizeType out1; //!< Equals to non-kInvalid for split + SizeType rangeStart; + unsigned codepoint; + }; + + struct Frag { + Frag(SizeType s, SizeType o, SizeType m) : start(s), out(o), minIndex(m) {} + SizeType start; + SizeType out; //!< link-list of all output states + SizeType minIndex; + }; + + State& GetState(SizeType index) { + RAPIDJSON_ASSERT(index < stateCount_); + return states_.template Bottom()[index]; + } + + const State& GetState(SizeType index) const { + RAPIDJSON_ASSERT(index < stateCount_); + return states_.template Bottom()[index]; + } + + Range& GetRange(SizeType index) { + RAPIDJSON_ASSERT(index < rangeCount_); + return ranges_.template Bottom()[index]; + } + + const Range& GetRange(SizeType index) const { + RAPIDJSON_ASSERT(index < rangeCount_); + return ranges_.template Bottom()[index]; + } + + template + void Parse(DecodedStream& ds) { + Stack operandStack(allocator_, 256); // Frag + Stack operatorStack(allocator_, 256); // Operator + Stack atomCountStack(allocator_, 256); // unsigned (Atom per parenthesis) + + *atomCountStack.template Push() = 0; + + unsigned codepoint; + while (ds.Peek() != 0) { + switch (codepoint = ds.Take()) { + case '^': + anchorBegin_ = true; + break; + + case '$': + anchorEnd_ = true; + break; + + case '|': + while (!operatorStack.Empty() && *operatorStack.template Top() < kAlternation) + if (!Eval(operandStack, *operatorStack.template Pop(1))) + return; + *operatorStack.template Push() = kAlternation; + *atomCountStack.template Top() = 0; + break; + + case '(': + *operatorStack.template Push() = kLeftParenthesis; + *atomCountStack.template Push() = 0; + break; + + case ')': + while (!operatorStack.Empty() && *operatorStack.template Top() != kLeftParenthesis) + if (!Eval(operandStack, *operatorStack.template Pop(1))) + return; + if (operatorStack.Empty()) + return; + operatorStack.template Pop(1); + atomCountStack.template Pop(1); + ImplicitConcatenation(atomCountStack, operatorStack); + break; + + case '?': + if (!Eval(operandStack, kZeroOrOne)) + return; + break; + + case '*': + if (!Eval(operandStack, kZeroOrMore)) + return; + break; + + case '+': + if (!Eval(operandStack, kOneOrMore)) + return; + break; + + case '{': + { + unsigned n, m; + if (!ParseUnsigned(ds, &n)) + return; + + if (ds.Peek() == ',') { + ds.Take(); + if (ds.Peek() == '}') + m = kInfinityQuantifier; + else if (!ParseUnsigned(ds, &m) || m < n) + return; + } + else + m = n; + + if (!EvalQuantifier(operandStack, n, m) || ds.Peek() != '}') + return; + ds.Take(); + } + break; + + case '.': + PushOperand(operandStack, kAnyCharacterClass); + ImplicitConcatenation(atomCountStack, operatorStack); + break; + + case '[': + { + SizeType range; + if (!ParseRange(ds, &range)) + return; + SizeType s = NewState(kRegexInvalidState, kRegexInvalidState, kRangeCharacterClass); + GetState(s).rangeStart = range; + *operandStack.template Push() = Frag(s, s, s); + } + ImplicitConcatenation(atomCountStack, operatorStack); + break; + + case '\\': // Escape character + if (!CharacterEscape(ds, &codepoint)) + return; // Unsupported escape character + // fall through to default + RAPIDJSON_DELIBERATE_FALLTHROUGH; + + default: // Pattern character + PushOperand(operandStack, codepoint); + ImplicitConcatenation(atomCountStack, operatorStack); + } + } + + while (!operatorStack.Empty()) + if (!Eval(operandStack, *operatorStack.template Pop(1))) + return; + + // Link the operand to matching state. + if (operandStack.GetSize() == sizeof(Frag)) { + Frag* e = operandStack.template Pop(1); + Patch(e->out, NewState(kRegexInvalidState, kRegexInvalidState, 0)); + root_ = e->start; + +#if RAPIDJSON_REGEX_VERBOSE + printf("root: %d\n", root_); + for (SizeType i = 0; i < stateCount_ ; i++) { + State& s = GetState(i); + printf("[%2d] out: %2d out1: %2d c: '%c'\n", i, s.out, s.out1, (char)s.codepoint); + } + printf("\n"); +#endif + } + } + + SizeType NewState(SizeType out, SizeType out1, unsigned codepoint) { + State* s = states_.template Push(); + s->out = out; + s->out1 = out1; + s->codepoint = codepoint; + s->rangeStart = kRegexInvalidRange; + return stateCount_++; + } + + void PushOperand(Stack& operandStack, unsigned codepoint) { + SizeType s = NewState(kRegexInvalidState, kRegexInvalidState, codepoint); + *operandStack.template Push() = Frag(s, s, s); + } + + void ImplicitConcatenation(Stack& atomCountStack, Stack& operatorStack) { + if (*atomCountStack.template Top()) + *operatorStack.template Push() = kConcatenation; + (*atomCountStack.template Top())++; + } + + SizeType Append(SizeType l1, SizeType l2) { + SizeType old = l1; + while (GetState(l1).out != kRegexInvalidState) + l1 = GetState(l1).out; + GetState(l1).out = l2; + return old; + } + + void Patch(SizeType l, SizeType s) { + for (SizeType next; l != kRegexInvalidState; l = next) { + next = GetState(l).out; + GetState(l).out = s; + } + } + + bool Eval(Stack& operandStack, Operator op) { + switch (op) { + case kConcatenation: + RAPIDJSON_ASSERT(operandStack.GetSize() >= sizeof(Frag) * 2); + { + Frag e2 = *operandStack.template Pop(1); + Frag e1 = *operandStack.template Pop(1); + Patch(e1.out, e2.start); + *operandStack.template Push() = Frag(e1.start, e2.out, Min(e1.minIndex, e2.minIndex)); + } + return true; + + case kAlternation: + if (operandStack.GetSize() >= sizeof(Frag) * 2) { + Frag e2 = *operandStack.template Pop(1); + Frag e1 = *operandStack.template Pop(1); + SizeType s = NewState(e1.start, e2.start, 0); + *operandStack.template Push() = Frag(s, Append(e1.out, e2.out), Min(e1.minIndex, e2.minIndex)); + return true; + } + return false; + + case kZeroOrOne: + if (operandStack.GetSize() >= sizeof(Frag)) { + Frag e = *operandStack.template Pop(1); + SizeType s = NewState(kRegexInvalidState, e.start, 0); + *operandStack.template Push() = Frag(s, Append(e.out, s), e.minIndex); + return true; + } + return false; + + case kZeroOrMore: + if (operandStack.GetSize() >= sizeof(Frag)) { + Frag e = *operandStack.template Pop(1); + SizeType s = NewState(kRegexInvalidState, e.start, 0); + Patch(e.out, s); + *operandStack.template Push() = Frag(s, s, e.minIndex); + return true; + } + return false; + + case kOneOrMore: + if (operandStack.GetSize() >= sizeof(Frag)) { + Frag e = *operandStack.template Pop(1); + SizeType s = NewState(kRegexInvalidState, e.start, 0); + Patch(e.out, s); + *operandStack.template Push() = Frag(e.start, s, e.minIndex); + return true; + } + return false; + + default: + // syntax error (e.g. unclosed kLeftParenthesis) + return false; + } + } + + bool EvalQuantifier(Stack& operandStack, unsigned n, unsigned m) { + RAPIDJSON_ASSERT(n <= m); + RAPIDJSON_ASSERT(operandStack.GetSize() >= sizeof(Frag)); + + if (n == 0) { + if (m == 0) // a{0} not support + return false; + else if (m == kInfinityQuantifier) + Eval(operandStack, kZeroOrMore); // a{0,} -> a* + else { + Eval(operandStack, kZeroOrOne); // a{0,5} -> a? + for (unsigned i = 0; i < m - 1; i++) + CloneTopOperand(operandStack); // a{0,5} -> a? a? a? a? a? + for (unsigned i = 0; i < m - 1; i++) + Eval(operandStack, kConcatenation); // a{0,5} -> a?a?a?a?a? + } + return true; + } + + for (unsigned i = 0; i < n - 1; i++) // a{3} -> a a a + CloneTopOperand(operandStack); + + if (m == kInfinityQuantifier) + Eval(operandStack, kOneOrMore); // a{3,} -> a a a+ + else if (m > n) { + CloneTopOperand(operandStack); // a{3,5} -> a a a a + Eval(operandStack, kZeroOrOne); // a{3,5} -> a a a a? + for (unsigned i = n; i < m - 1; i++) + CloneTopOperand(operandStack); // a{3,5} -> a a a a? a? + for (unsigned i = n; i < m; i++) + Eval(operandStack, kConcatenation); // a{3,5} -> a a aa?a? + } + + for (unsigned i = 0; i < n - 1; i++) + Eval(operandStack, kConcatenation); // a{3} -> aaa, a{3,} -> aaa+, a{3.5} -> aaaa?a? + + return true; + } + + static SizeType Min(SizeType a, SizeType b) { return a < b ? a : b; } + + void CloneTopOperand(Stack& operandStack) { + const Frag src = *operandStack.template Top(); // Copy constructor to prevent invalidation + SizeType count = stateCount_ - src.minIndex; // Assumes top operand contains states in [src->minIndex, stateCount_) + State* s = states_.template Push(count); + memcpy(s, &GetState(src.minIndex), count * sizeof(State)); + for (SizeType j = 0; j < count; j++) { + if (s[j].out != kRegexInvalidState) + s[j].out += count; + if (s[j].out1 != kRegexInvalidState) + s[j].out1 += count; + } + *operandStack.template Push() = Frag(src.start + count, src.out + count, src.minIndex + count); + stateCount_ += count; + } + + template + bool ParseUnsigned(DecodedStream& ds, unsigned* u) { + unsigned r = 0; + if (ds.Peek() < '0' || ds.Peek() > '9') + return false; + while (ds.Peek() >= '0' && ds.Peek() <= '9') { + if (r >= 429496729 && ds.Peek() > '5') // 2^32 - 1 = 4294967295 + return false; // overflow + r = r * 10 + (ds.Take() - '0'); + } + *u = r; + return true; + } + + template + bool ParseRange(DecodedStream& ds, SizeType* range) { + bool isBegin = true; + bool negate = false; + int step = 0; + SizeType start = kRegexInvalidRange; + SizeType current = kRegexInvalidRange; + unsigned codepoint; + while ((codepoint = ds.Take()) != 0) { + if (isBegin) { + isBegin = false; + if (codepoint == '^') { + negate = true; + continue; + } + } + + switch (codepoint) { + case ']': + if (start == kRegexInvalidRange) + return false; // Error: nothing inside [] + if (step == 2) { // Add trailing '-' + SizeType r = NewRange('-'); + RAPIDJSON_ASSERT(current != kRegexInvalidRange); + GetRange(current).next = r; + } + if (negate) + GetRange(start).start |= kRangeNegationFlag; + *range = start; + return true; + + case '\\': + if (ds.Peek() == 'b') { + ds.Take(); + codepoint = 0x0008; // Escape backspace character + } + else if (!CharacterEscape(ds, &codepoint)) + return false; + // fall through to default + RAPIDJSON_DELIBERATE_FALLTHROUGH; + + default: + switch (step) { + case 1: + if (codepoint == '-') { + step++; + break; + } + // fall through to step 0 for other characters + RAPIDJSON_DELIBERATE_FALLTHROUGH; + + case 0: + { + SizeType r = NewRange(codepoint); + if (current != kRegexInvalidRange) + GetRange(current).next = r; + if (start == kRegexInvalidRange) + start = r; + current = r; + } + step = 1; + break; + + default: + RAPIDJSON_ASSERT(step == 2); + GetRange(current).end = codepoint; + step = 0; + } + } + } + return false; + } + + SizeType NewRange(unsigned codepoint) { + Range* r = ranges_.template Push(); + r->start = r->end = codepoint; + r->next = kRegexInvalidRange; + return rangeCount_++; + } + + template + bool CharacterEscape(DecodedStream& ds, unsigned* escapedCodepoint) { + unsigned codepoint; + switch (codepoint = ds.Take()) { + case '^': + case '$': + case '|': + case '(': + case ')': + case '?': + case '*': + case '+': + case '.': + case '[': + case ']': + case '{': + case '}': + case '\\': + *escapedCodepoint = codepoint; return true; + case 'f': *escapedCodepoint = 0x000C; return true; + case 'n': *escapedCodepoint = 0x000A; return true; + case 'r': *escapedCodepoint = 0x000D; return true; + case 't': *escapedCodepoint = 0x0009; return true; + case 'v': *escapedCodepoint = 0x000B; return true; + default: + return false; // Unsupported escape character + } + } + + Allocator* ownAllocator_; + Allocator* allocator_; + Stack states_; + Stack ranges_; + SizeType root_; + SizeType stateCount_; + SizeType rangeCount_; + + static const unsigned kInfinityQuantifier = ~0u; + + // For SearchWithAnchoring() + bool anchorBegin_; + bool anchorEnd_; +}; + +template +class GenericRegexSearch { +public: + typedef typename RegexType::EncodingType Encoding; + typedef typename Encoding::Ch Ch; + + GenericRegexSearch(const RegexType& regex, Allocator* allocator = 0) : + regex_(regex), allocator_(allocator), ownAllocator_(0), + state0_(allocator, 0), state1_(allocator, 0), stateSet_() + { + RAPIDJSON_ASSERT(regex_.IsValid()); + if (!allocator_) + ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)(); + stateSet_ = static_cast(allocator_->Malloc(GetStateSetSize())); + state0_.template Reserve(regex_.stateCount_); + state1_.template Reserve(regex_.stateCount_); + } + + ~GenericRegexSearch() { + Allocator::Free(stateSet_); + RAPIDJSON_DELETE(ownAllocator_); + } + + template + bool Match(InputStream& is) { + return SearchWithAnchoring(is, true, true); + } + + bool Match(const Ch* s) { + GenericStringStream is(s); + return Match(is); + } + + template + bool Search(InputStream& is) { + return SearchWithAnchoring(is, regex_.anchorBegin_, regex_.anchorEnd_); + } + + bool Search(const Ch* s) { + GenericStringStream is(s); + return Search(is); + } + +private: + typedef typename RegexType::State State; + typedef typename RegexType::Range Range; + + template + bool SearchWithAnchoring(InputStream& is, bool anchorBegin, bool anchorEnd) { + DecodedStream ds(is); + + state0_.Clear(); + Stack *current = &state0_, *next = &state1_; + const size_t stateSetSize = GetStateSetSize(); + std::memset(stateSet_, 0, stateSetSize); + + bool matched = AddState(*current, regex_.root_); + unsigned codepoint; + while (!current->Empty() && (codepoint = ds.Take()) != 0) { + std::memset(stateSet_, 0, stateSetSize); + next->Clear(); + matched = false; + for (const SizeType* s = current->template Bottom(); s != current->template End(); ++s) { + const State& sr = regex_.GetState(*s); + if (sr.codepoint == codepoint || + sr.codepoint == RegexType::kAnyCharacterClass || + (sr.codepoint == RegexType::kRangeCharacterClass && MatchRange(sr.rangeStart, codepoint))) + { + matched = AddState(*next, sr.out) || matched; + if (!anchorEnd && matched) + return true; + } + if (!anchorBegin) + AddState(*next, regex_.root_); + } + internal::Swap(current, next); + } + + return matched; + } + + size_t GetStateSetSize() const { + return (regex_.stateCount_ + 31) / 32 * 4; + } + + // Return whether the added states is a match state + bool AddState(Stack& l, SizeType index) { + RAPIDJSON_ASSERT(index != kRegexInvalidState); + + const State& s = regex_.GetState(index); + if (s.out1 != kRegexInvalidState) { // Split + bool matched = AddState(l, s.out); + return AddState(l, s.out1) || matched; + } + else if (!(stateSet_[index >> 5] & (1u << (index & 31)))) { + stateSet_[index >> 5] |= (1u << (index & 31)); + *l.template PushUnsafe() = index; + } + return s.out == kRegexInvalidState; // by using PushUnsafe() above, we can ensure s is not validated due to reallocation. + } + + bool MatchRange(SizeType rangeIndex, unsigned codepoint) const { + bool yes = (regex_.GetRange(rangeIndex).start & RegexType::kRangeNegationFlag) == 0; + while (rangeIndex != kRegexInvalidRange) { + const Range& r = regex_.GetRange(rangeIndex); + if (codepoint >= (r.start & ~RegexType::kRangeNegationFlag) && codepoint <= r.end) + return yes; + rangeIndex = r.next; + } + return !yes; + } + + const RegexType& regex_; + Allocator* allocator_; + Allocator* ownAllocator_; + Stack state0_; + Stack state1_; + uint32_t* stateSet_; +}; + +typedef GenericRegex > Regex; +typedef GenericRegexSearch RegexSearch; + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#ifdef __GNUC__ +RAPIDJSON_DIAG_POP +#endif + +#if defined(__clang__) || defined(_MSC_VER) +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_INTERNAL_REGEX_H_ diff --git a/C++Verifier/src/rapidjson/internal/stack.h b/C++Verifier/src/rapidjson/internal/stack.h new file mode 100644 index 0000000..45dca6a --- /dev/null +++ b/C++Verifier/src/rapidjson/internal/stack.h @@ -0,0 +1,232 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_INTERNAL_STACK_H_ +#define RAPIDJSON_INTERNAL_STACK_H_ + +#include "../allocators.h" +#include "swap.h" +#include + +#if defined(__clang__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(c++98-compat) +#endif + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +/////////////////////////////////////////////////////////////////////////////// +// Stack + +//! A type-unsafe stack for storing different types of data. +/*! \tparam Allocator Allocator for allocating stack memory. +*/ +template +class Stack { +public: + // Optimization note: Do not allocate memory for stack_ in constructor. + // Do it lazily when first Push() -> Expand() -> Resize(). + Stack(Allocator* allocator, size_t stackCapacity) : allocator_(allocator), ownAllocator_(0), stack_(0), stackTop_(0), stackEnd_(0), initialCapacity_(stackCapacity) { + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + Stack(Stack&& rhs) + : allocator_(rhs.allocator_), + ownAllocator_(rhs.ownAllocator_), + stack_(rhs.stack_), + stackTop_(rhs.stackTop_), + stackEnd_(rhs.stackEnd_), + initialCapacity_(rhs.initialCapacity_) + { + rhs.allocator_ = 0; + rhs.ownAllocator_ = 0; + rhs.stack_ = 0; + rhs.stackTop_ = 0; + rhs.stackEnd_ = 0; + rhs.initialCapacity_ = 0; + } +#endif + + ~Stack() { + Destroy(); + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + Stack& operator=(Stack&& rhs) { + if (&rhs != this) + { + Destroy(); + + allocator_ = rhs.allocator_; + ownAllocator_ = rhs.ownAllocator_; + stack_ = rhs.stack_; + stackTop_ = rhs.stackTop_; + stackEnd_ = rhs.stackEnd_; + initialCapacity_ = rhs.initialCapacity_; + + rhs.allocator_ = 0; + rhs.ownAllocator_ = 0; + rhs.stack_ = 0; + rhs.stackTop_ = 0; + rhs.stackEnd_ = 0; + rhs.initialCapacity_ = 0; + } + return *this; + } +#endif + + void Swap(Stack& rhs) RAPIDJSON_NOEXCEPT { + internal::Swap(allocator_, rhs.allocator_); + internal::Swap(ownAllocator_, rhs.ownAllocator_); + internal::Swap(stack_, rhs.stack_); + internal::Swap(stackTop_, rhs.stackTop_); + internal::Swap(stackEnd_, rhs.stackEnd_); + internal::Swap(initialCapacity_, rhs.initialCapacity_); + } + + void Clear() { stackTop_ = stack_; } + + void ShrinkToFit() { + if (Empty()) { + // If the stack is empty, completely deallocate the memory. + Allocator::Free(stack_); // NOLINT (+clang-analyzer-unix.Malloc) + stack_ = 0; + stackTop_ = 0; + stackEnd_ = 0; + } + else + Resize(GetSize()); + } + + // Optimization note: try to minimize the size of this function for force inline. + // Expansion is run very infrequently, so it is moved to another (probably non-inline) function. + template + RAPIDJSON_FORCEINLINE void Reserve(size_t count = 1) { + // Expand the stack if needed + if (RAPIDJSON_UNLIKELY(static_cast(sizeof(T) * count) > (stackEnd_ - stackTop_))) + Expand(count); + } + + template + RAPIDJSON_FORCEINLINE T* Push(size_t count = 1) { + Reserve(count); + return PushUnsafe(count); + } + + template + RAPIDJSON_FORCEINLINE T* PushUnsafe(size_t count = 1) { + RAPIDJSON_ASSERT(stackTop_); + RAPIDJSON_ASSERT(static_cast(sizeof(T) * count) <= (stackEnd_ - stackTop_)); + T* ret = reinterpret_cast(stackTop_); + stackTop_ += sizeof(T) * count; + return ret; + } + + template + T* Pop(size_t count) { + RAPIDJSON_ASSERT(GetSize() >= count * sizeof(T)); + stackTop_ -= count * sizeof(T); + return reinterpret_cast(stackTop_); + } + + template + T* Top() { + RAPIDJSON_ASSERT(GetSize() >= sizeof(T)); + return reinterpret_cast(stackTop_ - sizeof(T)); + } + + template + const T* Top() const { + RAPIDJSON_ASSERT(GetSize() >= sizeof(T)); + return reinterpret_cast(stackTop_ - sizeof(T)); + } + + template + T* End() { return reinterpret_cast(stackTop_); } + + template + const T* End() const { return reinterpret_cast(stackTop_); } + + template + T* Bottom() { return reinterpret_cast(stack_); } + + template + const T* Bottom() const { return reinterpret_cast(stack_); } + + bool HasAllocator() const { + return allocator_ != 0; + } + + Allocator& GetAllocator() { + RAPIDJSON_ASSERT(allocator_); + return *allocator_; + } + + bool Empty() const { return stackTop_ == stack_; } + size_t GetSize() const { return static_cast(stackTop_ - stack_); } + size_t GetCapacity() const { return static_cast(stackEnd_ - stack_); } + +private: + template + void Expand(size_t count) { + // Only expand the capacity if the current stack exists. Otherwise just create a stack with initial capacity. + size_t newCapacity; + if (stack_ == 0) { + if (!allocator_) + ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)(); + newCapacity = initialCapacity_; + } else { + newCapacity = GetCapacity(); + newCapacity += (newCapacity + 1) / 2; + } + size_t newSize = GetSize() + sizeof(T) * count; + if (newCapacity < newSize) + newCapacity = newSize; + + Resize(newCapacity); + } + + void Resize(size_t newCapacity) { + const size_t size = GetSize(); // Backup the current size + stack_ = static_cast(allocator_->Realloc(stack_, GetCapacity(), newCapacity)); + stackTop_ = stack_ + size; + stackEnd_ = stack_ + newCapacity; + } + + void Destroy() { + Allocator::Free(stack_); + RAPIDJSON_DELETE(ownAllocator_); // Only delete if it is owned by the stack + } + + // Prohibit copy constructor & assignment operator. + Stack(const Stack&); + Stack& operator=(const Stack&); + + Allocator* allocator_; + Allocator* ownAllocator_; + char *stack_; + char *stackTop_; + char *stackEnd_; + size_t initialCapacity_; +}; + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#if defined(__clang__) +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_STACK_H_ diff --git a/C++Verifier/src/rapidjson/internal/strfunc.h b/C++Verifier/src/rapidjson/internal/strfunc.h new file mode 100644 index 0000000..226439a --- /dev/null +++ b/C++Verifier/src/rapidjson/internal/strfunc.h @@ -0,0 +1,69 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_INTERNAL_STRFUNC_H_ +#define RAPIDJSON_INTERNAL_STRFUNC_H_ + +#include "../stream.h" +#include + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +//! Custom strlen() which works on different character types. +/*! \tparam Ch Character type (e.g. char, wchar_t, short) + \param s Null-terminated input string. + \return Number of characters in the string. + \note This has the same semantics as strlen(), the return value is not number of Unicode codepoints. +*/ +template +inline SizeType StrLen(const Ch* s) { + RAPIDJSON_ASSERT(s != 0); + const Ch* p = s; + while (*p) ++p; + return SizeType(p - s); +} + +template <> +inline SizeType StrLen(const char* s) { + return SizeType(std::strlen(s)); +} + +template <> +inline SizeType StrLen(const wchar_t* s) { + return SizeType(std::wcslen(s)); +} + +//! Returns number of code points in a encoded string. +template +bool CountStringCodePoint(const typename Encoding::Ch* s, SizeType length, SizeType* outCount) { + RAPIDJSON_ASSERT(s != 0); + RAPIDJSON_ASSERT(outCount != 0); + GenericStringStream is(s); + const typename Encoding::Ch* end = s + length; + SizeType count = 0; + while (is.src_ < end) { + unsigned codepoint; + if (!Encoding::Decode(is, &codepoint)) + return false; + count++; + } + *outCount = count; + return true; +} + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_INTERNAL_STRFUNC_H_ diff --git a/C++Verifier/src/rapidjson/internal/strtod.h b/C++Verifier/src/rapidjson/internal/strtod.h new file mode 100644 index 0000000..dfca22b --- /dev/null +++ b/C++Verifier/src/rapidjson/internal/strtod.h @@ -0,0 +1,290 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_STRTOD_ +#define RAPIDJSON_STRTOD_ + +#include "ieee754.h" +#include "biginteger.h" +#include "diyfp.h" +#include "pow10.h" +#include +#include + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +inline double FastPath(double significand, int exp) { + if (exp < -308) + return 0.0; + else if (exp >= 0) + return significand * internal::Pow10(exp); + else + return significand / internal::Pow10(-exp); +} + +inline double StrtodNormalPrecision(double d, int p) { + if (p < -308) { + // Prevent expSum < -308, making Pow10(p) = 0 + d = FastPath(d, -308); + d = FastPath(d, p + 308); + } + else + d = FastPath(d, p); + return d; +} + +template +inline T Min3(T a, T b, T c) { + T m = a; + if (m > b) m = b; + if (m > c) m = c; + return m; +} + +inline int CheckWithinHalfULP(double b, const BigInteger& d, int dExp) { + const Double db(b); + const uint64_t bInt = db.IntegerSignificand(); + const int bExp = db.IntegerExponent(); + const int hExp = bExp - 1; + + int dS_Exp2 = 0, dS_Exp5 = 0, bS_Exp2 = 0, bS_Exp5 = 0, hS_Exp2 = 0, hS_Exp5 = 0; + + // Adjust for decimal exponent + if (dExp >= 0) { + dS_Exp2 += dExp; + dS_Exp5 += dExp; + } + else { + bS_Exp2 -= dExp; + bS_Exp5 -= dExp; + hS_Exp2 -= dExp; + hS_Exp5 -= dExp; + } + + // Adjust for binary exponent + if (bExp >= 0) + bS_Exp2 += bExp; + else { + dS_Exp2 -= bExp; + hS_Exp2 -= bExp; + } + + // Adjust for half ulp exponent + if (hExp >= 0) + hS_Exp2 += hExp; + else { + dS_Exp2 -= hExp; + bS_Exp2 -= hExp; + } + + // Remove common power of two factor from all three scaled values + int common_Exp2 = Min3(dS_Exp2, bS_Exp2, hS_Exp2); + dS_Exp2 -= common_Exp2; + bS_Exp2 -= common_Exp2; + hS_Exp2 -= common_Exp2; + + BigInteger dS = d; + dS.MultiplyPow5(static_cast(dS_Exp5)) <<= static_cast(dS_Exp2); + + BigInteger bS(bInt); + bS.MultiplyPow5(static_cast(bS_Exp5)) <<= static_cast(bS_Exp2); + + BigInteger hS(1); + hS.MultiplyPow5(static_cast(hS_Exp5)) <<= static_cast(hS_Exp2); + + BigInteger delta(0); + dS.Difference(bS, &delta); + + return delta.Compare(hS); +} + +inline bool StrtodFast(double d, int p, double* result) { + // Use fast path for string-to-double conversion if possible + // see http://www.exploringbinary.com/fast-path-decimal-to-floating-point-conversion/ + if (p > 22 && p < 22 + 16) { + // Fast Path Cases In Disguise + d *= internal::Pow10(p - 22); + p = 22; + } + + if (p >= -22 && p <= 22 && d <= 9007199254740991.0) { // 2^53 - 1 + *result = FastPath(d, p); + return true; + } + else + return false; +} + +// Compute an approximation and see if it is within 1/2 ULP +inline bool StrtodDiyFp(const char* decimals, int dLen, int dExp, double* result) { + uint64_t significand = 0; + int i = 0; // 2^64 - 1 = 18446744073709551615, 1844674407370955161 = 0x1999999999999999 + for (; i < dLen; i++) { + if (significand > RAPIDJSON_UINT64_C2(0x19999999, 0x99999999) || + (significand == RAPIDJSON_UINT64_C2(0x19999999, 0x99999999) && decimals[i] > '5')) + break; + significand = significand * 10u + static_cast(decimals[i] - '0'); + } + + if (i < dLen && decimals[i] >= '5') // Rounding + significand++; + + int remaining = dLen - i; + const int kUlpShift = 3; + const int kUlp = 1 << kUlpShift; + int64_t error = (remaining == 0) ? 0 : kUlp / 2; + + DiyFp v(significand, 0); + v = v.Normalize(); + error <<= -v.e; + + dExp += remaining; + + int actualExp; + DiyFp cachedPower = GetCachedPower10(dExp, &actualExp); + if (actualExp != dExp) { + static const DiyFp kPow10[] = { + DiyFp(RAPIDJSON_UINT64_C2(0xa0000000, 0x00000000), -60), // 10^1 + DiyFp(RAPIDJSON_UINT64_C2(0xc8000000, 0x00000000), -57), // 10^2 + DiyFp(RAPIDJSON_UINT64_C2(0xfa000000, 0x00000000), -54), // 10^3 + DiyFp(RAPIDJSON_UINT64_C2(0x9c400000, 0x00000000), -50), // 10^4 + DiyFp(RAPIDJSON_UINT64_C2(0xc3500000, 0x00000000), -47), // 10^5 + DiyFp(RAPIDJSON_UINT64_C2(0xf4240000, 0x00000000), -44), // 10^6 + DiyFp(RAPIDJSON_UINT64_C2(0x98968000, 0x00000000), -40) // 10^7 + }; + int adjustment = dExp - actualExp; + RAPIDJSON_ASSERT(adjustment >= 1 && adjustment < 8); + v = v * kPow10[adjustment - 1]; + if (dLen + adjustment > 19) // has more digits than decimal digits in 64-bit + error += kUlp / 2; + } + + v = v * cachedPower; + + error += kUlp + (error == 0 ? 0 : 1); + + const int oldExp = v.e; + v = v.Normalize(); + error <<= oldExp - v.e; + + const int effectiveSignificandSize = Double::EffectiveSignificandSize(64 + v.e); + int precisionSize = 64 - effectiveSignificandSize; + if (precisionSize + kUlpShift >= 64) { + int scaleExp = (precisionSize + kUlpShift) - 63; + v.f >>= scaleExp; + v.e += scaleExp; + error = (error >> scaleExp) + 1 + kUlp; + precisionSize -= scaleExp; + } + + DiyFp rounded(v.f >> precisionSize, v.e + precisionSize); + const uint64_t precisionBits = (v.f & ((uint64_t(1) << precisionSize) - 1)) * kUlp; + const uint64_t halfWay = (uint64_t(1) << (precisionSize - 1)) * kUlp; + if (precisionBits >= halfWay + static_cast(error)) { + rounded.f++; + if (rounded.f & (DiyFp::kDpHiddenBit << 1)) { // rounding overflows mantissa (issue #340) + rounded.f >>= 1; + rounded.e++; + } + } + + *result = rounded.ToDouble(); + + return halfWay - static_cast(error) >= precisionBits || precisionBits >= halfWay + static_cast(error); +} + +inline double StrtodBigInteger(double approx, const char* decimals, int dLen, int dExp) { + RAPIDJSON_ASSERT(dLen >= 0); + const BigInteger dInt(decimals, static_cast(dLen)); + Double a(approx); + int cmp = CheckWithinHalfULP(a.Value(), dInt, dExp); + if (cmp < 0) + return a.Value(); // within half ULP + else if (cmp == 0) { + // Round towards even + if (a.Significand() & 1) + return a.NextPositiveDouble(); + else + return a.Value(); + } + else // adjustment + return a.NextPositiveDouble(); +} + +inline double StrtodFullPrecision(double d, int p, const char* decimals, size_t length, size_t decimalPosition, int exp) { + RAPIDJSON_ASSERT(d >= 0.0); + RAPIDJSON_ASSERT(length >= 1); + + double result = 0.0; + if (StrtodFast(d, p, &result)) + return result; + + RAPIDJSON_ASSERT(length <= INT_MAX); + int dLen = static_cast(length); + + RAPIDJSON_ASSERT(length >= decimalPosition); + RAPIDJSON_ASSERT(length - decimalPosition <= INT_MAX); + int dExpAdjust = static_cast(length - decimalPosition); + + RAPIDJSON_ASSERT(exp >= INT_MIN + dExpAdjust); + int dExp = exp - dExpAdjust; + + // Make sure length+dExp does not overflow + RAPIDJSON_ASSERT(dExp <= INT_MAX - dLen); + + // Trim leading zeros + while (dLen > 0 && *decimals == '0') { + dLen--; + decimals++; + } + + // Trim trailing zeros + while (dLen > 0 && decimals[dLen - 1] == '0') { + dLen--; + dExp++; + } + + if (dLen == 0) { // Buffer only contains zeros. + return 0.0; + } + + // Trim right-most digits + const int kMaxDecimalDigit = 767 + 1; + if (dLen > kMaxDecimalDigit) { + dExp += dLen - kMaxDecimalDigit; + dLen = kMaxDecimalDigit; + } + + // If too small, underflow to zero. + // Any x <= 10^-324 is interpreted as zero. + if (dLen + dExp <= -324) + return 0.0; + + // If too large, overflow to infinity. + // Any x >= 10^309 is interpreted as +infinity. + if (dLen + dExp > 309) + return std::numeric_limits::infinity(); + + if (StrtodDiyFp(decimals, dLen, dExp, &result)) + return result; + + // Use approximation from StrtodDiyFp and make adjustment with BigInteger comparison + return StrtodBigInteger(result, decimals, dLen, dExp); +} + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_STRTOD_ diff --git a/C++Verifier/src/rapidjson/internal/swap.h b/C++Verifier/src/rapidjson/internal/swap.h new file mode 100644 index 0000000..666e49f --- /dev/null +++ b/C++Verifier/src/rapidjson/internal/swap.h @@ -0,0 +1,46 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_INTERNAL_SWAP_H_ +#define RAPIDJSON_INTERNAL_SWAP_H_ + +#include "../rapidjson.h" + +#if defined(__clang__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(c++98-compat) +#endif + +RAPIDJSON_NAMESPACE_BEGIN +namespace internal { + +//! Custom swap() to avoid dependency on C++ header +/*! \tparam T Type of the arguments to swap, should be instantiated with primitive C++ types only. + \note This has the same semantics as std::swap(). +*/ +template +inline void Swap(T& a, T& b) RAPIDJSON_NOEXCEPT { + T tmp = a; + a = b; + b = tmp; +} + +} // namespace internal +RAPIDJSON_NAMESPACE_END + +#if defined(__clang__) +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_INTERNAL_SWAP_H_ diff --git a/C++Verifier/src/rapidjson/istreamwrapper.h b/C++Verifier/src/rapidjson/istreamwrapper.h new file mode 100644 index 0000000..c4950b9 --- /dev/null +++ b/C++Verifier/src/rapidjson/istreamwrapper.h @@ -0,0 +1,128 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_ISTREAMWRAPPER_H_ +#define RAPIDJSON_ISTREAMWRAPPER_H_ + +#include "stream.h" +#include +#include + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +#elif defined(_MSC_VER) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4351) // new behavior: elements of array 'array' will be default initialized +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Wrapper of \c std::basic_istream into RapidJSON's Stream concept. +/*! + The classes can be wrapped including but not limited to: + + - \c std::istringstream + - \c std::stringstream + - \c std::wistringstream + - \c std::wstringstream + - \c std::ifstream + - \c std::fstream + - \c std::wifstream + - \c std::wfstream + + \tparam StreamType Class derived from \c std::basic_istream. +*/ + +template +class BasicIStreamWrapper { +public: + typedef typename StreamType::char_type Ch; + + //! Constructor. + /*! + \param stream stream opened for read. + */ + BasicIStreamWrapper(StreamType &stream) : stream_(stream), buffer_(peekBuffer_), bufferSize_(4), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) { + Read(); + } + + //! Constructor. + /*! + \param stream stream opened for read. + \param buffer user-supplied buffer. + \param bufferSize size of buffer in bytes. Must >=4 bytes. + */ + BasicIStreamWrapper(StreamType &stream, char* buffer, size_t bufferSize) : stream_(stream), buffer_(buffer), bufferSize_(bufferSize), bufferLast_(0), current_(buffer_), readCount_(0), count_(0), eof_(false) { + RAPIDJSON_ASSERT(bufferSize >= 4); + Read(); + } + + Ch Peek() const { return *current_; } + Ch Take() { Ch c = *current_; Read(); return c; } + size_t Tell() const { return count_ + static_cast(current_ - buffer_); } + + // Not implemented + void Put(Ch) { RAPIDJSON_ASSERT(false); } + void Flush() { RAPIDJSON_ASSERT(false); } + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + + // For encoding detection only. + const Ch* Peek4() const { + return (current_ + 4 - !eof_ <= bufferLast_) ? current_ : 0; + } + +private: + BasicIStreamWrapper(); + BasicIStreamWrapper(const BasicIStreamWrapper&); + BasicIStreamWrapper& operator=(const BasicIStreamWrapper&); + + void Read() { + if (current_ < bufferLast_) + ++current_; + else if (!eof_) { + count_ += readCount_; + readCount_ = bufferSize_; + bufferLast_ = buffer_ + readCount_ - 1; + current_ = buffer_; + + if (!stream_.read(buffer_, static_cast(bufferSize_))) { + readCount_ = static_cast(stream_.gcount()); + *(bufferLast_ = buffer_ + readCount_) = '\0'; + eof_ = true; + } + } + } + + StreamType &stream_; + Ch peekBuffer_[4], *buffer_; + size_t bufferSize_; + Ch *bufferLast_; + Ch *current_; + size_t readCount_; + size_t count_; //!< Number of characters read + bool eof_; +}; + +typedef BasicIStreamWrapper IStreamWrapper; +typedef BasicIStreamWrapper WIStreamWrapper; + +#if defined(__clang__) || defined(_MSC_VER) +RAPIDJSON_DIAG_POP +#endif + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_ISTREAMWRAPPER_H_ diff --git a/C++Verifier/src/rapidjson/memorybuffer.h b/C++Verifier/src/rapidjson/memorybuffer.h new file mode 100644 index 0000000..39bee1d --- /dev/null +++ b/C++Verifier/src/rapidjson/memorybuffer.h @@ -0,0 +1,70 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_MEMORYBUFFER_H_ +#define RAPIDJSON_MEMORYBUFFER_H_ + +#include "stream.h" +#include "internal/stack.h" + +RAPIDJSON_NAMESPACE_BEGIN + +//! Represents an in-memory output byte stream. +/*! + This class is mainly for being wrapped by EncodedOutputStream or AutoUTFOutputStream. + + It is similar to FileWriteBuffer but the destination is an in-memory buffer instead of a file. + + Differences between MemoryBuffer and StringBuffer: + 1. StringBuffer has Encoding but MemoryBuffer is only a byte buffer. + 2. StringBuffer::GetString() returns a null-terminated string. MemoryBuffer::GetBuffer() returns a buffer without terminator. + + \tparam Allocator type for allocating memory buffer. + \note implements Stream concept +*/ +template +struct GenericMemoryBuffer { + typedef char Ch; // byte + + GenericMemoryBuffer(Allocator* allocator = 0, size_t capacity = kDefaultCapacity) : stack_(allocator, capacity) {} + + void Put(Ch c) { *stack_.template Push() = c; } + void Flush() {} + + void Clear() { stack_.Clear(); } + void ShrinkToFit() { stack_.ShrinkToFit(); } + Ch* Push(size_t count) { return stack_.template Push(count); } + void Pop(size_t count) { stack_.template Pop(count); } + + const Ch* GetBuffer() const { + return stack_.template Bottom(); + } + + size_t GetSize() const { return stack_.GetSize(); } + + static const size_t kDefaultCapacity = 256; + mutable internal::Stack stack_; +}; + +typedef GenericMemoryBuffer<> MemoryBuffer; + +//! Implement specialized version of PutN() with memset() for better performance. +template<> +inline void PutN(MemoryBuffer& memoryBuffer, char c, size_t n) { + std::memset(memoryBuffer.stack_.Push(n), c, n * sizeof(c)); +} + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_MEMORYBUFFER_H_ diff --git a/C++Verifier/src/rapidjson/memorystream.h b/C++Verifier/src/rapidjson/memorystream.h new file mode 100644 index 0000000..1d71d8a --- /dev/null +++ b/C++Verifier/src/rapidjson/memorystream.h @@ -0,0 +1,71 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_MEMORYSTREAM_H_ +#define RAPIDJSON_MEMORYSTREAM_H_ + +#include "stream.h" + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(unreachable-code) +RAPIDJSON_DIAG_OFF(missing-noreturn) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Represents an in-memory input byte stream. +/*! + This class is mainly for being wrapped by EncodedInputStream or AutoUTFInputStream. + + It is similar to FileReadBuffer but the source is an in-memory buffer instead of a file. + + Differences between MemoryStream and StringStream: + 1. StringStream has encoding but MemoryStream is a byte stream. + 2. MemoryStream needs size of the source buffer and the buffer don't need to be null terminated. StringStream assume null-terminated string as source. + 3. MemoryStream supports Peek4() for encoding detection. StringStream is specified with an encoding so it should not have Peek4(). + \note implements Stream concept +*/ +struct MemoryStream { + typedef char Ch; // byte + + MemoryStream(const Ch *src, size_t size) : src_(src), begin_(src), end_(src + size), size_(size) {} + + Ch Peek() const { return RAPIDJSON_UNLIKELY(src_ == end_) ? '\0' : *src_; } + Ch Take() { return RAPIDJSON_UNLIKELY(src_ == end_) ? '\0' : *src_++; } + size_t Tell() const { return static_cast(src_ - begin_); } + + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + void Put(Ch) { RAPIDJSON_ASSERT(false); } + void Flush() { RAPIDJSON_ASSERT(false); } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + + // For encoding detection only. + const Ch* Peek4() const { + return Tell() + 4 <= size_ ? src_ : 0; + } + + const Ch* src_; //!< Current read position. + const Ch* begin_; //!< Original head of the string. + const Ch* end_; //!< End of stream. + size_t size_; //!< Size of the stream. +}; + +RAPIDJSON_NAMESPACE_END + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_MEMORYBUFFER_H_ diff --git a/C++Verifier/src/rapidjson/msinttypes/inttypes.h b/C++Verifier/src/rapidjson/msinttypes/inttypes.h new file mode 100644 index 0000000..1811128 --- /dev/null +++ b/C++Verifier/src/rapidjson/msinttypes/inttypes.h @@ -0,0 +1,316 @@ +// ISO C9x compliant inttypes.h for Microsoft Visual Studio +// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 +// +// Copyright (c) 2006-2013 Alexander Chemeris +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the product nor the names of its contributors may +// be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +/////////////////////////////////////////////////////////////////////////////// + +// The above software in this distribution may have been modified by +// THL A29 Limited ("Tencent Modifications"). +// All Tencent Modifications are Copyright (C) 2015 THL A29 Limited. + +#ifndef _MSC_VER // [ +#error "Use this header only with Microsoft Visual C++ compilers!" +#endif // _MSC_VER ] + +#ifndef _MSC_INTTYPES_H_ // [ +#define _MSC_INTTYPES_H_ + +#if _MSC_VER > 1000 +#pragma once +#endif + +#include "stdint.h" + +// miloyip: VC supports inttypes.h since VC2013 +#if _MSC_VER >= 1800 +#include +#else + +// 7.8 Format conversion of integer types + +typedef struct { + intmax_t quot; + intmax_t rem; +} imaxdiv_t; + +// 7.8.1 Macros for format specifiers + +#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) // [ See footnote 185 at page 198 + +// The fprintf macros for signed integers are: +#define PRId8 "d" +#define PRIi8 "i" +#define PRIdLEAST8 "d" +#define PRIiLEAST8 "i" +#define PRIdFAST8 "d" +#define PRIiFAST8 "i" + +#define PRId16 "hd" +#define PRIi16 "hi" +#define PRIdLEAST16 "hd" +#define PRIiLEAST16 "hi" +#define PRIdFAST16 "hd" +#define PRIiFAST16 "hi" + +#define PRId32 "I32d" +#define PRIi32 "I32i" +#define PRIdLEAST32 "I32d" +#define PRIiLEAST32 "I32i" +#define PRIdFAST32 "I32d" +#define PRIiFAST32 "I32i" + +#define PRId64 "I64d" +#define PRIi64 "I64i" +#define PRIdLEAST64 "I64d" +#define PRIiLEAST64 "I64i" +#define PRIdFAST64 "I64d" +#define PRIiFAST64 "I64i" + +#define PRIdMAX "I64d" +#define PRIiMAX "I64i" + +#define PRIdPTR "Id" +#define PRIiPTR "Ii" + +// The fprintf macros for unsigned integers are: +#define PRIo8 "o" +#define PRIu8 "u" +#define PRIx8 "x" +#define PRIX8 "X" +#define PRIoLEAST8 "o" +#define PRIuLEAST8 "u" +#define PRIxLEAST8 "x" +#define PRIXLEAST8 "X" +#define PRIoFAST8 "o" +#define PRIuFAST8 "u" +#define PRIxFAST8 "x" +#define PRIXFAST8 "X" + +#define PRIo16 "ho" +#define PRIu16 "hu" +#define PRIx16 "hx" +#define PRIX16 "hX" +#define PRIoLEAST16 "ho" +#define PRIuLEAST16 "hu" +#define PRIxLEAST16 "hx" +#define PRIXLEAST16 "hX" +#define PRIoFAST16 "ho" +#define PRIuFAST16 "hu" +#define PRIxFAST16 "hx" +#define PRIXFAST16 "hX" + +#define PRIo32 "I32o" +#define PRIu32 "I32u" +#define PRIx32 "I32x" +#define PRIX32 "I32X" +#define PRIoLEAST32 "I32o" +#define PRIuLEAST32 "I32u" +#define PRIxLEAST32 "I32x" +#define PRIXLEAST32 "I32X" +#define PRIoFAST32 "I32o" +#define PRIuFAST32 "I32u" +#define PRIxFAST32 "I32x" +#define PRIXFAST32 "I32X" + +#define PRIo64 "I64o" +#define PRIu64 "I64u" +#define PRIx64 "I64x" +#define PRIX64 "I64X" +#define PRIoLEAST64 "I64o" +#define PRIuLEAST64 "I64u" +#define PRIxLEAST64 "I64x" +#define PRIXLEAST64 "I64X" +#define PRIoFAST64 "I64o" +#define PRIuFAST64 "I64u" +#define PRIxFAST64 "I64x" +#define PRIXFAST64 "I64X" + +#define PRIoMAX "I64o" +#define PRIuMAX "I64u" +#define PRIxMAX "I64x" +#define PRIXMAX "I64X" + +#define PRIoPTR "Io" +#define PRIuPTR "Iu" +#define PRIxPTR "Ix" +#define PRIXPTR "IX" + +// The fscanf macros for signed integers are: +#define SCNd8 "d" +#define SCNi8 "i" +#define SCNdLEAST8 "d" +#define SCNiLEAST8 "i" +#define SCNdFAST8 "d" +#define SCNiFAST8 "i" + +#define SCNd16 "hd" +#define SCNi16 "hi" +#define SCNdLEAST16 "hd" +#define SCNiLEAST16 "hi" +#define SCNdFAST16 "hd" +#define SCNiFAST16 "hi" + +#define SCNd32 "ld" +#define SCNi32 "li" +#define SCNdLEAST32 "ld" +#define SCNiLEAST32 "li" +#define SCNdFAST32 "ld" +#define SCNiFAST32 "li" + +#define SCNd64 "I64d" +#define SCNi64 "I64i" +#define SCNdLEAST64 "I64d" +#define SCNiLEAST64 "I64i" +#define SCNdFAST64 "I64d" +#define SCNiFAST64 "I64i" + +#define SCNdMAX "I64d" +#define SCNiMAX "I64i" + +#ifdef _WIN64 // [ +# define SCNdPTR "I64d" +# define SCNiPTR "I64i" +#else // _WIN64 ][ +# define SCNdPTR "ld" +# define SCNiPTR "li" +#endif // _WIN64 ] + +// The fscanf macros for unsigned integers are: +#define SCNo8 "o" +#define SCNu8 "u" +#define SCNx8 "x" +#define SCNX8 "X" +#define SCNoLEAST8 "o" +#define SCNuLEAST8 "u" +#define SCNxLEAST8 "x" +#define SCNXLEAST8 "X" +#define SCNoFAST8 "o" +#define SCNuFAST8 "u" +#define SCNxFAST8 "x" +#define SCNXFAST8 "X" + +#define SCNo16 "ho" +#define SCNu16 "hu" +#define SCNx16 "hx" +#define SCNX16 "hX" +#define SCNoLEAST16 "ho" +#define SCNuLEAST16 "hu" +#define SCNxLEAST16 "hx" +#define SCNXLEAST16 "hX" +#define SCNoFAST16 "ho" +#define SCNuFAST16 "hu" +#define SCNxFAST16 "hx" +#define SCNXFAST16 "hX" + +#define SCNo32 "lo" +#define SCNu32 "lu" +#define SCNx32 "lx" +#define SCNX32 "lX" +#define SCNoLEAST32 "lo" +#define SCNuLEAST32 "lu" +#define SCNxLEAST32 "lx" +#define SCNXLEAST32 "lX" +#define SCNoFAST32 "lo" +#define SCNuFAST32 "lu" +#define SCNxFAST32 "lx" +#define SCNXFAST32 "lX" + +#define SCNo64 "I64o" +#define SCNu64 "I64u" +#define SCNx64 "I64x" +#define SCNX64 "I64X" +#define SCNoLEAST64 "I64o" +#define SCNuLEAST64 "I64u" +#define SCNxLEAST64 "I64x" +#define SCNXLEAST64 "I64X" +#define SCNoFAST64 "I64o" +#define SCNuFAST64 "I64u" +#define SCNxFAST64 "I64x" +#define SCNXFAST64 "I64X" + +#define SCNoMAX "I64o" +#define SCNuMAX "I64u" +#define SCNxMAX "I64x" +#define SCNXMAX "I64X" + +#ifdef _WIN64 // [ +# define SCNoPTR "I64o" +# define SCNuPTR "I64u" +# define SCNxPTR "I64x" +# define SCNXPTR "I64X" +#else // _WIN64 ][ +# define SCNoPTR "lo" +# define SCNuPTR "lu" +# define SCNxPTR "lx" +# define SCNXPTR "lX" +#endif // _WIN64 ] + +#endif // __STDC_FORMAT_MACROS ] + +// 7.8.2 Functions for greatest-width integer types + +// 7.8.2.1 The imaxabs function +#define imaxabs _abs64 + +// 7.8.2.2 The imaxdiv function + +// This is modified version of div() function from Microsoft's div.c found +// in %MSVC.NET%\crt\src\div.c +#ifdef STATIC_IMAXDIV // [ +static +#else // STATIC_IMAXDIV ][ +_inline +#endif // STATIC_IMAXDIV ] +imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom) +{ + imaxdiv_t result; + + result.quot = numer / denom; + result.rem = numer % denom; + + if (numer < 0 && result.rem > 0) { + // did division wrong; must fix up + ++result.quot; + result.rem -= denom; + } + + return result; +} + +// 7.8.2.3 The strtoimax and strtoumax functions +#define strtoimax _strtoi64 +#define strtoumax _strtoui64 + +// 7.8.2.4 The wcstoimax and wcstoumax functions +#define wcstoimax _wcstoi64 +#define wcstoumax _wcstoui64 + +#endif // _MSC_VER >= 1800 + +#endif // _MSC_INTTYPES_H_ ] diff --git a/C++Verifier/src/rapidjson/msinttypes/stdint.h b/C++Verifier/src/rapidjson/msinttypes/stdint.h new file mode 100644 index 0000000..3d4477b --- /dev/null +++ b/C++Verifier/src/rapidjson/msinttypes/stdint.h @@ -0,0 +1,300 @@ +// ISO C9x compliant stdint.h for Microsoft Visual Studio +// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 +// +// Copyright (c) 2006-2013 Alexander Chemeris +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// 1. Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// 3. Neither the name of the product nor the names of its contributors may +// be used to endorse or promote products derived from this software +// without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +/////////////////////////////////////////////////////////////////////////////// + +// The above software in this distribution may have been modified by +// THL A29 Limited ("Tencent Modifications"). +// All Tencent Modifications are Copyright (C) 2015 THL A29 Limited. + +#ifndef _MSC_VER // [ +#error "Use this header only with Microsoft Visual C++ compilers!" +#endif // _MSC_VER ] + +#ifndef _MSC_STDINT_H_ // [ +#define _MSC_STDINT_H_ + +#if _MSC_VER > 1000 +#pragma once +#endif + +// miloyip: Originally Visual Studio 2010 uses its own stdint.h. However it generates warning with INT64_C(), so change to use this file for vs2010. +#if _MSC_VER >= 1600 // [ +#include + +#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 + +#undef INT8_C +#undef INT16_C +#undef INT32_C +#undef INT64_C +#undef UINT8_C +#undef UINT16_C +#undef UINT32_C +#undef UINT64_C + +// 7.18.4.1 Macros for minimum-width integer constants + +#define INT8_C(val) val##i8 +#define INT16_C(val) val##i16 +#define INT32_C(val) val##i32 +#define INT64_C(val) val##i64 + +#define UINT8_C(val) val##ui8 +#define UINT16_C(val) val##ui16 +#define UINT32_C(val) val##ui32 +#define UINT64_C(val) val##ui64 + +// 7.18.4.2 Macros for greatest-width integer constants +// These #ifndef's are needed to prevent collisions with . +// Check out Issue 9 for the details. +#ifndef INTMAX_C // [ +# define INTMAX_C INT64_C +#endif // INTMAX_C ] +#ifndef UINTMAX_C // [ +# define UINTMAX_C UINT64_C +#endif // UINTMAX_C ] + +#endif // __STDC_CONSTANT_MACROS ] + +#else // ] _MSC_VER >= 1700 [ + +#include + +// For Visual Studio 6 in C++ mode and for many Visual Studio versions when +// compiling for ARM we have to wrap include with 'extern "C++" {}' +// or compiler would give many errors like this: +// error C2733: second C linkage of overloaded function 'wmemchr' not allowed +#if defined(__cplusplus) && !defined(_M_ARM) +extern "C" { +#endif +# include +#if defined(__cplusplus) && !defined(_M_ARM) +} +#endif + +// Define _W64 macros to mark types changing their size, like intptr_t. +#ifndef _W64 +# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 +# define _W64 __w64 +# else +# define _W64 +# endif +#endif + + +// 7.18.1 Integer types + +// 7.18.1.1 Exact-width integer types + +// Visual Studio 6 and Embedded Visual C++ 4 doesn't +// realize that, e.g. char has the same size as __int8 +// so we give up on __intX for them. +#if (_MSC_VER < 1300) + typedef signed char int8_t; + typedef signed short int16_t; + typedef signed int int32_t; + typedef unsigned char uint8_t; + typedef unsigned short uint16_t; + typedef unsigned int uint32_t; +#else + typedef signed __int8 int8_t; + typedef signed __int16 int16_t; + typedef signed __int32 int32_t; + typedef unsigned __int8 uint8_t; + typedef unsigned __int16 uint16_t; + typedef unsigned __int32 uint32_t; +#endif +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; + + +// 7.18.1.2 Minimum-width integer types +typedef int8_t int_least8_t; +typedef int16_t int_least16_t; +typedef int32_t int_least32_t; +typedef int64_t int_least64_t; +typedef uint8_t uint_least8_t; +typedef uint16_t uint_least16_t; +typedef uint32_t uint_least32_t; +typedef uint64_t uint_least64_t; + +// 7.18.1.3 Fastest minimum-width integer types +typedef int8_t int_fast8_t; +typedef int16_t int_fast16_t; +typedef int32_t int_fast32_t; +typedef int64_t int_fast64_t; +typedef uint8_t uint_fast8_t; +typedef uint16_t uint_fast16_t; +typedef uint32_t uint_fast32_t; +typedef uint64_t uint_fast64_t; + +// 7.18.1.4 Integer types capable of holding object pointers +#ifdef _WIN64 // [ + typedef signed __int64 intptr_t; + typedef unsigned __int64 uintptr_t; +#else // _WIN64 ][ + typedef _W64 signed int intptr_t; + typedef _W64 unsigned int uintptr_t; +#endif // _WIN64 ] + +// 7.18.1.5 Greatest-width integer types +typedef int64_t intmax_t; +typedef uint64_t uintmax_t; + + +// 7.18.2 Limits of specified-width integer types + +#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259 + +// 7.18.2.1 Limits of exact-width integer types +#define INT8_MIN ((int8_t)_I8_MIN) +#define INT8_MAX _I8_MAX +#define INT16_MIN ((int16_t)_I16_MIN) +#define INT16_MAX _I16_MAX +#define INT32_MIN ((int32_t)_I32_MIN) +#define INT32_MAX _I32_MAX +#define INT64_MIN ((int64_t)_I64_MIN) +#define INT64_MAX _I64_MAX +#define UINT8_MAX _UI8_MAX +#define UINT16_MAX _UI16_MAX +#define UINT32_MAX _UI32_MAX +#define UINT64_MAX _UI64_MAX + +// 7.18.2.2 Limits of minimum-width integer types +#define INT_LEAST8_MIN INT8_MIN +#define INT_LEAST8_MAX INT8_MAX +#define INT_LEAST16_MIN INT16_MIN +#define INT_LEAST16_MAX INT16_MAX +#define INT_LEAST32_MIN INT32_MIN +#define INT_LEAST32_MAX INT32_MAX +#define INT_LEAST64_MIN INT64_MIN +#define INT_LEAST64_MAX INT64_MAX +#define UINT_LEAST8_MAX UINT8_MAX +#define UINT_LEAST16_MAX UINT16_MAX +#define UINT_LEAST32_MAX UINT32_MAX +#define UINT_LEAST64_MAX UINT64_MAX + +// 7.18.2.3 Limits of fastest minimum-width integer types +#define INT_FAST8_MIN INT8_MIN +#define INT_FAST8_MAX INT8_MAX +#define INT_FAST16_MIN INT16_MIN +#define INT_FAST16_MAX INT16_MAX +#define INT_FAST32_MIN INT32_MIN +#define INT_FAST32_MAX INT32_MAX +#define INT_FAST64_MIN INT64_MIN +#define INT_FAST64_MAX INT64_MAX +#define UINT_FAST8_MAX UINT8_MAX +#define UINT_FAST16_MAX UINT16_MAX +#define UINT_FAST32_MAX UINT32_MAX +#define UINT_FAST64_MAX UINT64_MAX + +// 7.18.2.4 Limits of integer types capable of holding object pointers +#ifdef _WIN64 // [ +# define INTPTR_MIN INT64_MIN +# define INTPTR_MAX INT64_MAX +# define UINTPTR_MAX UINT64_MAX +#else // _WIN64 ][ +# define INTPTR_MIN INT32_MIN +# define INTPTR_MAX INT32_MAX +# define UINTPTR_MAX UINT32_MAX +#endif // _WIN64 ] + +// 7.18.2.5 Limits of greatest-width integer types +#define INTMAX_MIN INT64_MIN +#define INTMAX_MAX INT64_MAX +#define UINTMAX_MAX UINT64_MAX + +// 7.18.3 Limits of other integer types + +#ifdef _WIN64 // [ +# define PTRDIFF_MIN _I64_MIN +# define PTRDIFF_MAX _I64_MAX +#else // _WIN64 ][ +# define PTRDIFF_MIN _I32_MIN +# define PTRDIFF_MAX _I32_MAX +#endif // _WIN64 ] + +#define SIG_ATOMIC_MIN INT_MIN +#define SIG_ATOMIC_MAX INT_MAX + +#ifndef SIZE_MAX // [ +# ifdef _WIN64 // [ +# define SIZE_MAX _UI64_MAX +# else // _WIN64 ][ +# define SIZE_MAX _UI32_MAX +# endif // _WIN64 ] +#endif // SIZE_MAX ] + +// WCHAR_MIN and WCHAR_MAX are also defined in +#ifndef WCHAR_MIN // [ +# define WCHAR_MIN 0 +#endif // WCHAR_MIN ] +#ifndef WCHAR_MAX // [ +# define WCHAR_MAX _UI16_MAX +#endif // WCHAR_MAX ] + +#define WINT_MIN 0 +#define WINT_MAX _UI16_MAX + +#endif // __STDC_LIMIT_MACROS ] + + +// 7.18.4 Limits of other integer types + +#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 + +// 7.18.4.1 Macros for minimum-width integer constants + +#define INT8_C(val) val##i8 +#define INT16_C(val) val##i16 +#define INT32_C(val) val##i32 +#define INT64_C(val) val##i64 + +#define UINT8_C(val) val##ui8 +#define UINT16_C(val) val##ui16 +#define UINT32_C(val) val##ui32 +#define UINT64_C(val) val##ui64 + +// 7.18.4.2 Macros for greatest-width integer constants +// These #ifndef's are needed to prevent collisions with . +// Check out Issue 9 for the details. +#ifndef INTMAX_C // [ +# define INTMAX_C INT64_C +#endif // INTMAX_C ] +#ifndef UINTMAX_C // [ +# define UINTMAX_C UINT64_C +#endif // UINTMAX_C ] + +#endif // __STDC_CONSTANT_MACROS ] + +#endif // _MSC_VER >= 1600 ] + +#endif // _MSC_STDINT_H_ ] diff --git a/C++Verifier/src/rapidjson/ostreamwrapper.h b/C++Verifier/src/rapidjson/ostreamwrapper.h new file mode 100644 index 0000000..6f4667c --- /dev/null +++ b/C++Verifier/src/rapidjson/ostreamwrapper.h @@ -0,0 +1,81 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_OSTREAMWRAPPER_H_ +#define RAPIDJSON_OSTREAMWRAPPER_H_ + +#include "stream.h" +#include + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Wrapper of \c std::basic_ostream into RapidJSON's Stream concept. +/*! + The classes can be wrapped including but not limited to: + + - \c std::ostringstream + - \c std::stringstream + - \c std::wpstringstream + - \c std::wstringstream + - \c std::ifstream + - \c std::fstream + - \c std::wofstream + - \c std::wfstream + + \tparam StreamType Class derived from \c std::basic_ostream. +*/ + +template +class BasicOStreamWrapper { +public: + typedef typename StreamType::char_type Ch; + BasicOStreamWrapper(StreamType& stream) : stream_(stream) {} + + void Put(Ch c) { + stream_.put(c); + } + + void Flush() { + stream_.flush(); + } + + // Not implemented + char Peek() const { RAPIDJSON_ASSERT(false); return 0; } + char Take() { RAPIDJSON_ASSERT(false); return 0; } + size_t Tell() const { RAPIDJSON_ASSERT(false); return 0; } + char* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + size_t PutEnd(char*) { RAPIDJSON_ASSERT(false); return 0; } + +private: + BasicOStreamWrapper(const BasicOStreamWrapper&); + BasicOStreamWrapper& operator=(const BasicOStreamWrapper&); + + StreamType& stream_; +}; + +typedef BasicOStreamWrapper OStreamWrapper; +typedef BasicOStreamWrapper WOStreamWrapper; + +#ifdef __clang__ +RAPIDJSON_DIAG_POP +#endif + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_OSTREAMWRAPPER_H_ diff --git a/C++Verifier/src/rapidjson/pointer.h b/C++Verifier/src/rapidjson/pointer.h new file mode 100644 index 0000000..b8143b6 --- /dev/null +++ b/C++Verifier/src/rapidjson/pointer.h @@ -0,0 +1,1415 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_POINTER_H_ +#define RAPIDJSON_POINTER_H_ + +#include "document.h" +#include "internal/itoa.h" + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(switch-enum) +#elif defined(_MSC_VER) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4512) // assignment operator could not be generated +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +static const SizeType kPointerInvalidIndex = ~SizeType(0); //!< Represents an invalid index in GenericPointer::Token + +//! Error code of parsing. +/*! \ingroup RAPIDJSON_ERRORS + \see GenericPointer::GenericPointer, GenericPointer::GetParseErrorCode +*/ +enum PointerParseErrorCode { + kPointerParseErrorNone = 0, //!< The parse is successful + + kPointerParseErrorTokenMustBeginWithSolidus, //!< A token must begin with a '/' + kPointerParseErrorInvalidEscape, //!< Invalid escape + kPointerParseErrorInvalidPercentEncoding, //!< Invalid percent encoding in URI fragment + kPointerParseErrorCharacterMustPercentEncode //!< A character must percent encoded in URI fragment +}; + +/////////////////////////////////////////////////////////////////////////////// +// GenericPointer + +//! Represents a JSON Pointer. Use Pointer for UTF8 encoding and default allocator. +/*! + This class implements RFC 6901 "JavaScript Object Notation (JSON) Pointer" + (https://tools.ietf.org/html/rfc6901). + + A JSON pointer is for identifying a specific value in a JSON document + (GenericDocument). It can simplify coding of DOM tree manipulation, because it + can access multiple-level depth of DOM tree with single API call. + + After it parses a string representation (e.g. "/foo/0" or URI fragment + representation (e.g. "#/foo/0") into its internal representation (tokens), + it can be used to resolve a specific value in multiple documents, or sub-tree + of documents. + + Contrary to GenericValue, Pointer can be copy constructed and copy assigned. + Apart from assignment, a Pointer cannot be modified after construction. + + Although Pointer is very convenient, please aware that constructing Pointer + involves parsing and dynamic memory allocation. A special constructor with user- + supplied tokens eliminates these. + + GenericPointer depends on GenericDocument and GenericValue. + + \tparam ValueType The value type of the DOM tree. E.g. GenericValue > + \tparam Allocator The allocator type for allocating memory for internal representation. + + \note GenericPointer uses same encoding of ValueType. + However, Allocator of GenericPointer is independent of Allocator of Value. +*/ +template +class GenericPointer { +public: + typedef typename ValueType::EncodingType EncodingType; //!< Encoding type from Value + typedef typename ValueType::Ch Ch; //!< Character type from Value + + //! A token is the basic units of internal representation. + /*! + A JSON pointer string representation "/foo/123" is parsed to two tokens: + "foo" and 123. 123 will be represented in both numeric form and string form. + They are resolved according to the actual value type (object or array). + + For token that are not numbers, or the numeric value is out of bound + (greater than limits of SizeType), they are only treated as string form + (i.e. the token's index will be equal to kPointerInvalidIndex). + + This struct is public so that user can create a Pointer without parsing and + allocation, using a special constructor. + */ + struct Token { + const Ch* name; //!< Name of the token. It has null character at the end but it can contain null character. + SizeType length; //!< Length of the name. + SizeType index; //!< A valid array index, if it is not equal to kPointerInvalidIndex. + }; + + //!@name Constructors and destructor. + //@{ + + //! Default constructor. + GenericPointer(Allocator* allocator = 0) : allocator_(allocator), ownAllocator_(), nameBuffer_(), tokens_(), tokenCount_(), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) {} + + //! Constructor that parses a string or URI fragment representation. + /*! + \param source A null-terminated, string or URI fragment representation of JSON pointer. + \param allocator User supplied allocator for this pointer. If no allocator is provided, it creates a self-owned one. + */ + explicit GenericPointer(const Ch* source, Allocator* allocator = 0) : allocator_(allocator), ownAllocator_(), nameBuffer_(), tokens_(), tokenCount_(), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) { + Parse(source, internal::StrLen(source)); + } + +#if RAPIDJSON_HAS_STDSTRING + //! Constructor that parses a string or URI fragment representation. + /*! + \param source A string or URI fragment representation of JSON pointer. + \param allocator User supplied allocator for this pointer. If no allocator is provided, it creates a self-owned one. + \note Requires the definition of the preprocessor symbol \ref RAPIDJSON_HAS_STDSTRING. + */ + explicit GenericPointer(const std::basic_string& source, Allocator* allocator = 0) : allocator_(allocator), ownAllocator_(), nameBuffer_(), tokens_(), tokenCount_(), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) { + Parse(source.c_str(), source.size()); + } +#endif + + //! Constructor that parses a string or URI fragment representation, with length of the source string. + /*! + \param source A string or URI fragment representation of JSON pointer. + \param length Length of source. + \param allocator User supplied allocator for this pointer. If no allocator is provided, it creates a self-owned one. + \note Slightly faster than the overload without length. + */ + GenericPointer(const Ch* source, size_t length, Allocator* allocator = 0) : allocator_(allocator), ownAllocator_(), nameBuffer_(), tokens_(), tokenCount_(), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) { + Parse(source, length); + } + + //! Constructor with user-supplied tokens. + /*! + This constructor let user supplies const array of tokens. + This prevents the parsing process and eliminates allocation. + This is preferred for memory constrained environments. + + \param tokens An constant array of tokens representing the JSON pointer. + \param tokenCount Number of tokens. + + \b Example + \code + #define NAME(s) { s, sizeof(s) / sizeof(s[0]) - 1, kPointerInvalidIndex } + #define INDEX(i) { #i, sizeof(#i) - 1, i } + + static const Pointer::Token kTokens[] = { NAME("foo"), INDEX(123) }; + static const Pointer p(kTokens, sizeof(kTokens) / sizeof(kTokens[0])); + // Equivalent to static const Pointer p("/foo/123"); + + #undef NAME + #undef INDEX + \endcode + */ + GenericPointer(const Token* tokens, size_t tokenCount) : allocator_(), ownAllocator_(), nameBuffer_(), tokens_(const_cast(tokens)), tokenCount_(tokenCount), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) {} + + //! Copy constructor. + GenericPointer(const GenericPointer& rhs) : allocator_(rhs.allocator_), ownAllocator_(), nameBuffer_(), tokens_(), tokenCount_(), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) { + *this = rhs; + } + + //! Copy constructor. + GenericPointer(const GenericPointer& rhs, Allocator* allocator) : allocator_(allocator), ownAllocator_(), nameBuffer_(), tokens_(), tokenCount_(), parseErrorOffset_(), parseErrorCode_(kPointerParseErrorNone) { + *this = rhs; + } + + //! Destructor. + ~GenericPointer() { + if (nameBuffer_) // If user-supplied tokens constructor is used, nameBuffer_ is nullptr and tokens_ are not deallocated. + Allocator::Free(tokens_); + RAPIDJSON_DELETE(ownAllocator_); + } + + //! Assignment operator. + GenericPointer& operator=(const GenericPointer& rhs) { + if (this != &rhs) { + // Do not delete ownAllcator + if (nameBuffer_) + Allocator::Free(tokens_); + + tokenCount_ = rhs.tokenCount_; + parseErrorOffset_ = rhs.parseErrorOffset_; + parseErrorCode_ = rhs.parseErrorCode_; + + if (rhs.nameBuffer_) + CopyFromRaw(rhs); // Normally parsed tokens. + else { + tokens_ = rhs.tokens_; // User supplied const tokens. + nameBuffer_ = 0; + } + } + return *this; + } + + //! Swap the content of this pointer with an other. + /*! + \param other The pointer to swap with. + \note Constant complexity. + */ + GenericPointer& Swap(GenericPointer& other) RAPIDJSON_NOEXCEPT { + internal::Swap(allocator_, other.allocator_); + internal::Swap(ownAllocator_, other.ownAllocator_); + internal::Swap(nameBuffer_, other.nameBuffer_); + internal::Swap(tokens_, other.tokens_); + internal::Swap(tokenCount_, other.tokenCount_); + internal::Swap(parseErrorOffset_, other.parseErrorOffset_); + internal::Swap(parseErrorCode_, other.parseErrorCode_); + return *this; + } + + //! free-standing swap function helper + /*! + Helper function to enable support for common swap implementation pattern based on \c std::swap: + \code + void swap(MyClass& a, MyClass& b) { + using std::swap; + swap(a.pointer, b.pointer); + // ... + } + \endcode + \see Swap() + */ + friend inline void swap(GenericPointer& a, GenericPointer& b) RAPIDJSON_NOEXCEPT { a.Swap(b); } + + //@} + + //!@name Append token + //@{ + + //! Append a token and return a new Pointer + /*! + \param token Token to be appended. + \param allocator Allocator for the newly return Pointer. + \return A new Pointer with appended token. + */ + GenericPointer Append(const Token& token, Allocator* allocator = 0) const { + GenericPointer r; + r.allocator_ = allocator; + Ch *p = r.CopyFromRaw(*this, 1, token.length + 1); + std::memcpy(p, token.name, (token.length + 1) * sizeof(Ch)); + r.tokens_[tokenCount_].name = p; + r.tokens_[tokenCount_].length = token.length; + r.tokens_[tokenCount_].index = token.index; + return r; + } + + //! Append a name token with length, and return a new Pointer + /*! + \param name Name to be appended. + \param length Length of name. + \param allocator Allocator for the newly return Pointer. + \return A new Pointer with appended token. + */ + GenericPointer Append(const Ch* name, SizeType length, Allocator* allocator = 0) const { + Token token = { name, length, kPointerInvalidIndex }; + return Append(token, allocator); + } + + //! Append a name token without length, and return a new Pointer + /*! + \param name Name (const Ch*) to be appended. + \param allocator Allocator for the newly return Pointer. + \return A new Pointer with appended token. + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::NotExpr::Type, Ch> >), (GenericPointer)) + Append(T* name, Allocator* allocator = 0) const { + return Append(name, internal::StrLen(name), allocator); + } + +#if RAPIDJSON_HAS_STDSTRING + //! Append a name token, and return a new Pointer + /*! + \param name Name to be appended. + \param allocator Allocator for the newly return Pointer. + \return A new Pointer with appended token. + */ + GenericPointer Append(const std::basic_string& name, Allocator* allocator = 0) const { + return Append(name.c_str(), static_cast(name.size()), allocator); + } +#endif + + //! Append a index token, and return a new Pointer + /*! + \param index Index to be appended. + \param allocator Allocator for the newly return Pointer. + \return A new Pointer with appended token. + */ + GenericPointer Append(SizeType index, Allocator* allocator = 0) const { + char buffer[21]; + char* end = sizeof(SizeType) == 4 ? internal::u32toa(index, buffer) : internal::u64toa(index, buffer); + SizeType length = static_cast(end - buffer); + buffer[length] = '\0'; + + if (sizeof(Ch) == 1) { + Token token = { reinterpret_cast(buffer), length, index }; + return Append(token, allocator); + } + else { + Ch name[21]; + for (size_t i = 0; i <= length; i++) + name[i] = static_cast(buffer[i]); + Token token = { name, length, index }; + return Append(token, allocator); + } + } + + //! Append a token by value, and return a new Pointer + /*! + \param token token to be appended. + \param allocator Allocator for the newly return Pointer. + \return A new Pointer with appended token. + */ + GenericPointer Append(const ValueType& token, Allocator* allocator = 0) const { + if (token.IsString()) + return Append(token.GetString(), token.GetStringLength(), allocator); + else { + RAPIDJSON_ASSERT(token.IsUint64()); + RAPIDJSON_ASSERT(token.GetUint64() <= SizeType(~0)); + return Append(static_cast(token.GetUint64()), allocator); + } + } + + //!@name Handling Parse Error + //@{ + + //! Check whether this is a valid pointer. + bool IsValid() const { return parseErrorCode_ == kPointerParseErrorNone; } + + //! Get the parsing error offset in code unit. + size_t GetParseErrorOffset() const { return parseErrorOffset_; } + + //! Get the parsing error code. + PointerParseErrorCode GetParseErrorCode() const { return parseErrorCode_; } + + //@} + + //! Get the allocator of this pointer. + Allocator& GetAllocator() { return *allocator_; } + + //!@name Tokens + //@{ + + //! Get the token array (const version only). + const Token* GetTokens() const { return tokens_; } + + //! Get the number of tokens. + size_t GetTokenCount() const { return tokenCount_; } + + //@} + + //!@name Equality/inequality operators + //@{ + + //! Equality operator. + /*! + \note When any pointers are invalid, always returns false. + */ + bool operator==(const GenericPointer& rhs) const { + if (!IsValid() || !rhs.IsValid() || tokenCount_ != rhs.tokenCount_) + return false; + + for (size_t i = 0; i < tokenCount_; i++) { + if (tokens_[i].index != rhs.tokens_[i].index || + tokens_[i].length != rhs.tokens_[i].length || + (tokens_[i].length != 0 && std::memcmp(tokens_[i].name, rhs.tokens_[i].name, sizeof(Ch)* tokens_[i].length) != 0)) + { + return false; + } + } + + return true; + } + + //! Inequality operator. + /*! + \note When any pointers are invalid, always returns true. + */ + bool operator!=(const GenericPointer& rhs) const { return !(*this == rhs); } + + //! Less than operator. + /*! + \note Invalid pointers are always greater than valid ones. + */ + bool operator<(const GenericPointer& rhs) const { + if (!IsValid()) + return false; + if (!rhs.IsValid()) + return true; + + if (tokenCount_ != rhs.tokenCount_) + return tokenCount_ < rhs.tokenCount_; + + for (size_t i = 0; i < tokenCount_; i++) { + if (tokens_[i].index != rhs.tokens_[i].index) + return tokens_[i].index < rhs.tokens_[i].index; + + if (tokens_[i].length != rhs.tokens_[i].length) + return tokens_[i].length < rhs.tokens_[i].length; + + if (int cmp = std::memcmp(tokens_[i].name, rhs.tokens_[i].name, sizeof(Ch) * tokens_[i].length)) + return cmp < 0; + } + + return false; + } + + //@} + + //!@name Stringify + //@{ + + //! Stringify the pointer into string representation. + /*! + \tparam OutputStream Type of output stream. + \param os The output stream. + */ + template + bool Stringify(OutputStream& os) const { + return Stringify(os); + } + + //! Stringify the pointer into URI fragment representation. + /*! + \tparam OutputStream Type of output stream. + \param os The output stream. + */ + template + bool StringifyUriFragment(OutputStream& os) const { + return Stringify(os); + } + + //@} + + //!@name Create value + //@{ + + //! Create a value in a subtree. + /*! + If the value is not exist, it creates all parent values and a JSON Null value. + So it always succeed and return the newly created or existing value. + + Remind that it may change types of parents according to tokens, so it + potentially removes previously stored values. For example, if a document + was an array, and "/foo" is used to create a value, then the document + will be changed to an object, and all existing array elements are lost. + + \param root Root value of a DOM subtree to be resolved. It can be any value other than document root. + \param allocator Allocator for creating the values if the specified value or its parents are not exist. + \param alreadyExist If non-null, it stores whether the resolved value is already exist. + \return The resolved newly created (a JSON Null value), or already exists value. + */ + ValueType& Create(ValueType& root, typename ValueType::AllocatorType& allocator, bool* alreadyExist = 0) const { + RAPIDJSON_ASSERT(IsValid()); + ValueType* v = &root; + bool exist = true; + for (const Token *t = tokens_; t != tokens_ + tokenCount_; ++t) { + if (v->IsArray() && t->name[0] == '-' && t->length == 1) { + v->PushBack(ValueType().Move(), allocator); + v = &((*v)[v->Size() - 1]); + exist = false; + } + else { + if (t->index == kPointerInvalidIndex) { // must be object name + if (!v->IsObject()) + v->SetObject(); // Change to Object + } + else { // object name or array index + if (!v->IsArray() && !v->IsObject()) + v->SetArray(); // Change to Array + } + + if (v->IsArray()) { + if (t->index >= v->Size()) { + v->Reserve(t->index + 1, allocator); + while (t->index >= v->Size()) + v->PushBack(ValueType().Move(), allocator); + exist = false; + } + v = &((*v)[t->index]); + } + else { + typename ValueType::MemberIterator m = v->FindMember(GenericValue(GenericStringRef(t->name, t->length))); + if (m == v->MemberEnd()) { + v->AddMember(ValueType(t->name, t->length, allocator).Move(), ValueType().Move(), allocator); + m = v->MemberEnd(); + v = &(--m)->value; // Assumes AddMember() appends at the end + exist = false; + } + else + v = &m->value; + } + } + } + + if (alreadyExist) + *alreadyExist = exist; + + return *v; + } + + //! Creates a value in a document. + /*! + \param document A document to be resolved. + \param alreadyExist If non-null, it stores whether the resolved value is already exist. + \return The resolved newly created, or already exists value. + */ + template + ValueType& Create(GenericDocument& document, bool* alreadyExist = 0) const { + return Create(document, document.GetAllocator(), alreadyExist); + } + + //@} + + //!@name Query value + //@{ + + //! Query a value in a subtree. + /*! + \param root Root value of a DOM sub-tree to be resolved. It can be any value other than document root. + \param unresolvedTokenIndex If the pointer cannot resolve a token in the pointer, this parameter can obtain the index of unresolved token. + \return Pointer to the value if it can be resolved. Otherwise null. + + \note + There are only 3 situations when a value cannot be resolved: + 1. A value in the path is not an array nor object. + 2. An object value does not contain the token. + 3. A token is out of range of an array value. + + Use unresolvedTokenIndex to retrieve the token index. + */ + ValueType* Get(ValueType& root, size_t* unresolvedTokenIndex = 0) const { + RAPIDJSON_ASSERT(IsValid()); + ValueType* v = &root; + for (const Token *t = tokens_; t != tokens_ + tokenCount_; ++t) { + switch (v->GetType()) { + case kObjectType: + { + typename ValueType::MemberIterator m = v->FindMember(GenericValue(GenericStringRef(t->name, t->length))); + if (m == v->MemberEnd()) + break; + v = &m->value; + } + continue; + case kArrayType: + if (t->index == kPointerInvalidIndex || t->index >= v->Size()) + break; + v = &((*v)[t->index]); + continue; + default: + break; + } + + // Error: unresolved token + if (unresolvedTokenIndex) + *unresolvedTokenIndex = static_cast(t - tokens_); + return 0; + } + return v; + } + + //! Query a const value in a const subtree. + /*! + \param root Root value of a DOM sub-tree to be resolved. It can be any value other than document root. + \return Pointer to the value if it can be resolved. Otherwise null. + */ + const ValueType* Get(const ValueType& root, size_t* unresolvedTokenIndex = 0) const { + return Get(const_cast(root), unresolvedTokenIndex); + } + + //@} + + //!@name Query a value with default + //@{ + + //! Query a value in a subtree with default value. + /*! + Similar to Get(), but if the specified value do not exists, it creates all parents and clone the default value. + So that this function always succeed. + + \param root Root value of a DOM sub-tree to be resolved. It can be any value other than document root. + \param defaultValue Default value to be cloned if the value was not exists. + \param allocator Allocator for creating the values if the specified value or its parents are not exist. + \see Create() + */ + ValueType& GetWithDefault(ValueType& root, const ValueType& defaultValue, typename ValueType::AllocatorType& allocator) const { + bool alreadyExist; + ValueType& v = Create(root, allocator, &alreadyExist); + return alreadyExist ? v : v.CopyFrom(defaultValue, allocator); + } + + //! Query a value in a subtree with default null-terminated string. + ValueType& GetWithDefault(ValueType& root, const Ch* defaultValue, typename ValueType::AllocatorType& allocator) const { + bool alreadyExist; + ValueType& v = Create(root, allocator, &alreadyExist); + return alreadyExist ? v : v.SetString(defaultValue, allocator); + } + +#if RAPIDJSON_HAS_STDSTRING + //! Query a value in a subtree with default std::basic_string. + ValueType& GetWithDefault(ValueType& root, const std::basic_string& defaultValue, typename ValueType::AllocatorType& allocator) const { + bool alreadyExist; + ValueType& v = Create(root, allocator, &alreadyExist); + return alreadyExist ? v : v.SetString(defaultValue, allocator); + } +#endif + + //! Query a value in a subtree with default primitive value. + /*! + \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t, \c bool + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (ValueType&)) + GetWithDefault(ValueType& root, T defaultValue, typename ValueType::AllocatorType& allocator) const { + return GetWithDefault(root, ValueType(defaultValue).Move(), allocator); + } + + //! Query a value in a document with default value. + template + ValueType& GetWithDefault(GenericDocument& document, const ValueType& defaultValue) const { + return GetWithDefault(document, defaultValue, document.GetAllocator()); + } + + //! Query a value in a document with default null-terminated string. + template + ValueType& GetWithDefault(GenericDocument& document, const Ch* defaultValue) const { + return GetWithDefault(document, defaultValue, document.GetAllocator()); + } + +#if RAPIDJSON_HAS_STDSTRING + //! Query a value in a document with default std::basic_string. + template + ValueType& GetWithDefault(GenericDocument& document, const std::basic_string& defaultValue) const { + return GetWithDefault(document, defaultValue, document.GetAllocator()); + } +#endif + + //! Query a value in a document with default primitive value. + /*! + \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t, \c bool + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (ValueType&)) + GetWithDefault(GenericDocument& document, T defaultValue) const { + return GetWithDefault(document, defaultValue, document.GetAllocator()); + } + + //@} + + //!@name Set a value + //@{ + + //! Set a value in a subtree, with move semantics. + /*! + It creates all parents if they are not exist or types are different to the tokens. + So this function always succeeds but potentially remove existing values. + + \param root Root value of a DOM sub-tree to be resolved. It can be any value other than document root. + \param value Value to be set. + \param allocator Allocator for creating the values if the specified value or its parents are not exist. + \see Create() + */ + ValueType& Set(ValueType& root, ValueType& value, typename ValueType::AllocatorType& allocator) const { + return Create(root, allocator) = value; + } + + //! Set a value in a subtree, with copy semantics. + ValueType& Set(ValueType& root, const ValueType& value, typename ValueType::AllocatorType& allocator) const { + return Create(root, allocator).CopyFrom(value, allocator); + } + + //! Set a null-terminated string in a subtree. + ValueType& Set(ValueType& root, const Ch* value, typename ValueType::AllocatorType& allocator) const { + return Create(root, allocator) = ValueType(value, allocator).Move(); + } + +#if RAPIDJSON_HAS_STDSTRING + //! Set a std::basic_string in a subtree. + ValueType& Set(ValueType& root, const std::basic_string& value, typename ValueType::AllocatorType& allocator) const { + return Create(root, allocator) = ValueType(value, allocator).Move(); + } +#endif + + //! Set a primitive value in a subtree. + /*! + \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t, \c bool + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (ValueType&)) + Set(ValueType& root, T value, typename ValueType::AllocatorType& allocator) const { + return Create(root, allocator) = ValueType(value).Move(); + } + + //! Set a value in a document, with move semantics. + template + ValueType& Set(GenericDocument& document, ValueType& value) const { + return Create(document) = value; + } + + //! Set a value in a document, with copy semantics. + template + ValueType& Set(GenericDocument& document, const ValueType& value) const { + return Create(document).CopyFrom(value, document.GetAllocator()); + } + + //! Set a null-terminated string in a document. + template + ValueType& Set(GenericDocument& document, const Ch* value) const { + return Create(document) = ValueType(value, document.GetAllocator()).Move(); + } + +#if RAPIDJSON_HAS_STDSTRING + //! Sets a std::basic_string in a document. + template + ValueType& Set(GenericDocument& document, const std::basic_string& value) const { + return Create(document) = ValueType(value, document.GetAllocator()).Move(); + } +#endif + + //! Set a primitive value in a document. + /*! + \tparam T Either \ref Type, \c int, \c unsigned, \c int64_t, \c uint64_t, \c bool + */ + template + RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (ValueType&)) + Set(GenericDocument& document, T value) const { + return Create(document) = value; + } + + //@} + + //!@name Swap a value + //@{ + + //! Swap a value with a value in a subtree. + /*! + It creates all parents if they are not exist or types are different to the tokens. + So this function always succeeds but potentially remove existing values. + + \param root Root value of a DOM sub-tree to be resolved. It can be any value other than document root. + \param value Value to be swapped. + \param allocator Allocator for creating the values if the specified value or its parents are not exist. + \see Create() + */ + ValueType& Swap(ValueType& root, ValueType& value, typename ValueType::AllocatorType& allocator) const { + return Create(root, allocator).Swap(value); + } + + //! Swap a value with a value in a document. + template + ValueType& Swap(GenericDocument& document, ValueType& value) const { + return Create(document).Swap(value); + } + + //@} + + //! Erase a value in a subtree. + /*! + \param root Root value of a DOM sub-tree to be resolved. It can be any value other than document root. + \return Whether the resolved value is found and erased. + + \note Erasing with an empty pointer \c Pointer(""), i.e. the root, always fail and return false. + */ + bool Erase(ValueType& root) const { + RAPIDJSON_ASSERT(IsValid()); + if (tokenCount_ == 0) // Cannot erase the root + return false; + + ValueType* v = &root; + const Token* last = tokens_ + (tokenCount_ - 1); + for (const Token *t = tokens_; t != last; ++t) { + switch (v->GetType()) { + case kObjectType: + { + typename ValueType::MemberIterator m = v->FindMember(GenericValue(GenericStringRef(t->name, t->length))); + if (m == v->MemberEnd()) + return false; + v = &m->value; + } + break; + case kArrayType: + if (t->index == kPointerInvalidIndex || t->index >= v->Size()) + return false; + v = &((*v)[t->index]); + break; + default: + return false; + } + } + + switch (v->GetType()) { + case kObjectType: + return v->EraseMember(GenericStringRef(last->name, last->length)); + case kArrayType: + if (last->index == kPointerInvalidIndex || last->index >= v->Size()) + return false; + v->Erase(v->Begin() + last->index); + return true; + default: + return false; + } + } + +private: + //! Clone the content from rhs to this. + /*! + \param rhs Source pointer. + \param extraToken Extra tokens to be allocated. + \param extraNameBufferSize Extra name buffer size (in number of Ch) to be allocated. + \return Start of non-occupied name buffer, for storing extra names. + */ + Ch* CopyFromRaw(const GenericPointer& rhs, size_t extraToken = 0, size_t extraNameBufferSize = 0) { + if (!allocator_) // allocator is independently owned. + ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)(); + + size_t nameBufferSize = rhs.tokenCount_; // null terminators for tokens + for (Token *t = rhs.tokens_; t != rhs.tokens_ + rhs.tokenCount_; ++t) + nameBufferSize += t->length; + + tokenCount_ = rhs.tokenCount_ + extraToken; + tokens_ = static_cast(allocator_->Malloc(tokenCount_ * sizeof(Token) + (nameBufferSize + extraNameBufferSize) * sizeof(Ch))); + nameBuffer_ = reinterpret_cast(tokens_ + tokenCount_); + if (rhs.tokenCount_ > 0) { + std::memcpy(tokens_, rhs.tokens_, rhs.tokenCount_ * sizeof(Token)); + } + if (nameBufferSize > 0) { + std::memcpy(nameBuffer_, rhs.nameBuffer_, nameBufferSize * sizeof(Ch)); + } + + // Adjust pointers to name buffer + std::ptrdiff_t diff = nameBuffer_ - rhs.nameBuffer_; + for (Token *t = tokens_; t != tokens_ + rhs.tokenCount_; ++t) + t->name += diff; + + return nameBuffer_ + nameBufferSize; + } + + //! Check whether a character should be percent-encoded. + /*! + According to RFC 3986 2.3 Unreserved Characters. + \param c The character (code unit) to be tested. + */ + bool NeedPercentEncode(Ch c) const { + return !((c >= '0' && c <= '9') || (c >= 'A' && c <='Z') || (c >= 'a' && c <= 'z') || c == '-' || c == '.' || c == '_' || c =='~'); + } + + //! Parse a JSON String or its URI fragment representation into tokens. +#ifndef __clang__ // -Wdocumentation + /*! + \param source Either a JSON Pointer string, or its URI fragment representation. Not need to be null terminated. + \param length Length of the source string. + \note Source cannot be JSON String Representation of JSON Pointer, e.g. In "/\u0000", \u0000 will not be unescaped. + */ +#endif + void Parse(const Ch* source, size_t length) { + RAPIDJSON_ASSERT(source != NULL); + RAPIDJSON_ASSERT(nameBuffer_ == 0); + RAPIDJSON_ASSERT(tokens_ == 0); + + // Create own allocator if user did not supply. + if (!allocator_) + ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)(); + + // Count number of '/' as tokenCount + tokenCount_ = 0; + for (const Ch* s = source; s != source + length; s++) + if (*s == '/') + tokenCount_++; + + Token* token = tokens_ = static_cast(allocator_->Malloc(tokenCount_ * sizeof(Token) + length * sizeof(Ch))); + Ch* name = nameBuffer_ = reinterpret_cast(tokens_ + tokenCount_); + size_t i = 0; + + // Detect if it is a URI fragment + bool uriFragment = false; + if (source[i] == '#') { + uriFragment = true; + i++; + } + + if (i != length && source[i] != '/') { + parseErrorCode_ = kPointerParseErrorTokenMustBeginWithSolidus; + goto error; + } + + while (i < length) { + RAPIDJSON_ASSERT(source[i] == '/'); + i++; // consumes '/' + + token->name = name; + bool isNumber = true; + + while (i < length && source[i] != '/') { + Ch c = source[i]; + if (uriFragment) { + // Decoding percent-encoding for URI fragment + if (c == '%') { + PercentDecodeStream is(&source[i], source + length); + GenericInsituStringStream os(name); + Ch* begin = os.PutBegin(); + if (!Transcoder, EncodingType>().Validate(is, os) || !is.IsValid()) { + parseErrorCode_ = kPointerParseErrorInvalidPercentEncoding; + goto error; + } + size_t len = os.PutEnd(begin); + i += is.Tell() - 1; + if (len == 1) + c = *name; + else { + name += len; + isNumber = false; + i++; + continue; + } + } + else if (NeedPercentEncode(c)) { + parseErrorCode_ = kPointerParseErrorCharacterMustPercentEncode; + goto error; + } + } + + i++; + + // Escaping "~0" -> '~', "~1" -> '/' + if (c == '~') { + if (i < length) { + c = source[i]; + if (c == '0') c = '~'; + else if (c == '1') c = '/'; + else { + parseErrorCode_ = kPointerParseErrorInvalidEscape; + goto error; + } + i++; + } + else { + parseErrorCode_ = kPointerParseErrorInvalidEscape; + goto error; + } + } + + // First check for index: all of characters are digit + if (c < '0' || c > '9') + isNumber = false; + + *name++ = c; + } + token->length = static_cast(name - token->name); + if (token->length == 0) + isNumber = false; + *name++ = '\0'; // Null terminator + + // Second check for index: more than one digit cannot have leading zero + if (isNumber && token->length > 1 && token->name[0] == '0') + isNumber = false; + + // String to SizeType conversion + SizeType n = 0; + if (isNumber) { + for (size_t j = 0; j < token->length; j++) { + SizeType m = n * 10 + static_cast(token->name[j] - '0'); + if (m < n) { // overflow detection + isNumber = false; + break; + } + n = m; + } + } + + token->index = isNumber ? n : kPointerInvalidIndex; + token++; + } + + RAPIDJSON_ASSERT(name <= nameBuffer_ + length); // Should not overflow buffer + parseErrorCode_ = kPointerParseErrorNone; + return; + + error: + Allocator::Free(tokens_); + nameBuffer_ = 0; + tokens_ = 0; + tokenCount_ = 0; + parseErrorOffset_ = i; + return; + } + + //! Stringify to string or URI fragment representation. + /*! + \tparam uriFragment True for stringifying to URI fragment representation. False for string representation. + \tparam OutputStream type of output stream. + \param os The output stream. + */ + template + bool Stringify(OutputStream& os) const { + RAPIDJSON_ASSERT(IsValid()); + + if (uriFragment) + os.Put('#'); + + for (Token *t = tokens_; t != tokens_ + tokenCount_; ++t) { + os.Put('/'); + for (size_t j = 0; j < t->length; j++) { + Ch c = t->name[j]; + if (c == '~') { + os.Put('~'); + os.Put('0'); + } + else if (c == '/') { + os.Put('~'); + os.Put('1'); + } + else if (uriFragment && NeedPercentEncode(c)) { + // Transcode to UTF8 sequence + GenericStringStream source(&t->name[j]); + PercentEncodeStream target(os); + if (!Transcoder >().Validate(source, target)) + return false; + j += source.Tell() - 1; + } + else + os.Put(c); + } + } + return true; + } + + //! A helper stream for decoding a percent-encoded sequence into code unit. + /*! + This stream decodes %XY triplet into code unit (0-255). + If it encounters invalid characters, it sets output code unit as 0 and + mark invalid, and to be checked by IsValid(). + */ + class PercentDecodeStream { + public: + typedef typename ValueType::Ch Ch; + + //! Constructor + /*! + \param source Start of the stream + \param end Past-the-end of the stream. + */ + PercentDecodeStream(const Ch* source, const Ch* end) : src_(source), head_(source), end_(end), valid_(true) {} + + Ch Take() { + if (*src_ != '%' || src_ + 3 > end_) { // %XY triplet + valid_ = false; + return 0; + } + src_++; + Ch c = 0; + for (int j = 0; j < 2; j++) { + c = static_cast(c << 4); + Ch h = *src_; + if (h >= '0' && h <= '9') c = static_cast(c + h - '0'); + else if (h >= 'A' && h <= 'F') c = static_cast(c + h - 'A' + 10); + else if (h >= 'a' && h <= 'f') c = static_cast(c + h - 'a' + 10); + else { + valid_ = false; + return 0; + } + src_++; + } + return c; + } + + size_t Tell() const { return static_cast(src_ - head_); } + bool IsValid() const { return valid_; } + + private: + const Ch* src_; //!< Current read position. + const Ch* head_; //!< Original head of the string. + const Ch* end_; //!< Past-the-end position. + bool valid_; //!< Whether the parsing is valid. + }; + + //! A helper stream to encode character (UTF-8 code unit) into percent-encoded sequence. + template + class PercentEncodeStream { + public: + PercentEncodeStream(OutputStream& os) : os_(os) {} + void Put(char c) { // UTF-8 must be byte + unsigned char u = static_cast(c); + static const char hexDigits[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; + os_.Put('%'); + os_.Put(static_cast(hexDigits[u >> 4])); + os_.Put(static_cast(hexDigits[u & 15])); + } + private: + OutputStream& os_; + }; + + Allocator* allocator_; //!< The current allocator. It is either user-supplied or equal to ownAllocator_. + Allocator* ownAllocator_; //!< Allocator owned by this Pointer. + Ch* nameBuffer_; //!< A buffer containing all names in tokens. + Token* tokens_; //!< A list of tokens. + size_t tokenCount_; //!< Number of tokens in tokens_. + size_t parseErrorOffset_; //!< Offset in code unit when parsing fail. + PointerParseErrorCode parseErrorCode_; //!< Parsing error code. +}; + +//! GenericPointer for Value (UTF-8, default allocator). +typedef GenericPointer Pointer; + +//!@name Helper functions for GenericPointer +//@{ + +////////////////////////////////////////////////////////////////////////////// + +template +typename T::ValueType& CreateValueByPointer(T& root, const GenericPointer& pointer, typename T::AllocatorType& a) { + return pointer.Create(root, a); +} + +template +typename T::ValueType& CreateValueByPointer(T& root, const CharType(&source)[N], typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).Create(root, a); +} + +// No allocator parameter + +template +typename DocumentType::ValueType& CreateValueByPointer(DocumentType& document, const GenericPointer& pointer) { + return pointer.Create(document); +} + +template +typename DocumentType::ValueType& CreateValueByPointer(DocumentType& document, const CharType(&source)[N]) { + return GenericPointer(source, N - 1).Create(document); +} + +////////////////////////////////////////////////////////////////////////////// + +template +typename T::ValueType* GetValueByPointer(T& root, const GenericPointer& pointer, size_t* unresolvedTokenIndex = 0) { + return pointer.Get(root, unresolvedTokenIndex); +} + +template +const typename T::ValueType* GetValueByPointer(const T& root, const GenericPointer& pointer, size_t* unresolvedTokenIndex = 0) { + return pointer.Get(root, unresolvedTokenIndex); +} + +template +typename T::ValueType* GetValueByPointer(T& root, const CharType (&source)[N], size_t* unresolvedTokenIndex = 0) { + return GenericPointer(source, N - 1).Get(root, unresolvedTokenIndex); +} + +template +const typename T::ValueType* GetValueByPointer(const T& root, const CharType(&source)[N], size_t* unresolvedTokenIndex = 0) { + return GenericPointer(source, N - 1).Get(root, unresolvedTokenIndex); +} + +////////////////////////////////////////////////////////////////////////////// + +template +typename T::ValueType& GetValueByPointerWithDefault(T& root, const GenericPointer& pointer, const typename T::ValueType& defaultValue, typename T::AllocatorType& a) { + return pointer.GetWithDefault(root, defaultValue, a); +} + +template +typename T::ValueType& GetValueByPointerWithDefault(T& root, const GenericPointer& pointer, const typename T::Ch* defaultValue, typename T::AllocatorType& a) { + return pointer.GetWithDefault(root, defaultValue, a); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename T::ValueType& GetValueByPointerWithDefault(T& root, const GenericPointer& pointer, const std::basic_string& defaultValue, typename T::AllocatorType& a) { + return pointer.GetWithDefault(root, defaultValue, a); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename T::ValueType&)) +GetValueByPointerWithDefault(T& root, const GenericPointer& pointer, T2 defaultValue, typename T::AllocatorType& a) { + return pointer.GetWithDefault(root, defaultValue, a); +} + +template +typename T::ValueType& GetValueByPointerWithDefault(T& root, const CharType(&source)[N], const typename T::ValueType& defaultValue, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).GetWithDefault(root, defaultValue, a); +} + +template +typename T::ValueType& GetValueByPointerWithDefault(T& root, const CharType(&source)[N], const typename T::Ch* defaultValue, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).GetWithDefault(root, defaultValue, a); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename T::ValueType& GetValueByPointerWithDefault(T& root, const CharType(&source)[N], const std::basic_string& defaultValue, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).GetWithDefault(root, defaultValue, a); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename T::ValueType&)) +GetValueByPointerWithDefault(T& root, const CharType(&source)[N], T2 defaultValue, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).GetWithDefault(root, defaultValue, a); +} + +// No allocator parameter + +template +typename DocumentType::ValueType& GetValueByPointerWithDefault(DocumentType& document, const GenericPointer& pointer, const typename DocumentType::ValueType& defaultValue) { + return pointer.GetWithDefault(document, defaultValue); +} + +template +typename DocumentType::ValueType& GetValueByPointerWithDefault(DocumentType& document, const GenericPointer& pointer, const typename DocumentType::Ch* defaultValue) { + return pointer.GetWithDefault(document, defaultValue); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename DocumentType::ValueType& GetValueByPointerWithDefault(DocumentType& document, const GenericPointer& pointer, const std::basic_string& defaultValue) { + return pointer.GetWithDefault(document, defaultValue); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename DocumentType::ValueType&)) +GetValueByPointerWithDefault(DocumentType& document, const GenericPointer& pointer, T2 defaultValue) { + return pointer.GetWithDefault(document, defaultValue); +} + +template +typename DocumentType::ValueType& GetValueByPointerWithDefault(DocumentType& document, const CharType(&source)[N], const typename DocumentType::ValueType& defaultValue) { + return GenericPointer(source, N - 1).GetWithDefault(document, defaultValue); +} + +template +typename DocumentType::ValueType& GetValueByPointerWithDefault(DocumentType& document, const CharType(&source)[N], const typename DocumentType::Ch* defaultValue) { + return GenericPointer(source, N - 1).GetWithDefault(document, defaultValue); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename DocumentType::ValueType& GetValueByPointerWithDefault(DocumentType& document, const CharType(&source)[N], const std::basic_string& defaultValue) { + return GenericPointer(source, N - 1).GetWithDefault(document, defaultValue); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename DocumentType::ValueType&)) +GetValueByPointerWithDefault(DocumentType& document, const CharType(&source)[N], T2 defaultValue) { + return GenericPointer(source, N - 1).GetWithDefault(document, defaultValue); +} + +////////////////////////////////////////////////////////////////////////////// + +template +typename T::ValueType& SetValueByPointer(T& root, const GenericPointer& pointer, typename T::ValueType& value, typename T::AllocatorType& a) { + return pointer.Set(root, value, a); +} + +template +typename T::ValueType& SetValueByPointer(T& root, const GenericPointer& pointer, const typename T::ValueType& value, typename T::AllocatorType& a) { + return pointer.Set(root, value, a); +} + +template +typename T::ValueType& SetValueByPointer(T& root, const GenericPointer& pointer, const typename T::Ch* value, typename T::AllocatorType& a) { + return pointer.Set(root, value, a); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename T::ValueType& SetValueByPointer(T& root, const GenericPointer& pointer, const std::basic_string& value, typename T::AllocatorType& a) { + return pointer.Set(root, value, a); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename T::ValueType&)) +SetValueByPointer(T& root, const GenericPointer& pointer, T2 value, typename T::AllocatorType& a) { + return pointer.Set(root, value, a); +} + +template +typename T::ValueType& SetValueByPointer(T& root, const CharType(&source)[N], typename T::ValueType& value, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).Set(root, value, a); +} + +template +typename T::ValueType& SetValueByPointer(T& root, const CharType(&source)[N], const typename T::ValueType& value, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).Set(root, value, a); +} + +template +typename T::ValueType& SetValueByPointer(T& root, const CharType(&source)[N], const typename T::Ch* value, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).Set(root, value, a); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename T::ValueType& SetValueByPointer(T& root, const CharType(&source)[N], const std::basic_string& value, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).Set(root, value, a); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename T::ValueType&)) +SetValueByPointer(T& root, const CharType(&source)[N], T2 value, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).Set(root, value, a); +} + +// No allocator parameter + +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const GenericPointer& pointer, typename DocumentType::ValueType& value) { + return pointer.Set(document, value); +} + +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const GenericPointer& pointer, const typename DocumentType::ValueType& value) { + return pointer.Set(document, value); +} + +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const GenericPointer& pointer, const typename DocumentType::Ch* value) { + return pointer.Set(document, value); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const GenericPointer& pointer, const std::basic_string& value) { + return pointer.Set(document, value); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename DocumentType::ValueType&)) +SetValueByPointer(DocumentType& document, const GenericPointer& pointer, T2 value) { + return pointer.Set(document, value); +} + +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const CharType(&source)[N], typename DocumentType::ValueType& value) { + return GenericPointer(source, N - 1).Set(document, value); +} + +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const CharType(&source)[N], const typename DocumentType::ValueType& value) { + return GenericPointer(source, N - 1).Set(document, value); +} + +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const CharType(&source)[N], const typename DocumentType::Ch* value) { + return GenericPointer(source, N - 1).Set(document, value); +} + +#if RAPIDJSON_HAS_STDSTRING +template +typename DocumentType::ValueType& SetValueByPointer(DocumentType& document, const CharType(&source)[N], const std::basic_string& value) { + return GenericPointer(source, N - 1).Set(document, value); +} +#endif + +template +RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr, internal::IsGenericValue >), (typename DocumentType::ValueType&)) +SetValueByPointer(DocumentType& document, const CharType(&source)[N], T2 value) { + return GenericPointer(source, N - 1).Set(document, value); +} + +////////////////////////////////////////////////////////////////////////////// + +template +typename T::ValueType& SwapValueByPointer(T& root, const GenericPointer& pointer, typename T::ValueType& value, typename T::AllocatorType& a) { + return pointer.Swap(root, value, a); +} + +template +typename T::ValueType& SwapValueByPointer(T& root, const CharType(&source)[N], typename T::ValueType& value, typename T::AllocatorType& a) { + return GenericPointer(source, N - 1).Swap(root, value, a); +} + +template +typename DocumentType::ValueType& SwapValueByPointer(DocumentType& document, const GenericPointer& pointer, typename DocumentType::ValueType& value) { + return pointer.Swap(document, value); +} + +template +typename DocumentType::ValueType& SwapValueByPointer(DocumentType& document, const CharType(&source)[N], typename DocumentType::ValueType& value) { + return GenericPointer(source, N - 1).Swap(document, value); +} + +////////////////////////////////////////////////////////////////////////////// + +template +bool EraseValueByPointer(T& root, const GenericPointer& pointer) { + return pointer.Erase(root); +} + +template +bool EraseValueByPointer(T& root, const CharType(&source)[N]) { + return GenericPointer(source, N - 1).Erase(root); +} + +//@} + +RAPIDJSON_NAMESPACE_END + +#if defined(__clang__) || defined(_MSC_VER) +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_POINTER_H_ diff --git a/C++Verifier/src/rapidjson/prettywriter.h b/C++Verifier/src/rapidjson/prettywriter.h new file mode 100644 index 0000000..94eeb69 --- /dev/null +++ b/C++Verifier/src/rapidjson/prettywriter.h @@ -0,0 +1,277 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_PRETTYWRITER_H_ +#define RAPIDJSON_PRETTYWRITER_H_ + +#include "writer.h" + +#ifdef __GNUC__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +#endif + +#if defined(__clang__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(c++98-compat) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Combination of PrettyWriter format flags. +/*! \see PrettyWriter::SetFormatOptions + */ +enum PrettyFormatOptions { + kFormatDefault = 0, //!< Default pretty formatting. + kFormatSingleLineArray = 1 //!< Format arrays on a single line. +}; + +//! Writer with indentation and spacing. +/*! + \tparam OutputStream Type of output os. + \tparam SourceEncoding Encoding of source string. + \tparam TargetEncoding Encoding of output stream. + \tparam StackAllocator Type of allocator for allocating memory of stack. +*/ +template, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags> +class PrettyWriter : public Writer { +public: + typedef Writer Base; + typedef typename Base::Ch Ch; + + //! Constructor + /*! \param os Output stream. + \param allocator User supplied allocator. If it is null, it will create a private one. + \param levelDepth Initial capacity of stack. + */ + explicit PrettyWriter(OutputStream& os, StackAllocator* allocator = 0, size_t levelDepth = Base::kDefaultLevelDepth) : + Base(os, allocator, levelDepth), indentChar_(' '), indentCharCount_(4), formatOptions_(kFormatDefault) {} + + + explicit PrettyWriter(StackAllocator* allocator = 0, size_t levelDepth = Base::kDefaultLevelDepth) : + Base(allocator, levelDepth), indentChar_(' '), indentCharCount_(4), formatOptions_(kFormatDefault) {} + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + PrettyWriter(PrettyWriter&& rhs) : + Base(std::forward(rhs)), indentChar_(rhs.indentChar_), indentCharCount_(rhs.indentCharCount_), formatOptions_(rhs.formatOptions_) {} +#endif + + //! Set custom indentation. + /*! \param indentChar Character for indentation. Must be whitespace character (' ', '\\t', '\\n', '\\r'). + \param indentCharCount Number of indent characters for each indentation level. + \note The default indentation is 4 spaces. + */ + PrettyWriter& SetIndent(Ch indentChar, unsigned indentCharCount) { + RAPIDJSON_ASSERT(indentChar == ' ' || indentChar == '\t' || indentChar == '\n' || indentChar == '\r'); + indentChar_ = indentChar; + indentCharCount_ = indentCharCount; + return *this; + } + + //! Set pretty writer formatting options. + /*! \param options Formatting options. + */ + PrettyWriter& SetFormatOptions(PrettyFormatOptions options) { + formatOptions_ = options; + return *this; + } + + /*! @name Implementation of Handler + \see Handler + */ + //@{ + + bool Null() { PrettyPrefix(kNullType); return Base::EndValue(Base::WriteNull()); } + bool Bool(bool b) { PrettyPrefix(b ? kTrueType : kFalseType); return Base::EndValue(Base::WriteBool(b)); } + bool Int(int i) { PrettyPrefix(kNumberType); return Base::EndValue(Base::WriteInt(i)); } + bool Uint(unsigned u) { PrettyPrefix(kNumberType); return Base::EndValue(Base::WriteUint(u)); } + bool Int64(int64_t i64) { PrettyPrefix(kNumberType); return Base::EndValue(Base::WriteInt64(i64)); } + bool Uint64(uint64_t u64) { PrettyPrefix(kNumberType); return Base::EndValue(Base::WriteUint64(u64)); } + bool Double(double d) { PrettyPrefix(kNumberType); return Base::EndValue(Base::WriteDouble(d)); } + + bool RawNumber(const Ch* str, SizeType length, bool copy = false) { + RAPIDJSON_ASSERT(str != 0); + (void)copy; + PrettyPrefix(kNumberType); + return Base::EndValue(Base::WriteString(str, length)); + } + + bool String(const Ch* str, SizeType length, bool copy = false) { + RAPIDJSON_ASSERT(str != 0); + (void)copy; + PrettyPrefix(kStringType); + return Base::EndValue(Base::WriteString(str, length)); + } + +#if RAPIDJSON_HAS_STDSTRING + bool String(const std::basic_string& str) { + return String(str.data(), SizeType(str.size())); + } +#endif + + bool StartObject() { + PrettyPrefix(kObjectType); + new (Base::level_stack_.template Push()) typename Base::Level(false); + return Base::WriteStartObject(); + } + + bool Key(const Ch* str, SizeType length, bool copy = false) { return String(str, length, copy); } + +#if RAPIDJSON_HAS_STDSTRING + bool Key(const std::basic_string& str) { + return Key(str.data(), SizeType(str.size())); + } +#endif + + bool EndObject(SizeType memberCount = 0) { + (void)memberCount; + RAPIDJSON_ASSERT(Base::level_stack_.GetSize() >= sizeof(typename Base::Level)); // not inside an Object + RAPIDJSON_ASSERT(!Base::level_stack_.template Top()->inArray); // currently inside an Array, not Object + RAPIDJSON_ASSERT(0 == Base::level_stack_.template Top()->valueCount % 2); // Object has a Key without a Value + + bool empty = Base::level_stack_.template Pop(1)->valueCount == 0; + + if (!empty) { + Base::os_->Put('\n'); + WriteIndent(); + } + bool ret = Base::EndValue(Base::WriteEndObject()); + (void)ret; + RAPIDJSON_ASSERT(ret == true); + if (Base::level_stack_.Empty()) // end of json text + Base::Flush(); + return true; + } + + bool StartArray() { + PrettyPrefix(kArrayType); + new (Base::level_stack_.template Push()) typename Base::Level(true); + return Base::WriteStartArray(); + } + + bool EndArray(SizeType memberCount = 0) { + (void)memberCount; + RAPIDJSON_ASSERT(Base::level_stack_.GetSize() >= sizeof(typename Base::Level)); + RAPIDJSON_ASSERT(Base::level_stack_.template Top()->inArray); + bool empty = Base::level_stack_.template Pop(1)->valueCount == 0; + + if (!empty && !(formatOptions_ & kFormatSingleLineArray)) { + Base::os_->Put('\n'); + WriteIndent(); + } + bool ret = Base::EndValue(Base::WriteEndArray()); + (void)ret; + RAPIDJSON_ASSERT(ret == true); + if (Base::level_stack_.Empty()) // end of json text + Base::Flush(); + return true; + } + + //@} + + /*! @name Convenience extensions */ + //@{ + + //! Simpler but slower overload. + bool String(const Ch* str) { return String(str, internal::StrLen(str)); } + bool Key(const Ch* str) { return Key(str, internal::StrLen(str)); } + + //@} + + //! Write a raw JSON value. + /*! + For user to write a stringified JSON as a value. + + \param json A well-formed JSON value. It should not contain null character within [0, length - 1] range. + \param length Length of the json. + \param type Type of the root of json. + \note When using PrettyWriter::RawValue(), the result json may not be indented correctly. + */ + bool RawValue(const Ch* json, size_t length, Type type) { + RAPIDJSON_ASSERT(json != 0); + PrettyPrefix(type); + return Base::EndValue(Base::WriteRawValue(json, length)); + } + +protected: + void PrettyPrefix(Type type) { + (void)type; + if (Base::level_stack_.GetSize() != 0) { // this value is not at root + typename Base::Level* level = Base::level_stack_.template Top(); + + if (level->inArray) { + if (level->valueCount > 0) { + Base::os_->Put(','); // add comma if it is not the first element in array + if (formatOptions_ & kFormatSingleLineArray) + Base::os_->Put(' '); + } + + if (!(formatOptions_ & kFormatSingleLineArray)) { + Base::os_->Put('\n'); + WriteIndent(); + } + } + else { // in object + if (level->valueCount > 0) { + if (level->valueCount % 2 == 0) { + Base::os_->Put(','); + Base::os_->Put('\n'); + } + else { + Base::os_->Put(':'); + Base::os_->Put(' '); + } + } + else + Base::os_->Put('\n'); + + if (level->valueCount % 2 == 0) + WriteIndent(); + } + if (!level->inArray && level->valueCount % 2 == 0) + RAPIDJSON_ASSERT(type == kStringType); // if it's in object, then even number should be a name + level->valueCount++; + } + else { + RAPIDJSON_ASSERT(!Base::hasRoot_); // Should only has one and only one root. + Base::hasRoot_ = true; + } + } + + void WriteIndent() { + size_t count = (Base::level_stack_.GetSize() / sizeof(typename Base::Level)) * indentCharCount_; + PutN(*Base::os_, static_cast(indentChar_), count); + } + + Ch indentChar_; + unsigned indentCharCount_; + PrettyFormatOptions formatOptions_; + +private: + // Prohibit copy constructor & assignment operator. + PrettyWriter(const PrettyWriter&); + PrettyWriter& operator=(const PrettyWriter&); +}; + +RAPIDJSON_NAMESPACE_END + +#if defined(__clang__) +RAPIDJSON_DIAG_POP +#endif + +#ifdef __GNUC__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_RAPIDJSON_H_ diff --git a/C++Verifier/src/rapidjson/rapidjson.h b/C++Verifier/src/rapidjson/rapidjson.h new file mode 100644 index 0000000..c5f4d65 --- /dev/null +++ b/C++Verifier/src/rapidjson/rapidjson.h @@ -0,0 +1,692 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_RAPIDJSON_H_ +#define RAPIDJSON_RAPIDJSON_H_ + +/*!\file rapidjson.h + \brief common definitions and configuration + + \see RAPIDJSON_CONFIG + */ + +/*! \defgroup RAPIDJSON_CONFIG RapidJSON configuration + \brief Configuration macros for library features + + Some RapidJSON features are configurable to adapt the library to a wide + variety of platforms, environments and usage scenarios. Most of the + features can be configured in terms of overridden or predefined + preprocessor macros at compile-time. + + Some additional customization is available in the \ref RAPIDJSON_ERRORS APIs. + + \note These macros should be given on the compiler command-line + (where applicable) to avoid inconsistent values when compiling + different translation units of a single application. + */ + +#include // malloc(), realloc(), free(), size_t +#include // memset(), memcpy(), memmove(), memcmp() + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_VERSION_STRING +// +// ALWAYS synchronize the following 3 macros with corresponding variables in /CMakeLists.txt. +// + +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN +// token stringification +#define RAPIDJSON_STRINGIFY(x) RAPIDJSON_DO_STRINGIFY(x) +#define RAPIDJSON_DO_STRINGIFY(x) #x + +// token concatenation +#define RAPIDJSON_JOIN(X, Y) RAPIDJSON_DO_JOIN(X, Y) +#define RAPIDJSON_DO_JOIN(X, Y) RAPIDJSON_DO_JOIN2(X, Y) +#define RAPIDJSON_DO_JOIN2(X, Y) X##Y +//!@endcond + +/*! \def RAPIDJSON_MAJOR_VERSION + \ingroup RAPIDJSON_CONFIG + \brief Major version of RapidJSON in integer. +*/ +/*! \def RAPIDJSON_MINOR_VERSION + \ingroup RAPIDJSON_CONFIG + \brief Minor version of RapidJSON in integer. +*/ +/*! \def RAPIDJSON_PATCH_VERSION + \ingroup RAPIDJSON_CONFIG + \brief Patch version of RapidJSON in integer. +*/ +/*! \def RAPIDJSON_VERSION_STRING + \ingroup RAPIDJSON_CONFIG + \brief Version of RapidJSON in ".." string format. +*/ +#define RAPIDJSON_MAJOR_VERSION 1 +#define RAPIDJSON_MINOR_VERSION 1 +#define RAPIDJSON_PATCH_VERSION 0 +#define RAPIDJSON_VERSION_STRING \ + RAPIDJSON_STRINGIFY(RAPIDJSON_MAJOR_VERSION.RAPIDJSON_MINOR_VERSION.RAPIDJSON_PATCH_VERSION) + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_NAMESPACE_(BEGIN|END) +/*! \def RAPIDJSON_NAMESPACE + \ingroup RAPIDJSON_CONFIG + \brief provide custom rapidjson namespace + + In order to avoid symbol clashes and/or "One Definition Rule" errors + between multiple inclusions of (different versions of) RapidJSON in + a single binary, users can customize the name of the main RapidJSON + namespace. + + In case of a single nesting level, defining \c RAPIDJSON_NAMESPACE + to a custom name (e.g. \c MyRapidJSON) is sufficient. If multiple + levels are needed, both \ref RAPIDJSON_NAMESPACE_BEGIN and \ref + RAPIDJSON_NAMESPACE_END need to be defined as well: + + \code + // in some .cpp file + #define RAPIDJSON_NAMESPACE my::rapidjson + #define RAPIDJSON_NAMESPACE_BEGIN namespace my { namespace rapidjson { + #define RAPIDJSON_NAMESPACE_END } } + #include "rapidjson/..." + \endcode + + \see rapidjson + */ +/*! \def RAPIDJSON_NAMESPACE_BEGIN + \ingroup RAPIDJSON_CONFIG + \brief provide custom rapidjson namespace (opening expression) + \see RAPIDJSON_NAMESPACE +*/ +/*! \def RAPIDJSON_NAMESPACE_END + \ingroup RAPIDJSON_CONFIG + \brief provide custom rapidjson namespace (closing expression) + \see RAPIDJSON_NAMESPACE +*/ +#ifndef RAPIDJSON_NAMESPACE +#define RAPIDJSON_NAMESPACE rapidjson +#endif +#ifndef RAPIDJSON_NAMESPACE_BEGIN +#define RAPIDJSON_NAMESPACE_BEGIN namespace RAPIDJSON_NAMESPACE { +#endif +#ifndef RAPIDJSON_NAMESPACE_END +#define RAPIDJSON_NAMESPACE_END } +#endif + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_HAS_STDSTRING + +#ifndef RAPIDJSON_HAS_STDSTRING +#ifdef RAPIDJSON_DOXYGEN_RUNNING +#define RAPIDJSON_HAS_STDSTRING 1 // force generation of documentation +#else +#define RAPIDJSON_HAS_STDSTRING 0 // no std::string support by default +#endif +/*! \def RAPIDJSON_HAS_STDSTRING + \ingroup RAPIDJSON_CONFIG + \brief Enable RapidJSON support for \c std::string + + By defining this preprocessor symbol to \c 1, several convenience functions for using + \ref rapidjson::GenericValue with \c std::string are enabled, especially + for construction and comparison. + + \hideinitializer +*/ +#endif // !defined(RAPIDJSON_HAS_STDSTRING) + +#if RAPIDJSON_HAS_STDSTRING +#include +#endif // RAPIDJSON_HAS_STDSTRING + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_NO_INT64DEFINE + +/*! \def RAPIDJSON_NO_INT64DEFINE + \ingroup RAPIDJSON_CONFIG + \brief Use external 64-bit integer types. + + RapidJSON requires the 64-bit integer types \c int64_t and \c uint64_t types + to be available at global scope. + + If users have their own definition, define RAPIDJSON_NO_INT64DEFINE to + prevent RapidJSON from defining its own types. +*/ +#ifndef RAPIDJSON_NO_INT64DEFINE +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN +#if defined(_MSC_VER) && (_MSC_VER < 1800) // Visual Studio 2013 +#include "msinttypes/stdint.h" +#include "msinttypes/inttypes.h" +#else +// Other compilers should have this. +#include +#include +#endif +//!@endcond +#ifdef RAPIDJSON_DOXYGEN_RUNNING +#define RAPIDJSON_NO_INT64DEFINE +#endif +#endif // RAPIDJSON_NO_INT64TYPEDEF + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_FORCEINLINE + +#ifndef RAPIDJSON_FORCEINLINE +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN +#if defined(_MSC_VER) && defined(NDEBUG) +#define RAPIDJSON_FORCEINLINE __forceinline +#elif defined(__GNUC__) && __GNUC__ >= 4 && defined(NDEBUG) +#define RAPIDJSON_FORCEINLINE __attribute__((always_inline)) +#else +#define RAPIDJSON_FORCEINLINE +#endif +//!@endcond +#endif // RAPIDJSON_FORCEINLINE + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_ENDIAN +#define RAPIDJSON_LITTLEENDIAN 0 //!< Little endian machine +#define RAPIDJSON_BIGENDIAN 1 //!< Big endian machine + +//! Endianness of the machine. +/*! + \def RAPIDJSON_ENDIAN + \ingroup RAPIDJSON_CONFIG + + GCC 4.6 provided macro for detecting endianness of the target machine. But other + compilers may not have this. User can define RAPIDJSON_ENDIAN to either + \ref RAPIDJSON_LITTLEENDIAN or \ref RAPIDJSON_BIGENDIAN. + + Default detection implemented with reference to + \li https://gcc.gnu.org/onlinedocs/gcc-4.6.0/cpp/Common-Predefined-Macros.html + \li http://www.boost.org/doc/libs/1_42_0/boost/detail/endian.hpp +*/ +#ifndef RAPIDJSON_ENDIAN +// Detect with GCC 4.6's macro +# ifdef __BYTE_ORDER__ +# if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ +# define RAPIDJSON_ENDIAN RAPIDJSON_LITTLEENDIAN +# elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +# define RAPIDJSON_ENDIAN RAPIDJSON_BIGENDIAN +# else +# error Unknown machine endianness detected. User needs to define RAPIDJSON_ENDIAN. +# endif // __BYTE_ORDER__ +// Detect with GLIBC's endian.h +# elif defined(__GLIBC__) +# include +# if (__BYTE_ORDER == __LITTLE_ENDIAN) +# define RAPIDJSON_ENDIAN RAPIDJSON_LITTLEENDIAN +# elif (__BYTE_ORDER == __BIG_ENDIAN) +# define RAPIDJSON_ENDIAN RAPIDJSON_BIGENDIAN +# else +# error Unknown machine endianness detected. User needs to define RAPIDJSON_ENDIAN. +# endif // __GLIBC__ +// Detect with _LITTLE_ENDIAN and _BIG_ENDIAN macro +# elif defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN) +# define RAPIDJSON_ENDIAN RAPIDJSON_LITTLEENDIAN +# elif defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN) +# define RAPIDJSON_ENDIAN RAPIDJSON_BIGENDIAN +// Detect with architecture macros +# elif defined(__sparc) || defined(__sparc__) || defined(_POWER) || defined(__powerpc__) || defined(__ppc__) || defined(__hpux) || defined(__hppa) || defined(_MIPSEB) || defined(_POWER) || defined(__s390__) +# define RAPIDJSON_ENDIAN RAPIDJSON_BIGENDIAN +# elif defined(__i386__) || defined(__alpha__) || defined(__ia64) || defined(__ia64__) || defined(_M_IX86) || defined(_M_IA64) || defined(_M_ALPHA) || defined(__amd64) || defined(__amd64__) || defined(_M_AMD64) || defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || defined(__bfin__) +# define RAPIDJSON_ENDIAN RAPIDJSON_LITTLEENDIAN +# elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64)) +# define RAPIDJSON_ENDIAN RAPIDJSON_LITTLEENDIAN +# elif defined(RAPIDJSON_DOXYGEN_RUNNING) +# define RAPIDJSON_ENDIAN +# else +# error Unknown machine endianness detected. User needs to define RAPIDJSON_ENDIAN. +# endif +#endif // RAPIDJSON_ENDIAN + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_64BIT + +//! Whether using 64-bit architecture +#ifndef RAPIDJSON_64BIT +#if defined(__LP64__) || (defined(__x86_64__) && defined(__ILP32__)) || defined(_WIN64) || defined(__EMSCRIPTEN__) +#define RAPIDJSON_64BIT 1 +#else +#define RAPIDJSON_64BIT 0 +#endif +#endif // RAPIDJSON_64BIT + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_ALIGN + +//! Data alignment of the machine. +/*! \ingroup RAPIDJSON_CONFIG + \param x pointer to align + + Some machines require strict data alignment. The default is 8 bytes. + User can customize by defining the RAPIDJSON_ALIGN function macro. +*/ +#ifndef RAPIDJSON_ALIGN +#define RAPIDJSON_ALIGN(x) (((x) + static_cast(7u)) & ~static_cast(7u)) +#endif + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_UINT64_C2 + +//! Construct a 64-bit literal by a pair of 32-bit integer. +/*! + 64-bit literal with or without ULL suffix is prone to compiler warnings. + UINT64_C() is C macro which cause compilation problems. + Use this macro to define 64-bit constants by a pair of 32-bit integer. +*/ +#ifndef RAPIDJSON_UINT64_C2 +#define RAPIDJSON_UINT64_C2(high32, low32) ((static_cast(high32) << 32) | static_cast(low32)) +#endif + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_48BITPOINTER_OPTIMIZATION + +//! Use only lower 48-bit address for some pointers. +/*! + \ingroup RAPIDJSON_CONFIG + + This optimization uses the fact that current X86-64 architecture only implement lower 48-bit virtual address. + The higher 16-bit can be used for storing other data. + \c GenericValue uses this optimization to reduce its size form 24 bytes to 16 bytes in 64-bit architecture. +*/ +#ifndef RAPIDJSON_48BITPOINTER_OPTIMIZATION +#if defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64) +#define RAPIDJSON_48BITPOINTER_OPTIMIZATION 1 +#else +#define RAPIDJSON_48BITPOINTER_OPTIMIZATION 0 +#endif +#endif // RAPIDJSON_48BITPOINTER_OPTIMIZATION + +#if RAPIDJSON_48BITPOINTER_OPTIMIZATION == 1 +#if RAPIDJSON_64BIT != 1 +#error RAPIDJSON_48BITPOINTER_OPTIMIZATION can only be set to 1 when RAPIDJSON_64BIT=1 +#endif +#define RAPIDJSON_SETPOINTER(type, p, x) (p = reinterpret_cast((reinterpret_cast(p) & static_cast(RAPIDJSON_UINT64_C2(0xFFFF0000, 0x00000000))) | reinterpret_cast(reinterpret_cast(x)))) +#define RAPIDJSON_GETPOINTER(type, p) (reinterpret_cast(reinterpret_cast(p) & static_cast(RAPIDJSON_UINT64_C2(0x0000FFFF, 0xFFFFFFFF)))) +#else +#define RAPIDJSON_SETPOINTER(type, p, x) (p = (x)) +#define RAPIDJSON_GETPOINTER(type, p) (p) +#endif + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_SSE2/RAPIDJSON_SSE42/RAPIDJSON_NEON/RAPIDJSON_SIMD + +/*! \def RAPIDJSON_SIMD + \ingroup RAPIDJSON_CONFIG + \brief Enable SSE2/SSE4.2/Neon optimization. + + RapidJSON supports optimized implementations for some parsing operations + based on the SSE2, SSE4.2 or NEon SIMD extensions on modern Intel + or ARM compatible processors. + + To enable these optimizations, three different symbols can be defined; + \code + // Enable SSE2 optimization. + #define RAPIDJSON_SSE2 + + // Enable SSE4.2 optimization. + #define RAPIDJSON_SSE42 + \endcode + + // Enable ARM Neon optimization. + #define RAPIDJSON_NEON + \endcode + + \c RAPIDJSON_SSE42 takes precedence over SSE2, if both are defined. + + If any of these symbols is defined, RapidJSON defines the macro + \c RAPIDJSON_SIMD to indicate the availability of the optimized code. +*/ +#if defined(RAPIDJSON_SSE2) || defined(RAPIDJSON_SSE42) \ + || defined(RAPIDJSON_NEON) || defined(RAPIDJSON_DOXYGEN_RUNNING) +#define RAPIDJSON_SIMD +#endif + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_NO_SIZETYPEDEFINE + +#ifndef RAPIDJSON_NO_SIZETYPEDEFINE +/*! \def RAPIDJSON_NO_SIZETYPEDEFINE + \ingroup RAPIDJSON_CONFIG + \brief User-provided \c SizeType definition. + + In order to avoid using 32-bit size types for indexing strings and arrays, + define this preprocessor symbol and provide the type rapidjson::SizeType + before including RapidJSON: + \code + #define RAPIDJSON_NO_SIZETYPEDEFINE + namespace rapidjson { typedef ::std::size_t SizeType; } + #include "rapidjson/..." + \endcode + + \see rapidjson::SizeType +*/ +#ifdef RAPIDJSON_DOXYGEN_RUNNING +#define RAPIDJSON_NO_SIZETYPEDEFINE +#endif +RAPIDJSON_NAMESPACE_BEGIN +//! Size type (for string lengths, array sizes, etc.) +/*! RapidJSON uses 32-bit array/string indices even on 64-bit platforms, + instead of using \c size_t. Users may override the SizeType by defining + \ref RAPIDJSON_NO_SIZETYPEDEFINE. +*/ +typedef unsigned SizeType; +RAPIDJSON_NAMESPACE_END +#endif + +// always import std::size_t to rapidjson namespace +RAPIDJSON_NAMESPACE_BEGIN +using std::size_t; +RAPIDJSON_NAMESPACE_END + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_ASSERT + +//! Assertion. +/*! \ingroup RAPIDJSON_CONFIG + By default, rapidjson uses C \c assert() for internal assertions. + User can override it by defining RAPIDJSON_ASSERT(x) macro. + + \note Parsing errors are handled and can be customized by the + \ref RAPIDJSON_ERRORS APIs. +*/ +#ifndef RAPIDJSON_ASSERT +#include +#define RAPIDJSON_ASSERT(x) assert(x) +#endif // RAPIDJSON_ASSERT + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_STATIC_ASSERT + +// Prefer C++11 static_assert, if available +#ifndef RAPIDJSON_STATIC_ASSERT +#if __cplusplus >= 201103L || ( defined(_MSC_VER) && _MSC_VER >= 1800 ) +#define RAPIDJSON_STATIC_ASSERT(x) \ + static_assert(x, RAPIDJSON_STRINGIFY(x)) +#endif // C++11 +#endif // RAPIDJSON_STATIC_ASSERT + +// Adopt C++03 implementation from boost +#ifndef RAPIDJSON_STATIC_ASSERT +#ifndef __clang__ +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN +#endif +RAPIDJSON_NAMESPACE_BEGIN +template struct STATIC_ASSERTION_FAILURE; +template <> struct STATIC_ASSERTION_FAILURE { enum { value = 1 }; }; +template struct StaticAssertTest {}; +RAPIDJSON_NAMESPACE_END + +#if defined(__GNUC__) || defined(__clang__) +#define RAPIDJSON_STATIC_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused)) +#else +#define RAPIDJSON_STATIC_ASSERT_UNUSED_ATTRIBUTE +#endif +#ifndef __clang__ +//!@endcond +#endif + +/*! \def RAPIDJSON_STATIC_ASSERT + \brief (Internal) macro to check for conditions at compile-time + \param x compile-time condition + \hideinitializer + */ +#define RAPIDJSON_STATIC_ASSERT(x) \ + typedef ::RAPIDJSON_NAMESPACE::StaticAssertTest< \ + sizeof(::RAPIDJSON_NAMESPACE::STATIC_ASSERTION_FAILURE)> \ + RAPIDJSON_JOIN(StaticAssertTypedef, __LINE__) RAPIDJSON_STATIC_ASSERT_UNUSED_ATTRIBUTE +#endif // RAPIDJSON_STATIC_ASSERT + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_LIKELY, RAPIDJSON_UNLIKELY + +//! Compiler branching hint for expression with high probability to be true. +/*! + \ingroup RAPIDJSON_CONFIG + \param x Boolean expression likely to be true. +*/ +#ifndef RAPIDJSON_LIKELY +#if defined(__GNUC__) || defined(__clang__) +#define RAPIDJSON_LIKELY(x) __builtin_expect(!!(x), 1) +#else +#define RAPIDJSON_LIKELY(x) (x) +#endif +#endif + +//! Compiler branching hint for expression with low probability to be true. +/*! + \ingroup RAPIDJSON_CONFIG + \param x Boolean expression unlikely to be true. +*/ +#ifndef RAPIDJSON_UNLIKELY +#if defined(__GNUC__) || defined(__clang__) +#define RAPIDJSON_UNLIKELY(x) __builtin_expect(!!(x), 0) +#else +#define RAPIDJSON_UNLIKELY(x) (x) +#endif +#endif + +/////////////////////////////////////////////////////////////////////////////// +// Helpers + +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN + +#define RAPIDJSON_MULTILINEMACRO_BEGIN do { +#define RAPIDJSON_MULTILINEMACRO_END \ +} while((void)0, 0) + +// adopted from Boost +#define RAPIDJSON_VERSION_CODE(x,y,z) \ + (((x)*100000) + ((y)*100) + (z)) + +#if defined(__has_builtin) +#define RAPIDJSON_HAS_BUILTIN(x) __has_builtin(x) +#else +#define RAPIDJSON_HAS_BUILTIN(x) 0 +#endif + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_DIAG_PUSH/POP, RAPIDJSON_DIAG_OFF + +#if defined(__GNUC__) +#define RAPIDJSON_GNUC \ + RAPIDJSON_VERSION_CODE(__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__) +#endif + +#if defined(__clang__) || (defined(RAPIDJSON_GNUC) && RAPIDJSON_GNUC >= RAPIDJSON_VERSION_CODE(4,2,0)) + +#define RAPIDJSON_PRAGMA(x) _Pragma(RAPIDJSON_STRINGIFY(x)) +#define RAPIDJSON_DIAG_PRAGMA(x) RAPIDJSON_PRAGMA(GCC diagnostic x) +#define RAPIDJSON_DIAG_OFF(x) \ + RAPIDJSON_DIAG_PRAGMA(ignored RAPIDJSON_STRINGIFY(RAPIDJSON_JOIN(-W,x))) + +// push/pop support in Clang and GCC>=4.6 +#if defined(__clang__) || (defined(RAPIDJSON_GNUC) && RAPIDJSON_GNUC >= RAPIDJSON_VERSION_CODE(4,6,0)) +#define RAPIDJSON_DIAG_PUSH RAPIDJSON_DIAG_PRAGMA(push) +#define RAPIDJSON_DIAG_POP RAPIDJSON_DIAG_PRAGMA(pop) +#else // GCC >= 4.2, < 4.6 +#define RAPIDJSON_DIAG_PUSH /* ignored */ +#define RAPIDJSON_DIAG_POP /* ignored */ +#endif + +#elif defined(_MSC_VER) + +// pragma (MSVC specific) +#define RAPIDJSON_PRAGMA(x) __pragma(x) +#define RAPIDJSON_DIAG_PRAGMA(x) RAPIDJSON_PRAGMA(warning(x)) + +#define RAPIDJSON_DIAG_OFF(x) RAPIDJSON_DIAG_PRAGMA(disable: x) +#define RAPIDJSON_DIAG_PUSH RAPIDJSON_DIAG_PRAGMA(push) +#define RAPIDJSON_DIAG_POP RAPIDJSON_DIAG_PRAGMA(pop) + +#else + +#define RAPIDJSON_DIAG_OFF(x) /* ignored */ +#define RAPIDJSON_DIAG_PUSH /* ignored */ +#define RAPIDJSON_DIAG_POP /* ignored */ + +#endif // RAPIDJSON_DIAG_* + +/////////////////////////////////////////////////////////////////////////////// +// C++11 features + +#ifndef RAPIDJSON_HAS_CXX11_RVALUE_REFS +#if defined(__clang__) +#if __has_feature(cxx_rvalue_references) && \ + (defined(_MSC_VER) || defined(_LIBCPP_VERSION) || defined(__GLIBCXX__) && __GLIBCXX__ >= 20080306) +#define RAPIDJSON_HAS_CXX11_RVALUE_REFS 1 +#else +#define RAPIDJSON_HAS_CXX11_RVALUE_REFS 0 +#endif +#elif (defined(RAPIDJSON_GNUC) && (RAPIDJSON_GNUC >= RAPIDJSON_VERSION_CODE(4,3,0)) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || \ + (defined(_MSC_VER) && _MSC_VER >= 1600) || \ + (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x5140 && defined(__GXX_EXPERIMENTAL_CXX0X__)) + +#define RAPIDJSON_HAS_CXX11_RVALUE_REFS 1 +#else +#define RAPIDJSON_HAS_CXX11_RVALUE_REFS 0 +#endif +#endif // RAPIDJSON_HAS_CXX11_RVALUE_REFS + +#ifndef RAPIDJSON_HAS_CXX11_NOEXCEPT +#if defined(__clang__) +#define RAPIDJSON_HAS_CXX11_NOEXCEPT __has_feature(cxx_noexcept) +#elif (defined(RAPIDJSON_GNUC) && (RAPIDJSON_GNUC >= RAPIDJSON_VERSION_CODE(4,6,0)) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || \ + (defined(_MSC_VER) && _MSC_VER >= 1900) || \ + (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x5140 && defined(__GXX_EXPERIMENTAL_CXX0X__)) +#define RAPIDJSON_HAS_CXX11_NOEXCEPT 1 +#else +#define RAPIDJSON_HAS_CXX11_NOEXCEPT 0 +#endif +#endif +#if RAPIDJSON_HAS_CXX11_NOEXCEPT +#define RAPIDJSON_NOEXCEPT noexcept +#else +#define RAPIDJSON_NOEXCEPT /* noexcept */ +#endif // RAPIDJSON_HAS_CXX11_NOEXCEPT + +// no automatic detection, yet +#ifndef RAPIDJSON_HAS_CXX11_TYPETRAITS +#if (defined(_MSC_VER) && _MSC_VER >= 1700) +#define RAPIDJSON_HAS_CXX11_TYPETRAITS 1 +#else +#define RAPIDJSON_HAS_CXX11_TYPETRAITS 0 +#endif +#endif + +#ifndef RAPIDJSON_HAS_CXX11_RANGE_FOR +#if defined(__clang__) +#define RAPIDJSON_HAS_CXX11_RANGE_FOR __has_feature(cxx_range_for) +#elif (defined(RAPIDJSON_GNUC) && (RAPIDJSON_GNUC >= RAPIDJSON_VERSION_CODE(4,6,0)) && defined(__GXX_EXPERIMENTAL_CXX0X__)) || \ + (defined(_MSC_VER) && _MSC_VER >= 1700) || \ + (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x5140 && defined(__GXX_EXPERIMENTAL_CXX0X__)) +#define RAPIDJSON_HAS_CXX11_RANGE_FOR 1 +#else +#define RAPIDJSON_HAS_CXX11_RANGE_FOR 0 +#endif +#endif // RAPIDJSON_HAS_CXX11_RANGE_FOR + +/////////////////////////////////////////////////////////////////////////////// +// C++17 features + +#if defined(__has_cpp_attribute) +# if __has_cpp_attribute(fallthrough) +# define RAPIDJSON_DELIBERATE_FALLTHROUGH [[fallthrough]] +# else +# define RAPIDJSON_DELIBERATE_FALLTHROUGH +# endif +#else +# define RAPIDJSON_DELIBERATE_FALLTHROUGH +#endif + +//!@endcond + +//! Assertion (in non-throwing contexts). + /*! \ingroup RAPIDJSON_CONFIG + Some functions provide a \c noexcept guarantee, if the compiler supports it. + In these cases, the \ref RAPIDJSON_ASSERT macro cannot be overridden to + throw an exception. This macro adds a separate customization point for + such cases. + + Defaults to C \c assert() (as \ref RAPIDJSON_ASSERT), if \c noexcept is + supported, and to \ref RAPIDJSON_ASSERT otherwise. + */ + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_NOEXCEPT_ASSERT + +#ifndef RAPIDJSON_NOEXCEPT_ASSERT +#ifdef RAPIDJSON_ASSERT_THROWS +#if RAPIDJSON_HAS_CXX11_NOEXCEPT +#define RAPIDJSON_NOEXCEPT_ASSERT(x) +#else +#include +#define RAPIDJSON_NOEXCEPT_ASSERT(x) assert(x) +#endif // RAPIDJSON_HAS_CXX11_NOEXCEPT +#else +#define RAPIDJSON_NOEXCEPT_ASSERT(x) RAPIDJSON_ASSERT(x) +#endif // RAPIDJSON_ASSERT_THROWS +#endif // RAPIDJSON_NOEXCEPT_ASSERT + +/////////////////////////////////////////////////////////////////////////////// +// malloc/realloc/free + +#ifndef RAPIDJSON_MALLOC +///! customization point for global \c malloc +#define RAPIDJSON_MALLOC(size) std::malloc(size) +#endif +#ifndef RAPIDJSON_REALLOC +///! customization point for global \c realloc +#define RAPIDJSON_REALLOC(ptr, new_size) std::realloc(ptr, new_size) +#endif +#ifndef RAPIDJSON_FREE +///! customization point for global \c free +#define RAPIDJSON_FREE(ptr) std::free(ptr) +#endif + +/////////////////////////////////////////////////////////////////////////////// +// new/delete + +#ifndef RAPIDJSON_NEW +///! customization point for global \c new +#define RAPIDJSON_NEW(TypeName) new TypeName +#endif +#ifndef RAPIDJSON_DELETE +///! customization point for global \c delete +#define RAPIDJSON_DELETE(x) delete x +#endif + +/////////////////////////////////////////////////////////////////////////////// +// Type + +/*! \namespace rapidjson + \brief main RapidJSON namespace + \see RAPIDJSON_NAMESPACE +*/ +RAPIDJSON_NAMESPACE_BEGIN + +//! Type of JSON value +enum Type { + kNullType = 0, //!< null + kFalseType = 1, //!< false + kTrueType = 2, //!< true + kObjectType = 3, //!< object + kArrayType = 4, //!< array + kStringType = 5, //!< string + kNumberType = 6 //!< number +}; + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_RAPIDJSON_H_ diff --git a/C++Verifier/src/rapidjson/reader.h b/C++Verifier/src/rapidjson/reader.h new file mode 100644 index 0000000..30e45e1 --- /dev/null +++ b/C++Verifier/src/rapidjson/reader.h @@ -0,0 +1,2244 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_READER_H_ +#define RAPIDJSON_READER_H_ + +/*! \file reader.h */ + +#include "allocators.h" +#include "stream.h" +#include "encodedstream.h" +#include "internal/clzll.h" +#include "internal/meta.h" +#include "internal/stack.h" +#include "internal/strtod.h" +#include + +#if defined(RAPIDJSON_SIMD) && defined(_MSC_VER) +#include +#pragma intrinsic(_BitScanForward) +#endif +#ifdef RAPIDJSON_SSE42 +#include +#elif defined(RAPIDJSON_SSE2) +#include +#elif defined(RAPIDJSON_NEON) +#include +#endif + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(old-style-cast) +RAPIDJSON_DIAG_OFF(padded) +RAPIDJSON_DIAG_OFF(switch-enum) +#elif defined(_MSC_VER) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4127) // conditional expression is constant +RAPIDJSON_DIAG_OFF(4702) // unreachable code +#endif + +#ifdef __GNUC__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(effc++) +#endif + +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN +#define RAPIDJSON_NOTHING /* deliberately empty */ +#ifndef RAPIDJSON_PARSE_ERROR_EARLY_RETURN +#define RAPIDJSON_PARSE_ERROR_EARLY_RETURN(value) \ + RAPIDJSON_MULTILINEMACRO_BEGIN \ + if (RAPIDJSON_UNLIKELY(HasParseError())) { return value; } \ + RAPIDJSON_MULTILINEMACRO_END +#endif +#define RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID \ + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(RAPIDJSON_NOTHING) +//!@endcond + +/*! \def RAPIDJSON_PARSE_ERROR_NORETURN + \ingroup RAPIDJSON_ERRORS + \brief Macro to indicate a parse error. + \param parseErrorCode \ref rapidjson::ParseErrorCode of the error + \param offset position of the error in JSON input (\c size_t) + + This macros can be used as a customization point for the internal + error handling mechanism of RapidJSON. + + A common usage model is to throw an exception instead of requiring the + caller to explicitly check the \ref rapidjson::GenericReader::Parse's + return value: + + \code + #define RAPIDJSON_PARSE_ERROR_NORETURN(parseErrorCode,offset) \ + throw ParseException(parseErrorCode, #parseErrorCode, offset) + + #include // std::runtime_error + #include "rapidjson/error/error.h" // rapidjson::ParseResult + + struct ParseException : std::runtime_error, rapidjson::ParseResult { + ParseException(rapidjson::ParseErrorCode code, const char* msg, size_t offset) + : std::runtime_error(msg), ParseResult(code, offset) {} + }; + + #include "rapidjson/reader.h" + \endcode + + \see RAPIDJSON_PARSE_ERROR, rapidjson::GenericReader::Parse + */ +#ifndef RAPIDJSON_PARSE_ERROR_NORETURN +#define RAPIDJSON_PARSE_ERROR_NORETURN(parseErrorCode, offset) \ + RAPIDJSON_MULTILINEMACRO_BEGIN \ + RAPIDJSON_ASSERT(!HasParseError()); /* Error can only be assigned once */ \ + SetParseError(parseErrorCode, offset); \ + RAPIDJSON_MULTILINEMACRO_END +#endif + +/*! \def RAPIDJSON_PARSE_ERROR + \ingroup RAPIDJSON_ERRORS + \brief (Internal) macro to indicate and handle a parse error. + \param parseErrorCode \ref rapidjson::ParseErrorCode of the error + \param offset position of the error in JSON input (\c size_t) + + Invokes RAPIDJSON_PARSE_ERROR_NORETURN and stops the parsing. + + \see RAPIDJSON_PARSE_ERROR_NORETURN + \hideinitializer + */ +#ifndef RAPIDJSON_PARSE_ERROR +#define RAPIDJSON_PARSE_ERROR(parseErrorCode, offset) \ + RAPIDJSON_MULTILINEMACRO_BEGIN \ + RAPIDJSON_PARSE_ERROR_NORETURN(parseErrorCode, offset); \ + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; \ + RAPIDJSON_MULTILINEMACRO_END +#endif + +#include "error/error.h" // ParseErrorCode, ParseResult + +RAPIDJSON_NAMESPACE_BEGIN + +/////////////////////////////////////////////////////////////////////////////// +// ParseFlag + +/*! \def RAPIDJSON_PARSE_DEFAULT_FLAGS + \ingroup RAPIDJSON_CONFIG + \brief User-defined kParseDefaultFlags definition. + + User can define this as any \c ParseFlag combinations. +*/ +#ifndef RAPIDJSON_PARSE_DEFAULT_FLAGS +#define RAPIDJSON_PARSE_DEFAULT_FLAGS kParseNoFlags +#endif + +//! Combination of parseFlags +/*! \see Reader::Parse, Document::Parse, Document::ParseInsitu, Document::ParseStream + */ +enum ParseFlag { + kParseNoFlags = 0, //!< No flags are set. + kParseInsituFlag = 1, //!< In-situ(destructive) parsing. + kParseValidateEncodingFlag = 2, //!< Validate encoding of JSON strings. + kParseIterativeFlag = 4, //!< Iterative(constant complexity in terms of function call stack size) parsing. + kParseStopWhenDoneFlag = 8, //!< After parsing a complete JSON root from stream, stop further processing the rest of stream. When this flag is used, parser will not generate kParseErrorDocumentRootNotSingular error. + kParseFullPrecisionFlag = 16, //!< Parse number in full precision (but slower). + kParseCommentsFlag = 32, //!< Allow one-line (//) and multi-line (/**/) comments. + kParseNumbersAsStringsFlag = 64, //!< Parse all numbers (ints/doubles) as strings. + kParseTrailingCommasFlag = 128, //!< Allow trailing commas at the end of objects and arrays. + kParseNanAndInfFlag = 256, //!< Allow parsing NaN, Inf, Infinity, -Inf and -Infinity as doubles. + kParseEscapedApostropheFlag = 512, //!< Allow escaped apostrophe in strings. + kParseDefaultFlags = RAPIDJSON_PARSE_DEFAULT_FLAGS //!< Default parse flags. Can be customized by defining RAPIDJSON_PARSE_DEFAULT_FLAGS +}; + +/////////////////////////////////////////////////////////////////////////////// +// Handler + +/*! \class rapidjson::Handler + \brief Concept for receiving events from GenericReader upon parsing. + The functions return true if no error occurs. If they return false, + the event publisher should terminate the process. +\code +concept Handler { + typename Ch; + + bool Null(); + bool Bool(bool b); + bool Int(int i); + bool Uint(unsigned i); + bool Int64(int64_t i); + bool Uint64(uint64_t i); + bool Double(double d); + /// enabled via kParseNumbersAsStringsFlag, string is not null-terminated (use length) + bool RawNumber(const Ch* str, SizeType length, bool copy); + bool String(const Ch* str, SizeType length, bool copy); + bool StartObject(); + bool Key(const Ch* str, SizeType length, bool copy); + bool EndObject(SizeType memberCount); + bool StartArray(); + bool EndArray(SizeType elementCount); +}; +\endcode +*/ +/////////////////////////////////////////////////////////////////////////////// +// BaseReaderHandler + +//! Default implementation of Handler. +/*! This can be used as base class of any reader handler. + \note implements Handler concept +*/ +template, typename Derived = void> +struct BaseReaderHandler { + typedef typename Encoding::Ch Ch; + + typedef typename internal::SelectIf, BaseReaderHandler, Derived>::Type Override; + + bool Default() { return true; } + bool Null() { return static_cast(*this).Default(); } + bool Bool(bool) { return static_cast(*this).Default(); } + bool Int(int) { return static_cast(*this).Default(); } + bool Uint(unsigned) { return static_cast(*this).Default(); } + bool Int64(int64_t) { return static_cast(*this).Default(); } + bool Uint64(uint64_t) { return static_cast(*this).Default(); } + bool Double(double) { return static_cast(*this).Default(); } + /// enabled via kParseNumbersAsStringsFlag, string is not null-terminated (use length) + bool RawNumber(const Ch* str, SizeType len, bool copy) { return static_cast(*this).String(str, len, copy); } + bool String(const Ch*, SizeType, bool) { return static_cast(*this).Default(); } + bool StartObject() { return static_cast(*this).Default(); } + bool Key(const Ch* str, SizeType len, bool copy) { return static_cast(*this).String(str, len, copy); } + bool EndObject(SizeType) { return static_cast(*this).Default(); } + bool StartArray() { return static_cast(*this).Default(); } + bool EndArray(SizeType) { return static_cast(*this).Default(); } +}; + +/////////////////////////////////////////////////////////////////////////////// +// StreamLocalCopy + +namespace internal { + +template::copyOptimization> +class StreamLocalCopy; + +//! Do copy optimization. +template +class StreamLocalCopy { +public: + StreamLocalCopy(Stream& original) : s(original), original_(original) {} + ~StreamLocalCopy() { original_ = s; } + + Stream s; + +private: + StreamLocalCopy& operator=(const StreamLocalCopy&) /* = delete */; + + Stream& original_; +}; + +//! Keep reference. +template +class StreamLocalCopy { +public: + StreamLocalCopy(Stream& original) : s(original) {} + + Stream& s; + +private: + StreamLocalCopy& operator=(const StreamLocalCopy&) /* = delete */; +}; + +} // namespace internal + +/////////////////////////////////////////////////////////////////////////////// +// SkipWhitespace + +//! Skip the JSON white spaces in a stream. +/*! \param is A input stream for skipping white spaces. + \note This function has SSE2/SSE4.2 specialization. +*/ +template +void SkipWhitespace(InputStream& is) { + internal::StreamLocalCopy copy(is); + InputStream& s(copy.s); + + typename InputStream::Ch c; + while ((c = s.Peek()) == ' ' || c == '\n' || c == '\r' || c == '\t') + s.Take(); +} + +inline const char* SkipWhitespace(const char* p, const char* end) { + while (p != end && (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t')) + ++p; + return p; +} + +#ifdef RAPIDJSON_SSE42 +//! Skip whitespace with SSE 4.2 pcmpistrm instruction, testing 16 8-byte characters at once. +inline const char *SkipWhitespace_SIMD(const char* p) { + // Fast return for single non-whitespace + if (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t') + ++p; + else + return p; + + // 16-byte align to the next boundary + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + while (p != nextAligned) + if (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t') + ++p; + else + return p; + + // The rest of string using SIMD + static const char whitespace[16] = " \n\r\t"; + const __m128i w = _mm_loadu_si128(reinterpret_cast(&whitespace[0])); + + for (;; p += 16) { + const __m128i s = _mm_load_si128(reinterpret_cast(p)); + const int r = _mm_cmpistri(w, s, _SIDD_UBYTE_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_LEAST_SIGNIFICANT | _SIDD_NEGATIVE_POLARITY); + if (r != 16) // some of characters is non-whitespace + return p + r; + } +} + +inline const char *SkipWhitespace_SIMD(const char* p, const char* end) { + // Fast return for single non-whitespace + if (p != end && (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t')) + ++p; + else + return p; + + // The middle of string using SIMD + static const char whitespace[16] = " \n\r\t"; + const __m128i w = _mm_loadu_si128(reinterpret_cast(&whitespace[0])); + + for (; p <= end - 16; p += 16) { + const __m128i s = _mm_loadu_si128(reinterpret_cast(p)); + const int r = _mm_cmpistri(w, s, _SIDD_UBYTE_OPS | _SIDD_CMP_EQUAL_ANY | _SIDD_LEAST_SIGNIFICANT | _SIDD_NEGATIVE_POLARITY); + if (r != 16) // some of characters is non-whitespace + return p + r; + } + + return SkipWhitespace(p, end); +} + +#elif defined(RAPIDJSON_SSE2) + +//! Skip whitespace with SSE2 instructions, testing 16 8-byte characters at once. +inline const char *SkipWhitespace_SIMD(const char* p) { + // Fast return for single non-whitespace + if (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t') + ++p; + else + return p; + + // 16-byte align to the next boundary + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + while (p != nextAligned) + if (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t') + ++p; + else + return p; + + // The rest of string + #define C16(c) { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c } + static const char whitespaces[4][16] = { C16(' '), C16('\n'), C16('\r'), C16('\t') }; + #undef C16 + + const __m128i w0 = _mm_loadu_si128(reinterpret_cast(&whitespaces[0][0])); + const __m128i w1 = _mm_loadu_si128(reinterpret_cast(&whitespaces[1][0])); + const __m128i w2 = _mm_loadu_si128(reinterpret_cast(&whitespaces[2][0])); + const __m128i w3 = _mm_loadu_si128(reinterpret_cast(&whitespaces[3][0])); + + for (;; p += 16) { + const __m128i s = _mm_load_si128(reinterpret_cast(p)); + __m128i x = _mm_cmpeq_epi8(s, w0); + x = _mm_or_si128(x, _mm_cmpeq_epi8(s, w1)); + x = _mm_or_si128(x, _mm_cmpeq_epi8(s, w2)); + x = _mm_or_si128(x, _mm_cmpeq_epi8(s, w3)); + unsigned short r = static_cast(~_mm_movemask_epi8(x)); + if (r != 0) { // some of characters may be non-whitespace +#ifdef _MSC_VER // Find the index of first non-whitespace + unsigned long offset; + _BitScanForward(&offset, r); + return p + offset; +#else + return p + __builtin_ffs(r) - 1; +#endif + } + } +} + +inline const char *SkipWhitespace_SIMD(const char* p, const char* end) { + // Fast return for single non-whitespace + if (p != end && (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t')) + ++p; + else + return p; + + // The rest of string + #define C16(c) { c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c } + static const char whitespaces[4][16] = { C16(' '), C16('\n'), C16('\r'), C16('\t') }; + #undef C16 + + const __m128i w0 = _mm_loadu_si128(reinterpret_cast(&whitespaces[0][0])); + const __m128i w1 = _mm_loadu_si128(reinterpret_cast(&whitespaces[1][0])); + const __m128i w2 = _mm_loadu_si128(reinterpret_cast(&whitespaces[2][0])); + const __m128i w3 = _mm_loadu_si128(reinterpret_cast(&whitespaces[3][0])); + + for (; p <= end - 16; p += 16) { + const __m128i s = _mm_loadu_si128(reinterpret_cast(p)); + __m128i x = _mm_cmpeq_epi8(s, w0); + x = _mm_or_si128(x, _mm_cmpeq_epi8(s, w1)); + x = _mm_or_si128(x, _mm_cmpeq_epi8(s, w2)); + x = _mm_or_si128(x, _mm_cmpeq_epi8(s, w3)); + unsigned short r = static_cast(~_mm_movemask_epi8(x)); + if (r != 0) { // some of characters may be non-whitespace +#ifdef _MSC_VER // Find the index of first non-whitespace + unsigned long offset; + _BitScanForward(&offset, r); + return p + offset; +#else + return p + __builtin_ffs(r) - 1; +#endif + } + } + + return SkipWhitespace(p, end); +} + +#elif defined(RAPIDJSON_NEON) + +//! Skip whitespace with ARM Neon instructions, testing 16 8-byte characters at once. +inline const char *SkipWhitespace_SIMD(const char* p) { + // Fast return for single non-whitespace + if (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t') + ++p; + else + return p; + + // 16-byte align to the next boundary + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + while (p != nextAligned) + if (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t') + ++p; + else + return p; + + const uint8x16_t w0 = vmovq_n_u8(' '); + const uint8x16_t w1 = vmovq_n_u8('\n'); + const uint8x16_t w2 = vmovq_n_u8('\r'); + const uint8x16_t w3 = vmovq_n_u8('\t'); + + for (;; p += 16) { + const uint8x16_t s = vld1q_u8(reinterpret_cast(p)); + uint8x16_t x = vceqq_u8(s, w0); + x = vorrq_u8(x, vceqq_u8(s, w1)); + x = vorrq_u8(x, vceqq_u8(s, w2)); + x = vorrq_u8(x, vceqq_u8(s, w3)); + + x = vmvnq_u8(x); // Negate + x = vrev64q_u8(x); // Rev in 64 + uint64_t low = vgetq_lane_u64(vreinterpretq_u64_u8(x), 0); // extract + uint64_t high = vgetq_lane_u64(vreinterpretq_u64_u8(x), 1); // extract + + if (low == 0) { + if (high != 0) { + uint32_t lz = internal::clzll(high); + return p + 8 + (lz >> 3); + } + } else { + uint32_t lz = internal::clzll(low); + return p + (lz >> 3); + } + } +} + +inline const char *SkipWhitespace_SIMD(const char* p, const char* end) { + // Fast return for single non-whitespace + if (p != end && (*p == ' ' || *p == '\n' || *p == '\r' || *p == '\t')) + ++p; + else + return p; + + const uint8x16_t w0 = vmovq_n_u8(' '); + const uint8x16_t w1 = vmovq_n_u8('\n'); + const uint8x16_t w2 = vmovq_n_u8('\r'); + const uint8x16_t w3 = vmovq_n_u8('\t'); + + for (; p <= end - 16; p += 16) { + const uint8x16_t s = vld1q_u8(reinterpret_cast(p)); + uint8x16_t x = vceqq_u8(s, w0); + x = vorrq_u8(x, vceqq_u8(s, w1)); + x = vorrq_u8(x, vceqq_u8(s, w2)); + x = vorrq_u8(x, vceqq_u8(s, w3)); + + x = vmvnq_u8(x); // Negate + x = vrev64q_u8(x); // Rev in 64 + uint64_t low = vgetq_lane_u64(vreinterpretq_u64_u8(x), 0); // extract + uint64_t high = vgetq_lane_u64(vreinterpretq_u64_u8(x), 1); // extract + + if (low == 0) { + if (high != 0) { + uint32_t lz = internal::clzll(high); + return p + 8 + (lz >> 3); + } + } else { + uint32_t lz = internal::clzll(low); + return p + (lz >> 3); + } + } + + return SkipWhitespace(p, end); +} + +#endif // RAPIDJSON_NEON + +#ifdef RAPIDJSON_SIMD +//! Template function specialization for InsituStringStream +template<> inline void SkipWhitespace(InsituStringStream& is) { + is.src_ = const_cast(SkipWhitespace_SIMD(is.src_)); +} + +//! Template function specialization for StringStream +template<> inline void SkipWhitespace(StringStream& is) { + is.src_ = SkipWhitespace_SIMD(is.src_); +} + +template<> inline void SkipWhitespace(EncodedInputStream, MemoryStream>& is) { + is.is_.src_ = SkipWhitespace_SIMD(is.is_.src_, is.is_.end_); +} +#endif // RAPIDJSON_SIMD + +/////////////////////////////////////////////////////////////////////////////// +// GenericReader + +//! SAX-style JSON parser. Use \ref Reader for UTF8 encoding and default allocator. +/*! GenericReader parses JSON text from a stream, and send events synchronously to an + object implementing Handler concept. + + It needs to allocate a stack for storing a single decoded string during + non-destructive parsing. + + For in-situ parsing, the decoded string is directly written to the source + text string, no temporary buffer is required. + + A GenericReader object can be reused for parsing multiple JSON text. + + \tparam SourceEncoding Encoding of the input stream. + \tparam TargetEncoding Encoding of the parse output. + \tparam StackAllocator Allocator type for stack. +*/ +template +class GenericReader { +public: + typedef typename SourceEncoding::Ch Ch; //!< SourceEncoding character type + + //! Constructor. + /*! \param stackAllocator Optional allocator for allocating stack memory. (Only use for non-destructive parsing) + \param stackCapacity stack capacity in bytes for storing a single decoded string. (Only use for non-destructive parsing) + */ + GenericReader(StackAllocator* stackAllocator = 0, size_t stackCapacity = kDefaultStackCapacity) : + stack_(stackAllocator, stackCapacity), parseResult_(), state_(IterativeParsingStartState) {} + + //! Parse JSON text. + /*! \tparam parseFlags Combination of \ref ParseFlag. + \tparam InputStream Type of input stream, implementing Stream concept. + \tparam Handler Type of handler, implementing Handler concept. + \param is Input stream to be parsed. + \param handler The handler to receive events. + \return Whether the parsing is successful. + */ + template + ParseResult Parse(InputStream& is, Handler& handler) { + if (parseFlags & kParseIterativeFlag) + return IterativeParse(is, handler); + + parseResult_.Clear(); + + ClearStackOnExit scope(*this); + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_); + + if (RAPIDJSON_UNLIKELY(is.Peek() == '\0')) { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorDocumentEmpty, is.Tell()); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_); + } + else { + ParseValue(is, handler); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_); + + if (!(parseFlags & kParseStopWhenDoneFlag)) { + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_); + + if (RAPIDJSON_UNLIKELY(is.Peek() != '\0')) { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorDocumentRootNotSingular, is.Tell()); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_); + } + } + } + + return parseResult_; + } + + //! Parse JSON text (with \ref kParseDefaultFlags) + /*! \tparam InputStream Type of input stream, implementing Stream concept + \tparam Handler Type of handler, implementing Handler concept. + \param is Input stream to be parsed. + \param handler The handler to receive events. + \return Whether the parsing is successful. + */ + template + ParseResult Parse(InputStream& is, Handler& handler) { + return Parse(is, handler); + } + + //! Initialize JSON text token-by-token parsing + /*! + */ + void IterativeParseInit() { + parseResult_.Clear(); + state_ = IterativeParsingStartState; + } + + //! Parse one token from JSON text + /*! \tparam InputStream Type of input stream, implementing Stream concept + \tparam Handler Type of handler, implementing Handler concept. + \param is Input stream to be parsed. + \param handler The handler to receive events. + \return Whether the parsing is successful. + */ + template + bool IterativeParseNext(InputStream& is, Handler& handler) { + while (RAPIDJSON_LIKELY(is.Peek() != '\0')) { + SkipWhitespaceAndComments(is); + + Token t = Tokenize(is.Peek()); + IterativeParsingState n = Predict(state_, t); + IterativeParsingState d = Transit(state_, t, n, is, handler); + + // If we've finished or hit an error... + if (RAPIDJSON_UNLIKELY(IsIterativeParsingCompleteState(d))) { + // Report errors. + if (d == IterativeParsingErrorState) { + HandleError(state_, is); + return false; + } + + // Transition to the finish state. + RAPIDJSON_ASSERT(d == IterativeParsingFinishState); + state_ = d; + + // If StopWhenDone is not set... + if (!(parseFlags & kParseStopWhenDoneFlag)) { + // ... and extra non-whitespace data is found... + SkipWhitespaceAndComments(is); + if (is.Peek() != '\0') { + // ... this is considered an error. + HandleError(state_, is); + return false; + } + } + + // Success! We are done! + return true; + } + + // Transition to the new state. + state_ = d; + + // If we parsed anything other than a delimiter, we invoked the handler, so we can return true now. + if (!IsIterativeParsingDelimiterState(n)) + return true; + } + + // We reached the end of file. + stack_.Clear(); + + if (state_ != IterativeParsingFinishState) { + HandleError(state_, is); + return false; + } + + return true; + } + + //! Check if token-by-token parsing JSON text is complete + /*! \return Whether the JSON has been fully decoded. + */ + RAPIDJSON_FORCEINLINE bool IterativeParseComplete() const { + return IsIterativeParsingCompleteState(state_); + } + + //! Whether a parse error has occurred in the last parsing. + bool HasParseError() const { return parseResult_.IsError(); } + + //! Get the \ref ParseErrorCode of last parsing. + ParseErrorCode GetParseErrorCode() const { return parseResult_.Code(); } + + //! Get the position of last parsing error in input, 0 otherwise. + size_t GetErrorOffset() const { return parseResult_.Offset(); } + +protected: + void SetParseError(ParseErrorCode code, size_t offset) { parseResult_.Set(code, offset); } + +private: + // Prohibit copy constructor & assignment operator. + GenericReader(const GenericReader&); + GenericReader& operator=(const GenericReader&); + + void ClearStack() { stack_.Clear(); } + + // clear stack on any exit from ParseStream, e.g. due to exception + struct ClearStackOnExit { + explicit ClearStackOnExit(GenericReader& r) : r_(r) {} + ~ClearStackOnExit() { r_.ClearStack(); } + private: + GenericReader& r_; + ClearStackOnExit(const ClearStackOnExit&); + ClearStackOnExit& operator=(const ClearStackOnExit&); + }; + + template + void SkipWhitespaceAndComments(InputStream& is) { + SkipWhitespace(is); + + if (parseFlags & kParseCommentsFlag) { + while (RAPIDJSON_UNLIKELY(Consume(is, '/'))) { + if (Consume(is, '*')) { + while (true) { + if (RAPIDJSON_UNLIKELY(is.Peek() == '\0')) + RAPIDJSON_PARSE_ERROR(kParseErrorUnspecificSyntaxError, is.Tell()); + else if (Consume(is, '*')) { + if (Consume(is, '/')) + break; + } + else + is.Take(); + } + } + else if (RAPIDJSON_LIKELY(Consume(is, '/'))) + while (is.Peek() != '\0' && is.Take() != '\n') {} + else + RAPIDJSON_PARSE_ERROR(kParseErrorUnspecificSyntaxError, is.Tell()); + + SkipWhitespace(is); + } + } + } + + // Parse object: { string : value, ... } + template + void ParseObject(InputStream& is, Handler& handler) { + RAPIDJSON_ASSERT(is.Peek() == '{'); + is.Take(); // Skip '{' + + if (RAPIDJSON_UNLIKELY(!handler.StartObject())) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + if (Consume(is, '}')) { + if (RAPIDJSON_UNLIKELY(!handler.EndObject(0))) // empty object + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + return; + } + + for (SizeType memberCount = 0;;) { + if (RAPIDJSON_UNLIKELY(is.Peek() != '"')) + RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissName, is.Tell()); + + ParseString(is, handler, true); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + if (RAPIDJSON_UNLIKELY(!Consume(is, ':'))) + RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissColon, is.Tell()); + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + ParseValue(is, handler); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + ++memberCount; + + switch (is.Peek()) { + case ',': + is.Take(); + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + break; + case '}': + is.Take(); + if (RAPIDJSON_UNLIKELY(!handler.EndObject(memberCount))) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + return; + default: + RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissCommaOrCurlyBracket, is.Tell()); break; // This useless break is only for making warning and coverage happy + } + + if (parseFlags & kParseTrailingCommasFlag) { + if (is.Peek() == '}') { + if (RAPIDJSON_UNLIKELY(!handler.EndObject(memberCount))) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + is.Take(); + return; + } + } + } + } + + // Parse array: [ value, ... ] + template + void ParseArray(InputStream& is, Handler& handler) { + RAPIDJSON_ASSERT(is.Peek() == '['); + is.Take(); // Skip '[' + + if (RAPIDJSON_UNLIKELY(!handler.StartArray())) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + if (Consume(is, ']')) { + if (RAPIDJSON_UNLIKELY(!handler.EndArray(0))) // empty array + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + return; + } + + for (SizeType elementCount = 0;;) { + ParseValue(is, handler); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + ++elementCount; + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + + if (Consume(is, ',')) { + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + } + else if (Consume(is, ']')) { + if (RAPIDJSON_UNLIKELY(!handler.EndArray(elementCount))) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + return; + } + else + RAPIDJSON_PARSE_ERROR(kParseErrorArrayMissCommaOrSquareBracket, is.Tell()); + + if (parseFlags & kParseTrailingCommasFlag) { + if (is.Peek() == ']') { + if (RAPIDJSON_UNLIKELY(!handler.EndArray(elementCount))) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + is.Take(); + return; + } + } + } + } + + template + void ParseNull(InputStream& is, Handler& handler) { + RAPIDJSON_ASSERT(is.Peek() == 'n'); + is.Take(); + + if (RAPIDJSON_LIKELY(Consume(is, 'u') && Consume(is, 'l') && Consume(is, 'l'))) { + if (RAPIDJSON_UNLIKELY(!handler.Null())) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + } + else + RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, is.Tell()); + } + + template + void ParseTrue(InputStream& is, Handler& handler) { + RAPIDJSON_ASSERT(is.Peek() == 't'); + is.Take(); + + if (RAPIDJSON_LIKELY(Consume(is, 'r') && Consume(is, 'u') && Consume(is, 'e'))) { + if (RAPIDJSON_UNLIKELY(!handler.Bool(true))) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + } + else + RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, is.Tell()); + } + + template + void ParseFalse(InputStream& is, Handler& handler) { + RAPIDJSON_ASSERT(is.Peek() == 'f'); + is.Take(); + + if (RAPIDJSON_LIKELY(Consume(is, 'a') && Consume(is, 'l') && Consume(is, 's') && Consume(is, 'e'))) { + if (RAPIDJSON_UNLIKELY(!handler.Bool(false))) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); + } + else + RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, is.Tell()); + } + + template + RAPIDJSON_FORCEINLINE static bool Consume(InputStream& is, typename InputStream::Ch expect) { + if (RAPIDJSON_LIKELY(is.Peek() == expect)) { + is.Take(); + return true; + } + else + return false; + } + + // Helper function to parse four hexadecimal digits in \uXXXX in ParseString(). + template + unsigned ParseHex4(InputStream& is, size_t escapeOffset) { + unsigned codepoint = 0; + for (int i = 0; i < 4; i++) { + Ch c = is.Peek(); + codepoint <<= 4; + codepoint += static_cast(c); + if (c >= '0' && c <= '9') + codepoint -= '0'; + else if (c >= 'A' && c <= 'F') + codepoint -= 'A' - 10; + else if (c >= 'a' && c <= 'f') + codepoint -= 'a' - 10; + else { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorStringUnicodeEscapeInvalidHex, escapeOffset); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(0); + } + is.Take(); + } + return codepoint; + } + + template + class StackStream { + public: + typedef CharType Ch; + + StackStream(internal::Stack& stack) : stack_(stack), length_(0) {} + RAPIDJSON_FORCEINLINE void Put(Ch c) { + *stack_.template Push() = c; + ++length_; + } + + RAPIDJSON_FORCEINLINE void* Push(SizeType count) { + length_ += count; + return stack_.template Push(count); + } + + size_t Length() const { return length_; } + + Ch* Pop() { + return stack_.template Pop(length_); + } + + private: + StackStream(const StackStream&); + StackStream& operator=(const StackStream&); + + internal::Stack& stack_; + SizeType length_; + }; + + // Parse string and generate String event. Different code paths for kParseInsituFlag. + template + void ParseString(InputStream& is, Handler& handler, bool isKey = false) { + internal::StreamLocalCopy copy(is); + InputStream& s(copy.s); + + RAPIDJSON_ASSERT(s.Peek() == '\"'); + s.Take(); // Skip '\"' + + bool success = false; + if (parseFlags & kParseInsituFlag) { + typename InputStream::Ch *head = s.PutBegin(); + ParseStringToStream(s, s); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + size_t length = s.PutEnd(head) - 1; + RAPIDJSON_ASSERT(length <= 0xFFFFFFFF); + const typename TargetEncoding::Ch* const str = reinterpret_cast(head); + success = (isKey ? handler.Key(str, SizeType(length), false) : handler.String(str, SizeType(length), false)); + } + else { + StackStream stackStream(stack_); + ParseStringToStream(s, stackStream); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + SizeType length = static_cast(stackStream.Length()) - 1; + const typename TargetEncoding::Ch* const str = stackStream.Pop(); + success = (isKey ? handler.Key(str, length, true) : handler.String(str, length, true)); + } + if (RAPIDJSON_UNLIKELY(!success)) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, s.Tell()); + } + + // Parse string to an output is + // This function handles the prefix/suffix double quotes, escaping, and optional encoding validation. + template + RAPIDJSON_FORCEINLINE void ParseStringToStream(InputStream& is, OutputStream& os) { +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN +#define Z16 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + static const char escape[256] = { + Z16, Z16, 0, 0,'\"', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '/', + Z16, Z16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,'\\', 0, 0, 0, + 0, 0,'\b', 0, 0, 0,'\f', 0, 0, 0, 0, 0, 0, 0,'\n', 0, + 0, 0,'\r', 0,'\t', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + Z16, Z16, Z16, Z16, Z16, Z16, Z16, Z16 + }; +#undef Z16 +//!@endcond + + for (;;) { + // Scan and copy string before "\\\"" or < 0x20. This is an optional optimzation. + if (!(parseFlags & kParseValidateEncodingFlag)) + ScanCopyUnescapedString(is, os); + + Ch c = is.Peek(); + if (RAPIDJSON_UNLIKELY(c == '\\')) { // Escape + size_t escapeOffset = is.Tell(); // For invalid escaping, report the initial '\\' as error offset + is.Take(); + Ch e = is.Peek(); + if ((sizeof(Ch) == 1 || unsigned(e) < 256) && RAPIDJSON_LIKELY(escape[static_cast(e)])) { + is.Take(); + os.Put(static_cast(escape[static_cast(e)])); + } + else if ((parseFlags & kParseEscapedApostropheFlag) && RAPIDJSON_LIKELY(e == '\'')) { // Allow escaped apostrophe + is.Take(); + os.Put('\''); + } + else if (RAPIDJSON_LIKELY(e == 'u')) { // Unicode + is.Take(); + unsigned codepoint = ParseHex4(is, escapeOffset); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + if (RAPIDJSON_UNLIKELY(codepoint >= 0xD800 && codepoint <= 0xDFFF)) { + // high surrogate, check if followed by valid low surrogate + if (RAPIDJSON_LIKELY(codepoint <= 0xDBFF)) { + // Handle UTF-16 surrogate pair + if (RAPIDJSON_UNLIKELY(!Consume(is, '\\') || !Consume(is, 'u'))) + RAPIDJSON_PARSE_ERROR(kParseErrorStringUnicodeSurrogateInvalid, escapeOffset); + unsigned codepoint2 = ParseHex4(is, escapeOffset); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN_VOID; + if (RAPIDJSON_UNLIKELY(codepoint2 < 0xDC00 || codepoint2 > 0xDFFF)) + RAPIDJSON_PARSE_ERROR(kParseErrorStringUnicodeSurrogateInvalid, escapeOffset); + codepoint = (((codepoint - 0xD800) << 10) | (codepoint2 - 0xDC00)) + 0x10000; + } + // single low surrogate + else + { + RAPIDJSON_PARSE_ERROR(kParseErrorStringUnicodeSurrogateInvalid, escapeOffset); + } + } + TEncoding::Encode(os, codepoint); + } + else + RAPIDJSON_PARSE_ERROR(kParseErrorStringEscapeInvalid, escapeOffset); + } + else if (RAPIDJSON_UNLIKELY(c == '"')) { // Closing double quote + is.Take(); + os.Put('\0'); // null-terminate the string + return; + } + else if (RAPIDJSON_UNLIKELY(static_cast(c) < 0x20)) { // RFC 4627: unescaped = %x20-21 / %x23-5B / %x5D-10FFFF + if (c == '\0') + RAPIDJSON_PARSE_ERROR(kParseErrorStringMissQuotationMark, is.Tell()); + else + RAPIDJSON_PARSE_ERROR(kParseErrorStringInvalidEncoding, is.Tell()); + } + else { + size_t offset = is.Tell(); + if (RAPIDJSON_UNLIKELY((parseFlags & kParseValidateEncodingFlag ? + !Transcoder::Validate(is, os) : + !Transcoder::Transcode(is, os)))) + RAPIDJSON_PARSE_ERROR(kParseErrorStringInvalidEncoding, offset); + } + } + } + + template + static RAPIDJSON_FORCEINLINE void ScanCopyUnescapedString(InputStream&, OutputStream&) { + // Do nothing for generic version + } + +#if defined(RAPIDJSON_SSE2) || defined(RAPIDJSON_SSE42) + // StringStream -> StackStream + static RAPIDJSON_FORCEINLINE void ScanCopyUnescapedString(StringStream& is, StackStream& os) { + const char* p = is.src_; + + // Scan one by one until alignment (unaligned load may cross page boundary and cause crash) + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + while (p != nextAligned) + if (RAPIDJSON_UNLIKELY(*p == '\"') || RAPIDJSON_UNLIKELY(*p == '\\') || RAPIDJSON_UNLIKELY(static_cast(*p) < 0x20)) { + is.src_ = p; + return; + } + else + os.Put(*p++); + + // The rest of string using SIMD + static const char dquote[16] = { '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"' }; + static const char bslash[16] = { '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\' }; + static const char space[16] = { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F }; + const __m128i dq = _mm_loadu_si128(reinterpret_cast(&dquote[0])); + const __m128i bs = _mm_loadu_si128(reinterpret_cast(&bslash[0])); + const __m128i sp = _mm_loadu_si128(reinterpret_cast(&space[0])); + + for (;; p += 16) { + const __m128i s = _mm_load_si128(reinterpret_cast(p)); + const __m128i t1 = _mm_cmpeq_epi8(s, dq); + const __m128i t2 = _mm_cmpeq_epi8(s, bs); + const __m128i t3 = _mm_cmpeq_epi8(_mm_max_epu8(s, sp), sp); // s < 0x20 <=> max(s, 0x1F) == 0x1F + const __m128i x = _mm_or_si128(_mm_or_si128(t1, t2), t3); + unsigned short r = static_cast(_mm_movemask_epi8(x)); + if (RAPIDJSON_UNLIKELY(r != 0)) { // some of characters is escaped + SizeType length; + #ifdef _MSC_VER // Find the index of first escaped + unsigned long offset; + _BitScanForward(&offset, r); + length = offset; + #else + length = static_cast(__builtin_ffs(r) - 1); + #endif + if (length != 0) { + char* q = reinterpret_cast(os.Push(length)); + for (size_t i = 0; i < length; i++) + q[i] = p[i]; + + p += length; + } + break; + } + _mm_storeu_si128(reinterpret_cast<__m128i *>(os.Push(16)), s); + } + + is.src_ = p; + } + + // InsituStringStream -> InsituStringStream + static RAPIDJSON_FORCEINLINE void ScanCopyUnescapedString(InsituStringStream& is, InsituStringStream& os) { + RAPIDJSON_ASSERT(&is == &os); + (void)os; + + if (is.src_ == is.dst_) { + SkipUnescapedString(is); + return; + } + + char* p = is.src_; + char *q = is.dst_; + + // Scan one by one until alignment (unaligned load may cross page boundary and cause crash) + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + while (p != nextAligned) + if (RAPIDJSON_UNLIKELY(*p == '\"') || RAPIDJSON_UNLIKELY(*p == '\\') || RAPIDJSON_UNLIKELY(static_cast(*p) < 0x20)) { + is.src_ = p; + is.dst_ = q; + return; + } + else + *q++ = *p++; + + // The rest of string using SIMD + static const char dquote[16] = { '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"' }; + static const char bslash[16] = { '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\' }; + static const char space[16] = { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F }; + const __m128i dq = _mm_loadu_si128(reinterpret_cast(&dquote[0])); + const __m128i bs = _mm_loadu_si128(reinterpret_cast(&bslash[0])); + const __m128i sp = _mm_loadu_si128(reinterpret_cast(&space[0])); + + for (;; p += 16, q += 16) { + const __m128i s = _mm_load_si128(reinterpret_cast(p)); + const __m128i t1 = _mm_cmpeq_epi8(s, dq); + const __m128i t2 = _mm_cmpeq_epi8(s, bs); + const __m128i t3 = _mm_cmpeq_epi8(_mm_max_epu8(s, sp), sp); // s < 0x20 <=> max(s, 0x1F) == 0x1F + const __m128i x = _mm_or_si128(_mm_or_si128(t1, t2), t3); + unsigned short r = static_cast(_mm_movemask_epi8(x)); + if (RAPIDJSON_UNLIKELY(r != 0)) { // some of characters is escaped + size_t length; +#ifdef _MSC_VER // Find the index of first escaped + unsigned long offset; + _BitScanForward(&offset, r); + length = offset; +#else + length = static_cast(__builtin_ffs(r) - 1); +#endif + for (const char* pend = p + length; p != pend; ) + *q++ = *p++; + break; + } + _mm_storeu_si128(reinterpret_cast<__m128i *>(q), s); + } + + is.src_ = p; + is.dst_ = q; + } + + // When read/write pointers are the same for insitu stream, just skip unescaped characters + static RAPIDJSON_FORCEINLINE void SkipUnescapedString(InsituStringStream& is) { + RAPIDJSON_ASSERT(is.src_ == is.dst_); + char* p = is.src_; + + // Scan one by one until alignment (unaligned load may cross page boundary and cause crash) + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + for (; p != nextAligned; p++) + if (RAPIDJSON_UNLIKELY(*p == '\"') || RAPIDJSON_UNLIKELY(*p == '\\') || RAPIDJSON_UNLIKELY(static_cast(*p) < 0x20)) { + is.src_ = is.dst_ = p; + return; + } + + // The rest of string using SIMD + static const char dquote[16] = { '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"' }; + static const char bslash[16] = { '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\' }; + static const char space[16] = { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F }; + const __m128i dq = _mm_loadu_si128(reinterpret_cast(&dquote[0])); + const __m128i bs = _mm_loadu_si128(reinterpret_cast(&bslash[0])); + const __m128i sp = _mm_loadu_si128(reinterpret_cast(&space[0])); + + for (;; p += 16) { + const __m128i s = _mm_load_si128(reinterpret_cast(p)); + const __m128i t1 = _mm_cmpeq_epi8(s, dq); + const __m128i t2 = _mm_cmpeq_epi8(s, bs); + const __m128i t3 = _mm_cmpeq_epi8(_mm_max_epu8(s, sp), sp); // s < 0x20 <=> max(s, 0x1F) == 0x1F + const __m128i x = _mm_or_si128(_mm_or_si128(t1, t2), t3); + unsigned short r = static_cast(_mm_movemask_epi8(x)); + if (RAPIDJSON_UNLIKELY(r != 0)) { // some of characters is escaped + size_t length; +#ifdef _MSC_VER // Find the index of first escaped + unsigned long offset; + _BitScanForward(&offset, r); + length = offset; +#else + length = static_cast(__builtin_ffs(r) - 1); +#endif + p += length; + break; + } + } + + is.src_ = is.dst_ = p; + } +#elif defined(RAPIDJSON_NEON) + // StringStream -> StackStream + static RAPIDJSON_FORCEINLINE void ScanCopyUnescapedString(StringStream& is, StackStream& os) { + const char* p = is.src_; + + // Scan one by one until alignment (unaligned load may cross page boundary and cause crash) + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + while (p != nextAligned) + if (RAPIDJSON_UNLIKELY(*p == '\"') || RAPIDJSON_UNLIKELY(*p == '\\') || RAPIDJSON_UNLIKELY(static_cast(*p) < 0x20)) { + is.src_ = p; + return; + } + else + os.Put(*p++); + + // The rest of string using SIMD + const uint8x16_t s0 = vmovq_n_u8('"'); + const uint8x16_t s1 = vmovq_n_u8('\\'); + const uint8x16_t s2 = vmovq_n_u8('\b'); + const uint8x16_t s3 = vmovq_n_u8(32); + + for (;; p += 16) { + const uint8x16_t s = vld1q_u8(reinterpret_cast(p)); + uint8x16_t x = vceqq_u8(s, s0); + x = vorrq_u8(x, vceqq_u8(s, s1)); + x = vorrq_u8(x, vceqq_u8(s, s2)); + x = vorrq_u8(x, vcltq_u8(s, s3)); + + x = vrev64q_u8(x); // Rev in 64 + uint64_t low = vgetq_lane_u64(vreinterpretq_u64_u8(x), 0); // extract + uint64_t high = vgetq_lane_u64(vreinterpretq_u64_u8(x), 1); // extract + + SizeType length = 0; + bool escaped = false; + if (low == 0) { + if (high != 0) { + uint32_t lz = internal::clzll(high); + length = 8 + (lz >> 3); + escaped = true; + } + } else { + uint32_t lz = internal::clzll(low); + length = lz >> 3; + escaped = true; + } + if (RAPIDJSON_UNLIKELY(escaped)) { // some of characters is escaped + if (length != 0) { + char* q = reinterpret_cast(os.Push(length)); + for (size_t i = 0; i < length; i++) + q[i] = p[i]; + + p += length; + } + break; + } + vst1q_u8(reinterpret_cast(os.Push(16)), s); + } + + is.src_ = p; + } + + // InsituStringStream -> InsituStringStream + static RAPIDJSON_FORCEINLINE void ScanCopyUnescapedString(InsituStringStream& is, InsituStringStream& os) { + RAPIDJSON_ASSERT(&is == &os); + (void)os; + + if (is.src_ == is.dst_) { + SkipUnescapedString(is); + return; + } + + char* p = is.src_; + char *q = is.dst_; + + // Scan one by one until alignment (unaligned load may cross page boundary and cause crash) + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + while (p != nextAligned) + if (RAPIDJSON_UNLIKELY(*p == '\"') || RAPIDJSON_UNLIKELY(*p == '\\') || RAPIDJSON_UNLIKELY(static_cast(*p) < 0x20)) { + is.src_ = p; + is.dst_ = q; + return; + } + else + *q++ = *p++; + + // The rest of string using SIMD + const uint8x16_t s0 = vmovq_n_u8('"'); + const uint8x16_t s1 = vmovq_n_u8('\\'); + const uint8x16_t s2 = vmovq_n_u8('\b'); + const uint8x16_t s3 = vmovq_n_u8(32); + + for (;; p += 16, q += 16) { + const uint8x16_t s = vld1q_u8(reinterpret_cast(p)); + uint8x16_t x = vceqq_u8(s, s0); + x = vorrq_u8(x, vceqq_u8(s, s1)); + x = vorrq_u8(x, vceqq_u8(s, s2)); + x = vorrq_u8(x, vcltq_u8(s, s3)); + + x = vrev64q_u8(x); // Rev in 64 + uint64_t low = vgetq_lane_u64(vreinterpretq_u64_u8(x), 0); // extract + uint64_t high = vgetq_lane_u64(vreinterpretq_u64_u8(x), 1); // extract + + SizeType length = 0; + bool escaped = false; + if (low == 0) { + if (high != 0) { + uint32_t lz = internal::clzll(high); + length = 8 + (lz >> 3); + escaped = true; + } + } else { + uint32_t lz = internal::clzll(low); + length = lz >> 3; + escaped = true; + } + if (RAPIDJSON_UNLIKELY(escaped)) { // some of characters is escaped + for (const char* pend = p + length; p != pend; ) { + *q++ = *p++; + } + break; + } + vst1q_u8(reinterpret_cast(q), s); + } + + is.src_ = p; + is.dst_ = q; + } + + // When read/write pointers are the same for insitu stream, just skip unescaped characters + static RAPIDJSON_FORCEINLINE void SkipUnescapedString(InsituStringStream& is) { + RAPIDJSON_ASSERT(is.src_ == is.dst_); + char* p = is.src_; + + // Scan one by one until alignment (unaligned load may cross page boundary and cause crash) + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + for (; p != nextAligned; p++) + if (RAPIDJSON_UNLIKELY(*p == '\"') || RAPIDJSON_UNLIKELY(*p == '\\') || RAPIDJSON_UNLIKELY(static_cast(*p) < 0x20)) { + is.src_ = is.dst_ = p; + return; + } + + // The rest of string using SIMD + const uint8x16_t s0 = vmovq_n_u8('"'); + const uint8x16_t s1 = vmovq_n_u8('\\'); + const uint8x16_t s2 = vmovq_n_u8('\b'); + const uint8x16_t s3 = vmovq_n_u8(32); + + for (;; p += 16) { + const uint8x16_t s = vld1q_u8(reinterpret_cast(p)); + uint8x16_t x = vceqq_u8(s, s0); + x = vorrq_u8(x, vceqq_u8(s, s1)); + x = vorrq_u8(x, vceqq_u8(s, s2)); + x = vorrq_u8(x, vcltq_u8(s, s3)); + + x = vrev64q_u8(x); // Rev in 64 + uint64_t low = vgetq_lane_u64(vreinterpretq_u64_u8(x), 0); // extract + uint64_t high = vgetq_lane_u64(vreinterpretq_u64_u8(x), 1); // extract + + if (low == 0) { + if (high != 0) { + uint32_t lz = internal::clzll(high); + p += 8 + (lz >> 3); + break; + } + } else { + uint32_t lz = internal::clzll(low); + p += lz >> 3; + break; + } + } + + is.src_ = is.dst_ = p; + } +#endif // RAPIDJSON_NEON + + template + class NumberStream; + + template + class NumberStream { + public: + typedef typename InputStream::Ch Ch; + + NumberStream(GenericReader& reader, InputStream& s) : is(s) { (void)reader; } + + RAPIDJSON_FORCEINLINE Ch Peek() const { return is.Peek(); } + RAPIDJSON_FORCEINLINE Ch TakePush() { return is.Take(); } + RAPIDJSON_FORCEINLINE Ch Take() { return is.Take(); } + RAPIDJSON_FORCEINLINE void Push(char) {} + + size_t Tell() { return is.Tell(); } + size_t Length() { return 0; } + const char* Pop() { return 0; } + + protected: + NumberStream& operator=(const NumberStream&); + + InputStream& is; + }; + + template + class NumberStream : public NumberStream { + typedef NumberStream Base; + public: + NumberStream(GenericReader& reader, InputStream& is) : Base(reader, is), stackStream(reader.stack_) {} + + RAPIDJSON_FORCEINLINE Ch TakePush() { + stackStream.Put(static_cast(Base::is.Peek())); + return Base::is.Take(); + } + + RAPIDJSON_FORCEINLINE void Push(char c) { + stackStream.Put(c); + } + + size_t Length() { return stackStream.Length(); } + + const char* Pop() { + stackStream.Put('\0'); + return stackStream.Pop(); + } + + private: + StackStream stackStream; + }; + + template + class NumberStream : public NumberStream { + typedef NumberStream Base; + public: + NumberStream(GenericReader& reader, InputStream& is) : Base(reader, is) {} + + RAPIDJSON_FORCEINLINE Ch Take() { return Base::TakePush(); } + }; + + template + void ParseNumber(InputStream& is, Handler& handler) { + internal::StreamLocalCopy copy(is); + NumberStream s(*this, copy.s); + + size_t startOffset = s.Tell(); + double d = 0.0; + bool useNanOrInf = false; + + // Parse minus + bool minus = Consume(s, '-'); + + // Parse int: zero / ( digit1-9 *DIGIT ) + unsigned i = 0; + uint64_t i64 = 0; + bool use64bit = false; + int significandDigit = 0; + if (RAPIDJSON_UNLIKELY(s.Peek() == '0')) { + i = 0; + s.TakePush(); + } + else if (RAPIDJSON_LIKELY(s.Peek() >= '1' && s.Peek() <= '9')) { + i = static_cast(s.TakePush() - '0'); + + if (minus) + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + if (RAPIDJSON_UNLIKELY(i >= 214748364)) { // 2^31 = 2147483648 + if (RAPIDJSON_LIKELY(i != 214748364 || s.Peek() > '8')) { + i64 = i; + use64bit = true; + break; + } + } + i = i * 10 + static_cast(s.TakePush() - '0'); + significandDigit++; + } + else + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + if (RAPIDJSON_UNLIKELY(i >= 429496729)) { // 2^32 - 1 = 4294967295 + if (RAPIDJSON_LIKELY(i != 429496729 || s.Peek() > '5')) { + i64 = i; + use64bit = true; + break; + } + } + i = i * 10 + static_cast(s.TakePush() - '0'); + significandDigit++; + } + } + // Parse NaN or Infinity here + else if ((parseFlags & kParseNanAndInfFlag) && RAPIDJSON_LIKELY((s.Peek() == 'I' || s.Peek() == 'N'))) { + if (Consume(s, 'N')) { + if (Consume(s, 'a') && Consume(s, 'N')) { + d = std::numeric_limits::quiet_NaN(); + useNanOrInf = true; + } + } + else if (RAPIDJSON_LIKELY(Consume(s, 'I'))) { + if (Consume(s, 'n') && Consume(s, 'f')) { + d = (minus ? -std::numeric_limits::infinity() : std::numeric_limits::infinity()); + useNanOrInf = true; + + if (RAPIDJSON_UNLIKELY(s.Peek() == 'i' && !(Consume(s, 'i') && Consume(s, 'n') + && Consume(s, 'i') && Consume(s, 't') && Consume(s, 'y')))) { + RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, s.Tell()); + } + } + } + + if (RAPIDJSON_UNLIKELY(!useNanOrInf)) { + RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, s.Tell()); + } + } + else + RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, s.Tell()); + + // Parse 64bit int + bool useDouble = false; + if (use64bit) { + if (minus) + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + if (RAPIDJSON_UNLIKELY(i64 >= RAPIDJSON_UINT64_C2(0x0CCCCCCC, 0xCCCCCCCC))) // 2^63 = 9223372036854775808 + if (RAPIDJSON_LIKELY(i64 != RAPIDJSON_UINT64_C2(0x0CCCCCCC, 0xCCCCCCCC) || s.Peek() > '8')) { + d = static_cast(i64); + useDouble = true; + break; + } + i64 = i64 * 10 + static_cast(s.TakePush() - '0'); + significandDigit++; + } + else + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + if (RAPIDJSON_UNLIKELY(i64 >= RAPIDJSON_UINT64_C2(0x19999999, 0x99999999))) // 2^64 - 1 = 18446744073709551615 + if (RAPIDJSON_LIKELY(i64 != RAPIDJSON_UINT64_C2(0x19999999, 0x99999999) || s.Peek() > '5')) { + d = static_cast(i64); + useDouble = true; + break; + } + i64 = i64 * 10 + static_cast(s.TakePush() - '0'); + significandDigit++; + } + } + + // Force double for big integer + if (useDouble) { + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + d = d * 10 + (s.TakePush() - '0'); + } + } + + // Parse frac = decimal-point 1*DIGIT + int expFrac = 0; + size_t decimalPosition; + if (Consume(s, '.')) { + decimalPosition = s.Length(); + + if (RAPIDJSON_UNLIKELY(!(s.Peek() >= '0' && s.Peek() <= '9'))) + RAPIDJSON_PARSE_ERROR(kParseErrorNumberMissFraction, s.Tell()); + + if (!useDouble) { +#if RAPIDJSON_64BIT + // Use i64 to store significand in 64-bit architecture + if (!use64bit) + i64 = i; + + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + if (i64 > RAPIDJSON_UINT64_C2(0x1FFFFF, 0xFFFFFFFF)) // 2^53 - 1 for fast path + break; + else { + i64 = i64 * 10 + static_cast(s.TakePush() - '0'); + --expFrac; + if (i64 != 0) + significandDigit++; + } + } + + d = static_cast(i64); +#else + // Use double to store significand in 32-bit architecture + d = static_cast(use64bit ? i64 : i); +#endif + useDouble = true; + } + + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + if (significandDigit < 17) { + d = d * 10.0 + (s.TakePush() - '0'); + --expFrac; + if (RAPIDJSON_LIKELY(d > 0.0)) + significandDigit++; + } + else + s.TakePush(); + } + } + else + decimalPosition = s.Length(); // decimal position at the end of integer. + + // Parse exp = e [ minus / plus ] 1*DIGIT + int exp = 0; + if (Consume(s, 'e') || Consume(s, 'E')) { + if (!useDouble) { + d = static_cast(use64bit ? i64 : i); + useDouble = true; + } + + bool expMinus = false; + if (Consume(s, '+')) + ; + else if (Consume(s, '-')) + expMinus = true; + + if (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + exp = static_cast(s.Take() - '0'); + if (expMinus) { + // (exp + expFrac) must not underflow int => we're detecting when -exp gets + // dangerously close to INT_MIN (a pessimistic next digit 9 would push it into + // underflow territory): + // + // -(exp * 10 + 9) + expFrac >= INT_MIN + // <=> exp <= (expFrac - INT_MIN - 9) / 10 + RAPIDJSON_ASSERT(expFrac <= 0); + int maxExp = (expFrac + 2147483639) / 10; + + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + exp = exp * 10 + static_cast(s.Take() - '0'); + if (RAPIDJSON_UNLIKELY(exp > maxExp)) { + while (RAPIDJSON_UNLIKELY(s.Peek() >= '0' && s.Peek() <= '9')) // Consume the rest of exponent + s.Take(); + } + } + } + else { // positive exp + int maxExp = 308 - expFrac; + while (RAPIDJSON_LIKELY(s.Peek() >= '0' && s.Peek() <= '9')) { + exp = exp * 10 + static_cast(s.Take() - '0'); + if (RAPIDJSON_UNLIKELY(exp > maxExp)) + RAPIDJSON_PARSE_ERROR(kParseErrorNumberTooBig, startOffset); + } + } + } + else + RAPIDJSON_PARSE_ERROR(kParseErrorNumberMissExponent, s.Tell()); + + if (expMinus) + exp = -exp; + } + + // Finish parsing, call event according to the type of number. + bool cont = true; + + if (parseFlags & kParseNumbersAsStringsFlag) { + if (parseFlags & kParseInsituFlag) { + s.Pop(); // Pop stack no matter if it will be used or not. + typename InputStream::Ch* head = is.PutBegin(); + const size_t length = s.Tell() - startOffset; + RAPIDJSON_ASSERT(length <= 0xFFFFFFFF); + // unable to insert the \0 character here, it will erase the comma after this number + const typename TargetEncoding::Ch* const str = reinterpret_cast(head); + cont = handler.RawNumber(str, SizeType(length), false); + } + else { + SizeType numCharsToCopy = static_cast(s.Length()); + StringStream srcStream(s.Pop()); + StackStream dstStream(stack_); + while (numCharsToCopy--) { + Transcoder, TargetEncoding>::Transcode(srcStream, dstStream); + } + dstStream.Put('\0'); + const typename TargetEncoding::Ch* str = dstStream.Pop(); + const SizeType length = static_cast(dstStream.Length()) - 1; + cont = handler.RawNumber(str, SizeType(length), true); + } + } + else { + size_t length = s.Length(); + const char* decimal = s.Pop(); // Pop stack no matter if it will be used or not. + + if (useDouble) { + int p = exp + expFrac; + if (parseFlags & kParseFullPrecisionFlag) + d = internal::StrtodFullPrecision(d, p, decimal, length, decimalPosition, exp); + else + d = internal::StrtodNormalPrecision(d, p); + + // Use > max, instead of == inf, to fix bogus warning -Wfloat-equal + if (d > (std::numeric_limits::max)()) { + // Overflow + // TODO: internal::StrtodX should report overflow (or underflow) + RAPIDJSON_PARSE_ERROR(kParseErrorNumberTooBig, startOffset); + } + + cont = handler.Double(minus ? -d : d); + } + else if (useNanOrInf) { + cont = handler.Double(d); + } + else { + if (use64bit) { + if (minus) + cont = handler.Int64(static_cast(~i64 + 1)); + else + cont = handler.Uint64(i64); + } + else { + if (minus) + cont = handler.Int(static_cast(~i + 1)); + else + cont = handler.Uint(i); + } + } + } + if (RAPIDJSON_UNLIKELY(!cont)) + RAPIDJSON_PARSE_ERROR(kParseErrorTermination, startOffset); + } + + // Parse any JSON value + template + void ParseValue(InputStream& is, Handler& handler) { + switch (is.Peek()) { + case 'n': ParseNull (is, handler); break; + case 't': ParseTrue (is, handler); break; + case 'f': ParseFalse (is, handler); break; + case '"': ParseString(is, handler); break; + case '{': ParseObject(is, handler); break; + case '[': ParseArray (is, handler); break; + default : + ParseNumber(is, handler); + break; + + } + } + + // Iterative Parsing + + // States + enum IterativeParsingState { + IterativeParsingFinishState = 0, // sink states at top + IterativeParsingErrorState, // sink states at top + IterativeParsingStartState, + + // Object states + IterativeParsingObjectInitialState, + IterativeParsingMemberKeyState, + IterativeParsingMemberValueState, + IterativeParsingObjectFinishState, + + // Array states + IterativeParsingArrayInitialState, + IterativeParsingElementState, + IterativeParsingArrayFinishState, + + // Single value state + IterativeParsingValueState, + + // Delimiter states (at bottom) + IterativeParsingElementDelimiterState, + IterativeParsingMemberDelimiterState, + IterativeParsingKeyValueDelimiterState, + + cIterativeParsingStateCount + }; + + // Tokens + enum Token { + LeftBracketToken = 0, + RightBracketToken, + + LeftCurlyBracketToken, + RightCurlyBracketToken, + + CommaToken, + ColonToken, + + StringToken, + FalseToken, + TrueToken, + NullToken, + NumberToken, + + kTokenCount + }; + + RAPIDJSON_FORCEINLINE Token Tokenize(Ch c) const { + +//!@cond RAPIDJSON_HIDDEN_FROM_DOXYGEN +#define N NumberToken +#define N16 N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N + // Maps from ASCII to Token + static const unsigned char tokenMap[256] = { + N16, // 00~0F + N16, // 10~1F + N, N, StringToken, N, N, N, N, N, N, N, N, N, CommaToken, N, N, N, // 20~2F + N, N, N, N, N, N, N, N, N, N, ColonToken, N, N, N, N, N, // 30~3F + N16, // 40~4F + N, N, N, N, N, N, N, N, N, N, N, LeftBracketToken, N, RightBracketToken, N, N, // 50~5F + N, N, N, N, N, N, FalseToken, N, N, N, N, N, N, N, NullToken, N, // 60~6F + N, N, N, N, TrueToken, N, N, N, N, N, N, LeftCurlyBracketToken, N, RightCurlyBracketToken, N, N, // 70~7F + N16, N16, N16, N16, N16, N16, N16, N16 // 80~FF + }; +#undef N +#undef N16 +//!@endcond + + if (sizeof(Ch) == 1 || static_cast(c) < 256) + return static_cast(tokenMap[static_cast(c)]); + else + return NumberToken; + } + + RAPIDJSON_FORCEINLINE IterativeParsingState Predict(IterativeParsingState state, Token token) const { + // current state x one lookahead token -> new state + static const char G[cIterativeParsingStateCount][kTokenCount] = { + // Finish(sink state) + { + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState + }, + // Error(sink state) + { + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState + }, + // Start + { + IterativeParsingArrayInitialState, // Left bracket + IterativeParsingErrorState, // Right bracket + IterativeParsingObjectInitialState, // Left curly bracket + IterativeParsingErrorState, // Right curly bracket + IterativeParsingErrorState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingValueState, // String + IterativeParsingValueState, // False + IterativeParsingValueState, // True + IterativeParsingValueState, // Null + IterativeParsingValueState // Number + }, + // ObjectInitial + { + IterativeParsingErrorState, // Left bracket + IterativeParsingErrorState, // Right bracket + IterativeParsingErrorState, // Left curly bracket + IterativeParsingObjectFinishState, // Right curly bracket + IterativeParsingErrorState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingMemberKeyState, // String + IterativeParsingErrorState, // False + IterativeParsingErrorState, // True + IterativeParsingErrorState, // Null + IterativeParsingErrorState // Number + }, + // MemberKey + { + IterativeParsingErrorState, // Left bracket + IterativeParsingErrorState, // Right bracket + IterativeParsingErrorState, // Left curly bracket + IterativeParsingErrorState, // Right curly bracket + IterativeParsingErrorState, // Comma + IterativeParsingKeyValueDelimiterState, // Colon + IterativeParsingErrorState, // String + IterativeParsingErrorState, // False + IterativeParsingErrorState, // True + IterativeParsingErrorState, // Null + IterativeParsingErrorState // Number + }, + // MemberValue + { + IterativeParsingErrorState, // Left bracket + IterativeParsingErrorState, // Right bracket + IterativeParsingErrorState, // Left curly bracket + IterativeParsingObjectFinishState, // Right curly bracket + IterativeParsingMemberDelimiterState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingErrorState, // String + IterativeParsingErrorState, // False + IterativeParsingErrorState, // True + IterativeParsingErrorState, // Null + IterativeParsingErrorState // Number + }, + // ObjectFinish(sink state) + { + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState + }, + // ArrayInitial + { + IterativeParsingArrayInitialState, // Left bracket(push Element state) + IterativeParsingArrayFinishState, // Right bracket + IterativeParsingObjectInitialState, // Left curly bracket(push Element state) + IterativeParsingErrorState, // Right curly bracket + IterativeParsingErrorState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingElementState, // String + IterativeParsingElementState, // False + IterativeParsingElementState, // True + IterativeParsingElementState, // Null + IterativeParsingElementState // Number + }, + // Element + { + IterativeParsingErrorState, // Left bracket + IterativeParsingArrayFinishState, // Right bracket + IterativeParsingErrorState, // Left curly bracket + IterativeParsingErrorState, // Right curly bracket + IterativeParsingElementDelimiterState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingErrorState, // String + IterativeParsingErrorState, // False + IterativeParsingErrorState, // True + IterativeParsingErrorState, // Null + IterativeParsingErrorState // Number + }, + // ArrayFinish(sink state) + { + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState + }, + // Single Value (sink state) + { + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, IterativeParsingErrorState, + IterativeParsingErrorState + }, + // ElementDelimiter + { + IterativeParsingArrayInitialState, // Left bracket(push Element state) + IterativeParsingArrayFinishState, // Right bracket + IterativeParsingObjectInitialState, // Left curly bracket(push Element state) + IterativeParsingErrorState, // Right curly bracket + IterativeParsingErrorState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingElementState, // String + IterativeParsingElementState, // False + IterativeParsingElementState, // True + IterativeParsingElementState, // Null + IterativeParsingElementState // Number + }, + // MemberDelimiter + { + IterativeParsingErrorState, // Left bracket + IterativeParsingErrorState, // Right bracket + IterativeParsingErrorState, // Left curly bracket + IterativeParsingObjectFinishState, // Right curly bracket + IterativeParsingErrorState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingMemberKeyState, // String + IterativeParsingErrorState, // False + IterativeParsingErrorState, // True + IterativeParsingErrorState, // Null + IterativeParsingErrorState // Number + }, + // KeyValueDelimiter + { + IterativeParsingArrayInitialState, // Left bracket(push MemberValue state) + IterativeParsingErrorState, // Right bracket + IterativeParsingObjectInitialState, // Left curly bracket(push MemberValue state) + IterativeParsingErrorState, // Right curly bracket + IterativeParsingErrorState, // Comma + IterativeParsingErrorState, // Colon + IterativeParsingMemberValueState, // String + IterativeParsingMemberValueState, // False + IterativeParsingMemberValueState, // True + IterativeParsingMemberValueState, // Null + IterativeParsingMemberValueState // Number + }, + }; // End of G + + return static_cast(G[state][token]); + } + + // Make an advance in the token stream and state based on the candidate destination state which was returned by Transit(). + // May return a new state on state pop. + template + RAPIDJSON_FORCEINLINE IterativeParsingState Transit(IterativeParsingState src, Token token, IterativeParsingState dst, InputStream& is, Handler& handler) { + (void)token; + + switch (dst) { + case IterativeParsingErrorState: + return dst; + + case IterativeParsingObjectInitialState: + case IterativeParsingArrayInitialState: + { + // Push the state(Element or MemeberValue) if we are nested in another array or value of member. + // In this way we can get the correct state on ObjectFinish or ArrayFinish by frame pop. + IterativeParsingState n = src; + if (src == IterativeParsingArrayInitialState || src == IterativeParsingElementDelimiterState) + n = IterativeParsingElementState; + else if (src == IterativeParsingKeyValueDelimiterState) + n = IterativeParsingMemberValueState; + // Push current state. + *stack_.template Push(1) = n; + // Initialize and push the member/element count. + *stack_.template Push(1) = 0; + // Call handler + bool hr = (dst == IterativeParsingObjectInitialState) ? handler.StartObject() : handler.StartArray(); + // On handler short circuits the parsing. + if (!hr) { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorTermination, is.Tell()); + return IterativeParsingErrorState; + } + else { + is.Take(); + return dst; + } + } + + case IterativeParsingMemberKeyState: + ParseString(is, handler, true); + if (HasParseError()) + return IterativeParsingErrorState; + else + return dst; + + case IterativeParsingKeyValueDelimiterState: + RAPIDJSON_ASSERT(token == ColonToken); + is.Take(); + return dst; + + case IterativeParsingMemberValueState: + // Must be non-compound value. Or it would be ObjectInitial or ArrayInitial state. + ParseValue(is, handler); + if (HasParseError()) { + return IterativeParsingErrorState; + } + return dst; + + case IterativeParsingElementState: + // Must be non-compound value. Or it would be ObjectInitial or ArrayInitial state. + ParseValue(is, handler); + if (HasParseError()) { + return IterativeParsingErrorState; + } + return dst; + + case IterativeParsingMemberDelimiterState: + case IterativeParsingElementDelimiterState: + is.Take(); + // Update member/element count. + *stack_.template Top() = *stack_.template Top() + 1; + return dst; + + case IterativeParsingObjectFinishState: + { + // Transit from delimiter is only allowed when trailing commas are enabled + if (!(parseFlags & kParseTrailingCommasFlag) && src == IterativeParsingMemberDelimiterState) { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorObjectMissName, is.Tell()); + return IterativeParsingErrorState; + } + // Get member count. + SizeType c = *stack_.template Pop(1); + // If the object is not empty, count the last member. + if (src == IterativeParsingMemberValueState) + ++c; + // Restore the state. + IterativeParsingState n = static_cast(*stack_.template Pop(1)); + // Transit to Finish state if this is the topmost scope. + if (n == IterativeParsingStartState) + n = IterativeParsingFinishState; + // Call handler + bool hr = handler.EndObject(c); + // On handler short circuits the parsing. + if (!hr) { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorTermination, is.Tell()); + return IterativeParsingErrorState; + } + else { + is.Take(); + return n; + } + } + + case IterativeParsingArrayFinishState: + { + // Transit from delimiter is only allowed when trailing commas are enabled + if (!(parseFlags & kParseTrailingCommasFlag) && src == IterativeParsingElementDelimiterState) { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorValueInvalid, is.Tell()); + return IterativeParsingErrorState; + } + // Get element count. + SizeType c = *stack_.template Pop(1); + // If the array is not empty, count the last element. + if (src == IterativeParsingElementState) + ++c; + // Restore the state. + IterativeParsingState n = static_cast(*stack_.template Pop(1)); + // Transit to Finish state if this is the topmost scope. + if (n == IterativeParsingStartState) + n = IterativeParsingFinishState; + // Call handler + bool hr = handler.EndArray(c); + // On handler short circuits the parsing. + if (!hr) { + RAPIDJSON_PARSE_ERROR_NORETURN(kParseErrorTermination, is.Tell()); + return IterativeParsingErrorState; + } + else { + is.Take(); + return n; + } + } + + default: + // This branch is for IterativeParsingValueState actually. + // Use `default:` rather than + // `case IterativeParsingValueState:` is for code coverage. + + // The IterativeParsingStartState is not enumerated in this switch-case. + // It is impossible for that case. And it can be caught by following assertion. + + // The IterativeParsingFinishState is not enumerated in this switch-case either. + // It is a "derivative" state which cannot triggered from Predict() directly. + // Therefore it cannot happen here. And it can be caught by following assertion. + RAPIDJSON_ASSERT(dst == IterativeParsingValueState); + + // Must be non-compound value. Or it would be ObjectInitial or ArrayInitial state. + ParseValue(is, handler); + if (HasParseError()) { + return IterativeParsingErrorState; + } + return IterativeParsingFinishState; + } + } + + template + void HandleError(IterativeParsingState src, InputStream& is) { + if (HasParseError()) { + // Error flag has been set. + return; + } + + switch (src) { + case IterativeParsingStartState: RAPIDJSON_PARSE_ERROR(kParseErrorDocumentEmpty, is.Tell()); return; + case IterativeParsingFinishState: RAPIDJSON_PARSE_ERROR(kParseErrorDocumentRootNotSingular, is.Tell()); return; + case IterativeParsingObjectInitialState: + case IterativeParsingMemberDelimiterState: RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissName, is.Tell()); return; + case IterativeParsingMemberKeyState: RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissColon, is.Tell()); return; + case IterativeParsingMemberValueState: RAPIDJSON_PARSE_ERROR(kParseErrorObjectMissCommaOrCurlyBracket, is.Tell()); return; + case IterativeParsingKeyValueDelimiterState: + case IterativeParsingArrayInitialState: + case IterativeParsingElementDelimiterState: RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, is.Tell()); return; + default: RAPIDJSON_ASSERT(src == IterativeParsingElementState); RAPIDJSON_PARSE_ERROR(kParseErrorArrayMissCommaOrSquareBracket, is.Tell()); return; + } + } + + RAPIDJSON_FORCEINLINE bool IsIterativeParsingDelimiterState(IterativeParsingState s) const { + return s >= IterativeParsingElementDelimiterState; + } + + RAPIDJSON_FORCEINLINE bool IsIterativeParsingCompleteState(IterativeParsingState s) const { + return s <= IterativeParsingErrorState; + } + + template + ParseResult IterativeParse(InputStream& is, Handler& handler) { + parseResult_.Clear(); + ClearStackOnExit scope(*this); + IterativeParsingState state = IterativeParsingStartState; + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_); + while (is.Peek() != '\0') { + Token t = Tokenize(is.Peek()); + IterativeParsingState n = Predict(state, t); + IterativeParsingState d = Transit(state, t, n, is, handler); + + if (d == IterativeParsingErrorState) { + HandleError(state, is); + break; + } + + state = d; + + // Do not further consume streams if a root JSON has been parsed. + if ((parseFlags & kParseStopWhenDoneFlag) && state == IterativeParsingFinishState) + break; + + SkipWhitespaceAndComments(is); + RAPIDJSON_PARSE_ERROR_EARLY_RETURN(parseResult_); + } + + // Handle the end of file. + if (state != IterativeParsingFinishState) + HandleError(state, is); + + return parseResult_; + } + + static const size_t kDefaultStackCapacity = 256; //!< Default stack capacity in bytes for storing a single decoded string. + internal::Stack stack_; //!< A stack for storing decoded string temporarily during non-destructive parsing. + ParseResult parseResult_; + IterativeParsingState state_; +}; // class GenericReader + +//! Reader with UTF8 encoding and default allocator. +typedef GenericReader, UTF8<> > Reader; + +RAPIDJSON_NAMESPACE_END + +#if defined(__clang__) || defined(_MSC_VER) +RAPIDJSON_DIAG_POP +#endif + + +#ifdef __GNUC__ +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_READER_H_ diff --git a/C++Verifier/src/rapidjson/schema.h b/C++Verifier/src/rapidjson/schema.h new file mode 100644 index 0000000..fc39d06 --- /dev/null +++ b/C++Verifier/src/rapidjson/schema.h @@ -0,0 +1,2496 @@ +// Tencent is pleased to support the open source community by making RapidJSON available-> +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip-> All rights reserved-> +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License-> You may obtain a copy of the License at +// +// http://opensource->org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied-> See the License for the +// specific language governing permissions and limitations under the License-> + +#ifndef RAPIDJSON_SCHEMA_H_ +#define RAPIDJSON_SCHEMA_H_ + +#include "document.h" +#include "pointer.h" +#include "stringbuffer.h" +#include // abs, floor + +#if !defined(RAPIDJSON_SCHEMA_USE_INTERNALREGEX) +#define RAPIDJSON_SCHEMA_USE_INTERNALREGEX 1 +#else +#define RAPIDJSON_SCHEMA_USE_INTERNALREGEX 0 +#endif + +#if !RAPIDJSON_SCHEMA_USE_INTERNALREGEX && defined(RAPIDJSON_SCHEMA_USE_STDREGEX) && (__cplusplus >=201103L || (defined(_MSC_VER) && _MSC_VER >= 1800)) +#define RAPIDJSON_SCHEMA_USE_STDREGEX 1 +#else +#define RAPIDJSON_SCHEMA_USE_STDREGEX 0 +#endif + +#if RAPIDJSON_SCHEMA_USE_INTERNALREGEX +#include "internal/regex.h" +#elif RAPIDJSON_SCHEMA_USE_STDREGEX +#include +#endif + +#if RAPIDJSON_SCHEMA_USE_INTERNALREGEX || RAPIDJSON_SCHEMA_USE_STDREGEX +#define RAPIDJSON_SCHEMA_HAS_REGEX 1 +#else +#define RAPIDJSON_SCHEMA_HAS_REGEX 0 +#endif + +#ifndef RAPIDJSON_SCHEMA_VERBOSE +#define RAPIDJSON_SCHEMA_VERBOSE 0 +#endif + +#if RAPIDJSON_SCHEMA_VERBOSE +#include "stringbuffer.h" +#endif + +RAPIDJSON_DIAG_PUSH + +#if defined(__GNUC__) +RAPIDJSON_DIAG_OFF(effc++) +#endif + +#ifdef __clang__ +RAPIDJSON_DIAG_OFF(weak-vtables) +RAPIDJSON_DIAG_OFF(exit-time-destructors) +RAPIDJSON_DIAG_OFF(c++98-compat-pedantic) +RAPIDJSON_DIAG_OFF(variadic-macros) +#elif defined(_MSC_VER) +RAPIDJSON_DIAG_OFF(4512) // assignment operator could not be generated +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +/////////////////////////////////////////////////////////////////////////////// +// Verbose Utilities + +#if RAPIDJSON_SCHEMA_VERBOSE + +namespace internal { + +inline void PrintInvalidKeyword(const char* keyword) { + printf("Fail keyword: %s\n", keyword); +} + +inline void PrintInvalidKeyword(const wchar_t* keyword) { + wprintf(L"Fail keyword: %ls\n", keyword); +} + +inline void PrintInvalidDocument(const char* document) { + printf("Fail document: %s\n\n", document); +} + +inline void PrintInvalidDocument(const wchar_t* document) { + wprintf(L"Fail document: %ls\n\n", document); +} + +inline void PrintValidatorPointers(unsigned depth, const char* s, const char* d) { + printf("S: %*s%s\nD: %*s%s\n\n", depth * 4, " ", s, depth * 4, " ", d); +} + +inline void PrintValidatorPointers(unsigned depth, const wchar_t* s, const wchar_t* d) { + wprintf(L"S: %*ls%ls\nD: %*ls%ls\n\n", depth * 4, L" ", s, depth * 4, L" ", d); +} + +} // namespace internal + +#endif // RAPIDJSON_SCHEMA_VERBOSE + +/////////////////////////////////////////////////////////////////////////////// +// RAPIDJSON_INVALID_KEYWORD_RETURN + +#if RAPIDJSON_SCHEMA_VERBOSE +#define RAPIDJSON_INVALID_KEYWORD_VERBOSE(keyword) internal::PrintInvalidKeyword(keyword) +#else +#define RAPIDJSON_INVALID_KEYWORD_VERBOSE(keyword) +#endif + +#define RAPIDJSON_INVALID_KEYWORD_RETURN(keyword)\ +RAPIDJSON_MULTILINEMACRO_BEGIN\ + context.invalidKeyword = keyword.GetString();\ + RAPIDJSON_INVALID_KEYWORD_VERBOSE(keyword.GetString());\ + return false;\ +RAPIDJSON_MULTILINEMACRO_END + +/////////////////////////////////////////////////////////////////////////////// +// Forward declarations + +template +class GenericSchemaDocument; + +namespace internal { + +template +class Schema; + +/////////////////////////////////////////////////////////////////////////////// +// ISchemaValidator + +class ISchemaValidator { +public: + virtual ~ISchemaValidator() {} + virtual bool IsValid() const = 0; +}; + +/////////////////////////////////////////////////////////////////////////////// +// ISchemaStateFactory + +template +class ISchemaStateFactory { +public: + virtual ~ISchemaStateFactory() {} + virtual ISchemaValidator* CreateSchemaValidator(const SchemaType&) = 0; + virtual void DestroySchemaValidator(ISchemaValidator* validator) = 0; + virtual void* CreateHasher() = 0; + virtual uint64_t GetHashCode(void* hasher) = 0; + virtual void DestroryHasher(void* hasher) = 0; + virtual void* MallocState(size_t size) = 0; + virtual void FreeState(void* p) = 0; +}; + +/////////////////////////////////////////////////////////////////////////////// +// IValidationErrorHandler + +template +class IValidationErrorHandler { +public: + typedef typename SchemaType::Ch Ch; + typedef typename SchemaType::SValue SValue; + + virtual ~IValidationErrorHandler() {} + + virtual void NotMultipleOf(int64_t actual, const SValue& expected) = 0; + virtual void NotMultipleOf(uint64_t actual, const SValue& expected) = 0; + virtual void NotMultipleOf(double actual, const SValue& expected) = 0; + virtual void AboveMaximum(int64_t actual, const SValue& expected, bool exclusive) = 0; + virtual void AboveMaximum(uint64_t actual, const SValue& expected, bool exclusive) = 0; + virtual void AboveMaximum(double actual, const SValue& expected, bool exclusive) = 0; + virtual void BelowMinimum(int64_t actual, const SValue& expected, bool exclusive) = 0; + virtual void BelowMinimum(uint64_t actual, const SValue& expected, bool exclusive) = 0; + virtual void BelowMinimum(double actual, const SValue& expected, bool exclusive) = 0; + + virtual void TooLong(const Ch* str, SizeType length, SizeType expected) = 0; + virtual void TooShort(const Ch* str, SizeType length, SizeType expected) = 0; + virtual void DoesNotMatch(const Ch* str, SizeType length) = 0; + + virtual void DisallowedItem(SizeType index) = 0; + virtual void TooFewItems(SizeType actualCount, SizeType expectedCount) = 0; + virtual void TooManyItems(SizeType actualCount, SizeType expectedCount) = 0; + virtual void DuplicateItems(SizeType index1, SizeType index2) = 0; + + virtual void TooManyProperties(SizeType actualCount, SizeType expectedCount) = 0; + virtual void TooFewProperties(SizeType actualCount, SizeType expectedCount) = 0; + virtual void StartMissingProperties() = 0; + virtual void AddMissingProperty(const SValue& name) = 0; + virtual bool EndMissingProperties() = 0; + virtual void PropertyViolations(ISchemaValidator** subvalidators, SizeType count) = 0; + virtual void DisallowedProperty(const Ch* name, SizeType length) = 0; + + virtual void StartDependencyErrors() = 0; + virtual void StartMissingDependentProperties() = 0; + virtual void AddMissingDependentProperty(const SValue& targetName) = 0; + virtual void EndMissingDependentProperties(const SValue& sourceName) = 0; + virtual void AddDependencySchemaError(const SValue& souceName, ISchemaValidator* subvalidator) = 0; + virtual bool EndDependencyErrors() = 0; + + virtual void DisallowedValue() = 0; + virtual void StartDisallowedType() = 0; + virtual void AddExpectedType(const typename SchemaType::ValueType& expectedType) = 0; + virtual void EndDisallowedType(const typename SchemaType::ValueType& actualType) = 0; + virtual void NotAllOf(ISchemaValidator** subvalidators, SizeType count) = 0; + virtual void NoneOf(ISchemaValidator** subvalidators, SizeType count) = 0; + virtual void NotOneOf(ISchemaValidator** subvalidators, SizeType count) = 0; + virtual void Disallowed() = 0; +}; + + +/////////////////////////////////////////////////////////////////////////////// +// Hasher + +// For comparison of compound value +template +class Hasher { +public: + typedef typename Encoding::Ch Ch; + + Hasher(Allocator* allocator = 0, size_t stackCapacity = kDefaultSize) : stack_(allocator, stackCapacity) {} + + bool Null() { return WriteType(kNullType); } + bool Bool(bool b) { return WriteType(b ? kTrueType : kFalseType); } + bool Int(int i) { Number n; n.u.i = i; n.d = static_cast(i); return WriteNumber(n); } + bool Uint(unsigned u) { Number n; n.u.u = u; n.d = static_cast(u); return WriteNumber(n); } + bool Int64(int64_t i) { Number n; n.u.i = i; n.d = static_cast(i); return WriteNumber(n); } + bool Uint64(uint64_t u) { Number n; n.u.u = u; n.d = static_cast(u); return WriteNumber(n); } + bool Double(double d) { + Number n; + if (d < 0) n.u.i = static_cast(d); + else n.u.u = static_cast(d); + n.d = d; + return WriteNumber(n); + } + + bool RawNumber(const Ch* str, SizeType len, bool) { + WriteBuffer(kNumberType, str, len * sizeof(Ch)); + return true; + } + + bool String(const Ch* str, SizeType len, bool) { + WriteBuffer(kStringType, str, len * sizeof(Ch)); + return true; + } + + bool StartObject() { return true; } + bool Key(const Ch* str, SizeType len, bool copy) { return String(str, len, copy); } + bool EndObject(SizeType memberCount) { + uint64_t h = Hash(0, kObjectType); + uint64_t* kv = stack_.template Pop(memberCount * 2); + for (SizeType i = 0; i < memberCount; i++) + h ^= Hash(kv[i * 2], kv[i * 2 + 1]); // Use xor to achieve member order insensitive + *stack_.template Push() = h; + return true; + } + + bool StartArray() { return true; } + bool EndArray(SizeType elementCount) { + uint64_t h = Hash(0, kArrayType); + uint64_t* e = stack_.template Pop(elementCount); + for (SizeType i = 0; i < elementCount; i++) + h = Hash(h, e[i]); // Use hash to achieve element order sensitive + *stack_.template Push() = h; + return true; + } + + bool IsValid() const { return stack_.GetSize() == sizeof(uint64_t); } + + uint64_t GetHashCode() const { + RAPIDJSON_ASSERT(IsValid()); + return *stack_.template Top(); + } + +private: + static const size_t kDefaultSize = 256; + struct Number { + union U { + uint64_t u; + int64_t i; + }u; + double d; + }; + + bool WriteType(Type type) { return WriteBuffer(type, 0, 0); } + + bool WriteNumber(const Number& n) { return WriteBuffer(kNumberType, &n, sizeof(n)); } + + bool WriteBuffer(Type type, const void* data, size_t len) { + // FNV-1a from http://isthe.com/chongo/tech/comp/fnv/ + uint64_t h = Hash(RAPIDJSON_UINT64_C2(0x84222325, 0xcbf29ce4), type); + const unsigned char* d = static_cast(data); + for (size_t i = 0; i < len; i++) + h = Hash(h, d[i]); + *stack_.template Push() = h; + return true; + } + + static uint64_t Hash(uint64_t h, uint64_t d) { + static const uint64_t kPrime = RAPIDJSON_UINT64_C2(0x00000100, 0x000001b3); + h ^= d; + h *= kPrime; + return h; + } + + Stack stack_; +}; + +/////////////////////////////////////////////////////////////////////////////// +// SchemaValidationContext + +template +struct SchemaValidationContext { + typedef Schema SchemaType; + typedef ISchemaStateFactory SchemaValidatorFactoryType; + typedef IValidationErrorHandler ErrorHandlerType; + typedef typename SchemaType::ValueType ValueType; + typedef typename ValueType::Ch Ch; + + enum PatternValidatorType { + kPatternValidatorOnly, + kPatternValidatorWithProperty, + kPatternValidatorWithAdditionalProperty + }; + + SchemaValidationContext(SchemaValidatorFactoryType& f, ErrorHandlerType& eh, const SchemaType* s) : + factory(f), + error_handler(eh), + schema(s), + valueSchema(), + invalidKeyword(), + hasher(), + arrayElementHashCodes(), + validators(), + validatorCount(), + patternPropertiesValidators(), + patternPropertiesValidatorCount(), + patternPropertiesSchemas(), + patternPropertiesSchemaCount(), + valuePatternValidatorType(kPatternValidatorOnly), + propertyExist(), + inArray(false), + valueUniqueness(false), + arrayUniqueness(false) + { + } + + ~SchemaValidationContext() { + if (hasher) + factory.DestroryHasher(hasher); + if (validators) { + for (SizeType i = 0; i < validatorCount; i++) + factory.DestroySchemaValidator(validators[i]); + factory.FreeState(validators); + } + if (patternPropertiesValidators) { + for (SizeType i = 0; i < patternPropertiesValidatorCount; i++) + factory.DestroySchemaValidator(patternPropertiesValidators[i]); + factory.FreeState(patternPropertiesValidators); + } + if (patternPropertiesSchemas) + factory.FreeState(patternPropertiesSchemas); + if (propertyExist) + factory.FreeState(propertyExist); + } + + SchemaValidatorFactoryType& factory; + ErrorHandlerType& error_handler; + const SchemaType* schema; + const SchemaType* valueSchema; + const Ch* invalidKeyword; + void* hasher; // Only validator access + void* arrayElementHashCodes; // Only validator access this + ISchemaValidator** validators; + SizeType validatorCount; + ISchemaValidator** patternPropertiesValidators; + SizeType patternPropertiesValidatorCount; + const SchemaType** patternPropertiesSchemas; + SizeType patternPropertiesSchemaCount; + PatternValidatorType valuePatternValidatorType; + PatternValidatorType objectPatternValidatorType; + SizeType arrayElementIndex; + bool* propertyExist; + bool inArray; + bool valueUniqueness; + bool arrayUniqueness; +}; + +/////////////////////////////////////////////////////////////////////////////// +// Schema + +template +class Schema { +public: + typedef typename SchemaDocumentType::ValueType ValueType; + typedef typename SchemaDocumentType::AllocatorType AllocatorType; + typedef typename SchemaDocumentType::PointerType PointerType; + typedef typename ValueType::EncodingType EncodingType; + typedef typename EncodingType::Ch Ch; + typedef SchemaValidationContext Context; + typedef Schema SchemaType; + typedef GenericValue SValue; + typedef IValidationErrorHandler ErrorHandler; + friend class GenericSchemaDocument; + + Schema(SchemaDocumentType* schemaDocument, const PointerType& p, const ValueType& value, const ValueType& document, AllocatorType* allocator) : + allocator_(allocator), + uri_(schemaDocument->GetURI(), *allocator), + pointer_(p, allocator), + typeless_(schemaDocument->GetTypeless()), + enum_(), + enumCount_(), + not_(), + type_((1 << kTotalSchemaType) - 1), // typeless + validatorCount_(), + notValidatorIndex_(), + properties_(), + additionalPropertiesSchema_(), + patternProperties_(), + patternPropertyCount_(), + propertyCount_(), + minProperties_(), + maxProperties_(SizeType(~0)), + additionalProperties_(true), + hasDependencies_(), + hasRequired_(), + hasSchemaDependencies_(), + additionalItemsSchema_(), + itemsList_(), + itemsTuple_(), + itemsTupleCount_(), + minItems_(), + maxItems_(SizeType(~0)), + additionalItems_(true), + uniqueItems_(false), + pattern_(), + minLength_(0), + maxLength_(~SizeType(0)), + exclusiveMinimum_(false), + exclusiveMaximum_(false), + defaultValueLength_(0) + { + typedef typename ValueType::ConstValueIterator ConstValueIterator; + typedef typename ValueType::ConstMemberIterator ConstMemberIterator; + + if (!value.IsObject()) + return; + + if (const ValueType* v = GetMember(value, GetTypeString())) { + type_ = 0; + if (v->IsString()) + AddType(*v); + else if (v->IsArray()) + for (ConstValueIterator itr = v->Begin(); itr != v->End(); ++itr) + AddType(*itr); + } + + if (const ValueType* v = GetMember(value, GetEnumString())) + if (v->IsArray() && v->Size() > 0) { + enum_ = static_cast(allocator_->Malloc(sizeof(uint64_t) * v->Size())); + for (ConstValueIterator itr = v->Begin(); itr != v->End(); ++itr) { + typedef Hasher > EnumHasherType; + char buffer[256u + 24]; + MemoryPoolAllocator<> hasherAllocator(buffer, sizeof(buffer)); + EnumHasherType h(&hasherAllocator, 256); + itr->Accept(h); + enum_[enumCount_++] = h.GetHashCode(); + } + } + + if (schemaDocument) { + AssignIfExist(allOf_, *schemaDocument, p, value, GetAllOfString(), document); + AssignIfExist(anyOf_, *schemaDocument, p, value, GetAnyOfString(), document); + AssignIfExist(oneOf_, *schemaDocument, p, value, GetOneOfString(), document); + } + + if (const ValueType* v = GetMember(value, GetNotString())) { + schemaDocument->CreateSchema(¬_, p.Append(GetNotString(), allocator_), *v, document); + notValidatorIndex_ = validatorCount_; + validatorCount_++; + } + + // Object + + const ValueType* properties = GetMember(value, GetPropertiesString()); + const ValueType* required = GetMember(value, GetRequiredString()); + const ValueType* dependencies = GetMember(value, GetDependenciesString()); + { + // Gather properties from properties/required/dependencies + SValue allProperties(kArrayType); + + if (properties && properties->IsObject()) + for (ConstMemberIterator itr = properties->MemberBegin(); itr != properties->MemberEnd(); ++itr) + AddUniqueElement(allProperties, itr->name); + + if (required && required->IsArray()) + for (ConstValueIterator itr = required->Begin(); itr != required->End(); ++itr) + if (itr->IsString()) + AddUniqueElement(allProperties, *itr); + + if (dependencies && dependencies->IsObject()) + for (ConstMemberIterator itr = dependencies->MemberBegin(); itr != dependencies->MemberEnd(); ++itr) { + AddUniqueElement(allProperties, itr->name); + if (itr->value.IsArray()) + for (ConstValueIterator i = itr->value.Begin(); i != itr->value.End(); ++i) + if (i->IsString()) + AddUniqueElement(allProperties, *i); + } + + if (allProperties.Size() > 0) { + propertyCount_ = allProperties.Size(); + properties_ = static_cast(allocator_->Malloc(sizeof(Property) * propertyCount_)); + for (SizeType i = 0; i < propertyCount_; i++) { + new (&properties_[i]) Property(); + properties_[i].name = allProperties[i]; + properties_[i].schema = typeless_; + } + } + } + + if (properties && properties->IsObject()) { + PointerType q = p.Append(GetPropertiesString(), allocator_); + for (ConstMemberIterator itr = properties->MemberBegin(); itr != properties->MemberEnd(); ++itr) { + SizeType index; + if (FindPropertyIndex(itr->name, &index)) + schemaDocument->CreateSchema(&properties_[index].schema, q.Append(itr->name, allocator_), itr->value, document); + } + } + + if (const ValueType* v = GetMember(value, GetPatternPropertiesString())) { + PointerType q = p.Append(GetPatternPropertiesString(), allocator_); + patternProperties_ = static_cast(allocator_->Malloc(sizeof(PatternProperty) * v->MemberCount())); + patternPropertyCount_ = 0; + + for (ConstMemberIterator itr = v->MemberBegin(); itr != v->MemberEnd(); ++itr) { + new (&patternProperties_[patternPropertyCount_]) PatternProperty(); + patternProperties_[patternPropertyCount_].pattern = CreatePattern(itr->name); + schemaDocument->CreateSchema(&patternProperties_[patternPropertyCount_].schema, q.Append(itr->name, allocator_), itr->value, document); + patternPropertyCount_++; + } + } + + if (required && required->IsArray()) + for (ConstValueIterator itr = required->Begin(); itr != required->End(); ++itr) + if (itr->IsString()) { + SizeType index; + if (FindPropertyIndex(*itr, &index)) { + properties_[index].required = true; + hasRequired_ = true; + } + } + + if (dependencies && dependencies->IsObject()) { + PointerType q = p.Append(GetDependenciesString(), allocator_); + hasDependencies_ = true; + for (ConstMemberIterator itr = dependencies->MemberBegin(); itr != dependencies->MemberEnd(); ++itr) { + SizeType sourceIndex; + if (FindPropertyIndex(itr->name, &sourceIndex)) { + if (itr->value.IsArray()) { + properties_[sourceIndex].dependencies = static_cast(allocator_->Malloc(sizeof(bool) * propertyCount_)); + std::memset(properties_[sourceIndex].dependencies, 0, sizeof(bool)* propertyCount_); + for (ConstValueIterator targetItr = itr->value.Begin(); targetItr != itr->value.End(); ++targetItr) { + SizeType targetIndex; + if (FindPropertyIndex(*targetItr, &targetIndex)) + properties_[sourceIndex].dependencies[targetIndex] = true; + } + } + else if (itr->value.IsObject()) { + hasSchemaDependencies_ = true; + schemaDocument->CreateSchema(&properties_[sourceIndex].dependenciesSchema, q.Append(itr->name, allocator_), itr->value, document); + properties_[sourceIndex].dependenciesValidatorIndex = validatorCount_; + validatorCount_++; + } + } + } + } + + if (const ValueType* v = GetMember(value, GetAdditionalPropertiesString())) { + if (v->IsBool()) + additionalProperties_ = v->GetBool(); + else if (v->IsObject()) + schemaDocument->CreateSchema(&additionalPropertiesSchema_, p.Append(GetAdditionalPropertiesString(), allocator_), *v, document); + } + + AssignIfExist(minProperties_, value, GetMinPropertiesString()); + AssignIfExist(maxProperties_, value, GetMaxPropertiesString()); + + // Array + if (const ValueType* v = GetMember(value, GetItemsString())) { + PointerType q = p.Append(GetItemsString(), allocator_); + if (v->IsObject()) // List validation + schemaDocument->CreateSchema(&itemsList_, q, *v, document); + else if (v->IsArray()) { // Tuple validation + itemsTuple_ = static_cast(allocator_->Malloc(sizeof(const Schema*) * v->Size())); + SizeType index = 0; + for (ConstValueIterator itr = v->Begin(); itr != v->End(); ++itr, index++) + schemaDocument->CreateSchema(&itemsTuple_[itemsTupleCount_++], q.Append(index, allocator_), *itr, document); + } + } + + AssignIfExist(minItems_, value, GetMinItemsString()); + AssignIfExist(maxItems_, value, GetMaxItemsString()); + + if (const ValueType* v = GetMember(value, GetAdditionalItemsString())) { + if (v->IsBool()) + additionalItems_ = v->GetBool(); + else if (v->IsObject()) + schemaDocument->CreateSchema(&additionalItemsSchema_, p.Append(GetAdditionalItemsString(), allocator_), *v, document); + } + + AssignIfExist(uniqueItems_, value, GetUniqueItemsString()); + + // String + AssignIfExist(minLength_, value, GetMinLengthString()); + AssignIfExist(maxLength_, value, GetMaxLengthString()); + + if (const ValueType* v = GetMember(value, GetPatternString())) + pattern_ = CreatePattern(*v); + + // Number + if (const ValueType* v = GetMember(value, GetMinimumString())) + if (v->IsNumber()) + minimum_.CopyFrom(*v, *allocator_); + + if (const ValueType* v = GetMember(value, GetMaximumString())) + if (v->IsNumber()) + maximum_.CopyFrom(*v, *allocator_); + + AssignIfExist(exclusiveMinimum_, value, GetExclusiveMinimumString()); + AssignIfExist(exclusiveMaximum_, value, GetExclusiveMaximumString()); + + if (const ValueType* v = GetMember(value, GetMultipleOfString())) + if (v->IsNumber() && v->GetDouble() > 0.0) + multipleOf_.CopyFrom(*v, *allocator_); + + // Default + if (const ValueType* v = GetMember(value, GetDefaultValueString())) + if (v->IsString()) + defaultValueLength_ = v->GetStringLength(); + + } + + ~Schema() { + AllocatorType::Free(enum_); + if (properties_) { + for (SizeType i = 0; i < propertyCount_; i++) + properties_[i].~Property(); + AllocatorType::Free(properties_); + } + if (patternProperties_) { + for (SizeType i = 0; i < patternPropertyCount_; i++) + patternProperties_[i].~PatternProperty(); + AllocatorType::Free(patternProperties_); + } + AllocatorType::Free(itemsTuple_); +#if RAPIDJSON_SCHEMA_HAS_REGEX + if (pattern_) { + pattern_->~RegexType(); + AllocatorType::Free(pattern_); + } +#endif + } + + const SValue& GetURI() const { + return uri_; + } + + const PointerType& GetPointer() const { + return pointer_; + } + + bool BeginValue(Context& context) const { + if (context.inArray) { + if (uniqueItems_) + context.valueUniqueness = true; + + if (itemsList_) + context.valueSchema = itemsList_; + else if (itemsTuple_) { + if (context.arrayElementIndex < itemsTupleCount_) + context.valueSchema = itemsTuple_[context.arrayElementIndex]; + else if (additionalItemsSchema_) + context.valueSchema = additionalItemsSchema_; + else if (additionalItems_) + context.valueSchema = typeless_; + else { + context.error_handler.DisallowedItem(context.arrayElementIndex); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetItemsString()); + } + } + else + context.valueSchema = typeless_; + + context.arrayElementIndex++; + } + return true; + } + + RAPIDJSON_FORCEINLINE bool EndValue(Context& context) const { + if (context.patternPropertiesValidatorCount > 0) { + bool otherValid = false; + SizeType count = context.patternPropertiesValidatorCount; + if (context.objectPatternValidatorType != Context::kPatternValidatorOnly) + otherValid = context.patternPropertiesValidators[--count]->IsValid(); + + bool patternValid = true; + for (SizeType i = 0; i < count; i++) + if (!context.patternPropertiesValidators[i]->IsValid()) { + patternValid = false; + break; + } + + if (context.objectPatternValidatorType == Context::kPatternValidatorOnly) { + if (!patternValid) { + context.error_handler.PropertyViolations(context.patternPropertiesValidators, count); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetPatternPropertiesString()); + } + } + else if (context.objectPatternValidatorType == Context::kPatternValidatorWithProperty) { + if (!patternValid || !otherValid) { + context.error_handler.PropertyViolations(context.patternPropertiesValidators, count + 1); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetPatternPropertiesString()); + } + } + else if (!patternValid && !otherValid) { // kPatternValidatorWithAdditionalProperty) + context.error_handler.PropertyViolations(context.patternPropertiesValidators, count + 1); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetPatternPropertiesString()); + } + } + + if (enum_) { + const uint64_t h = context.factory.GetHashCode(context.hasher); + for (SizeType i = 0; i < enumCount_; i++) + if (enum_[i] == h) + goto foundEnum; + context.error_handler.DisallowedValue(); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetEnumString()); + foundEnum:; + } + + if (allOf_.schemas) + for (SizeType i = allOf_.begin; i < allOf_.begin + allOf_.count; i++) + if (!context.validators[i]->IsValid()) { + context.error_handler.NotAllOf(&context.validators[allOf_.begin], allOf_.count); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetAllOfString()); + } + + if (anyOf_.schemas) { + for (SizeType i = anyOf_.begin; i < anyOf_.begin + anyOf_.count; i++) + if (context.validators[i]->IsValid()) + goto foundAny; + context.error_handler.NoneOf(&context.validators[anyOf_.begin], anyOf_.count); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetAnyOfString()); + foundAny:; + } + + if (oneOf_.schemas) { + bool oneValid = false; + for (SizeType i = oneOf_.begin; i < oneOf_.begin + oneOf_.count; i++) + if (context.validators[i]->IsValid()) { + if (oneValid) { + context.error_handler.NotOneOf(&context.validators[oneOf_.begin], oneOf_.count); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetOneOfString()); + } else + oneValid = true; + } + if (!oneValid) { + context.error_handler.NotOneOf(&context.validators[oneOf_.begin], oneOf_.count); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetOneOfString()); + } + } + + if (not_ && context.validators[notValidatorIndex_]->IsValid()) { + context.error_handler.Disallowed(); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetNotString()); + } + + return true; + } + + bool Null(Context& context) const { + if (!(type_ & (1 << kNullSchemaType))) { + DisallowedType(context, GetNullString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + return CreateParallelValidator(context); + } + + bool Bool(Context& context, bool) const { + if (!(type_ & (1 << kBooleanSchemaType))) { + DisallowedType(context, GetBooleanString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + return CreateParallelValidator(context); + } + + bool Int(Context& context, int i) const { + if (!CheckInt(context, i)) + return false; + return CreateParallelValidator(context); + } + + bool Uint(Context& context, unsigned u) const { + if (!CheckUint(context, u)) + return false; + return CreateParallelValidator(context); + } + + bool Int64(Context& context, int64_t i) const { + if (!CheckInt(context, i)) + return false; + return CreateParallelValidator(context); + } + + bool Uint64(Context& context, uint64_t u) const { + if (!CheckUint(context, u)) + return false; + return CreateParallelValidator(context); + } + + bool Double(Context& context, double d) const { + if (!(type_ & (1 << kNumberSchemaType))) { + DisallowedType(context, GetNumberString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + + if (!minimum_.IsNull() && !CheckDoubleMinimum(context, d)) + return false; + + if (!maximum_.IsNull() && !CheckDoubleMaximum(context, d)) + return false; + + if (!multipleOf_.IsNull() && !CheckDoubleMultipleOf(context, d)) + return false; + + return CreateParallelValidator(context); + } + + bool String(Context& context, const Ch* str, SizeType length, bool) const { + if (!(type_ & (1 << kStringSchemaType))) { + DisallowedType(context, GetStringString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + + if (minLength_ != 0 || maxLength_ != SizeType(~0)) { + SizeType count; + if (internal::CountStringCodePoint(str, length, &count)) { + if (count < minLength_) { + context.error_handler.TooShort(str, length, minLength_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMinLengthString()); + } + if (count > maxLength_) { + context.error_handler.TooLong(str, length, maxLength_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMaxLengthString()); + } + } + } + + if (pattern_ && !IsPatternMatch(pattern_, str, length)) { + context.error_handler.DoesNotMatch(str, length); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetPatternString()); + } + + return CreateParallelValidator(context); + } + + bool StartObject(Context& context) const { + if (!(type_ & (1 << kObjectSchemaType))) { + DisallowedType(context, GetObjectString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + + if (hasDependencies_ || hasRequired_) { + context.propertyExist = static_cast(context.factory.MallocState(sizeof(bool) * propertyCount_)); + std::memset(context.propertyExist, 0, sizeof(bool) * propertyCount_); + } + + if (patternProperties_) { // pre-allocate schema array + SizeType count = patternPropertyCount_ + 1; // extra for valuePatternValidatorType + context.patternPropertiesSchemas = static_cast(context.factory.MallocState(sizeof(const SchemaType*) * count)); + context.patternPropertiesSchemaCount = 0; + std::memset(context.patternPropertiesSchemas, 0, sizeof(SchemaType*) * count); + } + + return CreateParallelValidator(context); + } + + bool Key(Context& context, const Ch* str, SizeType len, bool) const { + if (patternProperties_) { + context.patternPropertiesSchemaCount = 0; + for (SizeType i = 0; i < patternPropertyCount_; i++) + if (patternProperties_[i].pattern && IsPatternMatch(patternProperties_[i].pattern, str, len)) { + context.patternPropertiesSchemas[context.patternPropertiesSchemaCount++] = patternProperties_[i].schema; + context.valueSchema = typeless_; + } + } + + SizeType index = 0; + if (FindPropertyIndex(ValueType(str, len).Move(), &index)) { + if (context.patternPropertiesSchemaCount > 0) { + context.patternPropertiesSchemas[context.patternPropertiesSchemaCount++] = properties_[index].schema; + context.valueSchema = typeless_; + context.valuePatternValidatorType = Context::kPatternValidatorWithProperty; + } + else + context.valueSchema = properties_[index].schema; + + if (context.propertyExist) + context.propertyExist[index] = true; + + return true; + } + + if (additionalPropertiesSchema_) { + if (additionalPropertiesSchema_ && context.patternPropertiesSchemaCount > 0) { + context.patternPropertiesSchemas[context.patternPropertiesSchemaCount++] = additionalPropertiesSchema_; + context.valueSchema = typeless_; + context.valuePatternValidatorType = Context::kPatternValidatorWithAdditionalProperty; + } + else + context.valueSchema = additionalPropertiesSchema_; + return true; + } + else if (additionalProperties_) { + context.valueSchema = typeless_; + return true; + } + + if (context.patternPropertiesSchemaCount == 0) { // patternProperties are not additional properties + context.error_handler.DisallowedProperty(str, len); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetAdditionalPropertiesString()); + } + + return true; + } + + bool EndObject(Context& context, SizeType memberCount) const { + if (hasRequired_) { + context.error_handler.StartMissingProperties(); + for (SizeType index = 0; index < propertyCount_; index++) + if (properties_[index].required && !context.propertyExist[index]) + if (properties_[index].schema->defaultValueLength_ == 0 ) + context.error_handler.AddMissingProperty(properties_[index].name); + if (context.error_handler.EndMissingProperties()) + RAPIDJSON_INVALID_KEYWORD_RETURN(GetRequiredString()); + } + + if (memberCount < minProperties_) { + context.error_handler.TooFewProperties(memberCount, minProperties_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMinPropertiesString()); + } + + if (memberCount > maxProperties_) { + context.error_handler.TooManyProperties(memberCount, maxProperties_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMaxPropertiesString()); + } + + if (hasDependencies_) { + context.error_handler.StartDependencyErrors(); + for (SizeType sourceIndex = 0; sourceIndex < propertyCount_; sourceIndex++) { + const Property& source = properties_[sourceIndex]; + if (context.propertyExist[sourceIndex]) { + if (source.dependencies) { + context.error_handler.StartMissingDependentProperties(); + for (SizeType targetIndex = 0; targetIndex < propertyCount_; targetIndex++) + if (source.dependencies[targetIndex] && !context.propertyExist[targetIndex]) + context.error_handler.AddMissingDependentProperty(properties_[targetIndex].name); + context.error_handler.EndMissingDependentProperties(source.name); + } + else if (source.dependenciesSchema) { + ISchemaValidator* dependenciesValidator = context.validators[source.dependenciesValidatorIndex]; + if (!dependenciesValidator->IsValid()) + context.error_handler.AddDependencySchemaError(source.name, dependenciesValidator); + } + } + } + if (context.error_handler.EndDependencyErrors()) + RAPIDJSON_INVALID_KEYWORD_RETURN(GetDependenciesString()); + } + + return true; + } + + bool StartArray(Context& context) const { + if (!(type_ & (1 << kArraySchemaType))) { + DisallowedType(context, GetArrayString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + + context.arrayElementIndex = 0; + context.inArray = true; + + return CreateParallelValidator(context); + } + + bool EndArray(Context& context, SizeType elementCount) const { + context.inArray = false; + + if (elementCount < minItems_) { + context.error_handler.TooFewItems(elementCount, minItems_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMinItemsString()); + } + + if (elementCount > maxItems_) { + context.error_handler.TooManyItems(elementCount, maxItems_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMaxItemsString()); + } + + return true; + } + + // Generate functions for string literal according to Ch +#define RAPIDJSON_STRING_(name, ...) \ + static const ValueType& Get##name##String() {\ + static const Ch s[] = { __VA_ARGS__, '\0' };\ + static const ValueType v(s, static_cast(sizeof(s) / sizeof(Ch) - 1));\ + return v;\ + } + + RAPIDJSON_STRING_(Null, 'n', 'u', 'l', 'l') + RAPIDJSON_STRING_(Boolean, 'b', 'o', 'o', 'l', 'e', 'a', 'n') + RAPIDJSON_STRING_(Object, 'o', 'b', 'j', 'e', 'c', 't') + RAPIDJSON_STRING_(Array, 'a', 'r', 'r', 'a', 'y') + RAPIDJSON_STRING_(String, 's', 't', 'r', 'i', 'n', 'g') + RAPIDJSON_STRING_(Number, 'n', 'u', 'm', 'b', 'e', 'r') + RAPIDJSON_STRING_(Integer, 'i', 'n', 't', 'e', 'g', 'e', 'r') + RAPIDJSON_STRING_(Type, 't', 'y', 'p', 'e') + RAPIDJSON_STRING_(Enum, 'e', 'n', 'u', 'm') + RAPIDJSON_STRING_(AllOf, 'a', 'l', 'l', 'O', 'f') + RAPIDJSON_STRING_(AnyOf, 'a', 'n', 'y', 'O', 'f') + RAPIDJSON_STRING_(OneOf, 'o', 'n', 'e', 'O', 'f') + RAPIDJSON_STRING_(Not, 'n', 'o', 't') + RAPIDJSON_STRING_(Properties, 'p', 'r', 'o', 'p', 'e', 'r', 't', 'i', 'e', 's') + RAPIDJSON_STRING_(Required, 'r', 'e', 'q', 'u', 'i', 'r', 'e', 'd') + RAPIDJSON_STRING_(Dependencies, 'd', 'e', 'p', 'e', 'n', 'd', 'e', 'n', 'c', 'i', 'e', 's') + RAPIDJSON_STRING_(PatternProperties, 'p', 'a', 't', 't', 'e', 'r', 'n', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'i', 'e', 's') + RAPIDJSON_STRING_(AdditionalProperties, 'a', 'd', 'd', 'i', 't', 'i', 'o', 'n', 'a', 'l', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'i', 'e', 's') + RAPIDJSON_STRING_(MinProperties, 'm', 'i', 'n', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'i', 'e', 's') + RAPIDJSON_STRING_(MaxProperties, 'm', 'a', 'x', 'P', 'r', 'o', 'p', 'e', 'r', 't', 'i', 'e', 's') + RAPIDJSON_STRING_(Items, 'i', 't', 'e', 'm', 's') + RAPIDJSON_STRING_(MinItems, 'm', 'i', 'n', 'I', 't', 'e', 'm', 's') + RAPIDJSON_STRING_(MaxItems, 'm', 'a', 'x', 'I', 't', 'e', 'm', 's') + RAPIDJSON_STRING_(AdditionalItems, 'a', 'd', 'd', 'i', 't', 'i', 'o', 'n', 'a', 'l', 'I', 't', 'e', 'm', 's') + RAPIDJSON_STRING_(UniqueItems, 'u', 'n', 'i', 'q', 'u', 'e', 'I', 't', 'e', 'm', 's') + RAPIDJSON_STRING_(MinLength, 'm', 'i', 'n', 'L', 'e', 'n', 'g', 't', 'h') + RAPIDJSON_STRING_(MaxLength, 'm', 'a', 'x', 'L', 'e', 'n', 'g', 't', 'h') + RAPIDJSON_STRING_(Pattern, 'p', 'a', 't', 't', 'e', 'r', 'n') + RAPIDJSON_STRING_(Minimum, 'm', 'i', 'n', 'i', 'm', 'u', 'm') + RAPIDJSON_STRING_(Maximum, 'm', 'a', 'x', 'i', 'm', 'u', 'm') + RAPIDJSON_STRING_(ExclusiveMinimum, 'e', 'x', 'c', 'l', 'u', 's', 'i', 'v', 'e', 'M', 'i', 'n', 'i', 'm', 'u', 'm') + RAPIDJSON_STRING_(ExclusiveMaximum, 'e', 'x', 'c', 'l', 'u', 's', 'i', 'v', 'e', 'M', 'a', 'x', 'i', 'm', 'u', 'm') + RAPIDJSON_STRING_(MultipleOf, 'm', 'u', 'l', 't', 'i', 'p', 'l', 'e', 'O', 'f') + RAPIDJSON_STRING_(DefaultValue, 'd', 'e', 'f', 'a', 'u', 'l', 't') + +#undef RAPIDJSON_STRING_ + +private: + enum SchemaValueType { + kNullSchemaType, + kBooleanSchemaType, + kObjectSchemaType, + kArraySchemaType, + kStringSchemaType, + kNumberSchemaType, + kIntegerSchemaType, + kTotalSchemaType + }; + +#if RAPIDJSON_SCHEMA_USE_INTERNALREGEX + typedef internal::GenericRegex RegexType; +#elif RAPIDJSON_SCHEMA_USE_STDREGEX + typedef std::basic_regex RegexType; +#else + typedef char RegexType; +#endif + + struct SchemaArray { + SchemaArray() : schemas(), count() {} + ~SchemaArray() { AllocatorType::Free(schemas); } + const SchemaType** schemas; + SizeType begin; // begin index of context.validators + SizeType count; + }; + + template + void AddUniqueElement(V1& a, const V2& v) { + for (typename V1::ConstValueIterator itr = a.Begin(); itr != a.End(); ++itr) + if (*itr == v) + return; + V1 c(v, *allocator_); + a.PushBack(c, *allocator_); + } + + static const ValueType* GetMember(const ValueType& value, const ValueType& name) { + typename ValueType::ConstMemberIterator itr = value.FindMember(name); + return itr != value.MemberEnd() ? &(itr->value) : 0; + } + + static void AssignIfExist(bool& out, const ValueType& value, const ValueType& name) { + if (const ValueType* v = GetMember(value, name)) + if (v->IsBool()) + out = v->GetBool(); + } + + static void AssignIfExist(SizeType& out, const ValueType& value, const ValueType& name) { + if (const ValueType* v = GetMember(value, name)) + if (v->IsUint64() && v->GetUint64() <= SizeType(~0)) + out = static_cast(v->GetUint64()); + } + + void AssignIfExist(SchemaArray& out, SchemaDocumentType& schemaDocument, const PointerType& p, const ValueType& value, const ValueType& name, const ValueType& document) { + if (const ValueType* v = GetMember(value, name)) { + if (v->IsArray() && v->Size() > 0) { + PointerType q = p.Append(name, allocator_); + out.count = v->Size(); + out.schemas = static_cast(allocator_->Malloc(out.count * sizeof(const Schema*))); + memset(out.schemas, 0, sizeof(Schema*)* out.count); + for (SizeType i = 0; i < out.count; i++) + schemaDocument.CreateSchema(&out.schemas[i], q.Append(i, allocator_), (*v)[i], document); + out.begin = validatorCount_; + validatorCount_ += out.count; + } + } + } + +#if RAPIDJSON_SCHEMA_USE_INTERNALREGEX + template + RegexType* CreatePattern(const ValueType& value) { + if (value.IsString()) { + RegexType* r = new (allocator_->Malloc(sizeof(RegexType))) RegexType(value.GetString(), allocator_); + if (!r->IsValid()) { + r->~RegexType(); + AllocatorType::Free(r); + r = 0; + } + return r; + } + return 0; + } + + static bool IsPatternMatch(const RegexType* pattern, const Ch *str, SizeType) { + GenericRegexSearch rs(*pattern); + return rs.Search(str); + } +#elif RAPIDJSON_SCHEMA_USE_STDREGEX + template + RegexType* CreatePattern(const ValueType& value) { + if (value.IsString()) { + RegexType *r = static_cast(allocator_->Malloc(sizeof(RegexType))); + try { + return new (r) RegexType(value.GetString(), std::size_t(value.GetStringLength()), std::regex_constants::ECMAScript); + } + catch (const std::regex_error&) { + AllocatorType::Free(r); + } + } + return 0; + } + + static bool IsPatternMatch(const RegexType* pattern, const Ch *str, SizeType length) { + std::match_results r; + return std::regex_search(str, str + length, r, *pattern); + } +#else + template + RegexType* CreatePattern(const ValueType&) { return 0; } + + static bool IsPatternMatch(const RegexType*, const Ch *, SizeType) { return true; } +#endif // RAPIDJSON_SCHEMA_USE_STDREGEX + + void AddType(const ValueType& type) { + if (type == GetNullString() ) type_ |= 1 << kNullSchemaType; + else if (type == GetBooleanString()) type_ |= 1 << kBooleanSchemaType; + else if (type == GetObjectString() ) type_ |= 1 << kObjectSchemaType; + else if (type == GetArrayString() ) type_ |= 1 << kArraySchemaType; + else if (type == GetStringString() ) type_ |= 1 << kStringSchemaType; + else if (type == GetIntegerString()) type_ |= 1 << kIntegerSchemaType; + else if (type == GetNumberString() ) type_ |= (1 << kNumberSchemaType) | (1 << kIntegerSchemaType); + } + + bool CreateParallelValidator(Context& context) const { + if (enum_ || context.arrayUniqueness) + context.hasher = context.factory.CreateHasher(); + + if (validatorCount_) { + RAPIDJSON_ASSERT(context.validators == 0); + context.validators = static_cast(context.factory.MallocState(sizeof(ISchemaValidator*) * validatorCount_)); + context.validatorCount = validatorCount_; + + if (allOf_.schemas) + CreateSchemaValidators(context, allOf_); + + if (anyOf_.schemas) + CreateSchemaValidators(context, anyOf_); + + if (oneOf_.schemas) + CreateSchemaValidators(context, oneOf_); + + if (not_) + context.validators[notValidatorIndex_] = context.factory.CreateSchemaValidator(*not_); + + if (hasSchemaDependencies_) { + for (SizeType i = 0; i < propertyCount_; i++) + if (properties_[i].dependenciesSchema) + context.validators[properties_[i].dependenciesValidatorIndex] = context.factory.CreateSchemaValidator(*properties_[i].dependenciesSchema); + } + } + + return true; + } + + void CreateSchemaValidators(Context& context, const SchemaArray& schemas) const { + for (SizeType i = 0; i < schemas.count; i++) + context.validators[schemas.begin + i] = context.factory.CreateSchemaValidator(*schemas.schemas[i]); + } + + // O(n) + bool FindPropertyIndex(const ValueType& name, SizeType* outIndex) const { + SizeType len = name.GetStringLength(); + const Ch* str = name.GetString(); + for (SizeType index = 0; index < propertyCount_; index++) + if (properties_[index].name.GetStringLength() == len && + (std::memcmp(properties_[index].name.GetString(), str, sizeof(Ch) * len) == 0)) + { + *outIndex = index; + return true; + } + return false; + } + + bool CheckInt(Context& context, int64_t i) const { + if (!(type_ & ((1 << kIntegerSchemaType) | (1 << kNumberSchemaType)))) { + DisallowedType(context, GetIntegerString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + + if (!minimum_.IsNull()) { + if (minimum_.IsInt64()) { + if (exclusiveMinimum_ ? i <= minimum_.GetInt64() : i < minimum_.GetInt64()) { + context.error_handler.BelowMinimum(i, minimum_, exclusiveMinimum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMinimumString()); + } + } + else if (minimum_.IsUint64()) { + context.error_handler.BelowMinimum(i, minimum_, exclusiveMinimum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMinimumString()); // i <= max(int64_t) < minimum.GetUint64() + } + else if (!CheckDoubleMinimum(context, static_cast(i))) + return false; + } + + if (!maximum_.IsNull()) { + if (maximum_.IsInt64()) { + if (exclusiveMaximum_ ? i >= maximum_.GetInt64() : i > maximum_.GetInt64()) { + context.error_handler.AboveMaximum(i, maximum_, exclusiveMaximum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMaximumString()); + } + } + else if (maximum_.IsUint64()) { } + /* do nothing */ // i <= max(int64_t) < maximum_.GetUint64() + else if (!CheckDoubleMaximum(context, static_cast(i))) + return false; + } + + if (!multipleOf_.IsNull()) { + if (multipleOf_.IsUint64()) { + if (static_cast(i >= 0 ? i : -i) % multipleOf_.GetUint64() != 0) { + context.error_handler.NotMultipleOf(i, multipleOf_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMultipleOfString()); + } + } + else if (!CheckDoubleMultipleOf(context, static_cast(i))) + return false; + } + + return true; + } + + bool CheckUint(Context& context, uint64_t i) const { + if (!(type_ & ((1 << kIntegerSchemaType) | (1 << kNumberSchemaType)))) { + DisallowedType(context, GetIntegerString()); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetTypeString()); + } + + if (!minimum_.IsNull()) { + if (minimum_.IsUint64()) { + if (exclusiveMinimum_ ? i <= minimum_.GetUint64() : i < minimum_.GetUint64()) { + context.error_handler.BelowMinimum(i, minimum_, exclusiveMinimum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMinimumString()); + } + } + else if (minimum_.IsInt64()) + /* do nothing */; // i >= 0 > minimum.Getint64() + else if (!CheckDoubleMinimum(context, static_cast(i))) + return false; + } + + if (!maximum_.IsNull()) { + if (maximum_.IsUint64()) { + if (exclusiveMaximum_ ? i >= maximum_.GetUint64() : i > maximum_.GetUint64()) { + context.error_handler.AboveMaximum(i, maximum_, exclusiveMaximum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMaximumString()); + } + } + else if (maximum_.IsInt64()) { + context.error_handler.AboveMaximum(i, maximum_, exclusiveMaximum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMaximumString()); // i >= 0 > maximum_ + } + else if (!CheckDoubleMaximum(context, static_cast(i))) + return false; + } + + if (!multipleOf_.IsNull()) { + if (multipleOf_.IsUint64()) { + if (i % multipleOf_.GetUint64() != 0) { + context.error_handler.NotMultipleOf(i, multipleOf_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMultipleOfString()); + } + } + else if (!CheckDoubleMultipleOf(context, static_cast(i))) + return false; + } + + return true; + } + + bool CheckDoubleMinimum(Context& context, double d) const { + if (exclusiveMinimum_ ? d <= minimum_.GetDouble() : d < minimum_.GetDouble()) { + context.error_handler.BelowMinimum(d, minimum_, exclusiveMinimum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMinimumString()); + } + return true; + } + + bool CheckDoubleMaximum(Context& context, double d) const { + if (exclusiveMaximum_ ? d >= maximum_.GetDouble() : d > maximum_.GetDouble()) { + context.error_handler.AboveMaximum(d, maximum_, exclusiveMaximum_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMaximumString()); + } + return true; + } + + bool CheckDoubleMultipleOf(Context& context, double d) const { + double a = std::abs(d), b = std::abs(multipleOf_.GetDouble()); + double q = std::floor(a / b); + double r = a - q * b; + if (r > 0.0) { + context.error_handler.NotMultipleOf(d, multipleOf_); + RAPIDJSON_INVALID_KEYWORD_RETURN(GetMultipleOfString()); + } + return true; + } + + void DisallowedType(Context& context, const ValueType& actualType) const { + ErrorHandler& eh = context.error_handler; + eh.StartDisallowedType(); + + if (type_ & (1 << kNullSchemaType)) eh.AddExpectedType(GetNullString()); + if (type_ & (1 << kBooleanSchemaType)) eh.AddExpectedType(GetBooleanString()); + if (type_ & (1 << kObjectSchemaType)) eh.AddExpectedType(GetObjectString()); + if (type_ & (1 << kArraySchemaType)) eh.AddExpectedType(GetArrayString()); + if (type_ & (1 << kStringSchemaType)) eh.AddExpectedType(GetStringString()); + + if (type_ & (1 << kNumberSchemaType)) eh.AddExpectedType(GetNumberString()); + else if (type_ & (1 << kIntegerSchemaType)) eh.AddExpectedType(GetIntegerString()); + + eh.EndDisallowedType(actualType); + } + + struct Property { + Property() : schema(), dependenciesSchema(), dependenciesValidatorIndex(), dependencies(), required(false) {} + ~Property() { AllocatorType::Free(dependencies); } + SValue name; + const SchemaType* schema; + const SchemaType* dependenciesSchema; + SizeType dependenciesValidatorIndex; + bool* dependencies; + bool required; + }; + + struct PatternProperty { + PatternProperty() : schema(), pattern() {} + ~PatternProperty() { + if (pattern) { + pattern->~RegexType(); + AllocatorType::Free(pattern); + } + } + const SchemaType* schema; + RegexType* pattern; + }; + + AllocatorType* allocator_; + SValue uri_; + PointerType pointer_; + const SchemaType* typeless_; + uint64_t* enum_; + SizeType enumCount_; + SchemaArray allOf_; + SchemaArray anyOf_; + SchemaArray oneOf_; + const SchemaType* not_; + unsigned type_; // bitmask of kSchemaType + SizeType validatorCount_; + SizeType notValidatorIndex_; + + Property* properties_; + const SchemaType* additionalPropertiesSchema_; + PatternProperty* patternProperties_; + SizeType patternPropertyCount_; + SizeType propertyCount_; + SizeType minProperties_; + SizeType maxProperties_; + bool additionalProperties_; + bool hasDependencies_; + bool hasRequired_; + bool hasSchemaDependencies_; + + const SchemaType* additionalItemsSchema_; + const SchemaType* itemsList_; + const SchemaType** itemsTuple_; + SizeType itemsTupleCount_; + SizeType minItems_; + SizeType maxItems_; + bool additionalItems_; + bool uniqueItems_; + + RegexType* pattern_; + SizeType minLength_; + SizeType maxLength_; + + SValue minimum_; + SValue maximum_; + SValue multipleOf_; + bool exclusiveMinimum_; + bool exclusiveMaximum_; + + SizeType defaultValueLength_; +}; + +template +struct TokenHelper { + RAPIDJSON_FORCEINLINE static void AppendIndexToken(Stack& documentStack, SizeType index) { + *documentStack.template Push() = '/'; + char buffer[21]; + size_t length = static_cast((sizeof(SizeType) == 4 ? u32toa(index, buffer) : u64toa(index, buffer)) - buffer); + for (size_t i = 0; i < length; i++) + *documentStack.template Push() = static_cast(buffer[i]); + } +}; + +// Partial specialized version for char to prevent buffer copying. +template +struct TokenHelper { + RAPIDJSON_FORCEINLINE static void AppendIndexToken(Stack& documentStack, SizeType index) { + if (sizeof(SizeType) == 4) { + char *buffer = documentStack.template Push(1 + 10); // '/' + uint + *buffer++ = '/'; + const char* end = internal::u32toa(index, buffer); + documentStack.template Pop(static_cast(10 - (end - buffer))); + } + else { + char *buffer = documentStack.template Push(1 + 20); // '/' + uint64 + *buffer++ = '/'; + const char* end = internal::u64toa(index, buffer); + documentStack.template Pop(static_cast(20 - (end - buffer))); + } + } +}; + +} // namespace internal + +/////////////////////////////////////////////////////////////////////////////// +// IGenericRemoteSchemaDocumentProvider + +template +class IGenericRemoteSchemaDocumentProvider { +public: + typedef typename SchemaDocumentType::Ch Ch; + + virtual ~IGenericRemoteSchemaDocumentProvider() {} + virtual const SchemaDocumentType* GetRemoteDocument(const Ch* uri, SizeType length) = 0; +}; + +/////////////////////////////////////////////////////////////////////////////// +// GenericSchemaDocument + +//! JSON schema document. +/*! + A JSON schema document is a compiled version of a JSON schema. + It is basically a tree of internal::Schema. + + \note This is an immutable class (i.e. its instance cannot be modified after construction). + \tparam ValueT Type of JSON value (e.g. \c Value ), which also determine the encoding. + \tparam Allocator Allocator type for allocating memory of this document. +*/ +template +class GenericSchemaDocument { +public: + typedef ValueT ValueType; + typedef IGenericRemoteSchemaDocumentProvider IRemoteSchemaDocumentProviderType; + typedef Allocator AllocatorType; + typedef typename ValueType::EncodingType EncodingType; + typedef typename EncodingType::Ch Ch; + typedef internal::Schema SchemaType; + typedef GenericPointer PointerType; + typedef GenericValue URIType; + friend class internal::Schema; + template + friend class GenericSchemaValidator; + + //! Constructor. + /*! + Compile a JSON document into schema document. + + \param document A JSON document as source. + \param uri The base URI of this schema document for purposes of violation reporting. + \param uriLength Length of \c name, in code points. + \param remoteProvider An optional remote schema document provider for resolving remote reference. Can be null. + \param allocator An optional allocator instance for allocating memory. Can be null. + */ + explicit GenericSchemaDocument(const ValueType& document, const Ch* uri = 0, SizeType uriLength = 0, + IRemoteSchemaDocumentProviderType* remoteProvider = 0, Allocator* allocator = 0) : + remoteProvider_(remoteProvider), + allocator_(allocator), + ownAllocator_(), + root_(), + typeless_(), + schemaMap_(allocator, kInitialSchemaMapSize), + schemaRef_(allocator, kInitialSchemaRefSize) + { + if (!allocator_) + ownAllocator_ = allocator_ = RAPIDJSON_NEW(Allocator)(); + + Ch noUri[1] = {0}; + uri_.SetString(uri ? uri : noUri, uriLength, *allocator_); + + typeless_ = static_cast(allocator_->Malloc(sizeof(SchemaType))); + new (typeless_) SchemaType(this, PointerType(), ValueType(kObjectType).Move(), ValueType(kObjectType).Move(), allocator_); + + // Generate root schema, it will call CreateSchema() to create sub-schemas, + // And call AddRefSchema() if there are $ref. + CreateSchemaRecursive(&root_, PointerType(), document, document); + + // Resolve $ref + while (!schemaRef_.Empty()) { + SchemaRefEntry* refEntry = schemaRef_.template Pop(1); + if (const SchemaType* s = GetSchema(refEntry->target)) { + if (refEntry->schema) + *refEntry->schema = s; + + // Create entry in map if not exist + if (!GetSchema(refEntry->source)) { + new (schemaMap_.template Push()) SchemaEntry(refEntry->source, const_cast(s), false, allocator_); + } + } + else if (refEntry->schema) + *refEntry->schema = typeless_; + + refEntry->~SchemaRefEntry(); + } + + RAPIDJSON_ASSERT(root_ != 0); + + schemaRef_.ShrinkToFit(); // Deallocate all memory for ref + } + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + //! Move constructor in C++11 + GenericSchemaDocument(GenericSchemaDocument&& rhs) RAPIDJSON_NOEXCEPT : + remoteProvider_(rhs.remoteProvider_), + allocator_(rhs.allocator_), + ownAllocator_(rhs.ownAllocator_), + root_(rhs.root_), + typeless_(rhs.typeless_), + schemaMap_(std::move(rhs.schemaMap_)), + schemaRef_(std::move(rhs.schemaRef_)), + uri_(std::move(rhs.uri_)) + { + rhs.remoteProvider_ = 0; + rhs.allocator_ = 0; + rhs.ownAllocator_ = 0; + rhs.typeless_ = 0; + } +#endif + + //! Destructor + ~GenericSchemaDocument() { + while (!schemaMap_.Empty()) + schemaMap_.template Pop(1)->~SchemaEntry(); + + if (typeless_) { + typeless_->~SchemaType(); + Allocator::Free(typeless_); + } + + RAPIDJSON_DELETE(ownAllocator_); + } + + const URIType& GetURI() const { return uri_; } + + //! Get the root schema. + const SchemaType& GetRoot() const { return *root_; } + +private: + //! Prohibit copying + GenericSchemaDocument(const GenericSchemaDocument&); + //! Prohibit assignment + GenericSchemaDocument& operator=(const GenericSchemaDocument&); + + struct SchemaRefEntry { + SchemaRefEntry(const PointerType& s, const PointerType& t, const SchemaType** outSchema, Allocator *allocator) : source(s, allocator), target(t, allocator), schema(outSchema) {} + PointerType source; + PointerType target; + const SchemaType** schema; + }; + + struct SchemaEntry { + SchemaEntry(const PointerType& p, SchemaType* s, bool o, Allocator* allocator) : pointer(p, allocator), schema(s), owned(o) {} + ~SchemaEntry() { + if (owned) { + schema->~SchemaType(); + Allocator::Free(schema); + } + } + PointerType pointer; + SchemaType* schema; + bool owned; + }; + + void CreateSchemaRecursive(const SchemaType** schema, const PointerType& pointer, const ValueType& v, const ValueType& document) { + if (schema) + *schema = typeless_; + + if (v.GetType() == kObjectType) { + const SchemaType* s = GetSchema(pointer); + if (!s) + CreateSchema(schema, pointer, v, document); + + for (typename ValueType::ConstMemberIterator itr = v.MemberBegin(); itr != v.MemberEnd(); ++itr) + CreateSchemaRecursive(0, pointer.Append(itr->name, allocator_), itr->value, document); + } + else if (v.GetType() == kArrayType) + for (SizeType i = 0; i < v.Size(); i++) + CreateSchemaRecursive(0, pointer.Append(i, allocator_), v[i], document); + } + + void CreateSchema(const SchemaType** schema, const PointerType& pointer, const ValueType& v, const ValueType& document) { + RAPIDJSON_ASSERT(pointer.IsValid()); + if (v.IsObject()) { + if (!HandleRefSchema(pointer, schema, v, document)) { + SchemaType* s = new (allocator_->Malloc(sizeof(SchemaType))) SchemaType(this, pointer, v, document, allocator_); + new (schemaMap_.template Push()) SchemaEntry(pointer, s, true, allocator_); + if (schema) + *schema = s; + } + } + } + + bool HandleRefSchema(const PointerType& source, const SchemaType** schema, const ValueType& v, const ValueType& document) { + static const Ch kRefString[] = { '$', 'r', 'e', 'f', '\0' }; + static const ValueType kRefValue(kRefString, 4); + + typename ValueType::ConstMemberIterator itr = v.FindMember(kRefValue); + if (itr == v.MemberEnd()) + return false; + + if (itr->value.IsString()) { + SizeType len = itr->value.GetStringLength(); + if (len > 0) { + const Ch* s = itr->value.GetString(); + SizeType i = 0; + while (i < len && s[i] != '#') // Find the first # + i++; + + if (i > 0) { // Remote reference, resolve immediately + if (remoteProvider_) { + if (const GenericSchemaDocument* remoteDocument = remoteProvider_->GetRemoteDocument(s, i)) { + PointerType pointer(&s[i], len - i, allocator_); + if (pointer.IsValid()) { + if (const SchemaType* sc = remoteDocument->GetSchema(pointer)) { + if (schema) + *schema = sc; + new (schemaMap_.template Push()) SchemaEntry(source, const_cast(sc), false, allocator_); + return true; + } + } + } + } + } + else if (s[i] == '#') { // Local reference, defer resolution + PointerType pointer(&s[i], len - i, allocator_); + if (pointer.IsValid()) { + if (const ValueType* nv = pointer.Get(document)) + if (HandleRefSchema(source, schema, *nv, document)) + return true; + + new (schemaRef_.template Push()) SchemaRefEntry(source, pointer, schema, allocator_); + return true; + } + } + } + } + return false; + } + + const SchemaType* GetSchema(const PointerType& pointer) const { + for (const SchemaEntry* target = schemaMap_.template Bottom(); target != schemaMap_.template End(); ++target) + if (pointer == target->pointer) + return target->schema; + return 0; + } + + PointerType GetPointer(const SchemaType* schema) const { + for (const SchemaEntry* target = schemaMap_.template Bottom(); target != schemaMap_.template End(); ++target) + if (schema == target->schema) + return target->pointer; + return PointerType(); + } + + const SchemaType* GetTypeless() const { return typeless_; } + + static const size_t kInitialSchemaMapSize = 64; + static const size_t kInitialSchemaRefSize = 64; + + IRemoteSchemaDocumentProviderType* remoteProvider_; + Allocator *allocator_; + Allocator *ownAllocator_; + const SchemaType* root_; //!< Root schema. + SchemaType* typeless_; + internal::Stack schemaMap_; // Stores created Pointer -> Schemas + internal::Stack schemaRef_; // Stores Pointer from $ref and schema which holds the $ref + URIType uri_; +}; + +//! GenericSchemaDocument using Value type. +typedef GenericSchemaDocument SchemaDocument; +//! IGenericRemoteSchemaDocumentProvider using SchemaDocument. +typedef IGenericRemoteSchemaDocumentProvider IRemoteSchemaDocumentProvider; + +/////////////////////////////////////////////////////////////////////////////// +// GenericSchemaValidator + +//! JSON Schema Validator. +/*! + A SAX style JSON schema validator. + It uses a \c GenericSchemaDocument to validate SAX events. + It delegates the incoming SAX events to an output handler. + The default output handler does nothing. + It can be reused multiple times by calling \c Reset(). + + \tparam SchemaDocumentType Type of schema document. + \tparam OutputHandler Type of output handler. Default handler does nothing. + \tparam StateAllocator Allocator for storing the internal validation states. +*/ +template < + typename SchemaDocumentType, + typename OutputHandler = BaseReaderHandler, + typename StateAllocator = CrtAllocator> +class GenericSchemaValidator : + public internal::ISchemaStateFactory, + public internal::ISchemaValidator, + public internal::IValidationErrorHandler +{ +public: + typedef typename SchemaDocumentType::SchemaType SchemaType; + typedef typename SchemaDocumentType::PointerType PointerType; + typedef typename SchemaType::EncodingType EncodingType; + typedef typename SchemaType::SValue SValue; + typedef typename EncodingType::Ch Ch; + typedef GenericStringRef StringRefType; + typedef GenericValue ValueType; + + //! Constructor without output handler. + /*! + \param schemaDocument The schema document to conform to. + \param allocator Optional allocator for storing internal validation states. + \param schemaStackCapacity Optional initial capacity of schema path stack. + \param documentStackCapacity Optional initial capacity of document path stack. + */ + GenericSchemaValidator( + const SchemaDocumentType& schemaDocument, + StateAllocator* allocator = 0, + size_t schemaStackCapacity = kDefaultSchemaStackCapacity, + size_t documentStackCapacity = kDefaultDocumentStackCapacity) + : + schemaDocument_(&schemaDocument), + root_(schemaDocument.GetRoot()), + stateAllocator_(allocator), + ownStateAllocator_(0), + schemaStack_(allocator, schemaStackCapacity), + documentStack_(allocator, documentStackCapacity), + outputHandler_(0), + error_(kObjectType), + currentError_(), + missingDependents_(), + valid_(true) +#if RAPIDJSON_SCHEMA_VERBOSE + , depth_(0) +#endif + { + } + + //! Constructor with output handler. + /*! + \param schemaDocument The schema document to conform to. + \param allocator Optional allocator for storing internal validation states. + \param schemaStackCapacity Optional initial capacity of schema path stack. + \param documentStackCapacity Optional initial capacity of document path stack. + */ + GenericSchemaValidator( + const SchemaDocumentType& schemaDocument, + OutputHandler& outputHandler, + StateAllocator* allocator = 0, + size_t schemaStackCapacity = kDefaultSchemaStackCapacity, + size_t documentStackCapacity = kDefaultDocumentStackCapacity) + : + schemaDocument_(&schemaDocument), + root_(schemaDocument.GetRoot()), + stateAllocator_(allocator), + ownStateAllocator_(0), + schemaStack_(allocator, schemaStackCapacity), + documentStack_(allocator, documentStackCapacity), + outputHandler_(&outputHandler), + error_(kObjectType), + currentError_(), + missingDependents_(), + valid_(true) +#if RAPIDJSON_SCHEMA_VERBOSE + , depth_(0) +#endif + { + } + + //! Destructor. + ~GenericSchemaValidator() { + Reset(); + RAPIDJSON_DELETE(ownStateAllocator_); + } + + //! Reset the internal states. + void Reset() { + while (!schemaStack_.Empty()) + PopSchema(); + documentStack_.Clear(); + error_.SetObject(); + currentError_.SetNull(); + missingDependents_.SetNull(); + valid_ = true; + } + + //! Checks whether the current state is valid. + // Implementation of ISchemaValidator + virtual bool IsValid() const { return valid_; } + + //! Gets the error object. + ValueType& GetError() { return error_; } + const ValueType& GetError() const { return error_; } + + //! Gets the JSON pointer pointed to the invalid schema. + PointerType GetInvalidSchemaPointer() const { + return schemaStack_.Empty() ? PointerType() : CurrentSchema().GetPointer(); + } + + //! Gets the keyword of invalid schema. + const Ch* GetInvalidSchemaKeyword() const { + return schemaStack_.Empty() ? 0 : CurrentContext().invalidKeyword; + } + + //! Gets the JSON pointer pointed to the invalid value. + PointerType GetInvalidDocumentPointer() const { + if (documentStack_.Empty()) { + return PointerType(); + } + else { + return PointerType(documentStack_.template Bottom(), documentStack_.GetSize() / sizeof(Ch)); + } + } + + void NotMultipleOf(int64_t actual, const SValue& expected) { + AddNumberError(SchemaType::GetMultipleOfString(), ValueType(actual).Move(), expected); + } + void NotMultipleOf(uint64_t actual, const SValue& expected) { + AddNumberError(SchemaType::GetMultipleOfString(), ValueType(actual).Move(), expected); + } + void NotMultipleOf(double actual, const SValue& expected) { + AddNumberError(SchemaType::GetMultipleOfString(), ValueType(actual).Move(), expected); + } + void AboveMaximum(int64_t actual, const SValue& expected, bool exclusive) { + AddNumberError(SchemaType::GetMaximumString(), ValueType(actual).Move(), expected, + exclusive ? &SchemaType::GetExclusiveMaximumString : 0); + } + void AboveMaximum(uint64_t actual, const SValue& expected, bool exclusive) { + AddNumberError(SchemaType::GetMaximumString(), ValueType(actual).Move(), expected, + exclusive ? &SchemaType::GetExclusiveMaximumString : 0); + } + void AboveMaximum(double actual, const SValue& expected, bool exclusive) { + AddNumberError(SchemaType::GetMaximumString(), ValueType(actual).Move(), expected, + exclusive ? &SchemaType::GetExclusiveMaximumString : 0); + } + void BelowMinimum(int64_t actual, const SValue& expected, bool exclusive) { + AddNumberError(SchemaType::GetMinimumString(), ValueType(actual).Move(), expected, + exclusive ? &SchemaType::GetExclusiveMinimumString : 0); + } + void BelowMinimum(uint64_t actual, const SValue& expected, bool exclusive) { + AddNumberError(SchemaType::GetMinimumString(), ValueType(actual).Move(), expected, + exclusive ? &SchemaType::GetExclusiveMinimumString : 0); + } + void BelowMinimum(double actual, const SValue& expected, bool exclusive) { + AddNumberError(SchemaType::GetMinimumString(), ValueType(actual).Move(), expected, + exclusive ? &SchemaType::GetExclusiveMinimumString : 0); + } + + void TooLong(const Ch* str, SizeType length, SizeType expected) { + AddNumberError(SchemaType::GetMaxLengthString(), + ValueType(str, length, GetStateAllocator()).Move(), SValue(expected).Move()); + } + void TooShort(const Ch* str, SizeType length, SizeType expected) { + AddNumberError(SchemaType::GetMinLengthString(), + ValueType(str, length, GetStateAllocator()).Move(), SValue(expected).Move()); + } + void DoesNotMatch(const Ch* str, SizeType length) { + currentError_.SetObject(); + currentError_.AddMember(GetActualString(), ValueType(str, length, GetStateAllocator()).Move(), GetStateAllocator()); + AddCurrentError(SchemaType::GetPatternString()); + } + + void DisallowedItem(SizeType index) { + currentError_.SetObject(); + currentError_.AddMember(GetDisallowedString(), ValueType(index).Move(), GetStateAllocator()); + AddCurrentError(SchemaType::GetAdditionalItemsString(), true); + } + void TooFewItems(SizeType actualCount, SizeType expectedCount) { + AddNumberError(SchemaType::GetMinItemsString(), + ValueType(actualCount).Move(), SValue(expectedCount).Move()); + } + void TooManyItems(SizeType actualCount, SizeType expectedCount) { + AddNumberError(SchemaType::GetMaxItemsString(), + ValueType(actualCount).Move(), SValue(expectedCount).Move()); + } + void DuplicateItems(SizeType index1, SizeType index2) { + ValueType duplicates(kArrayType); + duplicates.PushBack(index1, GetStateAllocator()); + duplicates.PushBack(index2, GetStateAllocator()); + currentError_.SetObject(); + currentError_.AddMember(GetDuplicatesString(), duplicates, GetStateAllocator()); + AddCurrentError(SchemaType::GetUniqueItemsString(), true); + } + + void TooManyProperties(SizeType actualCount, SizeType expectedCount) { + AddNumberError(SchemaType::GetMaxPropertiesString(), + ValueType(actualCount).Move(), SValue(expectedCount).Move()); + } + void TooFewProperties(SizeType actualCount, SizeType expectedCount) { + AddNumberError(SchemaType::GetMinPropertiesString(), + ValueType(actualCount).Move(), SValue(expectedCount).Move()); + } + void StartMissingProperties() { + currentError_.SetArray(); + } + void AddMissingProperty(const SValue& name) { + currentError_.PushBack(ValueType(name, GetStateAllocator()).Move(), GetStateAllocator()); + } + bool EndMissingProperties() { + if (currentError_.Empty()) + return false; + ValueType error(kObjectType); + error.AddMember(GetMissingString(), currentError_, GetStateAllocator()); + currentError_ = error; + AddCurrentError(SchemaType::GetRequiredString()); + return true; + } + void PropertyViolations(ISchemaValidator** subvalidators, SizeType count) { + for (SizeType i = 0; i < count; ++i) + MergeError(static_cast(subvalidators[i])->GetError()); + } + void DisallowedProperty(const Ch* name, SizeType length) { + currentError_.SetObject(); + currentError_.AddMember(GetDisallowedString(), ValueType(name, length, GetStateAllocator()).Move(), GetStateAllocator()); + AddCurrentError(SchemaType::GetAdditionalPropertiesString(), true); + } + + void StartDependencyErrors() { + currentError_.SetObject(); + } + void StartMissingDependentProperties() { + missingDependents_.SetArray(); + } + void AddMissingDependentProperty(const SValue& targetName) { + missingDependents_.PushBack(ValueType(targetName, GetStateAllocator()).Move(), GetStateAllocator()); + } + void EndMissingDependentProperties(const SValue& sourceName) { + if (!missingDependents_.Empty()) + currentError_.AddMember(ValueType(sourceName, GetStateAllocator()).Move(), + missingDependents_, GetStateAllocator()); + } + void AddDependencySchemaError(const SValue& sourceName, ISchemaValidator* subvalidator) { + currentError_.AddMember(ValueType(sourceName, GetStateAllocator()).Move(), + static_cast(subvalidator)->GetError(), GetStateAllocator()); + } + bool EndDependencyErrors() { + if (currentError_.ObjectEmpty()) + return false; + ValueType error(kObjectType); + error.AddMember(GetErrorsString(), currentError_, GetStateAllocator()); + currentError_ = error; + AddCurrentError(SchemaType::GetDependenciesString()); + return true; + } + + void DisallowedValue() { + currentError_.SetObject(); + AddCurrentError(SchemaType::GetEnumString()); + } + void StartDisallowedType() { + currentError_.SetArray(); + } + void AddExpectedType(const typename SchemaType::ValueType& expectedType) { + currentError_.PushBack(ValueType(expectedType, GetStateAllocator()).Move(), GetStateAllocator()); + } + void EndDisallowedType(const typename SchemaType::ValueType& actualType) { + ValueType error(kObjectType); + error.AddMember(GetExpectedString(), currentError_, GetStateAllocator()); + error.AddMember(GetActualString(), ValueType(actualType, GetStateAllocator()).Move(), GetStateAllocator()); + currentError_ = error; + AddCurrentError(SchemaType::GetTypeString()); + } + void NotAllOf(ISchemaValidator** subvalidators, SizeType count) { + for (SizeType i = 0; i < count; ++i) { + MergeError(static_cast(subvalidators[i])->GetError()); + } + } + void NoneOf(ISchemaValidator** subvalidators, SizeType count) { + AddErrorArray(SchemaType::GetAnyOfString(), subvalidators, count); + } + void NotOneOf(ISchemaValidator** subvalidators, SizeType count) { + AddErrorArray(SchemaType::GetOneOfString(), subvalidators, count); + } + void Disallowed() { + currentError_.SetObject(); + AddCurrentError(SchemaType::GetNotString()); + } + +#define RAPIDJSON_STRING_(name, ...) \ + static const StringRefType& Get##name##String() {\ + static const Ch s[] = { __VA_ARGS__, '\0' };\ + static const StringRefType v(s, static_cast(sizeof(s) / sizeof(Ch) - 1)); \ + return v;\ + } + + RAPIDJSON_STRING_(InstanceRef, 'i', 'n', 's', 't', 'a', 'n', 'c', 'e', 'R', 'e', 'f') + RAPIDJSON_STRING_(SchemaRef, 's', 'c', 'h', 'e', 'm', 'a', 'R', 'e', 'f') + RAPIDJSON_STRING_(Expected, 'e', 'x', 'p', 'e', 'c', 't', 'e', 'd') + RAPIDJSON_STRING_(Actual, 'a', 'c', 't', 'u', 'a', 'l') + RAPIDJSON_STRING_(Disallowed, 'd', 'i', 's', 'a', 'l', 'l', 'o', 'w', 'e', 'd') + RAPIDJSON_STRING_(Missing, 'm', 'i', 's', 's', 'i', 'n', 'g') + RAPIDJSON_STRING_(Errors, 'e', 'r', 'r', 'o', 'r', 's') + RAPIDJSON_STRING_(Duplicates, 'd', 'u', 'p', 'l', 'i', 'c', 'a', 't', 'e', 's') + +#undef RAPIDJSON_STRING_ + +#if RAPIDJSON_SCHEMA_VERBOSE +#define RAPIDJSON_SCHEMA_HANDLE_BEGIN_VERBOSE_() \ +RAPIDJSON_MULTILINEMACRO_BEGIN\ + *documentStack_.template Push() = '\0';\ + documentStack_.template Pop(1);\ + internal::PrintInvalidDocument(documentStack_.template Bottom());\ +RAPIDJSON_MULTILINEMACRO_END +#else +#define RAPIDJSON_SCHEMA_HANDLE_BEGIN_VERBOSE_() +#endif + +#define RAPIDJSON_SCHEMA_HANDLE_BEGIN_(method, arg1)\ + if (!valid_) return false; \ + if (!BeginValue() || !CurrentSchema().method arg1) {\ + RAPIDJSON_SCHEMA_HANDLE_BEGIN_VERBOSE_();\ + return valid_ = false;\ + } + +#define RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(method, arg2)\ + for (Context* context = schemaStack_.template Bottom(); context != schemaStack_.template End(); context++) {\ + if (context->hasher)\ + static_cast(context->hasher)->method arg2;\ + if (context->validators)\ + for (SizeType i_ = 0; i_ < context->validatorCount; i_++)\ + static_cast(context->validators[i_])->method arg2;\ + if (context->patternPropertiesValidators)\ + for (SizeType i_ = 0; i_ < context->patternPropertiesValidatorCount; i_++)\ + static_cast(context->patternPropertiesValidators[i_])->method arg2;\ + } + +#define RAPIDJSON_SCHEMA_HANDLE_END_(method, arg2)\ + return valid_ = EndValue() && (!outputHandler_ || outputHandler_->method arg2) + +#define RAPIDJSON_SCHEMA_HANDLE_VALUE_(method, arg1, arg2) \ + RAPIDJSON_SCHEMA_HANDLE_BEGIN_ (method, arg1);\ + RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(method, arg2);\ + RAPIDJSON_SCHEMA_HANDLE_END_ (method, arg2) + + bool Null() { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Null, (CurrentContext()), ( )); } + bool Bool(bool b) { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Bool, (CurrentContext(), b), (b)); } + bool Int(int i) { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Int, (CurrentContext(), i), (i)); } + bool Uint(unsigned u) { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Uint, (CurrentContext(), u), (u)); } + bool Int64(int64_t i) { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Int64, (CurrentContext(), i), (i)); } + bool Uint64(uint64_t u) { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Uint64, (CurrentContext(), u), (u)); } + bool Double(double d) { RAPIDJSON_SCHEMA_HANDLE_VALUE_(Double, (CurrentContext(), d), (d)); } + bool RawNumber(const Ch* str, SizeType length, bool copy) + { RAPIDJSON_SCHEMA_HANDLE_VALUE_(String, (CurrentContext(), str, length, copy), (str, length, copy)); } + bool String(const Ch* str, SizeType length, bool copy) + { RAPIDJSON_SCHEMA_HANDLE_VALUE_(String, (CurrentContext(), str, length, copy), (str, length, copy)); } + + bool StartObject() { + RAPIDJSON_SCHEMA_HANDLE_BEGIN_(StartObject, (CurrentContext())); + RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(StartObject, ()); + return valid_ = !outputHandler_ || outputHandler_->StartObject(); + } + + bool Key(const Ch* str, SizeType len, bool copy) { + if (!valid_) return false; + AppendToken(str, len); + if (!CurrentSchema().Key(CurrentContext(), str, len, copy)) return valid_ = false; + RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(Key, (str, len, copy)); + return valid_ = !outputHandler_ || outputHandler_->Key(str, len, copy); + } + + bool EndObject(SizeType memberCount) { + if (!valid_) return false; + RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(EndObject, (memberCount)); + if (!CurrentSchema().EndObject(CurrentContext(), memberCount)) return valid_ = false; + RAPIDJSON_SCHEMA_HANDLE_END_(EndObject, (memberCount)); + } + + bool StartArray() { + RAPIDJSON_SCHEMA_HANDLE_BEGIN_(StartArray, (CurrentContext())); + RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(StartArray, ()); + return valid_ = !outputHandler_ || outputHandler_->StartArray(); + } + + bool EndArray(SizeType elementCount) { + if (!valid_) return false; + RAPIDJSON_SCHEMA_HANDLE_PARALLEL_(EndArray, (elementCount)); + if (!CurrentSchema().EndArray(CurrentContext(), elementCount)) return valid_ = false; + RAPIDJSON_SCHEMA_HANDLE_END_(EndArray, (elementCount)); + } + +#undef RAPIDJSON_SCHEMA_HANDLE_BEGIN_VERBOSE_ +#undef RAPIDJSON_SCHEMA_HANDLE_BEGIN_ +#undef RAPIDJSON_SCHEMA_HANDLE_PARALLEL_ +#undef RAPIDJSON_SCHEMA_HANDLE_VALUE_ + + // Implementation of ISchemaStateFactory + virtual ISchemaValidator* CreateSchemaValidator(const SchemaType& root) { + return new (GetStateAllocator().Malloc(sizeof(GenericSchemaValidator))) GenericSchemaValidator(*schemaDocument_, root, documentStack_.template Bottom(), documentStack_.GetSize(), +#if RAPIDJSON_SCHEMA_VERBOSE + depth_ + 1, +#endif + &GetStateAllocator()); + } + + virtual void DestroySchemaValidator(ISchemaValidator* validator) { + GenericSchemaValidator* v = static_cast(validator); + v->~GenericSchemaValidator(); + StateAllocator::Free(v); + } + + virtual void* CreateHasher() { + return new (GetStateAllocator().Malloc(sizeof(HasherType))) HasherType(&GetStateAllocator()); + } + + virtual uint64_t GetHashCode(void* hasher) { + return static_cast(hasher)->GetHashCode(); + } + + virtual void DestroryHasher(void* hasher) { + HasherType* h = static_cast(hasher); + h->~HasherType(); + StateAllocator::Free(h); + } + + virtual void* MallocState(size_t size) { + return GetStateAllocator().Malloc(size); + } + + virtual void FreeState(void* p) { + StateAllocator::Free(p); + } + +private: + typedef typename SchemaType::Context Context; + typedef GenericValue, StateAllocator> HashCodeArray; + typedef internal::Hasher HasherType; + + GenericSchemaValidator( + const SchemaDocumentType& schemaDocument, + const SchemaType& root, + const char* basePath, size_t basePathSize, +#if RAPIDJSON_SCHEMA_VERBOSE + unsigned depth, +#endif + StateAllocator* allocator = 0, + size_t schemaStackCapacity = kDefaultSchemaStackCapacity, + size_t documentStackCapacity = kDefaultDocumentStackCapacity) + : + schemaDocument_(&schemaDocument), + root_(root), + stateAllocator_(allocator), + ownStateAllocator_(0), + schemaStack_(allocator, schemaStackCapacity), + documentStack_(allocator, documentStackCapacity), + outputHandler_(0), + error_(kObjectType), + currentError_(), + missingDependents_(), + valid_(true) +#if RAPIDJSON_SCHEMA_VERBOSE + , depth_(depth) +#endif + { + if (basePath && basePathSize) + memcpy(documentStack_.template Push(basePathSize), basePath, basePathSize); + } + + StateAllocator& GetStateAllocator() { + if (!stateAllocator_) + stateAllocator_ = ownStateAllocator_ = RAPIDJSON_NEW(StateAllocator)(); + return *stateAllocator_; + } + + bool BeginValue() { + if (schemaStack_.Empty()) + PushSchema(root_); + else { + if (CurrentContext().inArray) + internal::TokenHelper, Ch>::AppendIndexToken(documentStack_, CurrentContext().arrayElementIndex); + + if (!CurrentSchema().BeginValue(CurrentContext())) + return false; + + SizeType count = CurrentContext().patternPropertiesSchemaCount; + const SchemaType** sa = CurrentContext().patternPropertiesSchemas; + typename Context::PatternValidatorType patternValidatorType = CurrentContext().valuePatternValidatorType; + bool valueUniqueness = CurrentContext().valueUniqueness; + RAPIDJSON_ASSERT(CurrentContext().valueSchema); + PushSchema(*CurrentContext().valueSchema); + + if (count > 0) { + CurrentContext().objectPatternValidatorType = patternValidatorType; + ISchemaValidator**& va = CurrentContext().patternPropertiesValidators; + SizeType& validatorCount = CurrentContext().patternPropertiesValidatorCount; + va = static_cast(MallocState(sizeof(ISchemaValidator*) * count)); + for (SizeType i = 0; i < count; i++) + va[validatorCount++] = CreateSchemaValidator(*sa[i]); + } + + CurrentContext().arrayUniqueness = valueUniqueness; + } + return true; + } + + bool EndValue() { + if (!CurrentSchema().EndValue(CurrentContext())) + return false; + +#if RAPIDJSON_SCHEMA_VERBOSE + GenericStringBuffer sb; + schemaDocument_->GetPointer(&CurrentSchema()).Stringify(sb); + + *documentStack_.template Push() = '\0'; + documentStack_.template Pop(1); + internal::PrintValidatorPointers(depth_, sb.GetString(), documentStack_.template Bottom()); +#endif + + uint64_t h = CurrentContext().arrayUniqueness ? static_cast(CurrentContext().hasher)->GetHashCode() : 0; + + PopSchema(); + + if (!schemaStack_.Empty()) { + Context& context = CurrentContext(); + if (context.valueUniqueness) { + HashCodeArray* a = static_cast(context.arrayElementHashCodes); + if (!a) + CurrentContext().arrayElementHashCodes = a = new (GetStateAllocator().Malloc(sizeof(HashCodeArray))) HashCodeArray(kArrayType); + for (typename HashCodeArray::ConstValueIterator itr = a->Begin(); itr != a->End(); ++itr) + if (itr->GetUint64() == h) { + DuplicateItems(static_cast(itr - a->Begin()), a->Size()); + RAPIDJSON_INVALID_KEYWORD_RETURN(SchemaType::GetUniqueItemsString()); + } + a->PushBack(h, GetStateAllocator()); + } + } + + // Remove the last token of document pointer + while (!documentStack_.Empty() && *documentStack_.template Pop(1) != '/') + ; + + return true; + } + + void AppendToken(const Ch* str, SizeType len) { + documentStack_.template Reserve(1 + len * 2); // worst case all characters are escaped as two characters + *documentStack_.template PushUnsafe() = '/'; + for (SizeType i = 0; i < len; i++) { + if (str[i] == '~') { + *documentStack_.template PushUnsafe() = '~'; + *documentStack_.template PushUnsafe() = '0'; + } + else if (str[i] == '/') { + *documentStack_.template PushUnsafe() = '~'; + *documentStack_.template PushUnsafe() = '1'; + } + else + *documentStack_.template PushUnsafe() = str[i]; + } + } + + RAPIDJSON_FORCEINLINE void PushSchema(const SchemaType& schema) { new (schemaStack_.template Push()) Context(*this, *this, &schema); } + + RAPIDJSON_FORCEINLINE void PopSchema() { + Context* c = schemaStack_.template Pop(1); + if (HashCodeArray* a = static_cast(c->arrayElementHashCodes)) { + a->~HashCodeArray(); + StateAllocator::Free(a); + } + c->~Context(); + } + + void AddErrorLocation(ValueType& result, bool parent) { + GenericStringBuffer sb; + PointerType instancePointer = GetInvalidDocumentPointer(); + ((parent && instancePointer.GetTokenCount() > 0) + ? PointerType(instancePointer.GetTokens(), instancePointer.GetTokenCount() - 1) + : instancePointer).StringifyUriFragment(sb); + ValueType instanceRef(sb.GetString(), static_cast(sb.GetSize() / sizeof(Ch)), + GetStateAllocator()); + result.AddMember(GetInstanceRefString(), instanceRef, GetStateAllocator()); + sb.Clear(); + memcpy(sb.Push(CurrentSchema().GetURI().GetStringLength()), + CurrentSchema().GetURI().GetString(), + CurrentSchema().GetURI().GetStringLength() * sizeof(Ch)); + GetInvalidSchemaPointer().StringifyUriFragment(sb); + ValueType schemaRef(sb.GetString(), static_cast(sb.GetSize() / sizeof(Ch)), + GetStateAllocator()); + result.AddMember(GetSchemaRefString(), schemaRef, GetStateAllocator()); + } + + void AddError(ValueType& keyword, ValueType& error) { + typename ValueType::MemberIterator member = error_.FindMember(keyword); + if (member == error_.MemberEnd()) + error_.AddMember(keyword, error, GetStateAllocator()); + else { + if (member->value.IsObject()) { + ValueType errors(kArrayType); + errors.PushBack(member->value, GetStateAllocator()); + member->value = errors; + } + member->value.PushBack(error, GetStateAllocator()); + } + } + + void AddCurrentError(const typename SchemaType::ValueType& keyword, bool parent = false) { + AddErrorLocation(currentError_, parent); + AddError(ValueType(keyword, GetStateAllocator(), false).Move(), currentError_); + } + + void MergeError(ValueType& other) { + for (typename ValueType::MemberIterator it = other.MemberBegin(), end = other.MemberEnd(); it != end; ++it) { + AddError(it->name, it->value); + } + } + + void AddNumberError(const typename SchemaType::ValueType& keyword, ValueType& actual, const SValue& expected, + const typename SchemaType::ValueType& (*exclusive)() = 0) { + currentError_.SetObject(); + currentError_.AddMember(GetActualString(), actual, GetStateAllocator()); + currentError_.AddMember(GetExpectedString(), ValueType(expected, GetStateAllocator()).Move(), GetStateAllocator()); + if (exclusive) + currentError_.AddMember(ValueType(exclusive(), GetStateAllocator()).Move(), true, GetStateAllocator()); + AddCurrentError(keyword); + } + + void AddErrorArray(const typename SchemaType::ValueType& keyword, + ISchemaValidator** subvalidators, SizeType count) { + ValueType errors(kArrayType); + for (SizeType i = 0; i < count; ++i) + errors.PushBack(static_cast(subvalidators[i])->GetError(), GetStateAllocator()); + currentError_.SetObject(); + currentError_.AddMember(GetErrorsString(), errors, GetStateAllocator()); + AddCurrentError(keyword); + } + + const SchemaType& CurrentSchema() const { return *schemaStack_.template Top()->schema; } + Context& CurrentContext() { return *schemaStack_.template Top(); } + const Context& CurrentContext() const { return *schemaStack_.template Top(); } + + static const size_t kDefaultSchemaStackCapacity = 1024; + static const size_t kDefaultDocumentStackCapacity = 256; + const SchemaDocumentType* schemaDocument_; + const SchemaType& root_; + StateAllocator* stateAllocator_; + StateAllocator* ownStateAllocator_; + internal::Stack schemaStack_; //!< stack to store the current path of schema (BaseSchemaType *) + internal::Stack documentStack_; //!< stack to store the current path of validating document (Ch) + OutputHandler* outputHandler_; + ValueType error_; + ValueType currentError_; + ValueType missingDependents_; + bool valid_; +#if RAPIDJSON_SCHEMA_VERBOSE + unsigned depth_; +#endif +}; + +typedef GenericSchemaValidator SchemaValidator; + +/////////////////////////////////////////////////////////////////////////////// +// SchemaValidatingReader + +//! A helper class for parsing with validation. +/*! + This helper class is a functor, designed as a parameter of \ref GenericDocument::Populate(). + + \tparam parseFlags Combination of \ref ParseFlag. + \tparam InputStream Type of input stream, implementing Stream concept. + \tparam SourceEncoding Encoding of the input stream. + \tparam SchemaDocumentType Type of schema document. + \tparam StackAllocator Allocator type for stack. +*/ +template < + unsigned parseFlags, + typename InputStream, + typename SourceEncoding, + typename SchemaDocumentType = SchemaDocument, + typename StackAllocator = CrtAllocator> +class SchemaValidatingReader { +public: + typedef typename SchemaDocumentType::PointerType PointerType; + typedef typename InputStream::Ch Ch; + typedef GenericValue ValueType; + + //! Constructor + /*! + \param is Input stream. + \param sd Schema document. + */ + SchemaValidatingReader(InputStream& is, const SchemaDocumentType& sd) : is_(is), sd_(sd), invalidSchemaKeyword_(), error_(kObjectType), isValid_(true) {} + + template + bool operator()(Handler& handler) { + GenericReader reader; + GenericSchemaValidator validator(sd_, handler); + parseResult_ = reader.template Parse(is_, validator); + + isValid_ = validator.IsValid(); + if (isValid_) { + invalidSchemaPointer_ = PointerType(); + invalidSchemaKeyword_ = 0; + invalidDocumentPointer_ = PointerType(); + error_.SetObject(); + } + else { + invalidSchemaPointer_ = validator.GetInvalidSchemaPointer(); + invalidSchemaKeyword_ = validator.GetInvalidSchemaKeyword(); + invalidDocumentPointer_ = validator.GetInvalidDocumentPointer(); + error_.CopyFrom(validator.GetError(), allocator_); + } + + return parseResult_; + } + + const ParseResult& GetParseResult() const { return parseResult_; } + bool IsValid() const { return isValid_; } + const PointerType& GetInvalidSchemaPointer() const { return invalidSchemaPointer_; } + const Ch* GetInvalidSchemaKeyword() const { return invalidSchemaKeyword_; } + const PointerType& GetInvalidDocumentPointer() const { return invalidDocumentPointer_; } + const ValueType& GetError() const { return error_; } + +private: + InputStream& is_; + const SchemaDocumentType& sd_; + + ParseResult parseResult_; + PointerType invalidSchemaPointer_; + const Ch* invalidSchemaKeyword_; + PointerType invalidDocumentPointer_; + StackAllocator allocator_; + ValueType error_; + bool isValid_; +}; + +RAPIDJSON_NAMESPACE_END +RAPIDJSON_DIAG_POP + +#endif // RAPIDJSON_SCHEMA_H_ diff --git a/C++Verifier/src/rapidjson/stream.h b/C++Verifier/src/rapidjson/stream.h new file mode 100644 index 0000000..7f2643e --- /dev/null +++ b/C++Verifier/src/rapidjson/stream.h @@ -0,0 +1,223 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#include "rapidjson.h" + +#ifndef RAPIDJSON_STREAM_H_ +#define RAPIDJSON_STREAM_H_ + +#include "encodings.h" + +RAPIDJSON_NAMESPACE_BEGIN + +/////////////////////////////////////////////////////////////////////////////// +// Stream + +/*! \class rapidjson::Stream + \brief Concept for reading and writing characters. + + For read-only stream, no need to implement PutBegin(), Put(), Flush() and PutEnd(). + + For write-only stream, only need to implement Put() and Flush(). + +\code +concept Stream { + typename Ch; //!< Character type of the stream. + + //! Read the current character from stream without moving the read cursor. + Ch Peek() const; + + //! Read the current character from stream and moving the read cursor to next character. + Ch Take(); + + //! Get the current read cursor. + //! \return Number of characters read from start. + size_t Tell(); + + //! Begin writing operation at the current read pointer. + //! \return The begin writer pointer. + Ch* PutBegin(); + + //! Write a character. + void Put(Ch c); + + //! Flush the buffer. + void Flush(); + + //! End the writing operation. + //! \param begin The begin write pointer returned by PutBegin(). + //! \return Number of characters written. + size_t PutEnd(Ch* begin); +} +\endcode +*/ + +//! Provides additional information for stream. +/*! + By using traits pattern, this type provides a default configuration for stream. + For custom stream, this type can be specialized for other configuration. + See TEST(Reader, CustomStringStream) in readertest.cpp for example. +*/ +template +struct StreamTraits { + //! Whether to make local copy of stream for optimization during parsing. + /*! + By default, for safety, streams do not use local copy optimization. + Stream that can be copied fast should specialize this, like StreamTraits. + */ + enum { copyOptimization = 0 }; +}; + +//! Reserve n characters for writing to a stream. +template +inline void PutReserve(Stream& stream, size_t count) { + (void)stream; + (void)count; +} + +//! Write character to a stream, presuming buffer is reserved. +template +inline void PutUnsafe(Stream& stream, typename Stream::Ch c) { + stream.Put(c); +} + +//! Put N copies of a character to a stream. +template +inline void PutN(Stream& stream, Ch c, size_t n) { + PutReserve(stream, n); + for (size_t i = 0; i < n; i++) + PutUnsafe(stream, c); +} + +/////////////////////////////////////////////////////////////////////////////// +// GenericStreamWrapper + +//! A Stream Wrapper +/*! \tThis string stream is a wrapper for any stream by just forwarding any + \treceived message to the origin stream. + \note implements Stream concept +*/ + +#if defined(_MSC_VER) && _MSC_VER <= 1800 +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4702) // unreachable code +RAPIDJSON_DIAG_OFF(4512) // assignment operator could not be generated +#endif + +template > +class GenericStreamWrapper { +public: + typedef typename Encoding::Ch Ch; + GenericStreamWrapper(InputStream& is): is_(is) {} + + Ch Peek() const { return is_.Peek(); } + Ch Take() { return is_.Take(); } + size_t Tell() { return is_.Tell(); } + Ch* PutBegin() { return is_.PutBegin(); } + void Put(Ch ch) { is_.Put(ch); } + void Flush() { is_.Flush(); } + size_t PutEnd(Ch* ch) { return is_.PutEnd(ch); } + + // wrapper for MemoryStream + const Ch* Peek4() const { return is_.Peek4(); } + + // wrapper for AutoUTFInputStream + UTFType GetType() const { return is_.GetType(); } + bool HasBOM() const { return is_.HasBOM(); } + +protected: + InputStream& is_; +}; + +#if defined(_MSC_VER) && _MSC_VER <= 1800 +RAPIDJSON_DIAG_POP +#endif + +/////////////////////////////////////////////////////////////////////////////// +// StringStream + +//! Read-only string stream. +/*! \note implements Stream concept +*/ +template +struct GenericStringStream { + typedef typename Encoding::Ch Ch; + + GenericStringStream(const Ch *src) : src_(src), head_(src) {} + + Ch Peek() const { return *src_; } + Ch Take() { return *src_++; } + size_t Tell() const { return static_cast(src_ - head_); } + + Ch* PutBegin() { RAPIDJSON_ASSERT(false); return 0; } + void Put(Ch) { RAPIDJSON_ASSERT(false); } + void Flush() { RAPIDJSON_ASSERT(false); } + size_t PutEnd(Ch*) { RAPIDJSON_ASSERT(false); return 0; } + + const Ch* src_; //!< Current read position. + const Ch* head_; //!< Original head of the string. +}; + +template +struct StreamTraits > { + enum { copyOptimization = 1 }; +}; + +//! String stream with UTF8 encoding. +typedef GenericStringStream > StringStream; + +/////////////////////////////////////////////////////////////////////////////// +// InsituStringStream + +//! A read-write string stream. +/*! This string stream is particularly designed for in-situ parsing. + \note implements Stream concept +*/ +template +struct GenericInsituStringStream { + typedef typename Encoding::Ch Ch; + + GenericInsituStringStream(Ch *src) : src_(src), dst_(0), head_(src) {} + + // Read + Ch Peek() { return *src_; } + Ch Take() { return *src_++; } + size_t Tell() { return static_cast(src_ - head_); } + + // Write + void Put(Ch c) { RAPIDJSON_ASSERT(dst_ != 0); *dst_++ = c; } + + Ch* PutBegin() { return dst_ = src_; } + size_t PutEnd(Ch* begin) { return static_cast(dst_ - begin); } + void Flush() {} + + Ch* Push(size_t count) { Ch* begin = dst_; dst_ += count; return begin; } + void Pop(size_t count) { dst_ -= count; } + + Ch* src_; + Ch* dst_; + Ch* head_; +}; + +template +struct StreamTraits > { + enum { copyOptimization = 1 }; +}; + +//! Insitu string stream with UTF8 encoding. +typedef GenericInsituStringStream > InsituStringStream; + +RAPIDJSON_NAMESPACE_END + +#endif // RAPIDJSON_STREAM_H_ diff --git a/C++Verifier/src/rapidjson/stringbuffer.h b/C++Verifier/src/rapidjson/stringbuffer.h new file mode 100644 index 0000000..4e38b82 --- /dev/null +++ b/C++Verifier/src/rapidjson/stringbuffer.h @@ -0,0 +1,121 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_STRINGBUFFER_H_ +#define RAPIDJSON_STRINGBUFFER_H_ + +#include "stream.h" +#include "internal/stack.h" + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS +#include // std::move +#endif + +#include "internal/stack.h" + +#if defined(__clang__) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(c++98-compat) +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +//! Represents an in-memory output stream. +/*! + \tparam Encoding Encoding of the stream. + \tparam Allocator type for allocating memory buffer. + \note implements Stream concept +*/ +template +class GenericStringBuffer { +public: + typedef typename Encoding::Ch Ch; + + GenericStringBuffer(Allocator* allocator = 0, size_t capacity = kDefaultCapacity) : stack_(allocator, capacity) {} + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + GenericStringBuffer(GenericStringBuffer&& rhs) : stack_(std::move(rhs.stack_)) {} + GenericStringBuffer& operator=(GenericStringBuffer&& rhs) { + if (&rhs != this) + stack_ = std::move(rhs.stack_); + return *this; + } +#endif + + void Put(Ch c) { *stack_.template Push() = c; } + void PutUnsafe(Ch c) { *stack_.template PushUnsafe() = c; } + void Flush() {} + + void Clear() { stack_.Clear(); } + void ShrinkToFit() { + // Push and pop a null terminator. This is safe. + *stack_.template Push() = '\0'; + stack_.ShrinkToFit(); + stack_.template Pop(1); + } + + void Reserve(size_t count) { stack_.template Reserve(count); } + Ch* Push(size_t count) { return stack_.template Push(count); } + Ch* PushUnsafe(size_t count) { return stack_.template PushUnsafe(count); } + void Pop(size_t count) { stack_.template Pop(count); } + + const Ch* GetString() const { + // Push and pop a null terminator. This is safe. + *stack_.template Push() = '\0'; + stack_.template Pop(1); + + return stack_.template Bottom(); + } + + //! Get the size of string in bytes in the string buffer. + size_t GetSize() const { return stack_.GetSize(); } + + //! Get the length of string in Ch in the string buffer. + size_t GetLength() const { return stack_.GetSize() / sizeof(Ch); } + + static const size_t kDefaultCapacity = 256; + mutable internal::Stack stack_; + +private: + // Prohibit copy constructor & assignment operator. + GenericStringBuffer(const GenericStringBuffer&); + GenericStringBuffer& operator=(const GenericStringBuffer&); +}; + +//! String buffer with UTF8 encoding +typedef GenericStringBuffer > StringBuffer; + +template +inline void PutReserve(GenericStringBuffer& stream, size_t count) { + stream.Reserve(count); +} + +template +inline void PutUnsafe(GenericStringBuffer& stream, typename Encoding::Ch c) { + stream.PutUnsafe(c); +} + +//! Implement specialized version of PutN() with memset() for better performance. +template<> +inline void PutN(GenericStringBuffer >& stream, char c, size_t n) { + std::memset(stream.stack_.Push(n), c, n * sizeof(c)); +} + +RAPIDJSON_NAMESPACE_END + +#if defined(__clang__) +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_STRINGBUFFER_H_ diff --git a/C++Verifier/src/rapidjson/writer.h b/C++Verifier/src/rapidjson/writer.h new file mode 100644 index 0000000..51dd86d --- /dev/null +++ b/C++Verifier/src/rapidjson/writer.h @@ -0,0 +1,710 @@ +// Tencent is pleased to support the open source community by making RapidJSON available. +// +// Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. +// +// Licensed under the MIT License (the "License"); you may not use this file except +// in compliance with the License. You may obtain a copy of the License at +// +// http://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software distributed +// under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the +// specific language governing permissions and limitations under the License. + +#ifndef RAPIDJSON_WRITER_H_ +#define RAPIDJSON_WRITER_H_ + +#include "stream.h" +#include "internal/clzll.h" +#include "internal/meta.h" +#include "internal/stack.h" +#include "internal/strfunc.h" +#include "internal/dtoa.h" +#include "internal/itoa.h" +#include "stringbuffer.h" +#include // placement new + +#if defined(RAPIDJSON_SIMD) && defined(_MSC_VER) +#include +#pragma intrinsic(_BitScanForward) +#endif +#ifdef RAPIDJSON_SSE42 +#include +#elif defined(RAPIDJSON_SSE2) +#include +#elif defined(RAPIDJSON_NEON) +#include +#endif + +#ifdef __clang__ +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(padded) +RAPIDJSON_DIAG_OFF(unreachable-code) +RAPIDJSON_DIAG_OFF(c++98-compat) +#elif defined(_MSC_VER) +RAPIDJSON_DIAG_PUSH +RAPIDJSON_DIAG_OFF(4127) // conditional expression is constant +#endif + +RAPIDJSON_NAMESPACE_BEGIN + +/////////////////////////////////////////////////////////////////////////////// +// WriteFlag + +/*! \def RAPIDJSON_WRITE_DEFAULT_FLAGS + \ingroup RAPIDJSON_CONFIG + \brief User-defined kWriteDefaultFlags definition. + + User can define this as any \c WriteFlag combinations. +*/ +#ifndef RAPIDJSON_WRITE_DEFAULT_FLAGS +#define RAPIDJSON_WRITE_DEFAULT_FLAGS kWriteNoFlags +#endif + +//! Combination of writeFlags +enum WriteFlag { + kWriteNoFlags = 0, //!< No flags are set. + kWriteValidateEncodingFlag = 1, //!< Validate encoding of JSON strings. + kWriteNanAndInfFlag = 2, //!< Allow writing of Infinity, -Infinity and NaN. + kWriteDefaultFlags = RAPIDJSON_WRITE_DEFAULT_FLAGS //!< Default write flags. Can be customized by defining RAPIDJSON_WRITE_DEFAULT_FLAGS +}; + +//! JSON writer +/*! Writer implements the concept Handler. + It generates JSON text by events to an output os. + + User may programmatically calls the functions of a writer to generate JSON text. + + On the other side, a writer can also be passed to objects that generates events, + + for example Reader::Parse() and Document::Accept(). + + \tparam OutputStream Type of output stream. + \tparam SourceEncoding Encoding of source string. + \tparam TargetEncoding Encoding of output stream. + \tparam StackAllocator Type of allocator for allocating memory of stack. + \note implements Handler concept +*/ +template, typename TargetEncoding = UTF8<>, typename StackAllocator = CrtAllocator, unsigned writeFlags = kWriteDefaultFlags> +class Writer { +public: + typedef typename SourceEncoding::Ch Ch; + + static const int kDefaultMaxDecimalPlaces = 324; + + //! Constructor + /*! \param os Output stream. + \param stackAllocator User supplied allocator. If it is null, it will create a private one. + \param levelDepth Initial capacity of stack. + */ + explicit + Writer(OutputStream& os, StackAllocator* stackAllocator = 0, size_t levelDepth = kDefaultLevelDepth) : + os_(&os), level_stack_(stackAllocator, levelDepth * sizeof(Level)), maxDecimalPlaces_(kDefaultMaxDecimalPlaces), hasRoot_(false) {} + + explicit + Writer(StackAllocator* allocator = 0, size_t levelDepth = kDefaultLevelDepth) : + os_(0), level_stack_(allocator, levelDepth * sizeof(Level)), maxDecimalPlaces_(kDefaultMaxDecimalPlaces), hasRoot_(false) {} + +#if RAPIDJSON_HAS_CXX11_RVALUE_REFS + Writer(Writer&& rhs) : + os_(rhs.os_), level_stack_(std::move(rhs.level_stack_)), maxDecimalPlaces_(rhs.maxDecimalPlaces_), hasRoot_(rhs.hasRoot_) { + rhs.os_ = 0; + } +#endif + + //! Reset the writer with a new stream. + /*! + This function reset the writer with a new stream and default settings, + in order to make a Writer object reusable for output multiple JSONs. + + \param os New output stream. + \code + Writer writer(os1); + writer.StartObject(); + // ... + writer.EndObject(); + + writer.Reset(os2); + writer.StartObject(); + // ... + writer.EndObject(); + \endcode + */ + void Reset(OutputStream& os) { + os_ = &os; + hasRoot_ = false; + level_stack_.Clear(); + } + + //! Checks whether the output is a complete JSON. + /*! + A complete JSON has a complete root object or array. + */ + bool IsComplete() const { + return hasRoot_ && level_stack_.Empty(); + } + + int GetMaxDecimalPlaces() const { + return maxDecimalPlaces_; + } + + //! Sets the maximum number of decimal places for double output. + /*! + This setting truncates the output with specified number of decimal places. + + For example, + + \code + writer.SetMaxDecimalPlaces(3); + writer.StartArray(); + writer.Double(0.12345); // "0.123" + writer.Double(0.0001); // "0.0" + writer.Double(1.234567890123456e30); // "1.234567890123456e30" (do not truncate significand for positive exponent) + writer.Double(1.23e-4); // "0.0" (do truncate significand for negative exponent) + writer.EndArray(); + \endcode + + The default setting does not truncate any decimal places. You can restore to this setting by calling + \code + writer.SetMaxDecimalPlaces(Writer::kDefaultMaxDecimalPlaces); + \endcode + */ + void SetMaxDecimalPlaces(int maxDecimalPlaces) { + maxDecimalPlaces_ = maxDecimalPlaces; + } + + /*!@name Implementation of Handler + \see Handler + */ + //@{ + + bool Null() { Prefix(kNullType); return EndValue(WriteNull()); } + bool Bool(bool b) { Prefix(b ? kTrueType : kFalseType); return EndValue(WriteBool(b)); } + bool Int(int i) { Prefix(kNumberType); return EndValue(WriteInt(i)); } + bool Uint(unsigned u) { Prefix(kNumberType); return EndValue(WriteUint(u)); } + bool Int64(int64_t i64) { Prefix(kNumberType); return EndValue(WriteInt64(i64)); } + bool Uint64(uint64_t u64) { Prefix(kNumberType); return EndValue(WriteUint64(u64)); } + + //! Writes the given \c double value to the stream + /*! + \param d The value to be written. + \return Whether it is succeed. + */ + bool Double(double d) { Prefix(kNumberType); return EndValue(WriteDouble(d)); } + + bool RawNumber(const Ch* str, SizeType length, bool copy = false) { + RAPIDJSON_ASSERT(str != 0); + (void)copy; + Prefix(kNumberType); + return EndValue(WriteString(str, length)); + } + + bool String(const Ch* str, SizeType length, bool copy = false) { + RAPIDJSON_ASSERT(str != 0); + (void)copy; + Prefix(kStringType); + return EndValue(WriteString(str, length)); + } + +#if RAPIDJSON_HAS_STDSTRING + bool String(const std::basic_string& str) { + return String(str.data(), SizeType(str.size())); + } +#endif + + bool StartObject() { + Prefix(kObjectType); + new (level_stack_.template Push()) Level(false); + return WriteStartObject(); + } + + bool Key(const Ch* str, SizeType length, bool copy = false) { return String(str, length, copy); } + +#if RAPIDJSON_HAS_STDSTRING + bool Key(const std::basic_string& str) + { + return Key(str.data(), SizeType(str.size())); + } +#endif + + bool EndObject(SizeType memberCount = 0) { + (void)memberCount; + RAPIDJSON_ASSERT(level_stack_.GetSize() >= sizeof(Level)); // not inside an Object + RAPIDJSON_ASSERT(!level_stack_.template Top()->inArray); // currently inside an Array, not Object + RAPIDJSON_ASSERT(0 == level_stack_.template Top()->valueCount % 2); // Object has a Key without a Value + level_stack_.template Pop(1); + return EndValue(WriteEndObject()); + } + + bool StartArray() { + Prefix(kArrayType); + new (level_stack_.template Push()) Level(true); + return WriteStartArray(); + } + + bool EndArray(SizeType elementCount = 0) { + (void)elementCount; + RAPIDJSON_ASSERT(level_stack_.GetSize() >= sizeof(Level)); + RAPIDJSON_ASSERT(level_stack_.template Top()->inArray); + level_stack_.template Pop(1); + return EndValue(WriteEndArray()); + } + //@} + + /*! @name Convenience extensions */ + //@{ + + //! Simpler but slower overload. + bool String(const Ch* const& str) { return String(str, internal::StrLen(str)); } + bool Key(const Ch* const& str) { return Key(str, internal::StrLen(str)); } + + //@} + + //! Write a raw JSON value. + /*! + For user to write a stringified JSON as a value. + + \param json A well-formed JSON value. It should not contain null character within [0, length - 1] range. + \param length Length of the json. + \param type Type of the root of json. + */ + bool RawValue(const Ch* json, size_t length, Type type) { + RAPIDJSON_ASSERT(json != 0); + Prefix(type); + return EndValue(WriteRawValue(json, length)); + } + + //! Flush the output stream. + /*! + Allows the user to flush the output stream immediately. + */ + void Flush() { + os_->Flush(); + } + + static const size_t kDefaultLevelDepth = 32; + +protected: + //! Information for each nested level + struct Level { + Level(bool inArray_) : valueCount(0), inArray(inArray_) {} + size_t valueCount; //!< number of values in this level + bool inArray; //!< true if in array, otherwise in object + }; + + bool WriteNull() { + PutReserve(*os_, 4); + PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'u'); PutUnsafe(*os_, 'l'); PutUnsafe(*os_, 'l'); return true; + } + + bool WriteBool(bool b) { + if (b) { + PutReserve(*os_, 4); + PutUnsafe(*os_, 't'); PutUnsafe(*os_, 'r'); PutUnsafe(*os_, 'u'); PutUnsafe(*os_, 'e'); + } + else { + PutReserve(*os_, 5); + PutUnsafe(*os_, 'f'); PutUnsafe(*os_, 'a'); PutUnsafe(*os_, 'l'); PutUnsafe(*os_, 's'); PutUnsafe(*os_, 'e'); + } + return true; + } + + bool WriteInt(int i) { + char buffer[11]; + const char* end = internal::i32toa(i, buffer); + PutReserve(*os_, static_cast(end - buffer)); + for (const char* p = buffer; p != end; ++p) + PutUnsafe(*os_, static_cast(*p)); + return true; + } + + bool WriteUint(unsigned u) { + char buffer[10]; + const char* end = internal::u32toa(u, buffer); + PutReserve(*os_, static_cast(end - buffer)); + for (const char* p = buffer; p != end; ++p) + PutUnsafe(*os_, static_cast(*p)); + return true; + } + + bool WriteInt64(int64_t i64) { + char buffer[21]; + const char* end = internal::i64toa(i64, buffer); + PutReserve(*os_, static_cast(end - buffer)); + for (const char* p = buffer; p != end; ++p) + PutUnsafe(*os_, static_cast(*p)); + return true; + } + + bool WriteUint64(uint64_t u64) { + char buffer[20]; + char* end = internal::u64toa(u64, buffer); + PutReserve(*os_, static_cast(end - buffer)); + for (char* p = buffer; p != end; ++p) + PutUnsafe(*os_, static_cast(*p)); + return true; + } + + bool WriteDouble(double d) { + if (internal::Double(d).IsNanOrInf()) { + if (!(writeFlags & kWriteNanAndInfFlag)) + return false; + if (internal::Double(d).IsNan()) { + PutReserve(*os_, 3); + PutUnsafe(*os_, 'N'); PutUnsafe(*os_, 'a'); PutUnsafe(*os_, 'N'); + return true; + } + if (internal::Double(d).Sign()) { + PutReserve(*os_, 9); + PutUnsafe(*os_, '-'); + } + else + PutReserve(*os_, 8); + PutUnsafe(*os_, 'I'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'f'); + PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 't'); PutUnsafe(*os_, 'y'); + return true; + } + + char buffer[25]; + char* end = internal::dtoa(d, buffer, maxDecimalPlaces_); + PutReserve(*os_, static_cast(end - buffer)); + for (char* p = buffer; p != end; ++p) + PutUnsafe(*os_, static_cast(*p)); + return true; + } + + bool WriteString(const Ch* str, SizeType length) { + static const typename OutputStream::Ch hexDigits[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; + static const char escape[256] = { +#define Z16 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + //0 1 2 3 4 5 6 7 8 9 A B C D E F + 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'b', 't', 'n', 'u', 'f', 'r', 'u', 'u', // 00 + 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', // 10 + 0, 0, '"', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 20 + Z16, Z16, // 30~4F + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,'\\', 0, 0, 0, // 50 + Z16, Z16, Z16, Z16, Z16, Z16, Z16, Z16, Z16, Z16 // 60~FF +#undef Z16 + }; + + if (TargetEncoding::supportUnicode) + PutReserve(*os_, 2 + length * 6); // "\uxxxx..." + else + PutReserve(*os_, 2 + length * 12); // "\uxxxx\uyyyy..." + + PutUnsafe(*os_, '\"'); + GenericStringStream is(str); + while (ScanWriteUnescapedString(is, length)) { + const Ch c = is.Peek(); + if (!TargetEncoding::supportUnicode && static_cast(c) >= 0x80) { + // Unicode escaping + unsigned codepoint; + if (RAPIDJSON_UNLIKELY(!SourceEncoding::Decode(is, &codepoint))) + return false; + PutUnsafe(*os_, '\\'); + PutUnsafe(*os_, 'u'); + if (codepoint <= 0xD7FF || (codepoint >= 0xE000 && codepoint <= 0xFFFF)) { + PutUnsafe(*os_, hexDigits[(codepoint >> 12) & 15]); + PutUnsafe(*os_, hexDigits[(codepoint >> 8) & 15]); + PutUnsafe(*os_, hexDigits[(codepoint >> 4) & 15]); + PutUnsafe(*os_, hexDigits[(codepoint ) & 15]); + } + else { + RAPIDJSON_ASSERT(codepoint >= 0x010000 && codepoint <= 0x10FFFF); + // Surrogate pair + unsigned s = codepoint - 0x010000; + unsigned lead = (s >> 10) + 0xD800; + unsigned trail = (s & 0x3FF) + 0xDC00; + PutUnsafe(*os_, hexDigits[(lead >> 12) & 15]); + PutUnsafe(*os_, hexDigits[(lead >> 8) & 15]); + PutUnsafe(*os_, hexDigits[(lead >> 4) & 15]); + PutUnsafe(*os_, hexDigits[(lead ) & 15]); + PutUnsafe(*os_, '\\'); + PutUnsafe(*os_, 'u'); + PutUnsafe(*os_, hexDigits[(trail >> 12) & 15]); + PutUnsafe(*os_, hexDigits[(trail >> 8) & 15]); + PutUnsafe(*os_, hexDigits[(trail >> 4) & 15]); + PutUnsafe(*os_, hexDigits[(trail ) & 15]); + } + } + else if ((sizeof(Ch) == 1 || static_cast(c) < 256) && RAPIDJSON_UNLIKELY(escape[static_cast(c)])) { + is.Take(); + PutUnsafe(*os_, '\\'); + PutUnsafe(*os_, static_cast(escape[static_cast(c)])); + if (escape[static_cast(c)] == 'u') { + PutUnsafe(*os_, '0'); + PutUnsafe(*os_, '0'); + PutUnsafe(*os_, hexDigits[static_cast(c) >> 4]); + PutUnsafe(*os_, hexDigits[static_cast(c) & 0xF]); + } + } + else if (RAPIDJSON_UNLIKELY(!(writeFlags & kWriteValidateEncodingFlag ? + Transcoder::Validate(is, *os_) : + Transcoder::TranscodeUnsafe(is, *os_)))) + return false; + } + PutUnsafe(*os_, '\"'); + return true; + } + + bool ScanWriteUnescapedString(GenericStringStream& is, size_t length) { + return RAPIDJSON_LIKELY(is.Tell() < length); + } + + bool WriteStartObject() { os_->Put('{'); return true; } + bool WriteEndObject() { os_->Put('}'); return true; } + bool WriteStartArray() { os_->Put('['); return true; } + bool WriteEndArray() { os_->Put(']'); return true; } + + bool WriteRawValue(const Ch* json, size_t length) { + PutReserve(*os_, length); + GenericStringStream is(json); + while (RAPIDJSON_LIKELY(is.Tell() < length)) { + RAPIDJSON_ASSERT(is.Peek() != '\0'); + if (RAPIDJSON_UNLIKELY(!(writeFlags & kWriteValidateEncodingFlag ? + Transcoder::Validate(is, *os_) : + Transcoder::TranscodeUnsafe(is, *os_)))) + return false; + } + return true; + } + + void Prefix(Type type) { + (void)type; + if (RAPIDJSON_LIKELY(level_stack_.GetSize() != 0)) { // this value is not at root + Level* level = level_stack_.template Top(); + if (level->valueCount > 0) { + if (level->inArray) + os_->Put(','); // add comma if it is not the first element in array + else // in object + os_->Put((level->valueCount % 2 == 0) ? ',' : ':'); + } + if (!level->inArray && level->valueCount % 2 == 0) + RAPIDJSON_ASSERT(type == kStringType); // if it's in object, then even number should be a name + level->valueCount++; + } + else { + RAPIDJSON_ASSERT(!hasRoot_); // Should only has one and only one root. + hasRoot_ = true; + } + } + + // Flush the value if it is the top level one. + bool EndValue(bool ret) { + if (RAPIDJSON_UNLIKELY(level_stack_.Empty())) // end of json text + Flush(); + return ret; + } + + OutputStream* os_; + internal::Stack level_stack_; + int maxDecimalPlaces_; + bool hasRoot_; + +private: + // Prohibit copy constructor & assignment operator. + Writer(const Writer&); + Writer& operator=(const Writer&); +}; + +// Full specialization for StringStream to prevent memory copying + +template<> +inline bool Writer::WriteInt(int i) { + char *buffer = os_->Push(11); + const char* end = internal::i32toa(i, buffer); + os_->Pop(static_cast(11 - (end - buffer))); + return true; +} + +template<> +inline bool Writer::WriteUint(unsigned u) { + char *buffer = os_->Push(10); + const char* end = internal::u32toa(u, buffer); + os_->Pop(static_cast(10 - (end - buffer))); + return true; +} + +template<> +inline bool Writer::WriteInt64(int64_t i64) { + char *buffer = os_->Push(21); + const char* end = internal::i64toa(i64, buffer); + os_->Pop(static_cast(21 - (end - buffer))); + return true; +} + +template<> +inline bool Writer::WriteUint64(uint64_t u) { + char *buffer = os_->Push(20); + const char* end = internal::u64toa(u, buffer); + os_->Pop(static_cast(20 - (end - buffer))); + return true; +} + +template<> +inline bool Writer::WriteDouble(double d) { + if (internal::Double(d).IsNanOrInf()) { + // Note: This code path can only be reached if (RAPIDJSON_WRITE_DEFAULT_FLAGS & kWriteNanAndInfFlag). + if (!(kWriteDefaultFlags & kWriteNanAndInfFlag)) + return false; + if (internal::Double(d).IsNan()) { + PutReserve(*os_, 3); + PutUnsafe(*os_, 'N'); PutUnsafe(*os_, 'a'); PutUnsafe(*os_, 'N'); + return true; + } + if (internal::Double(d).Sign()) { + PutReserve(*os_, 9); + PutUnsafe(*os_, '-'); + } + else + PutReserve(*os_, 8); + PutUnsafe(*os_, 'I'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'f'); + PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 'n'); PutUnsafe(*os_, 'i'); PutUnsafe(*os_, 't'); PutUnsafe(*os_, 'y'); + return true; + } + + char *buffer = os_->Push(25); + char* end = internal::dtoa(d, buffer, maxDecimalPlaces_); + os_->Pop(static_cast(25 - (end - buffer))); + return true; +} + +#if defined(RAPIDJSON_SSE2) || defined(RAPIDJSON_SSE42) +template<> +inline bool Writer::ScanWriteUnescapedString(StringStream& is, size_t length) { + if (length < 16) + return RAPIDJSON_LIKELY(is.Tell() < length); + + if (!RAPIDJSON_LIKELY(is.Tell() < length)) + return false; + + const char* p = is.src_; + const char* end = is.head_ + length; + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + const char* endAligned = reinterpret_cast(reinterpret_cast(end) & static_cast(~15)); + if (nextAligned > end) + return true; + + while (p != nextAligned) + if (*p < 0x20 || *p == '\"' || *p == '\\') { + is.src_ = p; + return RAPIDJSON_LIKELY(is.Tell() < length); + } + else + os_->PutUnsafe(*p++); + + // The rest of string using SIMD + static const char dquote[16] = { '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"', '\"' }; + static const char bslash[16] = { '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\', '\\' }; + static const char space[16] = { 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F }; + const __m128i dq = _mm_loadu_si128(reinterpret_cast(&dquote[0])); + const __m128i bs = _mm_loadu_si128(reinterpret_cast(&bslash[0])); + const __m128i sp = _mm_loadu_si128(reinterpret_cast(&space[0])); + + for (; p != endAligned; p += 16) { + const __m128i s = _mm_load_si128(reinterpret_cast(p)); + const __m128i t1 = _mm_cmpeq_epi8(s, dq); + const __m128i t2 = _mm_cmpeq_epi8(s, bs); + const __m128i t3 = _mm_cmpeq_epi8(_mm_max_epu8(s, sp), sp); // s < 0x20 <=> max(s, 0x1F) == 0x1F + const __m128i x = _mm_or_si128(_mm_or_si128(t1, t2), t3); + unsigned short r = static_cast(_mm_movemask_epi8(x)); + if (RAPIDJSON_UNLIKELY(r != 0)) { // some of characters is escaped + SizeType len; +#ifdef _MSC_VER // Find the index of first escaped + unsigned long offset; + _BitScanForward(&offset, r); + len = offset; +#else + len = static_cast(__builtin_ffs(r) - 1); +#endif + char* q = reinterpret_cast(os_->PushUnsafe(len)); + for (size_t i = 0; i < len; i++) + q[i] = p[i]; + + p += len; + break; + } + _mm_storeu_si128(reinterpret_cast<__m128i *>(os_->PushUnsafe(16)), s); + } + + is.src_ = p; + return RAPIDJSON_LIKELY(is.Tell() < length); +} +#elif defined(RAPIDJSON_NEON) +template<> +inline bool Writer::ScanWriteUnescapedString(StringStream& is, size_t length) { + if (length < 16) + return RAPIDJSON_LIKELY(is.Tell() < length); + + if (!RAPIDJSON_LIKELY(is.Tell() < length)) + return false; + + const char* p = is.src_; + const char* end = is.head_ + length; + const char* nextAligned = reinterpret_cast((reinterpret_cast(p) + 15) & static_cast(~15)); + const char* endAligned = reinterpret_cast(reinterpret_cast(end) & static_cast(~15)); + if (nextAligned > end) + return true; + + while (p != nextAligned) + if (*p < 0x20 || *p == '\"' || *p == '\\') { + is.src_ = p; + return RAPIDJSON_LIKELY(is.Tell() < length); + } + else + os_->PutUnsafe(*p++); + + // The rest of string using SIMD + const uint8x16_t s0 = vmovq_n_u8('"'); + const uint8x16_t s1 = vmovq_n_u8('\\'); + const uint8x16_t s2 = vmovq_n_u8('\b'); + const uint8x16_t s3 = vmovq_n_u8(32); + + for (; p != endAligned; p += 16) { + const uint8x16_t s = vld1q_u8(reinterpret_cast(p)); + uint8x16_t x = vceqq_u8(s, s0); + x = vorrq_u8(x, vceqq_u8(s, s1)); + x = vorrq_u8(x, vceqq_u8(s, s2)); + x = vorrq_u8(x, vcltq_u8(s, s3)); + + x = vrev64q_u8(x); // Rev in 64 + uint64_t low = vgetq_lane_u64(vreinterpretq_u64_u8(x), 0); // extract + uint64_t high = vgetq_lane_u64(vreinterpretq_u64_u8(x), 1); // extract + + SizeType len = 0; + bool escaped = false; + if (low == 0) { + if (high != 0) { + uint32_t lz = internal::clzll(high); + len = 8 + (lz >> 3); + escaped = true; + } + } else { + uint32_t lz = internal::clzll(low); + len = lz >> 3; + escaped = true; + } + if (RAPIDJSON_UNLIKELY(escaped)) { // some of characters is escaped + char* q = reinterpret_cast(os_->PushUnsafe(len)); + for (size_t i = 0; i < len; i++) + q[i] = p[i]; + + p += len; + break; + } + vst1q_u8(reinterpret_cast(os_->PushUnsafe(16)), s); + } + + is.src_ = p; + return RAPIDJSON_LIKELY(is.Tell() < length); +} +#endif // RAPIDJSON_NEON + +RAPIDJSON_NAMESPACE_END + +#if defined(_MSC_VER) || defined(__clang__) +RAPIDJSON_DIAG_POP +#endif + +#endif // RAPIDJSON_RAPIDJSON_H_ diff --git a/C++Verifier/src/utils/Packet.cpp b/C++Verifier/src/utils/Packet.cpp new file mode 100644 index 0000000..b6f2ef6 --- /dev/null +++ b/C++Verifier/src/utils/Packet.cpp @@ -0,0 +1,121 @@ +#include "Packet.h" +#include "utils.cpp" + + +ostream& operator<< (ostream& out, const Packet& obj) { + string output = ""; + output = "(t" + obj.time + "), location: " + obj.location; + for (std::pair element : obj.fieldMap) { + output += ", " + element.first + ": " + element.second; + } + out << output << endl; + return out; +} + +string Packet::originalInput() { + return inputLine; +} + +void Packet::FirewallParser(string line) { + if(startsWith(line, "#") || line.length() == 0 || startsWith(line, "time")) { + return; + } + + boost::to_lower(line); + std::vector tokens = split(line, ';'); + + int index = 0; + setTime(tokens[index++]); + fieldMap["event_type"] = tokens[index++]; + fieldMap["proto"] = tokens[index++]; + fieldMap["transport_protocol"] = tokens[index++]; + if (tokens[index].length() > 0) { + fieldMap["flow_id"] = tokens[index++]; + } else { + index++; + } + if (tokens[index].length() > 0) { + fieldMap["flow_state"] = tokens[index++]; + } else { + index++; + } + fieldMap["srcIp"] = tokens[index++]; + fieldMap["dstIp"] = tokens[index++]; + + if (tokens[index].length() > 0) { + fieldMap["type"] = tokens[index++]; + } else { + index++; + } + + if (tokens[index].length() > 0) { + fieldMap["code"] = tokens[index++]; + } else { + index++; + } + + if (tokens[index].length() > 0) { + fieldMap["id"] = tokens[index++]; + } else { + index++; + } + + if (tokens[index].length() > 0) { + fieldMap["srcL4Port"] = tokens[index++]; + } else { + index++; + } + + if (tokens[index].length() > 0) { + fieldMap["dstL4Port"] = tokens[index++]; + } else { + index++; + } + + if (tokens[index].length() > 0) { + fieldMap["replied"] = tokens[index++];; + } else { + index++; + } + + fieldMap["reverse_srcIp"] = tokens[index++]; + fieldMap["reverse_dstIp"] = tokens[index++]; + + if (tokens[index].length() > 0) { + fieldMap["reverse_type"] = tokens[index++]; + } else { + index++; + } + + if (tokens[index].length() > 0) { + fieldMap["reverse_code"] = tokens[index++]; + } else { + index++; + } + + if (tokens[index].length() > 0) { + fieldMap["reverse_id"] = tokens[index++]; + } else { + index++; + } + + if (tokens[index].length() > 0) { + fieldMap["reverse_srcL4Port"] = tokens[index++]; + } else { + index++; + } + + if (tokens[index].length() > 0) { + fieldMap["reverse_dstL4Port"] = tokens[index++]; + } else { + index++; + } + + if (tokens[index].length() > 0) { + fieldMap["assured"] = tokens[index++]; + } else { + index++; + } + + setLocation(tokens[index++]); +} \ No newline at end of file diff --git a/C++Verifier/src/utils/Packet.h b/C++Verifier/src/utils/Packet.h new file mode 100644 index 0000000..4ca23cf --- /dev/null +++ b/C++Verifier/src/utils/Packet.h @@ -0,0 +1,73 @@ +#ifndef PACKET_H +#define PACKET_H + +#include +#include +#include +#include +#include + +using namespace std; + +class Packet { + unordered_map fieldMap; + string time; + string location; + + + public: + string inputLine; + Packet(string line) { + FirewallParser(line); + inputLine = line; + } + + Packet() { + } + void FirewallParser(string line); + + void setTime(string _time) { + time = _time; + } + void setLocation(string loc) { + location = loc; + } + + void set(string field, string value) { + if (field.find("time") != std::string::npos) { + setTime(value); + return; + } else if (field.find("location") != std::string::npos) { + setLocation(value); + return; + } + fieldMap[field] = value; + } + + string getTime() { + return time; + } + + string getLocation() { + return location; + } + + string get(string key) { + if (key == "time") { + return getTime(); + } else if (key == "location") { + return getLocation(); + } + try { + return fieldMap.at(key); + } + catch (const std::out_of_range& e) { + // cout << "WARNING: Field not in packet" << endl; + } + return ""; + } + string originalInput(); + friend ostream& operator<< (ostream& out, const Packet& obj); +}; + +#endif \ No newline at end of file diff --git a/C++Verifier/src/utils/PacketParser.cpp b/C++Verifier/src/utils/PacketParser.cpp new file mode 100644 index 0000000..26ad906 --- /dev/null +++ b/C++Verifier/src/utils/PacketParser.cpp @@ -0,0 +1,145 @@ +#ifndef PACKETPARSER_H +#define PACKETPARSER_H + +#include "../rapidjson/document.h" +#include "../rapidjson/filereadstream.h" +#include "../rapidjson/istreamwrapper.h" +#include "../rapidjson/writer.h" +#include "../rapidjson/stringbuffer.h" +#include "ParserHelper.cpp" + +class PacketParser +{ +private: + unique_ptr root; + std::vector fieldSequeunce; +public: + int packetLength = 0; + PacketParser() { + root = nullptr; + packetLength = 0; + } + PacketParser(string formatFile) { + + ifstream ifs(formatFile); + rapidjson::IStreamWrapper isw(ifs); + rapidjson::Document config; + config.ParseStream(isw); + rapidjson::Value& fieldFormat = config["fields"]; + // cout << printValue(fieldFormat) << endl; + assert(fieldFormat.IsArray()); + packetLength = 0; + root = parseFormat(fieldFormat, nullptr); + // for (int i = 0; i < fieldSequeunce.size(); i++) { + // cout << fieldSequeunce[i] << endl; + // } + } + unique_ptr parseFormat(rapidjson::Value& fieldFormat, ParseNode* last) { + unique_ptr first = nullptr; + // cout << "In parseFormat" << endl; + for (rapidjson::SizeType i = 0; i < fieldFormat.Size(); i++) { + + rapidjson::Value& node = fieldFormat[i]; + int count = 0; + for (rapidjson::Value::ConstMemberIterator itr = node.MemberBegin(); itr != node.MemberEnd(); ++itr) { + count += 1; + } + if (count > 1) { + unique_ptr cn = unique_ptr(new ConditionalNode(last)); + for (rapidjson::Value::MemberIterator iter = node.MemberBegin(); iter != node.MemberEnd(); ++iter){ + string conditionStr = iter -> name.GetString(); + unique_ptr cond = unique_ptr(new Condition(conditionStr)); + rapidjson::Value& child = iter -> value; + cn -> children[cond.get()] = parseFormat(child, nullptr); + } + } else if (count == 1) { + last = new Field(node.MemberBegin() -> name.GetString(), node.MemberBegin() -> value.GetInt(), last); + packetLength += node.MemberBegin() -> value.GetInt(); + fieldSequeunce.push_back(node.MemberBegin() -> name.GetString()); + } else { + throw std::invalid_argument("Empty field object?"); + } + if (first == nullptr && last == nullptr) { + first = nullptr; + } else if (first == nullptr) { + first = std::unique_ptr(last); + } + } + return first; + } + + ~PacketParser() { + } + + shared_ptr parsePacket(string line) { + if(startsWith(line, "#") || line.length() == 0 || startsWith(line, "time")) { + return nullptr; + } + return shared_ptr(new Packet(line)); + } + + shared_ptr parsePacket(unsigned char data[]) { + shared_ptr p(new Packet()); + parsePacketHelper(data, 0, p, root.get()); + return p; + } + + int parsePacketHelper(unsigned char data[], int index, shared_ptr p, ParseNode* current) { + int nextIndex = index; + if (Field* f = dynamic_cast(current)) { + nextIndex = index + f-> length; + p -> set(f -> name, convertByteToString(f -> name, data, index, nextIndex)); + + // cout << f-> name << endl; + } else { + // If it's a conditional, traverse the correct child + ConditionalNode* cn = dynamic_cast(current); + ParseNode* child = cn -> getChildNode(p); + + if (child != nullptr) { + nextIndex = parsePacketHelper(data, index, p, child); + } + } + + if (current -> next != nullptr) { + nextIndex = parsePacketHelper(data, nextIndex, p, (current -> next).get()); + } + return nextIndex; + } + + string printDocument(rapidjson::Document &d) { + using namespace rapidjson; + StringBuffer buffer; + Writer writer(buffer); + d.Accept(writer); + + return buffer.GetString(); + } + + string printValue(rapidjson::Value &val) { + using namespace rapidjson; + StringBuffer buffer; + Writer writer(buffer); + val.Accept(writer); + + return buffer.GetString(); + } + + string getPacketString(shared_ptr p) { + if (root == nullptr) { + return p -> originalInput(); + } + std::vector outputVec; + // cout << "\n vector size initial: " << outputVec.size() << endl; + // cout << "Sequeunce size: " << fieldSequeunce.size() << endl; + for (string field: fieldSequeunce) { + outputVec.push_back(p -> get(field)); + // cout << "Field: " << field << ", Value: " << p -> get(field) << endl; + } + // cout << "\n vector size after: " << outputVec.size() << endl; + return joinVectorString(outputVec, ";"); + } +}; + + +#endif \ No newline at end of file diff --git a/C++Verifier/src/utils/ParserHelper.cpp b/C++Verifier/src/utils/ParserHelper.cpp new file mode 100644 index 0000000..3f008bd --- /dev/null +++ b/C++Verifier/src/utils/ParserHelper.cpp @@ -0,0 +1,74 @@ +#include +#include +#include +#include "utils.cpp" + +using namespace std; + +class ParseNode { +public: + unique_ptr next; + + ParseNode(ParseNode* last) { + if (last != nullptr) { + last -> next = unique_ptr (this); + } + } + virtual ~ParseNode(){}; +}; + +class Field: public ParseNode { +public: + string name; + int length; + + Field(string _name, int _length, ParseNode* last) + : ParseNode(last) { + name = _name; + length = _length; + } + ~Field(){}; +}; + + +class Condition { +public: + string field; + string value; + + Condition(string condition) { + if (iequals(condition,"default")) { + field = ""; + value = ""; + } else { + std::vector conditionTokens = split(condition, '='); + assert (conditionTokens.size() == 2); + field = conditionTokens[0]; + value = conditionTokens[1]; + } + } + ~Condition() {}; +}; + +class ConditionalNode: public ParseNode { +public: + std::map> children; + ConditionalNode(ParseNode* last) : ParseNode(last) { + } + + ParseNode* getChildNode(shared_ptr p) { + for(std::map>::iterator iter = children.begin(); iter != children.end(); ++iter) { + Condition* c = iter->first; + if (c -> field == "") { + return children[c].get(); + } + if (p -> get(c -> field) == c -> value) { + return children[c].get(); + } + } + return nullptr; + } + ~ConditionalNode(){}; +}; + + diff --git a/C++Verifier/src/utils/cpuMeasure.h b/C++Verifier/src/utils/cpuMeasure.h new file mode 100644 index 0000000..66f8170 --- /dev/null +++ b/C++Verifier/src/utils/cpuMeasure.h @@ -0,0 +1,50 @@ +#include "stdlib.h" +#include "stdio.h" +#include "string.h" +#include "sys/times.h" +#include "sys/vtimes.h" + +static clock_t lastCPU, lastSysCPU, lastUserCPU; +static int numProcessors; + +void init_cpu_measure(){ + FILE* file; + struct tms timeSample; + char line[128]; + + lastCPU = times(&timeSample); + lastSysCPU = timeSample.tms_stime; + lastUserCPU = timeSample.tms_utime; + + file = fopen("/proc/cpuinfo", "r"); + numProcessors = 0; + while(fgets(line, 128, file) != NULL){ + if (strncmp(line, "processor", 9) == 0) numProcessors++; + } + fclose(file); +} + +double get_current_cpu_value(){ + struct tms timeSample; + clock_t now; + double percent; + + now = times(&timeSample); + if (now <= lastCPU || timeSample.tms_stime < lastSysCPU || + timeSample.tms_utime < lastUserCPU){ + //Overflow detection. Just skip this value. + percent = -1.0; + } + else{ + percent = (timeSample.tms_stime - lastSysCPU) + + (timeSample.tms_utime - lastUserCPU); + percent /= (now - lastCPU); + percent /= numProcessors; + percent *= 100; + } + lastCPU = now; + lastSysCPU = timeSample.tms_stime; + lastUserCPU = timeSample.tms_utime; + + return percent; +} \ No newline at end of file diff --git a/C++Verifier/src/utils/utils.cpp b/C++Verifier/src/utils/utils.cpp new file mode 100644 index 0000000..768563d --- /dev/null +++ b/C++Verifier/src/utils/utils.cpp @@ -0,0 +1,223 @@ +#ifndef UTILS_H +#define UTILS_H + +#include +#include +#include +#include +#include +#include +#include +#include "../expressions/BoolExpr.cpp" + + +using std::chrono::system_clock; +using std::chrono::duration_cast; + +inline system_clock::time_point getTimePoint(std::string strTime) { + std::tm myTm = {}; + std::stringstream ss(strTime.c_str()); + ss >> std::get_time(&myTm, "%Y/%m/%d %H:%M"); + return system_clock::from_time_t(std::mktime(&myTm)); +} + +inline void outputTime(const char *desc, system_clock::time_point &tp) { + std::time_t now = system_clock::to_time_t(tp); + std::cout << desc + << std::put_time(std::localtime(&now), "%Y-%m-%d %H:%M") << "\n"; +} + +inline std::string getSystemTime() { + using namespace std::chrono; + + // get current time + auto now = system_clock::now(); + + // get number of milliseconds for the current second + // (remainder after division into seconds) + auto ms = duration_cast(now.time_since_epoch()) % 1000; + + // convert to std::time_t in order to convert to std::tm (broken time) + auto timer = system_clock::to_time_t(now); + + // convert to broken time + std::tm bt = *std::localtime(&timer); + + std::ostringstream oss; + + oss << std::put_time(&bt, "%H:%M:%S"); // HH:MM:SS + oss << '.' << ms.count(); + + return oss.str(); +} + +inline static bool simplifyEvaluate(shared_ptr condition, shared_ptr p) { + // cout << "Packet: \n" << *p << endl; + // cout << "condition: " << (condition -> toString()) << endl; + bool* temp = static_cast (condition -> evaluate(p)); + bool output = *temp; + delete temp; + // cout << "condition output: " << output << endl; + return output; +} + +template +inline void split(const std::string &s, char delim, Out result) { + std::istringstream iss(s); + std::string item; + while (std::getline(iss, item, delim)) { + *result++ = item; + } +} + +template +inline int getIndexInVector(std::vector vec, T element) { + auto it = std::find (vec.begin(), vec.end(), element); + if (it == vec.end()) + { + throw std::runtime_error("Index not found in vector"); + } else + { + return std::distance(vec.begin(), it); + } +} + +template +inline bool contains(std::vector vec, T element) { + auto it = std::find (vec.begin(), vec.end(), element); + if (it == vec.end()) + { + return false; + } else + { + return true; + } +} + +inline string joinVectorString(std::vector v, const char * delim) { + std::ostringstream imploded; + std::copy(v.begin(), v.end(), + std::ostream_iterator(imploded, delim)); + + return imploded.str(); +} + + + +inline std::vector split(const std::string &s, char delim) { + std::vector elems; + split(s, delim, std::back_inserter(elems)); + return elems; +} + +inline bool endsWith(const std::string& str, const char* suffix, unsigned suffixLen) +{ + return str.size() >= suffixLen && 0 == str.compare(str.size()-suffixLen, suffixLen, suffix, suffixLen); +} + +inline bool endsWith(const std::string& str, const char* suffix) +{ + return endsWith(str, suffix, std::string::traits_type::length(suffix)); + // cout << "endsWith is ok " << ret << endl; + // return ret; +} + +inline bool startsWith(const std::string& str, const char* prefix, unsigned prefixLen) +{ + return str.size() >= prefixLen && 0 == str.compare(0, prefixLen, prefix, prefixLen); +} + +inline bool startsWith(const std::string& str, const char* prefix) +{ + return startsWith(str, prefix, std::string::traits_type::length(prefix)); +} + +template +inline bool contains(const unordered_map &m, T key) { + if (m.find(key) == m.end()) + return false; + + return true; +} + +inline string getNameWOExt(string filename) { + const size_t last_slash_idx = filename.find_last_of("\\/"); + if (std::string::npos != last_slash_idx) + { + filename.erase(0, last_slash_idx + 1); + } + + // Remove extension if present. + const size_t period_idx = filename.rfind('.'); + if (std::string::npos != period_idx) + { + filename.erase(period_idx); + } + return filename; +} + +inline int getChannelNum(string key, int maxChannels) { + return hash{}(key) % maxChannels; +} + +inline void appendLineToFile(string filepath, string line) +{ + std::ofstream file; + //can't enable exception now because of gcc bug that raises ios_base::failure with useless message + //file.exceptions(file.exceptions() | std::ios::failbit); + // cout << "in appendLineToFile" << endl; + file.open(filepath,fstream::out | fstream::app); + if (file.fail()) { + // cout << "PRoblem here" << endl; + throw std::ios_base::failure(std::strerror(errno)); + } + + //make sure write fails with exception if something is wrong + file.exceptions(file.exceptions() | std::ios::failbit | std::ifstream::badbit); + + file << line << std::endl; +} + + +inline int getposition(const char *array, size_t size, char c) +{ + const char* end = array + size; + const char* match = std::find(array, end, c); + return (end == match)? -1 : (match-array); +} + +template +inline int getposition(const T (&array)[N], const T c) +{ + const T* match = std::find(array, array+N, c); + return (array+N==match)? -1 : std::distance(array, match); +} + +inline bool iequals(const string& a, const string& b) +{ + return std::equal(a.begin(), a.end(), + b.begin(), b.end(), + [](char a, char b) { + return tolower(a) == tolower(b); + }); +} + +inline string convertByteToString(string field, unsigned char data[], int start, int end) { + if (end - start == 1) { + return to_string((uint8_t) data[start]); + } else if (end - start == 2 && (field.find("Port") != std::string::npos)) { + return to_string((uint16_t) ((data[start+1] << 8) | data[start])); + } else if (end - start == 4 && (field.find("Ip") != std::string::npos)) { + return to_string((uint8_t) data[start]) + "." + to_string((uint8_t) data[start+1]) + "." + to_string((uint8_t) data[start+2]) + "." + to_string((uint8_t) data[start+3]); + } else if (end - start == 4 && (field.find("time") != std::string::npos)) { + float f; + unsigned char b[] = {data[start], data[start+1], data[start+2], data[start+3]}; + memcpy(&f, b, sizeof(f)); + return to_string(f); + } else { + string s(reinterpret_cast(data + start), end-start); + return s; + } +} + +#endif \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..45c91c1 --- /dev/null +++ b/README.md @@ -0,0 +1,58 @@ +# Scalable Runtime Verification of Distributed Middleboxes + + +## Table of Content +* [Technologies](#technologies) +* [Setup](#setup) +* [Run](#run) +* [Files](#files) +* [Todo](#todo) +* [Timeline](#timeline) + +## Techonologies +* JAVA 9.0.4 +* Maven +* z3 +* Symbolic Automata +* Cppkafka +* Apache Flink + + +## Setup +First step is to set up topology at cloudlab. If you do not access Cloudlab. Please reach out to me (Nofel Yaseen). I will add your ssh key to the required machines. + +### How to set up cloud lab machines +First click on experiments and then create experiment profile. + +Second step is to fill out the name (anything would work). Click on edit source, copy the file `./Setup/cloudlabProfile.txt` and paste it in the textbox. Click Accept. Click Create. + +In the next screen. Click Instantiate. + +Select APT UTAH as the cluster and finish. + +Wait for the experiment to get ready. + +``` +git clone --recurse-submodules https://github.com/NofelYaseen/MBVerifier.git +cd MBVerifier +./install.sh +cd generateSFA +./install_z3.sh +``` + +## Run +``` +cd generateSFA +mvn clean install +mvn exec:java +cd ../ +./run_verify.sh +``` + +### Todo +1. Find bug in SLB trace +1. Turn tree duplicate checking in to hashset +1. Implement support for MAP +1. Add support for timers in language. +1. Think about firewall topology and invariants. + \ No newline at end of file diff --git a/Setup/Create_Profile.png b/Setup/Create_Profile.png new file mode 100644 index 0000000..4e19d27 Binary files /dev/null and b/Setup/Create_Profile.png differ diff --git a/Setup/cloudlabProfile.txt b/Setup/cloudlabProfile.txt new file mode 100644 index 0000000..df59162 --- /dev/null +++ b/Setup/cloudlabProfile.txt @@ -0,0 +1,2 @@ + +For firewall experiments on x86 architecture \ No newline at end of file diff --git a/Setup/externalSetup.sh b/Setup/externalSetup.sh new file mode 100644 index 0000000..b1c8693 --- /dev/null +++ b/Setup/externalSetup.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +if [ "$#" -ne 2 ]; then + echo "Illegal number of parameters" + exit 1 +fi + +LOCAL=ifconfig | grep -B1 10.10 | grep -o "^\w*" + +mkdir traffic +sudo ifconfig $LOCAL 10.10.$1.$2 + +sudo apt update +sudo apt install -y socat diff --git a/Setup/firewallSetup.sh b/Setup/firewallSetup.sh new file mode 100644 index 0000000..cf8ecc7 --- /dev/null +++ b/Setup/firewallSetup.sh @@ -0,0 +1,91 @@ +#!/bin/bash + + +if [ "$#" -ne 1 ]; then + echo "Illegal number of parameters" + exit 1 +fi + + +if [ $1 -gt 8 ] || [ $1 -lt 5 ]; then + echo "Value should be between 5 and 8 (inclusive)" + exit 1 +fi + + +INT=$(ifconfig | grep -B1 128.* | grep -o "^\w*") +LOCAL=$(ifconfig | grep -B1 10.10 | grep -o "^\w*") + +sudo ifconfig $LOCAL 10.10.1.$1 + +sudo apt update +sudo apt install -y socat + +sudo apt install -y python3-pip +pip3 install psutil + +echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections + +echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections + +sudo apt install -y iptables-persistent +sudo apt install -y conntrack conntrackd keepalived +git clone --recurse-submodules https://github.com/NofelYaseen/MBVerifier.git + +sudo cp /usr/share/doc/conntrackd/examples/sync/primary-backup.sh /etc/conntrackd/ + +cd $HOME/MBVerifier/C++Verifier/ + +./setup.sh + +make + +sudo cp $HOME/MBVerifier/firewall/conntrackd.conf /etc/conntrackd/ + +sudo cp $HOME/MBVerifier/firewall/keepalived.conf /etc/keepalived/ + +sudo cp $HOME/MBVerifier/firewall/rules.v4 /etc/iptables/ + +sudo sed -i -e "s/enp1s0/$INT/g" /etc/iptables/rules.v4 + +sudo sed -i -e s/enp1s0d1/$LOCAL/g /etc/conntrackd/conntrackd.conf + +sudo sed -i -e s/enp1s0d1/$LOCAL/g /etc/keepalived/keepalived.conf + +if [ $1 -gt 4 ] && [ $1 -lt 7 ]; then + sudo sed -i -e s/10.10.X.100/10.10.4.100/g /etc/keepalived/keepalived.conf + sudo sed -i -e s/10.10.1.Y/10.10.1.100/g /etc/keepalived/keepalived.conf + sudo sed -i -e s/virtual_router_id\ A/virtual_router_id\ 61/g /etc/keepalived/keepalived.conf + sudo sed -i -e s/virtual_router_id\ B/virtual_router_id\ 62/g /etc/keepalived/keepalived.conf +elif [ $1 -gt 6 ] && [ $1 -lt 9 ]; then + sudo sed -i -e s/10.10.X.100/10.10.5.100/g /etc/keepalived/keepalived.conf + sudo sed -i -e s/10.10.1.Y/10.10.1.50/g /etc/keepalived/keepalived.conf + sudo sed -i -e s/virtual_router_id\ A/virtual_router_id\ 71/g /etc/keepalived/keepalived.conf + sudo sed -i -e s/virtual_router_id\ B/virtual_router_id\ 72/g /etc/keepalived/keepalived.conf +fi + +if [ $1 -eq 5 ]; then + sudo sed -i -e s/10.10.1.Y/10.10.1.5/g /etc/conntrackd/conntrackd.conf + sudo sed -i -e s/10.10.1.Z/10.10.1.6/g /etc/conntrackd/conntrackd.conf + sudo sed -i -e s/priority\ P/priority\ 100/g /etc/keepalived/keepalived.conf +elif [ $1 -eq 6 ]; then + sudo sed -i -e s/10.10.1.Y/10.10.1.6/g /etc/conntrackd/conntrackd.conf + sudo sed -i -e s/10.10.1.Z/10.10.1.5/g /etc/conntrackd/conntrackd.conf + sudo sed -i -e s/priority\ P/priority\ 50/g /etc/keepalived/keepalived.conf +elif [ $1 -eq 7 ]; then + sudo sed -i -e s/10.10.1.Y/10.10.1.7/g /etc/conntrackd/conntrackd.conf + sudo sed -i -e s/10.10.1.Z/10.10.1.8/g /etc/conntrackd/conntrackd.conf + sudo sed -i -e s/priority\ P/priority\ 100/g /etc/keepalived/keepalived.conf +elif [ $1 -eq 8 ]; then + sudo sed -i -e s/10.10.1.Y/10.10.1.8/g /etc/conntrackd/conntrackd.conf + sudo sed -i -e s/10.10.1.Z/10.10.1.7/g /etc/conntrackd/conntrackd.conf + sudo sed -i -e s/priority\ P/priority\ 50/g /etc/keepalived/keepalived.conf +fi + +sudo iptables-restore < /etc/iptables/rules.v4 +cd /etc/keepalived +nohup sudo keepalived -l & +cd /etc/conntrackd +nohup sudo conntrackd -d & + +wait diff --git a/Setup/globalSetup.sh b/Setup/globalSetup.sh new file mode 100644 index 0000000..0a7251e --- /dev/null +++ b/Setup/globalSetup.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +if [ "$#" -ne 1 ]; then + echo "Illegal number of parameters" + exit 1 +fi + +INT=ifconfig | grep -B1 128.* | grep -o "^\w*" +LOCAL=ifconfig | grep -B1 10.10 | grep -o "^\w*" + +sudo ifconfig $LOCAL 10.10.1.$1 + +sudo apt update +sudo apt install -y maven +sudo apt install -y openjdk-8-jdk-headless +sudo apt install -y python3-pip +pip3 install psutil + +cd + +wget https://archive.apache.org/dist/flink/flink-1.9.3/flink-1.9.3-bin-scala_2.11.tgz +tar -xzf flink-1.9.3-bin-scala_2.11.tgz + + +cd +wget https://ftp.wayne.edu/apache/kafka/2.5.0/kafka_2.12-2.5.0.tgz +tar -xzf kafka_2.12-2.5.0.tgz + +git clone --recurse-submodules https://github.com/NofelYaseen/MBVerifier.git + +cd MBVerifier/verification +mvn clean package + +cd + +cd kafka_2.12-2.5.0/ +# Change server.properties +# Change zookeeper properties + +sed -i -e s@\#listeners=PLAINTEXT://@listeners=PLAINTEXT://10.10.1.$1@g $HOME/kafka_2.12-2.5.0/config/server.properties + diff --git a/Setup/internalSetup.sh b/Setup/internalSetup.sh new file mode 100644 index 0000000..f390304 --- /dev/null +++ b/Setup/internalSetup.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ "$#" -ne 1 ]; then + echo "Illegal number of parameters" + exit 1 +fi + +LOCAL=ifconfig | grep -B1 10.10 | grep -o "^\w*" + +mkdir traffic +sudo ifconfig $LOCAL 10.10.1.$1 +sudo ip route add 10.10.4.0/24 via 10.10.1.100 dev $LOCAL +sudo ip route add 10.10.5.0/24 via 10.10.1.50 dev $LOCAL + +sudo apt update +sudo apt install -y socat +sudo \ No newline at end of file diff --git a/Setup/servers.txt b/Setup/servers.txt new file mode 100644 index 0000000..1479327 --- /dev/null +++ b/Setup/servers.txt @@ -0,0 +1,16 @@ +nofelY94@apt079.apt.emulab.net +nofelY94@apt108.apt.emulab.net +nofelY94@apt082.apt.emulab.net +nofelY94@apt083.apt.emulab.net +nofelY94@apt077.apt.emulab.net +nofelY94@apt114.apt.emulab.net +nofelY94@apt086.apt.emulab.net +nofelY94@apt111.apt.emulab.net +nofelY94@apt098.apt.emulab.net +nofelY94@apt105.apt.emulab.net +nofelY94@apt119.apt.emulab.net +nofelY94@apt085.apt.emulab.net +nofelY94@apt076.apt.emulab.net +nofelY94@apt102.apt.emulab.net +nofelY94@apt110.apt.emulab.net +nofelY94@apt078.apt.emulab.net diff --git a/Setup/setup.py b/Setup/setup.py new file mode 100644 index 0000000..c620d4b --- /dev/null +++ b/Setup/setup.py @@ -0,0 +1,198 @@ +import sys +import subprocess + +def main(): + serverFile = open('servers.txt', 'r') + serverList = list() + + for server in serverFile: + serverList.append(server.strip()) + + serverList = list(set(serverList)) + serverList.sort() + if len(serverList) < 16: + print('Less than 16 servers') + sys.exit() + + serverList = list(serverList) + serverDict = dict() + internetInterface = dict() + + print("Getting interfaces") + + for server in serverList: + command = server + ' ifconfig | grep -B1 128.* | grep -o "^\w*"' + # print("command: ") + # print(command) + command = command.split(' ') + test = subprocess.Popen(command, stdout=subprocess.PIPE) + output = (test.communicate()[0]).decode('ascii').strip() + # print(output) + internetInterface[server] = output + + command = server + ' ifconfig | grep -B1 10.10 | grep -o "^\w*"' + command = command.split(' ') + test = subprocess.Popen(command, stdout=subprocess.PIPE) + output = (test.communicate()[0]).decode('ascii').strip() + # print(output) + serverDict[server] = output + + + print("Got all interfaces") + print(serverDict) + print(internetInterface) + exit(0) + + internals = serverList[0:4] + externals = serverList[4:8] + firewalls = serverList[8:12] + globalVerifier = serverList[12] + + print("Adding ip route rules and sending traffic files") + + for idx, server in enumerate(internals): + command = server + ' "mkdir traffic; sudo ifconfig ' + serverDict[server] + ' 10.10.1.' + str(idx+1) + '; sudo ip route add 10.10.4.0/24 via 10.10.1.100 dev ' + serverDict[server] + '; sudo ip route add 10.10.5.0/24 via 10.10.1.50 dev ' + serverDict[server] + '"' + command = server + ' "sudo rm -r traffic; mkdir traffic"' + print(command) + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + command = 'scp ../traffic/* ' + server.split(' ')[3] +':./traffic' + print(command) + # command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + print("traffic files are sent") + exit(0) + + print("Setting IPs") + + for idx, server in enumerate(firewalls): + command = server + ' ifconfig ' + serverDict[server] + ' 10.10.1.' + str(idx + 4) + print(command) + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + exit(0) + + for i in [0,1]: + command = externals[i] + ' ifconfig ' + serverDict[externals[i]] + ' 10.10.4.' + str(i) + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + command = 'scp traffic/* ' + externals[i].split(' ')[3] +':./traffic' + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + for i in [2,3]: + command = externals[i] + ' ifconfig ' + serverDict[externals[i]] + ' 10.10.5.' + str(i-2) + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + command = 'scp traffic/* ' + externals[i].split(' ')[3] +':./traffic' + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + print("IPs are set") + + print("Installation starting") + + for server in serverList: + command = server + ' sudo apt update && sudo apt install -y socat' + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + print("Update and socat done") + + print("Installing firewall stuff") + + for server in firewalls: + command = server + ' echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections && echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections && sudo apt install -y iptables-persistent && sudo apt install -y conntrack conntrackd keepalived && git clone --recurse-submodules https://github.com/NofelYaseen/MBVerifier.git && sudo cp /usr/share/doc/conntrackd/examples/sync/primary-backup.sh /etc/conntrackd/ && cd MBVerifier/C++Verifier/ && ./setup.sh && make && sudo cp $HOME/MBVerifier/firewall/conntrackd.conf /etc/conntrackd/ && sudo cp $HOME/MBVerifier/firewall/keepalived.conf /etc/keepalived/ && sudo cp $HOME/MBVerifier/rules.v4 /etc/iptables/ && sudo sed -i -e "s/enp1s0/' + internetInterface[server] + '/g" /etc/iptables/rules.v4 && sudo sed -i -e s/interface enp1s0d1/interface ' + serverDict[firewalls[i]] + '/g /etc/conntrackd/conntrackd.conf ' + + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + print("1st phase done - total 5") + exit(0) + + for i in [0,1]: + + command = firewalls[i] + ' sudo sed -i -e s/10.10.X.100\/24 dev enp1s0d1/10.10.4.100\/24 dev ' + serverDict[firewalls[i]] + '/g /etc/keepalived/keepalived.conf && sudo sed -i -e s/10.10.1.Y\/24 dev enp1s0d1/10.10.1.100\/24 dev ' + serverDict[firewalls[i]] + '/g /etc/keepalived/keepalived.conf && sudo sed -i -e s/interface enp1s0d1/interface ' + serverDict[firewalls[i]] + '/g /etc/keepalived/keepalived.conf && sudo sed -i -e s/virtual_router_id A/virtual_router_id 61/g /etc/keepalived/keepalived.conf && sudo sed -i -e s/virtual_router_id B/virtual_router_id 62/g /etc/keepalived/keepalived.conf ' + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + for i in [2,3]: + command = firewalls[i] + ' sudo sed -i -e s/10.10.X.100\/24 dev enp1s0d1/10.10.5.100\/24 dev ' + serverDict[firewalls[i]] + '/g /etc/keepalived/keepalived.conf && sudo sed -i -e s/10.10.1.Y\/24 dev enp1s0d1/10.10.1.50\/24 dev ' + serverDict[firewalls[i]] + '/g /etc/keepalived/keepalived.conf && sudo sed -i -e s/interface enp1s0d1/interface ' + serverDict[firewalls[i]] + '/g /etc/keepalived/keepalived.conf && sudo sed -i -e s/virtual_router_id A/virtual_router_id 71/g /etc/keepalived/keepalived.conf && sudo sed -i -e s/virtual_router_id B/virtual_router_id 72/g /etc/keepalived/keepalived.conf ' + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + print("2nd phase done") + + for i in [0,2]: + command = firewalls[i] + ' sudo sed -i -e s/priority P/priority 100/g /etc/keepalived/keepalived.conf ' + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + for i in [1,3]: + command = firewalls[i] + ' sudo sed -i -e s/priority P/priority 50/g /etc/keepalived/keepalived.conf ' + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + print("3rd phase done") + + command = firewalls[0] + ' sudo sed -i -e s/IPv4_address 10.10.1.Y/IPv4_address 10.10.1.5g /etc/conntrackd/conntrackd.conf && sudo sed -i -e s/IPv4_Destination_Address 10.10.1.Z/IPv4_Destination_Address 10.10.1.4/g /etc/conntrackd/conntrackd.conf' + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + command = firewalls[1] + ' sudo sed -i -e s/IPv4_address 10.10.1.Y/IPv4_address 10.10.1.4/g /etc/conntrackd/conntrackd.conf && sudo sed -i -e s/IPv4_Destination_Address 10.10.1.Z/IPv4_Destination_Address 10.10.1.5/g /etc/conntrackd/conntrackd.conf' + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + command = firewalls[2] + ' sudo sed -i -e s/IPv4_address 10.10.1.Y/IPv4_address 10.10.1.6/g /etc/conntrackd/conntrackd.conf && sudo sed -i -e s/IPv4_Destination_Address 10.10.1.Z/IPv4_Destination_Address 10.10.1.7/g /etc/conntrackd/conntrackd.conf' + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + command = firewalls[3] + ' sudo sed -i -e s/IPv4_address 10.10.1.Y/IPv4_address 10.10.1.7/g /etc/conntrackd/conntrackd.conf && sudo sed -i -e s/IPv4_Destination_Address 10.10.1.Z/IPv4_Destination_Address 10.10.1.6/g /etc/conntrackd/conntrackd.conf' + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + print("4th phase done") + + for server in firewalls: + command = firewalls[i] + ' sudo iptables-restore < /etc/iptables/rules.v4 && cd /etc/keepalived && sudo keepalived -l && cd /etc/conntrackd && sudo conntrackd -d' + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + print("5th and final phase done") + + print("Installing global Verifier") + + command = globalVerifier + ' wget http://us.mirrors.quenda.co/apache/flink/flink-1.9.3/flink-1.9.3-bin-scala_2.11.tgz && tar xzf flink-1.9.3-bin-scala_2.11.tgz && git clone --recurse-submodules https://github.com/NofelYaseen/MBVerifier.git' + # ' && cd MBVerifier/Setup && ./install.sh' + command = command.split(' ') + subprocess.Popen(command, shell=True, + stdin=None, stdout=None, stderr=None, close_fds=True) + + print("Global verifier Installation done") + print("Installation complete") + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/Setup/setup.sh b/Setup/setup.sh new file mode 100644 index 0000000..5bd62a7 --- /dev/null +++ b/Setup/setup.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +if [ -z "${BASH_VERSINFO}" ] || [ -z "${BASH_VERSINFO[0]}" ] || [ ${BASH_VERSINFO[0]} -lt 4 ] +then + echo "This script requires Bash version >= 4" + exit 1 +fi + +mapfile -t myArray < servers.txt + +# printf '%s\n' "${myArray[@]}" + +NUMSERVERS=${#myArray[@]} + + +if [ $NUMSERVERS -lt 16 ]; then + echo "Not enough servers" + exit 1 +fi + +for i in 0 1 2 3 +do + scp internalSetup.sh ${myArray[$i]}:./ + ssh ${myArray[$i]} "chmod u+x internalSetup.sh; ./internalSetup.sh $(($i+1))" + scp ../traffic/* ${myArray[$i]}:./traffic/ +done + +for i in 4 5 6 7 +do + scp firewallSetup.sh ${myArray[$i]}:./ + ssh ${myArray[$i]} "chmod u+x firewallSetup.sh; ./firewallSetup.sh $(($i+1))" +done + +for i in 8 9 +do + scp externalSetup.sh ${myArray[$i]}:./ + ssh ${myArray[$i]} "chmod u+x externalSetup.sh; ./externalSetup.sh 4 $(($i-7))" + scp ../traffic/* ${myArray[$i]}:./traffic/ +done + +for i in 10 11 +do + scp externalSetup.sh ${myArray[$i]}:./ + ssh ${myArray[$i]} "chmod u+x externalSetup.sh; ./externalSetup.sh 5 $(($i-9))" + scp ../traffic/* ${myArray[$i]}:./traffic/ +done + +scp globalSetup.sh ${myArray[12]}:./ +ssh ${myArray[12]} "chmod u+x globalSetup.sh; ./globalSetup.sh 10" diff --git a/config/PML/conflict.invar b/config/PML/conflict.invar new file mode 100644 index 0000000..1f43b73 --- /dev/null +++ b/config/PML/conflict.invar @@ -0,0 +1,5 @@ +GROUPBY (src) +~ +(. @ ANY)* +(type == "promise", VAR_n == dst) @ X +(type == "acknowledgement", dst != VAR_n) @ X \ No newline at end of file diff --git a/config/VR/safety.invar b/config/VR/safety.invar new file mode 100644 index 0000000..555687a --- /dev/null +++ b/config/VR/safety.invar @@ -0,0 +1,9 @@ +FILTER( + type == "doviewchange" || + type == "prepareok" +) +GROUPBY (src) +~ +(. @ ANY)* +(type == "doviewchange", VAR_v == v) @ X +(type == "prepareok", v < VAR_v) @ X \ No newline at end of file diff --git a/config/firewall/block_ip.invar b/config/firewall/block_ip.invar new file mode 100644 index 0000000..047993f --- /dev/null +++ b/config/firewall/block_ip.invar @@ -0,0 +1,6 @@ +GROUPBY (srcIp) +~ +(. @ ANY)* +(event_type == BLOCK, $a == srcIp) @ ANY +((event_type != ALLOW, srcIp != $a) @ ANY)* +(event_type == NEW, srcIp == $a) @ ANY diff --git a/config/firewall/external_block.invar b/config/firewall/external_block.invar new file mode 100644 index 0000000..91a1997 --- /dev/null +++ b/config/firewall/external_block.invar @@ -0,0 +1,8 @@ +FILTER(event_type == NEW && (srcIp == "10.10.4.1" || srcIp == "10.10.4.2")) +GROUPBY (srcIp) +~ +(. @ ANY)* +CHOICE ( +(event_type == NEW, srcIp == "10.10.4.1") @ ANY, +(event_type == NEW, srcIp == "10.10.4.2") @ ANY +) \ No newline at end of file diff --git a/config/firewall/external_block2.invar b/config/firewall/external_block2.invar new file mode 100644 index 0000000..5a7d57b --- /dev/null +++ b/config/firewall/external_block2.invar @@ -0,0 +1,8 @@ +FILTER(event_type == NEW && (srcIp == "10.10.5.1" || srcIp == "10.10.5.2")) +GROUPBY (srcIp) +~ +(. @ ANY)* +CHOICE ( +(event_type == NEW, srcIp == "10.10.5.1") @ ANY, +(event_type == NEW, srcIp == "10.10.5.2") @ ANY +) \ No newline at end of file diff --git a/config/firewall/new_established.invar b/config/firewall/new_established.invar new file mode 100644 index 0000000..4e612fa --- /dev/null +++ b/config/firewall/new_established.invar @@ -0,0 +1,5 @@ +FILTER(event_type == NEW && flow_state == ESTABLISHED) +GROUPBY (srcIp, dstIp, srcL4Port, dstL4Port, transport_protocol) +~ +(. @ ANY)* +(event_type == NEW, flow_state == ESTABLISHED) @ ANY \ No newline at end of file diff --git a/config/firewall/packetformat.json b/config/firewall/packetformat.json new file mode 100644 index 0000000..2461f2b --- /dev/null +++ b/config/firewall/packetformat.json @@ -0,0 +1,31 @@ +{ + "fields": [ + {"time" : 4}, + {"event_type" : 1}, + {"transport_protocol" : 1}, + {"flow_state" : 1}, + {"srcIp" : 4}, + {"dstIp" : 4}, + {"srcL4Port": 2}, + {"dstL4Port" : 2}, + {"location" : 1} + ], + "constants" : { + "UNKNOWN" : 0, + "NEW" : 1, + "UPDATE" : 2, + "DESTROY" : 3, + "BLOCK" : 4, + "ALLOW" : 5, + + "SYN_SENT" : 11, + "SYN_RECV" : 12, + "ESTABLISHED" : 13, + "FIN_WAIT" : 14, + "CLOSE_WAIT" : 15, + "LAST_ACK" : 16, + "TIME_WAIT" : 17, + "CLOSED" : 18, + "LISTEN" : 19 + } +} diff --git a/config/jpaxos/recover.invar b/config/jpaxos/recover.invar new file mode 100644 index 0000000..3e238a6 --- /dev/null +++ b/config/jpaxos/recover.invar @@ -0,0 +1,16 @@ +FILTER( + type == "recover" || + type == "recovered" +) ~ +(. @ ANY)* +(type == recover, VAR_a == l1, VAR_c == l2, VAR_e == l3, VAR_x == src) @ X +(type == recover, VAR_b == l1, VAR_d == l2, VAR_f == l3, VAR_y == src) @ X +CHOICE ( + (type == recover, l1 < VAR_a) @ X, + (type == recover, l1 < VAR_b) @ X, + (type == recover, l2 < VAR_c) @ X, + (type == recover, l2 < VAR_d) @ X, + (type == recover, l3 < VAR_e) @ X, + (type == recover, l3 < VAR_f) @ X +) +(type == recovered) @ X \ No newline at end of file diff --git a/firewall/block_ip.sh b/firewall/block_ip.sh new file mode 100644 index 0000000..8bb2ca5 --- /dev/null +++ b/firewall/block_ip.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +sudo iptables -A INPUT -s $1 -j DROP +echo "$1" | netcat localhost 10001 + +# echo $1 \ No newline at end of file diff --git a/firewall/conntrackd.conf b/firewall/conntrackd.conf new file mode 100644 index 0000000..1410918 --- /dev/null +++ b/firewall/conntrackd.conf @@ -0,0 +1,42 @@ +Sync { + Mode FTFW { + DisableExternalCache On + CommitTimeout 1800 + PurgeTimeout 5 + } + + UDP { + IPv4_address 10.10.1.Y + IPv4_Destination_Address 10.10.1.Z + Port 3780 + Interface enp1s0d1 + SndSocketBuffer 1249280 + RcvSocketBuffer 1249280 + Checksum on + } +} + +General { + HashSize 32768 + HashLimit 131072 + LogFile on + Syslog on + LockFile /var/lock/conntrack.lock + UNIX { + Path /var/run/conntrackd.ctl + Backlog 20 + } + SocketBufferSize 2097152 + SocketBufferSizeMaxGrown 8388608 + Filter { + Protocol Accept { + TCP + UDP + ICMP # This requires a Linux kernel >= 2.6.31 + } + Address Ignore { + IPv4_address 127.0.0.1 # loopback + IPv4_address 128.0.0.0/8 # Internet + } + } +} \ No newline at end of file diff --git a/firewall/firewallTracker.py b/firewall/firewallTracker.py new file mode 100644 index 0000000..3a3ec09 --- /dev/null +++ b/firewall/firewallTracker.py @@ -0,0 +1,359 @@ +import datetime +import sys +import select +from multiprocessing import Pipe +import socket +import fcntl +import os +from datetime import datetime +import struct +from collections import defaultdict + +# Sample for test: +# cat sampledata.txt | python3 firewallTracker.py 1 + +# Run on firewall host +# sudo conntrack -E conntrack -o timestamp | python3 firewallTracker.py 1 + +events_dict = defaultdict(lambda: 0) +flow_state_dict = defaultdict(lambda: 0) + +def main(): + + poller = select.poll() + + logFile = open('log_firewall_events.txt', 'w') + # Create a TCP/IP socket for events besides flow tracker. + server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + server.setblocking(0) + + # Bind the socket to the port + server_address = ('localhost', 10000) + print('starting up on %s port %s' % server_address) + server.bind(server_address) + + # Listen for incoming connections + server.listen(5) + + # Create a TCP/IP socket to send data to local + localSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + localSocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + + # Bind the socket to the port + local_address = ('localhost', 10001) + print('starting up on %s port %s' % local_address) + localSocket.bind(local_address) + + # Listen for incoming connections + localSocket.listen(1) + + # Wait for local verifier to connect. Comment next two lines when testing with sample data + local_connection, local_client_address = localSocket.accept() + print('new local verifier connection from', local_client_address) + + # Create stdin pipe + pipeIn = sys.stdin + + # Commonly used flag setes + READ_ONLY = select.POLLIN + READ_WRITE = READ_ONLY | select.POLLOUT + + # Create output pipe + pipe_recv, pipe_send = Pipe(duplex=False) + + # + fd_to_object = { + pipeIn.fileno(): pipeIn, + server.fileno(): server, + pipe_recv.fileno(): pipe_recv, + pipe_send.fileno(): pipe_send + } + + # Make input stream non-blocking + old_flags = fcntl.fcntl(pipeIn.fileno(), fcntl.F_GETFL) + fcntl.fcntl(pipeIn.fileno(), fcntl.F_SETFL, old_flags | os.O_NONBLOCK) + + poller.register(pipeIn) + poller.register(server, READ_ONLY) + poller.register(pipe_recv, READ_ONLY) + poller.register(pipe_send, READ_ONLY) + count = 0 + + while True: + # print("waiting on poll") + events = poller.poll() + # print("poll output", events) + + for fd, flag in events: + # print("fd:", fd, " flag:", flag ) + + + currentObject = fd_to_object[fd] + + if currentObject is pipeIn and (flag != select.POLLHUP): + allOut = currentObject.read() + for line in allOut.splitlines(): + # print("received line: ", line) + logFile.write(str(datetime.now().strftime("%H:%M:%S.%f")) + ',' + str(count) + '\n') + count += 1 + pipe_send.send(line) + elif currentObject is pipeIn and (flag == select.POLLHUP) and len(events) == 1: + + local_connection.close() + for key,item in fd_to_object.items(): + poller.unregister(item) + if isinstance(item, socket.socket): + item.close() + print("input closed. terminating") + sys.exit() + + + elif currentObject is pipe_recv: + data = currentObject.recv() + # print("data:", data) + for line in data.splitlines(): + # print("data received: ", line) + if "block" in line: + # print("Sending to local: ", line ) + local_connection.send(line.encode()) + else: + tempOut = parse_line(line) + # print("Sending to local: ", tempOut) + # print([int(x) for x in tempOut]) + # print("Number of bytes: ", len(tempOut)) + + local_connection.send(tempOut) + # if (count > 10): + # sys.exit(0) + + elif flag & (select.POLLIN | select.POLLPRI): + + if currentObject is server: + # A "readable" server socket is ready to accept a connection + connection, client_address = currentObject.accept() + print('new connection from', client_address) + connection.setblocking(0) + fd_to_object[ connection.fileno() ] = connection + poller.register(connection, READ_ONLY) + print("connection from block adder") + else: + data = currentObject.recv(1024) + if data: + # A readable client socket has data + print('received "%s" from %s' % (data, currentObject.getpeername())) + pipe_send.send(data) + + else: + # Interpret empty result as closed connection + print('closing', currentObject.getpeername(), 'after reading no data') + # Stop listening for input on the connection + poller.unregister(currentObject) + currentObject.close() + elif isinstance(currentObject, socket.socket) and flag & select.POLLHUP: + # Client hung up + print('closing', currentObject.getpeername(), 'after receiving HUP') + # Stop listening for input on the connection + poller.unregister(currentObject) + currentObject.close() + + elif isinstance(currentObject, socket.socket) and flag & select.POLLERR: + print('handling exceptional condition for', currentObject.getpeername()) + # Stop listening for input on the connection + poller.unregister(currentObject) + currentObject.close() + + elif currentObject is pipe_send: + print("Error in pipe_send") + sys.exit(1) + else: + print("Unknown context") + sys.exit(2) + +def parse_line(line): + # print(line) + flowList = [] + current_entry = line.split() + flow = dict() + index = 0 + + flow['time'] = float(current_entry[index][1:-1]) + index += 1 + flowList.append(flow['time']) + + flow['event_type'] = current_entry[index][1:-1] + index += 1 + flowList.append(flow['event_type']) + + flow['proto'] = current_entry[index] + index += 1 + flowList.append(flow['proto']) + + flow['transport_protocol'] = int(current_entry[index]) + index += 1 + flowList.append(flow['transport_protocol']) + + if not flow['event_type'] == 'DESTROY': + flow['flow_id'] = int(current_entry[index]) + index += 1 + flowList.append(flow['flow_id']) + + if (flow['proto'] == 'tcp') and ('src' not in current_entry[index]): + flow['flow_state'] = current_entry[index] + index += 1 + flowList.append(flow['flow_state']) + else: + flow['flow_state'] = "UNKNOWN" + flowList.append('') + else: + flow['flow_state'] = "UNKNOWN" + flowList.append('') + flowList.append('') + + flow['srcIp'] = current_entry[index].split('=')[1] + index += 1 + flowList.append(flow['srcIp']) + + flow['dstIp'] = current_entry[index].split('=')[1] + index += 1 + flowList.append(flow['dstIp']) + + + + if flow['proto'] == 'icmp': + flow['type'] = int(current_entry[index].split('=')[1]) + index +=1 + flowList.append(flow['type']) + + flow['code'] = int(current_entry[index].split('=')[1]) + index +=1 + flowList.append(flow['code']) + + flow['id'] = int(current_entry[index].split('=')[1]) + index +=1 + flowList.append(flow['id']) + else: + flowList.append('') + flowList.append('') + flowList.append('') + + if 'sport' in current_entry[index]: + flow['srcL4Port'] = int(current_entry[index].split('=')[1]) + index +=1 + flowList.append(flow['srcL4Port']) + else: + flowList.append('') + + if 'dport' in current_entry[index]: + flow['dstL4Port'] = int(current_entry[index].split('=')[1]) + index +=1 + flowList.append(flow['dstL4Port']) + else: + flowList.append('') + + # if 'REPLIED' in current_entry[index]: + # flow['replied'] = current_entry[index][1:-1] + # index += 1 + # flowList.append(flow['replied']) + # else: + # flowList.append('') + + # flow['reverse_src_ip'] = current_entry[index].split('=')[1] + # index += 1 + # flowList.append(flow['reverse_src_ip']) + + # flow['reverse_dst_ip'] = current_entry[index].split('=')[1] + # index += 1 + # flowList.append(flow['reverse_dst_ip']) + + # if flow['proto'] == 'icmp': + # flow['reverse_type'] = int(current_entry[index].split('=')[1]) + # index +=1 + # flowList.append(flow['reverse_type']) + + # flow['reverse_code'] = int(current_entry[index].split('=')[1]) + # index +=1 + # flowList.append(flow['reverse_code']) + + # flow['reverse_id'] = int(current_entry[index].split('=')[1]) + # index +=1 + # flowList.append(flow['reverse_id']) + # else: + # flowList.append('') + # flowList.append('') + # flowList.append('') + + + # if index < len(current_entry) and 'sport' in current_entry[index]: + # flow['reverse_src_port'] = int(current_entry[index].split('=')[1]) + # index +=1 + # flowList.append(flow['reverse_src_port']) + # else: + # flowList.append('') + + # if index < len(current_entry) and 'dport' in current_entry[index]: + # flow['reverse_dst_port'] = int(current_entry[index].split('=')[1]) + # index +=1 + # flowList.append(flow['reverse_dst_port']) + # else: + # flowList.append('') + + + # if index < len(current_entry) and 'ASSURED' in current_entry[index]: + # flow['assured'] = current_entry[index][1:-1] + # index += 1 + # flowList.append(flow['assured']) + # else: + # flowList.append('') + flow['location'] = int(sys.argv[1]) + + flowList.append(flow['location']) + + print("flow:\n", flow) + flowByteForm = [struct.pack("f", flow['time'])] + # print(flowByteForm) + flowByteForm.append(struct.pack("B", events_dict[flow['event_type']])) + # print(flowByteForm) + flowByteForm.append(struct.pack("B", flow['transport_protocol'])) + # print(flowByteForm) + flowByteForm.append(struct.pack("B", flow_state_dict[flow['flow_state']])) + # print(flowByteForm) + flowByteForm.append(socket.inet_aton(flow['srcIp'])) + # print(flowByteForm) + flowByteForm.append(socket.inet_aton(flow['dstIp'])) + # print(flowByteForm) + flowByteForm.append(struct.pack("H", flow['srcL4Port'])) + # print(flowByteForm) + flowByteForm.append(struct.pack("H", flow['dstL4Port'])) + # print(flowByteForm) + + flowByteForm.append(struct.pack("B", flow['location'])) + # print(flowByteForm) + # print(b''.join(flowByteForm)) + # print(len(flowByteForm)) + # print(len(b''.join(flowByteForm))) + # print("Sending out byte form:", flowByteForm) + # print("Sending out list form: ", flowList) + # sys.exit(0) + return b''.join(flowByteForm) + +def createDict(): + events_dict["NEW"] = 1 + events_dict["UPDATE"] = 2 + events_dict["DESTROY"] = 3 + events_dict["BLOCK"] = 4 + events_dict["ALLOW"] = 5 + + flow_state_dict["SYN_SENT"] = 11 + flow_state_dict["SYN_RECV"] = 12 + flow_state_dict["ESTABLISHED"] = 13 + flow_state_dict["FIN_WAIT"] = 14 + flow_state_dict["CLOSE_WAIT"] = 15 + flow_state_dict["LAST_ACK"] = 16 + flow_state_dict["TIME_WAIT"] = 17 + flow_state_dict["CLOSED"] = 18 + flow_state_dict["LISTEN"] = 19 + + +if __name__ == '__main__': + createDict() + main() \ No newline at end of file diff --git a/firewall/firewallconf.md b/firewall/firewallconf.md new file mode 100644 index 0000000..7480740 --- /dev/null +++ b/firewall/firewallconf.md @@ -0,0 +1,98 @@ +# Instructions to run on cloudlab + +Use Distributed Firewall Profile. +Make 4 nodes external. +Make 4 nodes firewall (2 backup, 2 primary). +Rest are internal. + +## Setup + +### All nodes (including firewalls) + +``` +sudo apt update +sudo apt install tshark +``` + +### External nodes + +Update IPs to make internal and external nodes in seperate networks. +There are two external networks: +10.10.4.0 +10.10.5.0 + +### Firewalls Only +``` +sudo apt install iptables-persistent +sudo apt install conntrack conntrackd keepalived +git clone --recurse-submodules https://github.com/NofelYaseen/MBVerifier.git +sudo cp /usr/share/doc/conntrackd/examples/sync/primary-backup.sh /etc/conntrackd/ +cd MBVerifier/C++Verifier/ +./setup.sh +make +``` + +if git clone throws an error, edit `.gitmodules` and `.git/config` to use https address for z3 and symbolic automata rather than ssh. + +Make sure the paths are correct in `MBVerifier/C++Verifier/Makefile `. + +If you get an error related to filesystem, change `#include` to `#include` and `namespace fs = std::filesystem;` to `namespace fs = std::experimental::filesystem;` + +If happens because of older gcc version. + +Copy conntrackd.conf to `/etc/conntrackd/` on each firewall +Copy keepalived.conf to `/etc/keepalived/` on each firewall +Copy rules.v4 to `/etc/iptables/` on each firewall + +``` +sudo cp ~/MBVerifier/firewall/conntrackd.conf /etc/conntrackd/ +sudo cp ~/MBVerifier/firewall/keepalived.conf /etc/keepalived/ +cp ~/MBVerifier/rules.v4 /etc/iptables/ +``` + +We need to update interface in each file. +ethM stands for Middle interface. The interface going to replica of firewall +ethI stands for Internal interface. The interface going to internal network +ethE stands for External interface. The interface going to external network (internet) + +You can find interfaces by running `sudo ifconfig`. Check IPs at other nodes to find out, which one is external, internal or middle interface. + +In conntrackd.conf, also update IP IPv4 address of internet. This ip will be assigned to eth0 on firewalls. Also check the ip address id udp section. +In keepalived.conf, change priority (two places) of backup firewall to 50, and master to 100. Also update the virutal ips according to the lan. There are total of 4 virutal routers. 2 on one set of primary/backup and 2 on the other. Make sure the IDs/IPs are correct. +In rules.v4, update the external_vip. Currently, it is set to 10.10.4.X and 10.10.5.X so might not need any change. + +Edit `run-verify.sh` and set the flink folder. + +``` +sudo iptables-restore < /etc/iptables/rules.v4 +cd /etc/keepalived +sudo keepalived -l +cd /etc/conntrackd +sudo conntrackd -d +``` + +From the primary firewalls, you should be able to ping now. + +### Global Verifier + +``` +wget http://us.mirrors.quenda.co/apache/flink/flink-1.9.3/flink-1.9.3-bin-scala_2.11.tgz +tar xzf flink-1.9.3-bin-scala_2.11.tgz +git clone --recurse-submodules https://github.com/NofelYaseen/MBVerifier.git +cd MBVerifier +./install.sh +``` + +### Internal nodes + +` +sudo ip route add 10.10.4.0/24 via 10.10.1.100 dev enp3s0f0np0 +sudo ip route add 10.10.5.0/24 via 10.10.1.50 dev enp3s0f0np0 +` + +You should be able start flows from internal network to external network, but not the other way around. + +## Running + +Compile invariants on your local machine and copy the compiled invariants to all the firewalls and global verifier in the folder SLBCode/out/ + diff --git a/firewall/keepalived.conf b/firewall/keepalived.conf new file mode 100644 index 0000000..081010d --- /dev/null +++ b/firewall/keepalived.conf @@ -0,0 +1,40 @@ +vrrp_sync_group G1 { + group { + E1 + I1 + } + notify_master "/etc/conntrackd/primary-backup.sh primary" + notify_backup "/etc/conntrackd/primary-backup.sh backup" + notify_fault "/etc/conntrackd/primary-backup.sh fault" +} + +vrrp_instance E1 { + interface enp1s0d1 + state BACKUP + virtual_router_id A + priority P + advert_int 1 + authentication { + auth_type PASS + auth_pass zzzz + } + virtual_ipaddress { + 10.10.X.100/24 dev enp1s0d1 + } +} + +vrrp_instance I1 { + interface enp1s0d1 + state BACKUP + virtual_router_id B + priority P + advert_int 1 + authentication { + auth_type PASS + auth_pass zzzz + } + virtual_ipaddress { + 10.10.1.Y/24 dev enp1s0d1 + } +} + diff --git a/firewall/measureCpuMem.py b/firewall/measureCpuMem.py new file mode 100644 index 0000000..9efba00 --- /dev/null +++ b/firewall/measureCpuMem.py @@ -0,0 +1,40 @@ +import psutil +from os import listdir +from os.path import isfile +from time import sleep +from datetime import datetime +import sys + +def main(): + nameToPidDict = dict() + path = '/tmp/' + for f in listdir(path): + if f[:5] == 'flink' and f[-4:] == '.pid': + # print(f) + file = open(path + f, 'r') + nameToPidDict[f] = int(file.read().strip()) + file.close() + elif ('localVerifier.pid' in f): + file = open(path + f, 'r') + nameToPidDict[f] = int(file.read().strip()) + file.close() + else: + # print("not flink: " + f) + continue + + logFile = open('logCpuMem' + sys.argv[1] + '.txt', 'w') + nameToProcessDict = dict() + + for name, pid in nameToPidDict.items(): + nameToProcessDict[name] = psutil.Process(pid) + # processList = [ for pid in pidList] + + for x in range(0,6000): + for name, process in nameToProcessDict.items(): + logFile.write(str(datetime.now().strftime("%H:%M:%S.%f")) + ',' + str(process.cpu_percent()) + + ',' + str(process.memory_info().rss) + ',' + name + '\n') + sleep(0.1) + + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/firewall/rules.v4 b/firewall/rules.v4 new file mode 100644 index 0000000..5d2dfb5 --- /dev/null +++ b/firewall/rules.v4 @@ -0,0 +1,50 @@ +*nat +:PREROUTING ACCEPT [0:0] +:INPUT ACCEPT [0:0] +:OUTPUT ACCEPT [0:0] +:POSTROUTING ACCEPT [0:0] +-A POSTROUTING -d 10.10.4.0/24 -j SNAT --to-source 10.10.4.100 +-A POSTROUTING -d 10.10.5.0/24 -j SNAT --to-source 10.10.5.100 +COMMIT +*filter +:INPUT DROP [0:0] +:FORWARD DROP [0:0] +:OUTPUT ACCEPT [0:0] +:LOGGING - [0:0] +# Accept any traffic on the loopback interface. +-A INPUT -i lo -j ACCEPT +# Accept any traffic on the internet interface. +-A INPUT -i enp1s0 -j ACCEPT +-A FORWARD -i enp1s0 -j ACCEPT +# Accept any traffic destined for this server that's part of an already-tracked connection. +-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT +# Accept any multicast VRRP traffic destined for 224.0.0.0/8 (this is how keepalived communicates). +-A INPUT -d 224.0.0.0/8 -p vrrp -j ACCEPT +# Accept any multicast traffic destined for 225.0.0.50 (this is how conntrackd communicates). +-A INPUT -d 225.0.0.50 -j ACCEPT +# Accept any traffic on the interface with the direct connection between routers. +-A INPUT -s 10.10.1.0/24 -j ACCEPT +-A INPUT -s 10.10.1.0/24 -j ACCEPT +# Jump to the LOGGING chain. +-A INPUT -j LOGGING +# Accept any traffic for systems behind the NAT that's part of an already-tracked connection. +-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT +# Allow outbound connections from systems behind the NAT. +-A FORWARD -s 10.10.1.0/24 -d 10.10.4.0/24 -m conntrack --ctstate NEW -j ACCEPT +-A FORWARD -s 10.10.1.0/24 -d 10.10.5.0/24 -m conntrack --ctstate NEW -j ACCEPT +# Allow any outbound traffic on the loopback interface. +-A OUTPUT -o lo -j ACCEPT +# Allow outbound multicast VRRP traffic destined for 224.0.0.0/8 (this is how keepalived communicates). +-A OUTPUT -d 224.0.0.0/8 -p vrrp -j ACCEPT +# Allow outbound multicast traffic destined for 225.0.0.50/8 (this is how conntrackd communicates). +-A OUTPUT -d 225.0.0.50 -j ACCEPT +# Allow outbound traffic on WAN interface +-A OUTPUT -d 10.10.4.0/24 -j ACCEPT +-A OUTPUT -d 10.10.5.0/24 -j ACCEPT +# Allow any outbound traffic on the interface with the direct connection between routers. +# -A OUTPUT -s 10.10.1.0/24 -j ACCEPT +# -A OUTPUT -s 10.10.1.0/24 -j ACCEPT +# Log (to syslog) any traffic that's going to be dropped with a limit of 2 entries per minute. +-A LOGGING -m limit --limit 2/min -j LOG --log-prefix "DROP: " --log-level 7 +COMMIT + diff --git a/generateSFA/.gitignore b/generateSFA/.gitignore new file mode 100644 index 0000000..ae3c172 --- /dev/null +++ b/generateSFA/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/generateSFA/install_z3.sh b/generateSFA/install_z3.sh new file mode 100644 index 0000000..1b9cef9 --- /dev/null +++ b/generateSFA/install_z3.sh @@ -0,0 +1,17 @@ +#! /bin/bash + +cd z3 +python scripts/mk_make.py --java +cd build +make; make install + +cd ../../symbolicautomata/models +mvn clean install + +cd ../.. +mvn install:install-file -Dfile=z3/build/com.microsoft.z3.jar \ + -DgroupId=com.microsoft \ + -DartifactId=z3 \ + -Dversion=4.8.7 \ + -Dpackaging=jar \ + -DgeneratePom=true diff --git a/generateSFA/liblibz3java.dylib b/generateSFA/liblibz3java.dylib new file mode 100644 index 0000000..fd83f6d --- /dev/null +++ b/generateSFA/liblibz3java.dylib @@ -0,0 +1 @@ +z3/build/libz3java.dylib \ No newline at end of file diff --git a/generateSFA/pom.xml b/generateSFA/pom.xml new file mode 100644 index 0000000..1cd68c4 --- /dev/null +++ b/generateSFA/pom.xml @@ -0,0 +1,86 @@ + + 4.0.0 + cis.upenn.edu + generateSFA + 0.0.1-SNAPSHOT + + src + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + 1.8 + 1.8 + -Xlint:unchecked + + + + org.antlr + antlr4-maven-plugin + 4.7 + + false + true + + + + + antlr4 + + + + + + org.codehaus.mojo + exec-maven-plugin + 1.6.0 + + + + exec + + + + + main.java.generateSFA.GenerateSFA + + + + + + + org.ow2.sat4j + org.ow2.sat4j.core + 2.3.4 + + + com.microsoft + z3 + 4.8.7 + + + cs.wisc.edu + models + 1.0 + + + net.sourceforge.argparse4j + argparse4j + 0.8.1 + + + com.googlecode.json-simple + json-simple + 1.1 + + + org.antlr + antlr4-runtime + 4.7 + + + \ No newline at end of file diff --git a/generateSFA/src/main/antlr4/generateSFA/InvariantLexer.g4 b/generateSFA/src/main/antlr4/generateSFA/InvariantLexer.g4 new file mode 100644 index 0000000..5679cfd --- /dev/null +++ b/generateSFA/src/main/antlr4/generateSFA/InvariantLexer.g4 @@ -0,0 +1,79 @@ +lexer grammar InvariantLexer; + + +FILTER : 'FILTER' ; +GROUPBY : 'GROUPBY' ; +MAP : 'MAP' ; + +TILDA : '~' ; + +SHUFFLE : 'SHUFFLE' ; +CHOICE : 'CHOICE' ; +NOT : 'NOT' ; +ANY : 'ANY' ; + +fragment DIGIT: [0-9]; +fragment DIGITS: DIGIT+; +fragment HEXDIGIT: [0-9a-fA-F]; + +// Only lower case 'x' and 'b' count for hex + bin numbers. Otherwise it's an identifier. +HEX_NUMBER: ('0x' HEXDIGIT+) | ('x\'' HEXDIGIT+ '\''); +BIN_NUMBER: ('0b' [01]+) | ('b\'' [01]+ '\''); + +// ------------------------- +// Punctuation + +COLON : ':' ; +COMMA : ',' ; +SEMI : ';' ; +LPAREN : '(' ; +RPAREN : ')' ; +LBRACE : '[' ; +RBRACE : ']' ; +DOT : '.' ; +DOUBLE_QUOTE : '"' ; + +VARIABLE_PRE : '$' ; +TIME : 'TIME'; + +QUESTION : '?' ; +STAR : '*' ; +DIVIDE : '/' ; +PLUS : '+' ; +MINUS : '-' ; +BANG : '!' ; + +AT : '@' ; + +OR : '||' ; +AND : '&&' ; +EQUALS : '==' ; +NOT_EQUAL : '!=' ; + +LT : '<' ; +GT : '>' ; +LE : '<=' ; +GE : '>=' ; + +INT_NUMBER: MINUS? DIGITS; + +DOUBLE_QUOTED_TEXT: ( + DOUBLE_QUOTE (('\\' .)? .)*? DOUBLE_QUOTE + )+ +; + +// ------------------------- +// Identifiers + +fragment LETTER_WHEN_UNQUOTED: DIGIT | LETTER_WHEN_UNQUOTED_NO_DIGIT | DOT; +fragment LETTER_WHEN_UNQUOTED_NO_DIGIT: [a-zA-Z_$\u0080-\uffff]; + +VARIABLE: + VARIABLE_PRE IDENTIFIER +; + +IDENTIFIER: + LETTER_WHEN_UNQUOTED+ +; + +WHITESPACE: [ \t\f\r\n] -> channel(HIDDEN); // Ignore whitespaces. diff --git a/generateSFA/src/main/antlr4/generateSFA/InvariantParser.g4 b/generateSFA/src/main/antlr4/generateSFA/InvariantParser.g4 new file mode 100644 index 0000000..3fe9c10 --- /dev/null +++ b/generateSFA/src/main/antlr4/generateSFA/InvariantParser.g4 @@ -0,0 +1,135 @@ +parser grammar InvariantParser; + +options { + tokenVocab = InvariantLexer; +} + + +policy + : (transformation)+ TILDA events_sequence EOF + ; + +transformation + : GROUPBY LPAREN fields RPAREN + | FILTER LPAREN filter_matches RPAREN + | MAP LPAREN field_expression COMMA name RPAREN + ; + +fields + : name (COMMA name)* + ; + +filter_matches + : LPAREN filter_matches RPAREN + | filter_matches OR filter_matches + | filter_matches AND filter_matches + | filter_match + ; + +filter_match + : name compare_op name + | name compare_op value + | value compare_op name + ; + +field_expression + : (PLUS | MINUS)? field_expression2 ((PLUS | MINUS) field_expression2)* + | field_expression compare_op field_expression QUESTION field_expression COLON field_expression + ; + +field_expression2 + : field_term ((STAR | DIVIDE) field_term)* + ; + +field_term + : name + | value + ; + +events_sequence + : (events)+ + ; + +events + : events_term (regex_op)? + ; + +events_term + : event + | LPAREN events_sequence RPAREN + | SHUFFLE LPAREN events_list RPAREN + | CHOICE LPAREN events_list RPAREN + ; + +events_list + : events_sequence (COMMA events_sequence)* + ; + +event + : BANG event + | DOT AT location_match + | LPAREN event_match RPAREN AT location_match +; + +location_match + : ANY + | (NOT)? name + ; + +event_match + : field_match (COMMA field_match)* + ; + +field_match + : node_match compare_op node_match + ; + +value + : INT_NUMBER + | HEX_NUMBER + | BIN_NUMBER + | DOUBLE_QUOTED_TEXT + ; + +equality_op + : EQUALS + | NOT_EQUAL + ; + +compare_op + : EQUALS + | NOT_EQUAL + | LT + | GT + | LE + | GE + ; + +node_match + : midnode_match ((PLUS | MINUS) midnode_match)* + ; + +midnode_match + : leaf_match ((STAR | DIVIDE) leaf_match)* + ; + +leaf_match + : name + | value + | var_ref + ; + +regex_op + : STAR + | PLUS + | QUESTION + ; + +var_ref + : VARIABLE + | TIME + ; + +name + : IDENTIFIER + ; \ No newline at end of file diff --git a/generateSFA/src/main/java/generateSFA/EventSolver.java b/generateSFA/src/main/java/generateSFA/EventSolver.java new file mode 100644 index 0000000..dc60606 --- /dev/null +++ b/generateSFA/src/main/java/generateSFA/EventSolver.java @@ -0,0 +1,454 @@ +package main.java.generateSFA; + +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; + +import org.apache.commons.lang3.NotImplementedException; + +import com.microsoft.z3.ArithExpr; +import com.microsoft.z3.BoolExpr; +import com.microsoft.z3.Context; +import com.microsoft.z3.Expr; +import com.microsoft.z3.IntExpr; +import com.microsoft.z3.IntNum; +import com.microsoft.z3.Model; +import com.microsoft.z3.Solver; +import com.microsoft.z3.Status; + +import theory.BooleanAlgebra; +import utilities.Pair; + +public class EventSolver extends BooleanAlgebra> { + private Context z3ctx; + private HashMap symbols; + private HashMap locations; + private HashSet predicates; + private BoolExpr disjointLocationExpr; + + public EventSolver() { + z3ctx = new Context(); + symbols = new HashMap<>(); + locations = new HashMap<>(); + predicates = new HashSet<>(); + disjointLocationExpr = z3ctx.mkTrue(); + + // Special symbol for location + IntExpr rho = (IntExpr) z3ctx.mkConst("META_rho", z3ctx.getIntSort()); + symbols.put("META_rho", rho); + // Special symbol for time + IntExpr deltat = (IntExpr) z3ctx.mkConst("META_deltat", z3ctx.getIntSort()); + symbols.put("META_deltat", deltat); + + } + + public IntExpr getLocationExpr() { + return symbols.get("META_rho"); + } + + public BoolExpr specifyLocation(IntExpr location, BoolExpr e, boolean opposite) { + Expr ret = e; + for (IntExpr ie : locations.values()) { + if (ie == location && !opposite) { + ret = ret.substitute(z3ctx.mkEq(getLocationExpr(), ie), z3ctx.mkTrue()); + } else if (ie != location && !opposite) { + ret = ret.substitute(z3ctx.mkEq(getLocationExpr(), ie), z3ctx.mkFalse()); + } else if (ie == location && opposite) { + ret = ret.substitute(z3ctx.mkEq(getLocationExpr(), ie), z3ctx.mkFalse()); + } else { + ret = ret.substitute(z3ctx.mkEq(getLocationExpr(), ie), z3ctx.mkTrue()); + } + } + + return (BoolExpr) ret; + } + + public BoolExpr MkMatch(ArithExpr left, String op, ArithExpr right) { + BoolExpr pred; + switch (op) { + case "==": + pred = z3ctx.mkEq(left, right); + predicates.add(pred); + return pred; + case "!=": + pred = z3ctx.mkNot(z3ctx.mkEq(left, right)); + predicates.add(pred); + return pred; + case "<": + pred = z3ctx.mkLt(left, right); + predicates.add(pred); + return pred; + case ">": + pred = z3ctx.mkGt(left, right); + predicates.add(pred); + return pred; + case "<=": + pred = z3ctx.mkLe(left, right); + predicates.add(pred); + return pred; + case ">=": + pred = z3ctx.mkGe(left, right); + predicates.add(pred); + return pred; + } + + throw new NotImplementedException("Unknown operator: " + op); + } + + public Context getContext() { + return z3ctx; + } + + public HashMap getLocations() { + return locations; + } + + public BoolExpr getOther() { + BoolExpr ret = z3ctx.mkTrue(); + for (BoolExpr pred : predicates) { + ret = z3ctx.mkAnd(ret, z3ctx.mkNot(pred)); + } + return ret; + } + + public BoolExpr MkMatch(String left, String op, String right) { + IntExpr e1; + + if (symbols.containsKey(left)) { + e1 = symbols.get(left); + } else { + e1 = (IntExpr) z3ctx.mkConst(left, z3ctx.getIntSort()); + symbols.put(left, e1); + } + + IntExpr e2; + + + if (symbols.containsKey(right)) { + e2 = symbols.get(right); + } else { + e2 = (IntExpr) z3ctx.mkConst(right, z3ctx.getIntSort()); + symbols.put(right, e2); + } + + if (left.equals("META_rho") && (!(locations.containsKey(right)))) { + locations.put(right, e2); + } + + return MkMatch(e1, op, e2); + } + + public BoolExpr MkMatch(Integer left, String op, String right) { + IntNum e1 = z3ctx.mkInt(left); + + IntExpr e2; + if (symbols.containsKey(right)) { + e2 = symbols.get(right); + } else { + e2 = (IntExpr) z3ctx.mkConst(right, z3ctx.getIntSort()); + symbols.put(right, e2); + } + + return MkMatch(e1, op, e2); + } + + public BoolExpr MkMatch(String left, String op, Integer right) { + IntExpr e1; + if (symbols.containsKey(left)) { + e1 = symbols.get(left); + } else { + e1 = (IntExpr) z3ctx.mkConst(left, z3ctx.getIntSort()); + symbols.put(left, e1); + } + IntNum e2 = z3ctx.mkInt(right); + return MkMatch(e1, op, e2); + } + + public ArithExpr MkBinOp(ArithExpr left, String op, ArithExpr right) { + switch (op) { + case "+": + return z3ctx.mkAdd(left, right); + case "-": + return z3ctx.mkSub(left, right); + case "*": + return z3ctx.mkMul(left, right); + case "/": + return z3ctx.mkDiv(left, right); + + } + + throw new NotImplementedException("Unknown operator: " + op); + } + + public ArithExpr MkBinOp(String left, String op, String right) { + IntExpr e1; + + if (symbols.containsKey(left)) { + e1 = symbols.get(left); + } else { + e1 = (IntExpr) z3ctx.mkConst(left, z3ctx.getIntSort()); + symbols.put(left, e1); + } + + IntExpr e2; + + + if (symbols.containsKey(right)) { + e2 = symbols.get(right); + } else { + e2 = (IntExpr) z3ctx.mkConst(right, z3ctx.getIntSort()); + symbols.put(right, e2); + } + + if (left.equals("META_rho") && (!(locations.containsKey(right)))) { + locations.put(right, e2); + } + + return MkBinOp(e1, op, e2); + } + + public ArithExpr MkBinOp(Integer left, String op, String right) { + IntNum e1 = z3ctx.mkInt(left); + + IntExpr e2; + if (symbols.containsKey(right)) { + e2 = symbols.get(right); + } else { + e2 = (IntExpr) z3ctx.mkConst(right, z3ctx.getIntSort()); + symbols.put(right, e2); + } + + return MkBinOp(e1, op, e2); + } + + public ArithExpr MkBinOp(String left, String op, Integer right) { + IntExpr e1; + if (symbols.containsKey(left)) { + e1 = symbols.get(left); + } else { + e1 = (IntExpr) z3ctx.mkConst(left, z3ctx.getIntSort()); + symbols.put(left, e1); + } + IntNum e2 = z3ctx.mkInt(right); + return MkBinOp(e1, op, e2); + } + + public ArithExpr MkSingleArith(Integer val) { + IntNum e1 = z3ctx.mkInt(val); + return e1; + } + + public ArithExpr MkSingleArith(String val) { + IntExpr e2; + if (symbols.containsKey(val)) { + e2 = symbols.get(val); + } else { + e2 = (IntExpr) z3ctx.mkConst(val, z3ctx.getIntSort()); + symbols.put(val, e2); + } + return e2; + } + + public void registerLocation(String s) { + if (!locations.containsKey(s)) { + IntExpr e = (IntExpr) z3ctx.mkConst(s, z3ctx.getIntSort()); + symbols.put(s, e); + + for (IntExpr le : locations.values()) { + BoolExpr notequal = z3ctx.mkNot(z3ctx.mkEq(le, e)); + disjointLocationExpr = z3ctx.mkAnd(disjointLocationExpr, notequal); + } + + locations.put(s, e); + } + } + + public Expr MkIte(BoolExpr condition, Expr e1, Expr e2) { + return z3ctx.mkITE(condition, e1, e2); + } + + /** + * @return the predicate accepting only s + */ + @Override + public BoolExpr MkAtom(HashMap s) { + BoolExpr ret = z3ctx.mkTrue(); + for (Map.Entry e : s.entrySet()) { + IntExpr x = symbols.get(e.getKey()); + IntNum val = z3ctx.mkInt(e.getValue()); + BoolExpr equality = z3ctx.mkEq(x, val); + ret = z3ctx.mkAnd(ret, equality); + } + + return ret; + } + + /** + * @return the complement of p + */ + @Override + public BoolExpr MkNot(BoolExpr p) { + return z3ctx.mkNot(p); + } + + public BoolExpr MkEq(Expr i1, Expr i2) { + return z3ctx.mkEq(i1, i2); + } + + /** + * @return the disjunction of the predicates in pset + */ + @Override + public BoolExpr MkOr(Collection pset) { + BoolExpr ret = z3ctx.mkFalse(); + for (BoolExpr e : pset) { + ret = z3ctx.mkOr(ret, e); + } + + return ret; + } + + /** + * @return the predicate p1 or p2 + */ + @Override + public BoolExpr MkOr(BoolExpr p1, BoolExpr p2) { + return z3ctx.mkOr(p1, p2); + } + + /** + * @return the conjunction of the predicates in pset + */ + @Override + public BoolExpr MkAnd(Collection pset) { + BoolExpr ret = z3ctx.mkTrue(); + for (BoolExpr e : pset) { + ret = z3ctx.mkAnd(ret, e); + } + + return ret; + } + + /** + * @return the predicate p1 and p2 + */ + @Override + public BoolExpr MkAnd(BoolExpr p1, BoolExpr p2) { + return z3ctx.mkAnd(p1, p2); + } + + /** + * @return p1 implies p2 + */ + public BoolExpr MkImplies(BoolExpr p1, BoolExpr p2) { + return z3ctx.mkImplies(p1, p2); + } + + /** + * @return p1 iff p2 + */ + public BoolExpr MkIff(BoolExpr p1, BoolExpr p2) { + return z3ctx.mkIff(p1, p2); + } + + /** + * @return the predicate true + */ + @Override + public BoolExpr True() { + return z3ctx.mkTrue(); + } + + /** + * @return the predicate false + */ + @Override + public BoolExpr False() { + return z3ctx.mkFalse(); + } + + public ArithExpr MkUnaryMinus(ArithExpr a1) { + return z3ctx.mkUnaryMinus(a1); + } + + /** + * @return true iff p1 and p2 are equivalent + */ + @Override + public boolean AreEquivalent(BoolExpr p1, BoolExpr p2) { + return !IsSatisfiable(z3ctx.mkNot(z3ctx.mkIff(p1, p2))); + } + + /** + * @return true iff p1 is satisfiable + */ + @Override + public boolean IsSatisfiable(BoolExpr p1) { + Solver s = z3ctx.mkSolver(); + s.add(p1); + s.add(disjointLocationExpr); + return s.check() == Status.SATISFIABLE; + } + + + public boolean IsUnSAT(BoolExpr p1) { + Solver s = z3ctx.mkSolver(); + s.add(p1); + s.add(disjointLocationExpr); + return s.check() == Status.UNSATISFIABLE; + } + + /** + * @return true iff el is a model of p1 + */ + @Override + public boolean HasModel(BoolExpr p1, HashMap el) { + BoolExpr model = MkAtom(el); + Solver s = z3ctx.mkSolver(); + s.add(p1); + s.add(disjointLocationExpr); + s.add(model); + return s.check() == Status.SATISFIABLE; // TODO: original returned true if not possible. why? + } + + /** + * @return true iff (el1,el2) is a model of a binary predicate p1 (used for SVPA) + */ + @Override + public boolean HasModel(BoolExpr p1, HashMap el1, HashMap el2) { + throw new UnsupportedOperationException("SATBooleanAlgebra.HasModel(_,_,_) is not implemented"); + } + + /** + * @return a witness of the predicate p1 if satisfiable, null otherwise + */ + @Override + public HashMap generateWitness(BoolExpr p1) { + Solver s = z3ctx.mkSolver(); + s.add(p1); + + if (s.check() != Status.SATISFIABLE) { + return null; + } + + Model m = s.getModel(); + HashMap witness = new HashMap<>(); + for (Map.Entry e : symbols.entrySet()) { + Expr val = m.evaluate(e.getValue(), false); + System.out.println("VIN" + val + "|" + val.toString()); + // TODO + witness.put(e.getKey(), Integer.parseInt(val.toString())); + } + + return witness; + } + + /** + * @return a pair witness of the binary predicate p1 if satisfiable, null otherwise + */ + @Override + public Pair, HashMap> generateWitnesses(BoolExpr p1) { + throw new UnsupportedOperationException("SATBooleanAlgebra.generateWitnesses is not implemented"); + } +} \ No newline at end of file diff --git a/generateSFA/src/main/java/generateSFA/ExprExamples.java b/generateSFA/src/main/java/generateSFA/ExprExamples.java new file mode 100644 index 0000000..dcccd92 --- /dev/null +++ b/generateSFA/src/main/java/generateSFA/ExprExamples.java @@ -0,0 +1,309 @@ +package main.java.generateSFA; + + +import org.apache.commons.lang3.NotImplementedException; + +import com.microsoft.z3.Context; +import com.microsoft.z3.BoolExpr; +import com.microsoft.z3.IntExpr; +import com.microsoft.z3.Expr; +import com.microsoft.z3.IntNum; +import com.microsoft.z3.ArithExpr; +import com.microsoft.z3.Solver; + + + +public class ExprExamples { + public ExprExamples() { + } + + public void base_case() { + System.out.println("Running Example base_case: Simple case\n"); + Context z3ctx = new Context(); + IntExpr field_name = (IntExpr) z3ctx.mkConst("event_type", z3ctx.getIntSort()); + IntNum e1 = z3ctx.mkInt(1); + IntNum e2 = z3ctx.mkInt(2); + + BoolExpr equalityExpr = MkMatch(z3ctx, field_name, "==", e1); + BoolExpr unEqualityExpr = MkMatch(z3ctx, field_name, "!=", e2); + + BoolExpr baseCase = z3ctx.mkAnd(equalityExpr, unEqualityExpr); + System.out.print("Expr: "); + System.out.println(baseCase); + System.out.print("Expr Simplified: "); + System.out.println(baseCase.simplify()); + System.out.println("\nEnd of Example base_case\n"); + + } + + public void equal_test_case() { + System.out.println("Running Example equal_test_case \n"); + Context z3ctx = new Context(); + IntExpr field_name = (IntExpr) z3ctx.mkConst("event_type", z3ctx.getIntSort()); + IntNum e1 = z3ctx.mkInt(1); + IntNum e2 = z3ctx.mkInt(2); + + BoolExpr firstExpr = MkMatch(z3ctx, field_name, "==", e1); + BoolExpr secExpr = MkMatch(z3ctx, field_name, "==", e1); + + Expr[] argList = firstExpr.getArgs(); + + for (Expr a : argList) { + System.out.println(a); + } + + if (firstExpr.equals(secExpr)) { + System.out.println("They are same"); + } else { + System.out.println("They are different"); + } + + System.out.println("\nEnd of Example equal_test_case\n"); + + } + + public void time_simplified_case() { + System.out.println("Running Example time_simplified_case: Time simplification case\n"); + Context z3ctx = new Context(); + IntExpr field_name = (IntExpr) z3ctx.mkConst("META_deltat", z3ctx.getIntSort()); + IntNum minVal = z3ctx.mkInt(0); + IntNum maxVal = z3ctx.mkInt(10); + + BoolExpr gtBool = z3ctx.mkGe(field_name, minVal); + BoolExpr ltBool = z3ctx.mkLt(field_name, maxVal); + + BoolExpr baseCase = z3ctx.mkAnd(gtBool, ltBool); + System.out.print("Expr: "); + System.out.println(baseCase); + System.out.print("Expr Simplified: "); + System.out.println(baseCase.simplify()); + System.out.println("\nEnd of Example base_case\n"); + + } + + public void location_base_case() { + System.out.println("Running Example location_base_case: \n"); + Context z3ctx = new Context(); + IntExpr location_name = (IntExpr) z3ctx.mkConst("META_rho", z3ctx.getIntSort()); + + BoolExpr l1 = MkMatch(z3ctx, location_name, "==", (IntExpr) z3ctx.mkConst("X", z3ctx.getIntSort())); + BoolExpr l2 = MkMatch(z3ctx, location_name, "!=", (IntExpr) z3ctx.mkConst("X", z3ctx.getIntSort())); + + IntExpr field_name = (IntExpr) z3ctx.mkConst("event_type", z3ctx.getIntSort()); + IntNum e1 = z3ctx.mkInt(1); + IntNum e2 = z3ctx.mkInt(2); + + BoolExpr equalityExprFirst = MkMatch(z3ctx, field_name, "==", e1); + BoolExpr unEqualityExprFirst = MkMatch(z3ctx, field_name, "!=", e2); + + BoolExpr equalityExprSecond = MkMatch(z3ctx, field_name, "==", e2); + BoolExpr unEqualityExprSecond = MkMatch(z3ctx, field_name, "!=", e1); + + BoolExpr firstExpr = z3ctx.mkNot(z3ctx.mkAnd(l2, equalityExprFirst)); + BoolExpr secondExpr = z3ctx.mkNot(z3ctx.mkAnd(l2, equalityExprSecond)); + BoolExpr thirdExpr = z3ctx.mkNot(z3ctx.mkAnd(l1, equalityExprFirst)); + + BoolExpr baseCase = z3ctx.mkAnd(z3ctx.mkAnd(firstExpr, secondExpr), thirdExpr); + System.out.print("Expr: "); + System.out.println(baseCase); + System.out.print("Expr Simplified: "); + System.out.println(baseCase.simplify()); + + System.out.println("\nEnd of Example location_base_case\n"); + + } + + public void location_implication_case() { + System.out.println("Running Example location_implication_case: If we add antecedent ((event_type == 1) or (event_type == 2) = True) \n"); + Context z3ctx = new Context(); + IntExpr location_name = (IntExpr) z3ctx.mkConst("META_rho", z3ctx.getIntSort()); + + BoolExpr l1 = MkMatch(z3ctx, location_name, "==", (IntExpr) z3ctx.mkConst("X", z3ctx.getIntSort())); + BoolExpr l2 = MkMatch(z3ctx, location_name, "!=", (IntExpr) z3ctx.mkConst("X", z3ctx.getIntSort())); + + IntExpr field_name = (IntExpr) z3ctx.mkConst("event_type", z3ctx.getIntSort()); + IntNum e1 = z3ctx.mkInt(1); + IntNum e2 = z3ctx.mkInt(2); + + BoolExpr equalityExprFirst = MkMatch(z3ctx, field_name, "==", e1); + BoolExpr unEqualityExprFirst = MkMatch(z3ctx, field_name, "!=", e2); + + BoolExpr equalityExprSecond = MkMatch(z3ctx, field_name, "==", e2); + BoolExpr unEqualityExprSecond = MkMatch(z3ctx, field_name, "!=", e1); + + BoolExpr firstExpr = z3ctx.mkNot(z3ctx.mkAnd(l2, equalityExprFirst)); + BoolExpr secondExpr = z3ctx.mkNot(z3ctx.mkAnd(l2, equalityExprSecond)); + BoolExpr thirdExpr = z3ctx.mkNot(z3ctx.mkAnd(l1, equalityExprFirst)); + + BoolExpr implication = z3ctx.mkEq(z3ctx.mkOr(equalityExprFirst, equalityExprSecond), z3ctx.mkTrue()); + + BoolExpr baseCase = z3ctx.mkImplies(implication, z3ctx.mkAnd(z3ctx.mkAnd(firstExpr, secondExpr), thirdExpr)); + System.out.print("Expr: "); + System.out.println(baseCase); + System.out.print("Expr Simplified: "); + System.out.println(baseCase.simplify()); + + System.out.println("\nEnd of Example location_implication_case\n"); + + } + + public void location_sat_case() { + System.out.println("Running Example location_sat_case: If we check location is X using SAT solver\n"); + Context z3ctx = new Context(); + IntExpr location_name = (IntExpr) z3ctx.mkConst("META_rho", z3ctx.getIntSort()); + + BoolExpr l1 = MkMatch(z3ctx, location_name, "==", (IntExpr) z3ctx.mkConst("X", z3ctx.getIntSort())); + BoolExpr l2 = MkMatch(z3ctx, location_name, "!=", (IntExpr) z3ctx.mkConst("X", z3ctx.getIntSort())); + + IntExpr field_name = (IntExpr) z3ctx.mkConst("event_type", z3ctx.getIntSort()); + IntNum e1 = z3ctx.mkInt(1); + IntNum e2 = z3ctx.mkInt(2); + + BoolExpr equalityExprFirst = MkMatch(z3ctx, field_name, "==", e1); + BoolExpr unEqualityExprFirst = MkMatch(z3ctx, field_name, "!=", e2); + + BoolExpr equalityExprSecond = MkMatch(z3ctx, field_name, "==", e2); + BoolExpr unEqualityExprSecond = MkMatch(z3ctx, field_name, "!=", e1); + + BoolExpr firstExpr = z3ctx.mkNot(z3ctx.mkAnd(l2, equalityExprFirst)); + BoolExpr secondExpr = z3ctx.mkNot(z3ctx.mkAnd(l2, equalityExprSecond)); + BoolExpr thirdExpr = z3ctx.mkNot(z3ctx.mkAnd(l1, equalityExprFirst)); + + BoolExpr baseCase = z3ctx.mkAnd(z3ctx.mkAnd(firstExpr, secondExpr), thirdExpr); + System.out.print("Expr: "); + System.out.println(baseCase); + System.out.print("Expr Simplified: "); + System.out.println(baseCase.simplify()); + + Solver s = z3ctx.mkSolver(); + s.add(l1); + s.add(baseCase); + System.out.print("Checking if location could be X: "); + System.out.println(s.check()); + + s = z3ctx.mkSolver(); + s.add(l2); + s.add(baseCase); + System.out.print("Checking if location is NOT X: "); + System.out.println(s.check()); + + System.out.println("\nEnd of Example location_sat_case\n"); + + } + + public void ryan_case() { + System.out.println("Running Example ryan_case: \n"); + Context z3ctx = new Context(); + IntExpr location_name = (IntExpr) z3ctx.mkConst("META_rho", z3ctx.getIntSort()); + + BoolExpr l1 = MkMatch(z3ctx, location_name, "==", (IntExpr) z3ctx.mkConst("X", z3ctx.getIntSort())); + BoolExpr l2 = MkMatch(z3ctx, location_name, "!=", (IntExpr) z3ctx.mkConst("X", z3ctx.getIntSort())); + + IntExpr field_name = (IntExpr) z3ctx.mkConst("event_type", z3ctx.getIntSort()); + IntNum e1 = z3ctx.mkInt(1); // ADD + IntNum e2 = z3ctx.mkInt(2); // REMOVE + + BoolExpr addExpr = MkMatch(z3ctx, field_name, "==", e1); + BoolExpr notAddExpr = MkMatch(z3ctx, field_name, "!=", e1); + + BoolExpr removeExpr = MkMatch(z3ctx, field_name, "==", e2); + BoolExpr notRemoveExpr = MkMatch(z3ctx, field_name, "!=", e2); + + + BoolExpr notRemoveNotX = z3ctx.mkNot(z3ctx.mkAnd(removeExpr, l2)); + BoolExpr notAddX = z3ctx.mkNot(z3ctx.mkAnd(addExpr, l1)); + BoolExpr notAddNotX = z3ctx.mkNot(z3ctx.mkAnd(addExpr, l2)); + + System.out.print("NOT (Add X): "); + System.out.println(notAddX); + + System.out.print(" NOT (Add NOT X): "); + System.out.println(notAddNotX); + + System.out.print("NOT (Remove NOT X): "); + System.out.println(notRemoveNotX); + + + BoolExpr transition = z3ctx.mkAnd(z3ctx.mkAnd(notAddX, notAddNotX), notRemoveNotX); + + System.out.print("\nTransition: "); + System.out.println(transition); + + // BoolExpr filter = z3ctx.mkAnd(addExpr, removeExpr); + + BoolExpr filter = z3ctx.mkEq(z3ctx.mkOr(addExpr, removeExpr), z3ctx.mkTrue()); + + System.out.print("\nFilter: "); + System.out.println(filter); + + BoolExpr implicationX = z3ctx.mkImplies(z3ctx.mkAnd(transition, filter), l1); + + System.out.print("\nImplication location is X: "); + System.out.println(implicationX.simplify()); + + Solver s1 = z3ctx.mkSolver(); + s1.add(implicationX); + System.out.print("\nFind satisfying solution location could be X: "); + System.out.println(s1.check()); + + Solver s2 = z3ctx.mkSolver(); + s2.add(z3ctx.mkNot(implicationX)); + System.out.print("Find satisfying solution with NOT implicationX: "); + System.out.println(s2.check()); + + BoolExpr implicationNotX = z3ctx.mkImplies(z3ctx.mkAnd(transition, filter), l2); + + Solver s3 = z3ctx.mkSolver(); + s3.add(implicationNotX); + System.out.print("Find satisfying solution location could be NOT X: "); + System.out.println(s3.check()); + + Solver s4 = z3ctx.mkSolver(); + s4.add(z3ctx.mkNot(implicationNotX)); + System.out.print("Find satisfying solution with NOT implicationNotX: "); + System.out.println(s4.check()); + + System.out.println("\nEnd of Example ryan_case\n"); + + } + + public void run_all_cases() { + // base_case(); + // location_base_case(); + // location_implication_case(); + // location_sat_case(); + // ryan_case(); + // time_simplified_case(); + equal_test_case(); + } + + private static BoolExpr MkMatch(Context z3ctx, ArithExpr left, String op, ArithExpr right) { + BoolExpr pred; + switch (op) { + case "==": + pred = z3ctx.mkEq(left, right); + return pred; + case "!=": + pred = z3ctx.mkNot(z3ctx.mkEq(left, right)); + return pred; + case "<": + pred = z3ctx.mkLt(left, right); + return pred; + case ">": + pred = z3ctx.mkGt(left, right); + return pred; + case "<=": + pred = z3ctx.mkLe(left, right); + return pred; + case ">=": + pred = z3ctx.mkGe(left, right); + return pred; + case ":=": + // Ignore these as they are always true + return z3ctx.mkTrue(); + } + + throw new NotImplementedException("Unknown operator: " + op); + } + +} \ No newline at end of file diff --git a/generateSFA/src/main/java/generateSFA/GenerateLocalSFA.java b/generateSFA/src/main/java/generateSFA/GenerateLocalSFA.java new file mode 100644 index 0000000..8d2524d --- /dev/null +++ b/generateSFA/src/main/java/generateSFA/GenerateLocalSFA.java @@ -0,0 +1,128 @@ +package main.java.generateSFA; + +import java.util.HashMap; +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedList; + +import com.microsoft.z3.BoolExpr; +import com.microsoft.z3.Expr; +import com.microsoft.z3.IntExpr; + +import automata.sfa.SFA; +import automata.Move; +import automata.sfa.SFAInputMove; +import automata.sfa.SFAMove; +import theory.BooleanAlgebra; +import automata.sfa.SFAEpsilon; + +import org.sat4j.specs.TimeoutException; + +public class GenerateLocalSFA { + static class LocalSFA { + SFA> lsfa; + HashMap> stateMapping; + IntExpr locExpr; + boolean opposite; + + LocalSFA(IntExpr locExpr) { + this.locExpr = locExpr; + this.stateMapping = new HashMap<>(); + this.opposite = false; + } + + LocalSFA(IntExpr locExpr, boolean _opposite) { + this.locExpr = locExpr; + this.stateMapping = new HashMap<>(); + this.opposite = _opposite; + } + } + + public static ArrayList generateLocalSFAs( + SFA> originalSFA, HashMap locations, + EventSolver eventSolver, BoolExpr filter) throws TimeoutException { + ArrayList localSFAs = new ArrayList<>(); + + // Create a local SFA for every named location + for (IntExpr locExpr : locations.values()) { + // System.out.println(locExpr); + LocalSFA l = new LocalSFA(locExpr); + l.lsfa = makeLocalSFA(l.stateMapping, originalSFA, locExpr, eventSolver, filter, false); + localSFAs.add(l); + // System.out.println("----------------------"); + LocalSFA lo = new LocalSFA(locExpr, true); + lo.lsfa = makeLocalSFA(lo.stateMapping, originalSFA, locExpr, eventSolver, filter, true); + // System.out.println(lo.lsfa); + // System.out.println("----------END------------"); + localSFAs.add(lo); + } + + return localSFAs; + } + + public static SFA> makeLocalSFA( + HashMap> stateMappingOut, + SFA> originalSFA, IntExpr location, + BooleanAlgebra> solver, BoolExpr filter, + boolean opposite) + throws TimeoutException { + Collection>> newTransitions = new LinkedList<>(); + + for (Move> t : originalSFA.getMoves()) { + SFAInputMove> im = (SFAInputMove>) t; + // System.out.println() + if (solver instanceof EventSolver) { + EventSolver eventSolver = (EventSolver) solver; + if (checklocalPresent(im.guard, location, eventSolver, filter, opposite)) { + BoolExpr newGuard = eventSolver.specifyLocation(location, im.guard, opposite); + // if (im.suppressible) { + // System.out.print("old guardA: "); + // System.out.println(im.guard); + // System.out.print("new guardA: "); + // System.out.println(newGuard); + + // } + newTransitions.add(new SFAInputMove<>(im.from, im.to, newGuard)); + } else { + // System.out.print("current guardE: "); + // System.out.println(im.guard); + BoolExpr newGuard = eventSolver.specifyLocation(location, im.guard, opposite); + // if (im.suppressible) { + // System.out.print("old guardB: "); + // System.out.println(im.guard); + // System.out.print("new guardB: "); + // System.out.println(newGuard); + + // } + newTransitions.add(new SFAInputMove<>(im.from, im.to, newGuard)); + newTransitions.add(new SFAEpsilon<>(t.from, t.to)); + // System.out.print("new guardE: "); + // System.out.println(newGuard); + } + } + } + + // Create the DSFA and return its determinized version + SFA> localsfa = SFA.MkSFA(newTransitions, + originalSFA.getInitialState(), originalSFA.getFinalStates(), solver); + // return localsfa.determinize(stateMappingOut, solver); + return localsfa; + } + + private static Boolean checklocalPresent(Expr guard, IntExpr location, EventSolver eventSolver, + BoolExpr filter, boolean opposite) { + BoolExpr transition = (BoolExpr) guard; + + IntExpr rho = eventSolver.getLocationExpr(); + BoolExpr locationPredicate; + if (opposite) { + locationPredicate = eventSolver.MkMatch(rho, "!=", location); + } else { + locationPredicate = eventSolver.MkMatch(rho, "==", location); + } + BoolExpr implicationX = eventSolver.MkNot( + eventSolver.MkImplies(eventSolver.MkAnd(transition, filter), locationPredicate)); + + return eventSolver.IsUnSAT(implicationX); + } +} \ No newline at end of file diff --git a/generateSFA/src/main/java/generateSFA/GenerateSFA.java b/generateSFA/src/main/java/generateSFA/GenerateSFA.java new file mode 100644 index 0000000..f20d190 --- /dev/null +++ b/generateSFA/src/main/java/generateSFA/GenerateSFA.java @@ -0,0 +1,542 @@ +package main.java.generateSFA; + +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; + +import org.antlr.v4.runtime.CharStreams; +import org.antlr.v4.runtime.CommonTokenStream; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; + +import com.microsoft.z3.ArithExpr; +import com.microsoft.z3.BoolExpr; +import com.microsoft.z3.IntExpr; +import com.microsoft.z3.Expr; + +import automata.Move; +import automata.sfa.SFA; +import automata.sfa.SFAInputMove; +import generateSFA.InvariantLexer; +import generateSFA.InvariantParser; +import main.java.generateSFA.GenerateLocalSFA.LocalSFA; +import net.sourceforge.argparse4j.ArgumentParsers; +import net.sourceforge.argparse4j.impl.Arguments; +import net.sourceforge.argparse4j.inf.ArgumentParser; +import net.sourceforge.argparse4j.inf.Namespace; + + +// SFA libary: http://pages.cs.wisc.edu/~loris/symbolicautomata.html +public class GenerateSFA { + + public static void main(String[] args) throws Exception { + ArgumentParser argparser = ArgumentParsers.newFor("GenerateSFA").build() + .defaultHelp(true) + .description("Generates the SFA"); + argparser.addArgument("--packet_format") + .setDefault("../config/SLB/packetformat.json") + .help("Packet format config file"); + argparser.addArgument("--invar_file") + .setDefault("../config/SLB/primary_single.invar") + .help("Input .invar file"); + argparser.addArgument("--debug") + .action(Arguments.storeTrue()) + .help("Packet format config file"); + argparser.addArgument("--out_dir") + .setDefault("../out/") + .help("Output directory"); + argparser.addArgument("--examples") + .action(Arguments.storeTrue()) + .help("Run examples only"); + Namespace ns = argparser.parseArgs(args); + + if (ns.getBoolean("examples")) { + ExprExamples examples = new ExprExamples(); + examples.run_all_cases(); + System.exit(0); + } + + // Create out directory if it does not already exist + File out_dir = new File(ns.getString("out_dir")); + if (!out_dir.exists()) { + out_dir.mkdir(); + } + + // Get basename + String basename = ns.getString("invar_file"); + int pos = basename.lastIndexOf("/"); + if (pos >= 0) { + basename = basename.substring(pos + 1); + } + pos = basename.lastIndexOf("."); + if (pos >= 0) { + basename = basename.substring(0, pos); + } + System.out.println("Processing invariant: " + basename); + + // Read packet_format.json file + JSONObject config = (JSONObject) new JSONParser() + .parse(new FileReader(ns.getString("packet_format"))); + + // Get constants from packet_format.json file + HashMap constantMap = null; + try { + constantMap = getConstants((JSONObject) config.get("constants")); + } catch (NullPointerException e) { + constantMap = new HashMap<>(); + } + + // Run lexer through file + InvariantLexer lexer = new InvariantLexer( + CharStreams.fromFileName(ns.getString("invar_file"))); + CommonTokenStream tokens = new CommonTokenStream(lexer); + + // Run parser through file + InvariantParser parser = new InvariantParser(tokens); + + // Get the top level grammar. In our case, it is policy in InvariantParser.g4 + InvariantParser.PolicyContext tree = parser.policy(); + EventSolver solver = new EventSolver(); + InvariantVisitor visitor = new InvariantVisitor(solver, constantMap); + SFA> sfa = visitor.visit(tree); + + // Output global .sfa.dot + System.out.println("Outputting SFA..."); + if (ns.getBoolean("debug")) { + System.out.println(sfa); + } + sfa.createDotFile(basename + ".sfa", ns.getString("out_dir")); + + // Output global .dsfa.dot + System.out.println("Outputting Global DSFA..."); + sfa = sfa.determinize(solver).minimize(solver); + simplifySFA(sfa); + BoolExpr negatedLocationExpr = calculateSupressionGlobal(sfa, solver); + negatedLocationExpr = simplifyNegFilter(negatedLocationExpr, visitor.variableMap, solver); + if (ns.getBoolean("debug")) { + System.out.println(sfa); + } + sfa.createDotFile(basename + ".dsfa", ns.getString("out_dir")); + + // Output global .sm.g + System.out.println("Serializing Global DSFA..."); + FileWriter fw = new FileWriter(ns.getString("out_dir") + basename + ".sm.g"); + printDSFA(sfa, negatedLocationExpr, visitor.filter, visitor.groupBy, visitor.locationSet, + visitor.variableMap.keySet(), visitor.functionMap, fw); + fw.close(); + + // Output local .sm.[0-9]+ + System.out.println("Serializing Local DSFAs..."); + ArrayList localSFAs = GenerateLocalSFA.generateLocalSFAs(sfa, + solver.getLocations(), solver, visitor.filter); + int counter = 0; + // System.out.println(localSFAs.size()); + for (LocalSFA l : localSFAs) { + simplifySFA(l.lsfa); + System.out.println("-------------------------------"); + setSupressionLocal(l.lsfa, l.stateMapping, l.locExpr, sfa, solver, l.opposite); + if (ns.getBoolean("debug")) { + System.out.println(l.lsfa); + } + l.lsfa = l.lsfa.determinize(l.stateMapping, solver); + simplifySFA(l.lsfa); + fw = new FileWriter(ns.getString("out_dir") + basename + ".sm." + counter++); + printLocalDSFA(l.lsfa, visitor.variableMap.keySet(), fw); + fw.close(); + } + } + + private static void simplifySFA(SFA sfa) { + for (Move m : sfa.getMoves()) { + try { + SFAInputMove im = (SFAInputMove) m; + im.guard = (BoolExpr) im.guard.simplify(); + } catch (ClassCastException e) { + continue; + } + // SFAMove im = (SFAMove) m; + + } + } + + private static void setSupressionLocal( + SFA> localSFA, + HashMap> stateMapping, + IntExpr locExpr, + SFA> globalSFA, EventSolver solver, + boolean opposite) { + for (Move> m : localSFA.getMoves()) { + SFAInputMove im; + try { + im = (SFAInputMove>) m; + } catch (ClassCastException e) { + continue; + } + + im.suppressible = true; + + // System.out.println(im.guard); + // Why are we just looking at im.from in globalSFA? There is no one-to-one mapping. + for (SFAInputMove originalMove : globalSFA.getInputMovesFrom(im.from)) { + if (originalMove.suppressible) { + continue; + } + + BoolExpr locSpecialization = solver.MkEq(solver.getLocationExpr(), locExpr); + // if (opposite) { + // locSpecialization = solver.MkNot(locSpecialization); + // System.out.print("local guard: "); + // System.out.println(im.guard); + // System.out.print("original guard: "); + // System.out.println(originalMove.guard); + // } + BoolExpr test = solver.MkAnd(solver.MkAnd(im.guard, originalMove.guard), + locSpecialization); + if (solver.IsSatisfiable(test)) { + im.suppressible = false; + // System.out.println("setting to false"); + break; + } + // else { + // System.out.println("letting it remain true"); + // } + } + } + } + + private static BoolExpr calculateSupressionGlobal(SFA> sfa, EventSolver solver) { + // Build the equivalence sets + // If two states have equivalent exit transitions they are "equivalent" + HashMap> equivalenceSets = new HashMap>(); + Object[] states = sfa.getStates().toArray(); + for (int i = 0; i < states.length; ++i) { + Integer state1 = (Integer) states[i]; + Collection>> moves1 = sfa.getInputMovesFrom(state1); + + for (int j = i + 1; j < states.length; ++j) { + Integer state2 = (Integer) states[j]; + Collection>> moves2 = sfa.getInputMovesFrom(state2); + + // the same state is trivially equivalent + if (state1.equals(state2)) { + if (!equivalenceSets.containsKey(state1)) { + equivalenceSets.put(state1, new HashSet()); + } + equivalenceSets.get(state1).add(state2); + if (!equivalenceSets.containsKey(state2)) { + equivalenceSets.put(state2, new HashSet()); + } + equivalenceSets.get(state2).add(state1); + } + + // different move set sizes are not equivalent + if (moves1.size() != moves2.size()) { + continue; + } + + // Otherwise, need to check each transition + boolean equivalent = true; + for (SFAInputMove> m1 : moves1) { + boolean foundEquivalent = false; + for (SFAInputMove> m2 : moves2) { + if (!m1.to.equals(m2.to)) { + continue; + } + + if (solver.IsUnSAT(solver.MkNot(solver.MkIff(m1.guard, m2.guard)))) { + // they must be equivalent! + foundEquivalent = true; + break; + } + } + + if (!foundEquivalent) { + equivalent = false; + break; + } + } + + if (equivalent) { + if (!equivalenceSets.containsKey(state1)) { + equivalenceSets.put(state1, new HashSet()); + } + equivalenceSets.get(state1).add(state2); + if (!equivalenceSets.containsKey(state2)) { + equivalenceSets.put(state2, new HashSet()); + } + equivalenceSets.get(state2).add(state1); + } + } + } + + // System.out.print("NOFEL: equal states"); + // System.out.println(equivalenceSets); + + // Set supression flags on everything + for (Move> m : sfa.getMoves()) { + SFAInputMove im = (SFAInputMove>) m; + + // If destination is accepting => NOT suppressible + if (sfa.isFinalState(im.to)) { + continue; + } + + // If self loop => suppressible + if (im.from.equals(im.to)) { + im.suppressible = true; + continue; + } + + // transitions between equivalent states => suppressible + if (equivalenceSets.containsKey(im.from) + && equivalenceSets.get(im.from).contains(im.to)) { + im.suppressible = true; + } + } + + // Finally, get the suppression BoolExpr for the negated location + BoolExpr ret = solver.False(); + for (Move> m : sfa.getMoves()) { + SFAInputMove im = (SFAInputMove>) m; + if (!im.suppressible) { + ret = solver.MkOr(ret, im.guard); + } + } + + return (BoolExpr) solver.specifyLocation(null, ret, false).simplify(); + } + + private static BoolExpr simplifyNegFilter(BoolExpr filter, HashMap> variableMap, EventSolver solver) { + // System.out.println("initial filter: "); + // System.out.println(filter); + if (variableMap.size() == 0) { + // System.out.println("After change: "); + // System.out.println(filter); + return filter; + } + BoolExpr allExpr = solver.False(); + + for (String selectedVar : variableMap.keySet()) { + // System.out.print("selectedVar: "); + // System.out.println(selectedVar); + for (VarValues val : variableMap.get(selectedVar)) { + // System.out.print("Value: "); + // System.out.println(val.strValue); + // System.out.println("Going in recurseReplace with true"); + BoolExpr temp = recurseReplace(filter, selectedVar, true, val, solver); + // System.out.print("true Output: "); + // System.out.println(temp); + allExpr = solver.MkOr(allExpr, temp); + // System.out.println("Out of recurseReplace with true"); + // + // System.out.println(allExpr); + allExpr = (BoolExpr) allExpr.simplify(); + + temp = recurseReplace(filter, selectedVar, false, val, solver); + // System.out.print("false Output: "); + // System.out.println(temp); + allExpr = solver.MkOr(allExpr, temp); + allExpr = (BoolExpr) allExpr.simplify(); + // System.out.print("After false: "); + // System.out.println(allExpr); + } + } + + // System.out.println("After change: "); + // System.out.println(allExpr); + return allExpr; + } + + private static BoolExpr recurseReplace(BoolExpr filter, String var, boolean flag, VarValues val, EventSolver solver) { + + if (filter.isLE() || filter.isLT() || filter.isGT() || filter.isGE()) { + // System.out.println("*******Arithmetic Operation. **********"); + if (flag){ + return solver.True(); + } else { + return solver.False(); + } + } + + ArithExpr variable = solver.MkSingleArith(var); + ArithExpr value; + + if (val.valType == 0) { + value = solver.MkSingleArith(val.intValue); + } else { + value = solver.MkSingleArith(val.strValue); + } + Expr[] filterArgs = filter.getArgs(); + + // System.out.println(filter); + // System.out.println(filterArgs.length); + + if (filter.isNot()) { + return solver.MkNot(recurseReplace((BoolExpr) filterArgs[0], var, flag, val, solver)); + } else if (filter.isOr()) { + BoolExpr ret = solver.False(); + for (Expr filterArg : filterArgs) { + ret = solver.MkOr(recurseReplace((BoolExpr)filterArg, var, flag, val, solver), ret); + } + return ret; + } else if (filter.isAnd()) { + BoolExpr ret = solver.True(); + for (Expr filterArg : filterArgs) { + ret = solver.MkAnd(recurseReplace((BoolExpr)filterArg, var, flag, val, solver), ret); + } + return ret; + } + + if (filter.isEq()) { + // System.out.print(" == "); + // System.out.println(filterArgs[1]); + if ((filterArgs[0].equals(variable) && filterArgs[1].equals(value)) || + (filterArgs[1].equals(variable) && filterArgs[0].equals(value))) { + // System.out.println("It is a match"); + if (flag) { + return solver.True(); + } else { + return solver.False(); + } + } + } + // System.out.print("No match: "); + // System.out.println(filter); + return filter; + } + + + private static HashMap getConstants(JSONObject constants) { + HashMap constantMap = new HashMap<>(); + for (Object key : constants.keySet()) { + constantMap.put((String) key, ((Long) constants.get(key)).intValue()); + } + + return constantMap; + } + + private static void printDSFA(SFA> dsfa, + BoolExpr negatedLocationExpr, BoolExpr filter, ArrayList groupBy, + HashSet locationSet, Set variableSet, HashMap functionMap, + FileWriter fw) + throws IOException { + // Line 1: negated location expression + fw.write(negatedLocationExpr.toString().replaceAll("\\R", "").replaceAll(" +", " ") + "\n"); + + // Line 2: initial state + fw.write(dsfa.getInitialState() + "\n"); + + // Line 3: final state(s) + boolean first = true; + for (Integer s : dsfa.getFinalStates()) { + if (first) { + first = false; + } else { + fw.append(','); + } + fw.write(s.toString()); + } + fw.write('\n'); + + // Line 4: filter + fw.write(filter.toString().replaceAll("\\R", "").replaceAll(" +", " ") + "\n"); + + // Line 5: groupby + first = true; + for (String s : groupBy) { + if (first) { + first = false; + } else { + fw.append(','); + } + fw.write(s); + } + fw.write('\n'); + + // Line 6: all locations + first = true; + for (String s : locationSet) { + if (first) { + first = false; + } else { + fw.append(','); + } + fw.write(s); + } + fw.write('\n'); + + // Line 7: all variables + first = true; + for (String s : variableSet) { + if (first) { + first = false; + } else { + fw.append(','); + } + fw.write(s); + } + fw.write('\n'); + + // Line 8: Number of map functions + fw.write(Integer.toString(functionMap.size())); + fw.write('\n'); + + for (HashMap.Entry entry : functionMap.entrySet()) { + fw.write(entry.getValue().toString()); + fw.write('\n'); + fw.write(entry.getKey()); + fw.write('\n'); + } + + // Line (8+2n)+: transitions + for (Move> m : dsfa.getMoves()) { + fw.write(((SFAInputMove>) m).toParsableString() + .replaceAll("\\R", "").replaceAll(" +", " ") + '\n'); + } + + fw.close(); + } + + private static void printLocalDSFA(SFA> dsfa, Set variableSet, FileWriter fw) throws IOException { + // Line 1: initial state + fw.write(dsfa.getInitialState() + "\n"); + + // Line 2: final state(s) + boolean first = true; + for (Integer s : dsfa.getFinalStates()) { + if (first) { + first = false; + } else { + fw.append(','); + } + fw.write(s.toString()); + } + fw.write('\n'); + + // Line 3: all variables + first = true; + for (String s : variableSet) { + if (first) { + first = false; + } else { + fw.append(','); + } + fw.write(s); + } + fw.write('\n'); + + // Line 4+: transitions + for (Move> m : dsfa.getMoves()) { + fw.write(((SFAInputMove>) m).toParsableString() + .replaceAll("\\R", "").replaceAll(" +", " ") + '\n'); + } + + fw.close(); + } +} diff --git a/generateSFA/src/main/java/generateSFA/InvariantVisitor.java b/generateSFA/src/main/java/generateSFA/InvariantVisitor.java new file mode 100644 index 0000000..791acb5 --- /dev/null +++ b/generateSFA/src/main/java/generateSFA/InvariantVisitor.java @@ -0,0 +1,613 @@ +package main.java.generateSFA; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; + +import org.apache.commons.lang3.NotImplementedException; +import org.sat4j.specs.TimeoutException; + +import com.microsoft.z3.BoolExpr; +import com.microsoft.z3.ArithExpr; +import com.microsoft.z3.Expr; + +import automata.sfa.SFA; +import automata.sfa.SFAInputMove; +import automata.sfa.SFAMove; +import generateSFA.InvariantParser.Compare_opContext; +import generateSFA.InvariantParser.Equality_opContext; +import generateSFA.InvariantParser.EventContext; +import generateSFA.InvariantParser.Event_matchContext; +import generateSFA.InvariantParser.EventsContext; +import generateSFA.InvariantParser.Events_sequenceContext; +import generateSFA.InvariantParser.Events_termContext; +import generateSFA.InvariantParser.Field_matchContext; +import generateSFA.InvariantParser.Filter_matchContext; +import generateSFA.InvariantParser.Field_termContext; +import generateSFA.InvariantParser.Filter_matchesContext; +import generateSFA.InvariantParser.Location_matchContext; +import generateSFA.InvariantParser.NameContext; +import generateSFA.InvariantParser.Regex_opContext; +import generateSFA.InvariantParser.TransformationContext; +import generateSFA.InvariantParser.ValueContext; +import generateSFA.InvariantParser.Field_expressionContext; +import generateSFA.InvariantParser.Field_expression2Context; +import generateSFA.InvariantParser.Var_refContext; +import generateSFA.InvariantParser.Node_matchContext; +import generateSFA.InvariantParser.Midnode_matchContext; +import generateSFA.InvariantParser.Leaf_matchContext; +import generateSFA.InvariantParser; +import generateSFA.InvariantParserBaseVisitor; + +public class InvariantVisitor extends InvariantParserBaseVisitor>> { + private EventSolver eventSolver; + private HashMap constantMap; + + public ArrayList groupBy; + public BoolExpr filter; + public HashSet locationSet; + public HashMap> variableMap; + public HashMap functionMap; + private int flag; + private int valType; + + public InvariantVisitor(EventSolver eventSolver, HashMap constantMap) { + super(); + this.eventSolver = eventSolver; + this.constantMap = constantMap; + + locationSet = new HashSet(); + variableMap = new HashMap>(); + + groupBy = new ArrayList(); + // Start with the predicate True so we can just AND any encountered filters + filter = eventSolver.True(); + functionMap = new HashMap<>(); + flag = 0; + valType = -1; + } + + /** + * policy + * : (transformation)+ TILDA events_sequence EOF + * ; + */ + @Override + public SFA> visitPolicy(InvariantParser.PolicyContext ctx) { + for (TransformationContext t : ctx.transformation()) { + visitTransformation(t); + } + return visitEvents_sequence(ctx.events_sequence()); + } + + /** + * transformation + * : GROUPBY LPAREN fields RPAREN + * | FILTER LPAREN filter_matches RPAREN + * | MAP LPAREN field_expression COMMA name RPAREN + * ; + */ + @Override + public SFA> visitTransformation(TransformationContext ctx) { + if (ctx.GROUPBY() != null) { + for (NameContext n : ctx.fields().name()) { + groupBy.add(n.getText()); + } + } else if (ctx.FILTER() != null) { + BoolExpr newFilter = visitFilter_matchesExpr(ctx.filter_matches()); + filter = (BoolExpr) eventSolver.MkAnd(filter, newFilter).simplify(); + } else if (ctx.MAP() != null) { + Expr newMap = visitField_expressionExpr(ctx.field_expression()); + functionMap.put(ctx.getChild(4).getText(), newMap); + System.out.println(newMap); + } else { + throw new NotImplementedException("visitTransformation"); + } + + return null; + } + + /** + * field_expression + * : (PLUS | MINUS)? field_expression2 ((PLUS | MINUS) field_expression2)* + * | field_expression compare_op field_expression QUESTION field_expression COLON field_expression + * ; + */ + + @Override + public SFA> visitField_expression(Field_expressionContext ctx) { + throw new NotImplementedException("visitField_expression"); + } + + public Expr visitField_expressionExpr(Field_expressionContext ctx) { + if (ctx.compare_op() == null) { + // System.out.println("going in if"); + ArithExpr expression; + int opPos = 1; + if (ctx.getChild(0).getText().equals("-")) { + expression = eventSolver.MkUnaryMinus(visitField_expression2Expr(ctx.field_expression2(0))); + opPos++; + } else if (ctx.getChild(0).getText().equals("+")) { + expression = visitField_expression2Expr(ctx.field_expression2(0)); + opPos++; + } else { + expression = visitField_expression2Expr(ctx.field_expression2(0)); + } + for (int i = 1; i < ctx.field_expression2().size(); i++) { + expression = eventSolver.MkBinOp(expression, ctx.getChild(opPos).getText(), (ArithExpr)visitField_expression2Expr(ctx.field_expression2(i))); + opPos += 2; + } + return expression; + + } else if (ctx.getChild(0) instanceof Field_expressionContext) { + ArithExpr leftExpr = (ArithExpr) visitField_expressionExpr(ctx.field_expression(0)); + String op = ctx.getChild(1).getText(); + ArithExpr rightExpr = (ArithExpr) visitField_expressionExpr(ctx.field_expression(1)); + + // Symbols are already added in eventSolver as this branch cannot be a leaf. + BoolExpr condition = eventSolver.MkMatch(leftExpr, op, rightExpr); + Expr ifExpr = visitField_expressionExpr(ctx.field_expression(2)); + Expr elseExpr = visitField_expressionExpr(ctx.field_expression(3)); + + return eventSolver.MkIte(condition, ifExpr, elseExpr); + } + throw new NotImplementedException("visitField_expressionExpr"); + } + + @Override + public SFA> visitField_expression2(Field_expression2Context ctx) { + throw new NotImplementedException("visitField_expression2"); + } + + /** + * field_expression2 + * : field_term ((STAR | DIVIDE) field_term)* + * ; + */ + public ArithExpr visitField_expression2Expr(Field_expression2Context ctx) { + + ArithExpr ret = visitField_termExpr(ctx.field_term(0)); + int opPos = 1; + for (int i = 1; i < ctx.field_term().size(); ++i) { + ret = eventSolver.MkBinOp(ret, ctx.getChild(opPos).getText() ,visitField_termExpr(ctx.field_term(i))); + opPos += 2; + } + return ret; + } + + /** + * field_term + * : name + * | value + * ; + */ + public ArithExpr visitField_termExpr(Field_termContext ctx) { + String val = ctx.getChild(0).getText(); + if (ctx.getChild(0) instanceof ValueContext) { + return eventSolver.MkSingleArith(Integer.parseInt(val)); + } else if (ctx.getChild(0) instanceof NameContext) { + return eventSolver.MkSingleArith(val); + } else { + throw new NotImplementedException("visitField_termExpr"); + } + } + + /** + * filter_matches + * : LPAREN filter_matches RPAREN + * | filter_matches OR filter_matches + * | filter_matches AND filter_matches + * | filter_match + * ; + */ + @Override + public SFA> visitFilter_matches(Filter_matchesContext ctx) { + throw new NotImplementedException("visitFilter_matches"); + } + public BoolExpr visitFilter_matchesExpr(Filter_matchesContext ctx) { + if (ctx.LPAREN() != null) { + return visitFilter_matchesExpr(ctx.filter_matches(0)); + } else if (ctx.OR() != null) { + BoolExpr left = visitFilter_matchesExpr(ctx.filter_matches(0)); + BoolExpr right = visitFilter_matchesExpr(ctx.filter_matches(1)); + return eventSolver.MkOr(left, right); + } else if (ctx.AND() != null) { + BoolExpr left = visitFilter_matchesExpr(ctx.filter_matches(0)); + BoolExpr right = visitFilter_matchesExpr(ctx.filter_matches(1)); + return eventSolver.MkAnd(left, right); + } else { + return visitFilter_matchExpr(ctx.filter_match()); + } + } + + /** + * filter_match + * : name compare_op name + * | name compare_op value + * | value compare_op name + * ; + */ + @Override + public SFA> visitFilter_match(Filter_matchContext ctx) { + throw new NotImplementedException("visitFilter_match"); + } + + public BoolExpr visitFilter_matchExpr(Filter_matchContext ctx) { + String left = ctx.getChild(0).getText(); + String op = ctx.getChild(1).getText(); + String right = ctx.getChild(2).getText(); + + if (ctx.getChild(0) instanceof ValueContext) { + // right must be non-value + return eventSolver.MkMatch(Integer.parseInt(left), op, right); + } else if (constantMap.containsKey(left)) { + // left is constant. right must be non-value. + assert(!constantMap.containsKey(right)); + return eventSolver.MkMatch(constantMap.get(left), op, right); + } else if (ctx.getChild(2) instanceof ValueContext) { + // left must be non-value + if (right.contains("\"")) { + return eventSolver.MkMatch(left, op, right); + } else { + return eventSolver.MkMatch(left, op, Integer.parseInt(right)); + } + + } else if (constantMap.containsKey(right)) { + // right is constant. left must be non-value + assert(!constantMap.containsKey(left)); + return eventSolver.MkMatch(left, op, constantMap.get(right)); + } else { + return eventSolver.MkMatch(left, op, right); + } + } + + /** + * events_sequence + * : (events)+ + * ; + */ + @Override + public SFA> visitEvents_sequence(Events_sequenceContext ctx) { + SFA> ret = visitEvents(ctx.events(0)); + + try { + for (int i = 1; i < ctx.events().size(); ++i) { + ret = SFA.concatenate(ret, visitEvents(ctx.events(i)), eventSolver); + } + } catch (TimeoutException e) { + e.printStackTrace(); + return null; + } + + return ret; + } + + /** + * events + * : events_term (regex_op)? + * ; + */ + @Override + public SFA> visitEvents(EventsContext ctx) { + SFA> ret = visitEvents_term(ctx.events_term()); + + try { + if (ctx.regex_op() != null) { + switch(ctx.regex_op().getText()) { + case "*": + ret = SFA.star(ret, eventSolver); + break; + case "+": + ret = SFA.concatenate(ret, SFA.star(ret, eventSolver), eventSolver); + break; + case "?": + // build an SFA that only accepts the empty string + Collection>> transitions = new LinkedList<>(); + ret = SFA.union(ret, SFA.MkSFA(transitions, 0, Arrays.asList(0), eventSolver), eventSolver); + } + } + } catch (TimeoutException e) { + e.printStackTrace(); + } + + return ret; + } + + // Shuffle events helpers + private void shuffleSwap(ArrayList>> input, int a, int b) { + SFA> tmp = input.get(a); + input.set(a, input.get(b)); + input.set(b, tmp); + } + + private ArrayList>> shuffleRecursive( + int n, ArrayList>> elements) throws TimeoutException { + ArrayList>> ret = new ArrayList<>(); + if (n == 1) { + SFA> sfa = null; + for (SFA> e : elements) { + if (sfa == null) { + sfa = e; + } else { + sfa = SFA.concatenate(sfa, e, eventSolver); + } + } + ret.add(sfa); + } else { + for(int i = 0; i < n-1; i++) { + ret.addAll(shuffleRecursive(n - 1, elements)); + if(n % 2 == 0) { + shuffleSwap(elements, i, n-1); + } else { + shuffleSwap(elements, 0, n-1); + } + } + ret.addAll(shuffleRecursive(n - 1, elements)); + } + + return ret; + } + + /** + * Main visitor function to get an SFA for an events_term token + * events_term + * : event + * | LPAREN events_sequence RPAREN + * | SHUFFLE LPAREN events_list RPAREN + * | CHOICE LPAREN events_list RPAREN + * ; + */ + @Override + public SFA> visitEvents_term(Events_termContext ctx) { + SFA> ret = null; + + try { + if (ctx.SHUFFLE() != null) { + // SHUFFLE LPAREN events_list RPAREN + // events_list + // : events_sequence (COMMA events_sequence)* + // ; + ArrayList>> shuffleList = new ArrayList<>(); + for (Events_sequenceContext child : ctx.events_list().events_sequence()) { + shuffleList.add(visitEvents_sequence(child)); + } + + ArrayList>> shuffleResult = shuffleRecursive(shuffleList.size(), shuffleList); + + for (SFA> next : shuffleResult) { + if (ret == null) { + ret = next; + } else { + ret = SFA.union(ret, next, eventSolver); + } + } + } else if (ctx.CHOICE() != null) { + // CHOICE LPAREN events_list RPAREN + // events_list + // : events_sequence (COMMA events_sequence)* + // ; + for (Events_sequenceContext child : ctx.events_list().events_sequence()) { + if (ret == null) { + ret = visitEvents_sequence(child); + } else { + SFA> next = visitEvents_sequence(child); + ret = SFA.union(ret, next, eventSolver); + } + } + } else if (ctx.LPAREN() != null) { + // LPAREN events_sequence RPAREN + ret = visitEvents_sequence(ctx.events_sequence()); + } else { + // event + ret = visitEvent(ctx.event()); + } + } catch (TimeoutException e) { + e.printStackTrace(); + } + + return ret; + } + + /** + * Main visitor function to get an SFA for an event token + * event + * : BANG event + * | DOT AT location_match + * | LPAREN event_match RPAREN AT location_match + * ; + */ + @Override + public SFA> visitEvent(EventContext ctx) { + // BoolExpr is is your transition conditions (event) + BoolExpr eventExpr; + + if (ctx.BANG() != null) { + eventExpr = eventSolver.MkNot(visitEventExpr(ctx.event())); + } else { + eventExpr = visitEventExpr(ctx); + } + + try { + // Create an SFA that only accepts the event + Collection>> transitions = new LinkedList<>(); + transitions.add(new SFAInputMove>(0, 1, eventExpr)); + return SFA.MkSFA(transitions, 0, Arrays.asList(1), eventSolver); + } catch (TimeoutException e) { + e.printStackTrace(); + } + return null; + } + + public BoolExpr visitEventExpr(EventContext ctx) { + // get boolean expression for location + BoolExpr ret = visitLocation_matchExpr(ctx.location_match()); + + // if it's '.', then just and with true... + if (ctx.DOT() != null) { + return ret; + } + + // get boolean expression for the actual event + ret = eventSolver.MkAnd(ret, visitEvent_matchExpr(ctx.event_match())); + return (BoolExpr) ret.simplify(); + } + + /** + * BoolExpr visitor function for location_matches + * event + * : ANY + * | (NOT)? name + * ; + */ + @Override + public SFA> visitLocation_match(Location_matchContext ctx) { + throw new NotImplementedException("visitLocation_match"); + } + private BoolExpr visitLocation_matchExpr(Location_matchContext ctx) { + if (ctx.ANY() != null) { + return eventSolver.True(); + } + + locationSet.add(ctx.name().IDENTIFIER().getText()); + + String op = ctx.NOT() == null ? "==" : "!="; + return eventSolver.MkMatch("META_rho", op, ctx.name().IDENTIFIER().getText()); + } + + @Override + public SFA> visitEvent_match(Event_matchContext ctx) { + throw new NotImplementedException("visitEvent_match"); + } + private BoolExpr visitEvent_matchExpr(Event_matchContext ctx) { + // field_match (COMMA field_match)* + BoolExpr ret = eventSolver.True(); + for (Field_matchContext m : ctx.field_match()) { + ret = eventSolver.MkAnd(ret, visitField_matchExpr(m)); + } + + return ret; + } + + @Override + public SFA> visitField_match(Field_matchContext ctx) { + throw new NotImplementedException("visitField_match"); + } + + + private BoolExpr visitField_matchExpr(Field_matchContext ctx) { + String op = ctx.getChild(1).getText(); + ArithExpr left = visitNode_matchExpr(ctx.node_match(0)); + ArithExpr right = visitNode_matchExpr(ctx.node_match(1)); + if (flag == 1 && op.equals("==")) { + HashSet currentVal = variableMap.get(left.toString()); + VarValues newVal = new VarValues(); + if (valType == 1) { + newVal.valType = 1; + newVal.strValue = right.toString(); + } else if (valType == 0) { + newVal.valType = 0; + newVal.intValue = Integer.parseInt(right.toString()); + } + flag = 0; + } else if (flag == 2) { + flag = 0; + valType = -1; + } + return eventSolver.MkMatch(left, op, right); + } + + @Override + public SFA> visitNode_match(Node_matchContext ctx) { + throw new NotImplementedException("visitNode_match"); + } + + private ArithExpr visitNode_matchExpr(Node_matchContext ctx) { + ArithExpr expression = visitMidnode_matchExpr(ctx.midnode_match(0)); + int opPos = 1; + for (int i = 1; i < ctx.midnode_match().size(); i++) { + expression = eventSolver.MkBinOp(expression, ctx.getChild(opPos).getText(), visitMidnode_matchExpr(ctx.midnode_match(i))); + opPos += 2; + } + return expression; + } + + @Override + public SFA> visitMidnode_match(Midnode_matchContext ctx) { + throw new NotImplementedException("visitMidnode_match"); + } + + private ArithExpr visitMidnode_matchExpr(Midnode_matchContext ctx) { + ArithExpr expression = visitLeaf_matchExpr(ctx.leaf_match(0)); + int opPos = 1; + for (int i = 1; i < ctx.leaf_match().size(); i++) { + expression = eventSolver.MkBinOp(expression, ctx.getChild(opPos).getText(), visitLeaf_matchExpr(ctx.leaf_match(i))); + opPos += 2; + } + return expression; + } + + @Override + public SFA> visitLeaf_match(Leaf_matchContext ctx) { + throw new NotImplementedException("visitLeaf_match"); + } + + private ArithExpr visitLeaf_matchExpr(Leaf_matchContext ctx) { + String val = ctx.getChild(0).getText(); + if (ctx.getChild(0) instanceof ValueContext) { + if (val.contains("\"")) { + valType = 1; + return eventSolver.MkSingleArith(val); + } else { + valType = 0; + return eventSolver.MkSingleArith(Integer.parseInt(val)); + } + + } else if (ctx.getChild(0) instanceof Var_refContext) { + if (!variableMap.containsKey(val)) { + variableMap.put(val, new HashSet()); + } + // variableSet.add(val); + flag++; + return eventSolver.MkSingleArith(val); + } else if (constantMap.containsKey(val)) { + valType = 0; + return eventSolver.MkSingleArith(constantMap.get(val)); + + } else if (ctx.getChild(0) instanceof NameContext) { + valType = 1; + return eventSolver.MkSingleArith(val); + + } else { + throw new NotImplementedException("visitLeaf_matchExpr"); + } + } + + @Override + public SFA> visitValue(ValueContext ctx) { + throw new NotImplementedException("visitValue"); + } + + @Override + public SFA> visitEquality_op(Equality_opContext ctx) { + throw new NotImplementedException("visitEquality_op"); + } + + @Override + public SFA> visitCompare_op(Compare_opContext ctx) { + throw new NotImplementedException("visitCompare_op"); + } + + @Override + public SFA> visitRegex_op(Regex_opContext ctx) { + throw new NotImplementedException("visitRegex_op"); + } + + @Override + public SFA> visitName(NameContext ctx) { + throw new NotImplementedException("visitName"); + } + +} \ No newline at end of file diff --git a/generateSFA/src/main/java/generateSFA/Util.java b/generateSFA/src/main/java/generateSFA/Util.java new file mode 100644 index 0000000..bd17bbf --- /dev/null +++ b/generateSFA/src/main/java/generateSFA/Util.java @@ -0,0 +1,252 @@ +package main.java.generateSFA; + +import org.json.simple.JSONObject; +import org.apache.commons.lang3.NotImplementedException; + +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; + +import automata.Move; +import automata.sfa.SFA; +import automata.sfa.SFAInputMove; +import automata.sfa.SFAMove; + +import com.microsoft.z3.BoolExpr; +import com.microsoft.z3.Expr; +import com.microsoft.z3.Symbol; +import com.microsoft.z3.EnumSort; +import com.microsoft.z3.IntExpr; +import com.microsoft.z3.Context; + +import org.sat4j.specs.TimeoutException; + +public final class Util { + + private Util() { + throw new java.lang.UnsupportedOperationException("This is a utility class and cannot be instantiated"); + } + + public static HashMap getConstants(JSONObject constants) { + HashMap constantMap = new HashMap<>(); + for (Object key : constants.keySet()) { + constantMap.put((String) key, ((Long) constants.get(key)).intValue()); + } + + return constantMap; + } + + public static Collection>> getValidMoves(SFA> sfa, Integer to, Integer from) { + Collection>> validMoves = new LinkedList<>(); + + for (Move> t : sfa.getMoves()) { + try { + SFAInputMove im = (SFAInputMove>) t; + if (im.guard.isTrue()) { + continue; + } else { + validMoves.add(new SFAInputMove>(from, to, (BoolExpr) im.guard)); + } + } catch (ClassCastException e) { + continue; + } + + } + return validMoves; + } + + public static BoolExpr createOtherMove(SFA> sfa, EventSolver eventSolver) { + BoolExpr ret = eventSolver.True(); + + for (Move> t : sfa.getMoves()) { + try { + SFAInputMove im = (SFAInputMove>) t; + if (im.guard.isTrue()) { + continue; + } else { + ret = eventSolver.MkAnd(ret, eventSolver.MkNot(im.guard)); + } + } catch (ClassCastException e) { + continue; + } + + } + return (BoolExpr) ret.simplify(); + } + + public static HashMap createEnumsMap(HashMap> filterValues, Context z3ctx) { + HashMap enumsMap = new HashMap<>(); + for (HashMap.Entry> entry : filterValues.entrySet()) { + IntExpr key = entry.getKey(); + HashSet value = entry.getValue(); + if (value.size() < 2) continue; + + Boolean flag = true; + for (BoolExpr cond : value) { + if (cond.isNot()) { + flag = false; + } else if (!(cond.isEq())) { + throw new NotImplementedException("Unknown operator in BoolExpr: " + cond.toString()); + } + } + if (!flag) continue; + + Symbol name = z3ctx.mkSymbol(key.toString()); + Symbol[] valueEnums = new Symbol[value.size()]; + int counter = 0; + for (BoolExpr cond : value) { + valueEnums[counter] = z3ctx.mkSymbol(cond.getArgs()[1].toString()); + counter += 1; + } + EnumSort currentEnumSort = z3ctx.mkEnumSort(name, valueEnums); + enumsMap.put(key, currentEnumSort); + } + return enumsMap; + } + + public static void updateSFAwithEnum(SFA> sfa, HashMap enumsMap, EventSolver eventSolver) { + Collection>> newTransitions = new LinkedList<>(); + Integer init_state = sfa.getInitialState(); + + for (Move> t : sfa.getMoves()) { + SFAInputMove im; + try { + im = (SFAInputMove>) t; + System.out.print("transition guard: "); + System.out.println(im.guard); + im.guard = updateGuardWithEnum(im.guard, enumsMap, eventSolver.getContext()); + System.out.print("New transition: "); + System.out.println(im.guard); + System.out.println(im.guard.simplify()); + newTransitions.add(new SFAInputMove>(t.from, t.to, (BoolExpr) im.guard)); + } catch (ClassCastException e) { + newTransitions.add((SFAMove>) t); + continue; + } + } + + try { + Collection fin_states = sfa.getFinalStates(); + SFA> newSfa = SFA.MkSFA(newTransitions, init_state, fin_states, eventSolver); + System.out.println(newSfa.determinize(eventSolver).minimize(eventSolver)); + } catch (TimeoutException e) { + e.printStackTrace(); + } + } + + public static BoolExpr updateGuardWithEnum(BoolExpr transition, HashMap enumsMap, Context z3ctx) { + // System.out.print("transition guard: "); + // System.out.println(transition); + if (transition.isEq()) { + System.out.println("in equals: "); + IntExpr key = (IntExpr) transition.getArgs()[0]; + for (HashMap.Entry selectedEnum : enumsMap.entrySet()) { + if (key.equals(selectedEnum.getKey())) { + System.out.println("Key found"); + Expr[] constants = selectedEnum.getValue().getConsts(); + + for (int i = 0; i < constants.length; i++) { + if ((transition.getArgs()[1].toString()).equals(constants[i].getFuncDecl().getName().toString())) { + System.out.println("Value found"); + // System.out.println() + Expr eventType = z3ctx.mkConst(selectedEnum.getValue().toString(), selectedEnum.getValue()); + BoolExpr test = z3ctx.mkEq( eventType, constants[i]); + return test; + // System.out.print("New transition: "); + // System.out.println(test); + // System.out.println(test.simplify()); + // Solver s = z3ctx.mkSolver(); + // s.add(test); + // System.out.println(s.check()); + // return s.check() == Status.SATISFIABLE; + } + // else { + // System.out.print("Matching Value "); + // System.out.print(transition.getArgs()[1]); + // System.out.print(" with "); + // System.out.println(constants[i].getFuncDecl().getName()); + // } + } + } + // else { + // System.out.print("Matching Key "); + // System.out.print(key); + // System.out.print(" with "); + // System.out.println(selectedEnum.getKey()); + // } + } + return transition; + } else if (transition.isAnd()) { + System.out.println("in and: "); + BoolExpr firstSide = updateGuardWithEnum((BoolExpr) transition.getArgs()[0], enumsMap, z3ctx); + BoolExpr secondSide = updateGuardWithEnum((BoolExpr) transition.getArgs()[1], enumsMap, z3ctx); + if (firstSide.isEq() && secondSide.isNot()) { + if (firstSide.getArgs()[0].equals(secondSide.getArgs()[0].getArgs()[0])) { + System.out.println("Constants match"); + } else { + System.out.println("Constants do not match"); + } + } + return z3ctx.mkAnd(firstSide, secondSide); + } else if (transition.isOr()) { + System.out.println("in or: "); + return z3ctx.mkOr(updateGuardWithEnum((BoolExpr) transition.getArgs()[0], enumsMap, z3ctx), updateGuardWithEnum((BoolExpr) transition.getArgs()[1], enumsMap, z3ctx)); + } else if (transition.isNot()) { + System.out.println("in not: "); + return z3ctx.mkNot(updateGuardWithEnum((BoolExpr) transition.getArgs()[0], enumsMap, z3ctx)); + } else { + return transition; + } + } + + public static void addOtherTransition(SFA> sfa, EventSolver eventSolver) { + Collection>> newTransitions = new LinkedList<>(); + Integer init_state = sfa.getInitialState(); + System.out.print("Original length: "); + System.out.println(sfa.getMoves().size()); + for (Move> t : sfa.getMoves()) { + SFAInputMove im; + try { + im = (SFAInputMove>) t; + if (im.guard.isTrue()) { + // newTransitions.addAll(getValidMoves(sfa, t.from, t.to)); + newTransitions.add(new SFAInputMove>(t.from, t.to, (BoolExpr) im.guard)); + // newTransitions.add(new SFAInputMove>(t.from, t.to, (BoolExpr) eventSolver.getOther())); + newTransitions.add(new SFAInputMove>(t.from, t.to, createOtherMove(sfa, eventSolver))); + } else { + newTransitions.add((SFAMove>) t); + continue; + } + } catch (ClassCastException e) { + newTransitions.add((SFAMove>) t); + continue; + } + } + + System.out.println("Printing satisfactions"); + for (Move> t : newTransitions) { + try { + System.out.println(t.isSatisfiable(eventSolver)); + System.out.println(t); + } catch (TimeoutException e) { + e.printStackTrace(); + } + } + + System.out.print("New length: "); + System.out.println(newTransitions.size()); + try { + Collection fin_states = sfa.getFinalStates(); + SFA> newSfa = SFA.MkSFA(newTransitions, init_state, fin_states, eventSolver); + System.out.println("Printing new SFA"); + System.out.println(newSfa); + System.out.println("Printing new SFA after determinize"); + System.out.println(newSfa.determinize(eventSolver)); + } catch (TimeoutException e) { + e.printStackTrace(); + } + } + + +} \ No newline at end of file diff --git a/generateSFA/src/main/java/generateSFA/VarValues.java b/generateSFA/src/main/java/generateSFA/VarValues.java new file mode 100644 index 0000000..697ddf8 --- /dev/null +++ b/generateSFA/src/main/java/generateSFA/VarValues.java @@ -0,0 +1,10 @@ +package main.java.generateSFA; + +public class VarValues { + // 0 for int, 1 for string + public Integer valType; + + public Integer intValue; + public String strValue; + +} \ No newline at end of file diff --git a/out/block_ip.dsfa.dot b/out/block_ip.dsfa.dot new file mode 100644 index 0000000..206859c --- /dev/null +++ b/out/block_ip.dsfa.dot @@ -0,0 +1,47 @@ +digraph block_ip.dsfa{ + rankdir=LR; +0[label=0] +XX0 [color=white, label=""]1[label=1] +2[label=2,peripheries=2] +XX0 -> 0 +0 -> 0 [label="(not (and (= event_type 4) (= $a srcIp)))"] +0 -> 1 [label="(and (= event_type 4) (= $a srcIp))"] +1 -> 2 [label="(let ((a!1 (not (and (not (= event_type 5)) (not (= srcIp $a)))))) +(let ((a!2 (and (not (and (= event_type 4) (= $a srcIp))) + a!1 + (= event_type 1) + (= srcIp $a))) + (a!3 (and (not (and (= event_type 4) (= $a srcIp))) + (= event_type 1) + (= srcIp $a) + a!1))) + (or a!2 a!3)))"] +1 -> 0 [label="(let ((a!1 (not (and (not (= event_type 5)) (not (= srcIp $a)))))) +(let ((a!2 (and (not (and (= event_type 4) (= $a srcIp))) + (not (and (= event_type 1) (= srcIp $a))) + a!1)) + (a!3 (and (not (and (= event_type 4) (= $a srcIp))) + a!1 + (not (and (= event_type 1) (= srcIp $a)))))) + (or a!2 a!3)))"] +1 -> 1 [label="(let ((a!1 (not (and (not (= event_type 5)) (not (= srcIp $a))))) + (a!3 (and (not (and (= event_type 4) (= $a srcIp))) + (not (and (= event_type 1) (= srcIp $a))) + (not (= event_type 5)) + (not (= srcIp $a)))) + (a!4 (and (not (and (= event_type 4) (= $a srcIp))) + (not (= event_type 5)) + (not (= srcIp $a)) + (not (and (= event_type 1) (= srcIp $a)))))) +(let ((a!2 (and (= event_type 4) + (= $a srcIp) + a!1 + (not (and (= event_type 1) (= srcIp $a))))) + (a!5 (and (= event_type 4) + (= $a srcIp) + (not (and (= event_type 1) (= srcIp $a))) + a!1))) + (or a!2 a!3 a!4 a!5)))"] +2 -> 0 [label="(not (and (= event_type 4) (= $a srcIp)))"] +2 -> 1 [label="(and (= event_type 4) (= $a srcIp))"] +} \ No newline at end of file diff --git a/out/block_ip.sfa.dot b/out/block_ip.sfa.dot new file mode 100644 index 0000000..f11fce6 --- /dev/null +++ b/out/block_ip.sfa.dot @@ -0,0 +1,25 @@ +digraph block_ip.sfa{ + rankdir=LR; +0[label=0] +1[label=1] +2[label=2] +XX2 [color=white, label=""]3[label=3] +4[label=4] +5[label=5] +6[label=6] +7[label=7] +8[label=8] +9[label=9,peripheries=2] +XX2 -> 2 +0 -> 1 [label="true"] +1 -> 2 [label="ε"] +2 -> 0 [label="ε"] +2 -> 3 [label="ε"] +3 -> 4 [label="(and (= event_type 4) (= $a srcIp))"] +4 -> 7 [label="ε"] +5 -> 6 [label="(and (not (= event_type 5)) (not (= srcIp $a)))"] +6 -> 7 [label="ε"] +7 -> 5 [label="ε"] +7 -> 8 [label="ε"] +8 -> 9 [label="(and (= event_type 1) (= srcIp $a))"] +} \ No newline at end of file diff --git a/out/block_ip.sm.g b/out/block_ip.sm.g new file mode 100644 index 0000000..760c1fe --- /dev/null +++ b/out/block_ip.sm.g @@ -0,0 +1,15 @@ +false +0 +2 +true +srcIp + +$a +0 +true;0;0;(not (and (= event_type 4) (= $a srcIp))) +false;0;1;(and (= event_type 4) (= $a srcIp)) +false;1;2;(let ((a!1 (not (and (not (= event_type 5)) (not (= srcIp $a))))))(let ((a!2 (and (not (and (= event_type 4) (= $a srcIp))) a!1 (= event_type 1) (= srcIp $a))) (a!3 (and (not (and (= event_type 4) (= $a srcIp))) (= event_type 1) (= srcIp $a) a!1))) (or a!2 a!3))) +false;1;0;(let ((a!1 (not (and (not (= event_type 5)) (not (= srcIp $a))))))(let ((a!2 (and (not (and (= event_type 4) (= $a srcIp))) (not (and (= event_type 1) (= srcIp $a))) a!1)) (a!3 (and (not (and (= event_type 4) (= $a srcIp))) a!1 (not (and (= event_type 1) (= srcIp $a)))))) (or a!2 a!3))) +true;1;1;(let ((a!1 (not (and (not (= event_type 5)) (not (= srcIp $a))))) (a!3 (and (not (and (= event_type 4) (= $a srcIp))) (not (and (= event_type 1) (= srcIp $a))) (not (= event_type 5)) (not (= srcIp $a)))) (a!4 (and (not (and (= event_type 4) (= $a srcIp))) (not (= event_type 5)) (not (= srcIp $a)) (not (and (= event_type 1) (= srcIp $a))))))(let ((a!2 (and (= event_type 4) (= $a srcIp) a!1 (not (and (= event_type 1) (= srcIp $a))))) (a!5 (and (= event_type 4) (= $a srcIp) (not (and (= event_type 1) (= srcIp $a))) a!1))) (or a!2 a!3 a!4 a!5))) +true;2;0;(not (and (= event_type 4) (= $a srcIp))) +false;2;1;(and (= event_type 4) (= $a srcIp)) diff --git a/out/external_block.dsfa.dot b/out/external_block.dsfa.dot new file mode 100644 index 0000000..21f83c2 --- /dev/null +++ b/out/external_block.dsfa.dot @@ -0,0 +1,40 @@ +digraph external_block.dsfa{ + rankdir=LR; +0[label=0] +XX0 [color=white, label=""]1[label=1,peripheries=2] +XX0 -> 0 +0 -> 1 [label="(let ((a!1 (and (= event_type 1) + (= srcIp |"10.10.4.1"|) + (not (and (= event_type 1) (= srcIp |"10.10.4.2"|))))) + (a!2 (and (not (and (= event_type 1) (= srcIp |"10.10.4.1"|))) + (= event_type 1) + (= srcIp |"10.10.4.2"|))) + (a!3 (and (= event_type 1) + (= srcIp |"10.10.4.2"|) + (not (and (= event_type 1) (= srcIp |"10.10.4.1"|))))) + (a!4 (and (not (and (= event_type 1) (= srcIp |"10.10.4.2"|))) + (= event_type 1) + (= srcIp |"10.10.4.1"|)))) + (or a!1 + (and (= event_type 1) (= srcIp |"10.10.4.1"|) (= srcIp |"10.10.4.2"|)) + a!2 + (and (= event_type 1) (= srcIp |"10.10.4.2"|) (= srcIp |"10.10.4.1"|)) + a!3 + a!4))"] +0 -> 0 [label="(let ((a!1 (and (not (and (= event_type 1) (= srcIp |"10.10.4.1"|))) + (not (and (= event_type 1) (= srcIp |"10.10.4.2"|))))) + (a!2 (and (not (and (= event_type 1) (= srcIp |"10.10.4.2"|))) + (not (and (= event_type 1) (= srcIp |"10.10.4.1"|)))))) + (or a!1 a!2))"] +1 -> 0 [label="(and (not (and (= event_type 1) (= srcIp |"10.10.4.2"|))) + (not (and (= event_type 1) (= srcIp |"10.10.4.1"|))))"] +1 -> 1 [label="(let ((a!1 (and (= event_type 1) + (= srcIp |"10.10.4.2"|) + (not (and (= event_type 1) (= srcIp |"10.10.4.1"|))))) + (a!2 (and (not (and (= event_type 1) (= srcIp |"10.10.4.2"|))) + (= event_type 1) + (= srcIp |"10.10.4.1"|)))) + (or (and (= event_type 1) (= srcIp |"10.10.4.2"|) (= srcIp |"10.10.4.1"|)) + a!1 + a!2))"] +} \ No newline at end of file diff --git a/out/external_block.sfa.dot b/out/external_block.sfa.dot new file mode 100644 index 0000000..3c11f65 --- /dev/null +++ b/out/external_block.sfa.dot @@ -0,0 +1,20 @@ +digraph external_block.sfa{ + rankdir=LR; +0[label=0] +1[label=1] +2[label=2] +XX2 [color=white, label=""]3[label=3] +4[label=4,peripheries=2] +6[label=6] +7[label=7,peripheries=2] +8[label=8] +XX2 -> 2 +0 -> 1 [label="true"] +1 -> 2 [label="ε"] +2 -> 0 [label="ε"] +2 -> 8 [label="ε"] +3 -> 4 [label="(and (= event_type 1) (= srcIp |"10.10.4.1"|))"] +6 -> 7 [label="(and (= event_type 1) (= srcIp |"10.10.4.2"|))"] +8 -> 3 [label="ε"] +8 -> 6 [label="ε"] +} \ No newline at end of file diff --git a/out/external_block.sm.g b/out/external_block.sm.g new file mode 100644 index 0000000..1318c11 --- /dev/null +++ b/out/external_block.sm.g @@ -0,0 +1,12 @@ +(let ((a!1 (and (= event_type 1) (= srcIp |"10.10.4.1"|) (not (and (= event_type 1) (= srcIp |"10.10.4.2"|))))) (a!2 (and (not (and (= event_type 1) (= srcIp |"10.10.4.1"|))) (= event_type 1) (= srcIp |"10.10.4.2"|))) (a!3 (and (= event_type 1) (= srcIp |"10.10.4.2"|) (not (and (= event_type 1) (= srcIp |"10.10.4.1"|))))) (a!4 (and (not (and (= event_type 1) (= srcIp |"10.10.4.2"|))) (= event_type 1) (= srcIp |"10.10.4.1"|)))) (or a!1 (and (= event_type 1) (= srcIp |"10.10.4.1"|) (= srcIp |"10.10.4.2"|)) a!2 (and (= event_type 1) (= srcIp |"10.10.4.2"|) (= srcIp |"10.10.4.1"|)) a!3 a!4)) +0 +1 +(and (= event_type 1) (or (= srcIp |"10.10.4.1"|) (= srcIp |"10.10.4.2"|))) +srcIp + + +0 +false;0;1;(let ((a!1 (and (= event_type 1) (= srcIp |"10.10.4.1"|) (not (and (= event_type 1) (= srcIp |"10.10.4.2"|))))) (a!2 (and (not (and (= event_type 1) (= srcIp |"10.10.4.1"|))) (= event_type 1) (= srcIp |"10.10.4.2"|))) (a!3 (and (= event_type 1) (= srcIp |"10.10.4.2"|) (not (and (= event_type 1) (= srcIp |"10.10.4.1"|))))) (a!4 (and (not (and (= event_type 1) (= srcIp |"10.10.4.2"|))) (= event_type 1) (= srcIp |"10.10.4.1"|)))) (or a!1 (and (= event_type 1) (= srcIp |"10.10.4.1"|) (= srcIp |"10.10.4.2"|)) a!2 (and (= event_type 1) (= srcIp |"10.10.4.2"|) (= srcIp |"10.10.4.1"|)) a!3 a!4)) +true;0;0;(let ((a!1 (and (not (and (= event_type 1) (= srcIp |"10.10.4.1"|))) (not (and (= event_type 1) (= srcIp |"10.10.4.2"|))))) (a!2 (and (not (and (= event_type 1) (= srcIp |"10.10.4.2"|))) (not (and (= event_type 1) (= srcIp |"10.10.4.1"|)))))) (or a!1 a!2)) +true;1;0;(and (not (and (= event_type 1) (= srcIp |"10.10.4.2"|))) (not (and (= event_type 1) (= srcIp |"10.10.4.1"|)))) +false;1;1;(let ((a!1 (and (= event_type 1) (= srcIp |"10.10.4.2"|) (not (and (= event_type 1) (= srcIp |"10.10.4.1"|))))) (a!2 (and (not (and (= event_type 1) (= srcIp |"10.10.4.2"|))) (= event_type 1) (= srcIp |"10.10.4.1"|)))) (or (and (= event_type 1) (= srcIp |"10.10.4.2"|) (= srcIp |"10.10.4.1"|)) a!1 a!2)) diff --git a/out/external_block2.dsfa.dot b/out/external_block2.dsfa.dot new file mode 100644 index 0000000..91ff03d --- /dev/null +++ b/out/external_block2.dsfa.dot @@ -0,0 +1,28 @@ +digraph external_block2.dsfa{ + rankdir=LR; +0[label=0] +XX0 [color=white, label=""]1[label=1,peripheries=2] +XX0 -> 0 +0 -> 0 [label="(and (not (and (= event_type 1) (= srcIp |"10.10.5.2"|))) + (not (and (= event_type 1) (= srcIp |"10.10.5.1"|))))"] +0 -> 1 [label="(let ((a!1 (and (= event_type 1) + (= srcIp |"10.10.5.2"|) + (not (and (= event_type 1) (= srcIp |"10.10.5.1"|))))) + (a!2 (and (not (and (= event_type 1) (= srcIp |"10.10.5.2"|))) + (= event_type 1) + (= srcIp |"10.10.5.1"|)))) + (or (and (= event_type 1) (= srcIp |"10.10.5.2"|) (= srcIp |"10.10.5.1"|)) + a!1 + a!2))"] +1 -> 1 [label="(let ((a!1 (and (= event_type 1) + (= srcIp |"10.10.5.2"|) + (not (and (= event_type 1) (= srcIp |"10.10.5.1"|))))) + (a!2 (and (not (and (= event_type 1) (= srcIp |"10.10.5.2"|))) + (= event_type 1) + (= srcIp |"10.10.5.1"|)))) + (or (and (= event_type 1) (= srcIp |"10.10.5.2"|) (= srcIp |"10.10.5.1"|)) + a!1 + a!2))"] +1 -> 0 [label="(and (not (and (= event_type 1) (= srcIp |"10.10.5.2"|))) + (not (and (= event_type 1) (= srcIp |"10.10.5.1"|))))"] +} \ No newline at end of file diff --git a/out/external_block2.sfa.dot b/out/external_block2.sfa.dot new file mode 100644 index 0000000..970a7b4 --- /dev/null +++ b/out/external_block2.sfa.dot @@ -0,0 +1,20 @@ +digraph external_block2.sfa{ + rankdir=LR; +0[label=0] +1[label=1] +2[label=2] +XX2 [color=white, label=""]3[label=3] +4[label=4,peripheries=2] +6[label=6] +7[label=7,peripheries=2] +8[label=8] +XX2 -> 2 +0 -> 1 [label="true"] +1 -> 2 [label="ε"] +2 -> 8 [label="ε"] +2 -> 0 [label="ε"] +3 -> 4 [label="(and (= event_type 1) (= srcIp |"10.10.5.1"|))"] +6 -> 7 [label="(and (= event_type 1) (= srcIp |"10.10.5.2"|))"] +8 -> 3 [label="ε"] +8 -> 6 [label="ε"] +} \ No newline at end of file diff --git a/out/external_block2.sm.g b/out/external_block2.sm.g new file mode 100644 index 0000000..bdb10e8 --- /dev/null +++ b/out/external_block2.sm.g @@ -0,0 +1,12 @@ +(let ((a!1 (and (= event_type 1) (= srcIp |"10.10.5.2"|) (not (and (= event_type 1) (= srcIp |"10.10.5.1"|))))) (a!2 (and (not (and (= event_type 1) (= srcIp |"10.10.5.2"|))) (= event_type 1) (= srcIp |"10.10.5.1"|)))) (or (and (= event_type 1) (= srcIp |"10.10.5.2"|) (= srcIp |"10.10.5.1"|)) a!1 a!2)) +0 +1 +(and (= event_type 1) (or (= srcIp |"10.10.5.1"|) (= srcIp |"10.10.5.2"|))) +srcIp + + +0 +true;0;0;(and (not (and (= event_type 1) (= srcIp |"10.10.5.2"|))) (not (and (= event_type 1) (= srcIp |"10.10.5.1"|)))) +false;0;1;(let ((a!1 (and (= event_type 1) (= srcIp |"10.10.5.2"|) (not (and (= event_type 1) (= srcIp |"10.10.5.1"|))))) (a!2 (and (not (and (= event_type 1) (= srcIp |"10.10.5.2"|))) (= event_type 1) (= srcIp |"10.10.5.1"|)))) (or (and (= event_type 1) (= srcIp |"10.10.5.2"|) (= srcIp |"10.10.5.1"|)) a!1 a!2)) +false;1;1;(let ((a!1 (and (= event_type 1) (= srcIp |"10.10.5.2"|) (not (and (= event_type 1) (= srcIp |"10.10.5.1"|))))) (a!2 (and (not (and (= event_type 1) (= srcIp |"10.10.5.2"|))) (= event_type 1) (= srcIp |"10.10.5.1"|)))) (or (and (= event_type 1) (= srcIp |"10.10.5.2"|) (= srcIp |"10.10.5.1"|)) a!1 a!2)) +true;1;0;(and (not (and (= event_type 1) (= srcIp |"10.10.5.2"|))) (not (and (= event_type 1) (= srcIp |"10.10.5.1"|)))) diff --git a/out/new_established.dsfa.dot b/out/new_established.dsfa.dot new file mode 100644 index 0000000..c17eb01 --- /dev/null +++ b/out/new_established.dsfa.dot @@ -0,0 +1,10 @@ +digraph new_established.dsfa{ + rankdir=LR; +0[label=0] +XX0 [color=white, label=""]1[label=1,peripheries=2] +XX0 -> 0 +0 -> 1 [label="(and (= event_type 1) (= flow_state 13))"] +0 -> 0 [label="(not (and (= event_type 1) (= flow_state 13)))"] +1 -> 1 [label="(and (= event_type 1) (= flow_state 13))"] +1 -> 0 [label="(not (and (= event_type 1) (= flow_state 13)))"] +} \ No newline at end of file diff --git a/out/new_established.sfa.dot b/out/new_established.sfa.dot new file mode 100644 index 0000000..d00d2c2 --- /dev/null +++ b/out/new_established.sfa.dot @@ -0,0 +1,14 @@ +digraph new_established.sfa{ + rankdir=LR; +0[label=0] +1[label=1] +2[label=2] +XX2 [color=white, label=""]3[label=3] +4[label=4,peripheries=2] +XX2 -> 2 +0 -> 1 [label="true"] +1 -> 2 [label="ε"] +2 -> 3 [label="ε"] +2 -> 0 [label="ε"] +3 -> 4 [label="(and (= event_type 1) (= flow_state 13))"] +} \ No newline at end of file diff --git a/out/new_established.sm.g b/out/new_established.sm.g new file mode 100644 index 0000000..6a1ac7a --- /dev/null +++ b/out/new_established.sm.g @@ -0,0 +1,12 @@ +(and (= event_type 1) (= flow_state 13)) +0 +1 +(and (= event_type 1) (= flow_state 13)) +srcIp,dstIp,srcL4Port,dstL4Port,transport_protocol + + +0 +false;0;1;(and (= event_type 1) (= flow_state 13)) +true;0;0;(not (and (= event_type 1) (= flow_state 13))) +false;1;1;(and (= event_type 1) (= flow_state 13)) +true;1;0;(not (and (= event_type 1) (= flow_state 13))) diff --git a/out/packetformat.json b/out/packetformat.json new file mode 100644 index 0000000..5c1d6d1 --- /dev/null +++ b/out/packetformat.json @@ -0,0 +1,31 @@ +{ + "fields": [ + {"time" : 4}, + {"event_type" : 1}, + {"transport_protocol" : 1}, + {"flow_state" : 1}, + {"srcIp" : 4}, + {"dstIp" : 4}, + {"srcL4Port": 2}, + {"dstL4Port" : 2}, + {"location" : 1} + ], + "constants" : { + "UNKNOWN" : 0, + "NEW" : 1, + "UPDATE" : 2, + "DESTROY" : 3, + "BLOCK" : 4, + "ALLOW" : 5, + + "SYN_SENT" : 11, + "SYN_RECV" : 12, + "ESTABLISHED" : 13, + "FIN_WAIT" : 14, + "CLOSE_WAIT" : 15, + "LAST_ACK" : 16, + "TIME_WAIT" : 17, + "CLOSED" : 18, + "LISTEN" : 19 + } +} \ No newline at end of file diff --git a/parse-config.sh b/parse-config.sh new file mode 100644 index 0000000..f6d3816 --- /dev/null +++ b/parse-config.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +set -e + +if [ -z "$1" ]; then + echo "Defaulting to SLB..." + SYSTEM=SLB +else + echo "Parsing $1 invariants..." + SYSTEM=$1 +fi + +rm -f out/* +cd generateSFA +mvn clean install + +FORMAT=../config/${SYSTEM}/packetformat.json +FILES=../config/${SYSTEM}/*.invar + +for f in ${FILES}; do + echo "Processing $f" + mvn exec:java -Dexec.args="--packet_format ${FORMAT} --invar_file $f" +done + +cp ../config/${SYSTEM}/packetformat.json ../out/ + diff --git a/runme/runFirewall.sh b/runme/runFirewall.sh new file mode 100644 index 0000000..20d40e8 --- /dev/null +++ b/runme/runFirewall.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +cd $HOME/MBVerifier/firewall + +sudo conntrack -E conntrack -o timestamp | python3 firewallTracker.py $1 & + +cd $HOME/MBVerifier/C++Verifier +./build/main.out --filesOrKafka kafka --KafkaAddress 10.10.1.10:9092 --numberOfChannels 4 --inputType socket & + +python3 measureCpuMem.py $1 & + +echo "global started" + +sleep 10m +pkill -P $$ + +echo "global ended, terminating programs" diff --git a/runme/runGlobal.sh b/runme/runGlobal.sh new file mode 100644 index 0000000..74a7d77 --- /dev/null +++ b/runme/runGlobal.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +cd +cd kafka_2.12-2.5.0/ +./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties +./bin/kafka-server-start.sh -daemon config/server.properties + +sleep 10 + +cd $HOME/MBVerifier +$HOME/flink-1.9.3/bin/flink run verification/target/verification-0.1.jar --config_dir out/ --out_path out/ --mode GLOBAL_KAFKA --broker_address 10.10.1.10:9092 --channel_per_invariant 1 & + +cd $HOME/MBVerifier/firewall +python3 measureCpuMem.py g & + +echo "global started" + +sleep 10m +pkill -P $$ + + + +cd + +cd kafka_2.12-2.5.0/ +./bin/kafka-server-stop.sh +./bin/zookeeper-server-stop.sh + +echo "global ended" diff --git a/runme/runme.sh b/runme/runme.sh new file mode 100644 index 0000000..a2ea993 --- /dev/null +++ b/runme/runme.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +if [ -z "${BASH_VERSINFO}" ] || [ -z "${BASH_VERSINFO[0]}" ] || [ ${BASH_VERSINFO[0]} -lt 4 ] +then + echo "This script requires Bash version >= 4" + exit 1 +fi + +mapfile -t myArray < servers.txt + +# printf '%s\n' "${myArray[@]}" + +NUMSERVERS=${#myArray[@]} + + +if [ $NUMSERVERS -lt 16 ]; then + echo "Not enough servers" + exit 1 +fi + +ssh ${myArray[12]} "nohup ./MBVerifier/runme/runGlobal.sh" + +sleep 10 + +for i in 4 5 6 7 +do + ssh ${myArray[$i]} "nohup ./MBVerifier/runme/runFirewall.sh $(($i-3)) > /dev/null 2> /dev/null &" +done + +for i in 0 1 2 3 +do + ssh ${myArray[$i]} "cd traffic; sudo nohup ./start_background.sh $i 8 traffic_5e9_ /dev/null 2>&1 &" +done + +for i in 8 9 10 11 +do + ssh ${myArray[$i]} "cd traffic; sudo nohup ./start_background.sh $(($i-4)) 8 traffic_5e9_ /dev/null 2>&1 &" +done + +sleep 5m + +for i in 4 5 6 7 +do + ssh ${myArray[$i]} "sudo iptables -A FORWARD -s 10.10.4.0/24 -d 10.10.1.0/24 -m conntrack --ctstate NEW -j ACCEPT" +done + +sleep 5m + +for i in 0 1 2 3 +do + ssh ${myArray[$i]} "sudo killall socat; sudo killall start_background; sudo killall python" +done + +for i in 8 9 10 11 +do + ssh ${myArray[$i]} "sudo killall socat; sudo killall start_background; sudo killall python" +done + +for i in 4 5 6 7 +do + ssh ${myArray[$i]} "sudo killall runFirewall; sudo killall start_background && sudo killall python" +done + +scp ${myArray[12]}:./MBVerifier/out/*.txt . + + diff --git a/traffic/TimeEvent.py b/traffic/TimeEvent.py new file mode 100644 index 0000000..9db2a55 --- /dev/null +++ b/traffic/TimeEvent.py @@ -0,0 +1,65 @@ +class TimeEvent: + src = -1 + dst = -1 + events = [] + prec = 0.000000001 + inst_events = [] + + def __init__(self, text, prec_in_second=0.000000001): + items = text.split(": ") + self.src = int(items[0].split(", ")[0][1:]) + self.dst = int(items[0].split(", ")[1][:-1]) + self.events = map(lambda t: t.split(" "), items[1].split("; ")) + self.round(prec_in_second) + + def toString(self): + text = "<%s, %s>: " % (self.src, self.dst) + event_text = "; ".join(map(lambda t: str(t[0]*self.prec)+" "+str(t[1]), self.inst_events)) + return text+event_text + + def round(self, prec_in_second): + self.inst_events = [] + self.prec = prec_in_second + X = 1/self.prec + # round + tmp_events = map(lambda t: [int(float(t[0])*X), int(t[1])], self.events) + # merge + cur_event = tmp_events[0] + for i in range(1, len(tmp_events)): + if cur_event[0] == tmp_events[i][0]: + cur_event[1] += tmp_events[i][1] + else: + self.inst_events.append(cur_event) + cur_event = tmp_events[i] + self.inst_events.append(cur_event) + + def getTotalSize(self): + return sum([t[1] for t in self.inst_events]) + + def merge(self, other): + l1 = self.inst_events + l2 = other.inst_events + p1 = 0 + p2 = 0 + while p1 < len(l1) and p2 < len(l2): + if l1[p1][0] == l2[p2][0]: + l1[p1][1] += l2[p2][1] + p1 += 1 + p2 += 1 + elif l1[p1][0] < l2[p2][0]: + p1 += 1 + else: + l1.insert(p1, l2[p2]) + p1 += 1 + p2 += 1 + if p2 < len(l2): + while p2 < len(l2): + l1.append(l2[p2]) + p2 += 1 + +def from_file(fname, prec_in_second): + time_events_list = [] + with open(fname, "r") as tf: + for l in tf: + time_events_list.append(TimeEvent(l.strip(), prec_in_second)) + return time_events_list diff --git a/traffic/start_background.sh b/traffic/start_background.sh new file mode 100644 index 0000000..bbe7f95 --- /dev/null +++ b/traffic/start_background.sh @@ -0,0 +1,15 @@ +#! /bin/bash + +if [[ $# -ne 3 ]]; then + echo "Usage: sudo ./start_background.sh " + exit 1 +fi + +socat - TCP-LISTEN:5058,fork &> /dev/null & + +sleep 5 + +cd $HOME/traffic +python time_walking.py $1 $2 $3 & + +wait diff --git a/traffic/time_walking.py b/traffic/time_walking.py new file mode 100644 index 0000000..c620c9f --- /dev/null +++ b/traffic/time_walking.py @@ -0,0 +1,52 @@ +import sys +import os +import subprocess +import time +import socket +from TimeEvent import TimeEvent +import json + +def read_time_data(fname, prec_in_second): + time_events_list = [] + with open(fname, "r") as tf: + for l in tf: + time_events_list.append(TimeEvent(l.strip(), prec_in_second)) + return time_events_list + +def send_traffic(dst, f_size): + subprocess.Popen("yes | head -n %s | netcat %s %s" % (f_size, dst, 5058), shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + +if __name__ == "__main__": + + if len(sys.argv) < 4: + print("Don't forget worker [0-num_workers] [total_servers] [file_initial]!") + exit() + + prec_in_second = 0.00001 + X = 1/prec_in_second + num_servers = int(sys.argv[2]) + worker = sys.argv[1] + file_initial = sys.argv[3] + sys.stderr.write("loading data...\n") + events_list = read_time_data(file_initial + worker + '.txt', prec_in_second) + sys.stderr.write("starting the traffic...\n") + myhostname = socket.gethostname() + begin = time.time() + indices = [0] * (num_servers-1) # remove itself + max_time = 1900 + + with open('servers.json') as f: + servers_dict = json.load(f) + + while time.time() - begin < max_time: + + cur_time = int((time.time() - begin) * X) + + for s in range(0, num_servers-1): + if indices[s] < len(events_list[s].inst_events): + if (events_list[s].inst_events[indices[s]][0] <= cur_time): + flow_length = events_list[s].inst_events[indices[s]][1] + dst = servers_dict[str(events_list[s].dst+1)] + send_traffic(dst, flow_length) + print("%s is sending %s bytes to %s at %s" % (myhostname, flow_length, dst, cur_time)) + indices[s] = indices[s] + 1 diff --git a/traffic/traffic_5e9_0.txt b/traffic/traffic_5e9_0.txt new file mode 100644 index 0000000..3e65a58 --- /dev/null +++ b/traffic/traffic_5e9_0.txt @@ -0,0 +1,7 @@ +<0, 1>: 0.03539 41901; 0.6955 69244; 1.26083 30658; 2.00844 133826; 2.03018 5364; 2.23071 6758772; 2.37416 470600; 2.40333 22237; 2.67825 41270; 2.87702 3908; 2.88483 980141; 2.94842 2065637; 3.16792 930487; 3.202 31193; 3.54436 54614; 3.54829 837725; 3.62458 36835; 3.64665 18529; 3.85629 6272; 3.86043 755; 3.89666 461180; 3.98429 58126; 3.99235 138178; 4.05717 955547; 4.50418 49239; 4.54935 169745; 4.55895 825247; 4.63333 1912836; 4.72839 71578; 5.01544 934001; 5.03047 3470284; 5.23309 472; 5.34332 40007; 5.56581 197075; 5.78979 46114; 6.00565 394495; 6.01344 7130064; 6.02703 406188; 6.02766 10543; 6.13919 28068; 6.19064 654484; 6.50783 814969; 6.54352 416904; 6.62009 439685; 6.69172 9065972; 6.74385 67793; 7.60112 1240027; 7.71648 51085; 7.78359 14873; 8.03813 532709; 8.09341 3710; 8.23533 28100; 8.46881 283034; 9.1377 2627; 9.33762 29714; 9.43438 43578; 9.66094 2216427; 9.82531 54515; 10.6822 6636; 10.71071 141184; 10.84961 208477; 10.90174 36909; 10.94432 17208; 11.27037 9924563; 11.47918 9831; 11.77829 3926447; 12.08421 8433; 12.13805 20112878; 12.40886 1679006; 13.47983 71347; 13.81688 4164; 13.87166 117899; 14.39023 37514; 14.48623 69017; 14.49281 8387376; 14.86923 32800; 15.55354 21631656; 15.6315 30688; 16.0022 3585415; 16.0858 14887184; 16.3803 7022367; 16.50097 2933231; 16.60484 21654; 16.61733 1586808; 16.65318 2640; 17.09471 50333; 17.09844 14490; 17.12559 258; 17.22313 125467; 17.27877 20662; 17.82188 24264; 17.87838 16390193; 17.89641 35724; 18.10711 11387; 18.22238 9390; 18.44782 47019; 18.4549 835298; 18.48337 388652; 18.56838 355425; 18.57195 5717005; 18.9996 1025534; 19.01684 1429733; 19.13157 21084; 19.18007 1422509; 19.36566 23361; 19.43842 31804; 19.66999 2001484; 19.7334 6828586; 19.91459 15636; 19.93351 72085; 20.06679 1325594; 20.4592 143463; 20.48144 4075; 20.51242 60929; 20.52436 6187108; 20.65995 30333; 20.66595 39383; 20.68355 7609; 20.92322 21364; 20.92915 3718308; 21.26817 24357; 21.31052 1792912; 21.63548 14525; 22.34229 1354043; 22.5917 53664; 22.62466 835490; 22.7654 225192; 22.80909 45329; 22.86107 1166289; 22.95452 21144; 23.03209 75512; 23.04762 1621424; 23.16889 13584555; 23.19542 3321; 23.33562 51741; 23.41047 799962; 23.47671 747609; 23.57649 9959; 23.77603 3499; 23.92695 8245878; 24.00372 23700; 24.35168 4462; 24.40721 295; 24.46366 2253; 24.50599 2299; 25.01292 4574996; 25.10156 1687794; 25.42551 28652371; 25.66364 1064900; 25.86909 420267; 26.30596 612475; 26.39996 4160779; 26.78699 11475; 26.85644 79760; 26.9615 5961; 27.11201 3827; 27.75686 7194698; 27.79061 1953398; 28.41122 46087; 28.67673 41275; 28.93734 4690418; 29.4843 47156; 29.84314 1701989; 29.92411 20851; 29.93473 25087; 30.26549 4112729; 30.61745 64891; 30.63247 4212876; 30.84367 1923489; 31.14134 3226703; 31.26394 70623; 31.4464 1073741; 31.80131 102032; 31.94557 17912237; 31.99194 350849; 32.29581 28785; 32.52317 40765; 32.62987 35791; 32.71002 2257; 32.76116 483267; 32.86365 1590284; 32.87322 2273959; 32.88505 5533; 33.27304 65857; 33.38511 51998; 33.6262 33975; 33.89726 1613854; 34.10899 8628; 34.38505 42394; 34.58136 54013; 34.67845 4057004; 34.71153 148278; 35.07924 43980; 35.13573 7282658; 35.14777 55468; 35.21307 14560; 35.46699 76836; 35.57631 1181; 35.60805 61105; 35.64301 8728; 35.69137 24599; 35.80679 55623; 35.98456 1320469; 36.17862 5084; 36.20409 745002; 36.26837 56904; 36.51084 3010701; 36.69421 2680; 36.86257 1964063; 36.93696 8550707; 37.02148 770; 37.06104 534; 37.49623 9536367; 37.95722 141121; 37.99827 884400; 38.01135 2457947; 38.42723 36284; 38.68103 40368; 38.86312 695; 38.89603 574061; 39.04688 31977; 39.06697 67902; 39.16761 5671; 39.70048 1643; 39.73158 17333308; 39.8656 2170; 40.30301 69192; 40.50348 4023527; 41.16861 51153; 41.45591 11768338; 41.51335 74409; 41.53576 3415436; 41.54069 16410; 41.60884 179000; 41.69011 1164783; 41.92208 25913; 41.92437 6440; 41.92737 1768792; 41.95382 1829392; 41.99409 7210983; 42.02963 25554; 42.47687 3322; 42.48216 8528260; 42.50837 71863; 42.56539 16167; 42.76234 3915; 42.80115 12532954; 43.50245 61552; 43.55755 12783; 43.63723 184786; 43.90191 45698; 43.93989 114399; 44.00159 3429058; 44.13422 20138; 44.17787 29425; 44.24063 57412; 44.73113 1811178; 44.86566 4327401; 44.91676 45831; 44.94049 24892; 44.96972 6962; 44.9772 479519; 45.37784 5424; 45.43698 1136586; 45.47835 4921619; 45.78183 2056351; 45.94977 1488981; 46.28644 44801; 46.79935 5800764; 46.90666 76256; 47.02909 1682223; 47.11088 14148; 47.25999 186002; 47.42391 61615; 47.58778 31867; 47.70933 28557; 48.06309 23079; 48.06578 44886; 48.25484 18485562; 48.52679 8884922; 48.58853 3759487; 48.72537 5740; 48.78624 99282; 49.23262 63852; 49.31631 71481; 49.53419 77825; 49.68445 8293; 49.78237 4118308; 49.87376 156156; 49.96901 192322; 50.1527 9031150; 50.19635 792381; 50.24412 1681; 50.55724 280; 50.88111 1101657; 50.96233 80645; 51.0595 9907700; 51.38101 55781; 51.53602 7378482; 51.64505 267420; 51.70745 6188; 51.82359 3285; 51.85832 888503; 51.99739 740998; 52.48517 4718; 53.11058 85348; 53.34041 17762167; 53.383 127359; 53.70662 1880219; 53.74992 165277; 53.86946 585464; 54.01455 55468; 54.14731 25835584; 54.2419 1972358; 54.29626 6855; 54.55503 12820; 54.68936 35747; 54.82987 3549; 54.97205 44844; 55.05401 143687; 55.05726 876327; 55.10029 9595194; 55.46006 7001; 55.57152 15608630; 55.70122 74477; 55.78801 19106; 55.79466 2299165; 55.83869 2566930; 56.07818 44963; 56.16127 34685; 56.20551 172308; 56.43715 128734; 56.55711 32254; 56.7822 4245624; 56.81972 8881870; 57.00052 11423; 57.23254 6027; 57.27356 6875746; 57.42759 561515; 57.58495 17901; 57.64685 1423247; 57.86726 6193395; 57.98802 1489306; 58.17726 18675056; 58.24723 1652016; 58.60893 7807414; 58.8684 1278085; 59.04341 1705487; 59.11402 9918874; 59.36792 4310023; 59.48628 14452; 59.80013 72823; 59.91367 24642042; 60.09206 12291; 60.34567 67387; 60.38289 11079; 60.42818 27786; 60.4987 198790; 60.50117 6678; 61.16633 9627219; 61.20127 7416530; 61.22086 65739; 61.40133 246488; 61.75699 33059; 61.95136 22209; 62.1474 20846; 62.22621 1632246; 62.65583 36987; 63.05791 9497; 63.19266 31782; 63.29623 35434; 63.4115 3007064; 63.56375 10277; 63.89263 631495; 63.90054 4246052; 64.17761 26241; 64.31839 23694; 64.37258 219515; 64.42821 4626986; 64.49297 6946198; 64.56521 219859; 64.66519 124673; 64.8087 84799; 64.84947 3547; 65.12362 21709; 65.52952 8433; 65.78655 21391; 65.85872 4571889; 66.03804 26808; 66.27504 76185; 66.39132 2990487; 66.50662 7852384; 66.50714 294333; 66.69808 1221671; 66.75307 21392272; 66.79174 3989867; 67.02654 888005; 67.57362 330352; 67.5892 3411032; 67.85264 36616; 68.01131 7086151; 68.17683 4149; 68.25184 393689; 68.25602 909959; 68.25761 71211; 68.38542 188960; 68.46745 34276; 68.8003 30796; 68.80759 50444; 68.98192 105906; 69.17988 5432; 69.18037 5337; 69.62411 317; 69.71835 9938094; 70.09516 69729; 70.41115 428331; 70.77116 5936406; 70.79276 3734; 70.84365 900511; 70.84618 52957; 71.62198 68058; 71.62452 55956; 71.66038 124341; 71.68662 6328984; 71.82171 72657; 71.90373 3575; 72.19234 8662; 72.28053 1764034; 72.28158 1361042; 72.42499 484514; 73.03882 39892; 73.17101 4552656; 73.18248 1982200; 73.18813 2496338; 73.9639 54158; 74.00646 3659318; 74.16671 18141; 74.40339 1897876; 74.43885 1044908; 74.57727 58613; 74.68541 186472; 74.81169 38395; 74.99037 27784418; 75.6977 369817; 75.81931 15284; 75.8471 12108; 75.97513 440; 76.00924 618960; 76.15497 1271778; 76.15628 1668283; 76.32499 4371669; 76.75011 45137; 76.76389 11723; 76.77946 4727576; 76.8294 4871949; 76.96072 1747079; 77.22933 21303; 77.4686 2958151; 77.53276 1146592; 78.138 32144; 78.18814 8844416; 78.64506 1239659; 78.75186 5769; 78.99968 64571; 79.25992 1463636; 79.44946 6472; 79.67082 1944399; 79.81537 939262; 79.84924 136620; 80.01377 1360417; 80.13024 35619; 80.52942 11743493; 81.06132 7866; 81.17174 71535; 81.34158 7676; 81.36291 550504; 81.45914 36782; 81.50753 992621; 81.70713 78866; 81.84701 11172; 81.84823 1729272; 82.22907 12968; 82.26686 32160; 82.47098 4075231; 83.09976 1171319; 83.22701 548361; 83.27447 5554919; 83.5826 43380; 83.60306 9442; 83.81236 9598788; 84.91481 42; 85.30322 1331742; 85.69967 19538770; 85.73117 5064; 85.76592 182236; 85.9353 76445; 86.09547 10769; 86.17416 1919; 86.43754 774343; 86.61072 180609; 86.74896 1350364; 86.76641 21750406; 86.96563 162586; 87.02055 4727; 87.06922 3729628; 87.15897 3094640; 87.21472 68728; 87.2526 49650; 87.46391 53204; 87.56031 756390; 87.98128 1887248; 87.98761 26376737; 88.3762 63296; 88.56857 23902; 88.74501 66682; 88.8011 72811; 89.06531 148049; 89.28779 45555; 89.45635 4011190; 89.59506 156720; 89.6497 22520; 89.71744 67290; 90.4982 277279; 90.56815 4524; 90.93455 4170531; 91.2412 28484; 91.44481 4960676; 91.53536 5516673; 91.69708 16842; 91.86507 7645693; 92.36744 73873; 92.45463 3886592; 92.73644 8138; 92.97 1791613; 93.35148 1877726; 93.51711 78879; 93.88418 107212; 94.11045 2827051; 94.11435 6617; 94.28074 10531747; 94.68966 18916; 94.82991 16870; 94.83414 2356066; 94.83905 1890542; 94.85893 79559; 94.93661 7769190; 94.96275 9547; 95.41767 360840; 95.73688 2465; 95.85998 4229715; 96.03075 3100376; 96.31793 9685568; 96.37508 1101166; 96.63153 6646; 96.78868 54879; 97.03952 959441; 97.27247 6336; 97.56063 5668968; 97.65886 3860; 98.06474 862805; 98.26658 7411637; 98.38316 1276742; 98.49414 8364593; 98.60216 629208; 99.16086 28893; 99.2557 9423134; 99.41072 76721; 99.96339 8653; 100.11075 8080; 100.51309 1370245; 100.51945 2020837; 100.69989 8846081; 100.9007 1760111; 101.06452 942131; 101.16164 8166; 101.58904 23232; 101.61846 3185; 101.73025 340407; 101.78223 6586; 101.89236 14896; 102.03116 9849035; 102.48307 1694; 102.67358 10566; 102.74472 24469; 102.88811 7458181; 103.21785 73475; 103.24141 9322; 103.29705 20356; 103.43327 108121; 103.54098 2418; 103.79215 1961406; 103.89333 21538; 103.89559 4070803; 103.94442 3417; 103.98666 67746; 104.00026 62343; 104.09885 4482113; 104.17145 1633444; 104.24067 3503; 104.40795 4015258; 105.13553 29295; 105.36149 2816949; 105.43675 22795; 105.47824 412452; 105.62877 16973427; 106.08404 7391; 106.18097 4631759; 106.34333 3124459; 106.47385 41897; 106.74043 1729050; 106.9126 59633; 107.00772 28765; 107.05858 2285; 107.0926 7373785; 107.14486 397392; 107.28438 44142; 107.38456 162204; 107.74778 7612339; 108.00295 6658; 108.19126 66604; 108.51328 174663; 108.95496 8624; 108.96362 69716; 108.97443 6569; 109.22175 55223; 109.27235 79795; 109.7163 10318; 109.82178 64803; 110.03741 14674; 110.3588 686540; 110.50099 203324; 111.10472 63551; 111.15536 4106885; 111.2895 163612; 111.64819 42998; 111.64963 19317736; 112.47813 165; 112.54786 581203; 112.57457 166976; 112.69389 849287; 112.7703 40535; 112.99742 53041; 113.10589 6872; 113.15843 620300; 113.31265 4544918; 113.33914 1215741; 113.46273 32241; 113.5559 2856550; 113.64591 1615639; 113.78574 7157485; 113.8329 3294096; 114.17172 400728; 114.84109 38207; 115.02726 62918; 115.10103 460802; 115.15344 3448204; 115.17561 4254659; 115.2682 25325; 115.48593 14685192; 116.05045 13310; 116.12278 18680; 116.33718 321901; 116.45704 4213279; 116.64773 1633144; 116.74154 33216; 116.82829 24304; 116.94781 29986; 117.011 810251; 117.12109 28323; 117.31224 2070; 117.41936 15232; 117.52313 52518; 117.58265 3559388; 117.96246 5642; 118.06712 25784842; 118.14122 34331; 118.22841 84508; 118.40075 1831522; 118.78035 39459; 119.00998 12235; 119.0513 28255; 119.17399 1242597; 119.24357 75684; 119.74346 4613606; 119.74879 20584; 119.793 57515; 119.92226 415256; 120.14487 6432; 120.17986 15953; 120.54944 1766137; 120.92641 7339; 120.95087 139982; 121.11296 1496925; 121.24794 593; 121.35848 21472959; 121.85262 4873; 121.95201 3526036; 121.98934 68563; 122.19806 25692; 122.20698 724385; 122.47815 39713; 123.12193 70297; 123.19412 2315; 123.55664 77897; 123.59232 777085; 123.6276 343319; 123.81146 65283; 124.70957 4285842; 124.87321 232077; 124.99004 420610; 125.08411 2619194; 125.24275 1014231; 125.72332 43424; 125.80822 9285621; 126.05568 30481; 126.16646 12560; 126.68403 5275068; 126.70531 378503; 126.88916 24231; 126.99386 122285; 127.18058 1898155; 127.32205 768; 127.5533 6372233; 127.69815 6475774; 127.7294 4752647; 127.83093 1422027; 127.89968 3129955; 128.30975 7836; 128.47505 15264; 128.54925 15743; 128.55231 9983049; 128.60389 151034; 128.97496 830661; 129.00957 1408303; 129.0154 1887161; 129.1325 651953; 129.74421 3252773; 130.06729 880300; 130.09799 1228206; 130.22989 178183; 130.43763 23877; 130.84254 920371; 131.02859 75956; 131.18139 1452147; 131.19488 17262; 131.19785 733083; 131.44911 625210; 131.47515 2114726; 131.51845 32163; 131.59949 29140; 131.71607 1886115; 131.7812 1866; 132.34452 1165897; 132.54727 3507; 132.6238 688; 132.8959 158818; 133.36638 1130554; 133.45362 20374; 134.36808 22319; 134.50258 848993; 135.46308 5572; 135.5875 2968199; 135.96738 2266531; 136.20015 61065; 136.74275 1729323; 137.09694 10987; 137.22089 7601304; 137.35693 613258; 137.83485 78938; 138.39898 8005; 138.93235 140636; 139.5037 22118202; 139.53138 21115523; 139.6031 50149; 139.87321 8341995; 139.89529 1761999; 140.02347 532356; 140.2843 1877292; 140.31982 60098; 140.51035 5386497; 140.66914 76242; 140.72183 1982684; 140.96451 71936; 141.06274 23540; 141.06399 29850; 141.17156 2196; 141.18248 18456; 141.28696 30825; 141.56365 297949; 141.65049 860664; 141.89631 21570; 141.93322 29198783; 141.97616 70522; 142.35123 27032426; 142.39225 1000609; 142.5386 1790350; 142.54249 11969760; 142.77419 4648032; 142.79754 1242245; 142.97635 22451; 143.08216 16098688; 143.34509 4344935; 143.51001 9715; 143.61897 1905491; 143.68658 19210; 143.86142 20907; 143.90312 299292; 144.1928 1944272; 144.3908 1774; 144.7566 3188312; 144.83357 427565; 145.15353 595294; 145.23172 8998; 145.38042 653; 145.48086 1850772; 145.57575 1896695; 145.65316 54476; 146.06807 13684; 146.26294 666042; 146.47715 3952580; 146.58336 369; 146.63125 13661647; 146.65473 54069; 146.96487 9842964; 146.97229 5634; 146.98061 1527380; 147.24603 122510; 147.40824 1701243; 147.44081 52970; 147.59474 2439932; 147.65133 1749; 147.88804 5073; 148.02793 26199; 148.07134 1580790; 148.15267 29749; 148.47361 172815; 148.54031 2641; 148.68805 32061; 148.69186 3464; 148.76353 4936183; 148.88512 21798; 149.01312 165850; 149.04102 17540; 149.08284 4682874; 149.10109 1574374; 149.31135 2351585; 149.59759 5920; 149.67002 5121080; 149.68331 5134; 150.00037 1723083; 150.22819 65553; 150.23542 5002830; 150.48999 5294943; 150.909 9979979; 151.0802 24150352; 151.30737 21117; 151.31311 69083; 151.39607 5898263; 151.43799 128759; 151.70979 148670; 151.74552 4181; 151.90351 383497; 152.56761 5285; 152.59345 1909831; 152.74431 1281029; 152.98019 3514; 153.25571 1517213; 153.59899 83336; 153.87683 43845; 153.92351 1597928; 153.93797 196536; 154.05093 32602; 154.11982 2410844; 154.14546 1538136; 154.42812 12300; 154.94498 22117; 155.11144 29675; 155.2075 26774; 155.29429 28076; 155.48902 55588; 155.61195 10861; 155.65354 31172; 155.98157 27322; 156.18556 3463778; 156.22494 1829113; 156.26814 7569; 156.37597 5075; 156.59591 6046948; 156.74037 355; 156.77622 120706; 156.9945 27777; 157.15114 73523; 157.26338 6402529; 157.30844 42433; 157.50348 33879; 157.59448 194500; 157.83102 36180; 158.14728 74634; 158.27053 69968; 158.47588 24096; 158.57589 103325; 158.91455 21548; 158.96064 3761312; 158.99522 26619325; 159.14834 2694105; 159.25093 43888; 159.53654 61809; 159.98018 65161; 160.2978 2574442; 160.40194 12841; 160.4605 1842863; 160.60838 24428; 160.75171 693478; 160.8157 4123975; 161.09033 51550; 161.27393 4507; 162.17695 35322; 162.27454 527891; 162.33063 8579903; 162.5572 90788; 162.87697 1549611; 163.21372 2977692; 163.25849 27866; 163.34538 113865; 163.61208 9500; 163.64559 11063; 164.27953 5248; 164.53598 1404318; 165.08303 21190; 165.1649 42050; 165.34289 69097; 165.42879 10320; 165.54413 42034; 165.65583 3460; 165.66603 1566073; 165.82948 78103; 165.87572 1697307; 165.98427 4899; 166.34473 1962790; 166.63169 697; 166.75166 1515919; 166.86748 1832683; 166.96973 1019738; 167.13599 1834817; 167.52903 1930869; 167.73789 9290489; 167.94463 27235; 167.95504 32755; 168.33507 3796616; 168.55043 1878711; 168.66254 10594; 168.67076 2951001; 168.77665 68593; 169.10311 22458336; 169.46546 78714; 169.6903 22727; 169.85549 3332201; 169.92849 1761; 169.99032 1724358; 170.05339 24770; 170.18313 182462; 170.6764 3030; 170.71172 601935; 170.73539 1376241; 170.83703 152458; 170.90262 1748303; 171.22164 1693; 171.76883 31443; 171.84709 8675; 171.92093 16942; 171.97194 60076; 172.3951 439135; 172.86674 403817; 173.03636 687309; 173.27526 2004135; 173.35741 640059; 173.78179 79095; 173.9158 1073843; 173.94707 4027183; 174.59919 166861; 174.80311 740302; 174.82803 4667; 175.10732 43285; 175.12247 6026153; 175.67174 20347158; 176.26336 11612; 176.31775 8696867; 177.00071 47883; 177.20021 47680; 177.24215 2396954; 177.37583 62672; 177.48259 10; 177.69376 43204; 177.78116 127768; 177.85464 1871557; 177.95042 1174954; 178.00975 818650; 178.21749 815121; 178.38056 77581; 178.61768 24512; 178.84618 36460; 178.90365 631922; 179.21737 64948; 179.42956 2999; 179.6949 4640322; 179.69512 29166; 179.69798 4176; 179.97687 21720; 179.99901 31788; 180.03411 28559; 180.28953 1520474; 180.61691 2861; 180.75619 14499; 180.94127 46919; 181.26957 747220; 181.40117 19988; 181.49044 8375; 181.96233 8633038; 181.97592 176415; 182.2601 26457885; 182.42451 7965055; 182.70088 4290375; 182.74556 58390; 183.40416 16505602; 184.27018 47120; 184.30125 1823662; 184.58994 1120194; 184.74995 1895709; 184.78676 64304; 184.79726 78107; 185.19466 93543; 185.68726 139222; 185.72091 1574923; 186.06091 158116; 186.12473 267; 186.5986 39883; 186.96245 62592; 186.9743 14983984; 187.05896 186851; 187.09771 19979910; 187.17486 26062; 187.18307 583570; 187.61766 1853; 187.85846 915435; 187.92338 417825; 188.0523 6944; 188.27523 25338; 188.28201 1552916; 188.59443 1617245; 188.63588 51961; 188.64574 886647; 188.90946 2476; 189.18808 20009427; 189.24191 66545; 189.32406 8929920; 189.52467 15625; 189.61308 5982; 189.68075 55125; 189.69255 27620; 190.1834 1261336; 190.25819 7807; 190.28451 2638806; 190.70119 66433; 190.94545 3110176; 191.10897 3630788; 191.12302 7785; 191.48412 1892390; 191.51482 2802962; 191.63534 1874420; 191.86948 24125; 191.89713 52130; 191.96122 22380; 192.31482 826738; 192.72863 75089; 192.99456 581793; 193.08817 29653; 193.22256 40286; 193.28306 199354; 193.29201 62022; 193.3556 1036279; 193.84737 485029; 193.86702 180551; 194.29194 4981; 194.61086 38664; 194.65957 4688087; 194.75667 8357; 194.8833 611922; 195.22778 65607; 195.51269 106345; 195.53919 27482; 195.73945 43397; 195.77826 106153; 195.77899 1149834; 196.12085 43114; 196.25455 3709446; 196.65161 1883139; 196.80636 2590135; 196.89788 83655; 196.94459 21875; 197.03718 3964; 197.25464 7170036; 197.49934 4251; 197.66038 71731; 197.95718 1254; 197.99024 68361; 198.01421 178235; 198.18623 1626874; 198.33961 7507; 198.48978 8586884; 198.9454 4531942; 199.21985 3461; 199.29172 829614; 199.62079 6748; 199.64999 76843; 199.91755 40174; 199.98406 181903; 200.20111 5297417; 200.26367 831797; 200.26463 4310106; 200.33373 1723817; 200.56918 988991; 200.70142 12131; 200.91301 2160780; 200.94921 3621104; 201.06594 23790; 201.10499 16993; 201.32158 46424; 201.39773 57186; 201.69505 3055; 201.72565 13970; 201.86755 4652636; 202.26916 4368; 202.3997 46333; 202.55042 2254; 202.7421 6743; 202.78867 63954; 202.88909 80087; 202.93873 3190129; 203.28811 45086; 203.35208 62457; 203.35303 419049; 203.35744 79136; 203.59891 1705825; 203.6134 689622; 203.74752 5796608; 203.80172 109292; 203.9193 147106; 204.33419 29765; 204.45397 139740; 204.50848 37703; 204.80528 936850; 205.16407 1952039; 205.26407 13478; 205.50564 134454; 205.6683 71089; 205.83455 20346; 206.14236 317506; 206.3436 21557; 206.46653 117143; 206.55172 73821; 206.60232 1896; 206.66929 59908; 206.83745 1926064; 206.86174 6239216; 207.07695 76969; 207.1107 77534; 207.53487 26269; 207.72523 3388412; 207.78231 7430; 207.80242 75394; 207.90831 20004; 207.91072 2425651; 208.44309 2054; 209.17675 27194; 209.46537 1025909; 209.59548 516345; 209.64219 24749; 209.65149 4291; 209.76072 22925; 209.86365 77930; 210.36972 1719147; 210.36985 126340; 210.52822 83637; 210.61598 871665; 210.65493 534; 210.70393 1097320; 210.77131 4172; 210.95797 11427359; 211.06095 189991; 211.4115 28187; 211.4687 56208; 211.48546 3114236; 211.75072 9390; 211.84205 93046; 211.88324 11018; 212.05003 1336491; 212.06992 9751; 212.3372 74254; 212.62929 11843; 212.68714 9499; 213.0326 18060081; 213.03345 4571637; 213.14228 7661; 213.25044 16566; 213.40787 1796569; 213.53213 122; 213.58274 24487; 213.63296 48334; 213.94153 295226; 213.97661 42; 214.0082 32791; 214.07375 1164947; 214.10949 7322784; 214.25001 57822; 214.27663 2542; 214.33695 20319; 214.66105 4051964; 214.68182 1605694; 214.76941 20907; 214.78838 74284; 215.13689 1694621; 215.37164 96415; 215.37408 1970937; 215.54612 45144; 215.58076 74559; 215.73856 10407; 215.90886 21347; 216.17853 2827192; 216.22724 45482; 216.63804 23438; 217.22206 70138; 217.46589 22437; 217.5185 4288; 217.57101 35861; 217.87641 3347836; 218.81161 1900849; 219.12829 9347; 219.26866 257320; 219.70419 27062; 219.76302 20284; 219.89466 1813520; 220.27316 5548; 220.27569 72; 220.42568 135367; 220.54981 123894; 220.6926 68434; 220.83565 50960; 220.88622 59452; 220.95557 3742280; 221.10586 1616934; 221.34571 121484; 221.39678 10234; 221.71363 1194541; 221.84802 88669; 221.98827 4766312; 222.10321 2241628; 222.17704 22775; 222.34382 4669206; 222.48683 24092; 223.88643 65635; 223.92109 1541962; 224.19493 26931; 224.56172 26152; 224.63112 1843225; 224.72452 61298; 224.72606 3882588; 224.84509 2086635; 224.91585 28763; 225.1562 55560; 225.28733 32361; 225.40255 1358; 225.41064 6008167; 225.73599 56987; 226.56184 6900865; 226.85842 6885667; 226.96376 33867; 226.97867 2889569; 227.22234 7433; 227.23353 5999; 227.30717 7624694; 227.45654 7554882; 227.57171 596762; 227.67005 23258; 228.02793 47243; 228.21259 170806; 228.2513 737; 228.57097 1084545; 228.57852 25351; 228.6119 44345; 228.63686 21635; 228.81124 1727543; 228.81965 27206; 228.97003 43414; 229.24419 1769369; 229.41804 36539; 229.62962 46369; 229.6435 1611196; 229.74445 31386; 230.05747 18823; 230.09142 151650; 230.4039 4890049; 230.82104 4226465; 230.97203 45644; 231.58083 65403; 231.70254 3328709; 231.73636 1065083; 231.97622 136512; 232.30324 175870; 232.47501 30984; 232.59176 3212751; 232.65821 9250541; 233.20159 7022; 233.22012 6444160; 233.47989 6854; 233.76963 306293; 234.15124 47650; 234.42683 24978823; 234.93927 78775; 234.94333 62766; 234.96127 166689; 235.06598 41253; 235.17235 52281; 235.19664 695801; 235.24599 13828; 235.30377 1261478; 235.34624 47772; 235.51481 2958868; 235.8068 4322; 236.27514 59980; 236.41505 37445; 236.7474 8435781; 237.17551 9662; 237.27283 6858650; 237.27408 46180; 237.45474 1886734; 237.67739 582092; 237.96956 8107682; 238.20105 65148; 238.53835 71667; 238.70243 8691; 238.8809 1617030; 239.03845 66546; 239.1665 3142; 239.17818 40744; 239.34236 1345586; 239.50449 21324486; 239.52351 1356052; 239.66445 140526; 240.09035 9886; 240.41486 149272; 240.4422 18230; 240.70644 389506; 241.26797 158131; 241.3862 66484; 241.40954 48920; 241.88235 5958; 241.9308 2649770; 242.03101 8845474; 242.09921 24156263; 242.11543 11123; 242.92703 55195; 243.36005 4107717; 243.57166 533686; 243.83636 7260536; 244.5967 850761; 244.63644 20780; 245.12371 38866; 245.28742 37507; 245.3751 651; 245.42907 1140577; 245.52143 19474; 245.52828 45995; 245.61563 6118; 245.74928 42629; 245.88725 525973; 245.9022 8347645; 246.07982 21502; 246.14809 4675627; 246.27305 4381619; 246.56486 69285; 246.64379 69821; 246.7265 108772; 246.81216 523701; 247.37825 33766; 247.38373 4396445; 247.46002 41612; 247.48017 6025229; 247.99463 4285; 248.02721 43760; 248.36543 46050; 248.40728 796565; 248.66334 26369; 248.6774 78681; 248.78394 7686; 248.94328 1889054; 249.27773 1647736; 249.54498 1094475; 249.94778 1197; 250.09858 392308; 250.46091 164539; 250.49766 7815; 250.54004 987944; 250.81238 285827; 250.88699 1684353; 250.93087 45072; 251.52283 44827; 251.8202 8353; 252.03115 71811; 252.07692 179444; 252.07835 36499; 252.20626 79136; 252.39017 1364915; 252.56813 20395; 252.70588 879084; 252.94892 3125; 253.42766 4808139; 253.69382 8593; 253.84034 1578852; 254.02222 77901; 254.12523 975; 254.24954 21789; 254.82862 3151261; 255.00041 3460470; 255.27188 48065; 255.43022 113973; 255.73672 9546; 255.87625 49004; 256.16532 5815; 256.77886 59790; 257.19901 1205; 257.27047 29348; 257.27466 9969806; 257.31143 11233; 257.33834 71810; 257.76078 55070; 258.02093 29958249; 258.19647 1024530; 258.41042 1900394; 258.50205 75871; 258.51044 2400062; 258.74896 176447; 258.81219 6134; 258.91709 1380837; 259.04238 6684201; 259.06404 2742; 259.09104 29544; 259.40514 15835; 259.4115 1166; 259.58805 5016; 259.635 8708; 259.65861 65201; 259.7366 1423174; 259.97778 657868; 259.97994 8432186; 260.23065 45486; 260.23834 70324; 260.34764 347181; 260.58274 3621; 260.59067 38341; 260.8261 6363; 261.30917 9028624; 261.52554 9585; 261.56047 2436976; 261.61769 1585680; 261.67657 9918167; 262.02933 4426839; 262.09154 5839664; 262.11879 39396; 262.13903 75524; 262.62145 271237; 262.89862 16269; 262.96581 1226654; 263.07222 3752; 263.16981 173243; 263.24303 1017684; 263.9128 8739; 263.98785 3938077; 264.2498 27998; 264.28135 24641; 264.36955 48608; 264.43631 67751; 264.82917 22609; 264.85741 21218; 265.3656 4090369; 265.64223 190040; 265.74302 1927473; 265.80021 287945; 265.89728 3173433; 266.12152 853998; 266.44934 1202304; 266.45868 1437065; 266.47886 984198; 266.61382 3588172; 266.6569 71195; 266.87032 69308; 267.02395 2628882; 267.45731 4766775; 267.75106 75412; 268.02485 1331; 268.20368 873506; 268.33966 9031832; 268.37206 24172; 268.43814 1237939; 268.83639 1040; 268.92905 977951; 269.03965 3129; 269.3658 9861; 269.71736 55657; 269.80749 8671; 270.03024 995; 270.09129 17449; 270.38785 20385; 270.86958 9341; 270.88783 4039387; 270.97777 6514679; 270.98444 69933; 271.62352 17304546; 271.63744 1487451; 271.64023 4709; 271.89392 179785; 272.11413 7847154; 272.36959 68282; 272.37475 13832; 272.5066 102570; 272.63938 70882; 273.1077 75511; 273.30698 58875; 273.36559 8543454; 273.5786 12911; 273.61293 58079; 273.81222 7487; 273.81651 29022; 273.95244 769970; 273.97437 968723; 274.31114 5895907; 274.75726 36984; 274.90707 53574; 274.90893 4894782; 274.94989 4015; 275.23571 881427; 275.62676 559862; 275.64339 3340776; 275.97821 72117; 275.99842 4293; 276.3941 125036; 276.48162 34044; 276.78594 27172; 276.91039 58803; 276.92546 7576766; 277.00193 25881; 277.08927 4224627; 277.12693 31380; 277.15888 1246; 277.16081 567709; 277.17451 67714; 277.84009 6629; 278.09695 12081787; 278.18675 32903; 278.23467 66444; 278.38633 100779; 278.66582 4972167; 278.68116 7048; 278.76706 1925959; 278.94646 41456; 278.99362 2841; 279.01086 3384776; 279.13601 6177; 279.46258 10105848; 279.79356 12630905; 279.92727 59015; 280.09154 3075; 280.20063 46187; 280.23716 892941; 280.72134 866942; 280.78102 25373; 280.85464 60270; 280.99367 66927; 281.11274 2055518; 281.3065 1328646; 281.32294 9066746; 281.33917 243454; 281.62272 1694415; 281.63251 21627; 282.09761 1144869; 282.34776 45617; 282.37763 15134; 282.51408 3395419; 283.24363 26817661; 283.41633 1864927; 284.05148 9029; 284.0646 128349; 284.37797 135058; 284.77935 26168964; 284.78316 1231; 284.80262 2565271; 284.84034 2164906; 285.16252 1752552; 285.27397 62261; 285.49476 3766; 285.51426 4412967; 285.59454 167456; 285.64021 6899177; 286.00672 31068; 286.02575 113722; 286.23706 10079; 286.34888 79622; 286.48936 29057; 286.73845 5435; 286.93927 1683; 287.11915 125467; 287.14499 4332213; 287.15966 77353; 287.2204 48070; 287.34323 1482355; 287.98693 13141642; 288.01102 28971852; 288.18273 17287; 288.53904 2056; 288.60366 22020282; 288.69097 2325672; 288.75072 36323; 288.76922 15072; 288.79852 246551; 289.14282 26447; 289.2251 9184; 289.39454 5331652; 290.1539 1314969; 290.18457 2807701; 290.40526 9814320; 290.48867 1937270; 290.57129 5154635; 290.86281 72788; 290.98009 715412; 291.16955 1339183; 291.22502 63500; 291.83538 109934; 292.11007 4289714; 292.55812 1695776; 292.69501 59331; 293.01831 9330; 293.17006 6615740; 293.2739 22853; 293.29681 300048; 293.29948 670045; 293.34207 7958; 293.53659 12704476; 293.60786 598485; 293.68077 9707; 293.80927 134870; 294.04541 51727; 294.19971 17122; 294.55748 178491; 294.57491 59381; 294.58864 22930; 294.64759 4477; 294.67591 29076; 295.01199 21735380; 295.15796 35079; 295.17196 16289; 295.17708 2627; 295.30551 852847; 295.30608 1575170; 295.38056 458366; 295.68412 30665; 295.9241 2627; 296.66377 66281; 296.78677 7018; 296.87988 2507480; 297.02006 2273; 297.0864 5672; 297.43948 176572; 297.54202 26424; 297.80319 44468; 297.81617 6360424; 298.03637 9112; 298.16481 2647; 298.23165 953272; 298.55518 9456421; 298.78843 3785252; 298.84013 3409; 298.89984 1436611; 299.60562 382911; 299.65958 84845; 299.76364 7287; 299.94782 79053; 300.0419 264997; 300.06058 43998; 300.06915 75416; 300.13778 1496599; 300.17623 11402; 300.19976 7469114; 300.22258 52862; 300.27109 145923; 300.69703 1224; 300.75534 121271; 300.82964 12150; 301.20581 27447; 301.51113 81249; 301.66976 4280024; 301.84259 8028027; 302.47697 2992317; 302.8879 6341; 303.03318 9068; 303.81635 1990222; 304.04163 9305856; 304.2153 27013; 304.28034 26528; 304.49949 1089732; 304.72407 7855827; 304.95255 43497; 305.26816 46536; 305.33351 1823241; 305.58509 2300; 305.67598 8683; 305.9133 5014; 305.99931 3181110; 306.1065 4982119; 306.49597 22373; 306.61218 224691; 306.81787 79982; 307.04602 2825; 307.17771 67815; 307.35416 1541; 307.35585 49116; 307.3569 190374; 307.37061 1509278; 307.41567 28752; 307.8386 9784; 307.8699 25614287; 308.06121 6924; 308.188 16396; 308.26603 335727; 308.53897 4342; 308.56737 48141; 308.64221 64551; 308.70078 6572; 308.91995 2405; 308.95604 872081; 309.00058 96893; 309.21894 2694776; 309.25126 187307; 309.39769 1675477; 309.40805 1054614; 309.54819 829816; 309.71695 8793; 309.76573 466420; 309.9042 7144956; 309.99989 6960035; 310.17523 8348; 310.39996 803926; 310.44043 918337; 310.44184 69230; 310.69896 9416801; 310.87829 4532106; 311.10084 29131; 311.36524 31672; 311.42351 175154; 311.97606 1140561; 311.98921 36691; 312.01626 28761; 312.03145 243286; 312.34834 128465; 312.39753 83964; 312.52857 27992; 312.59056 1903818; 312.77296 1129457; 312.86139 1450279; 313.27934 70357; 313.41744 26671748; 313.48283 9436500; 313.77575 2339208; 313.856 67007; 313.87097 395145; 313.96182 196287; 313.99295 45157; 314.06187 24835; 314.07995 115173; 314.1248 5973; 314.20411 3375495; 314.61114 31711; 314.6559 5720; 314.91279 4668; 314.99723 1706970; 315.17027 63197; 315.19253 4731959; 315.26042 7910055; 315.50922 939414; 315.63671 895944; 315.79707 976552; 315.91547 55204; 315.93252 3162483; 316.0207 1300; 316.20557 31164; 316.45747 76050; 316.47441 973306; 316.67494 70842; 316.81299 25087; 317.05716 761876; 317.43514 72312; 317.47531 56562; 317.84839 2619952; 317.91658 4178; 318.07952 1308453; 318.17066 172133; 318.44637 66238; 318.61456 62797; 318.62171 745; 318.77422 45170; 318.89566 162944; 319.15984 2253377; 319.24651 64941; 319.26501 710239; 319.46668 9470; 319.55752 8310517; 319.68612 9955279; 319.79172 29635; 320.13912 52129; 320.29148 2310085; 320.29533 3315; 320.5021 60899; 320.80513 48134; 320.83095 15462; 320.87461 20380; 320.90651 71189; 320.91216 11770; 321.09487 65900; 321.12116 76025; 321.24409 27223; 322.30357 4223991; 322.3454 8623915; 322.42795 166665; 322.59423 1066193; 322.61551 6422; 323.14156 2988619; 323.22628 1418361; 323.59348 163500; 324.32816 53378; 324.69773 1025; 325.37939 8401703; 325.39197 3939; 325.41065 27850; 325.49305 27165; 325.80238 1771287; 325.94809 21642; 326.06403 34564; 326.2702 1609836; 326.4543 866449; 326.50703 20663; 326.88346 4032125; 326.91703 50048; 327.00144 50540; 327.1094 44259; 327.49402 44795; 327.50739 4693243; 328.0584 8178; 328.11806 17782848; 328.12323 21154; 328.14961 1026390; 328.26672 2408; 328.35078 1859544; 328.36415 87979; 328.67713 5087014; 328.68793 6351345; 328.98179 337446; 329.1766 407; 329.32635 22310; 329.41945 9367; 330.23933 158202; 330.34307 2360038; 330.50977 2767682; 330.58204 1486698; 330.58344 45559; 331.48866 33889; 331.51443 7329030; 332.01519 17334; 332.02738 68594; 332.29327 14274; 332.39729 16635; 332.50802 1797; 332.83258 1101503; 333.17996 50919; 333.30821 1673848; 333.64753 27836; 333.66839 856; 333.83915 4598872; 333.90918 7598; 334.15715 4562; 334.17485 28797; 334.22375 800273; 334.27702 5977215; 334.33569 39562; 334.44888 7666090; 334.559 29188; 334.63685 28519; 334.77424 1430128; 334.7801 14919; 334.93927 9662; 335.26364 962; 335.45915 1989302; 336.03613 5400140; 336.64488 1803; 336.72101 4096992; 336.76693 37233; 336.85252 71258; 337.06883 22522003; 337.29632 560445; 337.4627 4333; 337.69228 5391319; 337.70542 29283; 337.82338 11310; 338.35242 5672; 338.57589 1941204; 338.64204 27195; 338.87176 1052895; 339.24977 456866; 339.62239 5391; 339.70564 525960; 339.76063 58165; 339.86979 936; 339.91962 50013; 340.16612 189550; 340.2065 72519; 340.77991 1515256; 340.93072 4945; 341.29763 72449; 341.57341 30765; 341.65396 423331; 341.72707 60261; 341.94171 37160; 342.17752 38383; 342.55427 1234; 342.59607 1300744; 342.64758 57166; 342.73003 1648074; 342.76412 39422; 342.801 892124; 342.80953 42928; 342.9797 16332; 343.11586 1478072; 343.17297 6693; 343.33087 759652; 343.45928 2305646; 343.48331 564; 344.51114 1067587; 344.75222 6641705; 345.57871 25260; 345.7314 9561180; 345.84648 22691; 345.87764 8351; 346.00071 1121598; 347.12526 9773; 347.13603 9726; 347.46131 181758; 347.51803 378933; 347.54733 1685285; 347.67664 2639341; 347.76231 42665; 347.88221 157532; 347.96697 57476; 348.22264 17254; 348.26644 26070; 348.65397 116917; 348.68127 1551774; 348.90478 44490; 349.57719 286; 349.62705 62488; 349.81597 25492449; 350.06692 1902; 350.24792 20280; 350.46258 110449; 350.53813 50522; 350.54335 28545; 350.57719 155109; 350.60788 194409; 350.74807 3397; 351.12825 37791; 351.24183 34858; 351.38053 39665; 351.47575 148931; 351.56782 13644; 352.06273 3415; 352.18642 31291; 352.27115 91625; 352.27774 103055; 352.39651 117624; 352.61816 10622; 353.09566 2866; 353.17933 62352; 353.56807 2008344; 353.57551 71563; 354.02497 31806; 354.10954 624542; 354.22466 76758; 354.96512 6930; 355.73353 867840; 355.87881 1394966; 356.01427 942359; 356.03912 28137; 356.14178 2034093; 356.21363 8707826; 356.44442 1336831; 356.44812 76014; 356.51115 155754; 356.54749 2158080; 356.65797 4912; 356.76253 48729; 356.80745 76101; 357.10083 1193441; 357.57709 128823; 357.72384 2128013; 357.91395 1944222; 358.04572 1070931; 358.04779 1407017; 358.17496 61309; 358.67319 1797814; 358.67391 4596; 358.70601 55741; 359.48043 60033; 359.64154 729558; 359.64523 1725; 359.74276 2229057; 359.97152 5690650; 360.24923 71017; 360.54304 2896056; 360.84068 38827; 360.87936 26400; 361.34515 337618; 361.43636 45321; 361.46154 140545; 361.70877 183098; 361.9035 21338; 362.11301 1452845; 362.24147 28187; 362.35893 8611439; 362.41354 9687904; 362.43009 2883720; 362.47829 27659; 362.81771 1484755; 362.82845 46044; 363.09926 6764573; 363.2249 5638; 363.31978 13350757; 363.42693 36107; 363.49562 25215; 363.57429 201778; 363.67261 2174; 364.27674 1824886; 364.33457 6814; 364.42539 7298556; 364.75105 7308842; 364.92262 7776167; 365.2097 781; 365.2408 3949191; 365.28169 131743; 365.31594 8030153; 365.31714 2167; 365.39167 61379; 365.59613 7809; 365.60035 778089; 365.61736 3381738; 366.18658 64263; 366.39593 535397; 366.51672 2704150; 366.78867 78790; 366.85658 3158; 366.91974 24302; 367.17665 6740; 367.26925 26419; 367.28634 696650; 367.54773 2531200; 367.71163 27033; 367.76636 385163; 367.92525 726; 367.99577 141378; 368.27843 470550; 368.41568 20812; 368.52969 16431; 368.74957 1187600; 369.63728 30936; 369.73407 65852; 369.98295 3163; 370.13674 59083; 370.14145 31193; 370.4461 29129; 370.63056 12890; 370.67653 570721; 370.75603 45661; 370.97039 28535522; 371.44775 1161; 371.48778 19260; 371.84133 6469350; 372.07241 1210713; 372.1682 52153; 372.23997 9255; 372.24393 6819018; 372.5463 284928; 372.54854 136426; 372.982 58416; 373.16799 64488; 373.26488 149213; 373.45809 44359; 373.49875 29818; 373.67901 22307; 373.81595 5068; 373.9827 8863014; 374.03766 232639; 374.0576 3377; 374.29008 29590; 374.53793 192859; 374.59846 3750; 374.75565 61982; 374.77584 142051; 375.08711 336040; 375.34786 632109; 375.46957 7742662; 376.24046 58768; 376.51928 76419; 376.57727 53971; 376.6673 3759612; 376.89399 4258302; 376.95753 49433; 377.07777 133218; 377.30915 1828; 377.33157 32981; 377.40341 62630; 377.43098 18433; 377.76018 4808; 377.8263 9867; 378.03806 66006; 378.1101 2038772; 378.64296 5853; 378.80642 9480; 379.00184 33545; 379.35811 331439; 379.46037 1091403; 379.76253 4407; 379.92508 898581; 379.94072 385223; 379.9795 330241; 380.50841 1257662; 380.63853 9407; 380.66837 34606; 380.9127 3601625; 381.01501 27234; 381.03602 3684; 381.05098 27601; 381.27755 8423; 381.34961 1441846; 381.41969 5721788; 381.44258 28124267; 381.71327 6438; 381.72415 269; 381.86368 6837; 381.88106 4653711; 382.25794 884523; 382.31295 2379714; 382.43589 3092640; 382.43763 28862; 382.7208 37595; 383.23567 9367732; 383.3169 26968702; 383.46288 6200; 383.60728 12955; 383.69986 52433; 383.71194 131626; 383.75643 767878; 383.97596 15307; 384.16 35308; 384.16388 8712117; 384.65664 43751; 384.70921 4329581; 384.74588 2465; 385.45489 400987; 385.55973 34419; 385.61321 1643554; 385.61875 8243; 385.87678 39473; 386.20062 27271; 386.54773 8332989; 386.62864 366; 386.79841 21140; 386.9376 1642774; 387.05947 1227990; 387.07088 29933; 387.15881 34939; 387.81785 643729; 388.11177 12586; 388.14449 71800; 388.32866 78509; 388.40546 26571; 388.52695 9269050; 388.64654 56082; 389.0517 14959; 389.09517 780397; 389.72004 2326; 390.07856 6034679; 390.08721 1311397; 390.18664 287988; 390.24235 51809; 390.26679 24271; 390.44682 49771; 390.62087 928694; 391.04928 1365257; 391.63209 117767; 391.63502 67034; 391.6586 6579; 392.00059 3993524; 392.49754 1351454; 392.65685 4943195; 393.14436 671284; 393.75535 56613; 393.79333 76248; 394.00158 196201; 394.21537 2565672; 394.41885 73908; 394.91609 449724; 395.035 581360; 395.05725 60865; 395.23673 17477; 396.58808 78065; 396.61534 1929210; 396.72663 6002; 396.77833 20442; 397.48016 960504; 397.59495 6299446; 397.94145 1180494; 398.12779 9544529; 398.30906 4731468; 398.44308 5731; 398.64505 35933; 398.71457 64153; 398.76427 5616; 398.92292 8256562; 399.3178 66294; 399.38764 5853; 399.40735 9956375; 399.45222 92207; 399.4556 686590; 399.53162 113329; 399.70647 1976070; 399.96655 3616545; 400.09186 169402; 400.35703 64385; 400.5316 89988; 400.83941 7363; 400.85047 19173271; 400.9016 1697068; 401.08073 44507; 401.31189 29176; 401.70377 22634; 401.71388 62746; 401.76662 37549; 401.78539 536; 402.14789 65259; 402.46899 8092066; 402.47827 28846; 402.5509 456157; 402.85104 1437231; 402.99713 813; 403.47986 34704; 403.60638 37260; 403.79051 4699453; 403.83562 6453107; 404.90661 49866; 404.97244 190050; 404.99735 28955; 405.00081 150311; 405.19125 1936149; 405.21228 592296; 405.47256 22560; 405.59007 7321381; 405.70989 1125122; 406.1321 6467462; 406.13657 1259605; 406.2646 79635; 407.04659 3626481; 407.30497 6585697; 407.41548 19809669; 407.47247 42084; 407.52227 292108; 407.60028 27194; 407.67747 1687132; 407.68367 20980; 407.9708 354; 408.18587 23138; 408.48678 53276; 408.5252 199114; 408.5685 9343; 408.66331 1857517; 408.72086 85521; 408.73855 62807; 408.74622 29179; 408.91803 70789; 409.18636 33842; 409.27585 49542; 409.33955 3265578; 409.47812 3297; 409.85762 76159; 410.13019 28262; 410.51518 239994; 410.53063 23558497; 410.60873 49807; 410.94168 4723796; 411.02245 52530; 411.21515 1410417; 411.43821 7637173; 411.67016 1945169; 411.90563 48846; 411.93878 1702391; 412.04063 1127162; 412.12206 76651; 412.17388 23055; 412.26138 1142; 412.66793 1274391; 412.99542 22441985; 413.04127 481005; 413.34636 12105826; 413.43887 312507; 413.48351 4992; 413.52123 1265823; 413.74929 20482; 413.83777 626601; 414.01691 27315; 414.16086 707; 414.60688 1451159; 414.95479 76757; 415.0253 78256; 415.33566 49225; 415.40609 2597837; 415.5087 15395786; 415.56785 1116066; 415.73491 69803; 415.79871 1134646; 416.31461 5114; 416.31961 5210; 416.42166 12508167; 416.51047 1081985; 416.78463 6943; 416.96189 1799202; 416.99518 44358; 417.02092 29128; 417.09996 40363; 417.16266 5705248; 417.31802 24984; 417.47381 4349; 417.48138 492241; 418.59002 34711; 418.95922 26968; 419.3513 23718; 419.47753 24183; 420.49647 25905; 420.57511 2451; 420.66797 53178; 421.16035 7535341; 421.27593 26400; 422.0098 84; 422.11126 42407; 422.15414 19787; 422.27041 105945; 422.45213 60807; 422.83676 57631; 422.91027 3097851; 423.25715 8428; 423.35937 644042; 423.37536 50776; 423.39303 3352415; 423.72849 2727727; 423.76967 3474714; 423.88234 12252; 424.08906 25660; 424.27485 148367; 424.55565 31565; 424.62296 6272153; 424.64401 924891; 424.6572 15121; 424.72345 1977915; 424.97776 35927; 425.10041 73922; 425.57466 5770; 425.88736 3699; 425.93199 45829; 426.40124 1247280; 426.47238 1032674; 426.51875 20887; 426.6831 3872; 426.78042 75625; 426.88201 7463828; 427.2421 4565; 427.45018 1943058; 427.45166 9901; 427.72967 54907; 427.85921 441; 428.15742 3195; 428.57531 35703; 428.65629 168667; 428.90144 6731807; 429.29077 1372789; 429.32566 5687; 429.36348 1474295; 429.51535 1097051; 429.77231 34633; 429.77332 29883504; 429.98062 1942820; 430.11011 1743428; 430.29331 41144; 430.56085 476701; 430.85081 681126; 431.00902 25859; 431.1425 43973; 431.17529 591046; 431.43332 57559; 431.45266 113674; 431.51999 1559116; 431.68944 9993231; 431.87116 33846; 431.95234 6872155; 432.16884 9125039; 432.26988 48052; 432.7511 20473; 432.75129 3436; 432.84925 204585; 433.51187 18879; 433.52456 6222; 433.69968 22201; 433.87944 31225; 434.00873 833022; 434.18333 9393411; 434.21454 49711; 434.29916 3845; 434.69532 17322; 434.84509 52401; 435.14726 3621; 435.39231 5583635; 435.59366 2282051; 435.65039 5314; 435.93985 16207954; 436.11445 632; 436.16774 56981; 436.27077 2852443; 436.38287 69359; 436.41006 1134527; 436.43021 79189; 436.53219 2325742; 436.82335 4665; 437.2445 25978; 437.45171 742800; 437.86507 1589692; 437.91079 27487; 438.28131 1100079; 438.56495 1290996; 438.64407 2975355; 438.70895 38691; 438.73871 30437; 438.74007 7952; 439.42863 2651197; 439.97516 3845; 440.06652 59485; 440.12399 4619; 440.47104 2238061; 440.49987 4997587; 440.56128 25491; 440.62928 923952; 440.67251 14190773; 440.70202 41389; 440.98083 2439994; 441.01573 85714; 441.17331 1674865; 441.22457 2486131; 441.22762 41752; 441.46337 68853; 441.97948 26287; 442.05136 57980; 442.09934 3777753; 442.32474 82; 442.40425 36445; 442.46564 1073485; 442.61539 54100; 442.84311 28989; 442.95715 2490385; 443.12716 8307689; 443.14896 137205; 443.23526 17016; 443.88343 4235650; 444.21814 25877; 444.35898 795618; 444.46579 1213961; 444.48476 39498; 444.54462 28616; 444.58117 6286929; 444.85297 76605; 444.8833 67704; 445.11573 1784748; 445.30737 13257170; 445.36583 720377; 445.59999 45057; 445.62897 32295; 445.6892 49250; 445.80816 9673158; 446.63318 1408931; 446.72936 1875611; 446.76494 77000; 446.78481 1288830; 446.86038 73385; 446.90006 21915; 447.02539 76244; 447.12239 7992793; 447.23442 1331017; 447.44562 74064; 447.67752 6249109; 447.68109 63268; 447.79818 1504706; 447.80814 77800; 448.03234 5149404; 448.21638 35247; 448.78208 495551; 448.89353 4261719; 448.90762 48534; 449.39708 30461; 449.47174 1874687; 449.8382 644927; 449.85065 2426127; 449.97934 1811731; 450.22618 532808; 450.46059 14887864; 450.48222 33076; 450.55962 39619; 450.63993 45658; 450.69871 376862; 451.37792 866; 451.42875 28844; 451.54816 57108; 451.91282 21323; 452.10144 49610; 452.32913 4587109; 452.54099 16543; 452.63379 310883; 452.73198 15807; 452.75264 3425043; 452.95897 1734452; 453.89389 1773; 453.96543 2711988; 454.21906 3185743; 454.41358 23833; 454.72225 4890; 454.77587 6556; 454.80251 6743; 454.85345 10491706; 455.03392 45715; 455.38794 27710; 455.42585 26028; 455.49373 48537; 455.75177 6173591; 455.9345 36515; 455.97125 8752618; 456.06212 4864155; 456.31735 1344140; 456.63343 72716; 456.65522 1993198; 456.67393 68077; 457.38347 10149; 457.58623 8532; 457.63031 245839; 457.70786 20575; 457.74236 2532660; 457.82503 4530; 457.82902 20767; 457.9024 48197; 458.09199 22483; 458.17098 4331984; 458.17879 46266; 458.18002 2292; 458.61316 101428; 458.70647 3081; 458.77387 63067; 458.95296 9735; 459.03536 7242; 459.06155 433901; 459.09664 84506; 459.16012 742187; 459.7245 173229; 459.98814 2329878; 459.99481 4164; 460.09539 58729; 460.15269 1862417; 460.43404 22288; 460.53334 248865; 460.77948 129280; 461.20094 19846; 461.48835 4111193; 461.52622 5862903; 461.54219 69610; 461.59575 68203; 461.69833 9644956; 462.27037 1981127; 462.31056 2128861; 462.46047 11818; 462.64031 1314; 462.95976 6946855; 463.08836 27261; 463.19212 3995867; 463.38807 62713; 463.51115 21843894; 463.58649 1422077; 463.72314 28962213; 463.74285 42219; 463.91699 132578; 464.09343 25782; 464.3727 6370921; 464.41915 127953; 464.42238 75870; 464.54936 1996044; 464.60356 4420667; 464.7206 7059; 464.78249 40767; 465.01147 9982810; 465.04918 21727; 465.1992 218908; 465.29312 6514; 465.65288 9811581; 465.65834 55163; 465.79487 9467057; 466.20314 19462; 466.3863 920557; 466.39457 2816995; 466.48474 539; 466.66852 588760; 466.66904 6512661; 466.8202 8461; 467.17593 4798775; 467.18557 42735; 467.19752 2294202; 467.28813 461012; 467.29227 4575322; 467.38824 73817; 467.45999 3954; 467.46503 44763; 467.77198 295274; 468.05512 949277; 468.06413 1721; 468.25204 4952013; 468.37054 355770; 468.46031 8949; 468.46442 3191034; 468.46752 3627940; 468.55036 52504; 468.75307 7735; 469.40071 63965; 469.49375 9871217; 469.59295 6448; 469.64723 1946793; 469.74659 1783593; 469.87934 34466; 470.08643 32527; 470.20425 5982637; 470.39366 38272; 470.46943 8721010; 470.72409 23361; 470.73105 1640522; 470.84455 4572007; 470.99998 42088; 471.22187 297609; 471.23086 982568; 471.42063 56499; 471.70949 1537650; 472.21092 831939; 472.22029 7914468; 473.1837 94166; 473.67302 5091254; 473.75501 34412; 474.0593 4827; 474.14416 5448608; 474.34017 1679017; 474.48065 24810; 474.56277 63215; 474.73217 21126; 474.74476 23679; 474.83564 882257; 475.15215 28088; 475.37981 3555940; 475.44058 1866795; 475.78998 9485276; 475.80605 26930; 476.09672 28193; 476.22417 40582; 476.30852 308219; 476.3328 27499; 476.40149 3008639; 476.42541 1393035; 476.49444 27855; 476.67114 16580; 476.73482 1899290; 476.99429 2459871; 477.05931 15390; 477.09079 3127903; 477.11205 4445896; 477.20369 40648; 477.38128 68166; 477.40899 29506; 477.47356 1397946; 477.47943 4498; 478.00336 46419; 478.39662 72428; 478.97801 47046; 479.01505 1900640; 479.1071 24238; 479.57946 49213; 479.62239 3756659; 479.66912 1905; 479.79904 1524; 479.90462 165002; 480.08833 2978905; 480.19117 15406158; 480.21055 1000269; 480.3554 418243; 480.39666 65135; 480.41143 1483792; 481.02317 93574; 481.05162 2622; 481.22874 3701592; 481.26445 1652191; 481.48529 4864076; 481.56646 8180294; 481.64382 3196209; 481.85259 1027314; 481.87955 6622; 481.93056 169214; 482.09557 2764; 482.11562 51116; 482.58925 24526; 482.59927 4319713; 482.65036 67591; 482.80532 2033000; 482.93317 16472; 483.58386 6130; 483.79681 3827044; 483.80122 429555; 483.82025 942955; 483.89227 1941069; 484.37939 18551916; 484.61362 2090489; 484.70653 987280; 484.81597 1261932; 484.86605 15084956; 484.98864 17494; 484.995 14852; 485.07164 21741953; 485.24764 6033349; 485.33464 50651; 485.43813 398720; 485.56279 19166; 485.81789 1043549; 485.88434 37706; 486.27439 1524; 486.6611 5532991; 486.73955 8482375; 486.96721 6577785; 487.35318 57820; 487.35757 1599; 487.35978 58362; 487.54055 554748; 487.69801 5529367; 487.88479 77497; 487.88603 8158191; 488.22498 79708; 488.27583 2610; 488.55465 18064; 488.71278 42629; 488.93526 68848; 488.998 3374593; 489.16002 349820; 489.2819 2927; 489.42003 4782786; 489.47718 27861112; 489.60742 18055074; 489.7288 1309067; 490.33836 96166; 490.35928 210785; 490.5523 10263; 490.58791 161565; 490.6147 3364; 490.67564 62414; 490.71245 10563; 490.75756 847; 490.80175 39648; 490.98652 2824994; 491.04297 47636; 491.38491 22228; 491.66996 11536; 491.81018 9681; 491.98633 17466; 491.98683 8043; 492.28798 6877962; 492.33627 7473; 492.70456 45573; 493.15789 2819418; 493.31403 25732; 493.42266 70728; 493.44854 36280; 493.80706 904222; 494.06052 7692; 494.23243 22649; 494.63839 78299; 494.85415 275605; 494.86053 23664; 494.88219 15071514; 494.94019 7423; 494.96072 4740462; 495.13613 66521; 495.20651 190180; 495.29137 72487; 495.37706 392168; 495.48055 5808700; 495.4885 149715; 495.70337 5244905; 495.8622 614960; 495.8828 58494; 496.23348 50041; 496.47774 14930; 496.56003 22881; 496.56006 1006337; 496.5637 79728; 496.62123 5803; 496.69048 7178; 496.95114 4677239; 497.09936 90189; 497.11187 25814183; 497.51741 15379; 498.03838 2093900; 498.25443 68741; 498.3127 21921; 498.52127 3105; 498.52589 421286; 498.59371 64495; 498.91448 9442640; 498.9247 2492289; 499.12046 1578; 499.83317 985067; 499.87172 7367; 499.97405 846426 +<0, 2>: 0.21595 118044; 0.70401 4926282; 1.07393 27633; 1.53619 2148067; 1.81522 17023; 1.82437 28799301; 2.23644 27334; 2.63235 47227; 2.98112 144184; 3.70087 33198; 4.00336 186282; 4.12465 7975; 4.19462 2206229; 4.47969 29282; 4.62101 54736; 5.12077 1695686; 5.35305 177999; 5.35805 8519; 5.38886 6221; 5.42269 43364; 5.54889 183027; 5.58495 3744928; 5.76831 41523; 6.00393 9864; 6.24063 1863250; 6.24577 27102809; 6.61158 2496617; 6.63371 7720297; 6.7147 2804224; 6.72846 8561531; 6.95251 26744; 7.11575 4335136; 7.21321 986778; 7.30422 39800; 7.40083 57049; 7.47157 14421; 7.53007 899977; 7.77304 122497; 7.8886 11732079; 8.39646 1707167; 8.40624 8329; 8.59673 2942; 9.37964 44887; 9.44335 44284; 9.66 2097; 9.91864 1734; 9.91961 1693841; 9.92866 57901; 10.22973 39233; 10.2458 2780582; 10.57329 475706; 10.70901 51628; 10.76654 79235; 10.85254 4181; 10.90185 52308; 10.92832 3802927; 10.93911 235457; 11.10512 18400; 11.26062 1412051; 11.28451 7870; 11.51242 5625266; 11.61973 62987; 11.91916 73169; 12.08805 1580085; 12.20576 45390; 12.25369 5929; 12.34827 2828941; 12.83071 52553; 12.83987 607017; 13.17388 21857; 13.76617 3250; 13.90027 138447; 14.32579 16777; 14.34011 1734856; 14.44178 165476; 14.45852 28760; 14.54961 71019; 14.57539 31055; 14.92735 6435; 14.97677 27781; 15.0391 779; 15.47859 1373601; 15.71011 5555101; 15.78625 57357; 15.85211 6094252; 16.25796 8631449; 16.3624 53767; 16.87519 5321316; 17.14772 19799102; 17.30747 41882; 17.31955 1814964; 17.3506 52554; 17.35889 6911; 17.49394 2308494; 17.57585 719954; 17.66502 3272; 17.72813 983121; 18.00579 20452; 18.06406 87314; 18.41995 26005; 18.61871 8877549; 18.70274 3151129; 18.77712 1001211; 18.78082 135031; 18.86619 9242856; 18.86872 29903; 18.91938 210501; 18.95696 45160; 19.1558 5250610; 19.24492 3431833; 19.71526 6127; 19.81115 50031; 19.83139 69989; 20.02361 41508; 20.38135 22358; 20.39735 21164; 20.52821 3984; 20.53576 3085008; 20.5925 1165130; 20.79732 584188; 21.03064 63684; 21.26094 1016; 21.26652 181210; 21.52977 1826421; 21.62745 5055; 21.63627 67743; 21.78983 4241; 22.11778 13839; 22.19599 63760; 22.73274 3316003; 23.14913 9799372; 23.21525 93073; 23.30085 9566036; 23.30447 3738269; 23.4084 2266; 23.69805 7361085; 23.93633 1345937; 24.06699 9065; 24.13925 10918; 24.22408 171734; 24.41371 1451612; 24.46402 28365; 24.49132 15825; 24.51965 1632; 24.66179 384130; 24.9708 1139036; 25.16532 1727267; 25.62195 35904; 25.7942 5538014; 25.82942 1482131; 25.84604 2899238; 25.85903 978699; 26.12355 71714; 26.13752 6153; 26.41388 197070; 26.70624 30916; 26.76194 493849; 26.76416 109030; 26.809 3839798; 26.87426 17658; 27.06314 127273; 27.41682 6490073; 27.46195 801038; 27.87444 890437; 28.25739 7025508; 28.26102 7109512; 28.37581 15150; 28.84448 41707; 28.8697 44800; 28.87495 79234; 29.09163 274; 29.19668 24509; 29.20171 27635; 29.34821 768117; 29.41678 27902; 29.41941 6777791; 29.44933 99307; 29.72023 4277689; 29.89326 1595162; 29.96891 20062; 30.18068 26964; 30.31078 21550; 30.34963 3893854; 30.35598 38222; 30.54417 4458638; 30.70029 63655; 30.76696 8278042; 31.11283 4546; 31.29446 2806777; 31.49973 32186; 31.53404 67323; 31.57657 1435; 31.61454 193330; 31.79331 25332; 31.83618 1277; 31.96175 20537; 31.99527 9562; 32.13749 9785; 32.37003 1468555; 32.64606 495912; 32.7202 9911; 32.79013 842399; 33.09827 1595036; 33.29043 1290947; 33.36812 121577; 33.41971 3582914; 33.58466 3047666; 33.62885 72489; 33.63995 486040; 33.70796 4947; 33.73582 44897; 33.85044 3295038; 33.92838 5440; 34.11257 26533; 34.14957 161641; 34.2198 6930; 34.46409 3710129; 35.33337 74977; 35.39782 28515; 35.47656 69370; 35.6681 5531226; 35.95122 169897; 36.22126 57952; 36.28764 25705; 36.32749 4134306; 36.4234 5482; 36.49686 212308; 36.50842 43775; 36.66247 24177; 36.66549 58723; 36.8708 1743; 36.93601 45936; 37.20417 132840; 37.99598 9390; 38.02816 736015; 38.06397 3758621; 38.28189 3682990; 38.38336 33685; 38.44859 139153; 38.65919 633875; 39.47344 62597; 39.51217 2752885; 39.68006 3813656; 39.74857 54315; 39.8915 3528636; 39.99334 2674; 40.37541 28311; 40.53535 12131; 40.80712 63206; 40.9433 37; 41.23674 1921410; 41.26629 162385; 41.58054 147796; 42.07847 3106009; 42.40792 102665; 42.40858 904745; 42.42078 1505275; 42.5535 25690; 42.64638 142656; 42.88068 825; 43.30436 7225; 43.76039 8324853; 43.77706 72065; 43.84346 78636; 44.02383 24800; 44.07247 22878; 44.18158 60167; 44.39186 8820481; 44.47203 1944; 44.53989 9620; 44.54883 65841; 44.66709 4338; 44.77621 1997383; 45.0896 58861; 45.1786 61754; 45.32773 29761; 45.4428 9519; 45.52194 9625044; 45.58706 492828; 45.64745 27947; 45.69922 44859; 45.71714 1794812; 45.89881 987; 46.10738 104922; 46.58855 109606; 46.61312 1633656; 46.86143 872; 46.89532 641648; 47.23662 1371267; 47.44208 1115074; 47.4491 46185; 47.99786 7233; 48.21839 4106190; 48.42655 39620; 48.59695 4135198; 49.00807 1037333; 49.09609 1575934; 49.10366 4160424; 49.10938 27045; 49.17799 1203635; 49.18932 43297; 49.22376 938379; 49.24187 8452484; 49.2456 132972; 49.31287 9566073; 49.31769 19115; 49.72472 20583; 49.83046 261244; 49.98956 40600; 50.35068 65686; 50.40701 1187154; 50.58531 156826; 50.84275 1893998; 51.52077 5532; 52.02119 25988; 52.12295 25526641; 52.28575 1768945; 52.34246 15395; 52.6634 29705; 53.35903 61132; 53.39296 197353; 53.39734 4323573; 53.51163 38300; 53.58143 58582; 53.60839 40599; 53.75495 8471684; 53.87549 9815340; 54.08896 8708; 54.12696 7477; 54.3382 25741; 54.3492 4433; 54.46295 4385; 54.60327 4638; 54.71811 696262; 54.72922 39882; 54.75203 925219; 54.7603 5014722; 54.80743 192533; 55.21275 66396; 56.0711 2710; 56.208 20618; 56.23427 71080; 56.25227 79731; 56.66479 4336489; 56.73739 24823; 56.74816 1552221; 56.8747 1047; 57.1671 3753; 57.19479 37702; 57.37592 9987; 57.55184 30022; 57.61534 4546695; 57.68911 5531; 57.75452 27414; 57.98349 5717; 58.14923 27720; 58.15038 7396; 58.65662 24613; 59.47519 77560; 59.54462 3680; 59.59277 7725881; 59.77158 4310068; 60.3234 61415; 60.40872 11088; 60.8693 2270746; 60.95241 7598729; 61.27475 595419; 61.78348 21564; 62.03286 627457; 62.04229 20997; 62.10047 41010; 62.36444 1836523; 62.70074 290383; 63.09738 18799; 63.46838 9496659; 63.48101 216881; 63.60649 791135; 63.72706 106981; 63.96139 4985; 64.44729 6873; 64.58708 2089; 64.59454 64335; 64.62029 76609; 65.03988 96423; 65.1572 12233; 65.18947 68797; 65.40409 1583921; 65.52606 169493; 65.55845 1787498; 65.68425 77198; 65.74306 7381219; 66.14211 71767; 66.52837 7565617; 66.60032 18336; 66.74489 36659; 66.83304 2606569; 66.89291 46380; 67.02163 4063197; 67.60389 22890; 68.26898 57433; 68.43166 22984; 68.7737 901553; 68.79715 6497638; 68.91183 1540389; 69.60408 1743361; 69.6614 853; 69.66598 1124047; 69.70483 5774807; 69.72757 78470; 70.02303 2673; 70.15079 9823; 70.24408 256344; 70.78781 75989; 70.82181 29312656; 70.98439 2702414; 71.0661 5016715; 71.22277 4927293; 71.75138 7298; 71.81153 28758; 71.88466 1377316; 72.27626 4500; 72.36331 28824; 73.4078 79726; 73.41659 20028; 73.84043 3764; 73.85167 952027; 73.96545 6096997; 74.00075 63672; 74.00366 25203; 74.04366 903091; 74.20845 1636; 74.33091 4323; 74.50785 72838; 74.57485 60092; 74.61113 677926; 74.92904 35906; 75.07099 49784; 75.18606 191877; 75.33782 78919; 75.45742 1750426; 75.66056 1439380; 75.8276 3180; 75.85671 1615288; 76.11419 189677; 76.33286 130179; 76.42406 29526; 76.70236 67205; 76.86556 15142; 76.92943 7918354; 77.09876 16258; 77.60265 44472; 77.62711 2805928; 78.05316 120640; 78.52059 13934; 78.52169 35513; 78.57314 3169752; 78.57741 31123; 78.72058 9743; 78.77743 21165; 79.02422 5184; 79.09032 567849; 79.14215 1982293; 79.14778 38361; 79.45839 21375; 79.59437 27545; 79.7058 55867; 79.7781 308677; 79.8389 407271; 80.3489 8349988; 80.38031 34447; 80.47626 1670577; 80.47865 293718; 81.08807 9390379; 81.3411 33574; 81.39788 9453498; 81.55667 8820; 81.87741 15311; 82.61953 54347; 83.16289 46767; 83.27466 74879; 83.56245 1723670; 83.80113 4765344; 83.8697 5597; 84.26902 759682; 84.27846 28347; 84.3461 38539; 84.35651 1803; 84.70113 4383767; 84.80685 74210; 84.93259 2307112; 85.14532 1247260; 85.23379 6535; 85.25318 6843000; 85.49107 6084388; 85.57172 1925871; 85.77548 45335; 86.05627 456388; 86.29273 572022; 86.5136 8873731; 86.85394 62975; 86.89012 731696; 87.61271 174532; 87.81508 80571; 88.03263 934232; 88.19614 942241; 88.31242 171; 88.34531 57785; 88.38076 69902; 88.84767 66245; 88.8967 29457; 88.95442 904; 89.35215 191744; 89.96507 40521; 90.03182 58462; 90.16425 1813285; 90.38935 1334; 90.45463 9791; 90.47623 14791278; 90.62904 9918; 91.46919 1241290; 91.82385 9034184; 91.84909 3113842; 91.92292 4053598; 92.0691 16411; 92.15666 8625481; 92.36038 36786; 92.42367 101974; 92.55787 1851323; 92.99166 6180228; 93.60062 1259667; 93.63137 18778; 93.64453 1485900; 93.78264 104026; 94.04263 6236; 94.50385 33040; 94.84603 66835; 94.91235 4063871; 95.50077 12815; 95.82609 28779; 95.91402 15077; 96.17024 77068; 96.34546 148375; 96.46232 16074954; 96.72471 831541; 97.04192 806448; 97.29313 4151793; 97.40807 59596; 97.52057 109567; 97.56525 1147658; 97.66642 833382; 97.66711 197876; 97.75661 1370804; 97.81184 741552; 97.9753 642945; 98.33559 31249; 98.35104 4730402; 98.54474 6393; 98.597 47304; 98.61838 23447; 98.84764 35980; 98.90556 17270; 98.92419 24379; 99.16566 9998650; 99.23992 22000; 99.41304 14376; 99.6375 36215; 100.01209 86106; 100.23922 3127539; 100.51038 291874; 100.74437 96211; 100.78115 67555; 101.21868 71243; 101.22191 105327; 101.45207 2912; 101.56471 9856672; 101.79502 46037; 102.02761 5268; 102.0722 3943033; 102.20898 45426; 102.44251 158970; 102.47316 9486874; 102.796 74949; 102.97656 3472; 103.05701 53671; 103.13722 69619; 103.19875 66883; 103.2488 10085; 103.54398 9003034; 103.98383 181281; 104.1374 32174; 104.22008 1277; 104.22226 8748; 105.1213 12295; 105.12365 5683284; 105.13342 5806; 105.38838 23815; 105.51907 20305; 105.78637 23206; 105.90566 1865117; 106.20922 2107; 106.23823 15195; 106.28671 235103; 106.31166 53026; 106.3292 31895; 106.57854 46274; 107.16504 8106; 107.32834 66359; 107.36952 31347; 107.51876 30023; 107.57896 1813254; 107.65837 547805; 107.66785 85078; 107.86985 193; 108.06778 101078; 108.26948 4462; 108.28324 1639579; 108.61676 20373170; 108.67366 79622; 108.73612 27872; 108.88898 12549; 109.14283 7937; 109.30639 36557; 109.42735 20658; 109.46866 210214; 109.57234 3814946; 109.57307 1706800; 109.76586 4490911; 109.8973 7392441; 109.92095 8312; 110.09614 2234972; 110.22884 76281; 110.28528 58994; 110.48365 1100387; 110.87988 6547; 111.02135 1396; 111.04507 1433356; 111.23568 26503; 111.35062 8463; 111.35393 8161; 111.72893 41438; 112.20271 561214; 112.20738 384848; 112.27511 48248; 112.34246 5604484; 112.39746 8476; 112.84747 39361; 113.01743 580647; 113.09767 22454; 113.49352 18409; 113.76093 1386107; 113.80397 32321; 113.81996 4240154; 113.91733 10872555; 114.18932 1205; 114.73347 3641695; 114.78846 9945; 114.83132 1037303; 114.89571 27376; 114.94228 6755; 115.01845 23666; 115.57412 76696; 115.6367 979; 116.33187 11827; 116.65646 70704; 116.7498 63914; 116.9006 32847; 116.93469 67058; 117.00114 9596879; 117.09033 1160339; 117.27993 186839; 117.84395 9799; 117.8836 4467682; 118.15579 170348; 118.36542 2374404; 118.47117 52126; 118.66527 6084757; 118.73586 460306; 118.88882 68323; 119.74952 1198229; 120.27945 544769; 120.51723 43629; 120.54516 544868; 120.9494 6644; 121.24945 95950; 121.52441 2002; 121.63588 228500; 121.63982 995947; 121.71176 3508075; 121.91989 75763; 122.10912 1503; 122.17857 60570; 122.30371 601331; 122.95407 3257052; 123.49037 3243; 123.49059 6638466; 123.65874 662; 124.06324 91939; 124.32273 240690; 124.32997 55727; 124.49772 1433685; 125.03694 7598; 125.04901 78594; 125.12931 4522; 125.26456 62043; 125.65762 4349; 125.6873 8244; 125.85587 69326; 125.89405 1707; 126.0495 55621; 126.05001 454; 126.05025 1212283; 126.05132 24309; 126.08837 56529; 126.33586 5107; 126.60986 2237; 126.7035 3947; 126.82835 115528; 126.91217 18977; 127.01272 74989; 127.03145 22443; 127.23511 1922533; 127.24224 68837; 127.42654 68581; 127.63094 99626; 127.65558 976037; 127.70153 55979; 127.90796 10618; 128.209 65503; 128.58334 19411; 128.64337 57231; 128.84907 41020; 128.91466 41607; 129.10058 15074; 129.34498 2944842; 129.37161 28812569; 129.60627 102395; 129.7337 4305146; 129.8513 8339; 130.25374 6138; 130.29147 8465166; 130.58081 8323; 130.68682 30130; 130.74385 428773; 130.81347 1662017; 130.99025 9170622; 131.1288 26767; 131.43776 48610; 131.96467 67853; 132.09199 72001; 132.1519 1640481; 132.19142 110675; 132.20295 1567933; 132.25324 24257; 132.28792 5902; 132.48082 31834; 132.51571 59540; 132.56712 150359; 132.59774 2529426; 132.60495 6443; 132.93657 22131; 133.22844 2636; 133.46773 2077940; 133.49717 29964; 133.91812 14760345; 134.27214 55872; 134.51734 21185; 134.76456 9769954; 134.78254 8088710; 134.8382 4122252; 134.89057 883386; 135.71907 17567; 135.73429 1188369; 135.84136 29921; 136.08197 95840; 136.09189 1324240; 136.51371 812624; 136.59503 5959; 137.0139 2520; 137.13537 61293; 137.26985 5182; 137.29174 114670; 137.35029 47476; 137.42525 16749; 137.51719 135; 137.55636 28143; 138.22664 1191095; 138.38646 4959; 138.3974 253397; 138.43426 41441; 138.63446 26069; 139.02538 30270; 139.09419 29605302; 139.10022 881992; 139.20142 47818; 139.42093 154556; 139.4311 6070962; 139.50176 14928296; 139.70364 10748; 139.74056 596218; 139.74304 36464; 139.85786 3303937; 139.90042 3560974; 139.92922 26210; 140.06778 36480; 140.11005 52693; 140.2596 14786; 140.48621 662476; 140.56263 47861; 140.63545 1932007; 140.7817 1148763; 140.85174 9502767; 140.95846 25058; 141.01044 20952; 141.19156 4757; 141.22005 23447; 141.27069 1217; 141.54959 932619; 141.64718 7279; 141.68376 21898; 141.72616 205759; 141.75563 20136; 141.91538 69275; 142.14091 272064; 142.27222 133767; 142.51444 52666; 142.55767 8763; 142.7979 1712393; 142.81023 21877; 142.89888 40051; 143.74897 870; 144.22179 1202178; 144.43101 1870176; 144.48167 18333; 144.6532 1275058; 144.79571 7935620; 144.99044 122620; 145.04954 33135; 145.56159 7010705; 145.57728 34080; 145.60411 150568; 145.75827 3148570; 146.17583 2835; 146.22874 27066; 146.23902 1964330; 146.40046 5169; 146.49 4404786; 146.53645 1608779; 146.64882 3818; 146.81637 5606488; 147.10617 191348; 147.21495 5097939; 147.28103 1319; 147.38071 167378; 147.41795 306449; 147.86114 4601; 148.14281 7525; 148.69223 621368; 148.81015 1036315; 148.97171 6943; 149.07103 3597460; 149.16723 4331; 149.49097 487154; 149.83547 2523; 149.90803 33611; 149.9116 757830; 149.94209 39645; 150.06674 2215711; 150.2525 1572498; 150.26119 1994841; 150.37963 24075; 150.60836 29166; 150.77303 2742156; 150.89396 49298; 150.89481 1223981; 151.1138 43825; 151.94802 2532495; 151.98043 18084; 152.44219 55812; 152.76427 3589; 153.27169 1082763; 153.36755 1338868; 153.86534 6098; 154.17176 539877; 154.4698 44876; 154.54695 4468; 154.70701 169023; 154.80759 3325; 155.16039 1854625; 155.23363 1340; 155.27064 9375; 155.36681 3376; 155.37816 3795028; 155.59178 138658; 155.65929 629300; 155.96042 7891; 156.18428 12434733; 156.20633 386462; 156.22923 5084682; 156.24186 34088; 156.53626 25567; 156.64847 76487; 156.76638 9304673; 156.87346 644175; 156.93347 389423; 157.09205 171162; 157.11828 1990054; 157.13956 13084047; 157.1713 47075; 157.19207 341305; 157.4248 21390; 157.48169 1341426; 157.53667 32389; 157.88031 19004; 157.88792 25034; 158.13267 44460; 158.14647 149376; 158.48162 41748; 158.72868 9777056; 158.76786 44818; 158.76834 75073; 159.01845 56806; 159.1495 2978527; 159.25464 194374; 159.25731 7110935; 159.36764 69185; 159.42236 6201; 159.46264 15219819; 159.86723 3331620; 159.93059 4063; 160.29506 955460; 160.33805 823886; 160.40765 7018; 160.54536 1173978; 161.0486 3486720; 161.08001 185272; 161.39124 6098; 161.56587 23713; 162.03626 30578; 162.15147 1670419; 162.20352 6024; 162.2923 637833; 162.30223 39654; 162.43332 2770; 162.60737 4116; 162.7009 54884; 162.83263 8246; 162.85244 5918; 162.96321 7441; 163.02548 434836; 163.09414 23972; 163.12408 13845; 163.12684 25447; 163.32829 2994475; 163.89124 364728; 163.95736 8495250; 164.01711 22620; 164.06936 1980481; 164.36929 3713; 164.3787 484; 164.62381 1538482; 164.764 77538; 164.86999 74433; 165.06456 2789; 165.77794 65944; 165.90137 16314661; 165.99778 40017; 166.38808 2966265; 166.42918 150661; 166.57822 1492207; 166.70371 9927012; 166.76403 32193; 166.80395 5227; 166.88711 8226131; 166.95383 20990; 167.26941 36679; 167.29861 30336; 167.33118 23268; 167.60669 64938; 167.82812 1848; 167.86248 20682; 167.98992 28027; 168.16952 172625; 168.22691 5522; 168.45711 63782; 168.52718 9725955; 168.59317 728744; 168.69125 242225; 168.95891 6200096; 169.11523 26044; 169.21343 30659; 169.3514 29385; 169.7484 8667588; 169.89575 14960; 169.91406 12979195; 170.06728 6439; 170.17926 67812; 170.20456 102521; 170.32037 849618; 170.4035 26768; 170.41705 27702; 170.51143 133470; 170.9081 2274839; 171.13751 1924219; 171.17026 1184525; 171.22464 533000; 171.59864 9654279; 171.62016 1427142; 171.70605 1548755; 171.83933 1404731; 171.93767 1882218; 172.01457 121631; 172.26939 12161328; 172.80371 522358; 172.88483 8604; 173.03547 1118; 173.11757 1348178; 173.22253 35509; 173.35251 2369652; 173.96562 4850; 174.05429 7849; 174.19775 27833; 174.53265 59336; 174.76338 487469; 175.1083 88621; 175.25728 4976278; 175.38459 72730; 175.57205 76818; 175.60486 284152; 175.68499 1655859; 175.8619 7643827; 175.86901 535524; 175.88492 73279; 175.91772 1787615; 175.95295 506259; 176.26181 729057; 176.46996 8930; 176.52661 506305; 176.55496 816498; 176.59532 137870; 176.81218 14682645; 177.34011 75368; 177.70893 21057; 178.12078 76619; 178.33275 344366; 178.50772 8019946; 178.74464 29385; 178.75163 6986642; 179.07464 7343470; 179.19126 187826; 179.24207 4975748; 179.4821 33558; 179.49658 9808; 179.53527 3826493; 179.66401 1234334; 179.68898 35794; 179.69007 47581; 179.71058 29229; 179.96122 60614; 180.00721 772141; 180.20141 7442; 180.21655 8079705; 180.75919 3379516; 180.90181 86857; 181.12897 4869; 181.17106 40452; 181.62271 828941; 181.67062 1872622; 181.71571 728753; 181.76905 6936; 181.94214 27072; 181.97212 150733; 182.09608 21200; 182.28755 26084; 182.35508 8876; 182.39189 24523; 182.56506 29378; 183.10243 506284; 183.3764 28266763; 183.70033 2417116; 183.73759 440331; 183.92183 4098005; 184.12141 50187; 184.43591 134045; 184.60919 493365; 184.66532 23581; 184.71786 8252008; 184.97088 8441; 185.04599 969996; 185.16355 139606; 185.46223 2839; 185.47875 36060; 185.79934 1721380; 185.88597 97198; 185.92328 335431; 185.96992 94790; 186.16025 14202155; 186.4611 1269639; 186.60957 34783; 186.87399 25673537; 187.32815 64706; 187.4599 71784; 187.85499 74414; 188.00937 67006; 188.1541 1261095; 188.31304 348086; 188.91401 27856; 189.19471 47522; 189.24609 8604913; 189.35535 20434; 189.40086 1349372; 189.47487 1966; 189.63331 1343403; 189.84418 30337; 190.02127 1497; 190.38396 4696656; 190.50529 74323; 190.50939 513842; 190.56757 60069; 190.78821 26106; 190.79557 40648; 190.8022 21010; 190.87933 36052; 190.90347 5016427; 191.10968 57943; 191.217 29489; 191.48727 48975; 191.55026 1562; 191.92686 1686561; 192.11824 52355; 192.28927 20678; 192.36225 1037385; 192.60023 5696; 192.77283 12936; 192.79291 7556; 193.06264 41876; 193.17211 530; 193.25738 45984; 193.36128 41720; 193.37467 15432685; 193.80401 152969; 194.3155 20407436; 194.55098 23593; 195.29815 4660081; 195.55199 3532966; 195.62731 816792; 195.6498 7321; 195.74551 11459; 195.81868 5376; 195.89447 4414470; 195.93779 50368; 196.02632 1444786; 196.06769 7301; 196.30277 3191; 196.45144 1348836; 196.97229 8660281; 197.23011 4137; 197.24434 31629; 197.25371 6955; 197.53169 49146; 197.53402 36405; 197.69958 43278; 197.85605 965; 198.38919 21015; 198.65993 7276; 198.78122 5831; 198.79968 62029; 199.0199 149396; 199.25516 397275; 199.40693 108239; 199.50775 102112; 199.62187 29744156; 199.82572 2470267; 199.8339 2905; 199.85237 21269; 200.21661 30352; 200.38228 5531177; 200.44495 2109312; 200.54139 50593; 200.65683 23443; 200.66636 104715; 200.76513 7884; 200.94363 14810; 201.40782 19931112; 201.72625 20671; 201.74729 8176; 201.85587 378069; 202.39853 563; 202.51059 18726; 202.61988 25741; 202.95808 10348; 203.01921 873195; 203.29228 3012689; 204.06236 2295594; 204.31864 76917; 204.6979 119; 204.95325 6652; 205.19434 75114; 205.81783 25187; 205.91043 1500; 205.95126 4994703; 205.95536 1382413; 206.00413 20641721; 206.11499 45799; 206.27403 42199; 206.32422 8420140; 206.45731 67550; 206.47825 598433; 206.53741 51314; 206.56494 53472; 206.6162 540648; 206.7883 67055; 207.23822 8506456; 207.42242 28974; 207.47408 9803; 207.75747 48375; 207.78104 1288920; 207.83992 53947; 207.99225 65581; 208.00184 4462816; 208.28972 7907; 208.43846 1150216; 208.50574 71512; 208.5071 7443; 208.80364 28669453; 208.95229 9367; 209.17994 144858; 209.27463 4162059; 209.46556 733161; 209.51178 3923601; 209.5441 11309; 209.63411 1310228; 209.72699 176593; 209.8743 76194; 209.92435 71514; 210.13329 2071; 210.23964 23817; 210.37451 74703; 210.56923 8697; 211.11976 4958383; 211.17258 4916; 211.36974 36895; 211.7084 32993; 211.76451 1011309; 211.76492 75910; 211.8206 5660; 211.9267 22619; 212.09949 26335; 212.34969 996; 212.36413 18440744; 212.47528 11075368; 212.56774 5119774; 212.68602 69231; 212.74399 39166; 213.13555 2683612; 213.23221 3700; 213.25674 104648; 213.94972 88568; 214.05203 109037; 214.08635 153284; 214.3666 388076; 214.57367 8310; 215.06975 60334; 215.46194 9899; 215.54689 22172545; 215.71133 175203; 215.85179 1685266; 216.1024 1633633; 216.1764 42794; 216.2494 55659; 216.67102 30788; 216.80087 5549629; 216.91402 4133150; 217.02234 56268; 217.10187 4589675; 217.17506 24412; 217.84591 28889; 217.93276 15007780; 218.11162 26054; 218.33627 541109; 218.40943 26350; 218.42873 1069991; 218.58447 170229; 218.62558 10156; 219.04601 3041; 219.07239 58784; 219.18004 1553480; 219.7079 70103; 219.78379 46277; 219.90701 356313; 220.03533 7637451; 220.49 23415; 220.67051 22978627; 220.71225 753158; 220.77386 61904; 220.83425 3830757; 220.84189 71088; 221.24504 3775120; 221.33568 456723; 221.58171 10016; 221.59468 12699495; 221.66545 61455; 221.7366 26951; 221.86971 1200672; 222.16678 8698; 222.94119 4394749; 222.97228 1109258; 223.08327 2671; 223.57249 467240; 223.68896 60978; 223.75779 1593088; 224.02382 26434; 224.34815 218164; 224.54591 803191; 224.56083 73657; 224.62223 2395757; 224.66295 3445860; 224.86926 551; 225.03074 56410; 225.2823 1129185; 225.61211 1802301; 225.95702 3833318; 226.02858 9394; 226.07524 7829; 226.35742 5394; 226.39615 434476; 226.40947 1064705; 226.5597 1709892; 226.65787 16612; 226.67317 240413; 227.00369 41144; 227.15476 9783255; 227.20199 68152; 227.443 2149278; 227.53711 3986472; 227.62814 47974; 227.87561 68319; 228.433 67674; 228.47079 19835; 228.49796 19936; 229.01388 6725138; 229.12428 42196; 229.29379 13816; 229.4977 13192; 229.90051 2476; 230.2001 2877862; 230.4458 25055; 230.47429 293; 230.64011 2436919; 230.70289 32250; 230.78316 4734056; 231.41897 5550; 231.41913 23347; 231.99859 38646; 232.31925 4174; 232.53517 1227; 232.5523 1298557; 232.56463 186743; 232.58005 3321; 232.59937 37956; 232.63896 67088; 232.70337 8517990; 232.88435 20082; 233.51027 7508; 233.60566 1500; 233.69405 4712976; 233.78201 17972; 233.94569 3486; 234.0134 75497; 234.16642 74281; 234.75243 22765; 234.84222 9157952; 234.85423 56602; 234.87583 21072; 235.63631 26273; 235.70581 9384; 235.76123 3292816; 235.83055 75209; 235.97916 23385; 236.12655 13834242; 236.88404 47923; 237.21871 36650; 237.71186 6299642; 237.71733 2093065; 237.73316 6972500; 238.52615 1272468; 238.54401 74720; 238.90228 72782; 239.39616 6607; 239.56274 9189; 239.83188 23175; 239.858 630699; 239.88903 71845; 240.08877 865704; 240.1401 290541; 240.18702 18657; 240.43886 3089803; 240.69555 2159283; 240.77442 69; 240.88845 44717; 240.94432 979366; 241.11456 858370; 241.20667 8060; 241.94587 42025; 242.26156 4258; 242.57929 12414; 242.6746 28467; 242.70971 1352165; 243.18914 15253; 243.21616 166710; 243.32087 4552686; 243.72111 29208; 243.73937 893690; 244.39268 5088754; 244.66837 69309; 244.69777 7884; 244.86069 17696288; 244.87113 1534627; 245.08401 1117479; 245.19023 63937; 245.27844 73696; 245.27983 6169; 245.35596 44625; 245.71695 781341; 246.2033 1121; 246.52113 23930; 246.53839 8457; 246.59261 32382; 246.8116 8159875; 246.91221 1305002; 246.92215 76702; 247.22448 15649; 247.6178 25202; 248.11631 606433; 248.26482 32892; 248.274 33029; 248.3657 28293; 248.55674 199581; 248.60788 1102646; 248.72357 36297; 248.78152 130521; 249.55416 91349; 249.80349 17596828; 249.81747 4358; 250.48866 17199; 250.70436 559320; 250.81888 816751; 250.88799 12598; 250.95466 23195; 250.99187 69157; 251.03557 38877; 251.46556 63293; 251.59247 16361; 251.61444 7378; 251.93013 24155; 252.28883 233; 252.29659 10868854; 252.47092 177554; 252.58445 17336; 252.59633 14998; 252.71857 24332; 252.82177 2527774; 252.84068 5863; 252.93164 783922; 253.04729 74314; 253.19537 867138; 253.32722 61947; 253.4044 1727; 253.59706 60161; 253.64265 127252; 253.6604 77316; 254.04459 8353955; 254.06402 882355; 254.13243 23846; 254.1501 749539; 254.23327 155315; 254.65285 1079340; 255.04498 1708462; 255.26137 414790; 255.35302 100391; 255.64975 75947; 255.74069 43213; 255.93784 216; 255.9844 1552433; 256.10919 4946; 256.16003 3451957; 256.22368 37317; 256.57022 7123160; 256.76633 29650; 256.89888 513642; 257.01998 19350; 257.09585 822106; 257.29985 59235; 257.42391 167564; 257.52194 154397; 257.59479 2617; 257.73444 1145000; 257.82277 31041; 257.96836 7586; 258.31586 13190; 258.44939 39606; 258.7561 1853914; 258.76231 14089; 258.816 195744; 259.33755 19089; 259.4694 22274; 259.65236 35409; 259.78246 1043223; 260.31501 6418; 260.5302 1626792; 261.03409 29363; 261.32492 583; 261.68288 588; 261.90937 991; 262.16914 192490; 262.21903 4896; 262.44384 45894; 262.62609 986360; 262.74505 9933461; 263.50944 7872; 263.72266 40094; 263.80872 27521; 264.11239 2508045; 264.39098 39217; 264.41332 5698; 264.70631 1372303; 264.75129 61547; 264.89158 4884423; 265.08893 9290169; 265.20269 25822; 265.29518 39522; 265.62691 50383; 265.84713 510591; 265.89438 302399; 265.89979 2429853; 266.06093 2598; 266.10185 2090088; 266.25432 6459649; 266.77667 9372; 266.80231 72954; 266.87909 2702975; 267.21491 1983753; 267.22845 68184; 267.22887 30675; 267.4648 7525618; 267.59521 54952; 267.75597 112822; 268.37902 6717; 268.4572 6953434; 268.54538 9307; 268.57377 4596080; 268.59202 1033; 268.79343 7355; 268.9687 8612218; 269.10004 197335; 269.45871 191262; 269.47523 50670; 269.71272 24584; 269.86145 834310; 270.41361 19276196; 270.41898 1358439; 270.49386 471236; 270.56736 82837; 270.65571 129684; 270.7929 6979687; 270.80814 9250; 271.07541 5172423; 271.60023 1854513; 271.77266 72306; 271.78642 32718; 271.90929 8921536; 272.34217 8258; 272.47763 61186; 272.51497 2527269; 272.54864 157251; 272.67147 13052; 272.81551 24146; 273.1218 325420; 273.22063 803911; 274.04345 61741; 274.21838 55911; 274.27351 3803923; 274.88572 63533; 274.99726 20810; 275.06007 3634421; 275.07102 665; 275.21137 9190; 275.2975 9666277; 275.40657 4007; 275.5026 71403; 275.5191 1225533; 275.67324 64362; 275.69394 48779; 275.80641 47401; 275.82021 48401; 275.86044 1080500; 276.08024 9093; 276.12724 26820; 276.52667 859074; 276.59294 26717; 276.64317 63276; 277.07673 2050164; 277.14292 472104; 277.19583 579; 277.48293 2475625; 277.61305 22394; 277.68298 16338306; 277.80014 16988; 277.82629 33529; 277.87146 921446; 278.1405 18596; 278.15354 2608072; 278.40844 46966; 278.8 69622; 278.84837 4921; 278.91244 9683; 278.93409 54512; 279.0236 21990; 279.03378 4571417; 279.0562 244949; 279.07053 3217750; 279.21679 2843598; 279.24689 5825136; 279.2708 109581; 279.44611 10951; 279.50987 76533; 279.76792 24507; 279.80221 195206; 279.82294 2266575; 279.83937 1632370; 279.97611 14218; 280.02177 5925; 280.45461 42489; 280.61316 9924; 280.63111 8135; 280.83029 27203807; 280.92887 77250; 281.21058 49872; 281.22953 44795; 281.26898 2365581; 281.39776 4643266; 281.41502 1990060; 281.68461 18335; 281.92237 1135; 281.94349 1284843; 282.12225 3639241; 282.62409 6608; 282.90074 61773; 283.09037 28646; 283.38449 16209; 283.71995 4841; 284.32528 1367; 284.62278 71222; 284.83158 3408257; 285.06289 1959855; 285.18607 3344080; 285.53928 2692537; 285.71718 59248; 286.26969 161868; 286.70981 34939; 286.72375 3025201; 286.8219 7013; 286.88488 1572537; 287.48734 2217; 287.53615 191603; 287.83545 381608; 287.94999 2406950; 288.24664 30193; 288.34192 62559; 288.5188 71847; 288.52113 56479; 288.5429 1266983; 288.83889 1020367; 289.10188 9401; 289.13779 35422; 289.27598 47453; 289.47931 71583; 289.62306 27346; 289.65708 198077; 289.71767 62256; 289.87329 64020; 289.88835 951217; 289.95403 2194054; 290.16088 2914355; 290.17131 4436; 290.25302 4373714; 290.65352 77738; 290.86099 537323; 291.01172 8500818; 291.23846 34263; 291.71111 5369; 291.81845 25002; 291.89767 4276; 292.28032 78701; 292.40419 3324; 292.43339 358038; 292.50997 1761125; 292.56181 72885; 292.79247 74849; 292.88944 40235; 292.95748 139197; 293.21841 8867; 293.22703 963645; 293.54418 919250; 293.69685 75203; 293.70449 195351; 293.82041 26404; 293.96794 4437; 294.00392 3536378; 294.30098 91330; 294.48816 50136; 295.12534 951393; 295.21468 9707; 295.24131 20165; 295.24381 614423; 295.25658 102791; 295.29134 196870; 295.35378 32703; 295.48978 24688; 296.13544 46777; 296.56252 532419; 296.6126 510007; 296.81569 36580; 296.84185 51865; 296.92408 6085121; 297.47843 74983; 297.49903 7539754; 297.50956 7003946; 297.64725 178; 298.05676 29886; 298.46541 61146; 298.4957 133841; 298.53363 1724461; 298.6422 168388; 298.71389 2816972; 298.81768 53088; 298.88002 75012; 299.04951 6048; 299.12979 11520; 299.64708 28036; 299.94515 79358; 299.98426 64366; 300.0684 3711; 300.43273 738; 300.6385 36920; 300.73235 589825; 300.79001 4022738; 300.87932 74525; 301.46551 137267; 301.47468 1071; 301.64314 20386; 301.77878 3311847; 302.01638 798; 302.3303 9345831; 302.6332 194370; 302.66105 102368; 303.23888 1651297; 303.52753 1165; 303.66909 5010; 303.73928 1921994; 303.76584 191828; 303.95059 8447498; 303.99878 182723; 304.10517 27455; 304.20992 9278; 304.29912 44152; 304.86065 2483; 305.09688 28365; 305.21 478563; 305.24612 1998486; 305.35549 4434305; 305.39508 21021345; 305.51158 1548246; 305.51662 78627; 305.80505 3729112; 306.14398 199422; 306.16439 5474861; 306.37751 948439; 306.45885 11249; 306.47176 359350; 306.81686 5031250; 307.17202 7512461; 307.46131 1077148; 308.00296 9834079; 308.07163 2460475; 308.39671 845604; 308.46804 7872308; 308.87899 25749; 308.89757 36575; 308.93545 54209; 309.15662 9399948; 309.18195 22495; 309.20843 1475958; 309.24025 3872215; 309.45874 1800751; 309.76106 4902; 310.33773 3574; 310.38798 415081; 310.51961 49786; 310.57159 3254324; 310.62104 9950163; 310.70998 41220; 311.1792 26586; 311.19639 1456205; 311.41996 197920; 311.60452 24710; 311.74048 43926; 311.87235 70896; 312.09338 166233; 312.26054 63971; 312.33755 157785; 312.35432 538807; 312.39319 4232848; 312.95307 1545227; 313.09634 174796; 313.27098 1822871; 313.34098 1098728; 313.75283 1380906; 313.93169 1978140; 314.0812 870012; 314.083 6436840; 314.25027 8833739; 314.28302 20452; 315.42192 73564; 315.44402 832; 315.70684 9417923; 316.2062 15281; 316.23368 918117; 316.2835 17182; 316.52546 394764; 316.61875 20666; 316.63806 97502; 316.74998 8950; 316.94604 47628; 316.96261 27475; 317.23259 33532; 317.40525 4222725; 317.59066 9435791; 317.83159 522409; 317.94099 28850; 317.98744 75426; 318.35192 650228; 318.54575 16243; 319.27656 26774321; 319.69673 73197; 319.73368 20902; 319.90995 2615148; 319.95957 70031; 320.09983 7513; 320.25033 29571; 320.4533 24545; 320.60723 1791813; 320.82889 1848675; 321.33312 9933; 321.46718 3463947; 321.84524 52195; 321.95031 783373; 321.98389 36; 322.00837 63383; 322.67612 27260; 322.74726 2555569; 322.90167 15195; 323.09894 3796030; 323.1395 3826806; 323.46908 1812281; 323.75479 28508; 323.77552 6299; 323.84762 6772348; 323.8774 47209; 324.06394 46369; 324.06555 1724382; 324.11235 40335; 324.21804 1263431; 324.33853 23877; 325.00285 27403; 325.06932 2846; 325.081 8786335; 325.21133 19838512; 325.43275 2112372; 325.95161 21367; 326.59063 172495; 326.69121 14632; 326.84128 294178; 327.14219 68380; 327.27398 7836859; 327.30529 6632212; 327.65025 1589298; 327.69803 184308; 327.7564 22655; 327.95073 214; 328.20965 22591; 328.25061 1613977; 328.36047 53258; 329.00882 4227824; 329.09497 91536; 329.9357 1591972; 330.15204 18615409; 330.30463 4258821; 330.55748 49082; 330.61598 21915; 330.6457 13931; 330.6689 3797; 330.82574 917958; 330.89192 156268; 331.17533 9446; 331.39192 4366; 331.48397 21390; 331.62742 49372; 331.66078 200142; 332.041 18024352; 332.49633 22316; 332.76274 43731; 332.85041 1676; 332.94478 58667; 333.07243 3944859; 333.43116 68332; 333.45296 2236177; 333.5808 74537; 333.66562 9004721; 333.67189 25903; 333.77708 2380947; 334.12944 56139; 334.76637 1534349; 334.78522 77419; 334.88422 9844; 334.94391 76193; 335.04849 1375782; 335.66778 20581; 336.59078 3561086; 336.63017 9739; 336.63428 9501; 336.66328 1192; 337.26169 812519; 337.44852 104072; 337.55437 5839834; 337.55961 199575; 337.70175 57175; 337.7923 164575; 338.20058 23579; 338.31072 60832; 338.31087 1528460; 338.37383 4901038; 338.48608 54901; 338.70377 465836; 338.74782 67553; 338.95848 847238; 339.32193 12710; 339.39948 1143005; 339.51603 808676; 339.73703 785427; 339.90526 68153; 340.22398 2815; 340.27695 9523; 340.46492 176595; 340.57927 8932501; 340.68212 24616; 340.82286 9046; 341.13162 3130650; 341.46 183145; 341.49179 2662185; 341.8358 2094; 342.12094 33538; 342.24243 73339; 342.26995 514284; 342.42293 9310; 342.45026 1669842; 342.50953 26308; 342.74851 521845; 342.80338 4499671; 342.93426 206423; 343.05532 22239; 343.39308 2511; 343.46928 2004117; 343.67364 270652; 343.76348 66848; 343.98691 69625; 344.32013 4270861; 344.44835 28210; 344.78233 48956; 345.20576 7776; 345.28628 2736755; 345.36864 48; 345.37887 41471; 345.64689 1691876; 345.83282 1414710; 346.25019 574969; 346.25724 12467; 346.36473 174163; 346.66032 11040; 346.80345 13773; 346.8863 102355; 346.9047 126; 347.28566 130761; 347.4781 971816; 347.5022 2787927; 347.68486 6877; 347.94081 21258; 348.18155 9260; 348.88074 185272; 349.08783 657913; 349.39079 1346747; 349.39672 5330; 349.48763 59021; 349.54699 40416; 349.99054 5777; 350.00106 59989; 350.09918 9630429; 350.68985 199823; 350.73615 30961; 350.93381 10330767; 350.97073 29631; 351.05908 32007; 351.61923 8124325; 351.82417 50365; 351.86871 4412729; 351.91864 40209; 352.00248 953066; 352.36702 1985030; 352.54201 25115; 353.03713 18397; 353.44736 73601; 353.47983 146421; 353.51729 412469; 353.61036 140220; 353.84615 1054240; 353.93148 183008; 354.10916 4060345; 354.19036 54578; 354.59388 8200357; 354.66132 24700; 354.88578 8324; 355.04144 15705; 355.10883 64316; 355.38062 59864; 355.44631 26154; 355.5672 7299; 356.00557 1613590; 356.12954 9168325; 356.16168 78819; 356.71883 76023; 356.73595 184888; 356.74578 28420; 356.85049 1133455; 356.95554 63949; 357.03898 66153; 357.38496 28349; 357.46443 1348737; 357.75383 405870; 357.80937 78259; 358.51049 9873652; 358.7062 17157885; 358.78925 571210; 358.84884 108943; 358.89756 17889; 358.89824 7854; 359.29378 47714; 359.30488 7376015; 359.30881 66899; 359.51768 1469239; 359.55453 7536; 359.87242 4823406; 360.45872 4913261; 360.51856 25025; 360.53684 126688; 360.56679 3258799; 360.7721 1756284; 361.10735 1935216; 361.11454 47215; 361.16267 109182; 361.41599 10904403; 361.48928 1131; 361.52647 1861925; 361.65772 4833239; 361.78026 9057; 361.97363 41942; 362.15818 9767031; 362.35991 64264; 362.62584 6977; 362.62758 126143; 362.66507 5972; 362.70058 17262; 362.79303 2460522; 362.9945 958722; 363.58155 76935; 363.87677 1364941; 363.89264 9687164; 364.14862 491557; 364.36164 1675204; 364.48257 32866; 365.14594 568848; 365.16238 79871; 365.32562 61590; 365.39684 48256; 365.48574 19402025; 365.57279 97748; 365.67797 1537922; 365.87023 67078; 365.96331 4010733; 366.0842 638698; 366.25291 37208; 366.37345 73420; 367.34744 3233206; 367.49538 2158; 367.83624 102897; 368.06698 1486219; 368.25832 54295; 368.43886 153; 368.90868 1471; 369.38933 10890; 369.54421 5382491; 369.80495 28892872; 369.93869 121825; 369.94416 3224976; 369.97336 196597; 369.98969 11160848; 370.1909 885021; 370.31902 1492926; 370.41224 2195; 370.65643 28963967; 371.10494 2188971; 371.17318 13858; 371.27377 2386; 371.30093 89415; 371.30761 14100860; 371.35704 5415310; 371.41452 43515; 371.42448 1523047; 371.49302 18774; 371.74944 179388; 371.79455 70394; 371.82577 380799; 371.94287 823348; 372.13182 4412; 372.29195 69448; 372.47383 18261; 372.57598 26360; 372.63477 11965; 372.68023 1409; 372.76347 65985; 372.98383 125207; 373.03026 1908197; 373.23695 28372; 373.48276 3928; 373.48377 74225; 373.63806 29517; 373.67183 70336; 373.83927 58424; 373.98509 55437; 374.00758 4855374; 374.8809 35864; 374.94566 926; 375.37677 1765944; 375.45874 197197; 375.50762 64769; 375.70255 7543705; 375.87729 1407137; 376.01789 4994724; 376.22837 4847; 376.32821 79166; 376.43664 15421; 376.61504 1090461; 376.67349 45501; 376.81297 1270801; 376.83075 29712; 376.85518 3159696; 376.91187 38986; 376.9186 51963; 376.95017 185621; 377.03489 28408; 377.13418 3572; 377.39569 811768; 377.75589 77901; 377.89516 1750672; 377.92963 74888; 377.99993 18364125; 378.14294 113863; 378.188 2142; 378.21255 1548236; 378.47756 5189; 378.94095 1992436; 378.9645 72701; 379.25986 1839232; 379.49759 225955; 379.62473 47685; 379.72503 8103964; 379.85628 977835; 379.87708 65795; 379.92501 5571480; 379.93312 853551; 379.97037 3220997; 380.07527 22849; 380.16487 924667; 380.21241 92036; 380.34411 479059; 380.77747 7152; 380.89826 3772714; 381.22994 1434301; 381.63598 29826; 381.65044 64693; 381.71278 1508; 381.95252 5459; 382.01627 230; 382.20959 1991282; 382.27673 71745; 382.47479 55486; 382.57699 1964; 382.65228 20551; 382.68437 1045552; 382.92082 13545; 383.18363 49472; 383.43135 154369; 383.63032 59865; 383.65812 1997487; 384.09144 5694; 384.1666 38143; 384.18896 4960169; 384.30421 560302; 384.33665 72353; 384.36077 59772; 384.60867 31982; 384.80275 58021; 384.81243 809139; 385.01584 766544; 385.06294 513437; 385.10645 7382; 385.38059 2075; 385.68363 3694087; 385.85291 26629; 385.97047 49743; 387.08792 1900293; 387.1234 38386; 387.18181 28957; 387.2139 1148; 387.347 19514; 387.35144 13350; 387.62634 4637601; 387.66455 7193; 387.96791 4645; 388.46554 53406; 388.60561 8586; 388.69739 27632; 388.724 1231030; 388.81603 20245; 388.86788 21803; 388.92367 4916597; 388.93719 2849; 388.94579 15872; 388.97894 69367; 389.08851 1275; 389.22679 63718; 389.30558 20367; 389.32973 556149; 389.41555 33343; 389.83358 9030084; 389.8993 15700; 389.97422 62582; 389.9953 26299; 390.39952 778457; 390.40157 4226253; 390.64741 739853; 390.92937 242423; 391.03472 1003265; 391.36632 985741; 391.42003 34114; 391.66447 43047; 391.9743 72698; 392.06381 6708280; 392.26366 184729; 392.36098 4733; 392.42436 53824; 392.65967 12789; 392.69318 38880; 392.89385 31123; 393.15461 25290; 393.41062 7508; 393.43414 18382662; 393.66713 66782; 393.75407 681673; 393.86809 702812; 393.94713 395868; 393.96373 3196195; 393.9803 1897688; 394.2058 9099; 394.27764 21152352; 394.28425 59546; 394.8216 1073329; 395.16468 986513; 395.27585 70065; 395.43008 829814; 395.47339 1003027; 395.64891 1127124; 395.70549 7110; 395.85457 954464; 395.92682 296088; 395.9671 49479; 396.16856 23551; 396.33352 88249; 396.50446 3355992; 396.52977 195016; 396.58334 703470; 396.87879 58207; 396.99013 6209; 397.11132 29782; 397.16174 38775; 397.2445 24587; 397.39609 39197; 397.41831 1805987; 397.65379 2702; 397.88733 22774; 398.2124 7042845; 398.39604 72617; 398.45561 3671141; 398.46644 8969097; 398.51239 28443; 398.58235 50505; 398.58805 6443499; 398.74559 25408; 399.02816 30877; 399.13569 1228036; 399.59888 45205; 400.16066 2545115; 400.26695 185771; 400.66301 32443; 400.86797 6305; 400.95332 2832596; 401.13403 6899899; 401.18941 2590695; 401.57469 57112; 401.65243 629737; 401.78167 14410066; 401.85266 205028; 401.86196 2187203; 402.14057 3570196; 402.147 49117; 402.4926 41622; 402.51783 57383; 402.6915 54296; 402.92096 2299407; 403.03204 13848; 403.04944 3731467; 403.21055 54984; 403.306 562528; 403.3805 976853; 403.51917 35039; 403.60129 4095203; 403.7517 1902885; 403.76465 22752; 404.11432 34173; 404.13768 1401317; 404.25415 5555640; 404.41772 930779; 404.46807 1653371; 404.53217 70820; 404.6007 36894; 404.69216 688210; 404.7763 44333; 405.03673 31268; 405.16612 50435; 405.27297 59851; 405.43274 5818004; 405.43882 26742; 405.8525 25951; 406.24506 1238439; 406.37909 70151; 406.85261 48245; 406.87986 1411432; 406.92727 26436; 406.96847 8587371; 407.12486 4900383; 407.27903 719108; 407.53091 854680; 408.33751 96770; 409.21778 74573; 409.51434 4184; 409.56217 1971606; 410.03116 984638; 410.25763 28910214; 410.65737 35103; 410.77517 37989; 410.93635 62600; 411.22115 35431; 411.53953 464638; 411.63328 5066738; 411.64928 3776226; 412.11335 1039828; 412.12587 587889; 412.21246 408007; 412.50464 16622; 412.52345 17198; 412.52591 70746; 413.06939 392095; 413.31769 70495; 413.81873 2904; 414.356 27553; 414.49724 21915; 414.66625 3645489; 414.73157 694378; 414.87155 23509; 414.97536 7106530; 415.16379 1895018; 415.19936 226127; 415.21281 99782; 415.43484 84949; 415.47519 39101; 415.52518 22457; 415.55087 2705777; 415.57281 79119; 415.65959 704; 415.75542 155087; 415.86948 1801; 415.8792 34406; 415.89326 2731762; 416.09077 26939; 416.14632 35052; 416.44626 1102375; 416.61311 1798; 416.71443 1611630; 416.79971 8261030; 417.30603 13159; 417.35932 155233; 417.44412 2674160; 417.73301 3951336; 417.90463 16934107; 417.93579 14317; 418.13007 10396; 418.15742 42518; 418.43844 37785; 418.52194 29308; 419.06619 831128; 419.41295 5084; 419.56969 29200; 419.77483 7317052; 419.98402 796900; 420.10081 1170838; 420.20215 15638; 420.51979 1306535; 421.46763 11435; 421.82039 48224; 421.94673 7436; 422.02562 4755779; 422.07596 2234777; 422.22484 38610; 422.94732 3381336; 423.07396 8326709; 423.2404 1608974; 423.8356 6172143; 423.8696 1831037; 424.11843 21110; 424.57651 8113049; 425.14824 1785610; 425.2315 472049; 425.52379 77148; 425.85967 69609; 426.02959 5746691; 426.21772 5052225; 426.32606 69793; 426.44817 7426549; 426.47369 13551; 427.2229 25916; 427.7125 1491754; 428.01696 72249; 428.28648 2613756; 428.38871 59815; 428.60981 738834; 428.88517 34342; 428.98401 9914019; 429.01919 164125; 429.02568 1658; 429.36379 614736; 429.77211 353; 429.79611 9649357; 429.84003 20001; 429.8869 1188081; 430.10035 79894; 430.27727 21760; 430.59222 24619; 430.60971 155861; 430.7207 32459; 430.75373 48; 430.78665 146071; 431.02652 24596; 431.0634 14581; 431.08372 9717; 431.13443 13729; 431.36439 33674; 431.6868 29269; 431.69188 70371; 432.29718 1352; 432.37433 1950282; 432.4461 777090; 432.47549 713992; 432.95829 2629990; 433.1326 3633364; 433.35178 1472846; 433.45939 1064977; 433.5619 34466; 433.6035 145921; 433.73249 29569; 433.91802 13783; 434.05391 550122; 434.126 249731; 434.20367 1817033; 434.25009 1680955; 434.30087 1369453; 434.96414 7341342; 435.03832 23896; 435.13421 184; 435.42778 66074; 435.51776 8; 435.59103 423457; 435.7141 172145; 435.87684 6544; 436.07821 67127; 436.08883 66145; 436.42007 11507; 436.51424 20022; 436.75398 1488534; 436.8826 27915; 437.11355 2680; 437.62494 4539; 437.87525 58770; 437.93363 22316; 438.20871 32884; 438.28024 8175851; 438.56249 164346; 438.61662 877489; 438.93473 1293376; 439.08145 52846; 439.09862 10093; 439.11101 13828; 439.24189 167897; 439.46782 73149; 439.7848 36237; 440.00498 2838; 440.0356 2449388; 440.16392 226531; 440.22398 1776841; 440.29843 30257; 440.39946 268250; 440.41938 4056373; 440.63458 2102524; 440.74092 1217061; 440.78573 334601; 440.96226 165757; 441.03035 847949; 441.03763 5951149; 441.0946 35579; 441.23207 760397; 441.2833 107865; 441.48687 78458; 441.61628 3688900; 441.75252 165361; 441.84841 1557921; 442.40831 12393; 442.49698 274; 442.55049 474194; 442.58827 12140; 442.61038 1427902; 442.646 67369; 442.72548 3483530; 442.8066 55557; 442.81101 9859; 442.86149 50764; 442.99259 7319; 443.04586 1568510; 443.15987 24312; 443.49687 7840; 443.56928 651826; 443.74305 14912; 444.04545 7952389; 444.25257 55265; 444.32866 34427; 444.34241 28946; 444.37176 3481; 444.42946 74268; 444.53268 6442; 444.64991 27915; 444.8514 9376; 444.94507 155459; 445.02482 7365905; 445.39218 29498; 445.40098 2608; 445.43534 2843; 445.55011 9370076; 445.81698 27246; 445.8419 66202; 445.85023 7638372; 445.86302 24347; 446.47685 65018; 446.52556 3774615; 446.96339 31866; 447.70411 192090; 447.71421 2849; 447.74971 1598153; 447.81863 1426922; 447.83799 17881; 447.98654 7580331; 448.24582 340675; 448.33942 572459; 448.61471 175507; 448.89117 7432146; 449.11722 35096; 449.28595 6367677; 449.37339 1541417; 449.48245 83756; 449.73178 2183585; 449.94771 84296; 450.06591 4915405; 450.12822 67328; 450.24564 26093796; 450.39095 29934; 450.51239 626; 450.55729 33888; 450.5609 97534; 450.82252 137783; 451.05237 135553; 451.43684 34271; 451.49333 1454507; 451.50853 53296; 451.65284 5491; 452.02552 1775678; 452.74524 690487; 452.77267 2023907; 452.92542 5447156; 453.22611 47471; 453.44914 18387622; 453.5431 26986; 454.09972 756661; 454.2441 15419751; 454.4371 1074714; 454.52472 7919; 454.57193 4027; 454.65132 902395; 454.86299 23335; 454.86496 91654; 455.0286 2200; 455.30375 9081632; 455.31761 4052538; 455.62361 62819; 455.63484 23490344; 455.8244 70842; 456.24624 2923605; 456.47723 44656; 456.65835 1135235; 457.04337 23919; 457.20612 6447; 457.26811 4450106; 457.33625 2898568; 457.40006 42401; 457.51833 4189260; 457.66923 129785; 457.75665 2206850; 457.81363 9641; 457.86858 1047000; 457.86949 4850814; 457.9244 5307087; 458.66234 6232; 458.95311 23270450; 458.95758 112590; 458.98768 27861; 459.6816 14062; 459.70364 18083; 459.87842 50197; 460.44446 320545; 460.50018 16770; 460.81499 2722; 460.91009 25260; 461.07807 16974; 461.16511 1543; 461.38348 19534; 461.43268 27888216; 461.51898 337079; 461.73581 106247; 461.74813 9765709; 461.95574 11634; 462.33668 21275; 462.81349 645971; 462.82603 9118; 463.21851 20574; 463.37656 502070; 463.38147 11179; 463.42679 592510; 464.2578 34841; 464.33802 36243; 464.36903 9353; 464.60463 61284; 464.71277 1905583; 464.97913 6097; 465.3304 1778758; 465.33043 25559854; 465.50262 47358; 465.52647 172132; 465.63426 26517; 465.81203 1428376; 465.89184 71021; 465.97589 28285; 466.57337 76; 466.75938 4568615; 466.79883 63578; 466.94663 125148; 467.22367 38541; 467.26967 87929; 467.49028 79680; 467.55246 1083450; 467.85331 24858; 468.59263 1975965; 468.60564 6565; 468.64711 108312; 468.65533 64165; 468.87157 817; 469.01078 187868; 469.15512 1149683; 469.59456 49716; 470.09613 1553423; 470.21747 356951; 470.98415 20900; 471.03075 24660; 471.25469 48586; 471.38769 18024177; 471.78227 13169; 471.78358 4148562; 471.98743 1312835; 472.0703 28082; 472.23436 5382154; 472.45203 5350924; 472.58093 40547; 472.74676 6016819; 472.93278 4968; 473.01862 71701; 473.04601 580414; 473.16679 125493; 473.70747 67071; 473.81989 9724701; 474.26317 50349; 474.42033 897347; 474.43487 142207; 474.5361 18973; 474.83358 38147; 474.94736 95407; 475.27081 1746240; 475.28256 784026; 475.39124 1387130; 475.66056 28165; 475.93482 3234554; 476.01609 26612; 476.25521 115446; 476.77826 74476; 476.89395 29356; 477.27512 1681745; 477.33725 2373995; 477.44264 735903; 477.44382 9097909; 477.61755 2401; 477.74495 1283758; 477.77208 62767; 477.79894 69964; 477.94478 15213; 478.1782 36249; 478.19927 20178; 478.23501 20667561; 478.80183 62759; 479.12579 6828; 479.33431 73744; 479.52347 1421559; 479.55943 3216002; 479.57051 31259; 479.88082 7025; 480.00127 57260; 480.08484 21820; 480.37109 5012865; 480.9496 21750; 480.9538 3322410; 480.98595 9762; 481.10188 310937; 481.53023 24901; 481.58782 1586877; 481.58839 1304229; 481.59168 49080; 482.05931 9655210; 482.21666 105081; 482.46806 66351; 482.48744 2779529; 482.85591 38898; 482.99089 69585; 483.03945 6805; 483.23913 777778; 483.38473 72120; 483.63286 1659139; 483.78762 57930; 484.01495 46146; 484.07818 1977584; 484.11959 5540; 484.18413 4111745; 484.20743 28331198; 484.21602 12209; 484.24809 19806; 484.96949 44361; 485.03142 188148; 485.0573 21607303; 485.30628 1982; 485.53175 3229952; 485.75733 42183; 485.99829 9111822; 486.13194 1696003; 486.19942 38997; 486.42788 1695806; 486.6229 33575; 486.66481 36685; 486.79914 79997; 487.27446 77535; 487.34806 8019472; 487.93918 15595; 488.23215 17538639; 488.25702 73197; 488.34759 2499; 488.45654 5723; 488.54515 30917; 488.74201 3669352; 488.93026 1865589; 489.14264 1978596; 489.15986 64540; 489.29138 3437; 489.29351 115582; 489.78616 2228776; 489.99945 7965; 490.49074 1052914; 490.50119 6780; 490.52269 43705; 490.61528 2446045; 490.63397 2641315; 490.68044 9279323; 490.76769 3375; 490.80164 1488051; 491.02336 3994; 491.14557 36149; 491.31202 29585; 491.41217 181477; 491.55427 70073; 491.55673 121014; 491.57015 55341; 491.64703 45114; 492.01774 1737081; 492.02433 203061; 492.42446 15799; 492.43675 42092; 493.16189 20052; 493.2466 24632; 493.32528 2319494; 493.36895 160510; 494.10931 20114; 494.22623 1489534; 494.28854 23030; 494.35538 5989; 494.38899 1309502; 494.43765 2342695; 494.71329 555970; 494.99078 64433; 495.42067 967387; 495.43774 7129838; 495.51323 23774; 495.60708 23833; 495.66034 22995; 496.23608 1119393; 496.35696 12885; 496.57295 9301707; 496.66067 86134; 496.68181 76834; 496.69012 6374330; 496.8436 9888053; 497.22661 995555; 497.22732 1680360; 497.33928 25911; 497.45497 33603; 497.6439 9355; 497.69192 53222; 498.30725 11885; 498.47403 18275; 498.7366 1595; 499.03727 1450187; 499.08978 2860234; 499.3998 128817; 499.55635 164024; 499.66954 2756272; 499.68209 24869; 499.88667 3806321 +<0, 3>: 0.1115 1038885; 0.23062 4263; 0.26829 515780; 0.37644 6783350; 0.58449 4669; 0.87504 1368531; 0.90056 66490; 1.12689 50389; 1.29405 9147655; 1.30391 20126; 1.44196 18382592; 1.77624 2770424; 2.3627 2884; 2.69786 47717; 2.98643 2939109; 3.25245 786088; 3.46849 3238401; 3.60488 5789179; 3.84694 26672; 3.85618 27195; 3.87616 22848; 4.13145 73877; 4.15213 10762; 4.43134 2214518; 4.51804 138404; 4.7208 7458; 5.12159 6386142; 5.20283 72268; 5.36467 260391; 5.40825 22280955; 5.42656 121474; 5.49532 37902; 5.6795 354404; 5.69891 2335866; 5.91168 8887955; 6.12471 30930; 6.28399 27207; 6.65584 48657; 6.81935 5165507; 7.32589 1067798; 7.40013 18937; 7.78979 4276881; 8.22661 70197; 8.40084 1930487; 8.52534 68757; 8.73211 26762; 8.7888 7863124; 8.88649 1223627; 8.96929 581; 9.37488 44059; 9.52126 7182370; 9.59554 13691; 9.87253 919785; 9.95736 46354; 10.31084 10245; 10.46918 3243228; 10.52691 78596; 10.56962 656953; 10.58704 7451; 10.5875 6411; 10.85823 14988; 10.9141 2953365; 11.00256 784627; 11.0933 82322; 11.14481 1464; 11.21397 2874333; 11.48725 758764; 11.60962 37287; 11.62483 57672; 12.0102 2678611; 12.01837 282; 12.4698 76751; 12.84971 28421; 13.04845 42908; 13.21177 23129; 13.34247 37561; 13.35599 1675666; 13.39248 161175; 13.47893 55059; 13.55335 25594463; 13.99299 928985; 14.1148 1297262; 14.12945 41040; 14.13731 78632; 14.49955 9351; 14.64271 47877; 14.72999 1783571; 14.96454 800526; 14.97516 14927; 15.02484 24269; 15.06891 898; 15.18636 886111; 15.30327 1891950; 15.52494 691434; 15.58826 186911; 15.79175 6401400; 15.89849 8750; 16.02655 19298; 16.08934 622814; 16.16459 303752; 16.20026 89522; 16.54198 8768; 16.62525 191910; 16.6828 3266; 16.87044 324035; 16.93535 20158; 17.33672 38526; 17.39449 78678; 18.4343 272858; 18.54966 87942; 18.71291 25412; 18.99539 1675038; 19.05525 288445; 19.31925 1819006; 19.33128 22574136; 19.40145 268816; 19.66712 20749; 19.91575 368496; 20.04869 8806; 20.5324 68897; 20.70105 6781565; 20.88227 3892888; 21.58197 38433; 21.65423 28937; 21.65916 489397; 21.83561 71778; 21.96497 73795; 22.1521 2072133; 22.18194 4743; 22.34454 8889391; 22.6791 22786; 22.76246 20724; 22.7659 137723; 22.85502 3071174; 22.87184 3017704; 23.39673 140609; 23.72132 55669; 23.77824 2964; 23.78745 38688; 24.07014 4780813; 24.08746 49573; 24.09795 66805; 24.15339 80652; 24.27264 2675278; 24.39278 380; 24.4642 1274859; 24.57065 18333; 24.61127 29687773; 24.89004 53422; 25.05007 710297; 25.13541 7930; 25.13839 29324; 25.16881 910968; 25.58556 2410; 25.64445 13900; 25.65861 37546; 25.74144 51592; 25.76011 33891; 25.94696 32910; 26.10798 2672997; 26.148 23164; 26.3054 5965; 26.32473 1751527; 26.42139 7436237; 26.5732 19216; 26.71208 53981; 27.43349 4598321; 27.49192 36048; 27.51808 55283; 27.58032 56277; 27.83932 20197; 28.16101 71827; 28.20913 56117; 28.21196 20728; 28.47352 1346204; 29.00704 4333349; 29.46773 38094; 29.47309 37740; 29.51906 196916; 29.64011 9780; 29.65182 74043; 30.09636 2282944; 30.19516 152144; 30.41216 4326127; 30.80992 24118511; 31.13954 3844; 31.169 1209103; 31.26323 37083; 31.56215 4647; 31.80492 7842; 31.8473 9070; 31.86161 4466; 32.05379 7599373; 32.06659 25155; 32.25648 7160; 32.2958 61964; 32.64589 193357; 32.79448 56858; 32.80385 43397; 32.96853 728366; 33.04936 1899288; 33.29541 701936; 33.56855 3670569; 34.18469 63042; 34.32946 37884; 34.35023 5057; 34.39791 39804; 34.48676 15362904; 35.0546 52080; 35.07446 120281; 35.14631 29390; 35.16311 1219443; 35.40629 3469; 35.61864 1626593; 35.80537 906194; 35.86507 929178; 35.8789 891876; 36.12075 77444; 36.29665 57410; 36.30684 1239823; 36.96739 698319; 37.12399 22547; 37.22478 5487; 37.34302 80675; 37.36732 25647891; 37.51081 114489; 37.7758 166691; 38.11426 29102; 38.26934 28743; 38.41653 4744600; 38.56581 75041; 38.89611 65379; 38.98739 96004; 39.222 1980910; 39.59619 27239; 39.62032 9238; 39.66562 223937; 39.78862 3147; 39.88452 77556; 40.06139 133820; 40.2581 4642799; 40.53698 30111; 40.53921 74068; 40.69861 21649; 41.22634 59013; 41.50881 1323914; 41.53561 27712; 41.80809 3895269; 41.81028 15127; 41.91604 3700468; 42.02775 63487; 42.12929 6170; 42.20171 1205858; 42.7409 19220; 42.80151 20105; 42.99083 20931; 43.03049 8977; 43.03306 172290; 43.04152 60694; 43.26868 10941; 43.49806 539691; 43.5726 67118; 43.7074 4927877; 43.73172 49260; 43.99717 48405; 44.02581 14124; 44.07324 1887; 44.21011 46446; 44.58965 9166; 44.84259 73724; 44.8921 75381; 45.11031 2226; 45.12161 1280; 45.25254 1542477; 45.40647 1773645; 45.40769 3959711; 45.6095 90101; 45.8787 26388; 46.0486 1879680; 46.24362 862569; 46.28547 38472; 46.47871 2154653; 46.57923 25998965; 47.00281 2083523; 47.06271 5910651; 47.13326 806082; 47.93529 63980; 48.40385 464549; 48.50407 39156; 48.76016 3223; 48.80927 57930; 48.99675 45212; 49.24672 18838; 49.27808 75836; 49.34104 36929; 49.45127 9121; 49.47625 3393132; 49.6186 3617431; 49.68878 47732; 50.03861 49593; 50.09797 26569; 50.14269 6342600; 50.19858 3812256; 50.48732 1027697; 50.48771 42048; 50.77548 172777; 50.93345 767948; 50.97532 2933427; 51.37906 170349; 51.63687 23277; 51.99352 355167; 52.12838 1973208; 52.27415 5346453; 52.37346 1727879; 52.51877 33536; 52.53691 16806; 52.92482 28157; 53.08143 2306; 53.23968 2777; 53.30013 51780; 53.36185 1594852; 53.37387 21640; 53.88327 78888; 53.98365 25423; 54.17078 9339; 54.17817 8467; 54.50882 61358; 54.80561 59539; 54.91577 1984563; 55.01693 4136942; 55.1271 2385; 55.16398 171231; 55.24054 9574680; 55.44258 328292; 55.57813 88; 55.74225 86211; 55.89342 39536; 56.99777 42197; 57.11254 172121; 57.13168 29417; 57.17576 23470; 57.18833 13992; 57.47707 35796; 57.76033 4432219; 57.77907 932064; 57.82195 7721473; 57.89853 39153; 57.94383 70179; 57.95167 185871; 58.15884 5377654; 58.17125 4136250; 58.29794 3439238; 58.46269 1806439; 58.60759 129609; 58.60778 87998; 58.6196 25344; 58.83401 7385981; 59.18762 91510; 59.2503 78141; 59.7155 15155; 59.72742 8658543; 59.87503 2951635; 60.06785 9979543; 60.26581 42598; 60.48462 55933; 60.55152 1973366; 61.13283 17353; 61.17866 3582041; 61.2358 45429; 61.42725 59753; 61.62915 3555; 61.68603 2106138; 61.74508 192653; 61.77002 51249; 61.81255 4619; 61.95509 3827037; 62.05064 1811091; 62.1783 7637066; 62.41264 81222; 62.49435 72875; 63.01491 7226276; 63.13899 54759; 63.23257 297; 63.40832 4166458; 63.46351 4926166; 63.86977 1449270; 64.02128 55804; 64.35734 24866; 64.40894 1151030; 64.76764 25125; 64.84902 72495; 64.97752 65721; 64.99434 17394; 65.21362 1694835; 65.57017 9601; 65.84802 38619; 65.99658 837293; 66.42528 72172; 66.47973 43966; 66.65297 2429967; 66.70846 22312408; 66.75986 8870563; 67.06994 4500489; 67.60205 56315; 67.61066 5521; 67.86788 66099; 67.91876 8795; 67.97702 68062; 68.16562 3610998; 68.29391 4927444; 68.49615 2611628; 69.13659 55640; 69.36862 7505; 69.39417 72140; 69.53921 3740; 69.61659 752791; 69.87502 173; 69.89935 3013882; 69.9856 27240; 70.28885 59768; 70.35633 1045834; 70.66058 64243; 70.72649 59265; 70.81581 49315; 70.87928 5187; 70.92408 903336; 70.92941 22926; 71.51797 36189; 71.573 45772; 71.89425 7979; 72.00284 50906; 72.02429 9286; 72.57237 39854; 73.02404 3566; 73.14619 7686; 73.19097 65738; 73.19901 4162657; 73.36193 6983990; 73.46781 29616; 73.52437 27563375; 73.58711 946010; 73.91006 1907856; 74.11062 47794; 74.18099 10617; 74.36046 9784; 74.87533 603959; 74.92233 440623; 75.05876 92910; 75.18172 11798; 75.37416 7767; 75.4347 2397820; 75.46601 1592580; 76.10426 3028804; 76.19167 14135; 76.28012 7514; 76.49266 1066996; 76.60605 1281290; 76.70824 58987; 76.78223 54335; 76.8523 2480; 77.07344 1406015; 77.26136 186433; 77.27771 21365; 77.43038 25069; 77.48162 505632; 77.56482 22691; 77.6099 20400; 77.85287 1430037; 77.97428 78734; 78.10068 524684; 78.10452 72611; 78.46569 4484793; 78.48384 65792; 78.54058 12233; 78.59858 6819210; 78.601 4382895; 78.8586 38043; 79.1299 124060; 79.14847 1042597; 79.18706 2099754; 79.37311 58219; 79.41482 22520; 79.65772 4782; 79.81411 9497; 80.04904 80068; 80.16608 27018480; 80.62212 9884719; 80.9823 23274; 81.31994 26513; 81.36981 73964; 81.70099 1610391; 82.23796 59665; 82.25276 176529; 82.26912 409468; 82.34487 7018; 82.58399 8797626; 82.77822 73013; 83.08044 3267069; 83.18547 7759531; 83.23173 1803410; 83.556 46418; 83.95228 23080221; 84.02852 79797; 84.06426 145784; 84.20689 7755668; 84.4245 1826286; 84.80633 19570; 84.86072 172892; 84.87043 3118277; 85.20775 970480; 85.38721 9507; 85.4597 3392; 85.46227 2499601; 85.49217 6907020; 85.60947 9530140; 85.62254 1653; 85.95367 34675; 86.05268 2043; 86.17693 1249669; 86.28693 1415749; 86.46129 1803369; 86.47333 1804; 86.86496 22469; 87.3015 15179037; 87.33854 657724; 87.51372 109349; 87.51571 1892227; 87.90146 3609660; 87.94795 1230533; 88.01257 897288; 88.21778 49637; 88.32846 1100329; 88.54147 28170; 88.65915 6165; 89.22934 79175; 89.40722 78112; 89.47018 10632; 89.58472 33550; 89.66549 18888; 89.90798 5816; 89.98975 17328; 90.4876 47071; 90.56847 27452; 90.64498 64622; 90.68177 512; 90.86708 17840; 90.87147 5608; 91.03693 52317; 91.26795 62052; 91.309 61294; 91.36245 3185827; 91.53968 8756206; 91.63535 353; 91.74164 7814; 91.84286 2121; 91.94428 15429; 91.9703 59307; 92.00834 4906435; 92.16449 7666; 92.34252 2501714; 92.71864 1889913; 92.88025 145309; 92.91141 20313; 93.07779 27093; 93.10213 1675837; 93.12425 9482; 93.20414 893940; 93.36973 70158; 93.48041 136842; 93.56565 133401; 93.60961 8503; 93.79297 9073; 93.79317 166736; 94.62516 1875712; 94.87296 589109; 95.08988 286893; 95.51702 36518; 95.52271 53892; 95.55029 2289447; 95.75532 3063; 95.78262 45059; 96.18257 22430; 96.18296 18673; 96.19387 7907; 96.24007 5128352; 96.45634 40660; 96.63176 159011; 96.64846 6155; 96.6968 35792; 96.73989 1457498; 96.90472 75681; 97.05473 1094999; 97.25753 7526; 97.28177 7330114; 97.7535 198889; 97.84488 29523598; 97.8578 32206; 97.90027 37874; 97.90291 65254; 97.95028 8846; 98.07292 190142; 98.20143 3148; 98.26669 49265; 98.40714 153851; 99.0078 21360; 99.10156 33829; 100.03158 46206; 100.03892 1917459; 100.11629 331510; 100.21268 1038947; 100.3069 17826; 100.35107 56007; 100.36685 14457113; 100.39236 32805; 100.56564 1902704; 100.60886 59061; 100.85756 31410; 101.04795 59005; 101.54573 4565; 101.63517 6213442; 102.03815 22777; 102.05254 55479; 102.63368 29021; 103.22382 1696348; 103.45112 106229; 103.49246 100297; 103.69365 26992; 103.81611 16044; 103.92168 128305; 104.2057 2098531; 104.45176 21991; 104.50503 34435; 104.5477 8765; 104.68343 1581047; 104.75161 1064889; 104.7833 50660; 105.24087 2525; 105.37848 138668; 105.42031 69968; 105.42862 4708; 105.49182 50765; 105.88231 7854584; 106.03067 12958; 106.03451 64627; 106.10059 5815; 106.57273 74017; 107.06078 12115; 107.18071 5766104; 107.25758 69873; 107.35208 9220; 107.4855 22876; 107.61912 1367186; 107.68594 70283; 107.98716 6522; 108.09704 2415943; 108.16653 16440; 108.24816 8512048; 108.39979 6374083; 108.40819 54430; 108.76484 705093; 109.17312 10851; 109.17765 20612; 109.19315 14989; 109.40331 6856880; 109.53752 15602; 109.53808 25553; 110.20206 28913; 110.43042 13940; 110.43977 54469; 110.56002 8843080; 110.92554 6573; 111.16198 19350383; 112.35277 2017; 112.50304 55192; 112.53896 552256; 112.54946 6723603; 112.74814 51771; 112.83222 34939; 112.85811 99080; 112.90011 1416445; 113.09123 44054; 113.20619 3301; 113.41915 1422552; 113.46712 98635; 113.63759 47393; 113.98588 548686; 114.08288 44396; 114.26402 313152; 114.32548 103360; 114.37814 6213182; 114.51702 18314; 115.12034 9923; 115.14031 28752; 115.89596 1069886; 116.03204 47678; 116.03461 5370555; 116.24636 2678933; 116.52685 4490377; 116.53539 49657; 116.58666 67802; 116.81872 9151; 116.83423 8068; 117.12069 152524; 117.12751 5598; 117.37268 3108766; 117.73297 42081; 117.83478 76798; 117.87921 8347; 117.93762 68207; 117.93971 51760; 118.52018 3362450; 118.78413 3697356; 119.01365 25765; 119.08997 35982; 119.23047 13014; 119.27748 7216737; 119.78946 3602677; 119.90695 62299; 120.00077 4997108; 120.07898 53071; 120.27418 1618201; 120.32072 27358; 120.43739 1410163; 120.51834 22453; 120.54891 96753; 120.95415 2147723; 121.21447 3428488; 121.42066 54234; 121.44518 9063; 121.48591 5251235; 121.99253 6347428; 122.14577 1351235; 122.39561 9981619; 122.40283 6488096; 122.61288 9770; 122.67239 352902; 122.82167 997324; 122.86258 1088162; 122.86683 79899; 122.86889 4344; 122.96368 8281; 123.20737 37496; 123.49484 9050; 123.65065 198853; 123.69588 25849; 123.9399 79631; 124.04738 17474; 124.13763 34013; 124.19923 41088; 124.2184 1810696; 124.25988 974400; 124.30855 376; 124.57666 7997; 124.59091 21218; 124.81666 168804; 125.18277 708694; 125.18955 44867; 125.28589 1616902; 125.69253 25459; 125.83427 7251; 125.85563 25348; 125.88264 788323; 125.99025 2016; 126.2587 31369; 126.298 46076; 126.30659 46141; 126.38143 20844; 126.58391 6548902; 126.59078 34162; 126.60702 33959; 126.90038 71710; 127.03281 5635; 127.16074 57928; 127.38797 1265781; 127.78474 66601; 127.93638 32878; 127.99117 19867224; 128.115 8768; 128.28619 9424973; 128.46283 22270; 128.48339 869050; 128.88095 46920; 129.05977 48857; 129.57538 933742; 129.71515 22397; 130.1572 1432928; 130.18389 9099; 130.18525 26062; 130.40795 109519; 130.49427 4851037; 130.57417 23073; 130.66285 76358; 131.14 25484; 131.14041 1657481; 131.19109 7856; 131.23952 1479698; 131.37399 56838; 131.53115 52125; 131.5891 76674; 131.82189 442309; 131.94903 24240; 132.08329 20264; 132.48449 14255348; 132.55643 8599098; 132.68785 4021062; 132.78811 9616965; 132.96961 38228; 132.98432 3290127; 133.01117 13845; 133.02894 7819528; 133.06759 390800; 133.10513 311048; 133.1547 27094; 133.48292 39008; 134.16786 273; 134.25521 2455453; 134.27262 1740840; 134.36476 22648; 134.36785 70293; 134.69056 28938; 134.91244 9197; 134.92112 59621; 135.00337 71904; 135.20093 2790458; 135.21664 40242; 135.28287 625073; 135.58178 37414; 135.63888 723112; 135.86973 3710; 136.07085 23039; 136.12253 34270; 136.34897 19766498; 136.6386 97815; 136.66794 28477; 136.80285 4450; 136.99138 867603; 137.21 1417297; 137.27655 3211971; 137.38163 9912534; 137.50866 38834; 137.51238 197386; 137.5791 77647; 137.72563 8179; 137.72578 49567; 137.75821 1825283; 137.81728 8540; 137.83957 868714; 138.23796 66894; 138.29808 76876; 138.38322 9457910; 138.39123 176666; 138.51384 43307; 139.0549 360790; 139.08117 103292; 139.14 789180; 139.31495 47058; 139.3698 183899; 139.51069 66648; 139.80793 8732729; 140.02126 61390; 140.4045 17591; 140.41266 590; 140.54413 4588257; 140.65346 969343; 140.86852 1281389; 140.90137 22572; 141.15831 59635; 141.33986 721613; 141.54223 9984131; 141.80752 209627; 141.88145 13494; 142.05958 1640; 142.43824 16585; 142.66612 22293; 142.7885 6794; 142.91941 81398; 143.12678 6196; 143.15574 2787192; 143.19013 1951921; 143.35793 7504; 143.50439 728880; 143.89228 476404; 143.89352 1472127; 144.14081 5216; 144.22531 889650; 144.82326 22736; 145.26776 1668353; 145.27346 20492; 145.29385 166287; 145.50529 28422; 145.63279 68257; 145.66807 529336; 145.76132 102834; 145.78989 682429; 145.90828 3545748; 146.22738 8; 146.41512 29936; 146.43078 2337; 146.51956 2245387; 146.58489 723526; 146.58938 611960; 146.78918 2994; 146.8267 1735210; 147.02358 3064; 147.02952 6914881; 147.10272 149271; 147.326 9598; 147.41646 8288566; 147.42886 534956; 147.63525 3645179; 147.75672 947; 147.79557 38064; 147.83165 23201; 148.55349 60382; 148.77018 1333511; 148.89071 2429573; 149.02405 1619610; 149.80161 26517679; 149.95808 769454; 149.96908 12431; 150.24131 295437; 150.77325 7531; 150.84808 4417; 150.8838 204680; 151.99581 35038; 152.01694 59546; 152.38102 864596; 152.3975 2989; 152.52402 2247667; 153.00156 4932369; 153.06356 6893; 153.45132 2013; 153.49005 2264; 153.72428 86989; 154.00465 629; 154.02037 25638; 154.17006 14356; 154.35489 4676; 154.70647 59602; 154.77276 45455; 155.32203 420172; 155.87683 12185; 155.91844 2753611; 156.00918 8250; 156.08983 43303; 156.25845 63000; 156.35987 175010; 156.44628 190183; 156.82629 3452765; 156.87911 9764; 157.00998 19965; 157.38612 15236; 157.51179 878844; 157.52409 444092; 157.69327 6916; 157.79318 20092; 157.86096 2343836; 157.9963 11764; 158.2513 6927; 158.25886 106070; 158.26441 38627; 158.27671 694; 158.53568 33115; 158.71798 917846; 158.75735 29648; 158.78778 69994; 158.87104 1889807; 159.48708 25694044; 159.76231 138163; 159.84093 179237; 159.91477 27897; 160.15915 4450934; 160.4267 7182850; 160.80927 85725; 160.96032 803051; 161.42097 8746781; 161.56895 147716; 161.73091 1718; 161.77144 522534; 161.82903 4662; 162.10807 4302682; 162.22995 7578; 162.27122 5058905; 162.29492 2633446; 162.38021 9445974; 162.4623 63363; 162.52557 4843576; 162.8053 1233854; 162.99588 457287; 163.00375 3018196; 163.02953 18797; 163.19371 27605; 163.41584 402189; 163.7948 9141393; 163.79594 4245145; 164.18829 1002; 164.60094 117018; 164.7068 2449522; 164.86157 1471488; 165.33835 69535; 165.40592 44204; 165.48006 2065421; 165.6223 56614; 165.64527 64397; 165.66304 29236; 165.68676 13468203; 166.41792 4208; 166.75857 28494795; 166.9031 130906; 166.95699 21280; 167.0147 603; 167.09673 3900140; 167.24903 68708; 167.25907 5740; 167.60796 8532941; 167.62373 1250119; 167.86775 8499881; 167.89581 25444; 168.65819 22381913; 168.85973 1867; 169.08709 33540; 169.10167 247129; 169.36736 26334; 169.62914 65637; 169.66224 9423; 170.05966 828970; 170.41739 45488; 170.44773 2833; 170.44913 39518; 170.47563 36107; 170.60815 204681; 170.83514 540459; 171.14703 3522; 171.28026 28145; 171.47758 13695; 171.51578 3441939; 171.5631 275776; 171.69157 9844479; 171.71766 8784; 171.79363 7860; 172.36192 36806; 172.6148 4182; 172.80238 27704; 172.99377 26943; 173.37415 840; 173.57272 67306; 173.97121 180640; 174.17211 916; 174.269 1628427; 174.56657 829317; 174.79815 60540; 176.0722 1110719; 176.41037 14414; 176.43057 3641; 176.53144 5511873; 176.70287 71686; 177.42176 3475836; 177.49441 3534; 177.51392 38984; 177.97346 1063777; 178.27708 172645; 178.5276 8578; 178.63666 2438983; 178.88726 1803018; 179.15752 274903; 179.19447 41902; 179.19772 9677607; 179.49292 7852631; 179.63713 54333; 179.651 259; 179.69956 63843; 179.94613 76738; 179.99879 8589; 180.18738 9002482; 180.76559 899718; 181.02747 26228162; 181.25296 7318; 181.40227 101670; 181.50628 1081204; 181.62494 5908154; 181.64738 5611; 181.81549 6846; 182.02934 2461; 182.04532 157952; 182.10452 144375; 182.26552 14390; 182.26794 88979; 182.29115 3567; 182.4013 17840; 182.57334 783; 182.80851 5155; 182.83863 26191; 182.95271 73392; 183.87039 9932; 184.11372 22299; 184.20289 80279; 184.29466 6249099; 184.33286 163034; 184.41616 23988774; 184.67515 2510854; 185.10929 44951; 185.5174 34823; 185.8485 6795902; 185.98917 3179688; 186.46479 20039; 186.76755 340888; 186.95021 256865; 187.09121 35979; 187.10785 17608; 187.66578 52497; 187.78717 9774; 187.93005 94950; 187.93107 1860728; 188.24143 41411; 188.32304 76941; 188.47707 9082; 188.71151 14098; 188.73179 1502; 188.95737 25758; 188.9599 6193295; 189.96114 78555; 190.29279 48050; 190.29406 30323; 190.40588 7015111; 191.05172 65396; 191.31746 7306; 191.48422 9878126; 191.68877 2710111; 191.84773 5185159; 192.4389 865074; 192.95073 131116; 193.47906 7783; 193.54763 1681781; 193.56359 2938; 193.68256 199360; 193.95298 1004; 194.68017 1356870; 194.91345 50399; 195.03836 2143901; 195.2025 787511; 195.34191 69201; 195.41288 5142282; 195.79942 461120; 196.19899 123911; 196.21944 1832359; 196.29208 989; 196.57716 78764; 196.92824 3589038; 197.03659 12752; 197.24098 341633; 197.27188 2005908; 197.34646 41951; 197.55829 4935505; 197.63002 41842; 198.14806 63227; 198.31387 1733199; 198.3533 715024; 198.43269 2161997; 198.7425 20491; 198.74256 153; 198.83081 1470925; 198.88192 20549; 199.00441 364; 199.11187 5719; 199.18443 57025; 199.26549 35161; 199.60265 74511; 199.72641 47798; 199.92008 6155352; 200.04087 8825351; 200.13438 21447817; 200.67148 22731; 200.79339 13273474; 200.92876 8404535; 201.23039 20581; 201.47094 3380462; 201.584 26667; 201.7786 33435; 201.92326 24011; 201.9264 4595036; 201.93664 7601906; 202.00734 23446; 202.16864 43530; 202.20715 41120; 202.51268 1922245; 202.76139 1912492; 202.78475 464619; 203.3898 989519; 203.41062 48686; 203.62606 2573118; 203.71453 83165; 204.81593 1825031; 205.01829 255278; 205.13636 92673; 205.28644 4586069; 205.3853 3894345; 205.67868 2379295; 205.76717 817357; 205.82783 1190089; 206.05733 1620; 206.13184 1525517; 206.30097 55646; 206.63607 48156; 206.80551 960691; 206.94398 7513368; 206.966 53655; 207.08424 12579; 207.12338 1334439; 207.46181 24791526; 207.53501 1520154; 207.60955 77751; 207.82255 165389; 208.4345 25050572; 208.51336 9658898; 208.54839 63649; 208.57562 75630; 208.68275 5606564; 209.11044 1151619; 209.24016 217823; 209.65054 48040; 209.81698 10452; 209.85196 21888; 210.58047 160214; 210.61323 6762; 210.75668 4815877; 210.78047 3517969; 210.92504 4770505; 211.42236 2830112; 211.53848 180218; 211.649 54017; 211.80952 8376390; 211.86989 47846; 212.05427 65148; 212.15551 75535; 212.18226 9873678; 212.39716 21339; 212.58412 26451; 213.02851 48808; 213.44105 1754; 213.74268 3547; 213.8933 3328927; 213.95929 8208; 214.05518 119901; 214.32061 562162; 214.32965 3809250; 214.56409 16539; 214.5821 144648; 214.71557 1867524; 214.82146 2068884; 214.84173 79174; 214.86979 819871; 215.12147 8695; 215.12468 811711; 215.22159 39947; 215.35191 9778; 215.37649 5456853; 215.76041 88454; 215.82122 27598; 216.53014 213170; 216.84476 31114; 216.84745 513746; 217.22489 28046; 217.53787 74915; 217.54145 2534198; 218.10331 2296038; 218.30808 10661891; 218.33084 7100; 218.34027 1558871; 218.69077 453467; 219.00771 20736; 219.05205 130525; 219.07849 1125021; 219.488 33664; 219.57026 14450636; 219.59371 10619392; 219.7075 1745308; 219.89922 3352930; 220.13142 2871317; 220.4723 23927; 220.47608 992632; 220.88699 786629; 221.10992 9155; 221.48752 60552; 221.49328 962774; 221.60982 3480633; 221.63945 2923; 221.67631 1207279; 221.87663 1612; 222.03558 997444; 222.1726 6911; 222.72583 195817; 222.84478 23309; 223.19503 1476421; 223.31878 820769; 223.33922 1460998; 223.39721 74542; 223.52229 23442; 223.52806 3812705; 223.7917 53004; 223.8592 236651; 223.90858 28063; 224.66841 2643611; 224.84398 7174240; 224.96273 246614; 225.06183 4217998; 225.09376 79311; 225.11803 23036; 225.4353 30588; 225.64442 3351; 225.75914 6713; 225.92929 1870438; 226.07804 23905823; 226.0826 13302; 226.53505 740452; 226.61754 2159; 226.7733 1270908; 226.95581 79439; 227.12471 1439337; 227.34918 5306; 227.46027 334694; 227.60258 3188637; 227.68561 490; 227.71115 27484; 228.04393 1355; 228.05274 75686; 228.12686 7542818; 228.24245 42467; 228.24991 26930; 228.3194 44104; 228.37463 71701; 228.82461 76570; 228.85406 27330; 228.95612 56157; 229.23966 75633; 229.26707 15947; 229.40925 1452262; 229.65721 1651539; 229.7917 295181; 229.85186 956571; 230.32443 1682674; 230.37368 15987191; 230.46459 1837173; 230.97319 57517; 231.31691 6583; 231.41165 55914; 231.57962 939866; 231.7253 642014; 231.75953 23928; 232.81989 605238; 232.97299 4378093; 233.22092 2178926; 233.3938 7590316; 233.48447 5386; 233.87307 11131; 234.03084 9101063; 234.18223 7541389; 234.6474 3487657; 234.81451 2556908; 235.04721 25726; 235.68766 92444; 236.18026 1117043; 236.36987 70717; 236.6547 1346425; 236.65726 4534; 236.76802 4049036; 236.82891 31308; 236.86714 1965; 237.08186 48273; 237.25747 13025; 237.32977 151711; 237.41741 472076; 237.90773 78859; 238.37695 4853246; 238.69921 1302; 239.02296 1957895; 239.13205 4066218; 239.13973 719221; 239.16719 27067; 239.35693 4562; 239.52024 25561; 239.70158 13012466; 239.78022 34817; 240.02773 7448; 240.42007 47152; 240.56032 4815598; 240.59895 1780965; 240.80217 1015094; 241.1831 55454; 241.25473 9119; 241.36675 29284; 241.73196 24326504; 241.85179 13497973; 241.95629 6134; 242.39088 42773; 242.40833 66060; 242.47809 5445691; 242.74253 2587455; 242.78537 1301310; 242.80736 43327; 242.87682 29017; 243.06464 75338; 243.27368 863270; 243.36684 3818551; 243.65135 52096; 243.75743 43893; 243.8023 3407581; 244.13835 465788; 244.39412 30974; 244.77429 746107; 244.81138 26988; 245.05967 71488; 245.53869 82688; 245.58535 1518; 245.61238 157331; 246.02407 63348; 246.10062 64797; 246.33323 15315; 246.47231 6693847; 246.48543 70132; 246.70813 11268; 246.94657 184315; 247.06387 8058269; 247.16233 53250; 247.31567 62492; 247.46438 22127; 247.50594 198823; 247.81783 67102; 248.35924 67177; 248.57427 430281; 248.70434 7104; 248.86161 1181161; 249.41046 708; 249.5302 110060; 249.61978 905756; 249.67242 41990; 249.69546 37713; 249.72638 12034; 250.05069 18951; 250.21737 8975; 250.26838 7168; 250.44731 213857; 250.50259 56296; 250.60236 35621; 250.67535 8510; 250.75318 6813751; 250.77505 404421; 251.38573 27909; 251.44941 431667; 251.52857 17833516; 251.56889 643095; 251.74865 1886; 251.94851 9850992; 252.06124 473279; 252.20535 52976; 252.87103 14022; 253.04531 51189; 253.09283 18418016; 253.20368 1839135; 253.36985 29348; 253.3956 5832; 253.45208 60835; 253.65586 302757; 253.79887 148621; 253.80176 6273; 254.04951 913912; 254.16905 9516; 254.26782 19578; 254.54269 13092; 254.65909 4264; 254.77009 1705569; 254.90285 5509216; 254.99737 4071; 255.26441 4851704; 255.31337 33754; 255.32653 149040; 255.32988 14496851; 255.5249 42462; 255.73819 74234; 255.82899 2171123; 256.55292 16134; 256.58794 1814474; 256.86619 124975; 256.87947 7020; 257.1412 5401; 257.32916 94241; 257.51712 73039; 257.52383 7995209; 258.11813 4312; 258.30276 191053; 258.31801 1598697; 258.41867 3995769; 258.53061 54760; 258.63018 5793; 258.64368 48493; 258.74824 6538; 258.81935 304734; 258.82644 1319614; 258.93459 27585; 259.00847 5392; 259.07358 6148945; 259.22669 680100; 259.44915 10962; 259.50218 2000; 259.52127 50709; 259.83379 2644757; 259.86302 64170; 260.06537 91730; 260.09779 9389; 260.27631 20360719; 260.38885 1377815; 260.71691 763553; 260.77493 172; 260.90558 1878960; 261.60624 48406; 262.09236 21309657; 262.32358 244343; 263.33739 70158; 263.40363 12839; 263.95969 14615; 264.03582 29261; 264.59275 66390; 264.63109 6467454; 264.89311 23060; 265.1532 1664041; 265.20943 4693699; 265.23379 1546879; 265.4248 1039; 265.45967 76023; 265.59321 153958; 265.62141 1929512; 265.66891 4353930; 265.76831 6250; 266.23529 69362; 266.39639 17214; 266.50988 9039241; 266.56656 9179; 266.66007 115533; 267.05138 3018; 267.08106 24440; 267.27555 20146; 267.49974 32940; 267.52074 5297315; 267.62299 691738; 268.05161 17878; 268.05247 1194012; 268.23465 44986; 268.41303 25725; 268.41865 54799; 268.63546 3963; 268.82444 24406; 269.21608 6536; 269.34031 15029; 269.5272 729633; 269.74398 155489; 270.43186 1569712; 270.44336 1503473; 270.74028 23919; 270.79173 24939; 271.18449 1764713; 271.2955 7278081; 271.34877 4666; 271.47184 56652; 271.76114 75605; 271.98871 9467387; 272.167 42811; 272.21295 1186561; 272.38902 49453; 272.48728 1891576; 272.70472 8163; 272.77529 95810; 272.84367 49909; 272.8558 4572849; 273.14907 140094; 273.2288 1211021; 273.44736 65036; 273.54543 985777; 273.71278 52120; 273.71324 1697432; 274.31303 4649167; 274.4162 23910; 274.50856 66883; 274.54752 73202; 274.70021 5068; 275.15982 3130; 275.2257 38564; 275.41049 10297; 275.52311 3037; 275.70843 61902; 275.72445 63620; 275.72644 16298; 275.84403 29288; 275.84844 68010; 276.02137 9115; 276.13317 929277; 276.41507 2223938; 276.6255 3517132; 276.753 44632; 277.02589 1280242; 277.07393 638691; 277.24953 6598; 277.41572 20922; 277.50848 48324; 277.68296 6946; 277.88566 7740; 278.42452 79411; 278.45405 20376; 278.5949 971; 278.6484 1931238; 278.82966 23674; 278.86061 1967; 278.91078 1213890; 279.03966 6668578; 279.24959 141512; 279.43599 8379; 279.56373 3431071; 279.81619 2913032; 279.87091 77245; 279.97966 52713; 280.13307 139176; 280.22178 657608; 280.26586 461339; 280.32825 3564; 280.34512 8580192; 280.45245 1224541; 280.51137 1424; 280.61881 1483552; 280.62479 8242; 280.69667 21697; 280.7584 59306; 280.80807 1839901; 280.89852 19797; 280.94037 26599; 280.96783 49680; 281.08716 7271; 281.22942 158400; 281.30798 20128; 281.83009 8333355; 282.0534 6715830; 282.06252 43452; 282.19192 20914; 282.61058 9470454; 282.78491 25993; 283.03459 441293; 283.35038 23599; 283.50162 2698; 283.75943 746274; 283.81623 5454462; 283.96293 8107; 284.13343 1872238; 284.25382 3304919; 284.79232 116402; 284.88495 46098; 285.31007 28863; 285.59189 776371; 285.87018 29256388; 286.02831 43920; 286.16895 25264; 286.36609 7976196; 286.52625 9955833; 286.74646 168943; 286.91007 20190; 287.03083 47396; 287.15942 582287; 287.24558 944; 287.32498 1989366; 287.70453 326740; 287.73653 51911; 287.82539 960893; 287.86086 3071735; 288.00831 3190988; 288.08373 1859; 288.09483 29045; 288.18798 1766539; 288.1997 4124604; 288.34542 84527; 288.47123 2973557; 288.98226 2304; 289.02441 1244685; 289.71966 4707; 289.72779 11052; 289.76662 42004; 289.77084 50581; 289.80117 270989; 290.02414 61301; 290.10313 2318826; 290.30869 2072117; 290.65791 247471; 290.9704 1412689; 291.40709 136800; 291.95266 3871513; 292.03017 8526; 292.20151 52597; 292.44547 47208; 292.55072 3382348; 292.65097 59068; 292.91568 1704962; 293.1514 6267; 293.37813 59325; 293.52514 2822859; 293.63549 31714; 293.70936 1176788; 293.90153 4271; 293.98855 96022; 294.68513 36960; 294.71016 12754; 294.83099 1830678; 294.83792 4756503; 294.9158 8303842; 295.61254 822067; 295.61264 28510247; 295.82758 41495; 295.85861 153496; 296.10246 2300288; 296.12312 1651264; 296.26856 27229; 296.42868 74940; 297.11065 935943; 297.19166 1272462; 297.2935 28537; 297.3296 10931; 297.37934 182885; 297.9444 996248; 298.19062 41839; 298.69467 20188; 298.70217 8891; 298.81988 324497; 299.01834 75733; 299.19294 26215; 299.30928 28301; 299.49025 4504855; 300.2292 1934719; 300.50939 65446; 300.95252 25869; 301.32711 1983184; 301.46278 136309; 301.57576 749710; 301.57956 9341240; 301.64661 1788834; 301.69574 20962; 301.74429 3940; 302.09516 7423; 302.12357 4850859; 302.15926 530667; 302.17037 43173; 302.45139 20920661; 302.56032 24724; 302.74661 70828; 302.87131 71526; 303.21007 20498; 303.41638 26232; 303.44408 65185; 303.48154 261889; 303.52772 22525; 303.71861 898244; 303.96816 896500; 304.37729 77241; 304.48108 728717; 305.08971 6191; 305.15859 47552; 305.38046 179995; 305.39461 60273; 305.71456 173141; 305.94759 581665; 305.97378 2346; 306.03854 75342; 306.22156 6885907; 306.50361 8007513; 306.62503 1625096; 307.00678 17412; 307.07367 7428569; 307.18752 24867; 307.58254 808457; 307.70988 284962; 307.76362 58703; 308.36477 1036201; 308.45581 1124262; 308.46452 2568547; 308.55396 129633; 308.57369 14584; 308.90608 66146; 308.93036 1386853; 308.94203 2366; 308.94536 64368; 308.95412 7772; 309.26743 77447; 309.37901 29684; 309.674 44038; 309.70552 1195; 309.78243 4441405; 309.99763 22174; 310.21979 169191; 310.29282 28048; 310.3164 3535599; 310.3354 11074; 310.87826 1881794; 310.89369 217241; 311.13328 57676; 311.24158 531471; 311.2891 108471; 311.42219 7762467; 311.48198 3200584; 311.62225 72851; 311.62752 57640; 311.80491 1844248; 312.29804 6823012; 312.79139 89815; 313.02799 34566; 313.07419 171439; 313.16702 73312; 313.19085 22964; 313.19468 229798; 313.53184 26395; 313.78792 52282; 314.16641 25432; 314.34766 900341; 314.43248 7251; 314.50274 436096; 314.51203 116439; 314.56014 1726125; 314.64721 4578932; 314.69008 143379; 314.94619 9492; 314.96927 49572; 315.22922 77299; 315.3276 512925; 315.6179 403118; 315.90533 59098; 316.26925 73462; 316.4026 1181492; 316.55803 146195; 316.63159 6640140; 316.87899 22599; 317.34116 26317; 317.51263 26120; 317.95765 61463; 317.97265 13497; 318.12107 38096; 318.13387 963873; 318.24022 38215; 318.43523 6348438; 318.46195 134368; 318.74553 30826; 319.54109 386; 319.71905 28045; 319.95493 71648; 320.04438 32987; 320.34896 29324; 320.50504 67327; 320.8188 186644; 320.92165 20170764; 321.08887 6358; 321.26926 38187; 321.41585 883056; 321.49876 27123; 321.61564 156559; 321.81168 2488; 322.10126 583800; 322.42643 27965; 322.70495 244130; 322.86315 9783; 323.03272 2897; 323.11437 32140; 323.21606 42159; 323.75969 2166; 323.9253 66011; 323.9751 2808; 324.12465 30504; 324.26973 21393; 324.51773 1887286; 324.55034 56339; 324.63019 78763; 324.68796 3423651; 324.98251 134072; 325.29485 28998; 325.39496 4344698; 325.41184 4884157; 325.45456 31327; 325.57009 13137; 325.6829 126245; 325.92319 51770; 326.16742 27342; 326.29194 4520124; 326.59049 11816; 326.82059 6711; 327.03266 5915; 327.09699 27803; 327.25312 1848566; 328.30249 4169216; 328.35597 43950; 328.41366 38118; 328.45477 196211; 328.48235 17043890; 328.52038 69796; 328.61906 10583; 328.64199 5398617; 328.72413 2940; 328.84671 68868; 328.93535 46520; 329.04047 1103636; 329.11519 4361394; 329.33758 21622; 329.93966 4474942; 330.10073 25172; 330.37758 1495765; 330.40645 11575; 330.43687 28111; 330.65465 965381; 330.71727 9669160; 330.96423 63628; 331.17875 17916; 331.25786 39315; 331.46749 585973; 331.76424 9090473; 331.92477 3993086; 332.20416 53985; 332.26363 130667; 332.35597 1941; 332.39623 43775; 332.44763 1553814; 332.45678 45700; 333.07116 153831; 333.21489 158088; 333.40137 1386566; 333.58646 962498; 333.82663 78430; 334.03626 3475440; 334.34612 85057; 334.43418 61848; 334.97163 1841; 334.9916 2280742; 335.10345 6297; 335.17394 1230704; 335.44015 7775; 335.67478 2912; 335.85847 1439991; 335.94439 8121581; 335.96817 5075923; 336.08395 3382936; 336.14009 59204; 336.58555 11836233; 336.88444 8888222; 336.92867 900799; 337.03328 67960; 337.11894 13827288; 337.40971 14990; 337.53262 56153; 338.13446 4872; 338.21832 32441; 338.26349 2781; 338.30388 9819; 338.46149 1573433; 338.70469 25541; 338.75065 24710; 338.79028 21773; 338.97269 11464; 339.30522 9274253; 339.48839 232262; 340.13417 27031; 340.38137 562959; 340.55652 18452; 340.65432 4842; 340.75965 5304326; 340.78853 5500901; 340.95971 3304513; 341.07763 19920; 341.17851 2775912; 341.59346 16310966; 341.86384 1202675; 341.93212 53970; 342.05765 33066; 342.39286 70993; 342.60895 4838553; 342.66111 1719384; 342.85718 9228; 342.91969 929960; 343.06859 4515715; 343.2898 26831; 343.58534 9877943; 343.58745 11617; 343.95866 2938; 344.10821 9708; 344.12835 1048013; 344.17387 413508; 344.28531 1542624; 344.44431 7022546; 344.69147 41928; 344.73597 943209; 344.96197 1474179; 344.99021 8492; 345.15676 1223092; 345.42934 1271008; 345.50563 39182; 345.61602 1768758; 345.7121 36446; 345.76369 236526; 345.91012 2860391; 346.21601 507265; 346.29556 6651; 346.64445 729828; 346.79659 99903; 346.96255 801419; 347.07382 899765; 347.09409 5101; 347.30423 10886; 347.50931 54838; 347.60056 154065; 347.86269 22309; 347.90452 8628290; 348.12913 38963; 348.37929 775094; 348.56041 1259959; 348.71358 7162; 349.0028 53365; 349.12791 37274; 349.66734 4753; 350.00984 1529274; 350.15339 3748167; 350.52003 9194443; 350.5535 10902879; 350.76965 24497; 351.21829 8778; 351.31899 22924; 351.36005 558399; 351.62188 23991; 351.8723 1434730; 351.90268 4971010; 352.03612 4045; 352.84159 369; 352.88336 351675; 353.00635 30542; 353.26389 13134692; 353.32252 183803; 353.35877 27999; 353.82214 25213; 353.91745 4696; 354.14986 637420; 354.24059 60620; 354.40852 52471; 354.53819 4404838; 354.73148 2229; 354.91497 32666; 354.91841 488886; 355.00312 7890; 355.08238 9590205; 355.11995 1281; 355.50189 1819458; 355.67341 98470; 355.88342 1047879; 355.89598 4940; 356.0337 43312; 356.44336 4097242; 356.44567 11167; 356.53688 24353; 356.63994 86819; 357.27207 45603; 357.79245 1858005; 357.82802 3162896; 357.94092 4797562; 358.04556 53770; 358.0522 838123; 358.43334 9105111; 358.89004 13267; 358.96594 763759; 359.23807 15917525; 359.26155 111736; 359.38642 28213; 359.52959 686310; 359.81048 2512999; 360.26216 176683; 360.66488 9439; 360.78792 26598; 360.79578 38043; 361.42585 16464; 361.63611 1098646; 361.89092 804933; 362.02959 5536593; 362.03843 926064; 362.09922 1119088; 362.20994 28911624; 362.29715 131170; 362.45517 745990; 362.60016 11172; 362.73023 21295; 363.20706 455; 363.28786 9195467; 363.39433 22740; 364.0646 7204; 364.14376 8875221; 364.17411 67968; 364.33075 394954; 364.38171 191094; 365.00539 21513; 365.05747 5878158; 365.12533 1252264; 365.88848 1848368; 366.10809 1791539; 366.14105 31521; 366.17736 4266364; 366.22127 360244; 366.282 2434051; 366.3113 39012; 366.54524 107435; 366.82795 1515847; 366.8845 1751480; 366.97713 9001; 367.07349 38269; 367.28167 640099; 368.16945 1017713; 368.18675 41343; 368.20269 386175; 368.32129 54965; 368.32881 65829; 368.47226 426474; 368.66681 58171; 368.70205 592175; 368.8821 33085; 368.90506 9704; 369.28448 1702116; 369.31981 99524; 369.41226 23297; 369.4214 8001063; 369.74925 38203; 370.29796 4178; 370.30639 2920; 370.33466 30234; 370.52946 21568; 370.55886 92362; 371.32253 7981; 371.42557 773336; 371.59022 875393; 372.01748 56940; 372.06934 26124; 372.06998 178; 372.49634 43245; 372.82343 248545; 372.86648 37787; 373.17665 27491; 373.29215 917488; 373.66739 191507; 373.79987 130711; 373.82205 4997601; 374.04644 208662; 374.3821 4911264; 374.44144 9646; 374.50704 4317797; 374.54088 28598; 375.61669 552949; 375.9395 211392; 375.98211 2071663; 376.6813 40314; 376.78257 793338; 376.88848 59789; 376.99428 173702; 377.28249 28941; 377.46625 4014; 377.5056 163754; 377.59468 21535; 377.79962 56235; 378.12599 6849365; 378.26595 4277; 378.39012 33007; 378.39601 3047; 378.47675 524; 379.14339 37123; 379.29581 1016187; 379.39441 3075270; 379.39898 229134; 379.82065 2164; 379.9712 1583948; 379.99378 1657563; 380.27852 10239; 380.40378 88570; 380.48113 42843; 380.62586 1419; 380.77891 4266570; 380.78126 12348; 381.06581 24315; 381.3154 1653562; 381.33273 656; 382.06985 5911; 382.17784 73051; 382.2712 5683183; 382.49649 2786460; 383.16391 4911118; 383.40232 3613591; 383.42885 36016; 383.56678 1506204; 383.68896 253054; 383.76142 34457; 383.76698 75570; 383.84846 27017; 383.86995 1190; 384.04971 16769; 384.12073 8964894; 384.12928 9584; 384.3351 16741; 384.44694 443707; 384.72089 26635; 384.85564 7655493; 384.87056 1726698; 384.89888 3203733; 385.1754 807869; 385.34784 1176; 385.37205 9850; 385.48442 16338788; 385.54333 60802; 386.0311 38887; 386.07359 71999; 386.11378 73902; 386.1153 73413; 386.3094 1674926; 386.46836 73513; 386.75969 58828; 386.82957 16425; 386.92448 7997; 387.17455 2657409; 387.21958 547480; 387.26079 64547; 387.28808 9947; 388.05338 82660; 388.38675 1362292; 388.70702 2821358; 388.96899 46926; 389.16126 3526695; 389.46449 56190; 390.27719 8497; 390.33685 255594; 390.44315 70885; 390.45174 7437636; 390.70912 353574; 390.8558 13982; 391.02648 3081323; 391.17327 2902; 391.54821 32289; 391.79369 7612; 392.01998 3611150; 392.05181 2176072; 392.70939 1568770; 392.86683 19094; 392.89578 2484184; 392.92043 15836; 393.17151 73147; 393.21161 1870652; 393.28925 4356348; 393.41115 915880; 393.4871 21079; 393.56428 28420; 393.86988 2957; 394.33161 11517900; 394.34215 131409; 394.85286 54241; 394.90109 21170; 394.9393 24692; 395.00043 1501; 395.28501 8253374; 395.65126 57968; 395.7876 9511136; 395.79242 52872; 395.85351 162680; 396.02875 3249801; 396.2967 7217466; 396.3452 1826562; 396.53712 73973; 396.56154 80309; 396.64643 3015044; 396.85258 6078196; 397.09151 64506; 397.21283 37524; 397.74596 73250; 397.85016 5146; 397.88775 3143905; 397.9061 3465065; 398.034 6808501; 398.06262 688737; 398.42963 34616; 398.48321 15595; 398.56343 203546; 399.14729 42318; 399.32552 439862; 399.34533 917; 399.38782 2019686; 399.42557 559086; 399.69199 42331; 399.79124 1105201; 399.88493 30350; 399.9524 45969; 400.32572 33597; 400.38261 1768329; 400.56537 1883; 400.8521 60660; 400.89248 21882235; 400.90579 1658064; 401.2213 6742; 401.43644 13921; 401.46084 8025351; 401.60412 55425; 401.61208 62641; 401.68533 1385970; 401.70898 58404; 402.20576 137121; 402.31341 21129; 402.63093 251180; 402.8039 27106; 402.88685 6942463; 402.89091 26151; 403.35064 2904474; 403.57519 24064; 403.58744 70175; 403.78497 251982; 403.85357 74490; 404.09376 581221; 404.09708 36844; 404.13186 4779; 404.15448 3622; 404.47924 3424995; 405.02087 1302950; 405.02697 571450; 405.03423 56242; 405.25855 27426; 405.33213 74343; 405.37499 4272; 405.43924 33225; 405.45296 54819; 405.70634 989588; 405.84265 899578; 406.04317 1094366; 406.14156 26168; 406.60445 3598; 406.64926 1828722; 406.77492 4826863; 406.92463 71084; 406.96532 51430; 407.28365 37289; 407.52859 39651; 407.55587 6454; 407.76174 49305; 408.10896 1177401; 408.76555 2662305; 408.81309 69286; 408.85037 7662; 408.94291 29801; 409.22908 370; 409.39624 5617; 409.55017 829426; 410.46726 4805; 410.66576 69727; 410.78022 5928; 410.80091 1015888; 410.83923 1751; 411.12115 42354; 411.25933 71917; 411.34852 7513; 411.36717 74100; 411.52441 47928; 411.74191 46344; 411.8519 5556; 412.15042 1961792; 412.1621 16828; 412.29767 1805171; 412.32691 603367; 412.38211 7613208; 412.64091 4489; 412.70203 5115; 412.79225 9808235; 412.90939 37977; 412.92494 61859; 412.98564 1173741; 413.14546 2027270; 413.52679 3350209; 413.64898 75861; 413.65681 1058556; 413.99256 4521; 414.17576 7713452; 414.61575 20601; 414.70873 19596; 414.71017 25538; 414.71281 2725812; 414.83701 1239297; 414.92687 2078; 415.12234 59098; 415.27315 6575; 415.28565 7410; 415.39201 9181; 415.64185 39876; 415.67386 9759283; 415.71683 50066; 415.72172 129013; 415.79552 9351490; 415.82704 5145804; 415.89165 20339; 415.9776 5637790; 416.03485 17800; 416.21053 3277; 416.68273 630229; 416.9342 11980703; 416.95094 1385629; 416.95328 1589212; 417.26182 64620; 417.61148 1370; 417.70394 1674122; 417.78225 7054850; 418.28211 3965; 418.37012 477522; 418.37707 539888; 418.48074 12461; 418.60141 26604332; 418.61199 20925; 418.62806 28579103; 418.64444 7394; 419.00378 192543; 419.02942 1504444; 419.1417 1126638; 419.43174 58840; 419.54324 53993; 419.59178 4610; 419.60186 24354; 419.90563 2440; 420.15622 67895; 420.45727 64419; 421.14804 3346; 422.13925 1035745; 422.51025 1298; 422.55295 791905; 422.55336 8744; 422.58316 21889; 422.84466 4158630; 422.87229 779954; 423.24301 9941; 423.4041 7736216; 423.7615 3047; 424.02078 195277; 424.14842 54640; 424.58478 182996; 424.60259 8308; 424.68837 1338389; 425.29865 5420743; 425.36618 41625; 425.38914 3180; 425.67867 49891; 426.03839 3047936; 426.2973 15063; 426.32919 27800; 426.45953 47299; 426.54153 17069; 426.78417 650377; 427.37864 26605; 427.39109 25046; 427.39714 48815; 427.53486 366; 427.85597 68178; 427.89517 847280; 427.93545 28571; 427.95769 45513; 428.05317 4452830; 428.19265 3041309; 428.43256 4642; 428.55069 28531; 428.64115 4424793; 429.10385 21847532; 429.23183 30862; 429.38547 4367594; 429.62417 31865; 429.82379 5574; 429.92292 5333; 430.04333 20847; 430.05848 1838716; 430.06012 4816146; 430.18769 631548; 430.52951 34179; 430.652 59773; 430.79199 50786; 430.99466 78508; 431.02887 2681; 431.09916 140949; 431.13418 39790; 431.46505 167490; 431.57623 24366; 431.61359 54076; 432.02442 15390; 432.63705 2538106; 432.65025 156611; 432.69462 54497; 432.83264 79243; 432.97699 19420613; 433.00586 400962; 433.38993 8548755; 433.47387 497296; 433.69315 439850; 433.74192 23422; 433.81068 2125; 433.90374 4710790; 433.91517 850985; 433.91631 151847; 433.98559 157999; 434.54267 4366056; 434.63178 72866; 435.01488 1550062; 435.07403 6646; 435.15391 63298; 435.20841 9191347; 435.51281 4377; 435.6043 959039; 435.66409 420570; 435.70694 131475; 436.13146 176882; 436.19309 56871; 436.54647 21289; 436.64074 69144; 436.66183 809688; 436.67947 25063; 436.74564 174922; 436.92447 176078; 437.10665 174617; 437.3133 17046; 437.65905 2047; 437.66553 48228; 438.24517 65079; 438.49846 1581764; 438.76085 184443; 439.23871 96131; 439.35922 247466; 439.56808 4569122; 439.59632 4241775; 440.08719 2116830; 440.12209 2938003; 440.47732 40459; 440.54528 2401980; 440.68813 21932; 440.797 9835598; 441.14972 43909; 441.16345 1892; 441.44005 46196; 441.5295 2735177; 442.21564 3772420; 442.2678 8816645; 442.27458 24018; 442.27752 74268; 442.3519 53780; 442.36922 9713; 442.90086 455451; 442.90745 557140; 443.12833 68642; 443.22321 1291227; 443.3631 36607; 443.58979 8862483; 443.79194 9195234; 443.81282 1018; 443.85169 48153; 443.96576 8397950; 444.3101 1979785; 444.57447 52975; 444.62445 87586; 444.74706 78289; 445.58773 3187091; 445.73618 53244; 446.16101 314894; 446.18589 758717; 446.31359 707043; 446.47069 30131; 446.70349 59408; 446.75228 61110; 446.80662 1628423; 446.89586 3482; 447.57728 54814; 447.82498 9867; 447.82773 54257; 447.83917 16674976; 447.85136 63796; 447.8591 79876; 447.86764 163045; 447.90004 62090; 447.9651 11880; 448.1122 1978632; 448.22478 36401; 449.35987 14154; 449.7377 627910; 449.90066 68851; 449.92473 61989; 450.069 29344; 450.16018 475780; 450.5053 43902; 450.74907 16809; 450.9802 3042; 451.3246 8141; 451.89229 11388; 451.89259 1526158; 452.14949 52687; 452.35228 525015; 452.84936 9448; 453.15452 57681; 453.17162 4850796; 453.2611 103342; 453.3395 31997; 453.44044 55922; 453.47676 45847; 454.00649 27902; 454.2479 32778; 454.43302 21164; 454.46646 143534; 454.70638 811081; 454.82802 90344; 455.09564 584516; 455.17218 1611; 455.24361 64331; 456.09518 3915; 456.09561 41202; 456.28051 151399; 456.44334 59333; 457.19688 772850; 457.58522 909218; 457.58696 20346; 457.75171 40046; 457.94598 60671; 458.0701 848699; 458.23406 423403; 458.62895 22611; 458.73203 845513; 458.7402 23280; 458.90109 44780; 459.44072 643385; 459.72231 18692324; 459.76823 52210; 460.36604 36979; 460.69971 53094; 460.72217 45444; 460.73374 43686; 461.02731 86320; 461.47918 21763; 461.56314 1696; 461.58794 77930; 461.70358 966227; 461.9 1749684; 461.91483 11399; 462.55279 60972; 462.79723 1521441; 462.88494 650664; 462.90845 2229; 463.17725 142642; 463.66492 446148; 464.78917 5356565; 464.88065 74926; 465.10865 2948503; 465.44841 1202; 465.87663 75537; 466.12895 142317; 466.25126 9059606; 466.27357 27865644; 466.38324 38253; 466.63593 5734; 466.81127 51190; 467.00926 3399668; 467.05187 35403; 467.11413 681273; 467.23198 153051; 467.26879 7459; 467.42035 124555; 467.47949 55352; 467.52364 10702236; 467.67408 357181; 467.79554 12430; 467.87887 29064; 467.91372 21527; 467.97908 65214; 467.9804 1096; 468.01436 53482; 468.24795 23369; 468.49067 36592; 468.56952 22518; 468.67425 5280913; 468.81101 283373; 469.0007 4839; 469.05108 8842; 469.09815 68424; 469.15499 559976; 469.35009 24766; 469.43645 58802; 469.80576 593066; 469.84839 1459; 470.17289 93569; 470.291 1747074; 470.37415 4910131; 470.46853 16045; 470.54161 1665; 470.54568 64369; 470.56227 532549; 470.60782 18463; 470.69075 66247; 470.86776 2174094; 470.93133 1943831; 470.95396 23808; 471.10041 63656; 471.24534 4853; 471.27731 3247576; 471.88972 74376; 471.96999 56840; 471.99395 1119548; 472.07731 21884; 472.14854 2733; 472.14871 4490; 472.26549 9169; 472.71668 130205; 472.81754 23015; 472.91791 79579; 473.06289 5445; 473.32298 3094014; 473.33992 1933005; 473.3759 3999582; 473.44007 1189; 473.57926 3699384; 473.68713 1919; 473.69214 59221; 473.74234 1380598; 473.98804 3980081; 474.00508 971162; 474.24185 14701; 475.0763 12001; 475.07778 27980; 475.10151 145293; 475.1366 6139; 475.28593 2316567; 475.3284 350592; 475.33888 35675; 475.51342 9663; 475.587 8807; 475.66374 13237; 475.81215 377248; 475.84207 4477; 476.24457 14593; 476.46823 24001; 476.84891 5259105; 476.97924 2129; 477.25834 2958747; 477.54495 593931; 477.72169 3838905; 477.86802 420; 478.15627 8925; 478.45776 3049090; 478.62384 7326; 478.62754 6842672; 478.70419 101326; 478.7755 13713; 478.84067 7043051; 478.91522 35268; 479.10442 171; 479.35254 817854; 479.40373 35037; 479.41795 39315; 479.45827 60950; 479.47742 6456; 479.61399 6237; 479.66932 148839; 479.72254 20291226; 480.14973 8960650; 480.26723 25867; 480.31099 52990; 480.332 37393; 480.60522 75917; 480.72862 4905; 480.93261 132482; 481.17001 1123; 481.24366 15227109; 481.30769 7533; 481.76826 5698; 481.91571 3502; 482.49479 1786222; 482.51604 1175128; 482.6296 1639797; 483.35485 5382756; 483.45969 7327753; 483.5394 182853; 483.63844 2785573; 483.82284 34720; 483.90595 6289; 484.211 5728344; 484.21652 1209217; 484.31992 2120657; 484.69399 46499; 484.72823 3682290; 485.537 3547; 485.64132 8669136; 485.69856 3006; 485.73395 606234; 485.99036 7801; 486.30814 38666; 486.43538 940047; 486.5631 29548; 486.6727 20323; 486.6824 30724; 486.84218 5504952; 487.2148 82773; 487.31351 3639; 487.34979 355001; 487.49282 288837; 487.94101 3513; 488.04646 5289; 488.1024 66235; 488.27763 135497; 488.42809 2502756; 488.60623 43113; 488.67811 4625; 488.95287 4658; 488.99091 37466; 489.02038 1074190; 489.2374 25751; 489.82367 21249646; 490.38243 75636; 490.40979 3702246; 490.61951 746573; 490.73482 9647; 491.04648 9677399; 491.57152 9143050; 491.97936 9939; 492.29469 47728; 492.32856 4915037; 492.48418 437; 492.69158 102017; 493.01502 4569504; 493.04215 152249; 493.32047 1982456; 493.66475 51287; 493.8789 5765; 493.93606 65361; 494.17138 28570; 494.21217 1730; 494.24708 844545; 494.332 507561; 494.42038 194402; 494.64908 8202; 494.94951 5582408; 494.95313 592366; 495.0155 12142; 495.21539 41331; 495.22889 27498; 495.23142 3941040; 495.23439 2623235; 495.32539 516582; 495.60784 19223; 495.7685 41551; 495.81345 6769; 495.94924 805; 496.58637 17910; 496.61158 117988; 496.62953 185293; 496.6746 14965228; 496.72507 3879; 496.85302 24329828; 496.98636 1859913; 497.14984 1754221; 497.54146 2982733; 497.55566 1444069; 497.57764 29879783; 497.98261 43535; 497.99468 4360397; 498.13406 11663; 498.35856 1160; 498.60616 28278; 498.8345 46953; 499.02684 42205; 499.27224 49854; 499.60947 87668; 499.65718 4635110; 499.91385 448672; 499.97529 32303 +<0, 4>: 0.0059 4753190; 0.15068 371827; 0.38971 24674162; 0.40085 61374; 0.92686 10405; 1.09556 13963; 1.49045 177229; 1.49054 29017718; 1.63826 79709; 1.97021 1951; 2.02045 24827; 2.58179 20335; 2.64597 57922; 3.64309 3468; 3.78893 4019225; 4.16356 2073459; 4.2216 1540404; 4.43444 45579; 4.44876 28774; 4.60429 4522654; 4.89547 1767641; 4.99784 49610; 5.12141 4065497; 5.20047 4359; 5.85033 21269; 5.9429 7403; 6.23221 538084; 6.43551 212480; 6.74899 2944284; 6.94992 7393; 7.20282 198146; 7.36573 3636868; 7.40525 540530; 7.41164 1305207; 7.51767 1916; 7.60943 53128; 7.77802 18277; 7.85717 8353896; 8.32099 745586; 8.36955 26281594; 8.38365 67770; 8.39726 8881; 8.46703 3482801; 8.534 53738; 8.5402 2377; 8.62098 2552; 8.76713 8912496; 8.85247 870; 9.25706 25259; 9.40982 5921; 9.46405 36832; 9.52171 507938; 9.63066 2175218; 9.7673 31800; 9.84351 29990; 9.97073 97223; 10.28474 3616417; 10.59121 6256427; 11.02618 72726; 11.1271 2567778; 11.18459 3967536; 11.93716 1846377; 12.10147 52893; 12.39882 126877; 12.4186 305110; 12.44586 75419; 12.72077 113109; 12.8158 29500; 12.89334 579610; 13.17645 2228120; 13.46135 4501262; 13.4758 737056; 13.4797 102; 13.57951 55294; 13.74649 51881; 13.94238 1693689; 14.02312 27357; 14.18499 780943; 14.24388 22291; 14.93908 138988; 15.24344 1668363; 15.44132 53754; 15.57352 1272976; 15.76183 2222; 15.88413 8911; 16.02308 23653; 16.04506 1962112; 16.06962 690032; 16.27536 2981107; 16.31047 26663; 16.48455 1644; 16.50427 3759507; 16.51785 1724; 16.79341 4771902; 16.88285 3999800; 17.08123 62903; 17.2338 78023; 17.47562 1157; 17.51555 28691; 17.56017 46026; 17.65828 2182; 17.69484 70347; 17.69486 108; 17.78925 25891492; 17.89753 1868080; 17.90771 7593; 18.00617 20173; 18.00672 241671; 18.08392 1173; 18.1663 20720380; 18.22645 16430; 18.41549 46204; 18.52149 59577; 18.5489 68308; 19.11321 24194; 19.11856 5846353; 19.16457 8810035; 19.33714 31430; 19.54206 832633; 19.57804 1692171; 19.64845 4933036; 19.65248 79853; 20.11538 4561280; 20.1377 25296; 20.27705 520101; 20.68356 42200; 20.75224 8002; 20.85725 402873; 20.97883 51329; 21.53628 73090; 21.58687 1398; 21.59317 20349; 21.72651 3641668; 21.93752 1552; 22.1638 19184; 22.30988 41754; 22.39044 2376; 22.98956 24702; 23.46434 44201; 23.85649 4760263; 23.87626 3350391; 23.97658 1533354; 24.05679 1065958; 24.18259 45523; 24.71017 6002652; 25.01926 9817717; 25.27074 3056687; 25.51743 107487; 25.60308 16210; 25.62348 24423; 25.83593 9657; 25.85607 5484585; 25.9937 46230; 26.12142 165228; 26.15461 9527; 26.20737 9357447; 26.4889 8346697; 26.50087 28474; 26.60419 24636; 26.92828 22113; 26.98355 1596193; 27.41362 163130; 27.54734 3674; 27.57172 49384; 27.58117 1423839; 27.64926 8392; 27.77993 1403517; 27.84563 2461771; 27.8467 11046; 28.54089 15873; 28.55457 69285; 28.76532 313; 28.82759 40107; 29.00955 41025; 29.20575 72684; 29.24632 13714; 29.35031 57976; 29.50772 1405312; 29.60289 2647807; 29.99748 9767560; 30.51151 69436; 30.51447 62240; 30.5309 44935; 30.5921 25796; 30.77022 3692560; 31.15954 27158; 31.28758 69085; 31.41476 9169675; 31.45097 117371; 31.95616 1464352; 32.47016 55881; 33.08656 3458; 33.16388 18402884; 33.22308 4518; 33.38394 62116; 33.40759 25424; 33.42779 78576; 33.6665 3997813; 33.70987 1724526; 33.7387 1012378; 33.75648 2951626; 34.10185 193137; 34.31178 1284283; 34.47341 49708; 34.61927 1394032; 34.82162 4856; 34.8411 3102024; 35.01186 70446; 35.13264 88227; 35.15922 19142; 35.52896 2879752; 35.74978 66152; 35.9235 17812; 36.28218 4844888; 36.36028 186095; 36.68488 652937; 36.71501 4376977; 37.00496 387797; 37.77404 49405; 38.13197 45760; 38.18882 66884; 38.23914 81490; 38.46183 31365; 38.60818 5934; 38.78908 37473; 39.02684 8160201; 39.46833 2928104; 39.46921 1259081; 39.55754 141349; 39.78867 529866; 39.84823 2042001; 39.88973 42797; 39.91732 32758; 39.95258 102606; 39.96519 60332; 39.98339 301607; 40.2744 4369; 40.30755 23158; 40.35586 74621; 40.40053 9408; 40.47616 71809; 40.53605 8597687; 40.6967 16073; 40.78054 144441; 40.8268 29176; 40.84123 138278; 40.93352 5383; 41.12179 501572; 41.20165 56232; 41.30272 57384; 41.76863 3538186; 42.10097 38589; 42.20623 73598; 42.92401 3585323; 43.78124 52572; 44.00898 21780; 44.05163 23641; 44.1228 1916565; 44.12504 4688; 44.16258 466617; 44.31432 475374; 44.66025 6959; 44.84488 348278; 45.45833 1567947; 45.48983 40812; 45.5779 20366; 45.92756 6034393; 46.14558 38828; 46.15981 182083; 46.69629 10664867; 46.88548 1852777; 46.88823 19482; 47.29524 72208; 47.56366 1581; 47.9353 166101; 48.52777 14386; 48.52917 57307; 48.61827 30328; 48.79494 73934; 49.25009 167673; 49.32799 931970; 49.77888 5457; 49.83425 44918; 50.13771 854292; 50.25177 12782; 50.49171 188356; 50.50136 12618; 50.60119 127335; 50.6788 3954032; 50.79997 29882; 50.87532 1412910; 50.9006 2119; 51.23519 70483; 51.5248 115265; 51.53847 12313; 51.66732 16956; 51.75193 9264918; 51.89892 55798; 51.94919 6749943; 52.07628 1965531; 52.33373 11383; 52.4765 688; 52.76872 68409; 52.94792 382107; 53.0543 959819; 53.14891 2945218; 53.37931 2528; 54.04687 3002204; 54.20775 8713; 54.22003 4275481; 54.42951 569051; 54.5209 3826287; 54.63826 28585; 54.69158 23980; 54.76831 25403; 54.77964 31512; 55.20304 8499923; 55.22455 1148863; 55.29403 3422613; 55.32752 38834; 55.349 37623; 55.51287 51830; 55.53739 17681; 55.66599 7963; 55.79051 2587170; 55.82273 5763; 56.09018 6086; 56.18961 3281857; 56.19094 79399; 56.19908 44623; 56.46299 4604; 56.70112 9689205; 56.77228 40362; 57.04335 1096215; 57.09584 6508; 57.30479 29279; 57.37074 26308750; 57.39671 14193; 57.41443 59649; 57.73782 5937; 58.28945 2488642; 58.40174 9095435; 58.44654 4607226; 58.49328 9885258; 58.57502 73621; 58.57566 3516260; 58.69896 107953; 58.84056 53512; 59.02134 23283; 59.1607 144589; 59.1847 23830; 59.25816 16547; 59.57557 4892836; 59.76308 4430; 59.82699 10690192; 60.33836 17535; 60.35727 8143; 60.89539 55974; 61.36012 20203; 61.3626 168; 61.4855 50365; 61.49773 77958; 61.53866 1801636; 61.82223 2960788; 62.02095 69476; 62.13775 32921; 62.19229 3852; 62.2695 29575; 62.43759 1037878; 62.50353 196064; 62.53765 3220060; 62.59091 191435; 63.03226 135456; 63.07681 5720; 63.08125 8753; 63.36934 6524841; 63.41217 27806; 63.98078 40268; 64.15207 14704; 64.48376 1414334; 64.8795 40803; 65.0811 36464; 65.21148 31077; 65.24025 3592321; 65.35514 467953; 65.38775 25448; 65.45323 1530126; 65.47065 5234373; 65.54079 7118; 65.72233 616641; 65.82938 5512790; 65.871 4257570; 65.89462 17914; 65.95388 4827; 66.43019 62096; 66.70278 13390; 66.72745 29096; 66.73485 7386929; 67.48876 13902808; 67.7167 2052277; 67.72812 39642; 67.81957 4690; 67.96493 585745; 68.02421 24219; 68.35152 2515312; 68.51443 1112; 68.59291 49906; 68.78152 222850; 69.00665 9399032; 69.12839 646904; 69.14849 24032; 69.16198 40460; 69.17725 770943; 69.19138 24718; 69.25038 71358; 69.27843 132045; 69.48103 54563; 69.58137 37294; 69.72889 6631; 69.84915 29682; 69.85787 50645; 69.88882 30338; 69.98217 1695751; 70.15963 6874; 70.34594 21520; 70.34914 55971; 70.70215 21799; 70.88208 67289; 70.94266 8011; 71.02899 7723092; 71.34711 1950445; 71.62034 70257; 72.81618 1406741; 72.82536 22348; 72.83339 653444; 72.89068 1247; 73.0589 25424; 73.07983 23614; 73.14288 31649; 73.98594 61490; 74.09236 122760; 74.28305 57816; 74.5094 1853961; 74.66725 3936877; 74.85287 6577167; 75.16028 71622; 75.26336 7112; 75.35386 1768802; 75.41832 48236; 75.46797 137; 75.82985 2936; 75.93293 619; 76.46007 14419992; 76.83818 4117398; 77.29611 121413; 77.40293 33716; 77.84888 20568; 77.86245 4850721; 77.9086 9031776; 77.93921 68951; 78.06637 16877; 78.49556 62299; 78.59662 8470; 78.65406 24198; 79.22291 5815; 79.22342 5811; 79.32433 24478833; 79.46748 529248; 80.1385 823925; 80.32185 5206457; 80.38861 2370895; 80.39643 21879341; 80.48781 2700514; 80.77387 8281; 81.08061 6977; 81.38953 1515597; 81.46754 27778; 81.49265 74084; 81.85623 37665; 82.01326 23934; 82.1902 55398; 82.60187 20592; 82.76479 23694; 83.08335 166257; 83.45452 4972767; 83.88411 6300; 84.38294 1662791; 84.46741 1304262; 84.58856 58347; 84.89242 1044229; 85.03905 41440; 85.43568 22750; 85.52395 29273; 85.78249 926598; 85.86294 41928; 85.93037 9749; 86.13979 3832034; 86.87167 1038597; 87.13746 368363; 87.59983 4672543; 88.03035 24435; 88.65767 2950; 88.83073 2931; 88.88979 431604; 89.05346 3314117; 89.09361 101347; 89.18394 20113531; 89.23393 34527; 89.34472 68377; 89.50347 11800; 89.59814 6524100; 90.04887 927699; 90.07152 712338; 90.67472 31959; 90.72513 40542; 90.82249 186399; 91.15273 2029; 91.22644 46993; 91.25859 1785311; 91.64412 1908178; 91.80955 1381; 92.02202 85654; 92.06964 1165894; 92.37033 30915; 93.01186 17620; 93.11196 5846874; 93.31415 4431; 93.55833 6186440; 93.60107 16473; 93.63181 977113; 93.69761 72848; 93.71152 75217; 93.71754 28385; 93.87425 3745414; 94.04698 357601; 94.32702 12688; 94.47995 6268431; 94.53376 74128; 95.31011 21322; 95.87501 28446; 96.00805 430576; 96.55198 56537; 96.66354 801178; 96.91346 179935; 97.3056 47171; 97.41168 3535715; 97.49741 16732; 97.83134 1926; 97.95499 2743058; 98.00083 8273908; 98.1172 67600; 98.17235 2784471; 98.2916 14899; 98.78752 12918; 98.84966 607273; 98.90953 5652; 99.23383 38914; 99.55613 3419; 99.96078 139163; 99.97007 85166; 100.07527 28114; 100.51 52466; 100.78919 51994; 100.79557 57673; 100.99368 8380172; 101.46013 14389; 101.95318 43852; 102.23702 235759; 102.29211 972762; 102.79387 713115; 102.80822 6033; 102.83612 284974; 103.0579 23613; 103.19516 199475; 103.57588 24058; 103.66925 11394; 103.81235 3443937; 103.88983 2935996; 104.14494 133932; 104.20135 11066331; 104.29678 3585; 104.41168 1597739; 104.79153 774059; 105.09791 703255; 105.69623 21851; 106.23348 73396; 106.83615 615067; 107.19924 77864; 107.51823 6226527; 107.71159 1393131; 107.77843 906713; 107.84349 48203; 108.07647 5371833; 108.34775 6268; 108.58534 48386; 108.7973 2504483; 109.08729 31710; 109.24317 1023064; 109.44999 64928; 109.61465 13684; 109.73834 643; 109.80391 150845; 109.93531 889136; 110.37858 13429450; 110.49636 9981; 110.57313 5872; 110.76163 72263; 110.84133 119255; 110.85054 25326; 110.92147 61287; 110.9892 1858851; 111.09724 133068; 111.16786 13230; 111.16968 79123; 111.38448 61052; 111.45062 21126; 111.47686 1497198; 112.24129 30162; 112.49714 7213; 112.59871 1208169; 112.69242 310; 112.74861 629; 113.1181 3980516; 113.50301 206567; 113.51783 44502; 113.52847 8052178; 113.95644 2985; 114.02255 72578; 114.08254 2601627; 114.48346 4856246; 114.64257 72561; 114.86026 45454; 115.07823 368346; 115.54402 4591412; 115.92946 7155; 115.98565 1482143; 116.39393 15582493; 116.41399 57270; 116.54002 1989941; 116.68954 18817; 117.45428 27375; 117.46886 1231227; 117.55616 5443591; 117.75348 198346; 117.85663 1263941; 117.97157 8148; 118.01499 9886; 118.53265 368808; 118.67896 163640; 119.22213 3623; 119.61713 52917; 119.6261 77202; 119.86167 34084; 120.1251 16473675; 120.22087 7189024; 120.317 192086; 120.40365 1621598; 120.59493 1744856; 121.29982 1359015; 121.38881 16724; 121.43376 216613; 121.69548 34763; 121.97333 72436; 122.22539 16617781; 122.47771 111846; 122.55477 46159; 122.79354 4841670; 122.79643 79399; 122.81917 254536; 122.88917 3101826; 123.06281 1038733; 123.2506 1179940; 123.38046 29810; 123.50348 3527132; 123.53615 29826; 123.54986 71115; 123.8711 8172; 123.91476 6055; 124.84489 36322; 125.08049 43729; 125.42332 15673; 125.4502 34109; 125.4736 1413402; 125.63694 70422; 125.96199 3997713; 125.97646 426575; 126.13266 693647; 126.28268 38761; 126.67081 17141; 126.75345 93341; 126.89875 6801; 127.154 25608; 127.41021 167469; 127.43871 60804; 127.47436 11039; 127.51134 3647041; 127.78876 69068; 127.82475 8468; 127.96519 34339; 128.29992 3000; 128.30975 5874; 128.39762 184538; 128.74785 62409; 128.96566 250017; 128.9999 49623; 129.15315 2864817; 129.22719 67566; 129.30732 4922904; 129.79092 393252; 130.0796 1512569; 130.09381 1272670; 130.16713 194688; 130.18033 12874; 130.27806 29754; 130.33216 8919; 130.64105 2161695; 130.70869 18534; 130.75918 18371; 130.94889 4330559; 131.2339 73239; 131.24315 4559; 131.364 517926; 131.57002 78092; 131.78127 8164237; 131.86815 5266849; 131.87109 9463492; 132.05623 1688722; 132.37254 14644; 132.42031 692344; 132.48522 5257183; 132.69243 2341368; 132.73415 7824885; 132.91739 20751; 133.09457 256; 133.30334 27870; 133.65218 7338106; 133.7814 12958; 134.29204 56691; 134.58022 191161; 134.70868 384501; 134.95558 2891666; 135.153 36745; 135.20667 34393; 135.41592 9249216; 135.53518 1398879; 135.80832 4711; 135.82497 19673; 136.41635 4695424; 136.81283 3138416; 136.84459 573836; 136.89201 5348276; 136.95794 35776; 137.07324 144004; 137.08877 9920; 137.78035 17664602; 138.26178 268701; 138.41825 71914; 138.58023 78193; 138.61198 70325; 138.91541 165; 139.13766 5178; 139.30967 5166698; 139.31808 54769; 139.42415 100849; 139.57701 34504; 139.91292 19234724; 140.02139 179516; 140.03527 7404093; 140.38032 38138; 140.58051 4699; 140.77061 112851; 140.78805 8007; 140.80001 2977755; 140.93061 67072; 141.46261 70432; 141.50319 6164; 141.53172 53654; 141.71544 7867198; 142.14028 15924; 142.26139 54940; 142.47193 24335; 142.7165 1865912; 142.75968 2452805; 142.88692 3143; 142.97527 2993203; 143.08717 1786649; 143.098 290252; 143.10947 196009; 143.22822 45968; 143.3348 896251; 143.402 5742783; 143.69243 14997; 143.85211 24588337; 144.18949 4329933; 144.43835 3119; 144.55738 3966124; 144.87307 63569; 145.08902 864385; 145.39702 2762960; 145.55947 37833; 146.15739 405078; 146.56752 8324; 146.59044 155827; 146.60638 55823; 146.62716 1194720; 147.27573 6557; 147.33767 12377; 147.43515 1265321; 147.49181 28978; 147.5258 71130; 147.77131 1361641; 148.15129 20368; 148.56201 1308483; 148.56675 75458; 148.5878 623361; 148.6309 1032558; 148.86451 26866076; 149.06733 6067; 149.55426 376109; 149.63672 10664; 150.11826 12164088; 150.43999 4681426; 150.52362 1525390; 150.60267 64936; 150.68101 26665; 151.16835 8530; 151.30357 27289; 151.31375 44972; 151.84479 58951; 152.06654 1121607; 152.58112 1062962; 152.73331 28249745; 152.87894 41512; 153.003 52; 153.19484 7369775; 153.45341 1588042; 153.59015 27411; 153.61084 7192; 153.70896 9538637; 154.08558 158156; 154.34686 2712; 154.98309 3085; 155.10583 54326; 155.1523 22255; 155.30052 74300; 155.30267 17339233; 155.32003 35221; 155.35462 5930; 155.52655 2537389; 155.55933 829227; 155.7864 6853; 155.79056 713343; 156.03929 1819567; 156.05258 9138; 156.20312 3688313; 156.22822 1971414; 156.26842 23860; 156.56868 19618; 157.11459 4234988; 157.19513 6401; 157.54105 179623; 157.74122 1747704; 157.90107 741998; 158.07826 18577; 158.27792 2595894; 158.62505 8572; 158.72948 5954; 158.9875 22043; 159.12793 9044047; 159.32129 550525; 159.42279 11539; 159.63109 16905; 159.7983 90498; 159.86296 26476; 159.89265 2373354; 160.23817 21652758; 160.29266 6211; 160.39317 36933; 160.62223 703097; 160.69466 6726053; 161.04602 1080412; 161.09785 29701; 161.19139 64302; 161.28176 614865; 161.53007 3175; 161.58404 21171; 161.60437 8721452; 161.8556 16995; 161.87229 59933; 162.54551 6199; 162.56374 3390642; 162.72729 4146229; 162.79483 20785; 162.9203 139043; 163.09872 38538; 163.43238 1880726; 163.45693 1817509; 163.74388 4125983; 163.80223 165796; 163.88306 722406; 164.03675 29785; 164.1566 24141; 164.30001 74045; 164.30813 75568; 164.69623 5193; 164.97938 8804; 165.03864 24714; 165.15693 1039911; 165.31191 849149; 165.48856 5179515; 165.85264 3444520; 165.85518 49962; 166.09167 40891; 166.32402 2276; 166.5347 20775; 166.59041 4433143; 166.63099 169737; 166.85713 6430; 167.08936 2215675; 167.13187 1172637; 167.27795 488366; 167.45439 8213; 167.47241 68714; 167.5455 1992866; 167.70985 74736; 167.88837 50671; 168.05056 22055; 168.07412 151821; 168.1523 16548; 168.25992 28344948; 168.26986 30647; 168.76565 3218; 168.78883 2786219; 169.01227 23559; 169.05154 3488724; 169.08808 38722; 169.32379 5159579; 169.94095 180124; 170.0331 172249; 170.10014 43524; 170.14053 51121; 170.19422 35057; 170.4367 21389; 170.64919 4019297; 170.8403 1422005; 170.92927 29217; 171.02312 1667561; 171.42663 18329; 171.55293 3590736; 171.59041 240852; 171.59821 12481069; 171.9888 5308680; 172.7803 1446679; 172.88756 28656; 172.90005 13281; 173.38912 8688; 173.50059 462; 173.56792 72538; 173.67881 4448146; 173.73944 2217; 173.88362 962187; 174.08729 30329; 174.13553 4839635; 174.14465 1856809; 174.28097 55329; 174.34006 354164; 174.68288 12015; 175.04844 77878; 175.14102 4961962; 175.20723 744066; 175.37248 36018; 175.43508 124716; 175.9387 2051; 176.06199 886493; 176.09946 161029; 176.22601 4037359; 176.37458 144788; 176.52078 15419; 176.60227 14021848; 176.68003 13333963; 177.25803 36391; 177.31023 1284209; 177.35672 6687; 177.46412 63243; 177.51609 4631; 177.60909 6136935; 177.67418 6584; 178.18074 13569; 178.21641 976532; 178.51252 70750; 178.86032 787323; 179.19916 35002; 179.60477 6104; 179.90698 2278525; 179.9216 63321; 179.93035 25641; 180.31609 28089; 180.80432 26778; 180.99645 331099; 181.43772 185712; 181.55464 58068; 181.77697 1138175; 181.81613 323126; 181.9054 19998; 182.22721 70320; 182.49694 502783; 182.9857 9895; 183.01024 335112; 183.05109 4476; 183.3262 157015; 183.3836 35797; 183.48356 25800; 183.97729 32640; 184.34377 5734; 184.42809 3002; 184.45371 176879; 184.53815 2079; 184.70119 124243; 185.32406 31806; 185.35002 18114467; 185.44919 20250; 185.79363 133198; 185.9333 1768286; 185.98097 195264; 186.10265 66746; 186.39229 24743927; 186.76744 27917210; 186.86521 8630478; 186.99976 1344473; 187.01175 40542; 187.07614 1461891; 187.37575 62043; 187.38998 40210; 187.46474 7211402; 187.56161 184583; 187.96404 43932; 188.10949 18632189; 188.21114 1661034; 188.24425 2047478; 188.5425 3550594; 188.56282 188578; 188.82888 4524; 189.20289 55185; 189.35365 4759184; 189.48961 61429; 189.96621 78831; 190.03188 79289; 190.06911 143218; 190.47864 5573; 190.61875 7273; 190.97529 71193; 190.97789 324951; 190.98531 7949; 191.23497 22120; 191.40769 28994; 191.52051 3337; 191.67364 633352; 191.86398 387321; 192.09988 51042; 192.22495 598606; 192.37747 2465346; 192.49813 1737919; 192.56055 18598; 192.77907 23882; 192.78088 838363; 192.88427 24208349; 192.95843 73029; 193.07224 9352500; 193.14824 45381; 193.18529 3605; 193.33732 4547; 193.39914 854197; 193.43534 6046825; 193.56314 303; 193.73119 77406; 193.78925 5796431; 193.93899 8614123; 194.09996 178491; 194.48484 69353; 194.51711 887365; 194.6671 74221; 194.72448 792420; 194.7842 1274; 195.20507 20725; 195.23025 51207; 195.37481 24489; 195.67236 146151; 195.7061 32234; 196.21962 22577; 196.81511 64360; 196.82053 2881952; 196.85292 15546347; 196.96548 1694480; 197.27762 3088107; 197.29157 2748081; 197.335 31515; 197.37406 20585; 197.54353 1618; 197.54974 16352; 197.75833 67292; 198.0146 5353; 198.53016 817099; 198.79541 1178664; 198.94124 701160; 199.18577 23773; 199.50918 45598; 200.18095 2740; 200.19465 2237; 200.40833 9355; 201.05777 7537622; 201.14671 678764; 201.49001 897977; 201.64405 44419; 201.65955 76021; 202.02321 52858; 202.19415 514408; 202.72487 37499; 202.73083 24733; 202.769 84089; 202.77512 7691976; 203.19662 448; 203.24858 4184623; 203.27187 30680; 203.40566 23338781; 203.84985 7045; 203.92331 9482; 204.01313 69991; 204.29041 338013; 204.53836 18245100; 205.44944 9247; 205.74287 33605; 205.7531 1670547; 206.13241 51832; 206.164 1820578; 206.17291 1381775; 206.18081 46517; 206.47745 19297; 206.51672 4219583; 206.52333 4084365; 206.89033 22305749; 206.94425 18466; 206.96634 6649; 207.41436 6635672; 207.48723 28787; 207.76685 26348; 207.79606 3800; 207.82645 5457748; 208.2764 2211; 208.39871 147659; 208.63782 1251968; 208.80935 1232; 208.89342 4852; 209.04085 164467; 209.08753 78464; 209.11761 38853; 209.2929 548152; 209.36532 30420; 209.54174 6426; 209.59944 4830440; 209.69579 7982; 210.02045 28404507; 210.1372 16724; 210.22322 2484090; 210.30812 2845864; 211.1478 127413; 211.94521 5253851; 212.17708 119042; 212.48152 634; 212.59693 3920917; 212.86843 26681305; 212.91826 2842; 213.04743 42395; 213.21428 72934; 213.5417 82090; 213.8116 503494; 213.88697 155168; 214.08394 1832; 214.08745 3984976; 214.15384 79773; 214.40377 747238; 214.54862 8558; 214.98832 177839; 215.10601 866704; 215.3385 837628; 215.49005 801440; 215.54957 79839; 215.67341 42261; 215.68358 1843278; 215.75957 41307; 215.82696 10009; 216.57409 22662; 216.59627 929787; 216.63666 7284; 216.77786 7764172; 216.79354 259641; 216.81394 931436; 216.84719 79663; 217.09226 35582; 217.24405 23156; 217.39861 3778704; 217.47338 901979; 217.50015 19871052; 217.99976 17053430; 218.00853 152098; 218.47803 3314; 218.6083 2097677; 218.72512 3073414; 219.25571 12173; 219.31081 1862443; 219.3529 50240; 219.58201 21029; 219.86752 9660; 219.97141 655053; 220.01181 573396; 220.01433 49051; 220.07106 9259524; 220.23359 61216; 220.36553 6412; 220.83534 1951448; 221.02122 23643; 221.02912 34883; 221.07363 20106959; 221.20196 1948933; 221.2962 25017; 221.36651 330581; 221.43674 82261; 221.45278 2372; 221.49601 2744349; 221.75998 169569; 221.95913 44039; 222.31636 9863071; 222.43492 134705; 222.4469 68817; 222.62678 4099662; 222.72731 681069; 222.73685 13357; 222.75083 9403; 222.81893 52777; 223.00972 3007463; 223.09091 48358; 223.63683 48188; 223.89647 76698; 224.16913 44990; 224.24527 68337; 224.34898 36254; 224.41687 47223; 224.90704 824; 225.12807 7937; 225.40169 7891541; 226.03949 894179; 226.37017 137534; 226.48722 8524; 226.572 31734; 226.72584 710946; 226.74644 33973; 226.93859 1696242; 227.42691 223803; 227.49371 40167; 227.60651 564373; 227.83376 1987699; 227.85517 77274; 227.88692 27730; 227.91504 188224; 228.08489 34462; 228.23411 31175; 228.39812 5894; 228.60397 4789; 228.6157 3750363; 228.70274 23328; 228.75457 383208; 229.25129 419944; 229.41948 7600; 229.62286 28677; 230.06096 5473832; 230.15951 1791153; 230.27827 10170; 230.31718 886234; 230.38572 26113; 230.4847 1925537; 230.61186 576739; 230.71487 763; 230.79451 20969; 230.90343 7787; 231.11853 119568; 231.37411 51551; 231.66694 1998248; 231.7695 19751; 231.8676 1299382; 232.0276 168634; 232.19092 27816; 232.38644 2894512; 232.94525 95320; 233.15721 79450; 233.33385 35362; 233.34239 1732955; 233.67401 25825; 233.74978 1201989; 234.09932 549; 234.55078 675966; 234.55494 19001210; 234.61918 56022; 235.17698 9505; 235.30847 59488; 235.40354 742493; 235.41579 6995693; 235.76278 1575; 235.89351 4915514; 235.99463 151357; 236.77628 7116; 236.99773 60103; 237.03149 132461; 237.08712 1839626; 237.31182 4554797; 237.46243 24511; 237.72312 11966; 237.86593 3008385; 237.90919 4287794; 238.0572 75753; 238.15464 2997466; 238.35235 1546738; 238.36045 592; 238.38333 1243141; 238.6032 304126; 238.8573 3572540; 238.85939 114; 238.87736 8694; 238.98794 30671; 239.00214 29182; 239.18889 2809083; 239.41516 4321514; 239.48439 1174; 239.68732 1504183; 239.69838 1926859; 239.75948 59840; 240.03246 11263; 240.04047 1878; 240.15819 59937; 240.21142 175063; 240.36563 131937; 240.51824 5081013; 240.54211 1201134; 240.62207 73647; 240.81506 50297; 240.85311 79359; 241.36497 20741442; 241.46971 7049; 241.54937 25551; 241.7789 44806; 241.93045 21717; 242.17638 41913; 242.81736 24990; 242.8499 3326425; 243.05394 27027; 243.10813 356371; 243.32066 1884; 243.66028 10616; 243.8446 1913081; 244.52859 78192; 245.66891 16710; 245.78492 7245; 245.81877 53940; 245.90649 28001; 245.94508 5964; 245.97788 15612; 246.02512 723679; 246.31316 22959; 246.43554 787609; 246.48317 58305; 246.75807 68140; 246.98288 75007; 247.08921 33874; 247.15398 729; 247.26174 1617521; 247.40501 20997; 247.5399 5395; 247.88325 6130; 248.07053 31944; 248.17011 38690; 248.32345 148254; 248.32561 70487; 248.89019 89426; 249.24446 229287; 249.3564 19851729; 249.45026 618883; 249.50531 901094; 249.56024 124870; 249.68921 2923758; 250.09673 6759615; 250.14501 64866; 250.17164 7745972; 250.52511 1965697; 250.57912 2844041; 250.68405 5380; 250.81461 7207907; 251.78614 7241; 251.86119 55682; 251.91069 25531; 251.97495 26546; 252.31923 694194; 252.41142 1183785; 252.55903 119901; 252.59498 6234977; 252.75691 9013; 253.29061 27052; 253.51406 2296068; 253.6016 6047; 253.61613 19925998; 253.76408 310336; 253.98855 4491; 253.99883 57427; 254.11971 1566665; 254.21863 22492; 254.45935 1167; 254.52888 4428885; 254.63855 9078993; 255.34508 34768; 255.46589 571987; 255.61219 9582341; 255.82918 77117; 255.88204 28441; 256.00412 66380; 256.20353 6139736; 256.22941 9000811; 256.23966 37049; 256.97452 51388; 257.09805 2086; 257.13606 4128486; 257.14012 70897; 257.41192 10988451; 257.46347 3256761; 257.78269 7461711; 257.79016 594; 257.87581 523; 257.96019 172879; 258.31082 17582; 258.41383 5333694; 258.56461 1735031; 258.68611 79894; 258.71609 82483; 259.30863 164038; 259.31047 264882; 259.76544 848191; 259.79144 5502967; 259.9913 8349038; 260.80463 18752; 260.90527 27436; 260.91571 1549742; 260.93548 351747; 260.96912 109792; 261.68015 177298; 261.78022 638543; 261.90784 7586084; 261.93035 61392; 262.1391 57937; 262.29444 6993; 262.33901 27481479; 262.52329 5233; 262.55888 1568285; 263.16517 110184; 263.25499 77478; 263.64727 563933; 263.67467 7915250; 264.01838 1844420; 264.21385 72229; 264.30194 3059574; 264.39273 178620; 264.58807 79562; 264.71453 1766364; 264.99088 50348; 265.015 35310; 265.34497 33263; 265.97205 6922; 266.35954 4188465; 266.43362 2285692; 266.7139 6480961; 266.73282 41670; 267.02784 57470; 267.22179 12300235; 267.47054 8883672; 267.49987 46892; 267.69283 13441843; 267.75354 19791; 267.8993 7710245; 268.08888 7837920; 268.23979 113882; 268.24663 75580; 268.27073 7856608; 268.40975 78803; 268.87619 46213; 268.90057 4881; 268.94685 1709; 269.21524 23009; 269.26851 8074320; 269.28416 61019; 269.38108 41464; 269.39818 889570; 269.46209 44195; 269.4928 54235; 269.56075 23657; 269.77152 7209; 270.31607 9275; 270.46075 26655803; 270.74569 28156; 270.77813 4478; 270.82554 1828282; 270.88605 983869; 270.97022 1057494; 271.00449 73; 271.10078 288468; 271.6549 4702442; 271.86213 1179294; 271.90427 1166838; 272.20929 9293457; 272.22199 3184; 272.94987 1433; 273.38561 48796; 273.54889 1396779; 273.57856 47528; 273.73209 8816; 273.74084 528742; 274.30284 3770879; 274.44942 11050268; 274.46198 20891231; 274.63899 2118511; 274.67294 1138242; 274.69646 1232185; 274.70608 8850; 275.06495 442173; 275.18557 49655; 275.33015 2309547; 275.33438 6676; 275.33636 2464719; 275.39886 6262971; 275.45138 1024112; 275.63788 1490054; 275.66207 17934; 275.66589 423812; 275.72271 236908; 276.03589 9445066; 276.07668 7095949; 276.09169 184516; 276.16592 1350319; 276.35662 39375; 276.54381 12723385; 276.85295 5663762; 276.85876 6467; 277.19113 37829; 277.27976 78571; 277.29401 62648; 277.42751 49443; 277.55306 1105; 277.61334 4609508; 277.97643 1410583; 278.02389 35818; 278.12435 21296; 278.13325 48949; 278.16523 25696; 278.18665 72573; 278.25283 11162; 278.34753 24812; 278.34783 7390371; 278.40827 2867322; 278.64641 11556551; 279.0924 33769; 279.26747 2552324; 279.53425 20288; 280.00281 971199; 280.27492 75154; 280.52404 944585; 280.75121 2089; 280.80391 167753; 280.82603 1529069; 280.95591 1601; 280.99992 4255758; 281.29835 3149046; 281.32185 22813; 281.4451 5391755; 281.68906 8851; 282.30147 34863; 282.5236 8165898; 282.58267 873283; 282.59074 97066; 282.74916 159891; 282.76558 1968; 282.91618 8289510; 283.46388 42334; 283.60526 4463572; 283.76883 1953946; 284.03174 42056; 284.05364 46826; 284.34499 56242; 284.36479 1532854; 284.47695 45974; 284.51748 10483624; 284.90843 2253192; 284.91635 44051; 285.24988 28839; 285.28991 1500108; 285.36647 1016435; 285.49713 71570; 285.6268 1761185; 285.62685 40117; 285.79014 6754; 285.94139 7366108; 285.99403 182667; 286.02084 47079; 286.06935 18192; 286.3508 1284317; 286.35443 4084697; 286.48088 951221; 286.56929 23514; 286.71376 1298475; 286.76968 764729; 286.85253 1907996; 287.05923 4750754; 287.0967 1652050; 287.21049 1202407; 287.81997 2001716; 287.90048 1673331; 287.9303 281174; 287.95477 49212; 288.14824 39792; 288.19797 30511; 288.22284 6320525; 288.30872 145742; 288.49598 17395; 288.74018 1850816; 289.00222 6093530; 289.20534 934242; 289.41536 553033; 289.65864 5650; 289.82411 52344; 289.87184 28667; 290.31211 26062059; 290.82444 61760; 290.851 56454; 290.87782 45199; 291.30624 128629; 291.34087 5645; 291.35777 1105537; 291.41188 411413; 291.89126 901473; 291.90517 9731164; 292.04927 506723; 292.06042 22259; 292.34698 1281655; 292.50802 4064714; 292.58956 3046749; 292.89245 47229; 293.01804 66628; 293.02273 225979; 293.08304 2148358; 293.09687 812415; 293.14384 9707; 293.31549 9654703; 293.39015 50617; 293.49113 7574; 293.64499 4907674; 294.01741 40416; 294.06746 72570; 294.43863 22709; 294.58194 171881; 294.86608 1967717; 294.99079 131434; 295.40057 24113747; 296.2173 12022; 296.57685 4477591; 296.75518 143666; 296.83565 43462; 296.9294 43632; 296.93262 7681436; 297.02267 58876; 297.07565 1639923; 297.34596 79357; 297.84616 57459; 298.05514 1921056; 298.08307 4587070; 298.11938 4364876; 298.34105 37892; 298.70189 153613; 299.05844 8162; 299.06931 50156; 299.14897 346521; 299.17689 863366; 299.19466 578090; 299.21747 6798; 299.24124 66274; 299.53074 195293; 300.29937 60216; 300.4903 46926; 300.56719 92007; 300.73633 7176; 301.14034 9338364; 301.22286 20974; 301.32609 40021; 301.55562 8097; 301.76105 8270; 301.84908 27865; 301.95603 22292; 302.03327 50782; 302.05633 1944397; 302.10199 2529277; 302.93733 189857; 303.39112 283603; 303.42255 19479; 303.44775 157960; 303.56602 60045; 303.82614 6616888; 303.97681 4558; 304.09345 22902431; 304.60782 2806; 304.80446 28499; 305.12537 78552; 305.4198 81327; 305.43194 91124; 305.75418 70610; 305.90849 34354; 305.93604 331589; 306.07705 9773174; 306.26852 1055012; 306.40199 28881812; 306.42892 66908; 306.58418 8446572; 306.61582 28539344; 306.65678 653918; 307.03409 1846324; 307.43504 30178; 307.76275 74864; 307.82038 1405320; 307.99589 454856; 308.14084 36310; 308.38299 23219; 308.87055 69629; 309.24568 55006; 309.34221 4489; 309.37863 3084332; 309.38588 36454; 309.55441 2703166; 309.73855 4730959; 310.07875 6569612; 310.11545 2987; 310.13994 6575; 310.23603 3105; 310.44059 2358027; 310.71619 1664660; 311.07489 5308; 311.3558 5205; 311.41212 102097; 311.45078 4869302; 311.5556 77867; 311.93045 12950031; 312.10673 50243; 312.14672 56333; 312.74505 7400619; 313.12515 34640; 313.30885 5778; 313.44034 17205166; 313.5489 21245; 313.58469 1159248; 313.6736 2526802; 313.67647 24780; 314.08459 7615818; 314.1244 22569; 314.29669 65053; 314.38037 10723511; 314.50852 2721938; 314.51629 33254; 314.6295 4364; 314.69556 7064876; 314.72882 12531; 314.94399 782140; 315.20157 4560; 315.30411 512979; 315.4702 33181; 315.49632 5809478; 315.54663 37932; 315.62682 16243; 316.53826 9430378; 316.81144 6441868; 316.9491 1991849; 317.01592 709378; 317.0284 966554; 317.12872 1954100; 317.27862 5770; 317.2816 383948; 317.47388 1416493; 317.5862 21405; 317.67166 284215; 317.79683 732669; 317.84552 7354685; 317.90076 31387; 318.02659 28016; 318.11828 182741; 318.26531 2635243; 318.47586 6761308; 318.6847 32; 319.06273 7244; 319.2529 113301; 320.69403 6861262; 320.74323 27683715; 320.99675 18965087; 321.0145 527443; 321.01616 4180036; 321.13103 183576; 321.30462 46115; 321.41836 45187; 321.63496 6150393; 321.67741 3535; 321.78497 57975; 321.79862 5451; 322.08075 7927736; 322.45418 77171; 322.49908 8465804; 322.56358 23999; 322.65357 6989703; 322.73299 845691; 322.77925 68433; 322.82915 4172; 323.04452 16552; 323.06189 3113; 323.26962 151997; 323.65323 48064; 323.89052 8489; 324.07481 8792; 324.17323 14690746; 324.28707 8317; 324.33918 71114; 324.45438 7794; 324.49252 70966; 324.49613 568; 324.73936 43531; 324.78611 1932059; 324.90573 8345762; 324.95755 4502; 325.20102 221; 325.20889 46805; 326.01843 5591; 326.06888 4161; 326.11909 8683; 326.32068 19539; 326.48201 53199; 326.54511 15873; 326.99242 19050; 327.34576 3307790; 327.73311 68662; 327.76525 43821; 327.91833 32013; 327.97609 55504; 328.23801 1443118; 328.3075 187926; 328.33826 453797; 328.6765 97289; 328.79583 572696; 328.82774 8306932; 328.9008 23957256; 329.33701 13734; 329.33734 138188; 329.68233 38677; 329.76306 20256; 329.79594 16338; 329.91653 38721; 330.05022 578746; 330.23807 8703; 330.41146 5605941; 330.56652 1406214; 330.57984 72257; 330.66788 165951; 330.99919 2216011; 331.00213 91418; 331.03872 32103; 331.17748 19637; 331.19871 49235; 331.35504 34693; 331.39129 158490; 331.86208 3418496; 331.90327 1695590; 332.00009 63885; 332.09145 17867; 332.12842 154; 332.47388 832843; 332.51157 2287490; 332.61413 46639; 332.61841 9011; 332.64688 32789; 332.67076 182884; 332.7349 27336; 333.12999 58630; 333.18008 15125; 333.86306 29870; 334.01623 9157773; 334.35119 437943; 334.36574 5325; 334.51933 4860202; 334.58375 443733; 334.60231 3008382; 334.65915 5091; 334.98165 1131014; 334.99016 1303796; 335.05396 23858; 335.10267 8374878; 335.29761 223015; 335.58454 71421; 335.98551 21588; 335.99837 1940; 336.07364 27439; 336.15176 4572466; 336.25134 46441; 336.72299 67543; 336.83048 147076; 337.14716 7734652; 337.16615 1186695; 337.23259 93598; 337.71695 322571; 337.72632 52585; 337.80963 11663; 337.93911 186489; 338.08479 9477609; 338.34554 452147; 338.37962 85429; 338.40947 2333; 338.57501 29281; 338.68004 70886; 338.8362 2532430; 338.89654 19177; 338.92637 3506; 338.92658 1821; 338.95929 8572092; 339.12544 69500; 339.2882 45360; 339.75647 124886; 339.95576 1798093; 340.38415 179560; 340.54197 178764; 340.88123 25188; 341.09198 88258; 341.16137 8715; 341.48686 20807; 341.63007 4739124; 341.94256 1964673; 342.219 62316; 342.56986 74402; 342.62631 26579; 342.74741 2832; 342.88991 18373570; 343.11427 3682; 343.15654 11840; 343.36559 20517826; 343.414 16025; 343.4574 63015; 343.48382 1228; 343.56325 3313; 343.67301 46680; 343.90557 174692; 344.14008 64387; 344.27962 5789611; 344.9677 7199; 345.32387 5270109; 345.82459 980; 345.97662 57503; 346.21251 23159; 346.39205 805444; 346.5823 26645; 346.76762 129067; 347.0734 68431; 347.48382 44086; 347.61264 1179172; 347.63227 10233692; 348.06531 2680237; 348.19606 2956492; 348.23222 23242; 348.37812 1353; 348.43338 532755; 349.23215 5045373; 349.32543 21879; 349.75973 143810; 349.87101 617634; 350.08607 25904589; 350.10364 24971; 350.61967 4318460; 350.69597 101382; 350.83133 7403; 350.963 1006685; 351.00161 5984; 351.08729 5498921; 351.37259 59301; 351.45616 4201121; 351.49843 52701; 351.54763 24389; 352.07247 9923; 352.28377 79845; 352.30249 736085; 352.5168 259404; 352.71515 58295; 352.85568 2441720; 352.86866 4672; 352.92614 9006507; 352.94848 2142906; 353.13379 56689; 353.15258 60125; 353.484 41476; 353.51987 65277; 353.5305 8689; 353.65138 874307; 353.75069 7040459; 354.07359 91874; 354.26186 70217; 354.35617 3951; 354.46156 20370; 354.46163 296555; 354.5933 40649; 355.04685 23066; 355.08963 3151523; 355.11509 1801226; 355.52934 20433; 355.56264 41914; 355.65414 10621641; 355.9532 12109307; 355.96353 8438069; 356.14958 4345347; 356.60613 92480; 356.64481 4090244; 356.65616 3153217; 356.91308 9655850; 356.94037 9121710; 356.96498 29963; 357.04887 33411; 357.12657 13446; 357.17677 22987; 357.26087 37716; 357.40396 160486; 358.10934 1809; 358.25948 6016141; 358.30341 253735; 358.43439 4888361; 358.52756 35620; 358.85099 3711060; 358.85478 1057092; 359.22085 2573; 359.23597 95084; 359.29138 27391; 360.04208 1819339; 360.08088 1061961; 360.09272 316136; 360.09816 43397; 360.19089 9483; 360.28032 3344339; 360.52331 1508055; 360.65843 2877; 360.69675 49186; 360.89419 2204; 360.95133 1237964; 360.96823 66204; 361.14708 9698; 361.47065 173849; 361.57149 67348; 361.58774 7650943; 361.69232 199685; 362.11572 33588; 362.35785 21493; 362.52043 246; 362.76615 72865; 362.99829 34880; 363.14317 9584282; 363.36327 4310261; 363.47479 14170; 364.0196 7306321; 364.02066 8631815; 364.09764 11283; 364.12874 5068591; 364.27524 2007841; 364.50986 8703; 364.64186 652; 364.7008 1425778; 364.7786 35400; 365.41006 23455; 365.4763 25366; 365.7232 9671; 365.73963 9956659; 366.10611 74916; 366.62891 6960120; 366.67462 576307; 366.70698 205661; 366.76825 555409; 367.01161 1970179; 367.07787 3136; 367.1983 101611; 367.45435 1958; 367.56998 15959275; 367.76557 32207; 367.83737 1953627; 367.90433 15063607; 368.35803 8536012; 368.37036 13082; 368.37308 3561; 368.6143 17959; 368.94743 18590; 369.15409 12758; 369.44857 1986; 369.54382 1232304; 369.79538 4899149; 369.82818 25861245; 370.20166 77031; 370.30754 71672; 370.40948 12882; 370.84831 1809750; 371.4735 2392208; 371.98483 16842455; 372.17873 3425953; 372.31781 5922; 372.66358 168673; 372.91887 3769; 373.50585 207659; 373.65251 72704; 373.90634 8808; 374.18017 1857598; 375.44562 48407; 375.45002 6785; 375.90577 174257; 376.02366 4012919; 376.17398 448607; 376.22049 1919987; 376.27906 5349835; 376.3023 44517; 376.38787 16503; 376.62285 7764; 376.65032 9207086; 376.94831 1126620; 376.95785 62779; 377.0124 714468; 377.46859 3903829; 377.58219 66197; 377.65223 66426; 377.79353 1350136; 377.79478 20645; 377.96878 71528; 378.29352 38023; 378.33549 1310242; 378.6252 103871; 378.76103 49127; 378.78866 20235; 379.05306 1810205; 379.20758 46907; 379.30643 9153410; 379.59226 801813; 380.11389 4175930; 380.13106 2715206; 380.19694 25092300; 380.24132 47350; 380.29455 4615436; 380.866 4602886; 380.93715 2547045; 381.10366 45301; 381.14539 1878343; 381.1854 1772071; 381.24405 34651; 381.61025 11541918; 381.61699 10743; 381.93919 19451847; 382.169 92200; 382.52571 48138; 382.67299 5298153; 383.02396 6496; 383.13291 169459; 383.30997 23073; 383.33071 18407; 383.58865 78884; 383.62794 1706812; 383.69519 4180; 384.38081 9330440; 384.55633 1317; 384.59641 35519; 384.63671 2329; 384.83094 166047; 385.15564 1739371; 385.32434 3485000; 385.41943 56348; 385.67385 9581; 385.71029 4009893; 385.74032 3261161; 385.81048 1156175; 385.92744 52105; 386.15532 25258; 386.35503 55432; 386.72259 25923; 387.69307 7644197; 388.66903 23330031; 388.71169 95740; 388.87334 123477; 389.0664 1470788; 389.15534 9553722; 389.50752 3430194; 389.56431 38560; 389.61201 17347; 389.63117 162999; 389.80129 2274; 390.20958 10251; 390.21788 87885; 390.99723 29942; 391.09697 1036035; 391.12485 1865885; 391.19278 49994; 391.37594 65516; 391.79401 781895; 392.00858 19005399; 392.08131 126685; 392.33817 37144; 392.79391 407659; 392.8702 1572960; 393.25851 1888945; 393.42095 633115; 393.57529 4551; 393.83199 674485; 394.5962 23234; 394.68231 1016226; 394.99286 7182308; 395.43448 105309; 395.59387 44886; 395.85613 99957; 396.09023 8923881; 396.12757 20339; 396.29893 76138; 396.74133 16536; 396.80022 67612; 396.87737 98017; 397.05567 176199; 397.08472 45019; 397.09997 3497279; 397.87616 6125; 398.02377 24261; 398.11419 14552; 398.19052 23355; 398.25582 1325513; 398.32891 1097870; 398.54034 882117; 398.73892 3520809; 398.74597 76949; 398.9612 7227296; 398.96132 16886; 399.80226 4022672; 400.27918 50389; 400.46994 117724; 400.63125 8652; 400.69545 1744492; 400.90861 870726; 401.29974 696630; 401.44288 23893; 401.45661 47696; 401.70184 7508; 401.74095 27246; 402.01954 22719; 402.17289 21413; 402.24329 323324; 402.94755 68598; 403.14548 57796; 403.36259 801749; 403.48236 10519; 403.81055 21521; 403.88821 32287; 404.18411 21360; 404.18735 3379448; 404.21106 183204; 404.41531 56027; 405.12689 1105576; 405.13244 5106896; 405.51155 77898; 405.80942 24272; 405.88305 1885550; 405.95605 63896; 406.07257 9903; 406.11787 4847085; 406.1497 70879; 406.21012 26242; 406.26362 15195; 406.38569 20600; 406.93092 179197; 407.18578 813063; 407.359 8668882; 407.362 16079876; 407.40861 2337; 407.50278 560707; 407.64773 8998700; 408.05 48548; 408.13669 12324911; 408.17842 1709181; 408.31558 8870; 408.43426 284431; 408.78551 4104144; 408.86116 6556; 408.97683 66641; 409.05829 6024113; 409.09002 4320206; 409.17969 67877; 409.19141 971826; 409.20328 1918; 409.51323 8345; 409.53256 71654; 409.6369 1556027; 409.69022 2907655; 409.75319 2078233; 409.93532 4317429; 410.7472 34549; 411.05279 30804; 411.06627 2986; 411.12401 2223103; 411.19418 3811665; 411.78896 28707; 412.04761 42425; 412.117 1905015; 412.19061 6721835; 412.27367 928291; 412.3683 6924676; 412.52676 48663; 412.53486 2874750; 412.63308 5939310; 412.68254 31745; 412.83436 23419; 413.15092 1860696; 413.33809 43369; 413.66936 1511; 413.8205 1192906; 414.15711 2247635; 414.25208 663848; 414.25347 19249554; 414.30866 832659; 414.32969 2557553; 414.57108 23969343; 414.76322 64881; 414.93586 1346562; 415.40524 27892; 415.45782 9931223; 415.58895 7908768; 415.72542 3002871; 415.91138 416187; 416.08016 72507; 416.1015 31833; 416.44986 48854; 416.69847 1026329; 416.79225 8483; 417.0214 3234946; 417.30354 564078; 417.31079 676836; 417.4036 4981991; 417.85044 60622; 417.99629 49244; 418.11662 1351337; 418.21281 44540; 418.29008 47436; 418.52255 571248; 418.78945 175272; 418.89425 235597; 418.93502 3878; 418.94604 50914; 419.15474 9861756; 419.16863 4995; 419.17629 6585418; 419.29303 167175; 419.41856 23327; 419.56118 111909; 419.60932 2966247; 419.79323 65497; 420.06538 1967224; 420.48636 7809970; 421.23297 2712345; 421.272 1768123; 421.4235 29347; 421.43309 115854; 421.44222 559855; 421.60198 1653895; 422.21789 9751; 422.32506 18518; 422.56263 26916; 422.64973 95788; 423.36421 1601324; 423.39737 50390; 423.46632 1333416; 423.70948 24600; 423.7881 8732923; 423.88546 1338878; 423.97179 55274; 424.15645 34836; 424.52667 3448840; 424.56169 4182; 424.85386 1171881; 425.20008 16697; 425.31854 64046; 425.87475 19622734; 425.91081 16561; 425.94749 69376; 426.1686 75899; 426.19147 5846; 426.29139 37101; 426.41004 976832; 427.27375 920920; 427.33286 12841; 427.51461 20217; 427.77616 9920; 428.13969 5825198; 428.23971 32776; 428.35354 5852; 428.43176 21657; 428.50242 77627; 428.60192 3027; 428.65537 143885; 428.81313 1366670; 428.91629 24067; 428.93163 345576; 429.35626 41915; 429.72368 54221; 429.82502 73769; 429.95328 803229; 429.979 920; 429.98569 74417; 430.46701 2967678; 430.5225 1422998; 430.59687 4521878; 431.16599 593107; 431.33217 27141; 431.4076 952421; 431.58197 1473860; 431.74025 47890; 432.12369 192587; 432.38039 32930; 432.48931 210007; 432.54404 28293; 432.55164 268264; 432.63177 4513672; 432.79848 84812; 433.11953 1078876; 433.74006 361423; 433.85302 566998; 433.91809 8879; 434.27633 57610; 434.40339 151050; 434.69446 629; 434.88405 1150870; 435.03021 47100; 435.31313 163; 435.3632 197114; 435.7853 72388; 435.87344 110883; 435.97952 196394; 435.98335 621; 435.99862 9830; 436.00267 22167; 436.33788 22394; 436.7051 8588730; 436.8018 4767307; 436.85488 18581531; 436.99997 1340327; 437.11995 1886138; 437.12135 253986; 437.2005 30518; 437.3178 25921; 437.49665 884251; 437.85967 112310; 438.00122 2837696; 438.00663 1587436; 438.04808 37731; 438.16198 2413621; 438.2097 1636; 438.47581 5408635; 438.55273 295219; 438.66595 6039398; 438.73027 58003; 438.80813 3524858; 439.12167 18654; 439.17271 29410; 439.42098 4867834; 440.13546 14763837; 440.4693 1880038; 440.52926 8523; 440.9537 2263861; 441.14724 7190; 441.20602 73912; 441.41041 2383; 441.89462 26162; 441.90598 62078; 441.95218 29539; 442.18025 27502; 442.76171 12660; 442.93258 4854379; 442.96207 22722; 443.00899 2653; 443.05481 650; 443.12896 79; 443.4599 4179; 443.74603 74432; 443.86693 27548; 444.19489 4816; 444.8127 27615; 444.93192 873192; 445.20126 2143708; 445.27181 52250; 445.28764 6772104; 445.33198 1739938; 445.5672 30867; 445.73532 3236909; 445.80105 59725; 445.96562 66355; 446.07883 85723; 446.15375 46952; 446.17925 621681; 446.4191 53900; 446.47781 1701487; 446.49985 27068; 446.57606 192533; 446.78254 5879; 446.92242 26491; 446.95367 2742443; 446.99909 78555; 447.10923 172603; 447.42582 357730; 447.52959 44657; 447.83574 12339; 447.95079 311; 448.03495 879270; 448.31577 8064715; 448.34044 65852; 448.45991 21095; 448.52857 22232; 448.65337 31423; 448.65882 14955; 448.7778 4331480; 448.82567 27491; 448.83031 27898268; 449.03753 32592; 449.45001 26175; 449.63745 125325; 449.72358 49959; 449.85953 4196316; 450.02028 166455; 450.12393 33628; 450.14142 37827; 450.33826 4130838; 450.4385 1951936; 450.93811 900728; 451.22938 71210; 451.35661 117765; 451.36327 16978; 451.45776 1939549; 451.99797 57174; 452.22861 6166278; 452.25096 7130; 452.35006 1604298; 452.41775 525908; 452.55996 16892; 452.76909 16449; 453.16978 19876; 453.4939 39187; 453.54086 15952; 453.59221 77542; 453.78931 26790; 453.89173 1028717; 454.01704 189332; 454.15192 215; 454.22837 21645; 454.35777 4448140; 454.44055 2801629; 454.79631 4043; 455.04762 8664; 455.15506 6543; 455.16035 891457; 455.2317 3379360; 455.34946 3347408; 455.36025 304802; 455.36095 33526; 455.85649 30123; 456.33034 1347569; 456.50383 107948; 456.82226 19869; 457.08773 53489; 457.09215 4506061; 457.37549 46849; 457.38315 1821; 457.40537 75717; 457.6057 53345; 457.70235 49434; 458.57983 1819106; 458.61407 30103; 458.9622 74553; 458.9984 960887; 459.16484 189840; 459.26856 5210; 459.43819 4086609; 459.54959 1452737; 459.64998 25815; 459.71359 26798; 459.91847 776217; 460.33075 2130334; 460.67103 138266; 461.08709 1689317; 461.30272 674188; 461.69921 25399; 462.00477 963987; 462.04014 35469; 462.12031 76979; 462.13041 7448068; 462.20831 28568; 462.60439 891985; 463.06655 4511415; 463.07708 75231; 463.27817 3231869; 463.31797 56870; 463.57788 77447; 463.61747 16652; 464.54907 71577; 464.60933 148249; 465.18044 8409392; 465.18179 5845; 465.36221 162064; 465.56153 119027; 465.65625 1289535; 465.76362 783; 465.92376 138526; 466.36161 65415; 466.39257 15581; 467.30324 43055; 467.47452 7440883; 467.5988 61137; 467.69852 241; 467.86218 1525; 468.09719 1452471; 468.1998 3639018; 468.4665 2117694; 468.8368 26708; 468.95828 71017; 469.39372 671735; 469.89916 7858; 470.09109 2089191; 470.72957 3486563; 470.85142 478711; 470.90016 1501417; 471.08181 7000; 471.30445 121780; 471.40732 553693; 471.45132 20505; 471.52671 28385; 471.54796 50883; 471.54909 29094; 471.70644 28010; 471.94116 8235; 472.17911 73904; 472.5324 1459885; 472.70934 6734; 472.9141 37429; 473.35701 9428; 473.89174 18223; 473.92694 28078; 474.14816 1706; 474.23622 181122; 474.42986 154095; 474.47482 2703837; 474.56887 3752581; 474.94572 930039; 475.19837 1862; 475.32456 7861; 475.43335 4936029; 476.02584 1193825; 476.45859 4597787; 476.57821 1968910; 476.68483 34664; 476.72776 15907606; 476.84916 1805455; 477.01925 66347; 477.04345 172448; 477.12488 22922; 477.68987 193580; 477.69966 454725; 477.85689 5251; 478.31521 627793; 478.31784 29907; 479.32203 147387; 479.52425 56582; 479.92192 7279; 479.9968 985; 480.45556 682248; 480.60189 7819906; 480.7848 7950; 480.83052 1658443; 480.86069 27094; 480.93852 6299; 481.11012 12263; 481.47245 37723; 481.50027 2144545; 481.67256 16296809; 481.88132 4141413; 481.89801 2271166; 482.10274 6266; 482.38513 1614599; 482.41229 577774; 482.7562 4792702; 482.85435 173793; 483.01761 171123; 483.28964 7650349; 483.3971 56745; 483.41414 3411715; 483.64297 8799901; 483.98243 125158; 484.2228 9404; 484.30658 7955; 484.409 67143; 484.51347 1381299; 484.56704 20360; 484.57846 17912; 484.94216 329812; 485.04294 1310173; 485.23521 24386871; 486.01368 9124; 486.08151 48759; 486.12678 33900; 486.3441 39907; 486.57701 7820; 486.605 9034; 486.77413 1070689; 487.40098 21638; 487.4538 23323024; 487.58099 1116475; 487.88103 7726596; 488.01877 10228; 488.20909 1000654; 488.25552 79111; 488.26145 8961; 488.34552 667; 488.47785 22347; 488.48491 2770310; 488.5474 8185150; 488.79433 73157; 489.67477 25360; 489.78464 5931; 489.88877 68713; 490.07316 77935; 490.20197 61150; 490.2772 57035; 490.44353 6155; 490.51301 77488; 490.84599 243048; 491.30097 413232; 491.54399 22346; 492.09995 167275; 492.42779 21512197; 492.45337 38626; 492.85969 626149; 492.92165 41583; 493.03119 31272; 493.18719 1777153; 493.25097 23342; 493.26696 4566488; 493.33394 43823; 493.40992 88052; 493.58045 218181; 493.97293 2275354; 494.26359 23543; 494.39416 1277730; 494.50285 22073; 494.53324 9799; 494.66844 1663639; 494.89159 47722; 495.23788 6513; 495.36867 23160; 495.40837 60153; 495.5153 43529; 495.69392 53875; 495.91406 29569; 496.05359 9777; 496.18062 10427757; 496.31393 9546531; 496.67424 801; 496.72488 3773907; 496.8067 518804; 496.94323 14335; 497.14553 801; 497.17478 72493; 497.17803 23752948; 497.67013 25756754; 497.7098 446484; 498.03274 26934; 498.09161 76117; 498.13442 40414; 498.20177 3991; 498.36934 45525; 498.40567 29020; 498.48983 4423561; 498.50556 14360; 498.53692 1559493; 498.64469 8660069; 498.74427 23442; 498.97594 62143; 498.99244 7767; 499.47331 4516721; 499.62688 248255 +<0, 5>: 0.0739 1340; 0.45776 51371; 0.60736 1734555; 1.37671 823159; 1.41537 2824; 1.63031 13109; 2.52945 1312928; 2.59093 720652; 2.6036 13296; 3.06319 2369; 3.53782 40044; 3.70113 34957; 3.86671 6932; 4.00163 8780; 4.2202 22619; 4.26393 51231; 4.38614 6542; 4.51004 20831; 4.63426 33775; 4.94504 223693; 4.99247 6554038; 5.08543 28528; 5.23012 54789; 5.27664 7981; 5.3572 1259014; 5.38815 9589; 5.52822 118; 5.67353 297; 5.70155 1600759; 5.82319 7143; 5.85356 49660; 5.85722 22140; 6.15908 4456717; 6.34167 4254964; 6.37071 23482; 6.55073 75196; 6.66992 1932735; 6.7806 2336614; 7.37024 108181; 7.58788 20767; 7.66205 89034; 7.68882 1907331; 8.207 3274331; 8.20732 42983; 8.21212 16163; 8.25181 8002915; 8.27407 10800; 8.3272 182067; 8.38054 18594; 8.47271 951558; 8.59105 100953; 8.69649 3792077; 8.71084 350134; 9.34111 24449; 9.40943 191091; 9.4422 67193; 9.6937 7354247; 9.76381 26912; 9.86445 2949397; 9.89705 23076; 10.03669 54001; 10.19194 49947; 10.23116 396639; 10.64137 93060; 10.69631 17761250; 10.71216 3381669; 11.10272 20758; 11.63902 14349808; 11.94392 1758022; 12.05848 61142; 12.1328 44406; 12.41491 1202319; 12.51168 3263; 13.11697 48369; 13.16964 6253395; 13.25404 24975; 13.44304 1460390; 13.71844 44823; 13.71977 1124765; 13.99828 29475; 14.12888 77187; 14.18128 11957148; 14.30185 13029; 14.57549 22248; 14.67919 50180; 15.05342 114025; 15.25708 19488; 15.34279 59321; 15.51925 38174; 15.56313 4473015; 15.59015 78797; 15.9188 29917; 16.03863 62304; 16.44771 3725643; 16.47506 27928; 16.57548 3119; 16.75528 1419429; 16.95184 25194; 17.16148 50398; 17.39661 46301; 17.76943 26558; 17.99821 65830; 18.05741 56980; 18.85741 1607036; 18.99561 6161; 19.54227 1521; 20.15175 4561582; 20.26283 1632561; 20.47099 57180; 20.64569 1346091; 20.77046 19336; 20.88739 40756; 21.28685 10267; 21.36087 72012; 21.42165 3635111; 21.79047 136484; 21.90382 7040219; 22.02934 953664; 22.19777 4000990; 22.28974 6832; 22.29502 189522; 22.30333 1595242; 22.63218 12966; 22.65802 8511602; 22.69936 2695145; 22.77705 3822069; 22.78306 531800; 22.93401 113584; 22.97988 14545; 23.1462 3958753; 23.14974 166059; 23.18998 4554792; 23.45384 729329; 23.57161 27465; 23.76439 46758; 24.00083 935382; 24.07605 1612362; 24.09796 24503; 24.56813 9920; 24.72088 7650; 25.13391 17987; 25.39208 2609447; 26.11014 1722489; 26.18087 65781; 26.20036 1354331; 26.40479 5489; 26.42217 61447; 26.56166 54095; 26.80908 29269; 26.8847 35792; 27.72699 22478; 27.8689 1645156; 28.3133 46246; 28.5053 1646082; 28.51776 55939; 28.88703 165449; 28.89079 40951; 29.09692 44301; 29.19909 8619951; 29.23502 7325; 29.36576 38300; 29.43785 944; 29.70037 27081; 29.8236 3137172; 29.89 28597; 30.0532 160945; 30.11086 823923; 30.12513 26701; 30.34563 138814; 30.50788 41201; 30.60215 44641; 30.80325 101773; 31.10899 1661088; 31.20487 4152995; 31.53895 7134; 31.65142 2719125; 32.0456 13329568; 32.39463 8616979; 32.42375 2128; 32.46626 3789; 32.56772 22477; 32.63205 70626; 32.67445 6782; 33.04371 8249; 33.06828 3944; 33.22788 5835; 33.77862 50717; 33.92277 166; 34.00933 69846; 34.25222 4428157; 34.57381 40601; 34.58614 13732; 34.5878 1042093; 34.74081 596750; 34.74574 1060420; 34.99117 15863; 35.08801 61304; 35.09424 6457917; 36.35565 19947; 36.3998 1703895; 36.74152 7846; 36.79968 165805; 36.93176 22186; 37.01572 20321; 37.38428 3629; 37.59571 1570872; 37.62854 137528; 37.64913 45849; 37.92231 10607; 38.03824 450134; 38.07343 12405; 38.32795 4605481; 38.51411 10581; 39.00064 42312; 39.25854 198217; 39.3242 166932; 39.4277 365750; 39.43837 5832; 39.52202 29189; 39.58301 1205429; 39.65903 18004454; 39.90927 769774; 39.93895 19040933; 40.15819 416442; 40.38598 656817; 40.48946 1437773; 40.68882 3813338; 40.7533 360824; 40.79488 7369016; 40.81913 20737783; 40.91559 183086; 40.94138 931344; 41.07681 77259; 41.21788 20309; 41.54824 27752; 41.64247 36108; 41.71337 1331885; 41.98575 48239; 43.01926 45528; 43.04259 1993568; 43.42168 6736642; 43.89302 2967203; 43.99549 1598411; 44.137 6277; 44.53863 17749; 44.66749 73250; 44.68043 2752778; 44.74594 65793; 44.81246 4612; 44.90981 351651; 45.14584 68794; 45.24875 5800; 45.30248 3570; 45.66555 355536; 45.83658 36309; 45.91167 9497203; 46.17761 10071; 46.2614 3221; 46.54315 7575387; 46.81148 18907; 46.91421 3622; 47.11108 1577615; 47.23816 26258; 47.27678 27294; 47.56145 1743012; 47.79303 9762572; 47.97657 2290502; 48.00688 9666597; 48.08305 1441720; 48.19836 9284710; 48.33304 185454; 48.42317 2748347; 48.76824 8125; 48.89677 26438; 49.27308 5954; 49.50685 3892705; 49.58774 7778; 49.77823 1222505; 49.94391 19100; 50.33863 1211445; 50.40697 2506244; 50.4622 140515; 50.47466 27902; 50.47499 4842; 50.56786 1555666; 51.16896 48925; 51.17552 55298; 51.58025 1012169; 51.79839 4898359; 52.07273 19786655; 52.55399 1149558; 52.63384 16653; 52.67499 2916459; 52.8135 506165; 52.9862 9196; 53.26476 2483144; 53.55077 8789040; 53.57113 64469; 53.76756 981466; 54.02447 3216; 54.08642 971776; 54.13573 23170; 54.25378 2837316; 54.51762 1269045; 54.53494 51053; 54.53576 75712; 54.61586 1841482; 54.62922 35475; 54.66078 20982; 54.67548 1122088; 54.74299 322312; 54.99655 25604; 55.04522 1421962; 55.35651 908908; 55.733 372381; 55.74642 3751400; 55.75056 3174649; 55.76475 8110769; 55.95109 173376; 56.1544 23739; 56.22584 4283159; 56.77475 13976; 56.98568 3548318; 57.07071 46886; 57.54214 46143; 57.64833 27712; 57.74118 25433; 58.64938 22805; 58.94352 30691; 59.04937 42747; 59.09392 37143; 59.13651 73598; 59.17994 4528948; 59.19224 2310117; 59.43366 747336; 59.43713 8449; 59.56093 730926; 59.74896 43200; 59.88259 4483464; 59.97254 6839; 60.33717 155564; 60.51974 38042; 60.7748 5871; 60.87359 2770; 61.35404 6634; 61.51956 579604; 61.64319 26795; 61.79878 1410256; 62.28166 18559; 62.48938 4671375; 62.82392 657861; 62.82399 50957; 62.96338 5568124; 62.98189 1241503; 63.13555 632; 63.31837 920053; 63.46809 6149; 63.68349 64459; 64.14279 116174; 64.71201 9470148; 64.76178 32116; 64.82717 121674; 65.10351 1657819; 65.41516 26754089; 65.95154 173135; 66.38214 3410691; 66.85039 29510149; 66.91254 4260466; 67.01666 312425; 67.10767 23581; 67.13188 840254; 67.40878 62927; 67.61565 27854; 67.76294 148077; 67.79939 23121995; 68.32034 22705; 68.57154 463120; 68.6073 2033741; 68.86272 108417; 68.93642 4388; 69.21003 5497755; 69.2813 57248; 69.33231 7458; 69.48973 40187; 69.49635 10288; 69.51677 3308; 69.60614 52232; 69.65663 61120; 69.72927 679476; 69.8098 3321068; 69.83528 8789767; 69.96483 13143; 69.96566 3713013; 70.00647 161462; 70.30415 52090; 70.31448 1500487; 70.57508 434594; 70.61279 3547196; 70.8931 4734; 70.89922 19256; 71.82619 21884; 72.07151 9459390; 72.52774 9845505; 72.53058 74270; 72.77393 61760; 72.82786 7756; 73.31934 6842566; 73.40492 1487092; 73.59042 3856; 73.68151 2445974; 73.81459 9707857; 73.83373 1074966; 74.12503 577656; 74.18779 679377; 74.41285 28390264; 74.45459 66720; 74.68494 6791233; 74.96346 162949; 75.04439 43667; 75.1083 8619; 75.15449 71563; 75.4511 7260136; 75.59376 2172482; 75.84213 7145; 76.03411 10710; 76.11463 1623659; 76.30332 58167; 76.64331 54678; 76.69816 432853; 76.83224 1550629; 76.90557 945761; 76.95066 63180; 77.12434 6081670; 77.18974 25864; 77.27564 1622; 77.32152 46440; 77.3381 678172; 77.67436 30187; 77.91027 1137861; 77.94482 1346691; 78.05322 8664224; 78.47905 4697; 78.54619 58337; 78.64907 32827; 79.104 46942; 79.16693 3198543; 79.17034 6521; 79.21509 490065; 79.37468 726682; 79.42263 54997; 79.5035 66982; 80.19287 7715143; 80.4265 160343; 80.7451 46014; 80.9164 499019; 81.03642 14910; 81.37692 37464; 81.39444 4372; 81.58998 56375; 81.84412 119611; 82.12191 14716; 82.27468 1050520; 82.55742 1428; 82.67843 1611425; 82.84828 48465; 83.58024 2568466; 83.65833 7736895; 83.8685 41976; 83.94016 147696; 84.19599 1252311; 84.30741 23381; 84.32838 4769744; 84.47933 1062352; 84.5204 312279; 84.80803 1736; 84.95282 29037; 85.07553 26220; 85.48758 13801; 85.4928 1287562; 85.71514 1751632; 85.72068 26312; 86.02109 1245357; 86.09089 149531; 86.2406 8155; 86.35269 24800; 86.54668 4596723; 86.7112 2005289; 86.71981 79084; 86.79751 19086283; 86.82236 2362883; 87.01913 8738; 87.26903 398500; 87.35216 27853; 87.6931 7965079; 87.83239 134593; 87.96345 303; 88.74622 3560; 88.92451 1267651; 88.93666 453811; 89.16803 4076; 89.3077 173350; 89.56577 7777416; 90.00339 9373608; 90.17661 49359; 90.42452 54673; 90.44934 29490; 90.77122 592877; 90.77755 102568; 90.81303 50445; 91.131 802477; 91.32901 796757; 91.35483 30927; 91.39712 42864; 91.54468 19170; 91.62664 8606; 92.40023 1679063; 92.42035 6561; 92.46183 75053; 92.47582 7028; 92.6119 20801; 93.22 25811042; 93.22286 3557; 93.3089 71441; 93.31102 25792; 93.64506 741684; 93.83952 8373; 94.04522 963298; 94.07092 3368350; 94.27427 67495; 94.35139 36502; 94.35684 46966; 94.36761 1035; 94.52344 9760; 94.54843 64188; 94.5637 5023; 95.02074 13199; 95.07911 1141347; 95.2639 1618629; 95.50244 10420610; 95.79657 6202550; 96.04433 7528430; 96.05129 460449; 96.34379 127800; 96.698 819705; 96.81695 530654; 96.87432 2666575; 96.93894 9950; 97.20816 68626; 97.21962 22345; 97.23245 3388381; 97.35107 26588944; 97.39264 253204; 97.55949 868625; 97.7294 11128; 97.80387 460380; 97.90817 5276; 97.98916 1714760; 98.17028 1370673; 98.18036 31781; 98.29648 26443; 98.58311 27764; 98.66514 580237; 98.69862 74068; 98.70387 17034; 98.73922 4581134; 99.17641 3142882; 99.31109 1152; 99.35446 12080534; 99.45705 8664785; 99.60466 6246279; 99.62595 835431; 99.98657 60113; 99.99331 3826441; 100.09028 24331; 100.14033 28056; 100.28987 6626; 100.31829 2294774; 100.3956 4467067; 100.47075 185902; 101.16466 1865051; 101.23457 68509; 101.27654 1644658; 101.36494 682883; 101.42222 33443; 101.61412 8187493; 101.70152 4640; 101.73862 662571; 101.80039 27918; 102.05752 2948; 102.12125 16814; 102.49947 54656; 102.93378 8852; 103.01172 48308; 103.051 30903; 103.14685 349451; 103.2878 27334; 103.29969 4406440; 103.33954 79722; 103.38319 137937; 103.74241 3718; 104.22795 9291; 104.4579 4156; 104.52746 8730; 104.59535 118228; 104.78183 6889168; 105.07718 8728287; 105.22739 22599; 105.26545 123229; 106.15554 43282; 106.44848 358535; 106.50552 171459; 106.75787 20584; 106.77147 176366; 106.83499 2531; 107.02205 24752; 107.0848 623604; 107.177 539545; 107.38867 4318; 107.42527 64993; 108.02518 14511; 108.09552 36440; 108.3744 3631; 108.49133 7817; 108.58293 9101; 108.68938 5449; 108.6996 46518; 108.93749 2516432; 109.03455 71128; 109.08497 143316; 109.54924 27783; 109.59016 76821; 109.79904 52290; 110.00226 6351244; 110.04881 28930; 110.05825 919336; 110.36028 22825; 110.44196 3281713; 111.08216 540673; 111.09085 1037575; 111.13241 296916; 111.45961 1474; 111.60518 23835; 112.3098 14726; 112.55805 8402249; 113.00883 50906; 113.01511 97533; 113.19747 29820; 113.29576 668295; 113.36666 2074242; 113.59617 6455; 113.75847 2186; 113.7896 72041; 114.30744 2817023; 114.44278 7027774; 114.51315 1306; 114.65622 26628230; 114.76966 2361807; 114.91245 6645; 115.10274 68815; 115.18061 2803805; 115.39473 4810; 115.60573 905463; 115.67011 7461127; 115.70887 18309; 115.79823 7661; 115.95004 66923; 116.00008 24922; 116.00959 21254; 116.06471 1608568; 116.10717 3795835; 116.21151 283262; 116.24189 5038717; 116.30772 7361; 116.94488 51492; 116.9936 683228; 117.05338 74370; 117.06411 6343336; 117.30875 59648; 117.37612 1866781; 117.53532 525203; 117.78616 34579; 117.93486 6458180; 117.94283 8275; 118.75902 198802; 118.76301 402612; 119.15532 803603; 119.30253 1915629; 119.42549 46759; 119.46951 19801961; 119.49829 73742; 119.94917 7442284; 120.3286 851901; 120.38207 17370; 120.46582 6951; 120.5904 3007032; 120.75692 24290; 120.78068 1776397; 121.07949 33589; 121.12052 29634; 121.33031 1788129; 121.40121 762657; 121.50018 7632651; 121.6566 17657; 121.68913 13246; 121.79646 2199648; 121.80456 70225; 122.0154 642; 122.21921 66602; 122.22235 4012248; 122.66119 75570; 123.45265 75330; 123.55014 13332; 123.55908 5560354; 123.71438 23192; 124.23823 28762158; 124.44062 40304; 124.77442 7351; 124.89712 1381021; 125.14062 26073; 125.40664 39170; 125.56412 12962; 125.65438 11003; 125.73577 18259; 125.94593 7268; 126.09254 4896197; 126.10287 1143; 126.4102 1525896; 126.42866 106570; 126.44852 1093281; 126.77841 3207; 126.92103 46695; 127.18943 251327; 127.20372 4914; 127.30368 20389; 127.69651 39289; 127.921 3975569; 128.02034 3038756; 128.56628 8416195; 128.6793 4133; 128.70622 137566; 128.79331 42947; 128.87274 64013; 128.94395 26783952; 128.9788 110957; 129.10294 1875133; 129.22868 27449; 129.41473 5695; 129.43698 1461542; 129.52406 2006; 129.73156 29527; 130.04062 132229; 130.10761 1975643; 130.18708 5655807; 130.34455 20261; 130.56909 9674; 130.77418 45713; 130.92683 27155812; 130.93006 38174; 131.10036 4871013; 131.22497 71998; 131.29559 79288; 131.42857 899272; 131.48572 21906; 131.7084 7343; 131.88552 7683; 132.13904 171967; 132.28337 2582249; 132.29696 47114; 132.32367 165637; 132.39939 477062; 132.46673 33134; 132.47986 1361614; 132.55275 742171; 132.56253 25525; 132.87462 1737555; 132.88123 20571; 133.02248 26651; 133.11436 5668292; 133.1961 1111993; 133.49598 18988; 133.69221 28070; 134.18599 25288922; 134.6279 1237324; 135.04798 1702454; 135.46092 69558; 135.59007 4067398; 135.62866 64088; 135.78295 53152; 136.14026 27326; 136.39873 2488362; 136.41724 9151; 136.45851 2532709; 136.54827 6761578; 136.712 1878488; 137.06069 9124644; 137.22492 3711064; 137.29647 6454; 137.62004 1073328; 137.68694 78546; 137.71774 9842587; 137.83145 9542448; 138.08939 964655; 138.46389 3510; 138.88824 75879; 138.925 4765666; 139.18633 4327274; 139.93537 1190389; 140.17679 11068540; 140.22793 66405; 140.51794 71291; 140.70551 3567891; 140.70843 926216; 141.13829 3476224; 141.25675 5673191; 141.55038 41304; 141.684 32023; 141.93824 1413548; 142.00132 13998; 142.04223 161619; 142.28071 8009365; 142.40075 4148949; 142.63431 78062; 142.68984 84497; 142.88715 486383; 142.95428 7606; 143.0991 28647010; 143.21233 79383; 143.28917 32331; 143.35267 67012; 143.44569 3701; 143.50979 696225; 143.6321 5442447; 143.87655 152638; 144.42782 1516; 144.65369 210169; 144.67704 9958860; 144.76039 6288; 144.85356 26749; 145.02331 13525; 145.12626 52629; 145.13115 25279; 145.2944 6338; 145.71327 5846; 146.30812 2260424; 146.31803 3692005; 146.33863 9160519; 146.49861 24423053; 146.78089 1144002; 146.83311 486941; 147.15655 11180084; 147.30989 125188; 147.56624 6217; 147.6917 6346; 147.89459 78205; 148.13587 2993997; 148.54463 7175441; 148.59815 8254; 148.72619 1477284; 149.08016 67705; 149.13376 303384; 149.27508 8441939; 149.70875 46939; 149.73215 1640039; 149.89885 24617; 150.08009 3828908; 150.3251 190975; 150.39122 10392; 150.45662 4182215; 150.60085 2723; 150.78284 2668166; 150.80269 812964; 151.19321 101981; 151.91963 1130508; 151.98013 65145; 152.91795 170352; 152.9288 392008; 153.13605 45494; 153.89822 2654; 153.90912 57813; 154.08949 5372; 154.18528 15684; 154.23033 50006; 154.31601 42484; 154.50606 70196; 154.65501 43733; 155.3714 21708; 155.89879 64799; 156.00901 955780; 156.28909 18544; 156.80201 45227; 156.94595 11265858; 156.95085 1851; 157.44922 19096; 157.74079 74803; 157.74964 76140; 158.06421 3123287; 158.21652 15709; 158.31391 1408494; 158.43424 62636; 158.53106 30451; 158.63555 190771; 158.69797 109318; 158.77342 1400366; 158.89991 58925; 159.20317 3519219; 159.68848 8076009; 159.8251 1065957; 159.94702 20720; 160.17802 632211; 160.4437 9651; 160.47387 79968; 160.66948 23045; 160.74929 30041; 161.43784 153456; 161.58226 1662600; 161.75778 594249; 162.04208 65709; 162.73291 6214; 162.81798 72966; 162.90656 60806; 163.0331 1743490; 163.10896 8113111; 163.17586 4043524; 163.33117 3089; 163.36685 4853875; 163.44067 6245724; 163.58882 21052; 163.62283 29399; 163.68214 34167; 163.7076 441221; 163.75062 73800; 163.97469 2663; 163.99011 35558; 164.26521 604503; 164.92324 4621338; 164.93972 608983; 165.00623 27209; 165.1543 506859; 165.39475 56317; 165.45467 14084; 165.58312 8897349; 165.59492 65719; 165.6763 7257; 165.71763 102355; 165.83976 75551; 165.91835 1257; 165.95121 29337; 165.97629 4983595; 166.03404 8722939; 166.04338 23277; 166.26139 6206214; 166.3121 32572; 166.69324 9825443; 167.01031 705361; 167.14752 25708; 167.17637 885695; 167.31464 6690967; 167.4053 5699014; 167.50259 1950984; 168.15944 101159; 168.33381 3273772; 168.51775 3063992; 168.72003 23151; 168.8296 1481925; 168.91231 292692; 169.06535 26864; 169.07742 166357; 169.46918 43554; 169.7311 34634; 170.34438 5624161; 170.78698 3858242; 171.24615 128782; 171.27511 3114763; 171.38999 27919454; 171.56213 47841; 172.13791 22286; 172.2515 50927; 172.5374 408494; 172.61555 5480356; 172.62539 29545; 172.77239 32836; 172.80106 17864395; 172.94368 9147; 173.0495 56111; 173.23331 48391; 173.30866 63293; 173.36064 34964; 173.46589 4698; 173.4961 797645; 173.77885 95805; 174.03762 15407; 174.06542 5575; 174.10671 29491; 174.65921 4023253; 174.68805 26252; 174.94444 72669; 175.07039 6419; 175.24117 7993023; 175.46249 3162; 175.71304 58112; 175.83112 375677; 176.14314 7454; 176.24476 2408923; 177.30442 1082067; 177.565 24628986; 177.57093 77200; 177.77968 255134; 177.92614 50836; 178.22144 52058; 178.34516 782433; 178.42062 2831982; 178.43575 9140; 178.477 58633; 178.76028 1708644; 178.96578 118748; 179.01348 9694406; 179.39457 103929; 179.65085 3007799; 179.92095 3428684; 179.94181 23265; 179.96839 227774; 179.96943 28775380; 180.02917 64776; 180.15667 76138; 180.33205 1514562; 180.39137 4339621; 180.40589 71101; 180.54795 39096; 180.55023 240644; 180.86014 18856; 181.46318 2415088; 181.49146 28138; 181.61075 1219807; 181.76487 24134; 181.79633 4603442; 182.2371 8087; 182.27717 59873; 182.58797 2130; 182.75653 1113724; 182.76702 3875794; 183.05294 71949; 183.46636 27568; 183.53461 30006; 183.62061 11311; 183.92147 3757722; 183.95011 55374; 183.98129 6425989; 184.29903 1893141; 184.43649 718832; 184.62088 2330; 184.67655 2074976; 185.04229 100628; 185.10143 4609897; 185.10923 1977850; 185.31741 1291423; 185.38973 2440; 185.56814 21124472; 185.57458 5040; 185.65472 50023; 185.79214 46990; 186.12595 41433; 186.26546 191573; 186.31272 1762147; 186.43408 28445; 186.65817 729348; 186.66304 37119; 186.82068 8560826; 186.92495 33778; 187.01452 11497344; 187.30216 50125; 187.45185 1089172; 187.53622 631; 187.64866 22118972; 187.68007 4950770; 187.76773 30923; 187.94092 53443; 188.51746 23821; 188.6372 30601; 188.66506 60069; 188.73682 809106; 189.11324 1426; 189.133 5501; 189.28461 2314093; 189.53015 9857213; 189.59097 1324; 189.6309 28724506; 189.76465 113022; 189.865 55218; 189.99688 23133; 190.12493 4792154; 190.16578 1870746; 190.40515 3451545; 190.58542 162096; 190.64249 12439652; 190.67723 2325652; 190.86819 9947386; 191.50763 41184; 191.68727 93826; 191.69616 158546; 191.84442 25988; 191.859 1130942; 192.03082 27853669; 192.15204 8138; 192.71189 8080686; 193.19091 17341119; 193.27477 59670; 193.50029 1507550; 193.65725 190081; 193.96041 60222; 194.23595 5361; 194.4271 5990; 194.7162 39535; 194.7305 541359; 194.84553 61382; 194.92986 1827; 195.23431 12672; 195.47537 12706; 195.52095 4396; 195.60967 57341; 195.63184 3441575; 196.03907 5478; 196.06364 52856; 196.15053 1238724; 196.24746 54079; 196.27066 15679; 196.27583 66966; 196.75018 132537; 196.92911 64958; 197.01993 7374; 197.13125 39724; 197.32065 1870; 197.33676 2416; 197.39221 8120; 197.82857 46799; 197.86376 4581024; 198.01449 66250; 198.22749 28827; 198.25298 71200; 198.27805 1503485; 198.28205 37475; 198.37784 218961; 198.40495 1671; 198.83312 745; 198.92218 8111691; 198.93751 29459965; 198.96219 53932; 199.03745 1335025; 199.14835 3906925; 199.32544 26243; 200.50931 5325; 200.64341 49823; 200.85876 3053; 200.86597 310863; 200.95007 1132903; 200.95463 10851; 201.01872 67391; 201.0555 4214409; 201.20701 13073; 201.24764 34177; 201.24988 45683; 201.26331 70317; 201.41924 55177; 201.64086 665604; 201.74326 6048; 201.82244 16986103; 201.92019 51240; 201.95304 22071; 202.19949 718178; 202.30566 604981; 202.30728 4098; 202.36822 1440; 202.37424 5437954; 202.44149 12622817; 202.7144 113569; 202.84768 1371389; 202.85765 29423; 203.11128 3818058; 203.30188 489212; 203.44757 5963; 203.60362 17772; 203.78778 2299; 203.86412 11090; 203.9947 63708; 204.0578 27877; 204.26453 28896; 204.38254 48528; 204.5782 9589; 204.58231 2196351; 204.85643 5258; 204.88822 8377863; 204.91949 3310466; 205.26299 23778; 205.4493 1408603; 205.91955 2441748; 206.06206 4288638; 206.12144 945858; 206.2602 1233483; 206.49059 4648349; 206.84917 5514; 207.00642 62574; 207.4088 2047; 207.55044 314139; 207.65534 24861; 207.97862 49844; 208.11158 22283; 208.15494 35725; 208.45249 221661; 208.57483 35613; 208.76059 9724; 208.77883 1874; 208.87149 1727408; 208.95183 161099; 209.44026 91992; 209.55896 841950; 209.58668 11740453; 209.64252 39192; 209.80092 2461121; 209.90622 6890; 209.93313 58330; 210.00767 592; 210.1617 85129; 210.16703 105297; 210.29935 21811; 210.34159 3240; 210.3484 7555; 210.415 6100470; 210.55826 373433; 210.77707 9261281; 210.95457 27089; 211.00677 51252; 211.06476 1520923; 211.15475 3634860; 211.1715 5900673; 211.37783 1442821; 211.37851 1915084; 211.58631 566146; 211.83254 2315; 211.83801 567736; 211.84278 48464; 211.93558 66270; 212.01183 13012; 212.41591 1784210; 212.42861 24457; 212.78479 4407171; 212.85598 821381; 212.9432 3114434; 212.95151 50564; 212.96107 1471134; 213.2533 3024; 213.48932 51552; 213.50635 6776; 213.79994 19891121; 214.28569 5312; 214.3431 132151; 214.39386 1517122; 214.67943 21923; 214.8338 870386; 215.0421 19132; 215.3778 11456; 215.47341 8362; 215.61971 1977989; 215.76786 397955; 215.7954 22036; 215.86595 38202; 216.10064 121375; 216.42112 291222; 216.42393 5638192; 216.6221 35231; 217.08582 184159; 217.25748 3883707; 217.36403 57570; 217.68874 668510; 217.74379 168357; 217.82434 496319; 218.11813 4493; 218.36617 27660; 218.55997 511012; 218.64635 8268; 218.66316 22979; 218.75184 53184; 218.76374 2835281; 218.7903 33804; 218.87512 43905; 219.20095 91291; 219.34346 122843; 219.58816 20115; 219.78034 810452; 220.00846 2328500; 220.01387 24032; 220.3873 9719; 220.63336 51394; 220.91648 399; 221.32446 809; 221.44548 36605; 221.53811 856181; 221.54278 1372; 221.55179 53807; 221.62413 4184091; 221.72415 64129; 221.80912 8095197; 221.86897 3154; 221.99053 1894837; 222.00108 28555; 222.05581 173001; 222.06296 1406865; 222.24857 46955; 222.25194 61320; 222.33111 23503; 222.46037 3205719; 222.53978 291666; 222.54973 407521; 222.64923 252791; 222.84496 1227387; 222.96192 15605; 222.99705 48270; 223.03517 40085; 223.23167 306415; 223.35145 40342; 223.48852 39006; 223.64084 43915; 223.65781 46760; 224.05855 250620; 224.32178 70289; 224.56625 676026; 224.75448 32590; 224.75622 591323; 224.79329 3340041; 224.93174 3251720; 224.96687 6863; 225.13534 2908232; 226.00675 61877; 226.11653 5999; 226.2377 5770130; 226.52665 1905023; 226.5408 2511036; 226.55067 79925; 226.7532 220354; 227.02109 4090190; 227.22922 43725; 227.23257 6912; 227.35306 27043; 227.56394 84029; 227.57533 2225755; 227.57909 29208; 227.59831 1869196; 227.62265 1666; 227.69834 128566; 227.90665 14347; 228.22746 556078; 228.28187 1842427; 228.3289 36163; 228.33465 8265382; 228.53648 70594; 228.69449 3871228; 228.71634 93242; 228.78906 1855611; 229.29181 2152848; 230.34988 188229; 230.41077 958131; 230.42741 866121; 230.71551 109481; 231.29537 134013; 231.55599 2015; 231.94499 29010894; 232.01541 122097; 232.11003 3949996; 232.36218 3573; 232.51757 2282189; 232.81628 1813978; 232.86551 1170700; 233.15283 20404; 233.31495 546813; 233.44701 3534895; 233.63828 4028; 233.65709 1229267; 233.70957 45336; 234.06494 7103208; 234.21529 95710; 234.31619 7534760; 234.373 1911503; 234.52032 1445697; 234.67225 4063566; 234.95452 1142344; 235.08176 60397; 235.18311 71827; 235.36787 29841; 235.48216 7545113; 235.70676 27098; 235.89539 18450; 236.06003 195849; 236.15752 132803; 236.16536 49854; 236.51481 1870179; 236.63746 41199; 236.87674 49196; 236.91249 56038; 237.11527 4505; 237.34203 1114875; 237.51301 53449; 237.53569 51876; 237.63736 29743; 237.81601 63742; 237.8468 3783917; 238.27789 41061; 238.30952 1658; 238.47867 2667; 238.57204 29251; 238.67028 7341; 239.00465 78490; 239.06708 76022; 239.77859 169552; 239.7904 1789502; 239.93887 720860; 240.16368 7679288; 240.23065 11094; 240.354 3691; 240.57278 71456; 241.03562 462796; 241.90977 1776719; 242.99951 45319; 243.16208 744433; 243.27473 52596; 243.41241 129936; 243.46439 311381; 243.474 1925910; 243.56509 48451; 243.71481 59296; 244.71756 9590357; 245.08171 9896; 245.13824 31062; 245.2828 1437475; 245.4091 139646; 245.98523 53403; 246.15561 75701; 246.1944 57324; 246.23411 552306; 246.25153 20116; 246.2575 5855295; 246.32556 924881; 246.43866 20304; 246.51741 8815669; 247.43458 1649689; 247.90479 491445; 247.98703 57570; 247.98856 237245; 248.0545 3600682; 248.4154 4669; 248.51392 2400220; 249.12387 755803; 249.16951 17325017; 249.90744 12926; 249.9352 28063; 250.00627 2433095; 250.29636 27518; 250.60612 57029; 250.69149 1282477; 250.76542 1866836; 250.80907 82954; 251.09712 837897; 251.10005 9295; 252.09902 9489; 252.9438 93655; 253.15023 180200; 253.16438 692481; 253.49206 48834; 254.27447 43923; 254.48312 73847; 254.61359 3294346; 254.64831 72163; 255.01575 642570; 255.07808 304905; 255.30286 42689; 255.53764 5103; 255.57625 65666; 255.6401 4637; 255.71104 2654166; 255.72264 562284; 255.93303 790343; 255.94776 800941; 256.39178 6027; 256.47359 20143; 256.51342 5278; 256.63404 57097; 256.87252 7961; 257.06664 32899; 257.26715 1813071; 257.32035 6514; 257.48437 3554; 257.62797 8451; 257.66387 27390799; 258.24028 1383503; 258.28631 22817; 258.42227 151426; 258.45498 22749; 258.59498 4487; 258.59852 5647; 258.75013 12712387; 258.86452 8324; 259.03047 1253; 259.63549 1744; 259.87941 3630084; 260.0798 35053; 260.42032 1061934; 260.58562 5146167; 260.61379 33290; 260.61886 6811; 260.6292 77205; 260.63422 24968521; 260.75593 78299; 260.75702 75586; 260.85766 41783; 261.05951 52305; 261.29112 21539; 261.4089 26541; 261.53283 2327; 261.61758 15745; 261.96805 5837; 262.01948 121007; 262.14361 19401; 262.3012 31047; 262.32685 3649275; 262.477 9291; 262.64565 17750; 262.95962 535; 263.29229 1837600; 263.29762 1336538; 263.31186 25634; 263.4776 20890; 263.85662 123614; 263.97078 4234060; 264.06652 9092; 264.38166 8946; 264.70354 21359; 264.72726 725088; 265.13563 6916; 265.19655 846745; 265.37582 32665; 265.59748 17376; 265.60106 1206061; 265.62996 78752; 265.68653 1367729; 265.97413 5888649; 266.25008 192432; 266.26916 17720; 266.28861 1209700; 266.53259 19508; 266.70887 39215; 267.40778 29860; 267.61824 21264089; 268.27399 84646; 268.4128 1795245; 268.52942 53476; 269.23471 834767; 269.26231 56065; 269.68142 43615; 269.70842 7737; 269.74504 64624; 269.94498 1955631; 270.42416 8296; 270.61779 29181183; 270.66098 128069; 270.96418 649321; 271.11667 526; 271.21153 23813; 271.30194 935455; 271.36955 21717; 271.40019 23732; 271.54111 18389906; 271.6032 1204214; 271.65121 2934; 271.76693 1721093; 271.87008 10913; 272.05482 2027799; 272.12296 9263; 272.22564 659885; 272.38559 5765; 272.43017 1279760; 272.63928 7955; 272.88625 21422; 273.21393 9133; 273.49353 21626624; 274.11698 26262; 274.12244 23168; 274.12268 629; 274.17614 129680; 274.41774 53607; 274.49781 38727; 274.50488 2760020; 274.76886 27447; 275.00177 20542; 275.14096 745910; 275.15814 6245; 275.19836 699; 275.22111 8661912; 275.366 796216; 275.58298 25270; 275.5941 171257; 275.63099 4257977; 276.42717 867168; 276.53864 26313; 276.55489 24559; 276.72364 8207; 276.73271 168196; 276.8034 73922; 277.02688 20495; 277.6132 53542; 277.72142 127642; 278.00753 51799; 278.11025 93906; 278.26775 50232; 278.7745 26744; 278.94081 1871445; 279.15833 199106; 279.21598 22095; 279.39519 40846; 279.4445 5149; 279.51439 8184676; 279.61027 29436; 279.68988 4176203; 279.74256 17649; 279.77725 49236; 279.8588 18946; 279.86692 27899; 280.50127 22368; 280.5609 1351340; 280.88424 802071; 280.94452 28603; 281.36608 28992; 281.38887 1943227; 281.50694 25035; 281.5569 4422; 281.61043 498319; 281.64642 9641834; 281.8077 3847253; 281.89709 1224794; 282.1433 2000367; 282.18049 30968; 282.33247 7889918; 282.41247 139219; 282.49013 19694; 282.95275 208; 283.14686 13266591; 283.50149 31618; 283.59545 2010967; 283.59844 844828; 283.61246 8954503; 283.62706 1037416; 283.68201 7234; 283.99508 1537996; 284.02509 57485; 284.05928 33375; 284.09759 4168613; 284.1586 2888; 284.18188 30112; 284.55308 21158846; 284.5808 54827; 284.68981 12526; 284.98189 33364; 285.01064 1473591; 285.10669 427132; 285.48766 25505; 285.82013 25420; 286.11846 6315570; 286.25866 2325; 286.27609 69994; 286.27997 9731; 286.52721 5889031; 286.77225 838283; 286.91896 25172102; 287.10465 2115; 287.17579 73732; 287.43576 1280; 287.45497 61597; 287.70103 72122; 287.77607 32115; 287.86513 1831; 287.96811 9781317; 288.00037 259114; 288.05615 75967; 288.17687 3527856; 288.60284 8679; 288.92527 5240334; 289.13971 3533144; 289.33488 26756; 289.40785 463145; 289.53332 1354782; 289.78605 8739; 290.0964 1865791; 290.1051 1290; 290.36011 39061; 290.58597 3872884; 290.67262 67393; 290.76927 43814; 291.07147 6197593; 291.08939 8452001; 291.16154 46052; 291.19114 19066; 291.48758 1235031; 291.55064 6429607; 291.74395 48672; 291.79408 5367; 291.86074 7350489; 292.18485 3284; 292.22496 5090341; 292.27281 2580995; 292.54818 1725718; 292.55195 1183138; 293.02924 9261959; 293.59275 1250; 294.04538 18263; 294.13771 74483; 294.47658 4829920; 294.4899 3565061; 294.78584 7942271; 295.08909 39995; 295.30246 328068; 295.42737 51467; 295.45449 2680859; 295.61668 79222; 295.82973 14179; 295.88431 4469849; 295.92072 6494; 296.16722 107255; 296.28505 61586; 296.41487 323805; 296.51178 1151; 296.61581 21189; 297.03283 4451573; 297.57133 6533; 297.74394 1870960; 297.86526 1032726; 297.89311 147508; 298.3416 36401; 298.71743 49036; 298.76006 22551; 299.0636 3625258; 299.10473 25661; 299.10675 9686946; 299.29213 24300487; 299.58915 13457; 300.01876 2763094; 300.04955 533; 300.05126 118538; 300.0623 28736; 300.5213 49001; 300.73826 810273; 300.7441 62530; 300.8559 8798; 301.07652 1944678; 301.55738 67969; 301.56616 63183; 301.78475 2054; 301.81309 58363; 301.82513 27770; 302.10313 228656; 302.2658 4968; 302.76597 55563; 302.83901 70; 302.88722 866579; 303.48723 36769; 303.61886 181884; 303.78333 41119; 303.84489 60370; 304.0123 1328757; 304.27964 1615762; 304.49976 441069; 304.59214 511966; 304.81187 336045; 305.29702 2057; 305.72322 5984; 305.75344 42014; 305.86338 1038054; 306.79412 22772; 307.21341 29160; 307.33969 1432360; 307.48985 5384; 307.7695 4934514; 307.85027 20896; 308.06835 5563130; 308.1473 9448; 308.16171 25340; 308.56455 297725; 308.77197 1975464; 308.88558 8709171; 309.86817 8463190; 309.9799 9222; 310.01091 972375; 310.0759 204690; 310.31464 1606542; 310.84983 2657158; 311.00552 58905; 311.00938 71511; 311.36786 924180; 311.37579 1703; 311.74739 69395; 311.87161 676668; 312.18519 53477; 312.25584 1924010; 312.32088 39719; 312.41574 8284; 312.69645 1156; 312.8169 35287; 312.82071 27939; 313.2713 199047; 313.27988 67598; 313.4723 14645390; 313.56895 66578; 313.65657 71907; 313.88111 20511; 314.37397 75647; 314.37833 36523; 314.46921 15680; 314.4772 5197913; 314.52677 28487; 314.86459 68266; 315.08989 1942292; 315.19437 40904; 315.25249 50492; 315.25278 37077; 315.32551 12241; 315.53904 872925; 315.61305 3186; 315.64811 14497; 315.66323 3392; 315.88568 1055823; 315.91091 4693316; 315.95659 115788; 316.16414 13155; 316.2329 170743; 316.92896 66586; 317.01725 71528; 317.08422 23689; 317.37414 847950; 318.87461 77918; 318.90288 18092; 318.94594 1786927; 319.44266 4551098; 319.72902 2796610; 319.76979 28315; 319.93782 16197; 319.99994 1346402; 320.57657 104922; 320.66005 323565; 320.71892 5297187; 321.46046 3224; 321.50444 5392467; 321.60197 25065; 321.80413 466219; 322.42427 14875; 322.86115 1669739; 322.92786 4851667; 323.0893 3717539; 323.40101 3558435; 323.86084 25862; 323.90664 1080503; 324.51292 56285; 324.56218 9727398; 324.60519 3888; 324.69272 93843; 324.94832 6319691; 325.16001 2535467; 325.19899 6276922; 325.36209 341284; 325.57538 1115; 325.67631 22453; 325.93315 3079; 326.11235 3171285; 326.96347 1402980; 327.0985 51136; 327.13235 1944671; 327.24969 3500536; 327.74239 66956; 327.82213 254; 327.89889 932729; 327.97495 16926; 327.99968 879858; 328.27291 96039; 328.3456 42005; 328.45154 21393; 328.76327 46294; 329.12912 43371; 329.59115 441; 329.61025 541084; 329.61638 20567; 329.72692 1627; 329.82201 1759018; 329.95103 1373432; 330.11486 2926075; 330.5642 6927325; 330.70765 50143; 330.73602 21794; 330.76351 389340; 330.77391 27883; 330.96478 47727; 330.96852 6213; 331.04646 49581; 331.57164 1046; 331.58276 1772243; 331.7963 155820; 331.93397 48825; 332.05163 197108; 332.45774 23228; 332.85303 7217; 333.0422 4890; 333.15273 41334; 333.1978 6693; 333.29704 5292318; 333.34144 38621; 333.42398 17535; 333.55514 21939; 333.56193 9239; 333.68351 1802131; 334.03475 1385838; 334.05362 20491846; 334.15526 7844; 334.49382 1488223; 335.11853 51643; 335.43115 27630; 335.52659 38721; 335.61404 351027; 335.61961 10289; 335.82227 7914945; 335.86542 1822690; 336.32207 3065; 336.33361 30676; 336.75119 50485; 336.82582 22544; 337.07757 1243296; 337.40768 3144973; 337.47864 33369; 338.01336 3404; 338.05295 25712; 338.06431 66733; 338.30792 45271; 338.43602 4; 338.52406 78685; 338.69973 1200916; 339.13842 8901; 339.29548 3399709; 339.4151 168; 339.67481 1756572; 339.67879 78101; 339.69623 694004; 339.8018 74576; 339.87862 413858; 339.95692 40662; 340.00062 68087; 340.1345 40240; 340.23284 435148; 340.32915 1717140; 340.73261 29700; 340.75791 18889; 340.77056 11760; 341.19712 4800401; 341.44127 38234; 341.62872 2008720; 341.81279 107677; 341.89453 714217; 342.11199 49957; 342.71482 2773887; 342.73204 836227; 343.02984 22407; 343.08876 27243; 343.47763 49863; 343.59989 23829; 343.79065 65786; 344.08457 6335; 344.17899 10884822; 344.35484 5263199; 344.9783 1817098; 345.13099 66386; 345.23729 6190809; 345.25496 694357; 345.38794 66652; 345.41791 27155; 345.51785 1044587; 345.84763 63513; 346.27149 7872123; 346.6198 8509032; 346.62829 24246; 346.78847 836771; 346.84495 3705609; 346.88583 4234313; 347.02584 3203820; 347.34532 35155; 347.75551 988801; 348.23692 1712793; 348.34853 77136; 348.60122 1582343; 349.13989 119947; 349.18064 21180; 349.36344 12141; 349.43062 961; 349.62635 9062736; 349.69104 46076; 350.3015 69715; 350.48287 6660359; 350.60384 42780; 350.78614 4377; 350.81428 747059; 351.07523 5377777; 351.32708 41933; 351.57451 167177; 351.6323 79818; 352.06019 40053; 352.08204 20645; 352.11225 3804; 352.22751 20169; 352.22854 3564085; 352.36695 73576; 352.7249 7460; 352.9677 73119; 353.10057 23038; 353.1551 4255; 353.29219 6442; 353.35482 43966; 353.56761 2551616; 353.57064 14670; 353.62992 20822; 353.80002 501764; 353.84196 38228; 354.04662 65684; 354.18388 162927; 354.29366 4640032; 354.58403 6990037; 354.61451 48716; 354.7249 1732377; 354.83001 70344; 354.97354 1989271; 354.98212 1630; 355.12618 23730; 355.22276 14615; 355.2629 1080769; 356.19216 17616; 356.36214 218867; 356.43049 120605; 356.61255 4571785; 357.24701 246425; 357.54161 29756; 357.78713 9076853; 357.82364 140632; 357.97272 2501; 358.0452 21909; 358.081 37396; 358.14109 2659052; 358.33153 85885; 358.35788 28448; 358.4482 29736; 358.50873 15084; 358.75375 11895941; 358.86033 62113; 359.05888 61477; 359.13332 11342; 359.26092 1251; 359.44156 17297; 359.7409 6214645; 359.76615 61225; 359.80054 4348353; 359.8716 911082; 360.03531 720536; 360.12137 52054; 360.24142 190778; 360.38696 69078; 360.38913 5030; 360.56057 4423; 360.61383 1882809; 360.65247 142314; 360.67808 51272; 360.83895 609051; 360.98145 64115; 361.49025 29555; 361.49513 6439983; 361.58599 68511; 361.72597 26351; 362.26906 43803; 362.32809 3833106; 362.38481 593392; 362.80078 631543; 362.85166 161302; 362.90499 29784; 362.98852 437335; 363.30966 1798542; 363.45627 37224; 363.4746 4346; 363.60267 5711; 363.75381 62141; 363.79306 725340; 363.84148 1468499; 363.92747 3865; 364.1187 1487877; 364.27785 24300; 364.32429 79386; 364.4441 61259; 364.6793 2137038; 365.16724 19898; 365.37646 476; 365.39132 4319666; 365.40021 48765; 365.50236 3240; 365.75859 67653; 365.95856 70658; 366.11699 12218901; 366.14541 4802; 366.36462 57102; 366.62851 4502; 366.67967 74491; 366.71294 60346; 366.96793 3322548; 367.00245 27730; 367.06534 76931; 367.13134 73946; 367.18118 39500; 367.18551 31138; 367.18626 494582; 367.32928 2465892; 367.39754 20952; 367.45201 19511; 367.9894 25011; 368.10956 1561998; 368.19388 128633; 368.37956 7929; 368.48751 27106; 368.81703 7379; 369.16991 1621640; 369.22911 63700; 369.24596 159780; 369.5147 3849; 369.70083 145486; 369.76603 2954894; 370.05528 45303; 370.12219 67896; 370.43855 217902; 370.49431 8234788; 370.53108 21337; 370.6348 53162; 370.72871 29025; 370.81936 6670667; 370.94937 21259; 371.15756 15522; 371.53855 64351; 371.66319 28184; 372.2243 30872; 372.25412 1777031; 372.48253 9258; 372.48811 59961; 372.56447 25782; 372.91136 8133046; 373.04307 198316; 373.04703 335533; 373.87555 1519812; 374.18728 76880; 374.24338 4912; 374.661 908213; 374.9474 14497; 375.07549 23606; 375.17699 66447; 375.22754 63490; 375.41495 6124543; 375.41947 113175; 375.51262 168069; 375.64267 27937; 375.75161 58393; 375.77622 3854; 375.78118 4865079; 375.83109 1863983; 376.03931 41864; 376.17221 1846712; 376.29888 6401; 376.39654 21349; 376.69129 1832511; 376.75792 1188998; 377.64717 67110; 377.65333 150423; 377.77885 4705423; 377.91073 9724914; 378.05874 5579662; 378.12645 1003; 378.23251 1798188; 378.31522 16741062; 378.52401 13332; 378.58893 964721; 378.96609 176775; 379.12966 2987; 379.26744 65880; 379.49826 113288; 379.57044 29318; 379.76856 1138767; 379.8338 22879; 380.02236 67484; 380.06208 5531; 380.54874 2748; 380.64179 326744; 380.70374 2730842; 380.99937 316305; 381.06976 3745; 381.13825 354; 381.408 3223; 381.44577 4855092; 381.79782 19870; 381.9368 541656; 382.03577 2763495; 382.40988 4080976; 382.80275 39346; 382.88767 791221; 383.25687 65366; 383.32118 284632; 383.48466 2346914; 383.84355 22253; 384.03073 11316; 384.54828 257270; 384.63043 36286; 384.77149 27586; 384.90064 29994644; 384.982 1909071; 385.36556 2222188; 385.47787 30788; 385.65013 110; 386.28292 21386; 386.48881 22099; 386.56618 41313; 386.98292 9797690; 387.05128 6351967; 387.26965 1396044; 387.29714 3504382; 387.56034 346672; 387.61351 50630; 387.76491 43747; 387.77927 165177; 388.3562 65169; 388.45467 24233; 388.4851 5533828; 388.5257 48357; 388.52996 1807625; 388.68053 1975; 388.70867 2453962; 388.79411 1800; 388.98905 7717; 389.22294 30968; 389.61532 61093; 390.16829 110127; 390.33417 20413; 390.5944 1481442; 390.71691 31791; 390.9508 11543; 391.09068 65783; 391.40394 27195; 391.96731 26310; 392.00354 16119559; 392.73741 1179; 393.61548 352432; 393.76248 1964; 394.74832 20847; 394.89203 9536947; 394.90249 9570; 395.1962 55027; 395.2126 34082; 395.83667 37017; 395.88823 28450; 395.92467 34957; 396.05167 1261637; 396.39245 25713; 396.49365 74722; 396.55361 36699; 396.64416 53166; 396.90415 26755; 397.27264 7693519; 397.3605 64773; 397.50744 71539; 397.88255 557461; 398.46989 7596211; 398.52624 1887336; 398.6893 74405; 398.72209 3002819; 398.99037 380946; 399.05226 79207; 399.17162 10605; 399.25092 34126; 399.45901 1498048; 399.55048 2746978; 399.56681 14193018; 399.91613 6105; 400.02345 510251; 400.27985 37029; 400.4162 147610; 400.80715 62627; 400.82127 46623; 400.86456 6217821; 401.13535 1004; 401.79338 96110; 401.85696 9569728; 402.21742 3386060; 402.29232 32608; 402.76156 58114; 403.05714 21969; 403.09068 4902558; 403.42174 6280; 403.76166 54951; 404.15615 6039; 404.18191 3521; 404.68459 916758; 404.76463 659; 404.82132 149497; 404.92063 20457; 405.23711 22602; 405.29262 3157869; 405.32878 23126; 405.37923 189878; 405.94451 1196931; 406.0699 4433; 406.29904 7834021; 407.08211 1168333; 407.22647 809532; 407.22766 1618530; 407.31395 189568; 407.99547 6063911; 408.02181 56737; 408.13631 7226; 408.23056 9046248; 408.42885 2794; 408.59791 45998; 408.83183 32767; 408.89688 1159; 409.27288 43328; 409.28645 29167307; 409.3442 2977061; 409.53611 35498; 409.94454 949508; 410.12793 62369; 410.51908 191695; 410.5827 58703; 410.9608 15536; 411.22229 36950; 411.2322 1409594; 411.27948 139864; 411.35459 2521450; 411.38603 80817; 411.42792 4686320; 411.56886 3855480; 411.63583 64423; 411.78934 345418; 411.91788 6749150; 412.05877 33955; 412.08968 2196; 412.33279 197626; 413.08871 2644547; 413.14093 14753; 413.87749 335681; 413.9907 2182965; 414.1577 47684; 414.23439 20513; 414.34582 3648839; 414.67434 482653; 414.72147 180283; 415.21697 15846; 415.6473 2538966; 415.86311 325591; 415.93637 948979; 415.98874 3022; 416.20386 4929245; 416.38968 67038; 416.50862 57855; 416.72177 30952; 416.78781 50198; 416.88124 1239310; 417.02582 98132; 417.07552 1158497; 417.11136 22284; 417.17486 16449; 417.30524 55502; 417.34315 20606; 417.37781 61377; 417.70406 5891; 418.00678 68275; 418.25672 2545; 418.59387 76074; 418.67145 8771; 418.70565 585417; 419.23919 1327287; 419.65818 22591; 419.73345 616860; 419.97976 1819869; 420.22346 4769936; 420.47516 2108; 420.69108 841899; 420.71902 14712013; 420.86175 76001; 421.05183 2252; 421.06849 5248; 421.12408 31936; 421.42966 73931; 421.4971 53453; 421.68963 9069308; 422.09334 7534773; 422.11901 25941869; 422.16878 1145; 422.31252 135714; 422.47447 4282186; 422.51394 16987; 422.7158 41983; 422.80182 38729; 422.95404 28325; 423.03122 13762; 423.77669 67039; 423.82337 1539741; 424.21968 25721; 424.31377 42640; 424.382 167753; 424.50577 24252; 424.61049 6179; 424.63396 29280877; 424.64034 617345; 424.8897 7936759; 425.03875 27767; 425.15172 7460; 425.4511 3424; 425.9196 46945; 426.00516 14888; 426.00717 2106; 426.59092 134085; 426.68304 25349; 427.43174 31118; 427.45651 354534; 427.84527 25707; 428.12119 534454; 428.21459 1745585; 428.48862 2316979; 428.7057 342808; 428.76161 51120; 428.92606 5341; 428.92873 20908; 429.11815 27958; 429.20763 7179; 429.45831 74927; 429.90373 1467189; 430.32452 1446764; 430.67516 718015; 430.98811 34351; 431.36371 5832302; 432.14129 260505; 432.22088 259; 432.49475 4873137; 432.60366 1034511; 432.70835 157935; 432.84865 15545283; 432.94509 5024; 433.20169 1417696; 433.68143 25320; 433.71148 24427743; 434.47785 1598073; 434.5217 344; 434.68133 7097695; 434.73117 13543834; 434.92203 243650; 434.95198 33704; 435.09157 344761; 435.40511 1240002; 435.52954 46629; 435.60031 970107; 435.65807 1808146; 435.76162 11317; 436.14475 47383; 436.18042 2708304; 436.49705 75998; 436.58466 22050; 436.66534 2717589; 436.68484 14364; 436.71845 1417987; 436.90021 284558; 437.00366 28518; 437.00615 3029237; 437.19773 8034119; 437.52945 3231073; 437.67725 2528041; 438.31154 690462; 438.33541 8437947; 438.46598 34043; 438.54852 25605; 438.75454 11039; 438.81606 821463; 439.00717 8648; 439.03578 126992; 439.1063 37195; 439.28181 3454; 439.44347 8525029; 439.68658 25979; 439.75933 253; 440.25718 7871789; 440.28459 34295; 440.8988 187027; 440.94755 1496625; 441.12663 1799149; 441.3877 3574343; 441.40995 1426948; 441.51956 33727; 441.70828 1789552; 441.7987 108167; 441.80869 12675116; 441.86184 9108376; 441.96492 322262; 442.32441 65233; 442.66429 26212; 442.79834 3717; 442.8162 26832; 442.84878 6164525; 442.95744 19333; 443.14421 51446; 443.278 53707; 443.28954 626400; 443.47993 29102; 443.79933 26518; 444.01275 5055; 444.0458 9483; 444.10206 18009; 444.57204 59447; 444.72045 746714; 444.9503 5156584; 445.45858 9921911; 445.55761 3962551; 445.79043 61083; 445.84552 49377; 445.92247 443; 445.95598 31602; 446.00015 1270324; 446.33341 62544; 446.34507 171075; 446.42404 51321; 446.91812 16656; 446.98672 7906046; 447.02564 79278; 447.36073 4605; 447.49584 692878; 447.62786 6133336; 447.81682 122493; 447.88983 4084054; 448.09242 33766; 448.36402 29087; 448.42278 3685943; 449.13252 77146; 449.1597 24991; 449.31299 71665; 449.78485 6668495; 449.97594 124179; 450.12773 33200; 450.28328 1374058; 450.35084 71456; 450.76102 129816; 450.78375 4286031; 451.08033 1797387; 451.12041 1302910; 451.25506 9925; 451.3676 29986; 451.62707 29475; 451.68957 14333; 451.7874 14542109; 452.26011 1354852; 452.39692 72292; 452.39743 4786054; 452.70047 56435; 452.75978 61381; 452.86295 39374; 452.99077 15483; 453.47036 2433900; 453.82613 6036; 454.03627 51533; 454.04545 48355; 454.05427 14044; 454.12734 8918; 454.1298 6922606; 454.42795 14602; 454.87376 98999; 454.90609 28569; 454.95097 29542; 454.96188 63702; 455.02155 1680975; 455.02588 9909; 455.05859 56568; 455.1958 3615597; 455.39047 1363176; 455.54811 73712; 455.74996 2841; 455.76987 854; 455.84392 1024; 455.89102 4376759; 456.31271 48960; 456.38995 41297; 456.4359 16336; 456.51891 22083; 456.79469 17299; 457.61987 77305; 457.66393 32656; 457.82577 600502; 457.93307 4397560; 458.1711 5221; 458.24408 7273; 458.40152 8400545; 458.45269 27665; 458.56234 205132; 458.94987 843750; 458.99864 15712; 459.23815 816267; 459.38492 611699; 459.75006 24080; 459.759 358374; 460.07894 19087414; 460.31237 62298; 460.37547 5707536; 460.49609 57579; 460.6214 17596; 460.6788 8280; 460.74702 70876; 461.18748 27479; 461.62006 1582890; 461.65519 7689; 461.73083 68102; 461.94425 6426637; 462.18226 36560; 462.24555 128299; 462.77883 1441; 462.91333 1619568; 463.19066 1580531; 463.31418 3808896; 463.32037 4672818; 463.53339 30818; 463.75668 42166; 463.77679 6288294; 463.8198 9150; 463.89703 66486; 463.9783 21625; 463.99869 869175; 464.25712 1690133; 464.37614 1127951; 464.39119 69683; 464.68387 51436; 464.69555 6817; 464.70132 4884; 464.74705 182908; 464.79788 8634463; 464.98503 3350422; 465.29844 2577062; 465.43831 7196; 465.60429 2973431; 465.62567 2620104; 465.65422 7149; 465.79377 58279; 465.90334 34025; 465.90525 18226928; 465.91987 3473; 466.28242 1170579; 466.34574 6195; 466.61078 10092; 466.88163 498319; 466.91185 9941713; 466.91505 1575023; 466.97212 1874929; 467.57047 1831059; 467.7483 143466; 468.12387 66077; 468.2512 9754; 468.35869 22334; 468.56919 869353; 468.62244 62185; 468.97276 2887; 469.02211 42349; 469.50438 27359337; 469.56453 4497837; 469.68202 7993; 469.75608 137753; 469.96019 1936; 470.00109 28770; 470.18041 40171; 470.32197 8468599; 470.4396 22354; 470.44104 32107; 471.16071 68219; 471.38227 38289; 471.3939 15806; 471.46002 3619205; 471.52643 1437571; 471.91529 3702754; 472.12756 14078; 472.15277 628308; 472.42343 28289; 472.81475 39596; 473.08179 49404; 473.36995 8870535; 473.42193 9165682; 473.53413 5095681; 473.58075 37602; 473.83068 70335; 473.86558 67504; 474.33203 52065; 474.41405 1286447; 474.49428 480473; 474.69604 27862; 474.82417 126; 475.03603 73791; 475.04812 1924493; 475.07925 13681; 475.25817 7644; 476.45049 66694; 476.56418 65759; 476.85067 59967; 477.01685 970790; 477.14378 25501519; 477.21204 40053; 477.3396 732142; 477.60315 946244; 477.85094 8528520; 477.93871 4429276; 478.00352 190075; 478.01622 122937; 478.0701 25864; 478.09016 50182; 478.09204 1493679; 478.13548 4834207; 478.15113 4672893; 478.58145 2155283; 478.65148 51007; 478.77803 23601; 478.87213 37280; 478.87467 48706; 478.92432 8573; 479.02919 34204; 479.21684 56125; 479.31361 56296; 479.45985 26111; 479.7144 363716; 479.83658 48684; 479.85428 1247644; 479.9089 41901; 480.71579 20438303; 480.82759 4023; 480.89065 58204; 481.24592 6753778; 481.28199 97776; 481.32237 686833; 481.54279 2580849; 481.59518 119339; 481.72191 60375; 482.17203 1849147; 482.24913 648449; 482.25888 28174; 482.26302 16139; 482.33067 5364; 482.41994 159516; 482.75077 4826; 482.97048 2147386; 483.06056 25276; 483.4436 33382; 483.80814 60922; 483.8433 639553; 484.01118 54548; 484.02203 19221; 484.07001 49779; 484.09045 22066; 484.19581 2547; 484.5769 1499248; 484.64707 85090; 484.70661 6490962; 484.82165 906317; 484.82886 1576501; 485.34152 4416092; 485.48605 68648; 485.68453 874095; 485.79601 4269; 485.84552 44329; 486.03092 4156698; 486.10644 23520; 486.21388 42760; 486.3204 13984; 486.948 3883; 487.16824 14663; 487.26313 4719; 487.28118 13604; 487.68393 58963; 487.8209 2404643; 487.96142 23634; 488.16015 4921; 488.1655 1785; 488.52505 1666243; 488.57818 39496; 488.62687 1651996; 488.89481 5018882; 489.05105 67633; 489.08397 2692; 489.92979 845501; 490.24084 24492117; 490.39079 6516; 490.40143 29995; 490.70814 4979728; 490.74224 9026; 490.7939 4585952; 491.01176 1491651; 491.08382 3042718; 491.20978 1950620; 491.95906 4402652; 492.06461 71379; 492.22369 9324; 492.35309 6881; 492.47317 522774; 492.65094 6294; 492.77769 233092; 493.09747 6958032; 493.2038 24860; 493.262 20221; 493.27371 1268109; 493.29448 138611; 493.33499 140080; 493.35098 7232546; 493.43026 6662; 493.43727 65475; 493.61011 5235; 493.74195 55668; 493.82316 25871; 493.87546 1186888; 493.96401 773564; 494.36464 1418031; 494.36865 20944; 494.41102 123175; 495.30121 21456; 495.4066 3059277; 495.56522 1241373; 495.63808 20927; 495.74908 7702526; 495.78825 125492; 495.82161 11851; 495.85413 8545851; 495.86949 1642667; 496.22814 2577301; 496.45535 1523262; 496.5775 1973; 496.63205 9823951; 496.96189 1245149; 497.02913 78488; 497.07994 4356; 497.10034 8606693; 497.17334 6799; 497.62908 4391; 497.67056 57205; 497.7577 80386; 497.80907 1279411; 498.01479 7034; 498.24063 5843; 498.32852 8742; 498.38898 59052; 498.58423 41097; 498.96154 36558; 499.40855 62855; 499.43372 1966874; 499.51371 285146; 499.8796 29393; 499.89995 35543 +<0, 6>: 0.93463 27832; 0.9588 1008556; 1.15809 1581937; 1.38558 9362; 1.47325 108916; 1.58614 1284739; 1.93602 1813; 2.17263 55217; 2.36399 761911; 2.91269 51300; 3.62906 3004; 4.13909 291381; 4.36842 1268508; 4.60439 6950; 4.82196 3390; 5.08778 1230930; 5.60346 30863; 5.79551 64916; 6.3169 24744756; 6.38132 42066; 6.49279 47378; 6.53661 21433; 6.56986 14462; 6.62885 114849; 6.90118 33930; 7.09274 1941536; 7.10012 68061; 7.26784 3938900; 7.62484 1582851; 7.74301 16986; 7.78918 144302; 7.89649 1182360; 8.05265 5747916; 8.15586 92111; 8.16432 66496; 8.26104 47640; 8.45488 6146618; 8.55538 71395; 8.85574 104048; 8.93803 10868651; 8.97578 179248; 9.22997 6900056; 9.3472 13784; 9.41964 1931619; 9.74002 1254784; 9.90178 56811; 9.98299 1825099; 10.06602 1951474; 10.34822 2870552; 10.59226 1655521; 10.96059 18929; 11.09365 1663105; 11.17411 40373; 11.33834 12512; 11.56153 23326; 11.62895 63639; 11.72185 43322; 11.93019 66423; 11.99344 916528; 12.01712 144782; 12.43184 35441; 12.6723 1360364; 12.68414 757103; 12.81384 9086; 12.91259 8546195; 12.98087 29308; 13.06478 47901; 13.18925 46818; 13.20395 195436; 13.24768 67150; 13.24795 22278; 13.30418 1223119; 13.49648 26332; 13.63111 2443289; 13.7659 56502; 13.98188 153185; 13.98394 34540; 14.11926 2900; 14.20068 6788; 14.26505 378126; 14.46868 1722263; 14.51988 1756; 14.54618 7246; 14.62086 4901332; 15.0185 762104; 15.08794 11374231; 15.12561 24179; 15.30287 8681410; 15.45479 19386; 15.50865 18799; 15.53753 3988597; 15.55959 385; 15.57441 1993268; 15.91871 67940; 16.00032 323246; 16.12185 28156; 16.45054 58127; 16.84366 43294; 16.97115 6069869; 16.98609 9717476; 17.44121 157372; 17.44482 44613; 17.45473 3885400; 17.66599 1769354; 17.82287 596644; 17.99721 27291; 18.57704 9747; 18.6864 34073; 18.80798 123535; 18.81161 656525; 18.97863 33709; 19.18665 5139; 19.24708 6361917; 19.32981 30518; 19.35866 1394512; 19.5176 5169; 19.55709 1705654; 19.60776 10834; 20.02525 32857; 20.27172 12359; 20.30299 21604; 20.35011 70128; 20.71966 68922; 20.83593 57392; 20.84391 23083; 20.89694 38569; 21.03914 53917; 21.20055 7093709; 21.3375 8854; 21.47809 4763055; 21.50731 121692; 21.78335 40497; 21.94927 16619; 22.19114 2772232; 22.60457 1645220; 22.64823 9258062; 23.30072 26834; 23.42447 40663; 23.74253 2269477; 23.7724 10185; 23.90367 1415808; 23.99648 4793960; 24.04237 5366109; 24.55667 37625; 24.56512 64015; 25.01152 36341; 25.01497 1722521; 25.36861 45832; 25.6101 56240; 25.71046 1266061; 25.71316 188544; 26.34682 170856; 26.38903 516573; 26.52954 89471; 26.54995 241043; 26.59883 1345; 26.83217 774955; 27.38639 35482; 27.50206 4451528; 27.70733 36960; 27.70891 1690261; 27.77288 21472; 27.80515 2121; 27.83763 20220; 28.18165 2518; 28.19277 891709; 28.27409 19766321; 28.27593 73521; 28.46268 6532; 28.46572 65201; 28.53254 1558477; 28.58576 23847205; 28.59764 18262; 28.61811 196649; 28.63349 23830; 28.81228 6199269; 29.10479 69426; 29.3419 28591; 29.41404 171623; 29.72524 56296; 29.78224 1819857; 29.82903 2412; 29.94785 176395; 29.95047 9355; 30.6755 394257; 30.67908 59793; 30.81909 6043059; 30.85423 1095204; 31.06627 5101242; 31.24181 78755; 31.69356 77457; 32.05671 21934; 32.45908 3630477; 32.47692 21526; 32.57662 3366387; 32.97032 17212; 33.03007 358266; 33.16671 833932; 33.23797 18093; 33.9327 3677053; 33.95162 172364; 34.01196 1693715; 34.35936 2977357; 34.4135 56452; 34.60826 107894; 34.6958 3943755; 34.91242 40507; 35.15944 128462; 35.29175 74743; 35.62455 8269852; 35.6628 29499; 35.87276 37400; 35.97195 6991; 36.54009 78357; 36.58417 36041; 36.81499 13620; 36.86863 72977; 37.87089 51288; 38.0207 6521372; 38.04822 5666598; 38.49355 9659; 38.56096 7875221; 38.72516 307576; 39.09412 587061; 39.34382 1069865; 39.50037 177618; 39.57671 21485; 39.81258 274270; 40.21367 44268; 40.58087 735488; 40.8634 782; 40.90167 21147; 40.98331 821431; 41.45711 190210; 41.5646 79548; 41.66249 5412797; 41.92219 6270; 41.98951 7159; 42.39591 629555; 42.46342 75408; 42.67156 2704692; 42.68104 48394; 42.89501 39187; 43.26799 6867060; 43.45516 1990418; 43.50723 28235; 44.11743 970; 44.53021 163906; 44.68996 57520; 44.76415 65521; 44.91351 53120; 44.92907 32135; 45.17576 1648385; 45.56097 21998; 45.72747 45437; 46.64172 5789984; 46.81437 1917082; 47.07085 183818; 47.5434 1825146; 47.56713 28911; 47.68283 8241; 48.00617 1810660; 48.32086 1993; 48.78174 2322847; 48.81407 26220; 49.44923 10992; 49.59555 21158; 49.65126 1595; 49.7434 9869; 50.18713 64874; 50.25831 9029; 50.25857 37620; 50.61857 137833; 51.12591 1161787; 51.24865 12982; 51.50206 5864381; 51.62528 10921; 51.69897 4500227; 52.19006 616; 52.19635 76359; 52.52315 2893805; 52.60832 9590; 52.78937 5145; 53.01039 40707; 53.01678 166284; 53.02092 48918; 53.15207 37902; 53.69921 5841329; 53.75991 29058; 53.82436 53689; 53.83607 1199009; 53.87609 7666; 53.94792 35787; 54.2081 26804; 54.24623 8221; 54.26693 1276445; 54.3324 1023843; 54.71248 1856; 54.92885 1018855; 54.98227 284074; 55.1139 40550; 55.42596 33430; 55.52044 1544458; 55.52523 578391; 55.74758 1229378; 55.77044 15452; 55.84555 6184; 55.9763 28240; 56.25158 51110; 56.28362 6073; 56.37029 6012705; 56.49129 1116254; 56.70156 64705; 56.83782 57944; 56.97981 47797; 57.35237 1145632; 57.5972 198117; 58.12157 25844322; 58.16944 11821; 58.28463 69773; 58.30584 182109; 58.79095 7139472; 58.97654 72414; 59.23067 23885; 59.38351 1631202; 59.45003 1701676; 59.95019 15793; 59.96603 14740; 60.02464 2117175; 60.04359 1550534; 60.26773 23403; 60.68504 2682650; 60.77168 9733; 60.83238 2434981; 60.94253 660024; 61.08355 46066; 61.63809 6590; 62.25725 29960; 62.26579 29521552; 62.42082 546296; 62.59156 946640; 62.66357 1557; 63.02996 506; 63.18798 50730; 63.32984 37729; 63.35588 4481973; 63.40085 7889092; 63.55311 71743; 63.74266 68709; 63.78442 33836; 64.38418 5173; 64.52244 133677; 64.56418 157023; 64.67976 24400; 64.742 66178; 64.87355 9470; 64.97931 25886; 65.21394 4389321; 65.35425 17792; 65.57592 7958791; 65.94632 1383568; 66.04396 101231; 66.05643 190280; 66.20431 50469; 66.36867 4633332; 66.49667 26112; 66.87496 15158112; 66.921 65477; 67.0522 35940; 67.21977 199662; 67.25944 48476; 67.41102 2395; 67.79678 1753; 67.8092 54690; 68.07274 35809; 68.14581 64648; 68.56298 265149; 68.86161 23219; 68.96566 3536; 69.07627 20716; 69.2832 75150; 69.39561 62979; 69.44782 44141; 69.77327 7296; 69.90972 75132; 70.01227 8587; 70.20961 177592; 70.25205 29422; 70.39773 23360; 70.41009 1322038; 70.67045 41034; 70.72373 22028; 70.73339 160403; 70.94626 3035496; 71.19199 4959928; 71.41363 17158; 71.4216 9505577; 71.50952 1715635; 71.69618 4734; 71.92067 778963; 71.94594 145948; 72.01937 11344782; 72.27275 63321; 72.27599 17243; 72.30201 6615840; 72.51741 3338; 72.55893 1852226; 72.58184 51349; 72.67823 438463; 72.73634 6364073; 72.7456 50259; 72.89319 811214; 73.09691 4326545; 73.37312 5471; 73.58859 15512; 73.60379 36400; 73.70596 30177; 73.82863 59240; 74.02147 29909; 74.06339 1153674; 74.34334 31268; 74.67174 8275; 74.86235 1697722; 75.17329 50370; 75.54976 903; 75.64657 181544; 75.74135 5838236; 75.87203 38845; 76.02949 7445664; 76.0748 63297; 76.28546 527; 76.37747 127391; 76.51147 4131846; 76.69954 6924494; 76.75504 15290; 77.03507 37; 77.10041 56286; 77.17703 2854175; 77.18706 210793; 77.33688 993060; 77.39484 59268; 77.5058 154726; 77.73089 2748; 77.82667 130549; 77.88673 7985; 77.98987 48128; 78.16827 13696; 78.33557 125910; 78.38706 3771860; 78.62294 3574; 78.84211 194811; 79.00692 10775; 79.14245 75450; 79.15317 173045; 79.29921 3744736; 79.39114 3158246; 79.43359 20583438; 79.54788 3468105; 79.58246 29090; 79.60909 168756; 79.97856 8015; 80.22405 121780; 80.30613 9729; 80.35358 2194440; 80.74025 4079143; 80.80212 70244; 80.8574 23173; 81.30477 1535394; 81.39646 6131894; 81.39816 191496; 81.79032 16220; 81.82037 11768; 81.90688 7993271; 81.97704 26354; 82.02095 3657798; 82.08859 1190232; 82.12709 589773; 83.04024 48036; 83.24169 28139; 83.37852 314413; 83.48527 2142790; 83.53555 17271445; 83.61123 139698; 83.67886 14846; 83.71051 9551; 84.07701 2463; 84.23781 5082; 84.38584 3260354; 84.61604 20119; 84.80173 4391; 85.20121 995719; 85.41859 8217373; 85.58293 8087904; 85.59662 267112; 85.60201 529721; 85.85381 134514; 86.13002 16436; 86.13706 6132; 86.18682 88958; 86.29045 29828; 86.50278 2911072; 86.98106 14229246; 87.01087 6647; 87.11135 78838; 87.48414 37246; 87.55166 5095; 87.96316 4062; 88.11429 57256; 88.30111 882970; 88.73 7462; 89.0639 1695833; 89.14217 8229; 89.17631 3705798; 89.31725 9383725; 89.51102 53064; 89.7387 63634; 89.77066 1355748; 90.51678 2694691; 90.63517 11536; 90.66399 47136; 90.85293 64240; 91.09552 3344738; 91.2195 26952; 91.55276 912699; 91.83721 1874218; 92.38334 57645; 92.4236 58857; 92.52196 2564; 92.53443 4988110; 92.63449 51343; 92.9145 1913762; 92.97706 91169; 93.07562 2805670; 93.12906 2555449; 93.3446 40356; 93.70393 50230; 93.72148 2696060; 93.92655 10074; 93.93527 6855621; 94.21853 6634; 94.25738 4756941; 94.56891 60713; 94.64069 25202328; 94.69159 11863; 94.92236 111406; 95.41552 98638; 95.43322 3488286; 95.46331 56759; 95.6697 128943; 95.86022 7274873; 96.1382 1588584; 96.14991 27194; 96.15642 8626381; 96.16031 59832; 96.63072 115163; 96.72569 4346; 96.90299 2212652; 97.08207 146614; 97.60013 42023; 97.73568 3612773; 97.83381 2768377; 97.98624 2812548; 98.05895 22075; 98.13469 23470; 98.28653 7418; 98.57377 3249; 98.97157 9553580; 99.0464 62846; 99.05032 21259; 99.31554 29822; 99.53981 251529; 99.6687 4443; 100.23349 8595725; 100.5747 3712; 100.90511 4419; 100.93518 756995; 101.10995 3283557; 101.20711 277747; 101.22855 54032; 101.29431 2505905; 101.34543 591993; 101.37902 199797; 101.47755 21242; 101.60149 34434; 101.83445 4684054; 101.85118 3077565; 101.85719 6408; 101.95636 117980; 102.46391 1912119; 103.29886 2417776; 103.77142 56967; 103.80026 1123440; 104.00325 9440170; 104.12499 7566088; 104.31198 69923; 104.41371 1031; 104.65073 790704; 104.79343 7282023; 105.37441 487318; 105.47551 632731; 105.74709 44328; 105.75026 20189770; 106.04083 9240; 106.64295 159059; 106.78056 22939; 106.87953 2800; 106.99843 98134; 107.10993 71013; 107.19657 916668; 107.41858 22894; 107.48707 3485090; 108.14376 1793647; 108.60912 53656; 108.71881 3893781; 108.80196 69242; 108.81224 3594133; 109.20227 47903; 109.32119 2897842; 109.43357 1653937; 109.52535 540700; 110.06693 27551; 110.17257 11892; 110.29678 28022; 110.83739 876549; 110.87475 14862569; 111.3335 2097259; 111.35807 2746281; 111.36999 1946; 111.38182 4643; 111.51062 3530146; 111.6686 110466; 111.69303 25168; 111.70736 36604; 111.76244 39706; 112.10103 439; 112.17125 3688207; 112.37366 22076; 112.3896 3109010; 112.47245 30874; 113.09285 1840263; 113.5858 56871; 113.60707 3730; 113.63304 5978; 113.67153 24403; 113.72781 1404951; 113.8944 8513; 113.93272 32907; 113.99605 8733602; 114.16231 9863213; 114.27787 19084; 114.33466 44228; 114.37296 3586; 114.49317 858; 114.84531 28913; 115.02663 4921; 115.03959 175217; 115.37939 56596; 115.74142 1448842; 115.79042 17114; 116.31395 792; 116.50497 24505; 117.45678 47711; 117.5027 2501; 117.52722 72423; 117.79877 1533; 117.84574 9712385; 118.20799 331595; 118.65394 23259; 118.69252 78460; 118.921 11309; 118.95894 1953312; 119.16871 1160573; 119.64388 13558; 119.684 931755; 120.83756 2820; 120.86263 13016; 121.39358 19916; 121.41985 950457; 121.55612 3089812; 121.64345 25720; 121.67336 7930; 122.04404 2350069; 122.69807 3935; 122.76096 5812454; 122.95697 3225972; 123.17236 75783; 123.18382 4922640; 123.30494 32140; 123.41489 308338; 123.6403 100362; 123.70739 2565; 123.7824 3370; 123.89315 8236; 124.59707 47004; 124.59906 882125; 124.7834 145470; 124.81183 7818096; 124.85611 407023; 124.89252 572098; 125.43385 707041; 125.44036 40065; 125.74954 1836490; 125.89167 26835; 125.91056 68121; 125.96494 4453; 125.97263 157478; 126.11459 869069; 126.35347 458533; 126.40594 16661; 126.43293 191577; 126.46913 2950006; 126.47961 831320; 126.94487 5301; 126.97401 4129963; 126.97925 68034; 127.18607 72071; 127.54522 48854; 128.13728 23526; 128.20843 6840740; 128.28201 3676551; 128.59298 73380; 128.62385 943605; 128.92548 5566548; 129.15239 76297; 129.21457 15867; 129.31708 2439563; 129.49868 9004; 129.60863 88877; 129.87645 701062; 129.9484 16684; 130.02399 36304; 130.26119 3193; 130.29815 26427; 130.31962 21275; 130.47712 1035885; 130.56233 1372; 130.82203 20389; 130.86014 5767; 130.92714 6950160; 131.2277 2860954; 131.26555 612347; 131.92605 21958; 131.95091 1974916; 132.0975 62285; 132.15477 27733; 132.17308 16766; 132.57312 3090; 132.73818 3748151; 132.74917 1854215; 132.81206 15726; 133.06946 67143; 133.3048 9879243; 133.3461 50717; 133.57315 6735726; 134.00318 7540; 134.08898 113476; 134.13094 25928793; 134.1421 120349; 134.73997 1863738; 134.77829 3667820; 134.89676 1219466; 134.99905 44536; 135.06075 66614; 135.06359 46818; 135.14183 67299; 135.16118 48654; 135.28946 5863351; 135.43243 1179791; 135.55479 49687; 135.98265 3118; 136.31998 3793086; 136.46095 391068; 136.70229 5963; 136.85924 35203; 137.02936 67521; 137.04301 6092; 137.45519 7703512; 137.4835 709474; 137.53171 9136; 137.59938 190356; 137.66711 603269; 137.75651 1623922; 138.11602 3377; 138.56526 261735; 138.68139 26117; 138.69895 1253010; 138.70774 34400; 138.72471 55591; 138.76727 506074; 139.2944 9789; 139.4539 155978; 139.49204 92644; 140.16545 18103; 140.21032 68242; 140.27491 23459381; 140.55142 11724; 140.62458 29082; 140.9446 37292; 141.24293 8014266; 141.59569 5427861; 141.62592 1079375; 141.70395 933546; 141.75488 66459; 141.78453 35983; 141.80529 61542; 141.86491 20720; 142.30313 1331395; 142.48154 199170; 142.55924 29742779; 142.59306 5759; 143.07894 5284; 143.18446 676869; 143.31684 569739; 143.57435 22337376; 143.80222 3044; 143.82656 4196; 143.93091 1804; 144.44122 1422199; 144.51646 1689360; 144.58273 38397; 144.83178 1363659; 144.84212 4588668; 144.99048 122999; 145.01399 5275004; 145.11068 1970012; 145.12941 1685309; 145.21155 28655409; 145.369 7182614; 145.49181 4286918; 146.01368 5108091; 146.28403 534868; 147.23372 3185; 147.2443 650086; 147.82259 9904; 148.02579 9398022; 148.28966 79680; 148.43723 585042; 148.94841 1846019; 149.00074 1745218; 149.0942 3339913; 149.12826 7847; 149.54637 28249; 149.5703 2071182; 149.65387 71295; 149.66742 30009; 149.95315 5947838; 149.99621 256228; 150.00304 20833; 150.17117 3750631; 150.25071 1083554; 150.43072 21006; 150.69636 1454846; 150.70664 4426966; 150.95328 8000171; 151.51228 38825; 151.96844 3712; 152.44402 506402; 152.64068 964232; 152.81178 1599633; 153.24444 467507; 153.34201 131279; 153.57015 11157; 153.619 8740140; 153.63157 6668767; 153.67113 113704; 153.67353 18458; 154.01457 1490718; 154.05878 5433; 154.10789 60234; 154.11041 75187; 154.21404 8447; 155.37362 21550; 155.70675 2301; 156.2417 13290; 156.31317 213; 156.62246 579984; 156.86371 39807; 157.03955 1226398; 157.2787 5914; 157.56843 38382; 157.61366 1976001; 157.69583 1321167; 157.70835 5033703; 158.08233 64388; 158.36336 17250; 158.39309 462651; 158.69432 158086; 158.88663 23000; 158.99031 243000; 159.14546 612451; 159.26935 32390; 159.39543 76767; 159.44504 44836; 159.53992 58677; 159.5412 52530; 159.60047 725182; 159.61907 36637; 159.7369 41068; 159.74164 122699; 159.83257 161891; 159.92045 7442212; 160.57402 71855; 160.97111 35125; 161.02255 4850051; 161.13353 229399; 161.41211 14952; 161.41268 1170; 161.41824 1127797; 161.46712 115503; 161.78992 58410; 161.85899 34153; 162.20403 6241595; 162.90107 234019; 162.90434 7738; 163.0801 159054; 163.10606 22980; 163.17129 23277; 163.31646 25427; 163.33366 6761; 163.36202 5003780; 163.42194 71793; 163.49351 59503; 163.64364 4078; 163.86964 1866725; 164.04997 1376243; 164.14926 21239; 164.21858 26138; 164.57133 4188707; 164.89596 5907882; 165.02123 42334; 165.51199 18860; 165.62505 24043; 165.73217 3541; 165.78812 24524924; 166.0885 39481; 166.12036 57784; 166.20405 5926; 166.41031 9428246; 166.48273 13771523; 166.6679 15306; 167.04129 6713; 167.20222 53913; 167.20364 129539; 167.24094 147968; 167.59342 27622; 167.83857 114164; 167.89447 35970; 167.95423 1682522; 168.37289 34125; 168.37333 27750; 168.46551 8608; 168.49475 118394; 168.70778 47322; 169.62872 9039; 169.63951 73432; 169.83673 1496172; 169.92711 6125; 170.54104 42434; 170.57571 3138596; 170.6207 79616; 170.91093 4135003; 170.95357 61607; 171.02074 219100; 171.26366 1870; 171.31345 12603; 171.56915 9034; 171.66562 35592; 171.77542 4789587; 171.8242 70712; 172.23222 936536; 172.34005 584185; 172.41748 772552; 172.4231 24207; 172.45289 8942; 172.70004 1172902; 172.72189 29624; 172.84909 3951028; 173.30638 3094650; 173.34208 955581; 173.54685 3287344; 173.68682 31441; 173.89588 158518; 174.41723 58646; 174.62215 4950886; 174.67452 44573; 174.72327 336390; 174.88162 28826; 174.93314 9211; 175.13432 74545; 175.1796 425; 175.19212 2330; 175.29528 3185573; 175.31727 25001; 175.82784 55459; 175.90037 791908; 176.32281 3557736; 176.35012 4487471; 176.43141 245148; 176.46716 71470; 176.51678 3598720; 176.63925 72713; 176.79725 3560218; 177.04558 846754; 178.03922 9734; 178.06642 5164488; 178.49416 8873532; 178.64876 73657; 178.73599 8552407; 178.83379 15940; 179.1624 3351272; 179.2011 85063; 179.51627 48508; 179.63581 932714; 179.69842 4165; 179.72448 79; 179.75179 850299; 180.06164 120720; 180.0649 1779774; 180.09466 2024; 180.12092 29893; 180.22542 27102; 180.22879 71304; 180.42023 9477; 180.53064 39036; 181.23277 76764; 181.34974 4684817; 181.42074 729258; 181.50664 12145521; 181.54632 7770498; 181.64 27734; 181.65174 72863; 181.70742 1754834; 182.12185 237747; 182.12879 66171; 182.25521 10249657; 182.37381 19398697; 182.38235 1740499; 182.47845 7003; 182.49097 11159482; 182.51324 2934579; 182.96327 3942952; 183.08665 55058; 183.34758 1244616; 183.4099 6357; 183.5164 600095; 183.8464 2590778; 183.93712 20252; 184.12647 49601; 184.13966 5527617; 184.22496 631; 184.22642 417550; 184.26727 27203; 184.3566 263; 184.7198 7082311; 184.78224 4585; 184.88398 4090; 185.48703 15547; 185.74732 3234010; 185.96715 60643; 186.12834 9478; 186.38528 6175780; 186.43522 15798; 186.8204 59827; 187.22354 966602; 187.69237 6586; 187.86304 153805; 188.13358 844188; 188.36376 17288380; 188.74042 12526; 188.87924 77711; 188.90936 27140; 188.97579 780799; 188.98125 8549; 189.1197 2448374; 189.60725 23191371; 189.73346 1370232; 189.76618 27444531; 190.27247 434; 190.30348 31224; 190.40229 9449; 190.48894 3332; 190.57157 58767; 190.73027 1140; 190.7553 24430; 190.85291 197710; 190.9486 21379855; 191.13082 2163602; 191.1529 57953; 191.497 793260; 191.76258 2723602; 191.76781 20656; 191.90246 1985610; 191.9202 42461; 192.19041 48442; 192.21302 178258; 192.42238 4390458; 192.53031 24654; 192.66507 69718; 192.67975 29229; 193.02045 345353; 193.28438 24031; 193.36935 54704; 193.40113 46682; 193.59997 2642979; 193.77769 1424; 193.9219 4416; 194.37759 23270; 194.43423 6618; 194.55089 24892; 194.64519 8989; 194.72315 30306; 195.03254 23456; 195.09946 8746198; 195.13051 4094640; 195.14965 37395; 195.16461 117087; 195.17642 9960586; 195.74465 1089537; 195.95285 477237; 196.15394 48821; 196.16648 7191538; 196.4502 32422; 196.54263 3855737; 196.67425 1397700; 196.7015 83289; 196.75511 5549; 197.06168 1076263; 197.0667 21045; 197.13046 75311; 197.20222 3031656; 197.39248 8380; 197.41349 28741139; 197.47098 461983; 197.77968 60165; 197.8541 49390; 198.05384 79911; 198.18937 1650611; 198.1999 187533; 198.3902 10590; 198.55137 27376525; 199.0556 20305; 199.17424 61715; 199.28381 518472; 199.44634 181767; 199.49471 29498; 199.78562 459395; 199.91905 14902; 200.15714 60287; 200.27662 83333; 200.38349 21669; 200.5724 65599; 201.03957 7314; 201.04789 9215; 201.1714 7861592; 201.40868 28482058; 201.41776 17222; 201.75859 3024255; 201.84893 254786; 202.34654 20354; 202.50174 74453; 202.56497 18973236; 202.6082 1631889; 202.71088 56084; 202.84435 3104; 203.30072 38856; 203.37037 722882; 203.62843 3457132; 203.7378 46342; 203.79573 1603301; 203.82842 67887; 203.90409 73766; 204.08061 43749; 204.16991 1887989; 204.3264 46582; 205.26949 35854; 205.31071 4535286; 205.86234 2056172; 205.88387 490890; 205.9204 10021; 205.98114 1711190; 206.75552 32107; 206.81436 95009; 206.89376 5721; 206.92624 17299; 207.11805 586993; 207.33335 2120318; 207.66194 2318; 207.76026 44696; 207.85642 187986; 208.06581 14044; 208.10109 17580; 208.40652 16716; 208.62434 3296676; 208.72922 65646; 208.75776 8643; 208.99135 1228682; 209.09397 1717432; 209.20555 849311; 209.36617 4192202; 209.42193 2940406; 209.56761 18158868; 209.71677 8349; 209.72722 1949104; 209.81089 21674; 210.19496 5905; 210.25201 68721; 210.36246 35750; 210.61541 71155; 210.65447 23404; 210.95143 27947; 211.05942 107345; 211.09435 8514188; 211.15867 10502946; 211.17904 39513; 211.21434 2072777; 211.24194 34868; 211.3016 1695697; 211.55887 1175910; 211.61218 75770; 211.84948 21234; 212.16725 21501; 212.86183 26614; 213.18842 28844; 213.44035 123078; 213.44809 1347812; 213.97665 42202; 214.03842 2648; 214.15382 677526; 214.37977 1290; 214.62011 122987; 214.62029 3740530; 215.09958 18132; 215.35685 951222; 215.42209 1266727; 215.80224 9826654; 215.804 888; 216.04901 17015; 216.63385 996340; 216.79164 5102071; 216.95473 922986; 216.99661 64864; 217.01465 5627; 217.32626 21085; 217.45068 19066; 217.48958 33273; 217.51482 8847792; 217.51617 191554; 218.07443 529545; 218.5104 1358585; 218.55332 18216; 218.98562 6931; 219.22634 10946; 219.37733 873655; 219.4134 1890682; 219.41633 2437263; 219.50642 3742; 220.08884 612988; 220.21827 7083496; 220.26774 17355; 220.40093 4142276; 220.59592 154832; 220.7278 2203; 221.21385 1172298; 221.30823 78599; 221.61096 7561965; 222.02374 3737753; 222.20955 431640; 222.34042 4513481; 222.43168 1467334; 222.4428 48496; 222.85236 190682; 223.69179 79207; 223.75635 59278; 223.81127 75239; 224.19168 29791; 224.44882 42416; 224.66889 26986; 224.66918 23024; 224.8861 1042620; 224.90503 11670; 225.04529 1270502; 225.04956 24041; 225.18798 1244; 225.19724 217243; 225.38663 1673972; 225.6056 52192; 225.69917 4853; 225.92271 9598776; 225.96539 1266; 226.00842 8719; 226.25318 7952232; 226.30677 4808388; 226.53681 9566; 226.79197 21866; 226.87032 2396561; 226.92678 6393; 226.96478 76648; 227.24155 17190; 227.25578 4010084; 227.27109 1480731; 227.315 43232; 227.42833 99636; 227.59878 22870; 227.63304 1183612; 227.7148 1156358; 227.84897 47598; 227.87812 6433; 227.99901 28406; 228.19591 2331039; 228.25698 29895; 228.34105 9822857; 228.37278 7025; 228.49003 15105; 228.66506 36195; 228.78151 26439; 229.03251 27311; 229.03852 684855; 229.32426 23483; 229.67165 746672; 229.69442 8640331; 229.82368 4762; 230.31774 64191; 230.33719 276; 230.37245 52608; 230.8659 786073; 230.95117 561333; 231.44566 20293; 231.67773 48475; 231.8403 25789; 231.86093 61611; 232.26048 956682; 232.26482 45767; 232.41774 1753906; 232.70538 1256573; 233.01988 6230; 233.22054 4457728; 233.41048 4709976; 233.48546 4854510; 234.08984 1061158; 234.29886 6788290; 234.3831 3949438; 234.50638 32707; 234.54322 28982; 234.91582 34985; 235.48395 37481; 235.56557 474250; 235.63007 783003; 235.6883 3472379; 235.68967 9895072; 235.89577 89074; 236.12452 1242665; 236.23406 74813; 236.30188 3793; 236.43356 1047486; 236.52341 6655022; 236.63206 1808222; 236.66628 9143; 236.67986 19540218; 236.7396 5791; 236.84085 48034; 236.91283 116283; 236.98389 103681; 237.09033 70402; 237.14001 4975; 237.86666 924807; 238.75175 284163; 239.12999 8271079; 239.14178 9062; 239.28964 10840; 239.38608 33471; 239.42064 4260343; 239.53546 5753286; 239.62673 12052; 239.63823 8396; 239.84301 6369942; 240.08818 4008499; 240.34642 3403; 240.41967 24643; 240.51839 28768; 240.66399 1497296; 240.98812 27840; 241.09303 13731938; 241.18061 56323; 241.44818 1350824; 241.59526 4266915; 241.70821 1176089; 241.88756 73430; 241.90391 68941; 242.20475 7533963; 242.35164 4633873; 242.65645 4395288; 243.092 51158; 243.1774 27139492; 243.26585 3818942; 243.44077 8192583; 243.69379 3449; 243.81839 14003; 243.85031 26741; 243.95904 21927; 243.97356 444780; 243.99288 6849620; 244.129 9211765; 244.15751 142926; 244.24295 183962; 244.54293 70791; 245.40327 21491839; 245.45903 6033588; 245.50048 1307514; 245.7679 7069542; 246.21543 54374; 246.38765 6103187; 246.43708 58784; 246.5416 1826049; 246.87525 976; 246.98073 43134; 247.08996 25441; 247.64147 3380402; 247.81546 54226; 247.88239 6578272; 247.95438 16601; 248.07782 9548; 248.0791 3625240; 248.11418 51212; 248.24244 7172; 248.41645 2847842; 248.7941 2848799; 249.32883 19099; 249.47332 1445833; 249.52295 152379; 249.62222 8350; 249.72354 8783518; 249.76445 33080; 250.19609 73259; 250.3414 24637; 250.40171 4561502; 251.1479 39429; 251.37218 26579; 251.50311 436508; 251.60922 29866599; 251.64597 21856; 251.68837 1287934; 251.87685 49987; 252.06922 2769187; 252.19135 7351776; 252.65048 62062; 252.79113 4791213; 252.83429 18712; 252.94765 913452; 253.10892 530975; 253.17471 1734751; 253.29859 867272; 253.33487 3037624; 253.36536 5430026; 253.4951 2339; 253.49629 36587; 253.51249 25318; 253.52343 7950119; 253.98618 77339; 254.28284 49539; 254.44404 9731623; 254.57153 183649; 254.81234 2854; 254.87342 6403463; 254.94964 27728841; 255.06183 76047; 255.41309 36869; 255.46821 1714385; 255.65528 79594; 255.66859 50588; 255.73273 6924; 255.92222 347980; 255.97752 1985223; 256.09411 7061272; 256.33815 18245; 256.41915 950813; 256.53237 27308; 257.27967 41288; 257.38838 28379; 257.7846 1161564; 257.84424 1429544; 258.31146 9805740; 258.54998 1170007; 258.75497 398498; 258.82733 40682; 258.93661 5616426; 258.95378 6068; 259.26937 704991; 259.27239 5058; 259.3686 199090; 259.42901 1028; 259.70002 40847; 259.81095 43052; 259.81726 8938023; 259.94512 143432; 260.22256 39738; 260.29129 115; 260.29581 42215; 260.44674 1474933; 260.70281 4875451; 260.96731 6494; 260.97574 23972; 261.06578 859975; 261.58525 64388; 261.86701 29087; 262.51227 84834; 263.04301 945; 263.09455 1858115; 263.2143 2087543; 263.32823 9757663; 263.34855 14163514; 263.45188 1520; 263.55154 233050; 263.64557 82728; 264.14049 31864; 264.41041 32329; 264.61569 54371; 265.0595 9821; 265.0856 62989; 265.60192 63831; 265.65005 3788466; 265.68105 628667; 265.73156 1698534; 265.90841 9093417; 266.08942 2426; 266.32317 442542; 266.47856 166574; 266.65076 622025; 267.00948 601541; 267.21174 85872; 267.25696 14280; 267.29951 33655; 267.39469 21091; 267.414 45901; 267.735 35012; 267.81666 34302; 267.86323 1416890; 268.05038 6938728; 268.24263 25528; 268.63559 490213; 268.75836 4210831; 268.89202 22514428; 269.02762 18275; 269.16718 924733; 269.51846 68727; 269.7773 21670; 269.78521 583981; 269.88958 15229; 270.29277 17097613; 270.76223 204; 271.01896 8542008; 271.10066 177280; 271.19665 939032; 271.25659 1921960; 271.2914 652006; 271.38389 9587353; 271.40299 1535366; 271.86544 16791; 272.03426 3098960; 272.11829 66679; 272.13197 7023; 272.26005 5691778; 272.39953 50992; 272.44815 28858; 272.54103 57276; 272.62359 1038859; 272.80752 70285; 273.03262 107804; 273.41426 4457; 273.48598 78141; 273.61504 6581559; 273.68599 76244; 274.04875 26312; 274.40755 89839; 274.46082 59556; 274.48221 416514; 274.70535 13820; 274.76235 69236; 274.80262 2055; 274.80973 1771595; 275.09638 4151655; 275.3134 118; 275.46374 313815; 275.54285 54787; 275.55291 72310; 275.64804 57760; 276.36196 2645427; 276.41859 58636; 276.57292 5178; 276.64555 25733; 276.64598 13083; 276.67686 28549197; 276.73723 25767787; 276.89794 167464; 277.08744 68619; 277.09803 158942; 277.11813 1166021; 277.32815 24772; 277.36501 25783; 277.81657 31836; 277.98112 53152; 278.01427 125143; 278.06551 1954529; 278.25804 21659; 278.32102 784879; 278.48038 30113; 278.52531 1104863; 278.53371 134827; 278.64351 171657; 278.82961 20150; 278.86035 4570444; 278.89077 4835325; 278.95689 40283; 279.6398 33793; 280.0824 990968; 280.50875 596027; 280.64128 40620; 281.19113 1300221; 281.34782 23426; 281.65705 17381; 282.08593 6767951; 282.13901 7849485; 282.25702 24311; 282.47256 21571630; 283.0328 25118; 283.04434 1957758; 283.22201 1340479; 283.22519 1001; 283.44447 22065; 283.68302 457021; 283.82509 15477844; 284.39573 529; 284.6293 1098; 284.70137 8633703; 284.90412 8424; 285.50812 153916; 285.7281 29393; 285.82863 6206; 285.9175 878778; 286.389 174866; 286.45272 24782; 286.66624 6118015; 286.69865 48072; 286.82725 7108526; 286.89864 77030; 287.33581 1723; 287.35332 1478297; 287.4949 1217307; 287.54374 4411713; 287.59933 30540; 287.74545 1317430; 287.80576 29958; 287.87975 40798; 288.24989 16628; 288.29815 22865319; 288.30891 7761029; 288.35276 62194; 288.47822 429403; 288.78015 111; 288.92689 12458; 288.95118 2709363; 288.99838 1202862; 289.00468 720392; 289.30089 41970; 289.68988 60934; 289.97467 3364006; 290.00544 688003; 290.02383 66724; 290.02946 17509; 290.25696 1874406; 290.40006 9774; 290.42051 19406; 290.58096 41259; 290.67343 22465; 291.09654 1963390; 291.26686 13866; 291.27791 9995; 291.32542 893; 291.33322 58641; 291.43963 6950720; 291.46544 38320; 291.60336 14130; 291.99581 447110; 292.14346 46409; 292.24037 9053; 292.26274 4480659; 292.53744 3456511; 292.83053 61001; 292.96109 49606; 293.07116 9353; 293.33053 1716; 293.6001 56287; 293.71699 14923351; 293.82953 19597; 293.95966 72432; 294.33181 812749; 294.39016 28462; 294.40607 3111390; 294.46042 24863; 294.67546 1388658; 294.6768 1199332; 294.68685 27775; 294.76413 58406; 294.95669 2829016; 295.08783 7112671; 295.16433 4465121; 295.20843 152043; 295.2507 221141; 295.2828 147500; 295.94565 4010808; 296.08078 3465600; 296.50445 942006; 296.52341 6392; 296.55202 8815313; 296.86791 15544; 296.92524 71232; 297.06024 540989; 297.13887 66298; 297.15184 2579148; 297.27533 59091; 297.38229 61280; 297.4827 43603; 297.54535 145054; 297.84591 12367760; 297.92572 59379; 297.96996 6390979; 298.00909 46387; 298.41529 21750; 298.46345 3794; 298.68538 271; 298.84872 25066; 299.09329 3283; 299.24058 116500; 299.83997 87372; 300.27805 1202975; 300.33281 30718; 300.36836 2776623; 301.02113 4662; 301.24733 73161; 301.41356 1203387; 301.49467 34868; 301.53741 9652; 301.64542 22802; 301.77097 8942; 301.80248 396567; 301.81061 4359; 301.8824 66811; 302.13677 1464686; 302.69861 1458362; 302.70376 3099; 303.11779 27322; 303.29815 6448; 303.33058 35974; 303.50787 44634; 303.73831 5249682; 303.82189 51491; 303.91583 25648; 304.03265 193177; 304.15641 4847875; 304.31256 50488; 304.35258 3560013; 304.45079 1555857; 304.84669 61952; 305.16799 54591; 305.2083 23663; 305.24777 50659; 305.34798 798399; 305.59656 15654; 305.64725 52766; 305.99908 48803; 306.07602 11760033; 306.10733 4017328; 306.24149 4252570; 306.26912 13099573; 306.31439 19271; 306.39159 2721594; 306.53533 1006409; 306.69581 27644; 306.79807 6105; 307.15925 166464; 307.17783 1304852; 307.92305 46648; 308.02612 65302; 308.1386 1165033; 308.32333 718378; 308.47541 2818; 308.52208 6998; 308.61699 48351; 308.67592 9199116; 308.7323 1134374; 309.24202 29482; 309.57526 3464295; 309.57966 24014; 309.6205 1273210; 309.68459 2057429; 309.69529 69278; 309.75198 11984; 310.00471 1999; 310.08897 47549; 310.15525 51588; 310.36518 17341916; 310.99994 135036; 311.44945 6070311; 311.58249 8160; 311.71303 7905479; 312.076 16555; 312.74215 9335; 312.89334 1006665; 313.24863 43701; 313.45816 870682; 313.83707 562; 314.66074 93114; 314.67115 5070292; 314.90552 59020; 315.04527 22282; 315.0691 1256233; 315.40796 24492; 315.44458 907059; 315.60211 62929; 316.08537 7654267; 316.14128 187499; 316.29431 48280; 316.33486 71892; 316.67805 60638; 316.73438 11361; 316.73648 77797; 317.01319 8720; 317.16459 3788; 317.24325 97719; 317.44504 61275; 317.48285 1447839; 317.51934 1378132; 317.53432 955816; 317.82908 574314; 317.90786 39686; 317.91168 4058329; 317.97832 712610; 318.23926 28971634; 318.71376 56345; 318.80619 44755; 318.87686 122169; 318.91431 27218; 319.13283 169656; 319.23015 3901785; 319.65719 4490267; 319.70556 53867; 319.81271 22228; 319.88481 696840; 319.93991 1926348; 319.97077 103511; 320.09382 35633; 320.31797 1364596; 320.33063 1793125; 321.00439 2185139; 321.4314 3585; 321.59356 55522; 321.66042 7814109; 321.82552 2630205; 321.86049 27500928; 321.90099 736148; 321.95791 56605; 322.06668 78714; 322.75631 1551936; 323.27155 1095861; 323.38413 38374; 323.50797 3420632; 323.56243 2834551; 323.57743 95640; 323.92734 25127; 324.00232 5989; 324.08915 6918; 324.20049 21482; 324.28493 69511; 324.38007 1536707; 324.70386 3808727; 324.82947 66427; 324.91348 1375007; 325.0057 71090; 325.04517 128359; 325.15023 73469; 325.16589 107362; 325.67456 2587580; 325.77938 477720; 326.75302 16927; 326.79632 656098; 326.96062 2678949; 327.01115 1527884; 327.04253 1814742; 327.07439 4759; 327.49195 6029; 327.52996 40690; 327.73351 42547; 328.38472 1483619; 328.49958 44191; 328.52335 66479; 328.55694 8030; 328.66824 2141; 328.6699 149987; 328.73672 20418374; 329.09767 993239; 329.21177 496; 329.45193 3558; 329.75343 4059971; 330.05813 26014; 330.10031 5248; 330.17357 14093; 330.38453 60535; 330.5095 5517; 330.71551 3227626; 330.97398 1790573; 331.30806 4568372; 331.52793 42072; 331.77742 1410; 331.78553 1597114; 331.78598 981011; 332.01163 76691; 332.07461 9925; 332.12664 746454; 332.555 29086; 332.56717 903441; 332.72167 24176; 332.84021 602937; 333.00956 8375; 333.14134 10878; 333.1663 185488; 333.18793 943338; 333.19283 45560; 333.2361 4134; 333.66568 9587; 333.74017 21619876; 334.58637 2782158; 334.66242 148016; 334.70242 154199; 334.75637 58990; 334.96097 21717; 335.20231 5313207; 335.45018 4454366; 335.93398 71100; 336.12752 43348; 336.1646 27017; 336.23642 913682; 336.50557 64117; 337.10954 5625333; 337.11305 137223; 337.17934 186410; 337.41692 2936728; 337.65227 3916; 337.6767 79136; 338.06122 59282; 338.66997 8341537; 338.67248 22268; 339.38545 27331; 339.69204 8039114; 339.75644 69580; 339.91387 20846; 340.34739 23229422; 340.37093 72428; 340.62768 1122159; 340.88696 120858; 340.91784 67186; 340.93273 8818; 341.43861 51115; 341.48455 115362; 341.78105 908916; 342.0766 1627550; 342.0958 18876528; 342.35454 65535; 342.7071 64188; 342.78063 54542; 342.92956 3462269; 342.98396 3876864; 343.66103 9287440; 343.79367 8313409; 343.79788 19334; 343.86139 1390837; 344.00595 4749033; 344.07272 1848287; 344.44471 76473; 344.6378 113689; 344.97114 44655; 345.14203 72721; 345.23754 6368307; 345.42958 59404; 346.01902 17469279; 346.0304 188472; 346.52966 31021; 346.60208 149849; 346.69986 4720; 346.85992 962129; 346.881 9265781; 346.90228 8956; 347.26622 1184937; 347.36538 4007699; 347.52314 1148267; 347.62624 22667609; 347.74968 7101; 348.03358 79859; 348.05382 7437; 348.15464 117575; 348.20049 9572; 348.25255 32764; 348.33078 48459; 348.36911 640605; 348.40129 67245; 349.50015 3142539; 349.84864 955850; 350.02166 77284; 350.13577 3378; 350.34536 26685; 350.78116 4519153; 350.78279 6125966; 350.80448 28841; 351.27052 4920692; 351.49449 592937; 351.95481 3211305; 352.15434 26260; 352.26014 73646; 352.53201 5479531; 352.94237 4527460; 353.06566 523980; 353.22472 20946; 353.27066 42736; 353.39566 8409904; 353.50854 90936; 353.53593 5896; 353.81543 4421583; 353.85682 64903; 353.87426 4655367; 353.99695 899270; 354.15231 1196738; 354.4285 253207; 354.69871 38452; 354.91241 6526; 355.02581 42622; 355.29311 3683; 355.39623 770740; 355.45616 1301246; 355.5098 48228; 355.65785 2251335; 355.82344 61596; 355.83141 9597734; 355.92173 4950487; 356.24743 6950; 356.28797 620647; 356.3412 4265968; 356.35781 2226829; 356.61191 4496; 356.83022 21098; 356.87744 4324; 356.93303 1352; 357.33066 66000; 357.41368 6132; 357.46906 54103; 357.49636 1051; 357.51313 185608; 357.63699 67197; 357.75281 5696; 358.0777 37913; 358.19758 973; 358.26036 4309; 358.36193 69748; 358.46832 10311; 358.68005 148575; 358.83664 79626; 358.83742 932800; 359.06213 661129; 359.2128 4272501; 359.43707 9039; 359.57927 20870; 359.94547 199593; 359.97246 992256; 359.99522 2637; 360.04677 7479; 360.09345 5812811; 360.46863 49433; 360.72141 55132; 360.83551 2429941; 360.96907 29956; 361.17338 39529; 361.21631 24536; 361.27787 4398525; 361.42661 2965357; 361.59263 49765; 361.9467 7508; 362.02513 1892492; 362.20671 49688; 362.21588 1350982; 362.82708 25807042; 362.87197 3986; 363.16443 3901177; 363.28452 25598; 363.60297 966445; 363.71088 17685; 363.78106 307295; 363.95076 8206576; 363.95926 6412; 364.04423 55222; 364.14728 5003; 364.25419 4846; 364.40849 60289; 364.5409 244871; 364.74476 3805047; 364.95572 2614; 365.12677 28295; 365.21508 10857897; 365.27245 25840; 365.37698 64775; 365.42763 7979; 365.44499 1442185; 365.56172 4308261; 365.56813 20121773; 365.85097 81975; 366.06473 34704; 366.55922 2479; 366.57549 32009; 366.65177 35915; 367.01574 608897; 367.17813 29643; 367.30856 6882587; 367.52241 135477; 367.63962 15267; 367.77667 2749; 367.77879 489266; 367.9051 51028; 367.94689 1437389; 368.48185 204608; 368.79376 143716; 368.81679 80228; 369.17718 1829286; 369.42768 4511448; 369.64875 7498; 369.69182 10193947; 370.07976 2791; 370.08447 51397; 370.35893 28643; 370.54972 10608; 370.65662 665279; 370.72105 38504; 370.89948 5224891; 371.00517 1077298; 371.25793 8588; 371.89216 27072; 371.90047 76429; 372.7028 23235; 372.75735 11141; 373.04535 3880877; 373.17584 21224; 373.1887 1079; 373.20463 242060; 373.50016 123719; 373.55996 62995; 373.58492 1715; 373.80449 21001; 374.15627 1428546; 374.18975 5010; 374.54799 7957175; 374.66156 34981; 374.68295 7373; 374.7064 14738; 374.71887 4773; 375.12402 27062; 375.17158 5540; 375.32452 929625; 375.76722 3004260; 375.84924 7892987; 375.89851 69890; 376.0142 25937; 376.07752 8750418; 376.27986 2104897; 376.29714 290340; 376.49205 1342; 376.69657 1498075; 377.01909 38950; 377.15262 29641746; 377.36787 611736; 377.42809 1721; 377.59546 6529443; 377.99568 535301; 378.0286 21009; 378.20144 28798050; 378.3343 4448636; 378.53202 175330; 378.56896 5819281; 378.74009 199995; 379.33402 44130; 379.44537 921; 379.67096 7998733; 379.88361 24931; 379.97345 482153; 380.14775 71843; 380.24765 732276; 380.34416 63728; 380.38418 55220; 380.57253 70081; 380.6335 3106877; 380.78972 60363; 381.01221 2230999; 381.11897 1081845; 381.22707 41; 381.25278 58168; 381.29151 249223; 381.39332 21857; 381.66189 103541; 381.81295 5619; 382.24177 1150478; 382.27701 28724; 382.32157 57726; 382.38229 3455768; 382.66345 29055; 382.81044 799460; 382.8376 21752; 382.94571 41636; 382.98892 424715; 383.09934 8775; 383.18476 783031; 383.33757 56414; 383.53107 3126716; 383.8101 1608947; 383.82132 65986; 383.82299 3671382; 383.88178 75466; 384.05338 14367; 384.55324 4001; 384.78883 1839941; 384.99198 24570; 385.08376 50817; 385.17317 421050; 385.31795 26165; 385.33906 3383; 385.49921 8184922; 385.94464 8878810; 386.08777 2318; 386.2525 1111904; 386.5146 247366; 386.95113 10301; 386.97775 7394753; 387.00969 209251; 387.08704 1006675; 387.43938 4931; 387.44345 49549; 387.5416 7485; 387.91887 100103; 387.99287 66724; 388.0302 7371064; 388.12659 6929990; 388.35861 1705; 388.5506 737930; 388.55336 4125931; 388.58204 36399; 388.93 3762484; 389.00775 11184; 389.18486 34301; 389.22886 7502387; 389.36137 76317; 389.43381 52533; 389.56588 744411; 389.6454 39417; 389.67555 898510; 390.23351 28523071; 390.67126 25780; 391.03304 4483903; 391.32064 19234; 391.36507 42784; 391.46523 824839; 391.5929 8835882; 391.80633 51176; 392.25517 9078818; 392.47085 29054; 392.7036 136343; 392.71456 28623185; 392.74803 197007; 392.96884 1286932; 393.17668 2874; 393.23041 66231; 393.24827 14541; 393.58812 3961; 393.73084 25877; 393.8168 59952; 393.90385 69321; 393.90693 6627; 393.96799 9593; 394.22986 136744; 394.2676 57868; 394.68916 49957; 394.86264 70455; 395.46462 14423; 395.59607 1395856; 395.61709 45831; 395.91305 12629; 396.17578 69580; 396.51233 1610416; 396.73697 77232; 396.95096 1897170; 397.04134 29072; 397.12996 18784; 397.42381 1917647; 397.4273 3858581; 397.50758 64390; 398.18448 168006; 398.18845 10468774; 398.24837 32311; 399.21727 26850; 399.24194 5437495; 399.82094 73290; 399.84539 108507; 399.9229 28294; 399.97585 90348; 400.22931 1237019; 400.26139 3112; 400.28692 889177; 400.2905 1779710; 400.44445 113228; 401.56511 8961; 401.92351 664155; 402.0894 1620594; 402.17759 285563; 402.23586 124489; 402.7176 3655; 402.74104 75818; 402.80406 4830815; 403.04921 851652; 403.26863 25038; 403.37452 6666494; 403.64626 1032144; 403.6802 1361277; 403.82408 89676; 404.06176 1165044; 404.21019 22072; 404.25836 3115266; 404.28846 3640338; 404.62087 19705; 404.72565 22304481; 404.90954 1671827; 405.02804 29213; 405.36109 748583; 405.55781 1446141; 405.85867 4958598; 406.0416 78889; 406.13153 31345; 406.25778 64007; 406.95749 54394; 407.02893 1364459; 407.60656 8872220; 407.92248 9833; 408.01498 1264310; 408.22223 4204972; 408.22394 4448; 408.38691 23251941; 408.58982 76240; 408.63213 26945; 408.87971 74826; 408.90246 13290; 408.99727 2973730; 409.05004 17391958; 409.1176 6116516; 409.48721 9297756; 409.69945 3020328; 410.01041 28381; 410.54184 1355009; 410.57924 41546; 410.78478 8403515; 410.78734 23817; 410.97281 67118; 411.04806 47515; 411.33497 12715; 411.39281 1261574; 411.51803 9488; 411.54848 63253; 411.67249 34556; 411.75384 32957; 411.75651 3253312; 411.84309 6555; 411.92486 825798; 412.41865 4189985; 412.61182 6647094; 412.70879 3615; 412.85055 3742; 412.87865 53332; 412.96705 70466; 413.11536 9276; 413.13878 26043; 413.44291 3068; 413.62805 67577; 413.66121 150690; 413.74966 12514; 413.90683 66941; 413.91082 65398; 413.95346 953886; 414.11768 1017724; 414.27204 876193; 414.29749 55882; 414.41332 88500; 414.43483 38591; 414.59781 28156; 414.66321 1325; 414.67895 59316; 414.70916 77633; 415.45382 23316; 415.60839 1728344; 415.66818 25621; 416.16135 10422044; 416.44158 124830; 416.46873 1458140; 416.49734 15437; 416.53204 9640; 417.17539 190650; 417.36969 625033; 417.38825 6379162; 417.62664 38861; 417.66661 43655; 418.1132 46263; 418.14722 66815; 418.16771 16192; 418.48803 37866; 418.51011 29543; 418.52479 3371; 418.55448 6952; 418.69628 78985; 418.85063 4193465; 418.97846 2311; 419.08423 672171; 419.10029 32304; 419.33954 29871; 419.36006 613963; 419.50604 1181; 419.50901 7144556; 419.58092 2367590; 419.68629 783258; 419.74765 661657; 419.94335 4232; 420.08369 1502609; 420.35235 1461906; 420.35589 71643; 420.52077 469883; 420.7572 36762; 421.18228 7531036; 421.37865 1766087; 421.62253 9945352; 421.655 35397; 421.84394 10157; 422.10699 12226; 422.35133 9949; 422.8287 5986499; 423.08118 8414572; 423.08907 70762; 423.20132 504067; 423.23692 910465; 423.51616 29405; 423.63077 60967; 423.80903 563895; 423.82485 3711032; 423.84921 3739; 424.01823 46596; 424.10337 756354; 424.14391 1400873; 424.61548 348698; 424.75945 158496; 424.90174 1203068; 424.95645 1215334; 425.10136 1603979; 425.24333 7525908; 425.33399 24531; 425.43521 33035; 425.82039 31354; 425.87577 17052; 426.23834 56040; 426.25375 918395; 426.37107 3388624; 426.43956 35246; 426.44209 3541127; 426.53098 1855275; 426.57237 18232; 426.78793 38679; 426.93005 1746251; 427.02575 35580; 427.03732 233657; 427.07528 11687993; 427.38761 59670; 427.45076 18923; 427.76362 178; 428.15427 87518; 428.1549 12329; 428.22403 376433; 428.22514 204658; 428.32612 37945; 428.45706 113303; 428.46381 2482; 428.49914 78241; 428.55684 1353962; 428.6309 3520100; 429.28511 2855908; 429.37318 23735; 429.50413 6019869; 429.65749 8158; 429.854 1242421; 429.99709 1021758; 430.05222 9524; 430.28473 1530209; 430.52385 64173; 430.63127 49033; 430.69184 48426; 430.77795 56565; 430.93715 189924; 431.12794 100417; 431.27173 6916789; 431.28318 1662; 431.39904 3078; 431.66945 3782813; 431.90203 24307; 431.96377 20710; 431.98138 5983; 432.10011 7648; 432.64738 81564; 432.73988 23860; 433.06496 62335; 433.25453 6686628; 433.28262 32511; 433.84625 8922481; 433.85004 1817792; 433.86993 1530283; 433.90489 5198; 433.93325 1687484; 434.04983 3487979; 434.10818 57616; 434.19397 22435; 434.20511 28826; 434.46025 8057; 434.61482 642046; 434.94726 11922; 435.08859 38988; 435.18165 22975; 435.19899 29956; 435.34432 560570; 435.44381 1369985; 435.47528 2297885; 435.57114 651161; 436.16847 4878678; 436.55076 66047; 437.14103 31372; 437.21229 95042; 437.22677 20070651; 437.2799 6834; 437.35176 6138; 437.59391 1393269; 437.64264 1652691; 437.95433 2686; 438.35685 8701413; 438.52 73486; 438.60758 53299; 438.79949 27733; 439.02401 97902; 439.11768 48670; 439.12593 3366378; 439.23054 1729456; 439.34552 1336924; 439.78556 463; 440.2133 25503; 440.5175 55324; 440.54479 2136863; 440.6639 469576; 440.68938 1960496; 440.70966 2919; 440.75039 10014; 440.9129 18040675; 440.92189 1464146; 441.13605 2931649; 441.25272 16634; 441.37775 576755; 441.57424 57262; 441.63048 1918748; 441.64468 53115; 441.92412 61110; 442.1698 4522649; 442.17825 27466595; 442.33123 75653; 442.68217 1583737; 442.76456 42594; 442.85893 164149; 443.10521 53646; 443.21074 83152; 443.21684 6529465; 443.31289 25018; 443.35194 406101; 443.91309 68328; 444.139 7090118; 444.25241 1315715; 444.28664 4917; 444.32271 52646; 444.34715 27777315; 444.62339 1643504; 444.65985 3924979; 444.71361 1272771; 444.77569 5949; 444.86593 22135; 444.86746 6210851; 444.87601 27149; 445.09639 7469; 445.14881 18924; 445.16741 32638; 445.56783 4233003; 445.616 63929; 445.71409 71700; 445.99812 3641; 446.00049 4331839; 446.11922 78263; 446.22981 5266656; 446.30803 823083; 446.31185 8280985; 446.34609 11716; 446.46592 17681; 446.57311 8132; 446.67353 2047228; 447.10933 796; 447.12031 74371; 447.15561 21405; 447.40186 58079; 447.62057 26977; 447.69465 4487165; 448.2448 7205; 448.73555 7797716; 448.73646 15111; 448.75815 24748; 449.05166 18887; 449.11758 9381; 449.12291 7285640; 449.85868 74481; 450.17071 7790; 450.18813 4839642; 450.94149 499; 450.95337 1082271; 451.17337 70608; 451.17519 1779547; 451.23769 10076; 451.64568 5459; 452.12711 36055; 452.22813 29853; 452.3193 7128358; 452.65794 118848; 452.74076 7182; 453.20355 1856701; 453.79461 64594; 453.83208 1582; 453.84261 4085003; 454.13045 108412; 454.19157 55773; 454.44435 1543111; 454.55744 56900; 454.7163 4846438; 454.72073 21129; 454.92697 1975; 454.96737 5671; 455.30161 72; 455.39524 168448; 455.45582 851565; 455.50524 45923; 455.74333 2526126; 455.75132 108790; 456.22632 33489; 456.43691 40598; 456.48973 8648243; 456.58956 46854; 456.71194 79302; 456.82984 1963458; 456.86506 46724; 457.16548 3720245; 457.29965 23956; 457.87457 1479993; 458.00957 4244; 458.3803 1647007; 458.54186 62834; 458.94679 79753; 458.97617 1965; 459.06491 3640394; 459.74297 22389; 460.48209 2504454; 460.74128 3010474; 460.89293 3833146; 461.05559 1659045; 461.22158 849231; 461.22958 52837; 461.36686 26828; 461.81257 1413416; 462.03237 2321; 462.23817 2822; 462.37287 608771; 462.50743 101028; 462.57497 1190; 462.81995 9425478; 462.91473 77377; 463.04576 17308; 463.07558 172142; 463.21674 857736; 463.54309 17473; 463.63557 29183; 463.77357 16081; 463.82012 4652898; 464.10495 72853; 464.18933 3515038; 464.28484 114625; 464.34095 3729322; 464.49444 3131; 464.65098 3667469; 464.89205 4007265; 464.95208 5855866; 464.97886 17863; 465.3107 1490519; 465.33037 4697080; 465.49676 9351989; 465.81486 30866; 466.03296 4156574; 466.29423 3086; 466.32134 1924; 466.35341 1681946; 466.38834 248811; 466.8035 32114; 467.08419 1581098; 467.17859 2223; 467.30018 13888545; 467.30174 15620377; 467.5337 2051; 467.5355 23166; 467.7952 6475736; 467.88255 24954; 467.97078 13725; 468.04956 38953; 468.22708 136650; 468.25003 29902; 468.8216 1210277; 468.91794 435864; 469.10556 71980; 469.11338 62674; 469.26036 24256; 469.38396 884609; 469.42902 32247; 469.50253 7626432; 469.58753 2216617; 469.58877 7427552; 469.76991 20178; 470.02686 9518; 470.60593 40032; 470.78502 34911; 470.78548 4700814; 470.82364 67344; 471.02417 24106; 471.03401 5528586; 471.05602 9081577; 471.0587 4567; 471.16656 44967; 471.50849 23679; 471.7187 24201; 471.72861 27495; 471.78772 3514331; 471.85092 42657; 471.89965 22882; 471.96071 1293255; 472.07402 40127; 472.16251 5154; 472.28488 985533; 472.66275 18321; 472.74496 48762; 472.77015 4014472; 473.51713 1633782; 473.69133 74236; 473.85939 98034; 474.07261 3559160; 474.21701 25149; 474.3667 343723; 474.56612 1693214; 474.60361 270395; 474.60759 247467; 475.00979 48227; 475.06157 22707; 475.17329 2300906; 475.38471 15541; 475.40427 9895285; 475.49225 101491; 475.71416 28422; 475.82132 5526; 476.27072 94187; 476.56593 3344391; 476.70721 1410202; 477.0338 4744450; 477.16779 25274; 477.36979 1113595; 478.01854 45085; 478.21345 2136850; 478.34176 3986; 478.53757 8936154; 478.67154 1338470; 479.27316 98309; 479.61214 98265; 479.96238 53092; 480.68179 76152; 480.70224 1440467; 480.78715 76318; 480.97829 1633014; 481.12313 60507; 481.2131 3137; 481.47523 4075; 481.65696 1666150; 481.80758 46086; 481.83059 61372; 482.17936 79498; 482.23252 7896220; 482.23676 79773; 482.48823 29607; 482.56995 508667; 482.68902 9488870; 482.69688 23656; 482.91351 38585; 483.09031 77454; 483.50595 8659949; 483.93663 21528; 483.94354 38511; 484.12787 3556; 484.23116 47263; 484.28333 66384; 484.63909 33326; 484.7102 135458; 484.94228 159171; 485.08935 20114; 485.28887 626948; 485.33644 6868; 485.5459 3666; 485.64399 996; 485.808 13876; 486.07477 32473; 486.1115 8539744; 486.20831 25558; 486.38344 4677634; 486.69303 26009; 486.77307 43713; 487.01413 2941028; 487.09782 33986; 487.42537 1683857; 487.4772 102188; 487.54294 4957; 488.12568 56503; 488.26455 1692012; 488.44226 70163; 489.04451 9789751; 489.08373 541758; 489.25007 56490; 489.348 197340; 489.37392 5311110; 489.47009 75316; 489.54792 1505; 489.62835 6159; 489.65412 287617; 490.1872 1422445; 490.27843 46390; 490.50994 1044081; 490.62258 4095918; 490.63916 10444; 490.64954 185850; 490.74324 59584; 490.88243 3568515; 491.11227 1333026; 491.23745 12647; 491.41057 38806; 491.80372 3170675; 492.44166 18695; 492.55438 15180; 492.61641 70613; 492.62295 340725; 492.70021 3282774; 493.02704 4219274; 493.0692 64200; 493.44626 190430; 493.86727 26201; 494.78899 26081; 494.85618 63894; 494.87061 7935; 495.1002 3963270; 495.18867 34061; 495.19885 1273411; 495.6107 7229; 495.70553 31221; 496.53477 20287; 496.81309 40826; 496.85038 4399805; 496.9769 1460121; 496.98648 182928; 497.56246 73847; 498.00237 32369; 498.17192 7499; 498.72 9329; 498.72606 76184; 498.91326 8552; 499.01051 179195; 499.12447 4208483; 499.18974 119788; 499.52808 68166; 499.55231 3891454; 499.91739 52907 +<0, 7>: 0.04663 19316; 0.36599 24141; 0.54225 37099; 0.78134 50329; 0.88867 28754; 1.05072 1986892; 1.12269 6982; 1.13624 10246; 1.49691 6369357; 1.69765 10409; 1.76593 257445; 1.79394 158433; 1.88507 161422; 1.91095 4224; 2.10424 4937406; 2.14313 26307; 2.22964 25152; 2.45018 51393; 2.70167 8565304; 2.77255 24779; 3.06098 53836; 3.24117 5053; 3.4641 4022691; 3.54717 347; 3.8631 25213405; 4.1434 6229; 4.24162 285621; 4.39083 4278; 4.65719 109274; 4.66732 876914; 4.88329 340282; 5.02068 175228; 5.17807 6332; 5.20606 66594; 5.26349 2975889; 5.33137 854014; 5.5881 67509; 5.787 7200; 5.81556 68883; 5.86025 28572; 5.88909 57501; 5.96168 28724; 6.00196 35170; 6.07354 8190; 6.10166 1852919; 6.16872 2114; 6.39172 60902; 6.45974 77994; 6.5562 2174; 6.56211 4208516; 6.614 36060; 7.61825 73887; 7.83169 44028; 7.88401 3077; 8.13347 26443; 8.1593 27268589; 8.31937 15276607; 8.3723 23693459; 8.53697 12188010; 8.5632 112377; 8.58604 924202; 8.84843 25512; 8.99973 129984; 9.05461 4394; 9.29972 6092; 9.31861 4012960; 10.03519 12348; 10.06822 45758; 10.33952 9265226; 10.48463 25262; 10.72246 5693; 10.74143 737853; 10.8845 2223381; 11.24149 417157; 11.31104 2885; 11.31417 35197; 11.53345 676866; 11.77199 21724; 11.93499 2171179; 12.11986 118656; 12.21471 55080; 12.32935 45743; 12.42045 17161; 12.49475 99679; 12.52969 1443384; 12.66787 758270; 12.67285 1717597; 12.68407 25187; 12.75648 33903; 12.83784 26048; 12.91908 224739; 13.33996 78657; 13.41775 8790; 13.52677 42832; 13.56863 450409; 13.63099 24804; 13.73747 37535; 13.85286 8631100; 14.41345 20341; 14.82548 1905; 15.06615 29618; 15.54428 18290; 15.67423 7652; 15.70392 28110; 15.76276 598681; 16.05254 1419605; 16.16547 61249; 16.46364 148343; 16.52266 430; 16.69995 1695620; 16.76688 21274; 16.80617 1248009; 16.85585 7672205; 16.99108 24491; 17.06861 1479; 17.11543 181159; 17.18868 813138; 17.25974 3503; 17.28541 29524; 17.38621 2814; 17.66256 13813; 18.01812 21176; 18.03128 36447; 18.25442 4120; 18.70719 290; 18.92911 145006; 18.95707 9640949; 19.28164 4404858; 19.6522 747; 19.8315 33025; 19.88081 325103; 20.30881 1266381; 20.3945 6843404; 20.49208 865124; 20.76786 4002; 20.94207 1876678; 20.94955 16919; 21.01728 12361; 21.04396 884125; 21.11884 41324; 21.40557 373388; 21.43829 395962; 21.46813 4704346; 21.56849 76452; 21.65883 22029; 21.81262 30727; 21.87823 64052; 21.97294 2927095; 21.99328 42692; 22.10506 930560; 22.20595 785924; 22.51585 830358; 22.61192 20201; 22.629 50616; 22.64891 5480; 22.81915 26873; 22.85225 9805; 23.09954 38440; 23.0998 1990964; 23.3236 2160618; 23.40965 603186; 23.41185 8458228; 23.44807 5458804; 23.56504 47230; 23.73074 27631; 23.73417 64165; 23.79017 29967; 23.91459 3191471; 24.26131 22847; 24.44584 1742860; 24.48908 38904; 24.91546 15146; 25.23892 161152; 25.3344 193970; 25.64978 79591; 25.74635 21658571; 26.06602 22389; 26.20571 46659; 26.31926 90808; 26.42262 1314213; 26.45165 24348; 26.61501 44816; 27.12499 25358; 27.39875 3329425; 27.4876 3391392; 27.79633 584882; 27.84334 17238138; 27.84868 489966; 27.91043 1071; 28.22832 19754; 28.26287 4918558; 28.32147 5043; 28.48574 31855; 28.4872 18757843; 28.71204 19063; 28.71736 28228532; 28.83648 26715148; 28.90069 440185; 28.96944 1537043; 28.99259 1838573; 29.07212 5636870; 29.40691 58632; 29.4802 10727; 29.61807 8753; 29.7796 31246; 29.92345 17465; 30.45295 42955; 30.70376 4508501; 30.9273 28448; 31.5381 2515348; 31.71942 2562149; 31.78479 184350; 31.80246 2336403; 32.11197 23592; 32.2077 26524; 32.44672 33713; 32.45232 100775; 32.94747 25527; 32.97234 88369; 33.80073 3953; 34.23195 21214; 34.48376 818816; 34.54831 517244; 34.55084 78555; 34.65772 33591; 35.00008 3427; 35.14419 71257; 35.19013 2327; 35.40441 1251100; 35.48508 4578; 35.50548 57663; 36.36004 8567695; 36.43928 4157917; 36.78487 1213541; 36.98798 66847; 37.30178 55220; 37.55714 7340758; 37.73463 9629466; 38.23289 15236; 38.4324 253155; 38.45895 2268; 38.48351 5757883; 38.51633 1938317; 38.53449 15355; 38.72576 2129; 38.74111 6089169; 39.19107 36866; 39.30056 535757; 39.30475 1670171; 39.459 929615; 39.49067 649677; 39.64642 2955326; 39.69783 1795076; 39.86469 913; 39.96152 4825618; 40.12866 3755836; 40.45479 14887; 40.53958 29867; 40.56402 60098; 40.6583 7786180; 40.79451 5487; 41.43076 4523361; 41.46615 1016763; 41.52326 65311; 41.55521 16466219; 41.80123 7163886; 41.82575 24792; 42.11942 1989328; 42.53591 2555843; 42.88307 39753; 43.30919 56969; 43.47997 1148052; 43.623 34695; 43.67093 4385417; 44.02267 25393; 44.06085 115737; 44.21572 59318; 44.23889 109187; 44.50845 3441638; 44.5706 1470; 44.71528 751764; 44.76385 242642; 44.79601 3664248; 44.82708 46130; 44.86166 9995; 45.46799 3534863; 45.49366 5560; 45.60769 186575; 46.08411 24113; 46.53678 3765978; 46.6421 67061; 46.69099 125299; 47.02267 4366521; 47.08057 3797; 47.38571 13418; 47.74952 6697; 47.96467 12532; 48.05481 28857288; 48.09503 8098587; 48.45253 3009; 48.92137 192477; 49.34526 3548; 49.35319 1820074; 49.75261 48431; 49.80579 550; 49.86625 101331; 50.34565 5389632; 50.42076 30996; 50.5433 4338687; 50.62917 2855868; 50.85574 141502; 51.19453 25541; 51.3626 9949; 51.38518 3990785; 52.10971 10332152; 52.22257 849527; 52.27803 3004; 52.67783 51421; 52.72199 18984; 53.22434 46904; 53.25592 5163090; 53.26677 2636; 53.95233 9951; 54.15256 1458174; 54.1544 29146; 54.23301 4624003; 54.40796 167086; 54.61108 5825; 54.63673 387567; 54.67441 7084; 54.70321 1572115; 54.75627 42169; 54.92145 47341; 54.92704 77367; 55.12482 168055; 55.23464 51554; 55.6143 270166; 55.95803 1828090; 56.12647 4101; 56.45724 35969; 56.53127 52375; 56.58597 19012; 56.88509 52276; 57.06473 654998; 57.21666 74636; 57.37841 64; 57.47345 3811125; 58.15267 71793; 58.70002 8818; 58.70397 40457; 59.04018 456421; 60.00699 176207; 60.01998 76708; 60.44527 91829; 60.54935 4026; 60.9733 3793819; 61.13872 29464; 61.65093 21200; 62.60267 3450191; 62.7924 54375; 63.52154 979657; 63.67448 459787; 63.96574 30835; 64.38075 55551; 64.38891 50736; 64.82331 6874; 64.94575 1986709; 66.06747 23228; 66.35611 1912295; 66.40862 14729; 66.6271 1172874; 66.63499 1838285; 67.18102 33442; 67.32591 3190520; 67.49007 15920; 68.16134 488; 68.18942 1423116; 68.45628 54952; 68.56736 45236; 68.70783 12868; 69.04674 1610277; 69.08609 554744; 69.64964 27730; 69.79217 1730; 70.14031 8825; 70.54725 149619; 70.6872 41042; 70.74072 11554; 70.76802 20268; 70.82301 1716872; 70.84911 3097169; 70.92782 19880; 71.51468 5665142; 71.52499 36829; 71.71843 4681; 72.05152 1649401; 72.09402 79446; 72.16391 2574773; 72.29781 7220; 72.32713 1366; 72.41449 933300; 72.62177 1822286; 72.68425 197912; 72.87746 1130; 73.05329 5609587; 73.08201 16520; 73.11447 5503; 73.24527 3212566; 73.48617 29498; 73.61804 1535604; 73.82746 1949683; 74.03384 951262; 74.14266 20366450; 74.71561 25897; 75.15131 195791; 75.89266 9074; 75.93543 56304; 76.11834 3752; 76.15057 46222; 76.18296 18468015; 77.26493 60365; 77.28204 390009; 77.37262 28947; 77.86328 654906; 77.9242 21563; 77.99329 2289390; 78.16161 7451595; 78.16673 4982; 78.31794 1136; 78.52516 97699; 78.63274 86380; 79.31735 4102519; 79.35501 707315; 79.51897 130296; 79.93194 1324280; 79.96767 40014; 80.01521 667115; 80.11497 950; 80.33702 8398017; 80.37526 1978563; 80.45168 6689617; 80.53536 17496; 80.62862 38754; 80.86435 22148; 81.01024 8704; 81.28852 43288; 81.33521 7976; 81.38745 13820; 81.40674 28547338; 81.40723 1062610; 81.45487 26512393; 81.46668 3946; 81.94149 166980; 81.97764 1349; 82.06133 2959; 82.11922 1607179; 82.24081 43699; 82.63034 242; 82.76002 22764; 82.91522 621093; 82.97094 6590437; 83.01134 53798; 83.11005 71035; 83.31026 2831; 83.5397 2557831; 83.69639 49429; 84.08169 5817; 84.2513 29131; 84.72065 3845; 84.78612 6861512; 85.50905 23347; 85.687 126684; 85.69489 53314; 85.69512 22106; 85.7994 1941078; 86.2087 423197; 86.241 19808; 86.24671 78089; 86.27927 167725; 86.41488 4635; 86.62255 42515; 86.66027 64555; 86.78982 1784953; 86.97918 6715123; 87.62259 8509925; 87.6621 3824; 88.11352 1819888; 88.22853 7244; 88.23314 29962; 88.43051 96947; 88.57862 22458; 88.66722 42796; 88.67375 49211; 89.10241 2345371; 89.1666 1396000; 89.69478 150816; 89.96747 29777; 90.14351 1638730; 90.28101 488; 90.35873 16200249; 90.42489 1671422; 90.73133 192902; 91.19827 1363; 91.71103 1580450; 91.7821 15970; 91.83954 3462915; 91.84308 1762676; 92.07617 50048; 92.24488 1805204; 92.59835 39751; 92.76631 65271; 92.89838 10115; 92.91713 4845017; 93.27009 8270; 93.47567 5220; 93.77494 26426; 93.78795 29889; 93.80785 2349060; 94.1863 172502; 94.35939 18125; 94.45753 20782781; 94.62001 760388; 94.68064 195060; 94.71377 6019873; 94.95917 20893975; 94.97817 56955; 95.12756 732605; 95.16276 487171; 95.86889 74857; 95.91156 5968; 95.95734 698091; 95.97621 2596495; 95.99453 3119581; 96.13294 1324566; 96.23077 44548; 96.9913 23513; 97.19622 1068769; 97.27285 40309; 97.28312 7124; 97.41739 4052518; 97.42585 17834; 97.48271 6565; 97.53656 6144176; 97.69483 636686; 97.6963 24842; 98.10536 903734; 98.26807 5286667; 98.44317 673; 98.49761 32567; 98.5784 2645785; 98.6302 544648; 98.70367 1853867; 99.57079 9259; 99.60903 6724633; 99.64405 73624; 99.78901 1554067; 99.91552 3713; 100.1836 548367; 100.39346 12055; 100.64223 2855381; 100.89095 5449531; 101.14878 4790; 101.25504 7411264; 101.5128 1424731; 101.72208 4145917; 101.93504 7475692; 102.09809 158347; 102.11474 26606; 102.15181 192201; 102.59671 40958; 102.6581 4142641; 102.78291 9630; 102.83002 1541145; 102.93844 58271; 102.94525 32628; 103.1093 3491241; 103.24499 3400907; 103.63033 5065; 104.30053 860525; 104.32485 59150; 104.41652 5119; 104.54727 3036933; 104.56487 34821; 104.6563 53782; 104.70746 35495; 104.74414 4193; 104.75401 858; 104.76715 531439; 105.05343 15841; 105.10689 1738992; 105.21453 51260; 105.25173 11027; 105.26213 66663; 105.27638 6685058; 105.46785 3351; 105.54473 25541; 105.90704 5591971; 105.98415 122372; 106.12213 27184; 106.29134 50912; 106.34383 978680; 106.49414 8767571; 107.01594 115013; 107.03854 1976538; 107.26293 13228; 107.83354 7807; 108.7437 58497; 109.04518 68005; 109.18635 2844; 109.32288 58775; 109.48123 35895; 109.53417 1103443; 109.55313 235835; 110.06584 4959815; 110.26832 293270; 110.70931 24519; 111.34885 7672721; 111.54902 90605; 111.9146 8610812; 112.19031 17706; 112.28069 3182218; 112.48754 35770; 112.65745 3578; 112.7124 59135; 112.91697 4852; 113.07912 86537; 113.08083 30609; 113.27836 42090; 113.55919 3488; 113.67724 56646; 114.21721 9712; 114.27358 1658521; 114.35057 36791; 114.36235 7868456; 114.50249 123827; 114.51175 34219; 114.58313 36407; 114.59125 40990; 114.79047 45484; 114.80208 1653616; 114.81354 1890193; 115.27248 5242744; 115.49921 540058; 115.6013 58925; 115.70761 283562; 115.75374 25964; 115.78155 12898; 116.20737 644694; 116.21328 1951606; 116.23093 5469; 116.88191 46018; 117.02922 648011; 117.56084 2469; 117.70891 137544; 117.74006 21126; 117.80422 2913; 117.87682 28909; 118.54689 58240; 118.81125 66459; 119.10624 1962963; 119.82932 187467; 119.8478 98124; 119.8481 273004; 119.91984 333710; 120.19618 1833035; 120.39499 75583; 120.56832 3455087; 120.64332 7797731; 120.66973 3537010; 120.74011 30222; 121.0314 6021602; 121.50107 57942; 121.55457 246512; 121.6293 1497; 121.746 160971; 121.86825 37512; 121.88874 9615087; 122.02258 2107; 122.30212 1466482; 122.56471 1526513; 122.6359 5679434; 122.75016 27039; 122.77105 7743043; 123.21106 5685; 123.31907 16857773; 123.61131 71636; 123.7273 44528; 124.05364 2411104; 124.36873 57378; 124.52735 27010; 124.67316 12194; 124.67632 16171607; 124.72565 8872; 124.85823 57730; 124.98515 9435; 125.03001 138981; 125.23424 3783264; 125.35527 412068; 125.57827 1242056; 125.96093 1094458; 126.02171 7378; 126.79516 7197; 127.09633 59630; 127.41176 25444713; 127.74648 7205323; 127.8551 6450; 127.87369 55204; 128.15521 64698; 128.15678 80132; 128.72263 4548; 128.74179 8775306; 128.87354 924923; 129.01486 16745; 129.05869 2820050; 129.19152 34775; 129.30317 4757; 129.31831 506767; 129.40719 2205489; 129.43731 9786; 129.53237 18063954; 129.69332 54839; 129.72972 164396; 129.78865 25993; 130.021 142617; 130.07459 29911; 130.10283 978885; 130.12266 51987; 130.15161 9826; 130.19019 78882; 130.74026 42231; 130.74808 54662; 130.85843 4582738; 130.91621 6984519; 131.04063 9607; 131.23332 87487; 131.59847 9814613; 131.95886 8894641; 132.28562 1648332; 132.30532 2523614; 132.36219 23732023; 132.4479 223577; 132.6688 28611514; 133.46093 1528600; 133.68735 3487942; 133.75885 4339253; 133.82825 1549; 134.20753 46945; 134.26572 8257530; 134.55994 447197; 134.72982 39656; 134.98687 16997; 134.99866 1955228; 135.12512 2975; 135.4909 785; 136.00246 9726; 136.06916 21240; 136.49424 279545; 136.62872 16998; 136.69919 29551837; 137.05071 10532; 137.12845 68054; 137.23956 549348; 137.29729 22924; 137.33422 35321; 137.57903 1274375; 137.71913 41371; 137.95805 3442892; 138.00702 4655419; 138.06814 678742; 138.36547 6690; 138.42464 5730; 138.49581 10211; 138.65405 79000; 138.7161 5018; 138.91508 70824; 138.99943 21676; 139.15997 4002400; 139.48662 4327; 139.91942 8332; 139.94417 6063; 140.19606 57054; 140.85512 23359; 141.02034 33936; 141.06001 1169763; 141.45309 758164; 141.47702 9601; 141.58929 42722; 141.7203 5680; 142.66548 28019; 142.72565 8602863; 142.96926 50052; 143.2719 1831; 143.30242 4265758; 143.64126 14987; 143.64263 3137; 143.7499 4484971; 143.83478 4247575; 144.1797 19180745; 144.27072 23021; 144.42763 2059798; 145.26658 72601; 145.34949 2839632; 145.37384 46318; 145.44908 3308176; 145.93195 6778; 145.99021 1910223; 146.00684 73279; 146.11527 35927; 146.12089 473153; 146.62312 65706; 146.65159 4146; 146.84912 25256; 147.03758 31000; 147.17475 686811; 147.30266 1073143; 147.3183 834304; 147.57184 21642; 147.63832 61109; 147.64853 73138; 147.66028 4186399; 147.66811 608450; 147.70023 39294; 147.75592 48747; 147.89009 6991; 147.96703 12955; 148.11836 9299807; 149.2719 39702; 149.37212 3765; 149.56745 607295; 149.65216 8780; 149.67788 22118; 149.95066 482085; 149.96583 52067; 149.99417 4957989; 150.33665 11015; 150.427 73840; 150.96166 28045; 151.00848 1869046; 151.56581 1922386; 151.60223 53968; 151.70042 83616; 152.13715 191822; 152.18126 354065; 152.2714 4523744; 152.90835 79792; 152.98397 46883; 153.26971 13490; 153.38769 1832945; 153.40234 76419; 153.48603 295630; 153.89041 11462484; 153.90668 29840; 154.078 2136425; 154.137 38372; 154.67118 1387397; 154.70325 39168; 154.85446 188616; 155.07408 2101764; 155.3917 2744093; 156.19043 3183458; 156.36212 26671; 156.58821 4484252; 156.88102 24929449; 156.9435 76469; 157.11958 48093; 157.12419 6351; 157.1593 8143; 157.20036 2468298; 157.83854 1879856; 158.32941 1282674; 158.53083 58665; 159.07709 84413; 159.34173 1430254; 159.34308 1321; 159.42797 88540; 159.57209 16809043; 159.64447 68919; 159.78107 6920814; 159.93022 31836; 160.46712 9508096; 160.55075 4165; 160.57279 2595042; 160.74518 838; 160.99387 3266; 161.14333 75096; 161.22716 8838; 161.50606 23565; 161.54808 39796; 161.68424 3113710; 161.74694 2021; 161.84747 435717; 161.97404 989094; 162.06232 439186; 162.08333 27435; 162.34172 22822; 162.44467 6861930; 162.47605 75586; 162.90503 40546; 162.99237 17644; 163.38977 558538; 163.46257 499; 163.49537 15998; 163.64754 66888; 164.50597 1972073; 164.56402 32052; 164.67043 445; 164.692 17735014; 165.11579 48875; 165.17963 162402; 165.33949 3335; 165.35226 26996; 165.54225 4415707; 165.61925 42925; 165.63634 183357; 165.71495 25954; 165.76892 64636; 165.80514 662383; 165.85591 7360732; 166.03638 628989; 166.27616 21040; 166.97591 673162; 166.99246 4532540; 167.42963 35134; 167.4959 7730903; 167.63079 55258; 167.67768 51759; 167.68759 81559; 167.83716 1942601; 167.94623 40041; 168.24047 41250; 168.33931 57208; 168.42834 1675006; 168.43514 22392; 168.53983 879941; 168.61983 34965; 168.62091 5865889; 168.91946 3074; 169.0322 26888; 169.05491 7477; 169.3075 74271; 169.49797 20113; 169.55985 16693555; 169.61954 9345065; 169.64202 20520; 169.69299 8801; 170.54043 22823798; 170.58719 35136; 170.75985 22601; 170.98268 12656; 171.18648 7151; 171.4855 4280831; 171.63169 2352242; 171.83371 4213543; 171.94924 144375; 171.97904 6552; 172.08381 4535486; 172.21528 6144; 172.27828 127748; 172.72579 5537656; 172.98385 2425; 173.145 7544; 173.23607 47385; 173.41238 5972; 173.47506 765254; 173.6091 6710923; 173.82059 9591919; 173.87645 58736; 174.22897 43046; 174.42702 976689; 174.44343 75364; 174.49493 569666; 174.72698 42078; 175.00078 3783943; 175.20614 2155368; 175.8808 186944; 175.90685 23177070; 175.9985 72031; 176.62911 1625645; 176.66898 17770; 176.81173 854303; 176.83906 3943288; 176.86391 4766; 177.08999 6695; 177.55436 14344; 177.55531 3390120; 177.62205 4935181; 177.71287 607386; 177.75157 47557; 177.94752 8487300; 178.16183 2552256; 178.29642 27300; 178.52702 2063920; 178.58607 66731; 178.66341 3609298; 178.75601 51172; 178.7873 29326; 178.84116 27738; 179.1083 1555; 179.27265 22773; 179.64935 26862; 180.01421 79178; 180.06522 150913; 180.12574 68405; 180.4124 3779095; 180.51315 4231983; 180.53057 2863; 180.97771 1221671; 181.48871 3309; 182.26217 1800983; 182.40727 196508; 182.53408 27640; 182.67111 610790; 183.06929 8585; 183.14241 59616; 183.87571 506948; 183.9188 2572424; 184.08795 28377; 184.16711 7209; 184.17754 73971; 184.3148 3918666; 184.49821 474874; 184.53229 8806; 184.64719 8852346; 184.6619 5116; 185.07829 481216; 185.4692 24421578; 185.61977 21058; 185.63412 18908; 185.73669 22011; 185.73858 37414; 185.83747 642174; 185.97595 20357; 186.00772 36773; 186.54366 3009446; 186.64118 5578083; 186.84051 107782; 186.93483 57180; 186.96533 2411; 186.99314 2889568; 187.14852 174685; 187.47188 1170739; 187.55425 24056028; 187.68748 5975956; 187.82526 1552887; 188.12872 5780741; 188.26406 1352840; 188.49448 54480; 188.71661 135960; 188.77753 1249898; 188.82817 1729031; 188.85729 3153403; 188.9848 760062; 189.13341 753; 189.32222 22767571; 189.35133 4045542; 189.48621 24565; 189.83947 4361203; 189.86992 1068341; 189.91243 60160; 190.00042 1590181; 190.17975 1801044; 190.56967 41835; 190.62717 20304; 190.83112 4165504; 191.02382 52409; 191.37749 18476; 191.38835 6548015; 191.61862 2212; 191.83153 62210; 191.88393 9118130; 191.8934 5456652; 192.00755 1062784; 192.55807 1566855; 192.74752 1012033; 192.88159 25020; 193.12395 22363; 193.28015 180135; 193.2948 27028; 193.39896 4446; 193.47068 61001; 193.69321 54375; 193.87463 1159315; 193.93976 1757035; 194.01467 31917; 194.63922 2152467; 194.87515 650918; 194.98685 9406; 195.014 724074; 195.26668 5912; 195.88578 10325; 196.32133 136297; 196.86162 5285; 197.27023 73515; 197.4272 104019; 197.53336 4703638; 198.11124 10527; 198.16055 10913779; 198.55471 4410810; 198.59768 24165; 198.64465 9551477; 198.7423 181997; 199.11262 5265801; 199.50309 1472294; 199.50481 1974857; 199.55152 6794858; 199.72692 30907; 199.89253 803548; 200.02174 1065212; 200.1751 8344386; 200.18005 25179698; 200.29612 46236; 200.34288 3134; 200.3834 8476; 200.48459 5141; 200.50404 25917; 200.66781 1684244; 200.90286 35356; 200.94644 9026973; 201.14893 79379; 201.21184 59249; 201.57433 1193530; 201.91399 7814259; 202.02348 3852; 202.04049 2241458; 202.42849 43817; 202.45669 106181; 202.78619 1543711; 202.81283 8555; 203.10955 938224; 203.22809 5737; 203.31676 320; 203.35903 62990; 203.87919 54917; 203.924 9969346; 203.95645 2000225; 204.00213 507503; 204.12118 50758; 204.13507 16697; 204.62678 24726; 204.77638 4326; 204.89029 8365482; 204.89073 45744; 204.9004 6671753; 204.9681 14444; 204.97277 3697034; 205.04581 24933; 205.09862 40830; 205.21395 9882; 205.53292 998909; 205.57171 9068; 205.57286 1563928; 205.60555 618029; 205.74523 15798; 206.79338 2174; 207.15888 2497568; 207.16548 3922; 207.40492 951258; 207.66795 5800303; 207.76394 9343; 207.81137 462266; 207.81951 27270; 208.05266 1635688; 208.19532 24261; 208.26886 35319; 208.4571 1001752; 208.4952 71491; 208.5024 1494838; 208.85247 1105718; 208.98201 8634; 209.52977 8255615; 209.57101 47656; 209.62899 186243; 209.84198 33584; 209.85958 34723; 209.87994 42596; 209.98367 4151957; 210.04445 43486; 210.18014 82091; 210.25195 4714128; 210.46727 4271; 210.59036 70142; 210.751 1461527; 210.77694 680165; 210.78881 20398; 210.83112 1577323; 210.88014 38794; 211.04105 21466; 211.13416 1311533; 211.5495 105442; 211.80932 3318; 211.86126 7323; 212.18711 141193; 212.21204 852340; 212.26302 1740756; 212.30005 4733132; 212.37055 837050; 212.6134 417415; 212.6167 5918862; 212.82263 18625; 212.82879 69666; 213.12801 7154353; 213.1504 6738; 213.47931 362810; 213.78698 15943074; 213.8327 50101; 214.23952 7368020; 214.61226 7962769; 214.7179 96898; 215.25052 27470; 215.45623 7340070; 215.4677 326461; 215.56845 9842; 216.06098 13164; 216.09816 3912868; 216.15372 51174; 216.36995 1788; 216.43119 7525900; 217.00196 86392; 217.16135 34823; 217.17862 22788; 217.24792 3421306; 218.5057 67991; 218.63776 6750480; 218.82797 29712; 218.95395 9883; 219.09878 6272881; 219.34712 6925; 219.56145 382; 219.58812 138371; 219.63197 59732; 219.72478 21681; 219.76931 4322668; 220.02112 8412; 220.1487 12323; 220.20064 9196793; 220.32485 2373378; 220.85496 14530; 221.10179 26447; 221.11473 4221; 221.4373 33217; 221.57359 42007; 221.61827 571389; 221.86418 51162; 221.8982 58441; 222.08066 65608; 222.10654 1024; 222.20798 36995; 222.80501 8347; 222.89491 772335; 223.03708 108535; 223.08388 82974; 223.11843 9382015; 223.1329 4935; 223.3007 342549; 223.52426 52152; 223.66496 1220015; 224.5216 6449; 224.76665 161845; 225.09955 1980; 225.32177 297866; 225.47328 7538; 225.75106 1687543; 225.98592 22715; 226.0691 3904; 226.13637 9927010; 226.26774 124624; 226.39139 9328; 226.44774 9508; 226.47644 72605; 226.49621 3335; 227.03631 16973; 227.14927 69916; 227.54325 1308409; 227.55827 121897; 228.25028 1013302; 228.29455 5013; 228.48061 189390; 228.70143 43991; 228.75651 79046; 228.85823 47161; 228.9538 59297; 228.96567 9320971; 229.20506 150625; 229.48158 13679456; 229.75306 20301; 229.90104 18426; 230.04095 3175; 230.06392 31228; 230.26416 1867040; 230.40313 31811; 230.79259 67549; 230.8454 49767; 230.89451 28592; 230.90011 29376; 230.90532 45784; 231.24569 46519; 231.51138 999421; 231.53009 179857; 231.60055 4392569; 231.64635 20511; 231.70065 3264353; 231.72248 9717094; 231.85605 29949; 231.97371 12; 231.9817 31737; 232.22725 1516; 232.26542 1458186; 232.33794 23237; 232.35219 29379; 232.45967 1732; 232.71656 6499123; 232.85011 9151; 232.89822 4053; 233.08737 7209; 233.32254 3191751; 233.70174 8913; 233.9328 16934; 234.1267 45530; 234.46292 58127; 234.56766 315191; 234.6167 20962497; 234.61984 56632; 234.70166 6735; 235.07635 944407; 235.17364 5886; 235.17526 20518; 235.26952 19271; 235.33751 18648; 235.45646 52938; 235.74144 3896715; 235.85263 7483; 235.90073 353481; 236.26654 153016; 236.92974 68536; 237.09572 695106; 237.30948 61627; 237.41381 54653; 237.56579 4121; 237.73841 1770601; 238.07959 32479; 238.27944 60504; 238.36591 9008829; 238.36599 74408; 238.37004 4335010; 238.50364 5641; 238.56079 134086; 238.70756 190461; 238.95408 9857; 238.96711 9989; 239.1486 696555; 239.22956 46873; 239.34039 37106; 239.55168 61396; 239.57404 6805612; 239.97127 29495; 240.12023 7011538; 240.25943 39395; 240.36027 1527; 240.67412 8463857; 240.78806 24566; 241.21989 2002507; 242.01021 58427; 242.11906 29456; 242.16261 7237024; 242.20268 9813; 242.20488 5186; 242.30318 4174175; 242.33407 25480; 242.3563 79392; 242.49613 6166470; 242.78525 46080; 242.82572 7308143; 242.91289 62130; 242.9299 14650; 242.99833 141777; 243.46648 11971916; 243.49145 5974; 243.78987 36043; 243.96782 6967; 244.04078 333502; 244.09138 2835388; 244.12736 1788919; 244.20562 9386146; 244.43467 1922735; 244.5806 24238; 244.7814 28663; 244.78724 20559; 244.83829 63826; 245.08062 875912; 245.22568 1558293; 245.59955 48725; 245.69743 54420; 245.79053 5972; 245.85102 1504822; 245.93068 5385; 245.93299 1789826; 246.00337 8286; 246.30415 187770; 246.44251 5665; 246.57843 29940; 246.62309 654727; 246.62867 68383; 246.94939 8348; 247.04315 4711860; 247.53336 20313; 247.7378 913636; 247.88023 44387; 247.91636 248380; 248.26287 46291; 248.40808 153172; 248.53233 31276; 248.73463 54544; 248.81507 1447830; 248.83659 9287641; 248.86876 1355028; 248.98536 129345; 249.18324 53557; 249.20446 66073; 249.67499 1359544; 249.93006 366; 250.26006 20237; 250.38601 48388; 250.6062 13418; 250.93923 2351618; 251.38096 6489608; 251.42689 161489; 251.49104 782269; 251.73741 48078; 252.11822 1802979; 252.13352 3618; 252.46211 7092269; 252.7225 6336; 252.74942 25634; 252.83425 44096; 253.30769 3061048; 253.78562 46360; 253.87722 52509; 253.94943 3641; 253.98758 2838; 254.06518 2788180; 254.09121 20834; 254.13885 387547; 254.34819 21587; 254.40661 9150; 254.82848 11374; 254.86116 1747512; 255.17279 69804; 255.30089 9828; 255.36018 4051; 255.42671 8578268; 255.66829 7318893; 255.68194 7847010; 255.8889 410; 256.02364 3901; 256.15648 7773; 256.20608 27916; 256.39196 1066989; 256.42826 3401049; 256.45054 45333; 256.7338 197162; 256.74768 5972553; 256.98084 62674; 256.98295 126395; 257.05573 156967; 257.20751 94260; 257.23747 21942; 257.29425 1373189; 257.44463 13866; 257.45379 1645377; 257.50678 14901; 257.51335 2228878; 257.70224 6763333; 257.77959 6531407; 257.93113 153448; 258.00285 4536421; 258.17587 8812094; 258.19338 5167; 258.69365 522891; 258.82114 37695; 259.41694 303311; 259.63591 11823; 259.97168 90613; 259.98555 2811580; 260.09621 12278575; 260.17818 101057; 260.33103 4978405; 260.46133 7484; 260.46971 78137; 261.6411 8206169; 261.79328 217748; 261.82642 3179; 261.93316 31075; 262.10988 28580; 262.25166 35625; 262.4097 915399; 262.45311 3015352; 262.47773 6345793; 262.78553 7887; 262.92906 14566; 262.95534 4680983; 263.00243 20817; 263.22334 6045; 263.26502 3434665; 263.33125 82071; 263.43071 8435513; 263.77045 1432178; 263.80788 37404; 263.8375 298182; 264.53216 7009550; 264.5793 41045; 264.72394 76706; 264.88861 7583; 265.53833 213324; 265.69223 2033; 265.89324 13904; 266.05238 6998798; 266.26852 4978133; 266.35595 63561; 266.39088 2471679; 266.40057 16141; 267.00829 33286; 267.13574 721382; 267.23741 1569155; 267.34468 961; 267.46471 8329015; 267.47018 50130; 267.53618 4224; 267.74623 458222; 267.7924 69341; 267.81315 1716666; 267.92021 1885517; 268.38606 4677086; 268.86905 149644; 268.96519 20425221; 269.03839 1169089; 269.13101 67253; 269.26333 1949374; 269.44648 19384; 269.788 27869; 269.88358 8417; 269.90746 3072287; 269.92586 7378; 270.65831 384842; 270.80869 7301847; 270.89453 9497133; 270.94253 58878; 271.11225 37928; 271.22547 712068; 271.36839 94195; 271.70566 104275; 271.73615 4194541; 271.73837 172613; 271.94519 19899; 272.17332 8604033; 272.98928 3071619; 273.30581 24028; 273.4484 759284; 273.46767 21026; 273.53996 191185; 273.6779 1226; 273.7119 6038; 274.08154 930992; 274.15428 955075; 274.19071 7515; 274.39453 62394; 274.78534 75161; 274.98514 150843; 275.19525 1595473; 275.58245 8931; 275.59338 2659; 276.01748 109454; 276.22128 3432557; 276.24629 7679; 276.28589 32932; 276.37632 1660755; 276.49293 10346; 276.8525 25964360; 276.99536 46160; 277.12926 57896; 277.19297 5969764; 277.33898 580372; 277.97074 21353; 278.06012 5017655; 278.26755 1571491; 278.45511 79465; 278.54757 7930483; 278.73869 534280; 279.08386 21489708; 279.11408 614313; 279.61838 23757156; 279.71142 703539; 279.75048 893311; 280.60916 4260926; 280.70793 710632; 281.01459 44913; 281.1082 4131; 281.17495 29911469; 281.29735 8914; 281.41961 1120605; 282.06494 21921; 282.21655 10828; 282.35285 20805; 282.48339 71099; 282.49745 77623; 282.79156 14154; 283.00777 2529; 283.58689 7798; 283.72813 7153933; 283.91179 5641018; 283.99681 4371228; 284.60255 32500; 284.65437 103339; 284.69102 1775430; 284.70681 30404; 284.80358 210567; 284.844 70719; 284.8489 160366; 285.02451 41781; 285.0259 34325; 285.44266 28171824; 285.64363 23630; 286.50215 3720; 287.35012 11324; 287.71418 47493; 287.96996 64951; 288.01919 4420; 288.69449 82556; 288.72559 7441292; 288.82774 2913; 288.86787 99844; 289.31836 5009774; 289.33085 125018; 289.65878 21919; 289.80005 90116; 289.89587 9923463; 289.97172 782898; 290.09388 35672; 290.1101 2115210; 290.14145 5142; 290.15309 2699; 290.21896 35545; 290.33729 1462132; 290.42723 97375; 290.54097 82367; 290.6023 3765622; 291.14423 30746; 291.21174 3385646; 291.32298 421; 291.43205 42726; 291.5041 4370173; 291.57259 606797; 291.60285 1349385; 291.91114 989527; 292.11714 4334910; 292.13077 48559; 292.40219 28321985; 292.43037 12315; 292.50242 21636; 292.58132 669016; 292.59981 808413; 292.70043 1221166; 292.81952 738169; 292.89673 23623876; 292.92592 2620; 293.04585 1740280; 293.16002 4297604; 293.74285 33553; 293.8807 4599; 293.9864 944654; 294.15039 125018; 294.22227 50075; 294.84449 6096; 295.27511 14582; 295.31212 39421; 295.44448 23261120; 295.63757 1935541; 295.99423 1546077; 296.03006 859612; 296.30336 6233068; 296.46423 882970; 296.54166 46506; 296.87556 28862; 296.89744 1565274; 297.31345 29443; 297.45398 21411; 297.7942 2740872; 298.0605 35468; 298.17419 57353; 298.47609 3961164; 298.69911 46518; 298.70073 3902563; 299.10296 78699; 299.21841 25126; 299.33651 28952; 299.42698 28698; 299.62911 22579; 300.00477 44620; 300.07358 2759093; 300.21555 79217; 300.35333 655406; 300.50587 27015; 300.87879 4360091; 300.90487 8106778; 301.10817 5751110; 301.1581 3470846; 301.53557 504426; 301.69957 41987; 301.76507 64696; 301.82575 3574708; 302.00569 193308; 302.01786 1203407; 302.19879 3025; 302.35405 58053; 302.38662 4932; 302.5711 9392271; 302.60126 961; 303.41837 97850; 303.45591 24945138; 303.69921 20860; 303.7939 1638051; 303.85048 182919; 304.50574 38841; 304.51732 20075; 304.52616 8723; 304.82828 18092; 305.06982 33323; 305.16479 1363779; 305.16925 1657075; 305.19376 426158; 305.3225 902936; 305.33239 3388; 305.52125 1772193; 305.63673 4820972; 305.68581 62357; 305.7231 8706; 306.29849 5436; 306.54053 2831; 306.78612 59940; 306.80811 140587; 307.19172 224332; 307.23961 450453; 307.42911 7028; 307.56684 5611; 307.73978 2772175; 307.77039 1184327; 308.37912 108439; 308.61154 1617598; 308.92676 1620910; 309.08976 19681; 309.12259 1195876; 309.47147 20712; 309.49482 9970; 309.60129 937138; 309.9685 20901; 310.00195 459726; 310.34166 50020; 310.4804 5422248; 310.82273 169821; 310.83502 2793466; 311.27027 1069761; 311.42518 49612; 311.57307 22233; 312.15927 7759; 312.3415 111045; 312.58006 3761238; 312.96894 18918367; 313.55045 57329; 314.13534 77714; 314.20904 36867; 314.28557 49794; 314.43041 3753494; 314.56483 15874; 314.70787 25141; 314.86863 443; 314.88824 52786; 314.90875 503029; 315.17379 52853; 315.33321 828; 315.55488 18689; 315.61983 4537; 315.97763 196133; 316.00177 5023; 316.11795 905335; 316.30907 885662; 316.43158 8094; 316.67948 72562; 316.70135 2786783; 316.77274 6931; 317.16441 30355; 317.21483 7742; 317.22366 23338; 317.24271 50916; 317.28786 639782; 317.28898 8976685; 317.38255 20350; 317.44626 165995; 317.56928 61973; 317.57487 34714; 317.69599 4594; 317.82801 18419; 317.86457 77533; 318.071 2661891; 318.27613 8718976; 318.29967 35610; 318.46959 12931355; 318.5905 25638; 318.87457 1724978; 318.91835 16352; 319.27708 344032; 319.72491 9189997; 319.73962 631; 319.78654 185772; 320.53663 54324; 320.61665 3198; 320.86851 647736; 320.99467 2946; 321.20777 1869704; 321.2602 4924073; 321.28307 5263622; 321.44933 9410281; 321.47176 43163; 321.61144 40810; 321.88644 22056; 321.92991 8294693; 321.99794 65296; 322.33152 23030; 322.41244 2373; 322.66563 29896; 322.67736 835900; 322.70134 47945; 322.75487 27039468; 322.97318 182656; 323.39091 1060915; 323.42351 89805; 323.44968 56381; 323.62385 73888; 323.96459 493009; 324.35784 8908; 324.67131 26381; 324.88104 909394; 324.90832 28940; 324.93974 23835; 325.24713 9925998; 325.25806 74698; 325.37982 788987; 325.70021 3498541; 325.94362 1842033; 326.19311 126483; 326.35381 106746; 326.46688 4509230; 326.53669 2754; 326.64308 2192; 326.81923 61332; 326.91644 45911; 327.26253 1768183; 327.32929 25528; 327.35739 749317; 327.36249 125901; 327.58524 725446; 327.6168 429118; 327.67502 26121; 327.79069 42052; 327.79571 23899; 327.82578 3306; 327.88338 5688; 328.10475 6980; 328.13693 29267; 328.45999 23064; 328.75565 4941588; 328.8025 983563; 328.85689 38104; 329.08486 4212227; 329.11833 3552663; 329.2198 1362548; 329.51211 52605; 329.66608 107287; 329.96612 1342607; 330.00582 79602; 330.02482 2244; 330.064 2971617; 330.09176 3060; 330.12325 4057388; 330.37992 23361; 331.08473 32136; 331.09336 8693320; 331.19796 3627684; 331.20446 68073; 331.29364 42480; 331.5128 17521; 331.66867 3228401; 331.81128 4970230; 331.83318 353104; 331.89362 2902329; 331.98232 3852241; 332.05836 50499; 332.34558 20485; 332.39647 116554; 332.43001 1564716; 332.56987 46482; 332.91285 10687901; 333.05841 143949; 333.1524 159542; 333.27406 466029; 333.31658 41002; 333.66497 35089; 333.91908 207554; 333.95952 1632629; 334.33076 13094; 334.38757 4382853; 334.56704 100949; 334.68456 49957; 334.79686 6098; 334.86417 32997; 335.18187 67226; 335.48863 7424431; 335.51025 8064394; 335.59549 8003; 335.7821 2923466; 335.95355 4413340; 336.28316 4239; 336.44117 69251; 337.2171 4459; 337.50401 5592350; 337.56808 4371063; 337.79099 905924; 338.16832 158606; 338.22931 30262; 338.31849 959130; 338.76422 260829; 338.79275 1787029; 338.93327 396; 339.39414 30220; 339.74304 972725; 339.86767 41579; 339.89144 992; 340.96375 742750; 340.98954 3524; 341.22736 4134982; 341.25797 2462299; 341.63949 4752280; 341.94252 951032; 342.05541 74736; 342.41773 24941; 342.4395 46093; 342.63765 35677; 342.83061 1146435; 343.1797 619827; 343.2757 46629; 343.34294 1442747; 343.536 1484292; 343.80731 27276; 344.12399 24952; 344.3798 20876; 344.40545 3678525; 344.78706 7199; 344.87314 3605125; 344.92853 1843876; 345.10072 3728; 345.25764 9881; 345.27988 7452; 345.46124 49293; 345.52259 4564; 345.70298 83212; 345.75231 15468337; 346.272 45784; 346.79446 14145; 347.05651 73727; 347.26393 1960; 347.46657 7002; 347.57986 61271; 347.58328 606393; 347.69907 161762; 348.11657 73000; 348.23348 71668; 348.37691 38491; 348.48175 50426; 348.58716 8043; 348.58899 26106; 348.79715 1157963; 349.0244 54421; 349.40277 54347; 349.65642 1690659; 349.82354 25368; 349.9093 745405; 350.02262 6921979; 350.22115 48509; 350.36957 3542217; 350.52624 23619679; 350.67583 187787; 351.24102 4474392; 351.26478 3942148; 351.8514 1386; 351.88486 73871; 351.97842 318048; 352.07631 30409; 352.2456 19303; 352.35367 79028; 352.50095 2155601; 352.97052 1624; 353.02425 156355; 353.05816 41191; 353.49389 3709111; 353.50343 7145; 353.67737 84663; 354.70776 68715; 354.71121 1655754; 354.94933 5022345; 354.96819 2832777; 355.07826 26880; 355.38489 110225; 355.43606 29291; 355.51853 48599; 355.70123 609485; 355.71057 28834; 355.91832 11868; 356.72073 27463; 356.9391 31434; 357.16344 17358902; 357.38378 8795; 357.85434 29604; 357.92278 44996; 357.96084 3585; 357.99852 46328; 358.0765 27190063; 358.29655 5824; 358.34897 5022; 358.44356 38661; 358.47164 53541; 358.78887 7877; 358.87502 6643; 359.11516 2874219; 359.14996 13815; 359.15012 26165; 359.47562 961; 359.49356 7971; 359.50914 189621; 359.53452 2772; 360.24258 2046744; 360.59267 1414; 360.72007 54836; 360.80494 68622; 361.10417 20286; 361.13727 15234; 361.27008 813146; 361.28999 3672278; 361.36875 8983; 361.58591 59395; 361.65591 6230410; 361.84355 761737; 361.99427 1217892; 362.00508 3744353; 362.11137 6840; 362.1749 2083526; 362.18429 15324; 362.20724 28503; 362.3061 577901; 362.41856 169869; 362.43684 25975; 362.55229 59512; 362.8403 46969; 362.88909 964204; 363.02368 377667; 363.29108 55673; 363.64459 5510156; 363.79842 173410; 364.10471 16453849; 364.24205 64323; 364.36922 75258; 364.48859 101821; 364.68435 78652; 364.8161 1668; 364.96751 2169277; 365.0118 434668; 365.09661 39983; 365.16083 36403; 365.31485 8131; 365.34983 29813; 365.48898 9245; 365.49607 1245213; 365.7189 2958442; 365.99159 19797175; 366.09088 7421679; 366.56406 2255679; 366.75277 1236; 366.76298 1834616; 366.80034 27362; 366.90694 37924; 366.93282 2711213; 367.20897 1872578; 367.26408 4563; 367.34191 77250; 367.77207 60605; 367.78064 26441; 367.99953 1936024; 368.27457 14579; 368.48529 60745; 368.5883 9140791; 368.64243 54944; 368.68371 50750; 368.73758 9138865; 368.82523 54141; 368.99811 2397702; 369.06385 6447; 369.36528 1418502; 369.41608 2555810; 369.55369 8736; 369.66579 50943; 369.70988 3745819; 369.84152 925692; 369.92511 7392201; 369.95761 49455; 369.98414 79534; 370.00385 1496937; 370.11317 22888; 370.13211 193663; 370.26881 5379; 370.27568 5543376; 370.60543 1484537; 370.82065 22271273; 371.51444 30071; 371.51888 23531; 371.69164 77789; 371.80743 283146; 372.10376 1210348; 372.20994 1256652; 372.43099 230804; 372.44056 23442; 372.47513 24694; 372.81086 18688206; 373.02725 604; 373.44677 4093849; 373.49411 2747161; 373.66829 79011; 373.70752 23026; 373.77027 77657; 373.82538 1656867; 374.1077 839260; 374.19433 1838239; 374.31695 5988; 374.50423 5073; 374.60633 1643373; 374.6851 1584; 374.84572 16652; 375.22648 36345; 375.94214 4350424; 376.11772 3291; 376.20988 494481; 376.29332 4478537; 376.42344 1017050; 376.70165 75660; 376.74751 1398128; 376.84811 45021; 376.93372 22115; 377.46011 9603135; 377.53829 486; 377.61176 8332416; 377.95244 171658; 378.02562 6084872; 378.14293 10657; 378.17102 4863523; 378.47503 17099; 378.62191 433863; 378.70756 66986; 378.88363 4880; 379.18901 29715; 379.31737 6137; 379.51296 2857450; 379.6118 44709; 379.63998 361367; 380.03128 5520; 380.1365 4872; 380.57552 27450; 380.89033 22802; 380.91823 12311; 381.10057 64662; 381.10547 7080; 381.55734 25830; 381.665 52974; 381.99956 37242; 382.19407 4052; 382.19655 4570456; 383.20058 7334; 383.26286 20955; 383.61208 503809; 384.15245 266; 384.26637 58575; 384.43197 1881961; 384.46995 16777; 384.77428 166341; 385.19974 482834; 385.21431 1901830; 385.36676 426984; 386.04048 24191; 386.26624 727; 386.43179 71738; 386.51297 83126; 386.6938 804268; 386.73578 854; 386.87999 3155; 386.89607 4336683; 387.08416 27130702; 387.37805 1660367; 387.70366 6647383; 387.87675 40341; 388.25136 1807622; 388.30949 3653367; 388.51562 70819; 388.92817 2051; 388.96246 25193; 389.20029 54061; 389.33936 860; 389.431 191264; 389.52568 654811; 389.93516 4804724; 389.94976 1467148; 390.03711 81105; 390.06269 930013; 390.60263 61066; 390.77813 49291; 390.88981 1633159; 391.18616 523; 391.26203 3547; 391.28816 16432; 391.35255 60365; 391.46084 151037; 391.85619 3704; 391.88419 36131; 391.9978 198268; 392.10068 135009; 392.58502 4601; 393.02263 65271; 393.37158 7974708; 393.70413 1077230; 393.89689 28852; 394.12292 38788; 394.28918 8598879; 394.45179 4588610; 394.59096 58166; 394.66068 24509703; 394.82294 74529; 395.0054 7626311; 395.05939 25311; 395.12207 22499; 395.38194 24936; 396.1343 5080012; 396.19274 44378; 396.55002 6327; 396.63751 2205; 396.81102 1523991; 397.09859 1784814; 397.31302 7238; 397.41599 61084; 397.55145 9295970; 397.76202 47993; 397.82317 1010388; 398.03573 709392; 398.0833 4952; 398.12798 9075; 398.47914 161128; 398.60592 8622931; 398.67135 1238845; 398.6797 1453982; 398.94552 9654; 399.19285 64414; 399.43875 3044823; 399.6883 4526479; 399.71542 2231062; 399.8553 29830; 399.94564 150392; 400.36602 39938; 400.72021 27725924; 400.99391 2263485; 401.29256 1880854; 401.36085 76034; 401.45482 62667; 401.57651 17312; 401.622 3071117; 402.07773 708862; 402.26469 256982; 402.69687 174310; 402.7374 27860; 402.84774 26313; 402.974 79755; 403.14718 9731; 403.17261 24302; 403.19126 1697938; 403.36984 78084; 403.37168 50207; 403.50979 3290198; 403.6774 183651; 403.93046 6986130; 403.99876 53658; 404.22158 21063; 404.26691 150054; 404.27193 397925; 404.65392 55896; 405.01409 901; 405.13323 7809438; 405.23797 550279; 405.28162 74148; 405.62871 1326067; 405.956 9271; 405.95623 7651949; 406.17216 26390; 406.24 17572; 406.26045 133592; 406.44916 4125866; 406.77199 2765974; 406.81537 8507122; 406.90039 49622; 406.90363 11544; 407.2843 1469750; 408.27172 22593; 408.29411 1555027; 408.38793 192547; 408.42629 46274; 408.76996 73598; 409.20364 21800; 409.27994 1733931; 409.71112 29542; 409.99198 72688; 410.19479 1630105; 410.31827 29209; 410.39809 13235; 410.40458 47639; 410.58961 8234; 410.59833 1333949; 410.81328 1907793; 410.81695 157586; 410.82999 44385; 411.15979 2210544; 411.2541 1058390; 411.27808 1396707; 411.31838 1842507; 411.51472 1452037; 411.6282 229914; 411.86066 25319; 412.43427 365; 412.50385 23178; 412.68774 2525629; 412.70136 49858; 413.24128 43408; 413.37591 4718692; 414.11169 8622814; 414.20865 48601; 414.50701 5369; 414.7707 73207; 414.87317 2163; 415.24859 9740027; 415.34638 28306; 415.40332 3908; 415.51958 115369; 415.99506 15256; 416.24811 391327; 416.76848 54197; 417.26366 943585; 417.27184 37025; 417.3065 47847; 417.40415 1818239; 417.42282 7619; 417.55711 88427; 417.92935 64031; 418.08257 64276; 418.41178 141136; 418.46294 59342; 418.61031 236555; 418.65261 4942167; 418.77574 78080; 419.06367 65989; 419.13702 6880456; 420.09138 274883; 420.12647 11176; 420.4176 63326; 420.50164 3466; 420.54642 1229124; 421.20126 5815081; 422.48312 6661896; 422.6045 48308; 422.98487 176867; 423.26404 41513; 423.63703 144878; 423.72729 28435; 423.92353 76956; 423.93016 62150; 424.35592 16704076; 424.39652 4031175; 424.62098 49462; 424.70017 2101621; 425.07353 702967; 425.09106 66477; 425.3723 27578; 425.79182 24922; 426.04105 1041123; 426.39465 6078731; 426.4856 36034; 426.94456 1009384; 427.02811 25546; 427.29615 7372; 427.79089 78599; 428.06736 6803185; 428.16401 1006761; 428.24043 1678327; 428.3427 252130; 428.36349 28117; 428.47476 110419; 428.68157 24463; 428.75151 87126; 429.28904 27164; 429.32474 88523; 429.42651 127101; 429.45284 8303; 429.48804 2557; 429.77396 39173; 430.07681 9631849; 430.2156 7451; 430.29411 1500181; 430.38684 1472574; 430.55089 1374030; 430.58092 35301; 430.63459 65695; 430.64406 27741; 430.6634 69723; 430.82646 9048693; 431.27103 70244; 431.58378 929; 431.75671 126873; 431.78413 21994; 432.0187 4399620; 432.11157 7336848; 432.11451 844971; 432.19665 2309; 432.31003 41314; 432.32725 12642; 432.33796 1080748; 433.14874 8667; 433.59936 1335460; 433.77603 831; 433.99785 3517901; 434.06326 56064; 434.20544 1026494; 434.26999 1673732; 434.43002 6386143; 434.67909 32209; 435.09017 21716; 435.1735 1678027; 435.52242 188137; 435.90311 22764304; 436.29662 60449; 436.76795 303170; 437.05665 41733; 437.10674 29121; 437.15931 127316; 437.26816 1801205; 437.27498 41446; 437.27797 25649598; 437.44002 160423; 437.79356 189; 438.15709 1474741; 438.21316 1836241; 438.24815 1030407; 438.28572 23888; 438.57952 1428281; 438.67928 1843123; 438.79425 73010; 438.85084 4658454; 438.98809 95552; 439.07968 3683399; 439.14769 23982; 439.37572 54834; 439.61013 26669929; 439.70291 35295; 439.74656 43100; 439.79652 68013; 440.06471 8882; 440.35287 37921; 440.43848 838516; 440.66082 6285744; 440.67095 11930631; 440.73138 611689; 440.77029 67265; 440.79534 6907; 440.87976 6290; 440.97906 3278788; 441.01391 17743; 441.12395 789471; 441.13182 317537; 441.23079 5264972; 441.24468 43152; 441.66529 1159; 441.71822 23416; 441.79771 126318; 441.85467 122586; 441.91988 5427795; 441.97416 24940; 442.0509 4834947; 442.07838 718996; 442.18086 53074; 442.19917 12999; 442.22948 925168; 442.4473 194440; 443.39001 3141103; 443.41081 20282; 443.47148 6644; 444.19092 13782; 444.35827 112543; 444.6078 319328; 444.77916 16460; 444.93474 1317490; 445.20352 16412; 445.20719 4450; 445.46461 219299; 445.65817 1282535; 445.69709 5518; 445.75095 47808; 445.9442 12635; 445.96073 13096; 446.03197 26383; 446.19558 7177; 446.22517 915564; 446.31265 63197; 446.53987 2700; 446.72719 34983; 446.80203 1190875; 446.95833 48996; 447.08888 3034978; 447.27322 69449; 447.29449 352860; 447.70572 60687; 448.02845 9647222; 448.24638 28146; 448.8365 15776; 449.00607 7224; 449.02858 1333807; 449.08652 69547; 449.46784 945; 449.67456 948183; 449.94602 11968; 449.95587 2564364; 450.00406 14200; 450.16919 1734755; 450.34468 3064989; 450.58334 175027; 450.60877 245342; 450.77946 105965; 450.93111 427945; 450.96106 12041102; 450.98302 4297342; 451.06068 5763; 451.28503 4284411; 451.39377 58287; 451.52253 3050; 451.55433 26439; 451.75457 51459; 451.97618 8496; 452.03863 47568; 452.36748 71305; 452.41947 59812; 452.83894 25017; 453.0282 60423; 453.07997 4438113; 453.12493 3160; 453.23045 475464; 453.36342 1341378; 453.53081 101205; 453.61518 8344; 453.64859 4468923; 453.66234 638663; 453.73559 22104; 453.9703 7098139; 454.00222 609432; 454.02315 23537; 454.06027 6198; 454.31718 81761; 454.32533 48526; 454.47285 22113; 454.57602 184002; 454.77067 74891; 454.95682 6205; 455.26702 179601; 455.28706 47294; 455.35438 8234; 455.40432 36706; 455.72944 65428; 455.82503 1244223; 455.85053 1816059; 455.90897 455155; 456.06322 562836; 456.66122 1316278; 456.68941 1575738; 456.71385 155787; 456.7319 46559; 457.09587 130; 457.21475 115555; 457.53331 25572; 457.64405 3287671; 457.78884 4017794; 457.85972 46383; 457.94258 21976; 457.99279 6865598; 458.81046 12243; 458.91225 25516224; 459.05858 10191817; 459.19881 41040; 459.33398 275299; 459.5011 32331; 459.59259 14881; 459.69538 3593897; 459.72118 15263; 459.75861 5903650; 460.63312 1153714; 460.69292 29081; 460.74129 106148; 460.81407 37022; 460.91693 21841; 462.1843 1441; 462.19381 113814; 462.27142 52443; 462.36151 67891; 462.42549 17058; 462.75656 5581; 463.05496 188879; 463.36048 1622485; 463.58495 532903; 463.62882 60320; 463.76692 66024; 463.91693 304149; 464.55484 647240; 464.58597 32214; 464.69123 30023; 465.12305 22496; 465.49678 23837; 465.82856 1296848; 465.8755 4896; 466.346 2499754; 466.37 584556; 466.39354 70633; 466.4028 61307; 466.73152 22983; 466.84368 25217; 466.92169 30718; 467.23102 20611; 467.33398 23681; 467.51982 4206894; 467.53543 7090373; 467.7903 11213; 467.81697 23354; 468.20814 9083; 468.60355 53630; 468.92206 3937149; 468.93865 30348; 468.96529 161059; 469.03466 46952; 469.1597 76306; 469.37536 4618290; 469.4553 48808; 469.70765 3133548; 469.72037 9479; 469.81755 45502; 469.91774 70810; 469.92573 6581742; 469.95403 604505; 469.96817 20097; 470.21978 6750; 470.63572 3494; 470.84625 44261; 471.11145 705911; 471.30511 38107; 471.43839 724572; 471.43892 4386441; 471.88171 2765990; 472.05967 8859; 472.45891 335542; 472.49635 1433360; 472.52105 3695416; 473.07031 132497; 473.14769 24290; 473.42898 69072; 473.62542 55943; 473.6441 4729; 473.88676 34139; 473.88707 413573; 474.07408 4182272; 474.08942 26250; 474.19594 2625; 474.24084 1972560; 474.87577 20912; 475.12764 825285; 475.18576 51449; 475.20991 60655; 475.34678 6608; 475.37418 16323; 475.37748 26072; 475.71785 62137; 475.77706 40584; 475.92734 1754459; 475.95255 26492; 476.32404 2460737; 476.36892 1319153; 477.54067 56456; 477.58258 23331873; 477.77488 806889; 477.81174 1111783; 477.84244 47004; 477.99755 14419; 478.58943 129930; 478.90184 2270; 479.12149 3918; 479.1433 55674; 479.14352 1591; 479.54592 58954; 479.98249 37135; 480.43549 71727; 480.46563 28949; 480.9012 9314; 481.03 438975; 481.07792 24463325; 481.11853 2041241; 481.38707 5762292; 481.65177 24783; 481.68029 631201; 481.8696 7119; 481.99509 841489; 482.30079 118529; 482.70514 50676; 482.72423 3038072; 483.26645 5594; 483.4353 67361; 483.51459 48824; 483.68167 21823; 483.72702 149095; 483.7661 27156; 484.09701 19194; 484.13706 241764; 484.70138 4108; 485.20054 123; 485.52018 2626; 485.52819 1492; 485.605 73229; 486.04025 5103; 486.18468 446264; 486.29084 50954; 486.50052 44842; 486.73255 5799775; 486.78737 1846502; 486.86267 2117; 487.17933 2194; 487.42173 2546610; 487.45743 41851; 487.6842 904704; 487.70115 1835502; 488.13631 23373; 488.38491 26386782; 488.44678 1388911; 488.47557 622772; 488.67799 6554; 488.76742 5125399; 488.85714 27742; 488.97281 176969; 489.07041 4277291; 489.38883 34398; 489.42622 55298; 489.53534 8163799; 489.63857 886063; 490.3798 6821; 490.54927 440887; 490.63786 8690; 491.26967 29288039; 491.28327 2885; 491.59002 8102; 491.85464 5985; 492.08624 17865; 492.14941 31870; 492.18848 38908; 492.78157 67747; 492.83264 1904; 492.97219 7482; 493.0912 4707016; 493.17502 45626; 493.18302 79197; 493.97047 21866; 494.00495 28324; 494.35687 857058; 494.68601 710667; 494.72811 933469; 494.88868 212377; 494.91404 168365; 495.00671 25707; 495.0076 36035; 495.27212 25753048; 495.47714 2022487; 495.55068 8949983; 495.73331 62966; 495.87349 920870; 496.15752 9059; 496.48002 6751418; 496.50436 4377; 496.55389 127269; 496.70787 77839; 496.73436 12800; 496.84007 21542; 496.91693 50468; 496.97765 260; 497.05278 38577; 497.20549 2421025; 497.29413 6447731; 497.5678 993878; 497.59512 242545; 497.85041 508296; 498.09369 32435; 498.49203 350120; 498.51258 69788; 498.55624 1240485; 498.60914 2892; 498.61531 3885; 498.71366 52672; 498.86023 62470; 499.18837 35851; 499.43241 7047; 499.4429 4118540; 499.72821 29927; 499.88604 156574 diff --git a/traffic/traffic_5e9_1.txt b/traffic/traffic_5e9_1.txt new file mode 100644 index 0000000..22eefd3 --- /dev/null +++ b/traffic/traffic_5e9_1.txt @@ -0,0 +1,7 @@ +<1, 0>: 0.09268 4452060; 0.1824 1980468; 0.7416 52244; 0.84746 1348137; 1.50287 46613; 1.52535 24; 1.60405 28632; 1.6356 142861; 1.86228 682708; 1.87573 26810; 1.91445 23873; 1.96529 2924; 2.06692 601602; 2.0846 26697; 2.108 4831; 2.13287 34643; 2.17735 110697; 2.2771 178551; 2.44915 33004; 2.48052 28469; 2.73033 4516; 2.73988 8031115; 2.78972 139395; 2.95368 28571988; 3.86345 2643208; 3.99177 494197; 4.08975 1436305; 4.12463 161498; 4.47222 39278; 4.48775 23474; 4.4902 1413994; 4.55716 43054; 4.78295 9598; 4.90538 193388; 4.99751 67715; 5.13212 30219; 5.41891 25843; 6.15741 12018; 6.3759 1840421; 6.4662 47700; 6.62747 5855; 6.86279 1920308; 6.87252 5264; 6.98076 29968; 7.40195 4437127; 7.45703 137384; 7.64492 2558976; 7.96444 1712115; 8.30359 6463; 8.33341 5577996; 8.3818 396057; 8.40297 467511; 8.525 3093; 8.66814 47734; 8.76271 8554886; 9.18836 47125; 9.26442 33617; 9.28484 13139; 9.33409 3378819; 9.51393 56086; 10.34899 4073642; 10.63477 2873352; 11.09295 3789498; 11.33152 143668; 11.46701 445474; 12.07556 29263; 12.1645 75210; 12.2411 39774; 12.38344 246366; 12.39975 4693453; 12.46056 8549622; 12.47823 23727; 12.61427 64493; 12.87103 268321; 12.88861 50002; 13.00642 6862; 13.18379 1687; 13.28168 29166; 13.42177 748897; 13.45354 8857664; 13.61909 23673; 13.91902 6171563; 14.06343 63751; 14.0875 44536; 14.14621 59266; 14.14645 56698; 14.15225 61914; 14.19191 38948; 14.19365 5021; 14.27405 62259; 14.67057 41812; 15.13462 73145; 15.2867 5646; 15.52388 39982; 15.65084 59629; 15.83076 145; 16.19574 1553184; 16.46132 43926; 16.50119 4031; 16.61556 133426; 17.10417 337065; 17.19042 1233; 17.44632 26478680; 17.63759 87394; 17.66901 555306; 17.67738 67102; 17.7289 14848; 17.87828 1196780; 18.06137 3709443; 18.16439 62510; 18.21843 313465; 18.34573 3932468; 18.46797 4163139; 18.83508 55999; 18.97988 1075391; 19.00876 8098; 19.16484 29190; 19.73724 1459473; 19.87115 150914; 19.89485 2018431; 19.95908 67372; 20.02982 6738357; 20.1202 1395189; 20.18271 2949986; 20.25948 1431293; 20.62249 2170334; 20.82431 220796; 20.82819 20092803; 21.0345 49800; 21.32355 17604; 21.39045 50348; 21.45039 29767279; 22.02418 1443; 22.14123 29878; 22.8252 729455; 23.35154 4974769; 23.77347 3521732; 24.39406 171838; 24.90578 104164; 24.93124 4289426; 25.79891 31927; 26.37938 10742; 26.42269 4721531; 26.74156 8736; 27.05816 10259; 27.11344 4468687; 27.17526 14008; 27.81821 85844; 27.91212 20551; 27.93426 1445; 28.08966 44332; 28.12618 68249; 28.2341 27256; 28.37514 242311; 28.53804 16718; 28.60088 74174; 28.60704 502345; 28.63227 4104; 28.66634 25249; 28.79119 66804; 29.22124 23571; 29.96221 1032632; 30.08025 572376; 30.11397 69863; 30.1334 28058; 30.37981 32831; 30.49092 1713563; 30.51078 56534; 30.69899 751765; 31.30562 193158; 31.47253 5169; 31.95814 8176468; 32.40296 63902; 32.68358 26041; 33.07453 16818; 33.10515 458997; 33.16631 6360; 33.20956 3110764; 33.30009 52342; 33.37239 2038506; 33.47858 28040; 33.72601 91789; 34.04079 85448; 34.1418 68065; 34.16307 1172239; 34.25265 1012; 34.26791 23195; 34.27617 1721616; 34.39159 911255; 34.53597 788383; 34.67179 20151; 34.68887 8166; 34.76758 3983; 34.7743 46784; 34.87818 587864; 35.08464 2225631; 35.2199 908604; 35.45292 40903; 35.81457 137207; 36.05988 23145; 36.06016 43824; 36.18131 4018897; 36.94067 932190; 36.99432 46756; 37.09205 199895; 37.19158 12615; 37.25424 16362; 37.53649 2668942; 37.56257 38729; 38.12138 4267804; 38.55322 23932; 38.65223 46010; 38.73132 668229; 38.7332 1517165; 39.15444 142485; 39.71551 8767375; 39.91034 523190; 39.91942 900352; 39.92271 63444; 39.93246 2110; 40.12256 25230; 40.25682 3112527; 40.38529 59344; 40.44823 583; 40.47539 5925; 40.50609 8750; 40.83093 1224077; 40.92084 21150; 41.2336 7155132; 41.48357 1168040; 41.51109 9571502; 41.87148 3272; 41.98084 42392; 42.09115 1826355; 42.13913 39085; 42.83925 28182; 42.86036 5825527; 42.98209 51386; 43.00445 8931; 43.45414 283488; 43.47523 1931769; 43.63992 20264; 43.77875 7219878; 44.17179 28804; 44.19442 7109591; 44.24482 75665; 44.39366 8547; 44.53397 9061; 44.53594 5101146; 44.80493 2496628; 45.29201 8995; 45.35909 175819; 45.61998 4860; 45.67894 27427; 45.78765 18552; 46.33454 5093; 46.63293 33144; 46.72807 600477; 46.75551 101483; 46.94921 2572093; 47.03962 21585; 48.02197 1171007; 48.14245 1399289; 48.29536 77901; 48.32085 47406; 49.23741 75896; 49.26019 244798; 49.46857 754373; 49.57334 142486; 49.7198 75869; 49.98622 4463; 50.0738 5138; 50.14291 1446880; 50.2775 60591; 50.35387 12661474; 50.776 49725; 51.14748 25840; 51.22961 69069; 51.62022 187993; 51.75793 35201; 51.8064 161315; 52.04203 31892; 52.18659 19157726; 52.29029 1407438; 52.3619 802651; 52.48092 52804; 52.51836 577779; 53.05267 9920578; 53.07809 75609; 53.09971 108743; 53.13261 4798; 53.19967 1096590; 53.32085 4435012; 53.59594 1503143; 53.71196 60852; 53.76167 152744; 53.77737 8479987; 53.83034 3328806; 53.92723 3213057; 53.94136 4759146; 53.97699 12634; 53.98036 130212; 53.98778 1360377; 54.05995 8460499; 54.51632 30883; 54.59513 3567256; 54.62041 134023; 55.32277 70936; 55.33655 7469089; 55.5777 4064099; 55.80528 23383; 55.88746 1720647; 56.12273 51453; 56.17991 71806; 56.48661 164339; 56.59907 6301676; 56.73898 2717679; 56.99568 52421; 57.12803 26477; 57.4832 58084; 57.76207 38742; 57.77023 428322; 58.27834 635428; 58.42633 26682; 58.58539 3665222; 58.68946 5727; 58.77159 20022945; 58.82075 9970237; 58.94994 29894; 59.04277 48516; 59.0616 8448473; 59.18401 12032; 59.458 2417; 59.57637 65326; 59.85582 18707175; 59.98907 5652; 60.07014 1879718; 60.29303 6521509; 60.58365 651671; 60.97424 53574; 61.13734 1726875; 61.23421 1188526; 61.50953 9080; 61.51167 3417; 61.69654 42835; 61.86831 2695850; 61.90553 3305144; 61.98782 1530132; 62.77815 16587; 62.92213 5705; 63.34254 4402; 63.75682 638730; 64.19601 1271817; 64.33133 2800830; 64.39783 2471653; 64.78431 114592; 65.07791 5995395; 65.09156 71303; 65.4269 45106; 65.49651 2730; 65.57441 31660; 65.73348 150090; 65.7531 26727; 66.14121 1486913; 66.1432 820438; 66.25594 1437; 66.31993 4733956; 66.59148 6283645; 66.69339 225; 66.77269 3241034; 67.11484 21851; 67.24534 112700; 67.28547 4105788; 67.38462 25303; 67.84421 7603383; 68.18985 2365182; 68.28967 920; 68.35012 56685; 68.75657 851634; 68.94936 37474; 68.95611 21451110; 68.96823 1444652; 68.98814 7444; 69.04034 2088231; 69.05299 2426792; 69.08768 110546; 69.11032 890401; 69.15469 26658; 69.8541 6363564; 69.91209 68037; 69.92665 9850; 70.12478 3302215; 70.32343 7287316; 70.43202 42085; 70.55479 37731; 70.66926 24165097; 70.75378 22270; 70.85013 55587; 71.19225 1147; 71.32697 287289; 71.49996 21384; 71.95325 1613261; 72.02458 66350; 72.51238 33283; 72.8454 74808; 73.04242 21686; 73.06871 7364; 73.30781 10109; 73.55491 29964; 73.57797 130152; 73.72992 54911; 73.94284 28185; 73.98688 53252; 74.15839 32561; 74.27149 79420; 74.3494 4728599; 74.36795 1220011; 74.38894 51601; 74.64592 6535197; 74.65371 70633; 74.69527 802427; 74.90737 2114; 75.04331 1478184; 75.0972 4831; 75.31306 31823; 75.34081 4714857; 75.45155 23661; 75.95912 765400; 76.08531 764929; 76.20892 71238; 76.32905 20891; 76.75443 18642867; 77.00323 66228; 77.02485 3271393; 77.2951 634361; 77.91716 55360; 78.03382 149406; 78.17735 9294; 78.31065 9745534; 78.46914 106521; 78.60921 57095; 78.67879 69535; 78.81872 46500; 79.33737 1297184; 79.78475 1699954; 79.84997 3998; 80.01074 31339; 80.48939 4850214; 80.7983 1609362; 80.86418 7097; 81.06465 529; 81.26313 2529172; 81.28959 26434; 81.66211 22279; 81.76832 1992423; 81.80447 50826; 82.17448 26016; 82.3106 72703; 82.35348 9817; 82.38492 8503154; 82.45405 905116; 82.61463 4827582; 82.75939 26670; 82.92237 844361; 83.06256 5058; 83.14491 1305000; 83.29069 54534; 83.60726 105967; 83.63798 40575; 83.7647 56553; 84.13504 1232985; 84.52891 579154; 84.65677 119; 84.77424 19940; 84.78164 4815115; 85.53162 27246110; 85.55215 25492; 85.60758 14246585; 85.83298 26012; 85.84142 4811; 85.8824 716; 86.10422 22843; 86.14648 68165; 86.32249 51060; 86.63371 22095; 87.24418 4708208; 87.48998 95139; 87.51999 7299; 87.53094 2579068; 87.61398 8161; 87.6808 336106; 87.97979 2621; 88.14616 711651; 88.33005 7149; 88.52093 4554300; 88.57956 63192; 88.84314 36076; 88.91069 2649167; 88.94411 8514; 89.43356 2294207; 89.60196 23039544; 89.83599 2685947; 89.85022 7687479; 90.14218 35597; 90.50496 23130; 90.59626 24256; 90.72933 4512483; 90.91734 3850554; 91.10424 25289; 91.42716 638566; 91.7013 71205; 91.73912 71896; 91.74046 7461; 91.74318 1746872; 91.9739 48909; 92.01301 9483; 92.05772 97137; 92.09983 17740; 92.47187 15751; 92.66816 1316030; 92.77689 26453; 92.82632 36434; 92.99054 264548; 93.03417 5394441; 93.34598 36719; 93.99561 552449; 94.09311 255178; 94.29565 611443; 94.71915 4044423; 94.81769 23732; 95.0309 19450; 95.10848 474605; 95.43888 36096; 95.5753 60159; 95.6174 4023; 95.77404 20993; 95.87765 933393; 95.97183 3571519; 96.61099 6760; 96.99389 7752; 97.11997 1701663; 97.25802 16460; 97.42045 1623806; 97.452 52435; 97.49915 55142; 97.59699 32128; 97.63685 7348; 97.92637 53425; 97.99404 68826; 98.13098 1426531; 98.17445 6255906; 98.27602 70842; 98.54465 2708890; 99.02865 850; 99.4466 1520421; 99.52553 4401047; 99.75985 22722; 99.79592 1989226; 99.94988 6159021; 99.97843 75238; 100.22148 772967; 100.22377 4444118; 100.26404 4654; 100.28883 22716; 100.55627 8586; 100.8213 8254; 100.91466 4181; 100.94097 4601; 100.96481 836023; 101.05873 49653; 101.25282 377088; 101.97563 22332; 102.07232 442514; 102.12405 11111903; 102.35154 71646; 102.38057 22348; 102.54178 40437; 102.64839 1102146; 102.85827 1629622; 103.04955 394237; 103.05008 9967562; 103.22947 3511549; 103.28225 3147689; 103.32991 29341; 103.45332 70127; 103.67298 26625; 103.70343 39911; 104.25705 20883; 104.26737 39797; 104.31715 47077; 104.60788 8903695; 104.69029 22676; 105.16166 18350; 105.20003 3273564; 105.24932 25794; 105.42741 43987; 105.67062 779; 106.0794 28173; 106.48173 704958; 106.54463 74557; 106.58998 330634; 106.59256 3044945; 106.6734 33156; 107.32582 1697719; 107.52744 43458; 107.5674 2457; 108.00636 28852; 108.24895 8081805; 108.36466 2457815; 108.57823 568091; 108.88031 2555802; 108.92694 3989; 109.07678 34698; 109.37966 10875; 109.41793 164015; 109.94932 8721939; 110.23099 1368746; 110.32837 69372; 110.4139 9641600; 110.5069 5208; 110.9513 68140; 110.98779 51; 111.41635 33922; 111.79893 26590; 111.81958 198703; 111.88109 33742; 111.90935 3565; 112.13307 21490; 112.27616 164256; 112.36261 2899509; 112.4988 149834; 112.67944 21767; 112.69863 124979; 112.74687 50791; 113.04622 4522458; 113.33833 684130; 113.4447 1842170; 113.52745 1010; 113.83888 7809; 113.97024 8598131; 114.2375 5603612; 114.30058 531300; 114.44811 54510; 114.4694 33742; 114.74526 1296608; 114.75651 18356; 115.11463 8870427; 115.19293 64115; 115.31598 9131781; 115.49535 3367490; 115.7273 95451; 115.94819 4565884; 116.12313 22350; 116.58602 2048; 116.65871 58159; 116.70141 131548; 117.09355 155098; 117.1102 5999; 117.24907 295509; 117.41567 46067; 117.43659 7159289; 117.63236 17027; 117.74472 1899028; 117.8079 1370891; 117.84804 10410; 118.05409 856; 118.14998 4194; 118.31931 439873; 118.53404 37318; 118.74193 4482482; 119.11283 1691111; 119.46227 2601808; 119.71914 3508; 120.01188 63081; 120.01323 8701623; 120.23643 58580; 120.40242 4763143; 120.4718 5796; 120.65949 86949; 120.69991 22445; 120.70853 2349138; 120.94494 6032905; 121.00811 23728; 121.42067 805865; 121.55991 799558; 121.60275 1867757; 122.18276 35517; 122.71069 2848918; 122.79028 22430; 122.83401 3723269; 122.96336 14586; 123.06485 4412410; 124.06104 4391; 124.07844 62199; 124.61105 756769; 124.72331 10084; 125.03548 4661965; 125.65699 1787597; 125.75854 10381; 125.90273 34309; 126.18058 994464; 126.2407 26551; 126.34512 2788351; 126.48706 4875; 126.65572 4396336; 126.89471 29982; 126.91646 11576; 126.91867 29983030; 126.98827 6276; 127.17136 77020; 128.09392 28310; 128.16716 27353; 128.38628 9377; 128.43573 13920; 128.5292 6148; 128.92868 34157; 128.95456 75735; 129.07916 39779; 129.18452 106473; 129.23442 9244; 129.29309 1705; 129.5813 3877905; 129.5951 1819; 129.87722 28815; 129.95559 19667; 130.1341 2411018; 130.20731 1387962; 130.50777 1876804; 130.73266 9535; 130.80627 27081; 130.91877 26601; 130.94458 34095; 131.12967 83076; 131.26406 1145589; 131.27725 5515; 131.33767 816630; 131.35297 1899083; 132.14569 1162; 132.26417 1372898; 132.30118 29085; 132.30529 5689232; 133.17487 3576405; 133.21269 5065; 133.24137 480971; 133.35383 32870; 133.42336 176362; 133.76804 63887; 134.41193 9439526; 134.57959 24391; 134.65712 48965; 134.71084 1806103; 135.23404 3816; 135.77733 2406678; 135.77816 3791; 136.0241 175877; 136.53892 78532; 137.03023 20734076; 137.04353 4656861; 137.1105 66420; 137.23141 2720; 137.30473 27001; 137.75958 574057; 138.03186 657571; 138.56997 1720800; 138.90559 7748787; 139.20135 22938; 139.66735 3614165; 139.68627 6577040; 139.72588 8753; 139.78532 1264430; 139.8847 65278; 140.06772 4772570; 140.29899 481083; 140.42569 941353; 140.50452 925107; 140.91773 1805675; 141.21426 53384; 141.89288 5734710; 142.12257 259405; 142.50421 6269440; 142.7692 4879239; 143.10164 245; 143.50165 137; 143.59375 12919019; 143.64948 44082; 144.07356 11665898; 144.25106 4323; 144.37175 30615; 144.71114 190400; 144.94395 66429; 144.96947 26048; 145.07751 77656; 145.08918 127588; 145.25337 8548606; 145.30926 4806917; 145.4392 59799; 146.27852 5362; 146.34791 28347; 146.35364 8068369; 146.60671 120461; 146.96746 68775; 146.97981 27147; 147.20264 4656948; 147.62197 4107956; 147.81415 53821; 147.83196 7118514; 148.06308 47744; 148.09522 7696216; 148.20036 30790; 148.34265 249109; 148.64959 4752471; 148.97526 3079040; 149.06989 26964; 149.11623 1641974; 149.14472 755; 149.31848 66290; 149.47277 882216; 149.53954 55010; 149.67585 62140; 149.84439 93449; 150.32349 1540640; 150.38221 10400156; 150.53913 57867; 150.87676 20113; 150.94385 8146; 151.02942 2013446; 151.08599 23472; 151.17 6002; 151.35616 3061030; 151.38305 78235; 151.67932 468069; 151.72144 9254132; 151.86197 861775; 151.90651 573609; 151.93085 49576; 151.98023 4607299; 151.99807 39466; 152.18195 40068; 152.28244 4023211; 152.6677 60884; 152.71631 47250; 152.72285 2729659; 152.75945 687891; 152.79477 279753; 152.83203 1403; 152.86765 452677; 153.16713 47892; 153.3906 136824; 153.55394 1760936; 153.60209 4905234; 153.72078 1427; 153.85346 171595; 153.9465 6219; 154.10965 122297; 154.16787 96864; 154.22158 58; 154.28594 2739622; 154.36374 24179; 154.3655 9035; 154.58519 30211; 154.62781 9678; 154.9212 29959; 155.34244 4144280; 155.43544 20021; 155.77608 59948; 155.9736 23425; 156.0722 55556; 156.24015 7004058; 156.325 3024880; 156.36727 70310; 156.67871 4940882; 156.96247 1623166; 157.17027 2005237; 157.51025 19903; 157.56848 33644; 157.6967 2869607; 157.70721 19941; 157.8017 1738; 157.92816 9091; 157.93189 19233; 157.96017 26713; 158.46302 381774; 158.67375 1982266; 158.91324 16387; 159.33603 72775; 159.44985 143119; 159.60786 3667; 159.71481 78310; 159.75752 29630; 159.87566 158641; 159.91614 5890; 159.9729 5445; 160.00567 57531; 160.44997 1950058; 160.57082 791; 160.596 19370; 160.63947 9162514; 160.72596 9659430; 160.81443 3749549; 160.83572 4851; 160.92128 15175043; 161.28553 4096; 161.78147 77172; 161.78684 3264393; 161.81732 861088; 162.08096 12764; 162.15866 7001; 162.24652 9147097; 162.27698 178970; 162.58529 1222619; 162.92726 20234; 162.9317 3618002; 163.33741 1951089; 163.40415 18142; 163.53727 27934; 163.61046 3402409; 163.80897 149596; 164.18108 2949152; 164.28785 2209752; 164.37202 38233; 164.49321 8069665; 164.73829 5077; 164.76018 9743; 164.80886 995249; 165.50143 20734596; 165.5102 6168387; 165.52385 181118; 165.53253 8466; 165.59956 153446; 165.72193 7440; 166.03755 15317; 166.20202 124423; 166.45854 6669394; 166.53698 32072; 166.57087 197596; 166.70959 3384936; 166.72868 43417; 166.79276 1633540; 167.00792 20481; 167.13149 7461; 167.40124 5525; 167.42968 4969030; 167.64049 1324527; 167.92141 181397; 168.1315 3937083; 168.34267 3911764; 168.45552 72967; 168.45624 12366; 168.50308 6123232; 168.7659 1403908; 169.41257 21832; 169.42537 20274; 169.48894 390958; 169.55075 79308; 169.57369 978572; 169.61049 7997769; 169.74584 69784; 170.42321 11592145; 170.46022 75315; 170.65679 25824; 170.80133 36220; 171.07769 14053; 171.46518 45225; 171.47967 234698; 171.52826 3651439; 171.53869 76490; 172.13112 9657005; 172.28812 702; 172.5875 49057; 172.75018 61848; 173.17062 71898; 173.18055 21094988; 173.22794 7538366; 173.35184 1041777; 173.44265 68323; 173.83644 26877383; 174.20152 1478921; 174.43491 158450; 174.75632 1815838; 174.86334 1455640; 174.87544 115996; 174.88905 33375; 174.93314 194125; 175.26332 851709; 175.86412 21186; 175.97305 78305; 176.0535 3424518; 176.16181 9014; 176.33324 50596; 176.41244 220908; 176.46832 2153836; 176.50299 29606847; 176.69303 2188483; 176.81959 766183; 176.8646 175008; 176.96925 6612; 177.49809 630211; 177.9526 5275875; 178.21706 6058; 178.38482 249248; 178.47917 4115555; 178.56728 6887135; 178.64636 260353; 178.83301 28367; 178.84698 1054654; 179.04866 9074; 179.2578 2027595; 179.26136 15475; 179.48362 4195; 179.5822 18922325; 179.65904 36005; 179.93928 124963; 179.97986 7524818; 180.04518 1127806; 180.10949 943464; 180.16456 57263; 180.76739 48748; 180.79627 49941; 180.80442 4043543; 181.11501 9294; 181.25141 102603; 181.373 1545957; 181.55481 21961; 181.76652 7292; 182.09681 558; 182.11627 49493; 182.38884 55400; 182.39956 6007618; 182.47509 25315; 182.66944 3739; 182.67603 37992; 182.86331 975309; 182.97577 4377436; 183.08208 24373; 183.17586 6325082; 183.19787 10202552; 183.62326 1734867; 183.75855 15748; 184.05813 7418; 184.33599 171628; 184.76591 65451; 184.77697 24612; 185.1311 9207098; 185.13649 67814; 185.40905 542205; 185.44831 15982; 185.66701 2721685; 185.756 2028015; 185.82086 8572; 186.12323 23040097; 186.17702 783488; 186.38523 453560; 186.42102 347993; 186.45107 4683746; 186.47701 469305; 186.70237 9049; 186.80474 9979; 186.80844 1908283; 187.01221 1500907; 187.22809 81334; 187.39651 34769; 187.64693 23421; 187.89914 974; 188.0969 4566; 188.28848 3973996; 188.37248 20331; 188.39534 705090; 188.73261 16783; 188.8344 85586; 188.94176 17532; 189.13377 29034; 189.14149 1864285; 189.52483 14750; 189.91002 2643; 190.08615 15513; 190.28108 16724; 190.29623 5895927; 190.30128 443739; 190.4283 153589; 190.47827 4377461; 190.60814 886834; 190.77574 1024153; 190.79864 20266; 191.17376 80429; 191.35543 1755862; 191.43357 28396210; 191.58741 1724924; 191.80792 35569; 191.83692 1412286; 191.84143 4537; 191.87448 4738804; 192.11571 11785; 192.27646 184752; 192.60883 64922; 193.26612 75551; 193.41545 34770; 193.54276 4834; 193.643 116285; 193.87837 915973; 193.92284 1368; 194.0158 50999; 194.09299 8660065; 194.21727 48626; 194.59251 6715; 195.07045 7665; 195.1971 58968; 195.28859 29896; 195.33226 90210; 195.34979 11932; 195.93908 22152; 196.34399 65935; 196.36965 66493; 196.49147 48569; 197.16671 39494; 197.47119 57392; 197.48991 1533784; 197.56255 60764; 197.58033 4064; 197.70046 103277; 198.00775 32552; 198.04878 1710817; 198.15372 34589; 199.01408 27698; 199.05772 2002; 199.14528 3865427; 199.16797 461297; 199.75623 75907; 199.76127 35651; 199.77196 746081; 199.80657 29936; 199.826 678267; 199.95804 791171; 200.15658 122622; 200.56089 6697; 200.71009 25503; 200.81692 26623; 201.31694 3267421; 201.57954 716854; 201.99997 14726; 202.0022 2648834; 202.24959 2124; 202.36255 53306; 202.49594 18496; 202.5563 4658237; 202.68545 195470; 202.70347 79609; 202.85147 2973197; 203.18969 78553; 203.21916 1188684; 203.25631 1412521; 203.27891 21218; 203.36175 755887; 203.47769 43725; 203.52179 349651; 203.5561 2751; 203.62821 9408; 203.82144 44423; 203.90576 672890; 204.00504 1432110; 204.01235 35561; 204.04124 1595810; 204.24755 73658; 204.71907 29593479; 204.92031 25274; 205.11468 74514; 205.18287 88989; 205.33856 3071075; 205.48288 26155000; 205.51764 31060; 205.53806 20856540; 205.57559 763497; 205.99513 8828; 206.0832 96568; 206.32536 55823; 206.88226 15078; 207.4357 93298; 207.44683 5027; 207.46555 6491738; 207.51987 5123; 207.70354 251; 207.75057 4453; 207.81569 1305502; 208.17296 1815904; 208.19242 21109; 208.33346 1851; 208.65978 599679; 208.88728 77436; 209.06147 7398297; 209.20685 5860; 209.38154 7450204; 209.60638 26728; 209.61091 6426153; 209.66057 972503; 209.69135 5362595; 209.78717 25509; 209.80562 4135411; 209.92008 49964; 209.96563 20888; 210.27533 923008; 210.44243 461834; 210.77882 6904797; 211.21334 4032501; 211.22581 9510; 211.38307 1766816; 211.47042 1461914; 211.53066 27434; 211.6086 38639; 211.68798 7662651; 211.82551 9040314; 212.05772 31372; 212.11983 699110; 212.26401 8030; 212.4257 31644; 212.433 1527926; 212.49656 19672; 212.59064 323311; 212.75793 19933175; 212.84388 13739889; 212.93766 52183; 213.18426 69381; 213.24392 192390; 213.56084 1229186; 213.6245 719; 213.6505 6178; 213.86462 148255; 213.92347 5020; 214.09787 1232; 214.31365 1156; 214.70921 889836; 215.21658 45430; 215.22424 21693; 215.5443 45956; 215.77415 59562; 216.23104 24317937; 216.4034 4978595; 216.51972 3628960; 216.58509 6467; 216.87398 5527965; 216.90189 1399261; 217.31303 8908; 217.33618 42200; 217.41238 21685651; 217.42415 13961; 217.85407 1798; 218.10858 746022; 218.21505 33327; 218.26179 157710; 218.34579 4323; 218.52113 1301126; 218.69669 128450; 218.897 623253; 219.00308 33235; 219.23457 3535; 219.31437 32568; 219.82274 37390; 219.98924 542247; 220.14649 8423; 220.61143 10650; 220.89398 3983295; 220.95512 24119; 221.16174 28700; 221.18635 1337090; 221.75114 6804; 221.75942 46637; 221.84288 71700; 222.25887 12571; 222.85659 22505; 223.29721 7740; 223.3687 2134020; 223.37437 37388; 223.42148 55769; 223.73367 67179; 223.77348 42694; 223.80012 40488; 223.87537 5543; 224.01082 1670227; 224.3798 3422; 224.89021 533025; 224.93861 3105504; 225.10166 137929; 225.16638 61216; 225.42985 54745; 225.52126 20885; 225.72397 8798; 225.81094 48951; 226.07978 56550; 226.12185 2797; 226.13656 7065; 226.33009 1261564; 226.57633 59883; 226.73443 33494; 226.96718 4831504; 226.97323 4857336; 227.24836 1808627; 227.28552 35973; 227.46323 79646; 227.53225 79110; 227.64416 8585112; 227.81251 8714726; 227.9624 9154051; 227.97162 9023; 228.056 1901702; 228.4143 5248459; 228.49158 12633; 228.5537 2833102; 228.58228 545453; 228.99967 18038; 229.14911 1812229; 229.20136 9595; 229.34829 245537; 229.35386 16537708; 229.38026 59718; 229.60213 67171; 229.69459 6937526; 229.7193 3306019; 230.00695 42981; 230.07643 37617; 230.08837 23731281; 230.59334 29569; 231.15266 9402; 231.24829 42621; 231.26417 41727; 231.36664 32033; 231.41944 8911; 231.52377 25557; 231.59835 684542; 232.22074 23391; 232.31973 75354; 232.5993 7238210; 232.6505 26106; 233.2309 112851; 233.77677 132955; 233.98633 7995; 234.03341 24452; 234.05332 4728457; 234.08363 45766; 234.17037 9485688; 234.56761 6210295; 234.72498 518261; 234.78243 1558735; 235.40253 4136; 235.71906 4829; 235.95591 17223; 236.01282 49463; 236.13559 42175; 236.63036 3209578; 236.63081 24650; 236.63307 9172336; 236.73873 2079818; 236.79107 25831; 237.16936 1983; 237.20937 740883; 237.28351 6485; 237.32309 5319; 237.38617 3209184; 237.51392 20715; 237.56533 3682; 237.56934 1196684; 237.67744 68476; 237.78858 16611; 238.00021 74978; 238.12283 51996; 238.18447 8280; 238.49153 68281; 238.65762 27733; 238.88944 4580; 239.13465 27616; 239.14417 114885; 239.30816 5818648; 239.41348 1007482; 239.42093 1379976; 239.58497 2005648; 239.69934 4157; 239.75584 1433905; 240.063 332; 240.11699 3758167; 240.13749 46110; 240.18427 1272643; 240.45872 679354; 240.52426 44035; 240.81509 33995; 241.57891 28984; 241.83437 8065267; 241.98252 29035; 242.05507 62092; 242.07755 1091; 242.18626 62140; 242.31549 6852; 242.50995 31082; 243.44587 797140; 243.47926 40909; 243.71622 223234; 243.87901 7353; 244.34704 4670; 244.42743 609377; 244.46529 327106; 244.91722 75226; 245.2526 8828; 245.6844 5342132; 245.93269 25036; 246.02622 944196; 246.11666 75139; 246.30487 40078; 246.48746 1885; 246.53544 9657; 247.0847 11647; 247.24323 4093; 247.3434 8418524; 247.61743 703558; 247.67136 12725; 247.72399 4574051; 247.76052 2874; 247.78624 88123; 247.8463 46135; 248.01895 5934; 248.07272 6820; 248.29841 2175; 248.57283 3082621; 248.68321 3744155; 248.72888 23770; 248.93431 3562255; 249.00359 95750; 249.04682 14143; 249.30292 763711; 249.3531 1168272; 249.40026 878188; 249.42932 20367; 249.55308 3270; 249.75201 168118; 249.92906 5380; 250.39975 637760; 250.48761 42449; 250.52404 1072829; 250.65053 166937; 251.08934 28339062; 251.27688 876; 251.37557 25527; 251.41554 70282; 251.73076 3668; 252.48809 13310; 252.50282 46307; 252.74587 53397; 252.83682 38923; 253.09159 801385; 253.2686 16035804; 253.43646 156479; 253.67937 75478; 253.72992 53293; 253.76279 18026; 253.78959 5328; 253.85724 63824; 254.07113 30756; 254.12996 1284402; 254.25493 3553531; 254.34631 1279; 254.97129 427895; 255.09544 9139; 255.48489 703384; 255.65634 76511; 255.69378 10572785; 255.86142 4178266; 255.93231 5104; 256.19406 57833; 256.52604 65815; 256.6173 45314; 256.67942 119468; 256.68341 58693; 256.78376 1075935; 256.95891 54814; 257.12241 682823; 257.13557 7802; 257.16176 22081959; 257.4916 1525214; 257.49399 644687; 257.82278 946304; 258.10256 14936; 258.66067 6283; 258.71615 115485; 259.40231 2645816; 259.65646 4182306; 259.68126 101723; 259.71386 24872; 260.17212 3143187; 260.19678 8460786; 260.46977 323358; 260.54415 2189256; 260.58866 62339; 260.67053 2634817; 260.89288 48801; 261.00374 67366; 261.20785 7203; 261.30209 255255; 261.39759 4961; 261.84558 71684; 261.95334 24805; 262.00384 1246; 262.0831 46034; 262.25083 1810868; 262.43765 14500858; 262.4749 51935; 262.96559 43576; 263.05603 47870; 263.08054 41328; 263.16949 68061; 263.19474 53629; 263.52485 1919411; 263.56692 132190; 263.57188 59246; 263.72542 899650; 263.83627 1988246; 263.87349 76105; 264.42719 8399418; 264.75412 10115; 264.77626 1950811; 264.80174 2983339; 264.85517 6756042; 265.05412 19913; 265.16843 967581; 265.49571 27238; 265.59167 30005; 265.65203 43712; 265.66021 2959552; 265.67795 10145; 266.23003 8982; 266.38461 195930; 266.43 19505; 266.4338 18467; 266.59884 32886; 266.75352 18004; 267.01225 126991; 267.02785 4281650; 267.02941 100577; 267.14793 6401409; 267.15923 12489; 267.53265 3898; 267.55067 21464; 267.77311 465638; 267.78062 3605906; 267.81037 52071; 267.84346 9574; 267.91376 6528753; 267.9394 685; 268.17815 18683210; 268.18672 710; 268.21631 8179; 268.32171 24127; 268.32677 1434240; 268.32773 1599876; 268.37829 35387; 268.58344 8700; 268.65482 45352; 268.76955 6292702; 268.83723 5915263; 268.96272 1028519; 269.09072 53046; 269.53255 73464; 269.56788 173983; 269.59383 519294; 270.34159 1983209; 270.39006 21674; 270.60334 3254407; 270.68355 1983789; 270.82985 59971; 270.97464 8454; 271.22986 26462; 271.67979 13044; 272.04781 2464352; 272.34606 3084; 272.42274 56959; 272.43019 1454710; 272.65729 120594; 273.25716 49396; 273.67416 20861; 274.15491 53220; 274.27149 78489; 274.33454 6863026; 274.34681 3118107; 274.54003 3231; 274.91326 20807527; 275.134 9993; 275.32035 2261943; 275.41663 6550150; 275.44782 39297; 275.631 17570997; 275.66873 28712; 275.73749 24627; 276.83029 5925; 276.89796 23846; 277.24626 4231410; 277.29648 79287; 277.61439 26234; 277.97448 16228; 278.0496 9332601; 278.08907 26063; 278.13746 1154088; 278.69423 4349107; 278.81543 432905; 279.07606 6433; 279.13283 69688; 279.1473 30748; 279.28353 63478; 279.42187 37646; 279.51826 79538; 279.86402 4996670; 279.8923 27550; 280.0622 5425305; 280.15399 63498; 280.24661 26103; 280.60206 54250; 280.69457 185854; 280.78793 9393; 280.78905 4345447; 280.93553 385688; 280.992 792966; 281.07111 25199963; 281.19847 26961657; 281.46206 2743385; 281.53884 72830; 281.67829 169086; 281.69457 1618721; 281.7246 1454398; 281.95502 31638; 282.72763 42492; 283.0046 67048; 283.10129 1679052; 283.15372 1497400; 283.2002 27514086; 283.20372 90080; 283.2305 1945340; 283.2503 1625257; 283.32448 25901; 283.3666 1439619; 283.79724 32897; 283.83978 36555; 284.15209 118712; 284.18087 54730; 284.31635 79454; 284.35253 59719; 284.59927 5638631; 284.66676 1731419; 284.88395 3140590; 284.94107 669102; 285.83198 58016; 285.8925 1963441; 285.99362 4159353; 286.06148 12424; 286.23511 4893817; 286.71385 864041; 286.86395 630; 287.09379 33584; 287.13585 459120; 287.42345 6255747; 287.87886 63894; 287.93046 1577752; 288.27356 9374; 288.53465 43043; 288.60405 2870877; 288.97365 44448; 289.27847 1001467; 289.49834 52619; 289.59212 744134; 289.70122 158865; 290.91398 78151; 290.94343 16982; 291.34233 55804; 291.38096 23557; 291.84537 5173117; 291.90711 4332956; 292.26948 8850; 292.27679 15833; 292.30323 65553; 292.93572 70396; 293.15177 59191; 293.42438 19834; 293.59916 5300295; 294.17702 4812157; 294.23297 70634; 294.52812 69076; 294.57148 4614491; 294.61844 72706; 294.94767 69219; 295.56729 2005362; 295.62271 70589; 295.73599 2652444; 295.84514 13208; 295.88953 72460; 296.1076 9722; 296.57449 42470; 296.58633 20813; 296.81652 1923265; 296.90705 799; 297.10099 2485; 297.47693 340565; 297.78405 67140; 297.78432 38786; 297.96545 8175; 298.01939 24243; 298.1908 20381; 298.2297 5022; 298.72825 2701; 298.84567 51572; 299.20861 9193; 299.34286 4978623; 299.63169 198443; 299.79528 93121; 299.91133 160109; 300.20332 9442; 300.33834 2692; 300.64708 49778; 300.72696 77348; 301.10697 14857; 301.29382 84559; 301.43575 41233; 301.55207 160667; 301.59288 325806; 301.61033 2912569; 301.84265 60391; 301.89685 115015; 301.9977 37209; 302.16685 71231; 302.33407 1605971; 302.40401 87291; 302.41968 23822; 303.05744 27631; 303.29715 1021; 303.52197 41514; 303.54794 2011; 303.98684 8987544; 304.20055 548103; 304.32504 38296; 304.56124 771763; 304.62701 2354866; 305.2475 24037; 305.39762 306; 305.7235 48907; 305.79869 55028; 305.92295 128968; 306.53463 23187957; 306.57483 4000372; 306.80714 26475; 306.88067 51872; 306.94847 12073; 307.53875 117664; 307.62146 28497; 307.63462 1930058; 307.93672 7013; 307.97121 9190315; 308.36658 4849; 308.54861 4460; 308.59795 357370; 308.71238 2881519; 308.86718 14480; 308.89017 46855; 308.89568 5500675; 308.96287 8949; 309.01703 54453; 309.04987 43236; 309.14883 1048677; 309.2085 78846; 309.56159 74698; 309.69587 2297616; 310.03076 944396; 310.20555 22596; 310.27244 47649; 310.82779 28298; 310.99162 21006; 311.51172 7483256; 311.52492 4013716; 311.56937 762352; 311.69826 17631408; 311.95507 66821; 312.25873 9349469; 312.64557 55013; 312.67899 837; 313.06103 1139739; 313.07305 53890; 313.16341 8070; 313.18239 11569; 313.36468 42249; 313.49643 1133083; 313.75229 1197; 313.95292 9718; 314.11018 18936; 314.3011 10933; 314.33499 90501; 314.6397 27845668; 315.2138 993; 315.34827 1112305; 315.35488 30327; 315.48913 2939901; 315.72016 3213; 315.87869 74995; 316.02444 412251; 316.09159 680; 316.19543 53345; 316.3871 67164; 316.5227 13903; 316.53057 76328; 316.81957 780; 316.91987 1609; 316.92613 2687992; 317.1442 12079; 317.15917 1949085; 317.66225 1352987; 317.70758 20683694; 317.78656 29106; 318.01414 2228697; 318.06378 189696; 318.24764 15340; 318.27352 103798; 318.28322 2008768; 318.44185 76668; 318.51892 8386; 318.53991 9028352; 318.92165 4396702; 319.20201 7451; 319.43593 27061; 319.56186 22838; 319.71076 5165401; 319.84822 77274; 319.86233 5343495; 320.19693 12580; 320.30488 69875; 320.41297 67847; 320.5044 1522752; 320.62701 164720; 320.68734 8372; 320.79591 42335; 321.047 31722; 321.15266 145956; 321.38768 1076004; 321.54867 9095451; 321.66199 40824; 321.79031 79774; 321.82558 27701423; 321.96386 47690; 321.97882 47373; 321.99588 2224067; 322.29744 20587; 322.34205 4857; 322.54032 30337; 322.67851 711; 322.92303 9671; 323.18099 5141; 323.22309 305509; 323.29325 8486438; 323.72663 3677; 324.05918 1183086; 324.13226 29238; 324.19539 1040727; 324.40414 67779; 324.57193 19367; 324.6589 9471; 325.37783 446123; 325.50251 8660; 325.57773 1857811; 326.11997 3982480; 326.27649 6428897; 326.37418 3625; 326.98451 3348107; 326.98865 3191; 327.18011 212; 327.23309 793; 327.28036 24457; 327.3783 9819394; 327.56776 180408; 327.61584 56627; 327.65197 39832; 327.82483 3363720; 328.01939 7186196; 328.41505 728; 328.7971 1068895; 328.8449 9725283; 328.95127 63411; 329.44054 3232970; 329.46285 1433354; 329.46993 1839404; 329.54027 26127281; 329.65349 70667; 329.70835 210071; 329.79009 31154; 329.92985 698595; 330.08198 34779; 330.351 20243; 330.41955 3705; 330.68387 1994020; 330.72804 625973; 331.24758 11899; 331.60073 1176; 331.88561 77901; 332.05522 1849112; 332.17232 1486097; 332.3198 439856; 332.49845 3728175; 332.62968 836526; 332.80081 3644; 333.17487 1353500; 333.17895 1070785; 333.21571 4790073; 333.21613 264273; 333.68673 551771; 333.69181 22248; 333.70811 2065; 334.36475 19112; 334.4348 5065; 334.47016 1942826; 334.53494 7474; 334.68667 162569; 335.46256 57982; 335.59919 21173; 335.78851 41603; 335.95338 1334; 336.28909 4499118; 336.67383 7814; 336.68195 47330; 336.69316 327550; 336.87268 7183176; 336.95696 65875; 337.09695 7577; 337.09696 8473019; 337.65804 41013; 337.68863 8558; 337.97313 25442; 338.06946 16051; 338.35506 977777; 339.44202 3787; 339.5 1676106; 339.63015 26527; 339.64858 4659373; 339.97843 106389; 340.16771 5514; 340.2356 27745; 340.48837 137890; 340.51957 48977; 340.5341 43146; 340.70756 2085429; 340.74157 66100; 340.82375 145000; 340.88963 2699996; 341.12831 1115158; 341.44423 9280; 341.44803 37443; 341.45915 1835435; 341.8751 62007; 342.06899 29950; 342.20331 9927672; 342.20962 976062; 342.49711 5157; 342.5884 7723; 342.67015 116924; 342.71742 55781; 342.8259 1945450; 342.88504 75163; 343.38296 3076980; 343.43069 800; 343.8909 806748; 344.17199 128459; 344.19298 5059938; 344.3172 53883; 344.80315 16088; 344.80631 24654; 345.1873 4201040; 345.8671 6743; 346.17637 21564; 346.25003 15179; 346.54517 24298872; 346.72757 25139; 346.73704 5339; 347.00733 45496; 347.32311 7870; 347.49081 61790; 347.54094 422214; 347.62429 53606; 347.76624 3465768; 347.99112 24937; 348.10274 910562; 348.19283 25536894; 348.53234 28787; 348.53446 10120; 348.56566 992703; 348.69957 77; 348.80496 9203949; 348.80736 3615562; 348.96757 1326758; 349.07544 24591; 349.12154 10540; 349.14921 6827245; 349.17058 33958; 349.62419 6719; 349.74471 9928926; 349.87823 59471; 350.10836 1755969; 350.39909 780089; 350.52902 45849; 350.72609 4345505; 350.75068 76918; 350.91293 10865; 350.94823 1523387; 351.3373 4418; 351.42345 37098; 351.95666 9356; 352.00593 1459066; 352.04714 3359176; 352.08719 29342; 352.11835 63424; 352.66201 30006; 352.73525 68817; 353.06081 3657331; 353.24218 2815151; 353.37085 1166925; 353.46326 51303; 353.64128 151175; 353.68129 1688780; 353.89166 151431; 354.03752 63903; 354.03927 41996; 354.34523 19504; 354.51164 1841366; 354.70767 21362; 354.86227 16880; 354.90461 30684; 355.03683 29881; 355.30474 6303587; 355.41974 24630; 355.48136 27476; 355.80892 117195; 355.93237 71203; 356.03638 1607076; 356.12576 116226; 356.16131 48198; 356.17542 69651; 356.35882 199588; 356.63632 17511; 356.70339 2400; 357.273 15027; 357.28214 130033; 357.56974 39382; 357.78552 4203793; 357.8023 3577176; 357.96722 1881998; 358.22277 25443; 358.36687 8317; 358.62813 25541; 358.6625 14225816; 358.72304 4661791; 359.24936 13057430; 359.422 8643; 359.55984 6492; 359.83446 23065; 359.96019 37802; 360.25209 6335; 360.37512 30514; 360.41914 13247; 360.56204 178878; 360.68028 9316; 360.94725 28574; 361.05753 56184; 361.1949 2364; 361.32397 37798; 361.45892 55750; 361.86785 678176; 361.98966 67797; 361.99913 160215; 362.04214 1295912; 362.22729 29391460; 362.67751 187090; 362.77961 104155; 362.8439 59137; 362.91664 3873968; 362.92365 61532; 363.02031 9879742; 363.0291 53580; 363.11312 23741; 363.25021 1561150; 363.43384 1591578; 363.71433 51425; 363.90168 4085948; 363.90189 3556736; 364.06556 77799; 364.61735 47380; 364.65328 9598; 364.95724 8027117; 364.98926 59844; 365.16161 1325151; 365.5564 24422; 365.56967 16704; 365.86018 61573; 365.98007 21345; 366.07119 3980; 366.10508 6411; 366.30034 42885; 366.30477 191656; 366.38645 1790642; 366.41892 20077; 366.54047 52261; 366.79574 7301; 366.91988 30595; 366.9489 105397; 367.01879 4734363; 367.13299 16458291; 367.1347 5210798; 367.29167 4962358; 367.52881 224; 367.75354 1502368; 367.95972 46461; 368.08593 50350; 368.46987 27287; 368.58698 8502; 368.63177 3605854; 368.70491 29421842; 368.83451 2232873; 369.23468 40911; 369.2858 55583; 369.36756 28040751; 369.47524 20242536; 369.55948 5052; 369.70393 64591; 369.97839 75538; 370.16835 695576; 370.20404 21246; 370.23558 6671; 370.33227 33198; 370.33541 7297; 370.34106 7693272; 370.44877 2739; 370.49787 407341; 370.86241 25630912; 370.91638 33163; 371.0539 27872; 371.90855 44827; 371.99769 54999; 372.1278 6837; 372.31971 5864; 372.36454 2886; 372.50355 4176603; 372.69707 99837; 372.90984 78018; 372.94226 49448; 372.98758 3332584; 373.02536 56007; 373.06745 33258; 373.69316 1919371; 374.15142 195881; 374.20178 4183; 375.35436 5907; 375.66714 36845; 375.77326 76409; 375.79729 507085; 375.85081 15359340; 375.88352 24599; 376.06826 2323942; 376.18761 7631; 376.40331 35279; 376.49179 8322; 376.60734 250908; 376.9802 2643414; 377.1622 426631; 377.3727 3515453; 377.7786 87235; 378.45932 5565; 378.61885 23384; 378.99814 23677; 379.17749 38183; 379.66345 4557; 379.70849 53853; 379.87535 38715; 379.89552 71703; 380.10403 7155; 380.12016 34556; 380.44699 3512653; 380.51398 28766; 380.55983 525724; 381.11166 1304; 381.22757 8225805; 381.40089 4937536; 381.58778 491990; 381.91123 1414551; 381.91133 1737920; 381.91965 63124; 382.00349 66158; 382.42975 8406761; 382.9077 4248527; 382.93188 10161; 383.07386 10504; 383.24364 26945; 383.59213 699661; 383.83207 2733806; 384.0257 65931; 384.51321 130742; 384.5199 59921; 384.65575 2832422; 384.70769 25929; 384.82922 9394775; 384.98891 8083; 385.4048 285711; 385.41746 76876; 385.48839 9000599; 385.60644 45424; 386.13232 27838; 386.20335 1867217; 386.26138 240755; 386.74079 226066; 386.8174 48135; 386.99277 1643995; 387.15666 3826; 387.4208 75800; 387.58171 38090; 387.79493 27795; 388.87483 1134657; 389.23153 27910; 389.26527 2652028; 389.27516 53197; 389.28006 1777464; 389.29321 571645; 389.43176 6863869; 389.59244 66914; 390.02668 4085; 390.08349 54143; 390.29181 937959; 390.38267 69384; 390.40367 7934; 390.4558 3937289; 390.61267 1464631; 390.62809 13255; 390.64483 13130; 391.09226 56195; 391.20084 64153; 391.42754 1805; 391.50728 488372; 391.98825 53236; 392.05123 27438; 392.18647 35751; 392.28023 273004; 392.34587 3836414; 392.43191 68585; 392.57991 1103723; 392.6083 62740; 392.78593 25425; 392.86556 48585; 393.14217 5871733; 393.4542 77524; 393.50698 66723; 393.72367 4901; 394.03063 6146; 394.20498 27849; 394.38299 2594394; 394.60886 19493; 394.63862 218973; 394.71828 63027; 394.81245 115534; 394.88067 9929; 395.01459 889920; 395.04427 4234479; 395.05658 192325; 395.06888 51146; 395.07683 27344; 395.16645 18364548; 395.30278 7592; 395.50083 1375367; 395.90319 22254; 395.95629 3806131; 395.97319 188333; 396.21317 2448; 396.22593 47866; 396.75625 534934; 396.83563 72826; 396.85263 4755; 397.02857 1965; 397.10948 684292; 397.20874 8022814; 397.43128 4802; 397.47934 149202; 397.50082 662466; 397.56461 4738308; 397.60753 42671; 397.75323 71357; 398.16716 25329; 398.35438 4171; 398.7261 2460106; 398.76057 749300; 398.88777 1386534; 399.11981 19713; 399.15978 4778201; 399.24366 3555265; 399.31916 984644; 399.44593 49437; 399.54624 11567; 399.60429 132451; 399.6466 21154; 399.83909 24889; 399.90782 25212; 399.96231 730218; 400.11084 1133928; 400.19613 4073; 400.30735 173692; 400.95191 25553; 400.9857 1105; 401.09447 156609; 401.12267 839; 401.22795 63042; 401.4751 4205784; 401.55288 8608; 401.56818 4916471; 402.05959 3951; 402.20717 98840; 402.42793 632778; 402.64445 2863597; 402.96872 14587; 403.30145 76696; 403.41956 41448; 403.46049 1105383; 403.70761 2953989; 403.81588 61993; 404.00426 3425728; 404.03156 4710; 404.19792 18005549; 404.22696 5569; 404.40183 4571913; 404.42308 5846472; 404.46261 55621; 404.90917 494583; 405.26413 1763817; 405.28241 4166143; 405.54992 6808507; 405.55545 2122; 405.56265 40950; 405.7143 63827; 406.13188 7568254; 406.22249 5354; 406.43743 127478; 406.5398 33540; 406.66493 49428; 406.67271 8536107; 407.19239 1797210; 407.29696 4972; 407.64098 3087149; 407.7319 1531645; 407.95243 4250607; 407.95557 24637; 408.05649 6258457; 408.13883 1012825; 408.18482 170780; 408.26668 1337889; 408.38853 4090859; 408.43549 55338; 408.53344 15701; 408.539 48445; 408.63308 161709; 408.63844 9636; 408.83342 28328; 408.86295 72273; 408.97722 19697; 409.50923 5822; 410.18743 8347; 410.25968 1660873; 410.60604 468687; 410.77818 3339230; 410.84003 6294071; 410.95374 39880; 411.1517 28377; 411.3319 1832120; 411.39652 62587; 411.46051 2876630; 411.83975 1354289; 411.90496 46396; 412.22357 1827180; 412.32673 14215; 412.37178 24137; 412.57181 4271679; 413.30226 4681651; 413.3847 1681738; 413.40707 145135; 413.41357 7347; 413.47576 4228; 413.49393 38082; 413.54615 678684; 413.83118 3889916; 413.93838 104934; 414.14439 1698958; 414.38701 1653443; 414.67703 2955028; 414.7394 65662; 415.04082 4661641; 415.20575 504136; 415.23889 951987; 415.29584 922887; 415.43224 864703; 415.45033 1747620; 415.49752 747558; 415.56603 24799; 415.5844 5689; 416.1646 148555; 416.23993 1491905; 417.34357 29795; 417.39766 20889; 417.41443 464308; 417.53705 4942512; 417.6052 23404; 417.66506 5970940; 417.67064 24608; 417.99695 46071; 418.15753 658459; 418.24607 4622; 418.49464 2203105; 418.93717 52484; 419.10921 580424; 419.14912 138951; 419.16895 834841; 419.3378 3950; 419.53233 1365921; 419.59816 12898; 419.77954 692098; 419.87701 1702145; 420.0254 8446; 420.1601 31140; 420.34635 1444543; 421.06745 2728201; 421.21389 180747; 421.6441 1522; 421.68731 42038; 421.72389 24192; 421.76125 10179994; 422.00366 1133869; 422.13525 1457149; 422.40681 22594; 422.44781 1796; 422.59254 76200; 422.63441 714401; 422.72623 55015; 422.85053 27035265; 423.1488 36344; 423.18332 339809; 423.4582 7614559; 423.46575 604639; 423.54723 41934; 423.64329 8003; 423.73116 10583; 424.07554 3471531; 425.06764 69886; 425.34667 2487417; 425.37937 2279270; 425.43355 8055142; 425.52627 24440; 425.5388 11250214; 425.61115 54867; 425.81459 426202; 426.09592 23442; 426.12523 3415356; 426.12624 28762; 426.18102 2293; 426.6056 39254; 426.75448 672372; 426.8012 75795; 427.45418 4133442; 427.63555 6986928; 427.6393 2744079; 428.30142 4080447; 428.42601 4974; 428.57634 69484; 428.84776 15289; 428.9822 162296; 429.00181 76124; 429.00984 119484; 429.17209 159928; 429.18989 1205; 429.24776 8696; 429.42162 1018725; 429.61623 3028804; 429.66517 1928634; 429.70722 1452458; 430.00695 1355593; 430.08026 235894; 430.32104 1636; 430.60029 48834; 430.65096 127291; 430.68646 1651719; 431.47361 58495; 431.6163 15969303; 431.73983 140269; 431.75523 49376; 431.78508 55496; 431.80164 4095; 431.80971 2367946; 431.81371 50185; 431.82733 11818; 431.87186 175961; 431.88521 1249001; 432.04229 1776431; 432.42746 2266569; 432.57987 3992092; 432.81234 74527; 433.11444 21116; 433.12881 1714250; 433.14016 7364; 433.35677 69208; 433.60166 8241055; 433.6084 2553937; 433.8972 13717; 434.28112 74820; 434.85497 24375; 434.97662 3715; 434.99311 3399799; 435.06022 2767; 435.09878 1935454; 435.18929 40502; 435.29261 1511232; 435.62882 28347343; 436.06437 8451129; 436.29629 2105682; 436.51903 29937; 436.71705 12532603; 437.03135 30013; 437.05799 3401223; 437.45589 1337619; 437.85157 13558; 438.31728 7649387; 438.39599 75770; 438.85168 6413; 439.22261 1723458; 439.25041 64745; 439.25453 8156404; 439.26787 38532; 439.53598 6842384; 439.64491 25782; 439.91499 3129985; 440.02389 7939706; 440.13806 3130616; 440.37607 27554; 440.48361 8002322; 440.605 474965; 440.68659 1551565; 440.94171 17896; 441.14331 2317829; 441.20349 1269; 441.28973 57335; 441.6283 1584; 441.82877 447; 441.84791 4779946; 441.86121 9803990; 441.9887 3470274; 442.118 50521; 442.76429 154620; 442.88793 158389; 442.92913 66394; 442.95986 13291; 442.97367 2789487; 443.27242 7016794; 443.27948 20488; 443.29853 4725993; 443.35678 22582; 443.39744 523627; 443.75842 14118; 444.22098 7677528; 444.29298 52805; 444.48145 2940170; 444.5511 22575; 444.86343 1507635; 445.05457 1916056; 445.05653 1704887; 445.17666 683881; 445.22783 2025; 445.3994 189374; 445.43383 3871543; 445.67575 128822; 445.70024 21753; 445.83504 1462; 445.97778 7308509; 446.16468 541115; 446.29596 4754355; 446.44494 1448222; 446.52971 63630; 446.58108 20914; 446.74845 54440; 446.79069 18027; 446.98514 46131; 447.10243 1636456; 447.48272 194236; 447.55252 58521; 447.74295 31724; 448.02512 4631; 448.20646 223000; 448.21922 25769; 448.23978 346008; 448.55113 2057591; 448.769 45592; 449.05746 4655289; 449.5288 2844225; 449.5976 19905993; 449.78311 68429; 449.92981 48487; 449.95749 8788168; 450.17067 4534814; 450.21858 41123; 450.28474 16323; 450.73497 7922057; 450.73813 62853; 450.80331 4019; 450.85561 4788609; 451.20195 1198964; 451.23926 56948; 451.29985 85968; 451.60676 6944728; 451.6428 574276; 452.35633 119119; 452.42194 9213313; 452.64944 5980; 452.67742 31000; 452.76907 2045; 452.7854 5661897; 452.79637 7527; 452.82483 5950024; 452.86926 7721283; 453.25544 579385; 453.47069 2317865; 453.62382 63468; 453.70477 23228; 453.82078 1323814; 453.93305 8890920; 454.05866 39554; 454.12263 2887; 454.13469 43639; 454.35603 466626; 454.36187 5345; 454.36249 56609; 454.42185 565822; 454.4246 1152299; 454.51717 60206; 454.59156 62305; 454.89552 736370; 455.17289 68260; 455.4049 5675; 455.47555 48490; 455.53721 2030254; 455.72354 415709; 456.02485 48794; 456.29222 5727; 456.31044 25059; 456.44556 9388; 456.67339 5690020; 456.83181 2038; 457.0558 41161; 457.10211 26602; 457.27563 6934153; 457.55031 111137; 457.6263 30182; 457.7056 4630273; 458.01467 79879; 458.23898 1520202; 458.45038 3461969; 458.54371 1969; 458.90312 8965; 458.94738 735718; 459.92773 55521; 460.34549 59909; 460.52653 46939; 460.71975 5064657; 461.07743 38643; 461.46738 19891; 461.52687 1555057; 461.90053 107211; 462.0281 43348; 462.17944 25413; 462.42578 1696402; 462.65414 154514; 462.83531 80086; 462.93656 50289; 463.04628 9337162; 463.11127 39572; 463.15901 1282100; 463.613 8497; 463.62922 51328; 463.6905 4947675; 463.91476 21493; 464.21557 18934256; 464.22012 32999; 464.25572 8782686; 464.27829 25639; 464.49137 3883457; 464.62723 51054; 464.95266 1817638; 465.01951 162506; 465.06215 26360; 465.42891 4794614; 465.53521 66987; 465.60879 706; 465.70417 45837; 465.9485 31611; 466.08011 5263462; 466.36894 1451275; 466.5925 9595; 466.9182 1253716; 466.99964 4688396; 466.99995 3785; 467.71781 119620; 467.83907 36267; 467.93824 1806118; 467.98189 7151011; 468.09139 28263917; 468.11209 78464; 468.26909 26370628; 468.4229 45051; 468.95106 14072; 468.99757 78421; 469.07695 24396824; 469.30756 2844509; 469.35178 16463; 469.64502 55283; 469.78109 26500; 469.82484 8666203; 470.27129 781; 470.53908 894541; 470.63744 61719; 470.64883 46628; 470.92602 4145; 470.93065 1712614; 470.95777 40831; 471.16312 3030910; 471.24051 77793; 471.32251 5943; 471.64086 5607; 471.78732 1692553; 471.7993 4167020; 472.58901 16490839; 472.7034 29024; 473.22022 102516; 473.31779 14129; 473.67484 3135; 474.01788 46185; 474.20458 42362; 474.7454 8840; 475.09424 1619; 475.24769 7313; 475.39741 4839409; 475.49341 32598; 475.55321 5506; 475.59797 20860; 475.80899 34220; 475.82012 47108; 476.0483 1109872; 476.34759 1749823; 476.36699 1378; 476.55303 43298; 476.84013 57137; 477.07916 88425; 477.13132 15891; 477.34983 6108178; 477.47966 261436; 477.52582 8219271; 477.74526 61489; 477.88236 4204; 478.06198 28729; 478.10671 2753745; 478.2317 23058; 478.3294 478667; 478.35541 6672984; 478.6905 62451; 478.69404 33437; 478.82651 125193; 478.88312 5682; 478.94361 4705; 479.04638 9970; 479.08888 66235; 479.26465 9556; 479.38146 1558729; 479.40127 4952; 479.6986 3236; 479.77899 54365; 479.80918 8957; 480.01027 14583255; 480.20771 28410; 480.31925 63198; 480.45618 4296; 480.48385 37823; 480.85066 1240; 481.04609 28613; 481.1631 54580; 481.42498 600809; 481.55443 714423; 481.90788 1209704; 482.1669 23782; 482.41119 8732151; 482.56178 69267; 482.66823 6386864; 482.76336 7739; 483.01023 75378; 483.08196 75493; 483.13634 22501724; 483.2491 57236; 483.24947 5016; 483.37612 175; 483.58689 400760; 483.60074 14633955; 483.71065 11311; 483.7537 4854; 483.79764 65908; 483.86418 2924909; 484.14776 28927022; 484.63131 337120; 485.08257 119769; 485.11073 65829; 485.12144 8831095; 485.2352 2596; 485.55271 3624175; 486.18837 64663; 486.19546 4236538; 486.46438 3788; 486.597 45451; 486.61148 135155; 486.78036 1504740; 486.99042 99948; 487.0595 1251607; 487.18162 1887777; 487.29758 1727591; 487.32612 27206836; 487.60801 6135; 487.66633 1365517; 487.85245 69246; 487.9186 45561; 487.93717 1005026; 488.15426 1691662; 488.42877 2956004; 488.66018 373; 488.81147 2949023; 488.94196 66162; 489.07978 3382740; 489.21522 18134; 489.22364 7902; 489.24799 6665; 489.46876 4577970; 489.82414 9849504; 489.97503 17906; 490.16929 397707; 490.42324 1062076; 490.84328 11060; 491.32351 585140; 491.50817 439200; 491.66663 3080924; 491.77731 1436103; 492.09907 140800; 492.34151 1500374; 492.60054 1307230; 492.89855 16749; 492.99164 5032430; 493.38254 3338060; 493.59969 46797; 493.70174 3838; 494.09489 807986; 494.42447 20688; 494.49704 22410; 494.5389 3454915; 494.74685 767; 494.74957 25891; 494.85218 2850483; 495.1233 74179; 495.27544 35420; 495.71433 1748328; 495.81193 72029; 496.26638 1233446; 496.39791 57633; 496.96453 6318349; 496.97949 2495293; 497.15463 1802952; 497.33227 9813; 497.42924 187834; 497.47383 27848; 497.55158 4194708; 497.60896 63580; 498.18693 31975; 498.20677 49776; 498.28346 6808266; 498.52657 607425; 498.73526 292171; 499.01243 44476; 499.4996 41939; 499.52773 2074386; 499.63422 3105241 +<1, 2>: 0.04273 42742; 0.16044 4483; 0.241 4295157; 0.28317 3561; 0.44974 379075; 0.66962 21645; 0.91634 67382; 1.05885 55320; 1.17264 73562; 1.22338 2475; 1.293 13628; 1.32504 52024; 1.71776 70895; 1.76931 7516; 2.44833 79151; 2.5053 956; 3.48795 5314085; 3.51988 44898; 3.81171 1260; 3.89438 1116193; 3.91376 6380; 4.05299 3362118; 4.28962 8552; 4.30127 28968; 4.37833 95152; 4.64413 15203; 4.76156 387840; 4.87318 26652; 4.93206 283546; 4.94765 384527; 5.16596 60925; 5.35522 7660; 5.44649 514454; 5.62326 734438; 6.01874 35103; 6.4596 3242378; 6.476 150556; 6.7598 11079401; 7.03383 63375; 7.69783 28451; 7.74314 37720; 8.0884 4803373; 8.15093 41995; 8.2208 76170; 8.2803 1614111; 8.54958 29869; 8.62764 66534; 9.25403 3596609; 9.56169 2958; 9.62845 58042; 9.93169 39592; 10.14498 9770931; 10.20988 798538; 10.27726 777734; 10.30797 75449; 10.47868 857172; 10.89025 1710110; 10.91011 46015; 10.97101 47884; 11.20456 429733; 11.40342 297873; 11.72923 79448; 11.8675 11801; 11.99126 54588; 12.14679 30276; 12.47086 36906; 12.4984 2436; 12.49848 904189; 12.57421 3977100; 12.74408 4726; 12.85707 3487933; 13.08961 3515202; 13.1499 1830145; 13.59621 4966; 13.66288 2876334; 13.89398 34088; 13.94282 1856557; 14.27241 22824; 14.27861 2616351; 14.29842 1791708; 14.39787 25369; 14.41703 1644320; 14.70087 126784; 15.35082 20723; 15.41213 652162; 15.58427 22841203; 15.78977 21686; 16.04374 7718987; 16.0566 2123449; 16.06805 2619027; 16.0937 1742004; 16.25853 68777; 16.36032 4996194; 16.94833 9211460; 17.00411 9145; 17.45966 1243258; 17.6178 47704; 17.89029 190122; 18.12783 28694; 18.41017 5851; 18.47968 830758; 18.71769 1838; 18.87388 914; 18.87632 6335; 19.02454 907; 19.16674 822891; 19.2566 52960; 19.36955 75887; 19.49322 23593; 19.53327 20785; 19.75015 4396810; 20.00052 75113; 20.34812 4117202; 20.57279 15762722; 20.8988 1532375; 21.06763 21823; 21.23422 1712096; 21.38028 60574; 21.62658 4422262; 21.63882 5531368; 21.87868 2187; 21.90813 1745682; 21.98324 22725; 22.07082 1046490; 22.18291 92476; 22.27156 1921544; 22.34235 1069; 22.36151 42492; 22.83921 199; 23.14375 4760816; 23.25709 2464; 23.31589 1079963; 23.42992 19740557; 23.77828 85799; 23.85077 29281; 24.52716 5434815; 24.67155 58050; 24.74352 74349; 24.85863 9425531; 24.86058 77205; 24.90076 198686; 24.97717 8820; 24.99863 3509; 25.60024 41493; 25.87733 8943; 27.04618 551196; 27.40461 46535; 27.72436 1104200; 28.02269 1765942; 28.21137 70133; 28.2521 195962; 28.26192 331404; 28.3389 1210330; 28.47548 41280; 28.6107 36244; 28.81149 2351; 29.41322 21132; 29.92893 287621; 29.99922 733648; 30.00874 105015; 30.03222 18714; 30.07591 4737538; 30.20134 2292; 30.2345 15330; 30.29561 3206267; 30.37314 23037; 30.83855 54377; 30.97815 23768119; 31.0103 200218; 31.09714 28453; 31.25362 1552612; 31.75268 63074; 31.83056 3353433; 32.04884 1654272; 32.0643 65962; 32.09331 22370; 32.10446 936; 32.25728 10383; 32.33609 17358643; 32.41619 7494842; 32.46091 8417; 32.63215 37765; 32.68083 4744524; 32.86531 4381; 32.88706 12728; 33.00584 12537; 33.2927 72165; 33.58213 1401949; 33.79552 993540; 33.9354 46486; 33.96717 11096; 34.28197 3281; 34.30965 285340; 34.60103 24218792; 34.62319 74551; 34.665 36790; 34.71919 704773; 34.72694 76305; 34.87994 43327; 34.93331 5398794; 35.53436 26425915; 35.68206 78289; 35.81732 290695; 36.27453 4706837; 36.3697 5679164; 36.62081 35904; 36.69245 1783873; 36.79885 8646037; 36.85418 20803; 36.92774 56343; 37.25452 26557; 37.4843 271786; 37.4997 35426; 37.54484 20130; 37.94615 14755; 37.97321 8009; 38.3043 35273; 38.35234 55991; 38.74967 29838; 38.76553 3741646; 39.26517 8323324; 39.30184 1887560; 39.50792 1848383; 40.02954 10641024; 40.40957 5329; 40.46149 144; 40.69747 21799; 40.83088 45042; 40.96228 5024; 41.19089 4678369; 41.6057 1866321; 41.69735 1573757; 41.75914 4821010; 41.93756 69872; 41.93932 133963; 42.03043 4532467; 42.04186 1373329; 42.20524 25414; 42.23128 473834; 42.29199 61194; 42.35944 69288; 42.55181 655255; 42.5557 19975; 42.56445 74811; 42.66593 65046; 42.74105 40537; 42.81437 14837; 43.26283 31154; 43.352 48030; 43.42818 779349; 43.58088 1539211; 43.59846 3796913; 43.84564 4210090; 43.87464 70922; 43.88275 504688; 43.9664 2492154; 43.97468 623793; 44.43005 3190614; 44.53456 6818150; 44.85546 49959; 45.11099 24471; 45.15019 376798; 45.51181 63718; 45.52923 27861423; 45.54031 75527; 45.55668 19919; 45.57402 46168; 45.64219 221446; 45.94857 745612; 46.54747 2466; 46.5686 32157; 46.94426 5591499; 47.04598 15937; 47.05442 8722; 47.23926 64377; 47.35572 349497; 47.77569 42632; 48.08983 3929542; 48.14127 43319; 48.19421 5718; 48.2341 271562; 48.38784 68032; 48.57014 54004; 48.70844 438515; 48.72673 58276; 48.998 25683; 49.09341 70575; 49.13461 617775; 49.24726 56121; 49.31253 1857176; 49.78141 3478517; 50.02397 48866; 50.286 27744565; 50.46077 6677; 50.52244 132; 50.76964 130121; 51.07184 29296227; 51.11017 4604527; 51.2988 1613; 51.38775 13268365; 51.47453 18104; 52.17318 32378; 52.23102 17260; 52.60882 9668; 52.73092 1207016; 52.98259 695690; 53.0033 578765; 53.17661 6436; 53.20894 3505255; 53.24393 6244727; 53.48522 57280; 53.68415 36017; 53.84662 1918805; 53.85627 48221; 53.85653 20712615; 54.22722 4296; 54.52775 64588; 54.83461 2892722; 54.98181 9899; 55.22803 4603609; 55.30202 5505907; 55.36456 491842; 55.5577 6110850; 56.0076 40777; 56.06687 67726; 56.23055 22345; 56.37833 26973; 56.50966 5439897; 56.93567 105827; 57.19777 56795; 57.21541 1063478; 57.2477 48880; 57.4779 638441; 57.50305 4097; 57.63917 7885625; 57.71389 4831278; 57.75277 46033; 57.78828 10468702; 58.06226 12213; 58.32309 77261; 58.37265 53149; 58.451 37729; 58.5099 606033; 58.51967 5049; 58.66412 26939; 58.9411 6447; 58.99426 4120067; 59.07704 29564; 59.20958 27663; 59.55812 28739; 59.66949 260530; 59.80341 311633; 59.89001 67123; 60.08517 7572347; 60.14033 133637; 60.35758 11016; 60.43863 926638; 61.0321 4457190; 61.11936 53664; 61.23493 935295; 61.57427 8008079; 61.60487 51520; 61.6583 6405; 61.8522 59331; 61.86584 570484; 61.94417 249930; 62.15757 3092174; 62.23314 19192801; 62.24995 8340190; 62.41135 6979; 62.81668 403857; 62.83166 23877; 63.36953 58849; 63.37565 3468659; 63.83768 52035; 63.85333 2864226; 63.98664 22100; 64.00059 19339; 64.42688 50930; 64.4888 4637662; 64.5307 128885; 64.98868 7167584; 65.49638 29588; 65.57481 4134527; 66.30367 5013; 66.34876 21946; 66.57785 3290916; 66.59372 9305; 66.68252 2045141; 66.80058 25404; 66.8023 1755393; 66.96678 26607; 67.07861 179538; 67.16706 29756; 67.53641 662622; 67.85231 20204; 67.86736 20748635; 68.62477 21893; 69.48432 9998; 69.70977 31012; 69.77375 295355; 69.94925 1531190; 70.07077 19983; 70.08869 1991530; 70.47568 5586; 70.5586 4670; 70.57193 3562; 70.60924 569525; 70.63658 15629; 70.90262 123974; 71.0414 27747561; 71.20594 19607; 71.25055 41899; 71.35172 5429; 71.62581 1403037; 71.65133 6453808; 72.15183 2076; 72.23102 341501; 72.26825 60769; 72.35723 49446; 72.52493 496; 72.60545 1980367; 72.85866 22597; 72.94386 199214; 73.05312 8006977; 73.4856 79381; 73.51677 2840488; 73.71373 9405; 74.01773 2227; 74.3924 2507606; 74.42125 63854; 74.43088 35412; 74.91878 8249240; 75.26425 1522840; 75.32236 604933; 75.41022 46851; 75.47502 592745; 75.53244 4350; 75.53864 35539; 75.55241 69185; 75.63016 47760; 75.81244 46175; 76.06522 6792081; 76.08038 23004; 76.64506 8291; 76.76087 23197; 77.30445 2017283; 77.41389 7982; 77.49775 85483; 77.73453 106192; 77.90184 26248; 78.45982 619200; 78.76529 24225691; 79.05329 662326; 79.11885 67766; 79.12292 151276; 79.51708 21825514; 79.58789 29298238; 79.82413 3296545; 79.83448 9372; 79.99161 74999; 80.00677 20016; 80.10382 33981; 80.14655 808784; 80.71632 113902; 80.75962 77316; 80.8555 46925; 81.12113 10693483; 81.26451 118824; 81.35306 1869611; 81.54148 28921; 81.67265 121167; 81.75155 46016; 81.85729 64819; 81.98981 2688600; 82.06284 23941; 82.4461 14607; 82.56992 1135165; 82.7274 6910; 82.75351 8004; 82.83525 18229; 82.96925 6353; 83.21227 9414955; 83.46945 2435941; 83.67569 3305; 83.67855 4320623; 83.70239 44920; 83.95915 52980; 84.31385 5357; 84.36649 22437111; 84.99619 1762126; 85.03689 25014; 85.07709 70782; 85.43317 2285711; 85.50511 865142; 85.54081 25077; 85.65859 78441; 85.86146 2671515; 86.08734 8457287; 86.34501 77516; 86.52444 645; 86.88321 25099; 87.12211 983577; 87.1925 57051; 87.27996 2980782; 87.306 4435499; 87.34604 6261609; 87.409 32959; 87.4447 44167; 87.58019 1006985; 87.59916 27285653; 88.06092 49321; 88.12137 14593358; 88.52169 1165467; 88.79651 40197; 88.85236 8729796; 89.01207 735791; 89.20208 24892; 89.25223 93171; 89.5899 75585; 89.83388 5941; 89.88302 8390; 90.05783 27014; 90.14601 24172; 90.36101 672852; 90.55843 3732832; 90.66592 24637; 90.93498 36371; 90.98627 79020; 91.0683 4112132; 91.34274 35024; 92.03079 1088; 92.61591 4924981; 92.72202 24097; 92.8665 150436; 92.94718 24316; 93.2364 166141; 93.28359 1136225; 93.81928 677380; 94.23524 36870; 94.39887 4305861; 94.41219 9802; 94.50348 905995; 94.57127 2886619; 94.97516 9437777; 95.01304 1013; 95.19899 271482; 95.33761 73783; 95.38639 138628; 95.41689 3625; 95.45809 41793; 95.49734 1682710; 95.64304 6431470; 95.66295 30563; 95.75171 320524; 95.88128 1005430; 95.93081 26876; 96.38308 9192; 96.43692 34327; 96.90951 70353; 96.94627 9446; 97.00345 1573098; 97.22683 77983; 97.51572 3124; 97.93515 22052; 98.52711 6310007; 98.67137 43703; 98.67434 1271944; 98.68549 68785; 98.97043 49344; 99.10534 27514; 99.13659 2690091; 99.16099 105954; 99.32864 5160; 99.44253 20739; 99.57248 29286; 99.6671 20570; 100.04081 22463; 100.20149 8826706; 100.36661 1675561; 100.49113 7615683; 100.56856 28533; 100.83092 1348677; 100.84556 640828; 101.01722 4819; 101.11432 7305073; 101.21356 40120; 101.52268 50794; 101.93038 776848; 102.7309 167715; 102.841 4024566; 103.123 61764; 103.25411 179879; 103.32319 3024090; 103.88083 3218561; 103.92465 7277616; 103.95956 29822; 104.41563 47; 104.57519 193980; 105.02726 2979; 105.12462 45300; 105.51873 43765; 105.75539 24561; 105.79794 29722; 106.04477 46104; 106.69363 111968; 106.69659 3464098; 106.97957 10333233; 107.09644 40763; 107.45321 5812; 107.70895 5089; 108.51414 55634; 108.59959 4482939; 108.73047 7725; 108.86619 11209049; 108.88799 24144684; 109.16632 4981; 109.85645 440555; 109.96403 6523; 110.00951 40546; 110.06523 7524; 110.23421 21197; 110.25288 8522337; 110.26704 20495; 110.26927 98349; 110.27997 52363; 110.29448 66101; 110.38172 1931799; 110.42076 1891593; 110.72039 7138; 110.80275 4363414; 110.85229 1021527; 111.03491 1666346; 111.11526 8060; 111.21455 982501; 111.2189 62832; 111.40178 133097; 111.54225 1143796; 111.56121 64278; 111.62593 37907; 111.99669 67774; 112.48158 32941; 113.04555 23815; 113.23504 36758; 113.25691 40186; 113.30699 151281; 113.38569 58607; 113.7247 4765894; 113.99105 1431080; 113.9968 48195; 114.15801 9514975; 114.19821 2234441; 114.20605 15934; 114.2736 14452069; 114.38838 151940; 114.72068 321681; 114.85076 7603593; 114.87105 4761421; 115.06135 123618; 115.14836 53050; 116.20583 23154; 116.27329 68363; 116.67436 205675; 116.75631 6841; 116.80371 1093; 116.86153 3988788; 116.89356 190730; 116.8996 27956255; 117.36638 4524326; 117.37983 4794176; 117.38416 46864; 117.52766 1006749; 118.18405 2160; 118.21923 2901490; 118.28262 56725; 118.83595 109758; 119.04043 4473097; 119.07713 37997; 119.15276 18594; 119.55897 1852190; 119.95105 2840; 120.01075 6214; 120.48811 69438; 120.4893 4720; 120.68547 8192899; 120.83406 1797181; 120.89125 52478; 121.02095 9996; 121.10923 111573; 121.29091 645880; 121.43024 2291381; 121.76765 70890; 122.24827 9887485; 122.81449 2744261; 122.94242 459806; 122.96444 64267; 123.69272 31575; 123.98636 23447802; 123.99911 29968; 124.41018 229844; 124.62241 110; 124.66332 4487350; 124.6968 119474; 124.71632 29893; 125.02377 725412; 125.12438 7402; 125.18896 141395; 125.19954 60701; 125.242 852373; 125.6099 1523543; 125.91765 57698; 125.93757 12674; 126.26189 2581882; 126.28772 54331; 126.36104 877072; 126.41934 66321; 126.46855 1889347; 126.61259 6470782; 126.78846 43789; 127.02811 1998184; 127.30751 8062102; 127.50372 579217; 127.52711 8867; 127.58057 811474; 127.6732 47588; 128.28302 1086857; 128.47678 10335; 129.13489 58360; 129.16696 28313; 129.27685 3744010; 129.51828 71646; 129.6845 173581; 129.69043 2678; 130.48086 37147; 130.71714 692643; 130.80179 1397659; 130.96085 6141; 131.11084 75157; 131.13159 462648; 131.26773 30178; 131.30648 49482; 131.3277 7699608; 131.67587 48042; 131.97339 2815018; 132.09972 60172; 132.306 185105; 132.37886 70166; 132.42027 69566; 132.43906 5726883; 132.56946 35963; 132.65607 26081; 132.67271 75935; 132.76996 55611; 132.92966 4891; 132.98639 21066; 133.10476 51682; 133.12689 1702541; 133.34802 437343; 133.38407 517545; 133.74372 2415180; 133.85459 3292608; 134.00864 64509; 134.01561 60912; 134.43208 6194444; 134.48004 426030; 134.77242 22256; 134.77954 9607870; 134.99917 75957; 135.03047 6996; 135.06588 7810; 135.14638 173985; 135.26808 296321; 135.70114 1417171; 135.84297 442545; 136.03 129057; 136.2843 22191; 136.34843 38547; 136.5844 1659029; 136.63474 63428; 136.9751 3477; 137.22143 2477; 137.65026 44840; 137.83943 1273143; 138.13927 28095; 138.26655 13734; 138.54038 966797; 138.62505 664221; 138.6886 3113104; 138.69247 21605; 138.8244 132472; 138.87977 6907973; 138.97153 6086704; 139.20891 1502176; 139.29124 827218; 139.32727 20953; 139.41107 6248; 139.47498 23011; 139.5915 54269; 139.72194 2837314; 139.8516 42978; 140.21346 12069; 140.82487 560529; 141.29673 35640; 141.70319 1503186; 141.90509 26217842; 142.05529 3871145; 142.47354 8291819; 142.49144 96621; 142.63473 11190; 142.77005 4061; 143.25467 45541; 143.29119 121; 143.54447 990; 143.67671 6910; 144.00915 38522; 144.23166 2916529; 144.31079 46816; 144.5552 7148; 144.74272 6264; 144.81666 360154; 144.81936 699310; 144.84367 21415; 145.03849 856191; 145.31023 12045; 145.40184 20119; 145.46127 8594; 145.59494 57094; 145.67422 5473; 146.24377 393209; 146.34962 31554; 146.80754 24845; 147.20969 1777832; 147.59753 4178560; 147.63678 64041; 147.64333 54379; 147.76649 17069; 147.91851 15183868; 147.97938 10960486; 148.23305 41931; 148.47166 72788; 148.52161 25011; 148.72085 9514028; 149.25004 55020; 149.29506 4418618; 149.3054 28375; 149.41428 9632615; 149.46391 8375963; 149.49569 160717; 149.58502 62157; 149.59827 26211; 149.77349 1674632; 149.96076 1833704; 150.1493 33969; 150.27767 92501; 150.50151 100318; 150.5679 19833; 150.58892 61755; 150.8822 1456; 151.05392 82178; 151.0799 3869922; 151.12086 6351172; 151.19576 2519026; 151.25772 7423; 151.49011 4999; 151.54326 49252; 151.79744 343; 151.85106 9919; 152.00466 9002; 152.00884 51897; 152.28925 83211; 152.40662 1737642; 152.43036 23478; 152.44714 27796; 152.47919 31703; 152.76522 111569; 152.7936 9233004; 152.8473 17165164; 152.92289 56082; 153.03577 662584; 153.21216 279; 153.30009 3961251; 153.38695 4778052; 153.39004 8731; 153.47817 843177; 153.70485 28717; 154.33124 89159; 154.72956 360365; 155.3215 36951; 155.34204 69661; 155.36516 28069; 155.4738 4583; 155.57901 168477; 155.72284 9695885; 155.88679 741; 156.0012 44170; 156.12219 5170; 156.26924 59425; 156.6995 40388; 156.9902 14143; 157.04027 11777; 157.25968 76850; 157.33727 1389022; 157.5378 636592; 157.71489 51941; 157.80247 26934; 158.26587 25478; 158.47623 579375; 159.64151 257046; 159.99637 1004344; 160.13592 71874; 160.23195 170773; 160.45061 63293; 160.62501 33856; 160.82259 75865; 161.23118 28681; 161.26763 67228; 161.62585 41959; 161.69243 81849; 161.8918 150417; 161.94494 93274; 161.9932 165572; 162.03549 367747; 162.29194 73945; 162.42007 42016; 162.50188 6262; 162.61306 60973; 162.78574 3316393; 162.94325 4050429; 163.02063 45076; 163.04254 6001; 163.18644 104931; 163.3747 251361; 163.4899 9436; 163.49503 62319; 163.6724 2999564; 163.74042 30301; 164.10413 28646; 164.62822 46921; 164.86528 5951; 164.8775 1286345; 165.08778 27582; 165.15812 33817; 165.45881 96767; 165.51464 76129; 165.66758 2226; 165.82417 6191; 165.86579 23820; 165.88917 9736; 166.09203 14469; 166.21378 23032; 166.24534 191464; 166.38837 28122640; 166.52754 2278; 166.68303 129394; 167.05473 64509; 167.0767 9935; 167.15717 315312; 167.27889 22026; 167.29862 15682; 167.35399 5226; 167.55452 761265; 167.85643 29893; 167.98766 24006; 168.19337 1502923; 168.72566 12753; 168.77099 1744; 168.7851 26041; 168.87008 2931569; 169.08032 9375; 169.15523 24885; 169.30687 1247912; 169.42104 6995; 169.50817 59632; 169.52575 140462; 169.76904 66324; 169.9206 44415; 169.99753 42556; 170.03345 5763; 170.20058 59157; 170.35495 4288511; 170.56145 3657; 170.70373 1254854; 170.90384 5277508; 171.08397 43470; 171.12168 18726; 171.3225 22968; 171.35431 26853; 171.40395 176740; 171.84821 73606; 172.14928 65415; 172.16763 1157125; 172.79555 1945146; 172.87772 4480005; 173.27543 71200; 173.39832 3103; 173.63535 1261269; 173.89023 6952; 174.13987 636; 174.18441 38201; 174.28038 15663; 174.32686 49252; 174.50342 41632; 174.87247 233504; 174.9554 8522734; 175.23408 1665575; 175.85017 66799; 175.97663 1902806; 176.12414 28945; 176.19367 195501; 176.23421 24486940; 176.52061 1137041; 176.61397 25025; 176.64143 22368; 176.73713 2601980; 176.79389 485916; 177.04886 18280; 177.59787 146982; 177.88931 329481; 178.58976 37390; 178.62228 1709524; 178.84027 151192; 178.8869 7395770; 178.9052 24172; 179.29199 13614; 179.39899 73918; 179.58566 4055457; 179.76387 1625066; 179.89622 4717228; 179.97987 3844; 180.28841 29470; 181.18582 245; 181.72523 9562; 181.8004 10311403; 181.8693 7633879; 181.87507 1462668; 182.07144 1676055; 182.4411 38440; 182.45152 8687324; 182.49237 5893295; 182.49919 2338305; 182.61207 1338773; 182.72643 45596; 182.78715 1437752; 182.97163 26789; 183.19974 41358; 183.3626 3768; 183.43598 1621050; 183.54898 5839; 184.05207 8424521; 184.44554 1913337; 184.86607 23764315; 185.00884 26762; 185.12915 4191; 185.3977 1491234; 185.42859 181333; 185.62428 37561; 186.0342 494801; 186.1851 4272183; 186.37207 4950; 186.41107 28095346; 186.47188 307; 186.69044 111478; 186.77565 170198; 186.8657 23822; 186.91724 3037; 186.96143 265987; 187.06275 834276; 187.09972 6816615; 187.10777 1746482; 187.22133 18517657; 187.35901 9812; 187.3615 21426; 187.40004 370976; 187.47392 335721; 187.47658 20608; 187.6213 5103; 187.6406 385126; 187.83424 25194; 187.92825 2766096; 187.99926 3166041; 188.16719 2087; 188.19105 6083095; 188.26658 9762; 188.80977 73343; 189.22949 501943; 189.60053 6030; 189.90721 44819; 190.24989 9668; 190.50695 16173; 190.5907 1674801; 190.5956 69379; 190.61169 8366; 190.61471 970854; 190.68872 1766; 190.77881 955288; 190.91324 5620545; 191.02666 831859; 191.06208 2590; 191.27658 69146; 191.45631 248; 191.46768 60934; 191.6698 60963; 191.78967 625955; 191.8159 1159155; 191.83212 8946; 191.83266 9603; 191.88318 9767760; 192.18198 1297790; 192.40043 2076437; 192.40115 952946; 192.82594 72147; 192.9822 14559; 193.0165 50816; 193.26176 2277333; 193.40306 302272; 193.46198 3337281; 193.50591 53926; 194.12599 2841941; 194.28054 64659; 194.44026 879; 194.90016 2863947; 194.9004 1388; 195.04999 77577; 195.14851 6913673; 195.20515 192683; 195.33798 41499; 195.87204 1452719; 195.9477 305529; 196.1694 184230; 196.35492 26161235; 196.48492 6193; 196.85594 24448; 196.92436 25870; 196.93451 489; 197.02392 4095; 197.18082 14785050; 197.3527 13397; 197.37575 73500; 197.471 2042333; 197.8017 18026; 197.81219 21551; 197.95632 55170; 198.02307 5476; 198.26085 56204; 198.32511 4500074; 198.54512 822953; 198.83163 3283336; 199.12031 84191; 199.28883 22236; 199.4353 41440; 199.53288 49677; 199.59767 2021144; 199.80682 74024; 200.02119 4212; 200.16695 229125; 200.30739 60301; 200.37015 15281; 200.524 9495; 200.54359 26054775; 200.73772 640987; 200.80445 2138034; 200.99218 9924; 201.02531 616201; 201.17354 18801; 201.32129 885312; 201.34226 66554; 201.56292 8379; 201.66082 9292172; 201.68685 8141249; 201.99913 9797661; 202.11408 1061961; 202.21343 143954; 202.30539 37567; 202.40433 116200; 202.62032 4547; 202.64388 19302790; 202.7172 1129; 202.87176 29000; 202.87887 141983; 202.87967 1502105; 202.97984 4131782; 203.00523 27926; 203.19238 26229; 203.42035 2383583; 203.46174 855600; 203.68837 1484120; 204.10609 6130; 204.28719 43195; 204.39441 48081; 204.61364 109422; 204.64666 613433; 204.70401 926460; 205.06698 195597; 205.19958 1913739; 205.41025 4769402; 205.48212 13794; 205.48735 291716; 205.51763 28934; 205.67084 9674; 205.699 4124554; 205.90697 1631; 205.93323 108455; 206.18806 29479; 206.48785 220761; 206.88465 25663; 207.11727 8522155; 207.28938 178887; 207.45721 73285; 207.4769 23345; 207.58433 8840692; 207.74535 31688; 208.27107 75510; 208.38733 22728; 208.53294 38826; 208.99758 9605161; 209.07923 23350; 209.13052 1282485; 209.38547 7758; 209.59765 7411; 209.96111 1851; 209.99879 278989; 210.07425 3228387; 210.13473 53378; 210.34194 4916571; 210.45978 9672; 210.53903 76026; 210.58692 449245; 210.61013 10506; 210.61188 4012; 210.67758 32860; 210.89405 4900; 211.00738 41881; 211.4735 637552; 211.5116 2919; 212.19198 26200; 212.45948 545620; 212.48179 1998; 212.58619 30984; 212.60985 1840567; 212.95926 1312627; 213.16274 4548; 213.40427 4971159; 213.6742 4104766; 213.72765 48213; 213.88511 3756991; 213.95603 3886440; 214.08433 29667; 214.08964 32795; 214.41323 547513; 214.42533 4149715; 214.45232 5480929; 215.06986 114737; 215.10996 65276; 215.3596 157344; 215.68599 36581; 215.82347 791; 216.2298 3238246; 216.34866 3583434; 216.58337 6258253; 216.59202 2907; 216.82368 52609; 217.02928 1211000; 217.12473 23382; 217.35777 25545; 217.37678 5563963; 217.62876 15064200; 217.7079 44212; 217.7401 2213648; 217.78619 562; 218.22638 2140; 218.4314 54817; 218.70651 9013; 218.86798 169107; 219.16528 135469; 219.87662 79644; 220.02129 500326; 220.19829 9591; 220.26765 1312; 221.13787 6455; 221.29972 543650; 221.45671 63231; 221.91474 40217; 222.16032 42344; 222.64798 612863; 222.88158 378602; 223.48837 1447418; 223.64238 9503; 223.94105 77263; 224.11443 804308; 224.34766 14051; 224.47887 4122424; 224.59204 769690; 224.88802 74971; 224.97403 44818; 225.05617 801; 225.6939 2782; 225.79159 7808; 225.84524 3300160; 225.98653 190397; 226.05302 41594; 226.07198 3225553; 226.12099 70903; 226.32394 776748; 226.33136 9625683; 226.39227 1836420; 226.62188 9059109; 226.90679 27053; 227.0688 172738; 227.07948 5053992; 227.16758 35716; 227.30602 578338; 227.49305 980; 227.64795 1483040; 227.98199 1792313; 228.26238 11432; 228.35272 9805; 228.73455 48779; 229.03589 24229; 229.37273 50154; 229.51547 27151; 229.5216 1516194; 229.61335 28770231; 229.69462 26149; 230.10498 1430049; 230.5087 46468; 230.53259 98; 230.59696 878578; 230.61461 60913; 231.23416 21967; 231.2551 635898; 231.49746 53835; 231.81912 4921324; 231.90038 3646730; 232.0908 3405217; 232.36243 716778; 232.55195 9388795; 232.67781 1943384; 232.73611 1706565; 232.83823 511821; 232.89814 6312; 233.30479 1053180; 233.61301 6647516; 233.65854 9958930; 233.88441 21153; 234.11497 39584; 234.42559 28263; 234.52022 367369; 234.70974 2465774; 234.93398 8038159; 235.41167 23279; 235.54565 802759; 235.6366 17307; 235.74287 332; 235.85625 26081; 235.98218 1305737; 236.08882 5230; 236.18258 22139; 236.43613 1639962; 236.58391 624817; 237.11809 118340; 237.31652 7978; 237.38921 55140; 237.39406 18671; 237.83552 75707; 238.30965 8080661; 238.51862 92426; 238.53664 42450; 239.22263 62203; 239.33333 4960794; 239.64232 9005; 239.77034 19459; 239.83953 60174; 239.88496 8611594; 240.01856 758311; 240.05497 9631295; 240.28886 74080; 240.34022 6925563; 240.52242 3014775; 240.62944 284230; 240.70886 70844; 240.75197 7228664; 240.87209 22399; 240.94098 4902651; 240.94323 22776; 241.23671 26476; 241.42196 136246; 241.43038 3890; 241.44712 189077; 241.84753 8298663; 241.85878 19937; 242.09068 22561; 242.34829 66291; 242.37227 51380; 242.46076 1358; 242.54306 1823028; 242.786 70413; 242.81791 50210; 242.8336 1107896; 242.8509 44566; 243.00038 77406; 243.18253 41731; 243.51156 9443; 244.02945 67409; 244.14086 18227; 244.26792 2468; 244.4253 1833053; 244.71133 5794411; 245.54419 1196027; 245.71025 3869483; 245.77653 750022; 246.18686 14306; 246.31978 80992; 246.39585 69918; 246.45988 29009; 246.68022 425; 246.71161 45656; 246.75269 935697; 247.1402 158378; 247.27102 3373885; 247.30914 26550358; 247.74381 5607; 247.83949 3092160; 247.96422 1558073; 248.4363 1767006; 248.58362 5388; 248.82921 508190; 248.96508 121169; 249.31121 4965; 249.31576 6567026; 249.47235 171939; 250.01532 479201; 250.10856 126135; 250.29188 4682576; 250.67558 661; 250.87869 75076; 251.39903 38346; 251.59927 5542383; 251.6702 72471; 251.74616 26966425; 251.90209 102156; 251.96731 3540585; 252.12981 22867; 252.21846 327; 252.90697 4473033; 253.01331 14188334; 253.05147 41827; 253.44558 641899; 253.84986 7996; 253.906 2850611; 254.04588 1060996; 254.08076 41360; 254.32251 2440805; 254.39498 42800; 254.59717 594; 254.60984 1335417; 254.78319 6547; 255.21005 25923; 255.44031 791380; 255.44291 4129; 255.59372 30531; 255.63619 1396201; 255.72404 290; 255.76525 45503; 255.93971 35083; 256.04866 172116; 256.14789 1010441; 256.20136 9299625; 256.73238 550; 256.87618 3014286; 256.96108 4890293; 256.96262 4694436; 257.02699 104233; 257.05019 13106; 257.19447 7478; 257.6029 8418; 257.77757 28706; 257.91839 3051820; 258.26154 23239268; 258.39517 47098; 258.65896 37550; 258.88355 1476749; 258.891 2992; 259.12 7649; 259.17741 463941; 259.27908 64845; 259.70404 250941; 259.85953 451737; 259.88914 368297; 259.92698 4478413; 259.9621 994136; 260.23125 1001585; 260.3747 6188; 260.48419 279022; 260.52661 4580009; 260.58584 1767440; 260.68307 43806; 260.78834 991612; 261.14279 63113; 261.38354 24905; 261.49946 62910; 261.53679 8061; 261.80921 43069; 262.08937 1920774; 262.1389 4945; 262.19185 131120; 262.56627 37346; 263.0372 9809; 263.5659 5308; 264.04258 930996; 264.08497 2000; 264.19246 133479; 264.24125 9590333; 264.26078 23844; 264.29296 39409; 264.39368 67999; 264.66582 20617; 264.77489 4071; 264.81255 109807; 265.24888 15812; 265.31487 23109; 265.36498 9021024; 265.50919 846; 265.55721 3636059; 265.71531 52560; 265.79852 6251197; 265.889 23925049; 265.9176 1153391; 266.37399 2245068; 266.39649 620999; 266.42487 13865178; 266.46342 485938; 267.13313 20740; 267.85009 4028766; 268.0359 711; 268.36795 1892187; 268.41879 121966; 268.43676 1048178; 268.49272 772194; 268.74371 23808; 268.76944 21572; 268.90121 9252; 269.10063 43453; 269.12724 4784024; 269.27622 77164; 269.6181 38111; 270.22046 706280; 270.25785 1516859; 270.26213 48211; 270.33526 6785065; 270.44047 55287; 271.01522 8894; 271.0452 14198; 271.11986 1240179; 271.21401 965033; 271.49136 24469; 271.56376 4214635; 271.71243 26544; 271.76689 1836839; 271.76864 74270; 271.89162 71521; 272.04822 1791876; 272.13879 3275808; 272.17588 61886; 272.2941 4773521; 272.31162 15462; 272.64826 1625; 272.67042 7223368; 272.89199 503005; 272.97286 2822; 273.03148 4764261; 273.23422 84619; 273.36082 540923; 273.52392 1101098; 273.62725 20923; 273.87024 48260; 274.13495 70232; 274.29946 24759; 274.3046 1095500; 274.35025 24048; 274.38317 137032; 274.55893 61059; 274.59687 2346; 274.65445 53399; 274.69702 26841; 274.8212 511882; 274.8793 41172; 274.94606 72552; 275.00665 131535; 275.07608 824294; 275.34258 2486651; 275.49807 304789; 275.49844 168001; 275.73874 10432; 276.00576 3013739; 276.55759 28982; 276.7023 3695; 276.72115 83259; 277.16894 3168076; 277.25105 12379; 277.46632 1340828; 277.49823 680832; 277.56039 32845; 277.59833 26465; 277.67658 17073; 278.12956 3973439; 278.44702 205688; 278.49561 13080355; 278.63819 962590; 279.00926 22647; 279.18328 21903; 279.7701 46494; 279.83969 66810; 280.25692 1374184; 280.4289 14597; 280.66505 22640; 280.66701 2239112; 280.68988 35611; 280.80789 7851; 280.88716 68737; 281.03353 1549323; 281.05031 4858; 281.08415 33042; 281.19755 2176; 281.80136 4858; 282.08377 6273; 282.10184 70826; 282.1192 25627; 282.28897 8052; 282.31347 70065; 282.71614 163923; 282.8339 24050; 283.56482 876822; 283.70407 1558409; 284.0597 27676407; 284.17646 724; 284.34552 60659; 284.36487 58660; 284.47371 26963; 284.73205 30251; 284.85618 9850402; 284.99545 77114; 285.25172 61395; 285.61167 60782; 285.86971 25806; 285.95176 506475; 286.19942 7742; 286.63225 72935; 286.95132 24446; 287.23117 7954856; 287.74078 1209279; 287.81076 43016; 287.88546 2421333; 287.97095 49687; 288.01322 6580; 288.22624 156; 288.22913 70297; 288.40073 22252; 288.67137 32785; 288.7412 315923; 288.84224 142932; 288.85383 56723; 289.19889 434314; 289.25107 943821; 289.43909 61675; 289.63874 883635; 289.80274 3344; 289.92513 47819; 290.05862 770; 290.25397 37933; 290.52512 501015; 291.2788 2767170; 291.54584 1999241; 291.91267 5666411; 292.08942 44930; 292.89196 3186235; 292.97158 85270; 293.0287 1589651; 293.13581 36193; 293.17615 2642285; 293.40949 34570; 293.5768 69330; 293.58874 3067; 293.68535 29193609; 293.73674 3063; 293.88379 786848; 293.92298 3982; 294.27154 5382; 294.35669 7769612; 294.43188 289415; 294.46835 67023; 294.52103 34374; 294.98659 70967; 295.22667 65169; 295.66095 6193; 295.72274 13749; 295.72784 62930; 296.21272 3249910; 296.23727 21697518; 296.26663 55939; 296.3133 69764; 296.97222 38744; 297.10954 9360734; 297.34855 4423310; 297.57735 16526; 297.72762 7381; 297.86769 31614; 297.90741 1083; 298.17456 3944751; 298.28386 11663; 298.9427 1738; 298.99001 22705; 299.03066 62940; 299.10616 2711; 299.27731 22783537; 299.4248 3056892; 299.60533 73569; 299.67487 1768347; 299.73671 65662; 299.7562 3044233; 299.77397 6605351; 299.82821 51790; 299.85475 7521; 300.07891 4875; 300.08772 34457; 300.31065 28010; 300.54804 129837; 300.90574 8248; 301.13932 134497; 301.14246 63949; 301.33206 303583; 301.88604 1151709; 301.89233 1702273; 302.68522 1933658; 302.7104 23011; 302.71397 5913375; 302.81453 276438; 303.48584 1618013; 303.59263 64766; 303.80562 7097; 303.87806 23113044; 303.93399 1614731; 304.06024 2329457; 304.75788 132600; 304.83596 8601; 304.847 134248; 304.91539 23045788; 304.97863 14658; 305.22347 7597; 306.38807 6547618; 306.47288 8067; 306.76543 42267; 306.76555 60396; 306.77046 6265553; 306.82857 57623; 306.88441 303322; 306.8904 4991060; 307.19411 23870; 307.56676 4417209; 307.71487 1625486; 307.86385 2973612; 308.05535 1281945; 308.14408 3960; 308.30106 69540; 308.68714 10854; 308.81423 1135994; 308.86049 795183; 309.05753 43263; 309.12296 2002; 309.36101 7939944; 309.62398 61341; 309.6329 550882; 309.71864 707583; 309.84012 3145665; 310.23826 8686946; 310.24738 49389; 310.61757 107419; 310.63802 65464; 310.63805 47941; 310.70705 18483265; 311.13975 26582; 311.19307 3797376; 311.21326 713; 311.21575 71312; 311.36052 158453; 311.42773 2519066; 311.43964 246326; 311.4899 1030; 312.15593 12980; 312.16112 29538073; 312.37816 5353274; 312.58402 451; 312.61468 1135; 312.61783 5178560; 312.74809 27858526; 313.07616 103371; 313.20341 74560; 313.44004 17818; 313.79234 47110; 313.83409 128735; 313.86274 1415219; 314.10108 233117; 314.31584 19692; 314.81606 1457874; 315.11421 23820318; 315.27632 20010; 315.40301 1943476; 315.44401 9889547; 315.54429 6449; 315.76857 66150; 315.77035 864774; 315.97235 5247833; 316.02807 968171; 316.04183 4416; 316.6219 4308; 316.65932 1244; 316.66837 521780; 316.69813 8460; 317.05432 75650; 317.1522 1634780; 317.45072 70319; 318.08181 5356288; 318.13818 7504883; 318.40607 26173; 318.40913 19942088; 318.75804 6773232; 319.12023 5753; 319.43234 61208; 319.4791 701847; 319.61507 841767; 319.94079 7213; 320.07992 4950946; 321.09789 727041; 321.15054 28027784; 321.1903 16835; 321.26268 7257581; 321.26608 24763; 321.42028 1305348; 321.43702 7635409; 321.50029 77748; 321.5954 1203; 321.72251 810; 321.79397 56394; 321.80496 465503; 321.82671 987; 322.24989 56650; 322.75093 19357; 322.88345 61494; 323.24768 31235; 323.54688 54757; 323.70427 44254; 323.80582 51617; 323.89347 8743; 323.8965 138049; 324.142 25423; 324.42323 3855; 324.57983 4714362; 324.63399 897928; 324.72639 5395342; 324.76529 3579; 324.99622 1479357; 325.18431 39234; 325.2413 5140; 325.28043 45588; 325.30477 3181; 325.44725 3363632; 325.45265 3751914; 325.52375 96905; 325.66607 4153497; 325.67455 23138; 325.69996 8800093; 325.82709 2482; 325.94665 45165; 325.98152 47360; 326.01212 1155060; 326.03311 1963433; 326.06594 749722; 326.52222 22086; 326.54558 977752; 326.67601 53668; 326.82989 28238; 326.92146 17194; 327.79291 2342; 327.81771 1342985; 328.04813 5053; 328.05925 299190; 328.37273 17495922; 328.3992 1174389; 329.1257 2466046; 329.197 163377; 329.2551 34707; 329.44323 27436291; 329.50438 181361; 329.61057 2374; 329.93918 4930305; 329.96979 109195; 330.24327 29785; 330.31953 17921; 330.56941 8020; 330.69921 30508; 331.09464 2395; 331.23736 1278786; 331.29756 68371; 331.31649 837983; 331.32736 8856; 331.51065 56147; 331.54002 43901; 331.57385 5885734; 332.21982 582925; 332.4397 30084; 332.56779 813456; 333.06112 5884389; 333.09594 35051; 333.22878 1781705; 333.24424 25250; 333.35991 6283701; 333.40478 29769; 333.61093 2810; 333.90367 1317406; 334.20757 6984; 334.39764 20117; 334.40049 858013; 334.45674 2776; 334.517 157252; 335.05236 572431; 335.06019 63404; 335.14405 2243; 335.38855 5417774; 335.79618 9722; 335.81724 45453; 335.86428 9568991; 335.91394 31343; 335.98647 10328; 336.03003 4205; 336.13879 28254; 336.20066 1296627; 336.45753 1507; 336.67272 739783; 336.74971 859663; 337.07286 71554; 337.32176 637798; 337.5133 48382; 337.57133 47297; 337.70746 47009; 337.78371 43510; 338.16228 1270; 338.24363 79713; 338.80295 128481; 339.47147 1248594; 339.75757 29281; 340.13668 17773; 340.55203 12143; 340.61847 20317; 340.7635 23319056; 341.15429 1411206; 341.63042 3077627; 341.73096 78834; 341.85657 4267; 342.10675 2733; 342.38674 2004130; 342.44514 56215; 342.52647 4983; 342.58482 28204; 342.68314 4986; 342.8262 172922; 343.08775 8848; 343.341 7439; 343.57804 7043898; 343.75663 35246; 343.80698 1320300; 343.83591 2465; 344.10493 7411; 344.53247 8807; 344.6728 6467684; 344.67644 1429300; 344.78678 37642; 344.87525 12378693; 345.23438 9626; 345.41589 2914; 345.50668 24828; 345.52205 3673535; 346.59103 5067; 346.67991 28945; 346.81478 8984438; 346.87828 1492049; 346.91402 4652131; 346.95945 3298; 347.15106 191673; 347.27256 58974; 347.27646 561670; 347.34787 7431895; 347.86021 1191; 348.03331 4604; 348.12075 54615; 348.17603 51297; 348.20979 52489; 348.48731 78035; 349.53303 760777; 349.59045 29639; 349.74273 1588; 349.94885 4629; 349.98991 8502202; 350.03034 45; 350.24474 78591; 350.37067 23788; 350.48882 85723; 350.71416 6529; 350.82177 9387; 351.17259 2964; 351.24423 65089; 351.59767 90412; 351.66437 36769; 352.00551 137380; 352.39051 2233610; 352.49497 7497; 352.74727 30839; 352.80645 4990; 353.0533 2079945; 353.45528 139026; 353.61129 875856; 353.84992 9753717; 353.96623 27154; 354.04881 7947; 354.18992 58650; 354.34292 50543; 354.4125 23275; 354.59671 156837; 354.94315 82280; 355.00023 7674; 355.00712 34276; 355.73871 33176; 355.84696 2880642; 355.91483 9193; 355.97146 29273; 356.1149 4063931; 356.35375 25781; 356.43953 4214123; 356.46581 3154154; 356.6415 955825; 356.76609 756643; 357.08401 1134832; 357.14443 511393; 357.34769 69863; 357.48302 20641; 357.67997 19438683; 357.71961 50728; 357.89426 628394; 357.91029 795; 358.54449 802267; 358.64133 671570; 359.18944 9028980; 359.43876 74893; 359.69345 476846; 359.73561 53473; 359.73767 283348; 360.3438 1835335; 360.72354 36753; 360.76376 51041; 361.54125 8932044; 361.69577 51696; 361.73553 1799777; 361.81627 5924; 362.1293 41186; 362.28007 1050523; 362.4547 4657867; 362.68334 1671367; 362.88604 8949191; 363.26163 19721; 363.49317 23480; 363.5211 1467415; 363.69035 13607; 363.80484 3687319; 364.28562 31744; 364.36134 1683080; 364.40686 1858384; 364.70849 59795; 364.71453 3219192; 364.98441 2750; 365.64343 361; 365.74578 33278; 365.8959 891526; 366.07672 17612779; 366.25965 47370; 366.40346 9711251; 366.53889 25503; 366.55794 29316; 366.56887 4947; 366.91283 9798899; 366.91572 48888; 367.07343 170937; 367.47405 1573017; 367.49141 1273293; 367.68346 11840; 368.29195 72295; 368.77964 46046; 369.18891 28584; 370.23623 1127475; 370.3361 4350083; 370.52137 1210961; 370.77844 6683690; 371.21408 77092; 371.33814 1570; 371.42319 25076; 371.44195 1135970; 371.56259 2486368; 371.82659 4605360; 371.94211 57983; 371.99035 1243967; 372.19483 1857853; 372.38103 2098025; 372.53077 2104; 372.57716 7325; 372.62107 29876; 373.14663 42145; 373.44428 44474; 373.7208 30866; 373.79813 1936749; 374.39226 27735; 374.53671 92492; 374.62551 4297890; 374.66924 2540; 374.82507 1377; 374.87057 36152; 374.92454 58020; 375.07397 925318; 375.14469 10222; 375.32604 29154; 375.46942 7843791; 375.47972 23061; 375.55646 6858; 375.59763 2209080; 375.66436 31708; 375.81591 1895740; 375.98472 4041; 376.1116 2069928; 376.17619 1037; 376.18052 1563095; 376.41055 805009; 376.45974 834696; 377.25217 3724; 377.28166 564897; 377.53045 35714; 377.76625 6450; 377.78796 62086; 377.84165 2725; 378.12642 74463; 378.17886 299111; 378.50849 62916; 378.57345 8457895; 379.08412 109472; 379.0961 801362; 379.15738 18811459; 379.45425 3152730; 379.60067 3732710; 379.65583 194065; 379.67459 1396259; 379.79941 72144; 379.96975 19407893; 380.13276 24173; 380.15116 2428559; 380.15186 33008; 380.53043 72555; 380.86027 21294003; 381.40406 27180; 381.55493 3950115; 381.75686 133162; 381.81794 61073; 381.94442 72335; 382.07658 21295; 382.08184 79892; 382.22081 2605; 382.72164 288821; 382.76509 2842; 382.80959 3649862; 382.84732 76692; 382.92032 354015; 382.97714 9135128; 383.13299 3720546; 383.16153 3745351; 383.44427 9973; 383.80667 23586; 383.93591 69480; 384.19651 3932192; 384.39494 15783; 384.41108 20946; 384.41394 1455826; 384.63672 27766; 384.76713 20589; 385.01274 20133; 385.6763 765739; 385.68701 22843; 385.80548 609991; 385.85041 125225; 386.12828 1907037; 386.15338 37384; 386.48737 435493; 387.08507 1940430; 387.24364 24840; 387.38481 31479; 387.49314 44742; 387.69126 28996; 387.8926 3443711; 388.10102 6517; 388.36753 64212; 388.49035 41713; 388.78414 5420; 389.01005 6085817; 389.33595 12034; 389.35592 48287; 389.84212 16254149; 389.928 4700; 390.0856 1396276; 390.47269 30784; 390.49019 41179; 390.63208 18084; 390.65678 21356; 390.87315 2727772; 391.08855 393007; 391.17717 153819; 391.20263 29249; 391.37707 67263; 391.42719 21287212; 391.58526 70639; 391.68764 61442; 391.776 4470; 391.81154 37866; 391.83258 18676632; 391.93609 869459; 392.28792 15024; 392.29691 5921; 392.51296 69805; 392.5302 739047; 393.16286 19839; 393.16426 41252; 393.2642 5205; 393.27483 7890; 393.50378 399048; 393.61129 3361281; 393.70954 6756; 393.71115 52377; 393.98529 1882; 394.10773 1317518; 394.11657 78710; 394.18056 4085362; 394.22305 617959; 394.36169 28720; 394.6545 24716075; 395.00353 55988; 395.15125 16205; 395.73742 256319; 395.74096 28598; 395.75586 1424361; 395.84722 59843; 396.26942 203738; 396.39236 34452; 396.55328 93184; 397.00599 163808; 397.14352 25287; 397.20863 6342688; 397.70929 4632223; 397.84326 16050813; 398.23452 46793; 398.245 55223; 399.31462 18555554; 399.52307 230309; 399.54681 3834527; 399.61865 261530; 399.65557 46988; 399.65947 25219; 400.51684 9886; 400.74109 16283380; 400.78251 8836; 400.86133 11495; 401.13642 2155; 401.19882 922433; 401.26558 46082; 401.38665 24574; 401.68894 15478484; 401.74168 3002103; 401.74252 489732; 401.89199 4338; 402.15187 1177909; 402.18129 24101; 402.19192 1205517; 402.19977 5151; 402.20252 6287064; 402.49062 52276; 402.61542 11645156; 402.84648 1139541; 403.01766 78102; 403.0211 2225; 403.18031 51706; 403.67137 4227167; 403.87957 54687; 404.05168 35127; 404.09981 79743; 404.21546 60028; 404.35053 8790; 404.51264 28506605; 404.58861 63312; 404.59686 1103920; 405.37649 16889; 405.61047 5377598; 406.05467 1844883; 406.61788 87531; 406.6297 1080531; 406.65682 1013609; 406.7513 4251530; 406.75758 31679; 406.92882 6808516; 407.90125 24587; 408.36336 3462; 409.35755 52835; 409.50402 7114374; 409.54788 51219; 409.5494 4937908; 409.81162 4627; 409.98529 7978850; 410.83859 3121479; 411.01787 9249138; 411.35768 25533; 411.4377 22589; 411.5006 25597477; 411.50086 416955; 411.79981 70477; 411.88426 1081481; 411.99913 1767300; 412.0396 20194; 412.05669 51224; 412.06663 52106; 412.08242 1601041; 412.44807 745325; 412.47279 246091; 412.47982 2954; 412.48637 39098; 412.50843 9072; 412.5677 342511; 413.1309 124293; 413.1458 5977342; 413.24061 53698; 413.26702 59425; 413.31593 29160294; 413.34578 1999592; 413.67964 13564; 414.40102 16740; 414.90774 6470; 414.94764 1941931; 415.00794 4481943; 415.45274 145803; 415.91801 3623015; 416.07584 6800903; 416.45282 56250; 416.46931 31829; 416.50159 436414; 417.01446 69394; 417.16236 9858; 417.31799 895055; 417.43287 5213945; 417.4383 7673088; 417.51436 1445972; 417.57817 3406233; 417.8011 1906501; 417.89603 33490; 418.17345 1322484; 418.62191 249413; 418.63084 22669; 418.66212 3039; 418.77581 688074; 418.81624 76513; 419.04744 67147; 419.08302 4961411; 419.50788 11534486; 419.78183 1105074; 419.80231 644; 419.93533 64725; 420.06435 5149219; 420.2474 24526; 420.28179 53065; 420.58962 60963; 420.67719 2744556; 421.29394 3724; 421.74804 18931; 421.90034 43982; 422.20005 135440; 422.27953 3512790; 422.5407 4336941; 422.79534 28937; 422.85989 7566586; 423.20549 1213328; 423.27172 3225332; 423.43595 3057939; 423.60898 47300; 423.83664 5126; 424.24889 6237; 424.39266 1706926; 424.47865 78361; 424.48915 109529; 424.51789 705972; 424.9043 3657198; 425.13802 2695354; 425.36417 3918340; 425.88805 64171; 426.17502 67760; 426.34116 2121276; 426.47368 20371666; 426.73662 1881572; 426.75655 1641842; 426.76383 4735829; 426.80561 394291; 426.87337 2373641; 427.09957 27174; 427.24456 12290; 427.84491 3670284; 427.85873 1310354; 427.88591 1155047; 428.49122 47; 428.5105 78698; 428.76132 70424; 428.81891 28804; 429.09808 41360; 429.29408 41346; 429.35739 67109; 429.50456 26786; 429.70134 4068; 429.78616 21195; 430.22067 24341; 430.37405 917508; 430.37419 157597; 430.43461 71621; 430.66241 267687; 430.7241 5277307; 431.00358 5544; 431.53022 9840; 431.57005 8872; 431.75627 24068566; 432.01491 43643; 432.23264 15291; 432.32116 16553; 432.33915 45226; 432.46044 45695; 432.59853 14190525; 432.71644 99368; 432.72411 22976; 432.77405 74238; 432.81652 10218; 433.28965 190254; 433.3476 582; 433.43767 25164; 433.72702 1387549; 433.78475 1049; 433.94555 492614; 434.13417 1240766; 434.50358 14340; 434.84181 5875; 435.54539 4393; 435.98102 4807357; 436.13462 11237; 436.20858 3180; 436.31933 7740301; 436.37092 195957; 436.47002 29721285; 436.50734 4194946; 436.91843 385498; 437.02968 723242; 437.08427 1893033; 437.12421 180489; 437.29827 16370477; 437.378 71684; 437.3932 60836; 437.77347 722580; 437.9972 22403; 438.22058 9676; 438.4031 42649; 438.50997 23459; 438.59759 6550971; 438.60434 212; 438.64547 25915; 438.91789 199759; 439.15858 7497543; 439.16474 579327; 439.19178 666208; 439.27287 1685; 439.27914 3362323; 439.37526 29239; 439.43676 16185840; 439.59287 1857998; 440.11271 4684008; 440.28333 2362631; 440.45807 1988342; 440.61627 101147; 440.81375 4819258; 440.92852 21791; 441.25591 1692418; 441.42227 711552; 441.79683 6117494; 442.00497 28107; 442.1401 7785; 442.60503 1532; 442.75691 15117; 442.82988 17692; 443.24484 23046; 443.44907 4761569; 443.60399 76031; 443.64892 4820726; 444.08129 3300859; 444.13332 26327; 444.17571 25936609; 444.39927 9940378; 444.51089 61116; 444.62039 4118512; 444.91657 1470292; 445.01103 830501; 445.07373 29331; 445.2472 1095347; 445.49694 9678; 445.58652 32689; 445.84502 5713585; 445.88269 1193422; 446.02751 21747; 446.35457 2562; 446.48683 4166602; 447.16039 1554550; 447.18782 89543; 447.77905 27721464; 447.86024 1561980; 447.93482 994383; 448.00727 50917; 448.1032 36364; 448.17172 630628; 448.2066 6458047; 448.24598 5471791; 448.31232 14048; 448.50955 860088; 448.5233 33171; 448.59509 4704; 448.63725 4054; 448.79703 18085; 449.02379 57654; 449.27376 24515; 449.7043 5706; 449.81895 2314; 449.92776 541132; 450.04242 120126; 450.17559 650; 450.21563 1139; 450.22534 1702237; 450.42597 4383; 450.8702 12702; 451.16763 35644; 451.25419 40211; 451.37274 73449; 451.45546 7635361; 451.51814 60720; 451.61658 56536; 451.83975 3914; 452.0468 6764; 452.09456 1496; 452.09783 1668625; 452.12185 6352385; 452.39475 773666; 452.65363 50688; 452.88692 3026894; 452.93916 65594; 453.4376 75379; 453.45467 1594; 453.48955 3973897; 453.75175 9317; 454.47093 17374; 454.48403 247229; 454.51629 46351; 454.69611 30265; 454.71375 23980; 454.7627 1532733; 454.97655 217338; 455.16886 50233; 455.34332 5501181; 455.679 29949; 455.87423 1253353; 456.28271 21793; 456.30403 10937; 456.51772 1727; 456.67603 3815670; 456.728 25991074; 456.80264 16898; 456.86493 77299; 456.90475 175269; 456.91711 2842358; 456.99509 45653; 457.16263 18810; 457.3094 15826320; 457.76175 597827; 457.77987 24894; 457.86487 21278394; 458.46631 4496; 458.86878 1170227; 459.03803 2406690; 459.17388 5790; 459.43144 67268; 459.67755 775391; 459.88139 48940; 460.12637 40438; 461.06656 43187; 461.54895 103293; 461.59776 1604959; 461.66862 12957215; 461.80516 872296; 461.90784 2963968; 461.91503 1835470; 462.2609 76296; 462.54136 1443; 462.6119 167647; 462.88242 2848; 463.02029 28879; 463.09797 12839797; 463.79216 560028; 464.24255 24294; 464.29496 7063; 464.36645 5904; 464.53395 5905453; 465.00899 5048; 465.12974 642801; 465.14247 35007; 465.24329 5848; 465.5428 9472; 465.78155 1597; 465.94588 29974; 466.20317 7783422; 466.49458 1024514; 466.61052 63344; 466.95773 1127166; 467.10394 40153; 467.24635 5464305; 468.16464 548852; 468.17475 74851; 468.18109 22663; 468.22487 56611; 468.41941 36856; 469.07397 39863; 469.09897 1467347; 469.22815 273946; 469.29157 4062; 469.37598 4929; 469.44245 23764; 469.62106 8870686; 469.86638 2351769; 470.16321 740815; 470.25298 3520; 471.51176 38133; 471.56404 42294; 471.72141 20160; 471.76577 56927; 472.59468 37447; 472.97355 53566; 473.20523 586813; 473.47297 1101509; 473.52452 4756416; 473.68722 1818619; 473.96462 9466290; 474.12495 17248; 474.13961 47620; 474.62816 38801; 474.8175 57764; 474.99371 4729502; 475.02438 62071; 475.12254 5939093; 475.18393 78803; 475.5081 17843803; 475.66432 1998878; 476.1176 6253; 476.1982 1980380; 476.94484 472912; 477.22551 813060; 477.37881 198969; 477.51953 638430; 477.53288 8203; 477.62662 40018; 477.65996 6437151; 477.95135 9544; 477.98492 25368; 478.25441 4819272; 478.26059 2452776; 478.41642 89261; 478.43594 7663; 479.11434 23011435; 479.19111 19526; 479.19237 26107; 479.23527 127040; 479.27476 885863; 479.35188 5511; 479.6386 1718819; 479.68582 5745; 479.75481 110897; 479.93533 74761; 479.97908 4067720; 479.98828 172778; 479.98839 7452476; 480.02676 1657335; 480.12115 32732; 480.26025 5447202; 480.40351 50892; 480.50908 57659; 480.59409 49806; 480.63229 8031; 480.68785 10085; 480.73246 1861; 480.81351 74469; 480.82568 36682; 480.94689 4732; 480.95778 74086; 481.06812 22866540; 481.18071 28699; 481.38538 7225809; 481.445 1182228; 481.71128 69721; 481.90141 1194814; 482.05719 6240617; 482.18037 145387; 482.20701 915; 482.33499 3989; 482.37509 33727; 482.53273 50410; 482.62742 773937; 482.86821 30851; 482.88517 3727323; 483.01373 46208; 483.11986 218656; 483.34548 42482; 484.09885 187225; 484.19389 2024; 484.41335 1795997; 484.49381 2893501; 485.12063 187140; 485.32179 1854410; 485.44887 23588; 485.52457 169022; 485.5922 597804; 485.65324 26318; 485.80701 43124; 486.14125 61608; 486.42652 40549; 486.74052 3498931; 486.79887 24720; 487.03681 76522; 487.35831 963299; 487.37228 1799856; 487.81282 11702; 487.84296 77244; 488.09825 2399152; 488.22881 72669; 488.40231 2413; 488.40724 9900284; 488.90986 16412; 488.94191 548313; 489.02162 4722496; 489.42734 1367753; 489.58064 15829693; 489.85913 4255003; 489.88193 42277; 489.98302 15456; 490.06976 24533; 490.17772 77136; 490.25237 1217827; 490.30944 1275363; 490.73609 665994; 490.81684 173707; 490.84112 78544; 490.87765 2120451; 491.12624 7342264; 491.13576 26379; 491.32282 40668; 491.36165 23031; 491.37018 50495; 491.47294 68733; 491.58555 6485374; 491.69762 751554; 491.77884 18256802; 492.10668 376321; 492.33988 172772; 493.24702 1958740; 493.25115 5521; 493.35218 62995; 493.38562 53317; 493.98108 26191; 494.07288 23368; 494.33633 53896; 494.47382 11166; 494.82533 49887; 494.92127 2538999; 494.93423 1377921; 494.95531 4124090; 495.13784 66026; 496.08361 1804; 496.31099 1333144; 496.7915 27498; 496.82178 6452146; 496.84445 3786253; 497.0568 63612; 497.11159 1731; 497.17608 55535; 497.30298 15455057; 497.41285 23157742; 497.43695 195545; 497.72474 744242; 498.05715 74816; 498.2613 79442; 498.37216 61912; 498.54731 9518954; 498.58459 2371802; 498.79992 7176; 499.0309 63883; 499.06329 8287191; 499.22445 9193; 499.34299 6393 +<1, 3>: 0.26597 882; 0.36827 122321; 0.52272 8895; 0.60493 26503; 1.03551 74540; 1.04839 471853; 1.67719 1890; 1.70137 9789056; 1.70462 75940; 1.76129 25428; 1.98951 1878494; 2.04397 148352; 2.18659 17319600; 2.32319 5253; 2.32464 181311; 2.50231 1965122; 2.62155 64251; 2.95545 149320; 3.12264 4079; 3.55667 31319; 3.65832 16590; 3.66946 21158; 3.85868 20122; 4.11781 2849; 4.13131 72888; 4.32546 3434146; 4.45289 1379934; 4.67564 31336; 4.93717 75934; 5.18619 3114620; 5.61923 724022; 5.83195 39379; 5.94367 61334; 6.21797 130416; 6.24389 2859; 6.43044 118153; 6.43967 4612345; 6.68332 5737419; 6.95053 15604872; 7.05024 6659955; 7.14908 64704; 7.37989 234699; 7.94499 63390; 8.00803 21728; 8.10108 45993; 8.16854 3407; 8.40097 92056; 8.82977 4733370; 9.12952 77075; 9.37048 194291; 9.39538 39992; 9.47012 1026681; 9.54843 63851; 9.64553 3798357; 10.0399 26464; 10.19755 4211526; 10.27299 21808; 10.29355 28048; 10.65302 1502488; 10.72352 4147686; 11.27457 3472; 11.30744 4701; 11.81127 202515; 11.81679 1497244; 12.01979 26279; 12.10454 987026; 12.13604 45966; 12.33697 15706; 12.6786 51747; 12.84558 1955176; 12.91566 4308291; 13.06493 1643488; 13.14957 44375; 13.40354 255432; 14.15996 155442; 14.32892 52310; 14.36838 838279; 14.39377 26817289; 14.51274 69059; 14.86755 1994100; 15.18461 61671; 15.19118 53669; 15.24561 2268127; 15.30696 7167; 15.39477 186076; 15.59029 78180; 15.60098 180993; 15.62448 27406; 15.62766 1627521; 15.66056 23853; 15.9663 21261; 16.14676 25839; 16.16539 2886; 16.18963 4050013; 16.23539 3384930; 16.27065 404986; 16.41344 4678; 16.86937 2178; 16.97323 69687; 16.97659 2569560; 17.66139 1970280; 18.1492 16049371; 18.61794 3401987; 18.85739 3619; 18.98904 70945; 19.04214 79989; 19.1416 8233709; 19.21019 27121338; 19.21749 9618; 19.21833 584365; 20.20775 54484; 20.35284 2963742; 20.83148 138411; 20.85901 1980; 20.99171 4880; 21.36216 1505582; 21.39295 268705; 21.50089 19775; 21.72476 5953474; 21.91441 1901562; 21.98947 2326; 22.13435 2200792; 22.14501 8928035; 22.17039 9930; 22.43685 8052542; 22.52268 178081; 22.54361 3020393; 22.96337 33929; 23.13198 27470; 23.28561 160216; 23.30129 72913; 23.39065 60058; 23.40425 58021; 23.42254 3201313; 23.58467 29231; 23.63885 74098; 23.64213 30390; 23.87138 75189; 24.21595 611; 24.25059 3758708; 24.2625 518407; 24.40311 18595642; 24.50673 4458230; 24.83234 40829; 25.07305 9056; 25.23736 1808080; 25.5406 1724154; 25.90973 167587; 26.03772 6349; 26.07474 2044352; 26.21807 69846; 26.22811 26089; 26.39316 833319; 26.48455 28440; 26.99392 4072; 27.30411 9186; 27.34444 27607; 27.77637 3448246; 27.78602 17912; 28.30048 5311; 28.30324 40961; 28.45627 2187209; 28.84926 8010665; 28.87562 63408; 29.12132 1429561; 29.1727 67788; 29.51309 11145; 29.57605 662912; 29.79221 2845444; 29.87426 64392; 30.17457 282; 30.38125 22375; 30.43902 28656; 30.47934 800; 30.59677 10021215; 30.64785 25567; 30.67616 53048; 30.70189 2202826; 30.7736 2064700; 31.17621 3736634; 31.48621 24124; 31.90668 30000; 31.91834 7600341; 32.01086 4447521; 32.09603 6024040; 32.3364 8374203; 32.43467 37496; 32.67709 3450; 32.72947 182302; 32.88744 2486; 32.94178 52802; 32.96742 379232; 32.98592 1723034; 33.03902 1509392; 33.05678 56924; 33.07716 3036661; 33.22741 38422; 33.28673 73066; 33.37872 549483; 33.66379 25764805; 33.67631 4516; 33.76855 867499; 33.81239 28163; 34.05958 8931; 34.61889 629550; 34.65414 926862; 34.69289 74503; 34.91243 892915; 35.68692 5888807; 35.78043 6636; 36.01979 679838; 36.0655 18701; 36.23226 3390; 36.24028 1581296; 36.80723 350273; 37.29523 8567; 37.5438 9322; 37.5481 3791611; 37.58825 5089170; 37.62763 13807; 37.68991 827971; 38.25885 9422442; 38.42569 10232; 38.54744 155256; 38.60696 76644; 38.902 67371; 39.08102 23546; 39.08517 987502; 39.15107 3577719; 39.33425 1507398; 39.48623 9690950; 39.97579 14934; 40.22965 97585; 40.23158 640274; 40.38311 3619070; 40.42236 68100; 40.53732 3697; 40.74418 1231825; 40.87379 24560; 41.36238 6617; 41.4479 42675; 41.49476 766959; 41.57475 63775; 41.70971 61436; 41.77336 13341; 41.77552 23607; 41.87976 631317; 42.05537 60112; 42.74633 1909951; 42.8829 222599; 42.91349 1305737; 42.95251 2221903; 43.21467 2875; 43.31441 359758; 43.60877 3246; 43.81173 4959623; 43.85219 1900453; 43.98872 890533; 44.1019 28887568; 44.34321 2215; 44.51434 8344418; 44.56936 21364; 44.67267 1410581; 44.83096 884113; 44.88384 6026601; 45.07552 38664; 45.18861 31946; 45.23284 23545; 46.11459 29847069; 46.2236 29891; 46.33306 36788; 46.53561 37828; 46.58254 4091661; 46.7391 904557; 47.32872 212798; 47.43814 618465; 47.76116 3827828; 48.21327 1428257; 48.70087 441047; 48.97489 718280; 49.0948 2423611; 49.15582 4710755; 49.19505 7260; 49.45409 43880; 49.58728 31629; 49.91705 1462655; 50.30978 4750985; 50.54311 28469; 50.55314 5005; 50.59078 5084324; 51.06938 1369319; 51.32389 7672298; 51.64396 16674; 51.72692 880571; 51.75402 25320; 52.11361 65242; 52.30867 11935; 52.47081 5573; 53.00402 1224; 53.20958 47848; 53.24567 46331; 53.55661 1705404; 53.62421 60376; 53.86002 4973; 54.25144 8666107; 54.31427 1888670; 54.46567 193984; 54.63511 2865211; 54.80221 9110; 54.8732 175568; 54.92459 4470; 54.97897 41014; 55.28965 6307012; 55.48433 1450491; 55.86121 13958059; 55.94103 39874; 56.03381 15077; 56.39631 46397; 56.48945 19761651; 56.58494 75415; 56.62994 927168; 56.77553 7576272; 56.89224 154131; 57.08361 1406581; 57.21322 103691; 57.23096 17591950; 57.26816 37198; 57.29988 3387519; 57.50468 1707956; 57.58459 20620; 57.77891 78294; 57.79648 79989; 57.8173 746219; 57.83234 3403; 57.90177 75051; 58.59652 4187; 58.60697 41667; 58.67937 9063; 58.72387 21134; 58.74068 3583; 58.91527 73399; 58.93681 35762; 59.4616 38738; 59.47306 58069; 59.75621 3729015; 60.32362 6627; 60.37862 2092030; 60.58152 9383; 60.59173 35265; 60.89801 4181916; 61.19854 6633071; 61.4778 34023; 61.70407 18176925; 61.98884 13754; 62.12805 14791; 62.36483 89884; 62.51519 2925062; 62.55033 17273282; 62.62538 2298864; 62.68318 9105; 62.68511 48749; 63.31837 5638; 63.32919 658811; 63.71915 1673949; 63.75685 9028; 64.00996 887774; 64.29252 6164; 64.38142 16412; 64.44569 1739886; 64.50119 21884; 64.52542 4410343; 64.53134 32362; 64.56637 2390877; 64.7097 12124; 64.72748 1548944; 64.80299 24413; 65.20392 243056; 65.20654 41210; 65.22451 61174; 65.6569 36519; 65.81946 207202; 65.82459 7396122; 65.92673 38652; 66.26727 4079385; 66.28836 5590331; 66.40644 36911; 66.41337 69499; 66.62569 2763754; 66.83916 51549; 66.8942 961976; 67.24102 146580; 67.35848 502493; 67.68532 10379; 67.84644 17207; 67.91287 1312794; 67.99173 1130475; 68.20284 473243; 68.45171 3030661; 68.66885 26061; 68.69977 12420629; 68.92876 145794; 69.00027 2376373; 69.27735 271718; 69.38043 59832; 69.4908 1442361; 69.71886 47549; 70.15555 31219; 70.29266 984950; 70.37508 2108757; 70.56553 3670037; 70.77985 24376; 70.97353 940946; 71.03262 37189; 71.10044 77536; 71.18534 71291; 71.25455 3788601; 71.54251 14714283; 71.58644 27041; 71.65468 545235; 71.86192 24893; 72.23243 20017661; 72.26198 25735; 72.40962 412149; 72.52381 393095; 72.92511 60800; 72.95274 2896; 73.05643 2717409; 73.24115 11554; 73.30077 96078; 73.39475 171742; 73.49233 1986267; 73.86943 2132; 73.91278 122996; 74.02581 77348; 74.23625 84595; 74.32417 44998; 74.34314 2276; 74.36824 5385557; 74.48001 348867; 74.57773 19977260; 74.63094 73513; 74.8225 6648621; 75.0423 27902669; 75.82338 86028; 75.87485 22507; 76.19373 53700; 76.33656 73814; 76.43102 4576253; 76.77145 1649075; 76.89476 43236; 76.89795 5368; 77.21717 647255; 77.24622 1514292; 77.82811 4609476; 78.10111 28938; 78.15204 97354; 78.19924 37848; 78.77444 51962; 79.14693 35990; 80.03746 2685006; 80.0606 160053; 80.36595 24059; 80.53437 713884; 80.55369 53; 80.57908 78762; 80.85032 22982; 80.88971 293888; 80.91856 6020; 81.18355 497; 81.37559 973707; 81.50877 46040; 81.5451 1521002; 81.56592 49145; 81.60103 24420; 81.67406 9760; 81.84199 899465; 82.14605 1484; 82.20478 12130; 82.28089 4093634; 82.52953 3321276; 82.66563 3427902; 82.66952 41099; 82.71645 295379; 82.76805 1810332; 82.81848 34115; 82.87126 143031; 82.89662 17196; 83.14426 215900; 83.24925 159458; 83.4684 35466; 83.5702 654867; 83.58984 26510; 83.67428 30594; 83.8009 186930; 83.89266 14097; 84.275 123948; 84.54598 19879; 84.58056 711; 84.63565 772941; 84.68624 29706; 84.75746 5363083; 84.91511 4720; 84.94051 6393; 85.03746 174749; 85.37335 3659831; 85.4569 47622; 85.50712 13876406; 85.56105 49924; 85.66009 26423951; 85.88355 5038; 86.00929 744150; 86.32013 1143444; 86.59052 560493; 86.60479 1133887; 86.7585 7901308; 87.06367 39237; 87.12921 16380074; 87.43692 349285; 87.50592 78146; 87.55077 5256; 87.70822 4520414; 87.80388 28145; 87.84026 1660981; 87.88919 225261; 87.90139 7793384; 88.18068 1209329; 88.18489 14910482; 88.43822 75880; 88.49917 23489; 88.61915 77199; 88.85494 48734; 89.52147 32481; 89.57908 8169; 89.61886 62239; 89.99929 169663; 90.05985 68873; 90.34246 70571; 90.38569 697974; 90.56564 152827; 90.76855 8022; 91.02887 1538935; 91.19982 547961; 91.94922 179529; 91.97235 245972; 92.49178 2399384; 92.78489 1516427; 92.7934 9774289; 93.02143 6269211; 93.32507 3565547; 94.22034 1785; 94.40712 22649; 94.99787 57067; 95.09839 2257724; 95.30078 22292; 95.63534 1832580; 95.69635 191783; 95.72421 414; 95.93653 1653524; 96.0504 445892; 96.39906 5064; 96.58963 51661; 97.1497 50788; 97.20429 133186; 97.29087 7954216; 97.30172 33817; 97.3197 182118; 97.45745 1086082; 97.57679 2673767; 97.69507 29456492; 97.89772 58566; 97.96703 9543; 98.08187 911626; 98.31129 5582; 98.33999 49691; 98.43195 22109; 98.46475 33648; 98.51128 46754; 98.59033 34085; 98.74328 24563; 98.92276 757; 98.94026 34756; 98.97032 45740; 99.09811 5316; 99.59326 1836057; 99.60721 81007; 99.6089 1761015; 99.70995 1513841; 99.8208 315289; 99.8234 189674; 100.16498 1105894; 100.37223 5791804; 100.43086 44102; 100.44737 8369224; 100.49001 76900; 100.84629 862257; 100.95926 30942; 101.5519 5206937; 101.57596 1374599; 102.68595 43120; 102.74138 537029; 102.75312 149803; 102.76163 3057778; 103.2295 29836; 103.39936 38843; 103.93465 1366856; 103.99509 4904520; 104.03651 1006961; 104.06296 14403876; 104.15547 14419; 104.28777 4245; 104.31608 7601466; 104.4052 25257; 104.53753 650166; 105.11629 64996; 105.32127 5838114; 105.61218 56947; 105.84914 1191; 105.98268 127069; 106.1861 263571; 106.19176 814636; 106.95739 6569; 107.14013 189231; 107.49343 43698; 107.64529 29693; 107.69993 20612; 107.72757 6556773; 107.84751 3467864; 107.97539 2280507; 108.01554 31837; 108.43923 4125558; 108.44854 39731; 108.65512 30379; 108.6881 4845; 108.7193 4414860; 109.12132 50201; 109.26614 13236; 109.31753 54084; 109.33603 45806; 109.49644 7731; 109.5551 142812; 109.55736 28784563; 109.77219 261121; 110.11446 5668102; 110.3056 20433; 110.31196 3143241; 110.745 6069; 110.82556 12503; 110.91022 75162; 111.12927 135305; 111.17948 57918; 111.32763 33906; 111.5894 73983; 111.6155 9962; 111.64785 170065; 111.74817 56017; 111.8185 19407086; 112.40231 26340160; 112.44925 33773; 112.98756 20730; 113.1079 13833; 113.36259 77121; 113.4874 389735; 113.56576 23705; 113.83743 9557970; 114.07926 968; 114.13752 6308; 114.20048 65864; 114.40256 48181; 114.85229 447326; 115.01786 1048; 115.0396 2701508; 115.06275 8632892; 115.27651 26834; 115.3484 7923966; 115.56177 32053; 115.63111 22544; 115.64319 74521; 115.8229 7895; 116.17274 725628; 116.36189 22965; 116.43457 25652; 116.59796 1785307; 117.19722 108313; 117.26022 334551; 117.81022 1141451; 118.22832 701313; 118.63325 2556716; 118.70432 72638; 118.73122 3403608; 118.8316 7159921; 118.87771 8335; 119.01578 348; 119.1267 17921; 119.29109 1043276; 119.45221 4681742; 119.53723 734213; 119.80598 2212913; 119.84092 3127975; 119.90097 47386; 120.00935 9704056; 120.49707 741646; 120.50961 24570; 120.56133 8353; 120.76062 8013; 121.0928 24058; 121.47104 1378143; 122.40351 5305562; 122.44549 9902; 122.63329 7077; 122.76245 3873; 122.80214 39538; 122.98275 22612944; 123.98485 572532; 124.11428 122; 124.48667 8144; 124.81224 492103; 124.91164 9883; 125.07498 181114; 125.08178 8951919; 125.12473 66123; 125.46171 553173; 125.56693 3750562; 125.90074 58824; 125.95579 37534; 126.03012 1450910; 126.23058 501896; 126.96363 3430; 126.98811 1329543; 127.0286 8137525; 127.059 5761801; 127.30321 52984; 127.32178 41350; 128.37686 26009; 128.63856 18200; 128.64508 4853; 128.73658 572051; 128.7957 24925; 128.98508 1364881; 129.15489 1821192; 129.16113 75554; 129.38706 1480930; 129.54296 1282187; 129.60056 33778; 129.66196 1270595; 129.79659 762242; 129.89292 407063; 129.89524 6422; 129.95691 7563334; 129.99034 68990; 130.24831 4788; 130.2538 27817539; 130.47713 79153; 130.77724 8262552; 130.88835 39318; 131.03907 150863; 131.62938 19153; 131.69472 62942; 131.77046 77561; 131.81251 48807; 131.89043 92064; 132.51251 2095076; 132.79215 19083; 132.91426 4792684; 133.01367 4515; 133.1673 54892; 133.20107 4258; 133.43129 626816; 133.43819 1369174; 133.90487 62139; 133.90944 13117; 134.12555 13930; 134.27262 4161358; 134.87933 69532; 135.31302 7517781; 135.45385 5035220; 135.74955 31599; 135.97895 3606414; 136.04232 1365111; 136.05276 20506; 136.08423 22547; 136.38824 3703975; 136.69614 39741; 136.73524 26830; 137.26458 133823; 137.43595 217726; 137.91199 13786; 137.91555 35849; 137.94988 626137; 138.039 63324; 138.08601 165753; 138.22182 389230; 138.22207 45952; 138.2704 10818; 138.54181 9050700; 138.60086 65539; 138.60279 997412; 138.72423 88700; 138.79821 8976; 138.81382 37032; 138.93483 1183311; 138.97356 307528; 139.36705 1514056; 139.57239 279888; 139.64649 2860; 139.76753 3494; 139.99134 310161; 140.31784 27228; 140.34685 636763; 140.41324 2548529; 140.77715 108625; 140.78424 28998; 141.16108 1468060; 141.34088 34902; 141.80566 29232176; 141.88575 78962; 142.50925 32828; 142.66088 4298815; 142.69293 32562; 142.75692 1471; 142.8397 7200; 143.43931 29948389; 143.47351 34829; 144.05055 85205; 144.14682 1082459; 144.22982 1617; 144.44554 1174759; 144.48903 1624574; 144.78591 8296; 144.99609 3901; 145.18118 2878479; 145.34762 612302; 145.62559 1489898; 145.85327 1940523; 146.1031 29767; 146.11161 50245; 146.30348 59; 146.42461 6142980; 146.6346 187839; 146.66889 2573351; 146.72387 4727953; 146.84367 4332191; 147.04196 2646689; 147.13038 1834062; 147.13047 11397; 147.46821 106441; 147.5392 5132; 147.54253 477952; 147.58154 64704; 147.91592 140368; 148.00168 2838; 148.04446 8666; 148.15318 21757; 148.34464 35768; 148.3639 23956; 148.41528 22768; 148.65171 778772; 148.83897 5327; 149.05529 6450423; 149.30444 6798652; 149.36164 3085481; 149.39579 848881; 149.55086 16346; 149.62203 1769956; 149.6807 665715; 149.90231 53388; 149.94556 2827540; 150.06549 13767; 150.42888 9654420; 150.73919 88367; 151.5723 471532; 151.61034 29760; 151.63378 23408; 151.65997 28025; 151.69923 6900; 151.8172 159661; 151.94887 229177; 152.05279 283315; 152.35102 179775; 152.48351 9750; 152.60028 4180086; 152.65431 64130; 152.89813 5335; 153.0302 6668296; 153.16395 5828; 153.37502 37967; 153.754 21614630; 153.7902 25856991; 153.92304 4535420; 154.0538 2447117; 154.21556 4180; 154.2292 40530; 154.25557 6613778; 154.28924 7179761; 154.34733 24978; 154.4499 44971; 154.46759 51679; 154.49731 47103; 154.59717 1036525; 154.64821 3701; 154.72337 1018373; 154.97563 22568; 155.44875 57524; 155.67202 2357920; 155.92066 2344; 156.11704 1363675; 156.41365 56289; 156.42782 676141; 156.72189 7922; 156.77163 39099; 157.08849 31429; 157.46407 7043; 157.50145 73838; 157.51484 8659481; 157.60304 61269; 157.63413 64705; 157.66833 3138933; 157.69524 1075598; 157.88928 394833; 158.23478 52312; 158.5691 10046; 158.73547 24842; 158.81684 32287; 159.04261 760117; 159.31436 8605222; 159.39568 1081774; 159.44666 17192110; 159.6719 7388340; 159.6944 74158; 159.71207 72217; 160.10719 6695830; 160.26207 53113; 160.36357 11071; 160.54543 4119514; 160.65442 4673389; 160.90503 42629; 160.90922 5634194; 161.26127 12217; 161.66016 4630; 161.94021 7244316; 162.11531 50766; 162.13597 4451847; 162.29006 45552; 162.78549 52449; 162.82019 5944790; 162.99184 77770; 163.24496 56711; 163.26761 1479; 163.77129 214332; 163.88914 17794; 163.92447 21705; 164.34499 808628; 164.38092 6777949; 164.70763 29105; 164.72625 869708; 164.89339 54545; 165.25204 1623710; 165.49645 3694205; 165.84112 1695501; 165.8983 137; 166.04353 45587; 166.1008 1112023; 166.1364 3408466; 166.22299 56282; 166.24655 176242; 166.25274 3491858; 166.47874 9635279; 166.66801 1605575; 167.09091 20213; 167.09243 2477450; 167.31757 28981; 167.56433 1156293; 168.02328 25609; 168.03945 1051128; 168.26876 62292; 168.41878 30017; 168.51426 2463; 168.52651 39390; 169.47847 514166; 169.50753 21552; 169.68828 26733; 170.20819 56061; 170.21476 1984; 170.2373 65689; 170.36984 39079; 170.67438 2429; 170.72625 8494; 170.82483 47732; 170.88165 189625; 170.98197 24249; 171.11146 70782; 171.16054 1753667; 171.19702 225130; 171.43247 1118706; 171.48717 8921422; 172.10649 5153; 172.11734 61571; 172.39689 4540557; 173.01217 9543; 173.09133 59986; 173.14668 64396; 173.7795 5272; 173.81515 1534611; 173.94252 1638318; 174.08947 64312; 174.26586 67287; 174.49419 120301; 174.86403 1000746; 174.90576 416427; 174.93861 1516510; 175.3391 8222617; 175.37848 38027; 175.39959 68211; 175.49569 7674730; 175.53243 9264; 176.22482 9636; 176.45917 15276; 176.70625 110221; 176.75974 4073778; 176.90416 20709471; 177.01496 7529463; 177.21138 3079; 177.7148 1711590; 178.09078 1298678; 178.3499 1578520; 178.43248 1599; 178.44898 3204968; 179.5476 52008; 179.77182 31908; 179.96639 125890; 180.0242 49310; 180.73273 1213965; 181.12131 7727306; 181.19219 14032; 181.40796 194234; 181.43732 3059; 181.45391 21620899; 181.52111 1902494; 181.87236 2483975; 182.29028 1097538; 182.33328 33584; 182.4192 58653; 182.58459 80778; 182.69452 4515380; 182.99121 1442; 183.14578 1318359; 183.87212 3521892; 183.88675 29510; 184.29522 27486; 184.919 114229; 185.08009 29284; 185.12822 25192; 185.15293 169534; 185.76828 21561777; 185.78429 220431; 185.98519 126066; 185.99293 71803; 186.09497 2581; 186.10114 3406537; 186.1992 363835; 186.50981 70374; 186.61249 37497; 186.68696 83464; 186.83177 41641; 187.02895 27555; 187.05145 53597; 187.21855 26402; 187.2345 112143; 187.28302 1785916; 187.28709 164109; 187.47016 921678; 187.6007 677186; 187.7405 767005; 188.25727 9500209; 188.46157 1435391; 188.58443 11558507; 188.67017 3468; 189.08213 19826; 189.19539 39246; 189.34146 76689; 189.7747 78589; 190.34377 23187; 190.46717 9428792; 190.74949 58689; 191.01424 39380; 191.12935 71775; 191.22946 27722; 191.50169 7821; 191.79998 138106; 191.86137 23974; 191.95629 8143658; 191.9639 488629; 192.45622 2818574; 192.86615 17001202; 193.10178 42010; 193.16118 29319; 193.17217 34753; 193.25647 3736; 193.59483 98058; 193.68756 69639; 193.92265 51437; 194.26145 564410; 194.35359 8543791; 194.61587 4725415; 194.68565 61900; 194.84712 67874; 194.97277 22091; 195.04098 41869; 195.16903 3528; 195.23027 816082; 195.3014 6978; 195.52119 21912; 196.09942 5874; 196.34519 79158; 196.8049 37423; 196.92474 18960574; 197.22269 79240; 197.5108 5867; 197.90963 43315; 198.13396 8114100; 198.15272 55166; 198.29938 31152; 198.38785 15169; 198.45233 9067; 198.70773 501166; 198.86607 4087; 199.24258 78430; 199.26349 2886243; 199.32325 36113; 199.76908 70105; 199.79423 7408; 199.80311 6002167; 199.81897 2864438; 200.06353 11076; 200.24678 165980; 200.25902 41700; 200.75911 9932502; 200.76486 32058; 200.7717 29002; 200.99292 17870; 201.11858 3317065; 201.35351 308951; 201.57657 3107931; 202.13809 883537; 202.17967 830075; 202.3463 34912; 202.52108 7493283; 202.73478 25858; 203.12239 3221; 203.76845 7631; 203.81496 38684; 203.8663 3742; 203.98319 1692269; 204.04767 58817; 204.0682 18505560; 204.07633 50604; 204.11864 309; 204.37202 323903; 204.42084 65653; 204.65461 24072; 204.83731 127422; 204.94108 391283; 205.32464 520323; 205.60408 61713; 205.693 6457; 206.03363 62396; 206.17009 12032; 206.19951 33487; 206.35811 1584722; 206.48054 183501; 206.4824 51000; 206.63041 20421; 206.712 1409189; 207.12326 11055; 207.23582 558374; 207.2713 23200785; 207.29497 26104; 207.59361 1676336; 207.63079 8049; 207.75941 11761; 207.94909 193106; 208.01326 912898; 208.07457 289210; 208.6468 65884; 208.71021 1715102; 208.9518 4633388; 209.02177 49375; 209.15133 4180665; 209.37765 72642; 209.45163 17322; 209.56811 9743; 209.6534 67561; 209.7734 20114; 209.94049 23272; 210.48313 558411; 210.58395 4359743; 210.69205 3331664; 210.92754 729659; 211.06563 2908075; 211.15602 23869; 211.19184 31101; 211.20544 27242569; 211.29435 8441; 211.76363 44680; 212.07564 1904; 212.28521 3511869; 212.35722 355776; 212.62324 72909; 212.75989 3315812; 213.0865 16395; 213.18278 45793; 213.37967 10424; 213.45568 1153314; 213.46692 8783122; 213.51842 46563; 213.74722 415618; 213.90479 4473203; 214.2157 189477; 214.29301 4268564; 214.53018 28993; 214.5621 25650; 214.58063 4980; 214.60375 31541; 214.6328 11023706; 214.71209 44493; 214.88139 53968; 215.03371 36040; 215.4222 10526; 215.49817 5181; 215.51718 9347267; 215.58359 64413; 216.11182 594415; 216.68802 3115225; 216.70544 24145; 216.78911 8590; 216.81884 1345175; 216.84254 33650; 216.9853 6848; 217.05972 23446; 217.18126 459663; 217.19057 986300; 217.70004 5189; 217.99396 4446; 218.0714 8604; 218.0969 1023305; 218.29176 5243694; 218.48698 3002611; 219.14509 53771; 219.15532 24430; 219.26709 1392944; 219.48234 13308729; 219.54306 480920; 219.73357 28991; 220.21372 1621456; 220.28332 14980429; 220.57954 141; 220.71836 77375; 220.81848 31937; 220.84443 55555; 220.87303 8370; 221.03323 6394811; 221.15623 139508; 221.22655 42494; 221.24961 3247; 221.37137 2170274; 221.47941 3817; 221.56708 16074; 222.13369 5369; 222.30454 821492; 222.35026 642912; 222.36513 46442; 223.08633 42687; 223.52197 22503; 223.58021 1042189; 223.64476 7169; 223.75024 4753639; 223.85945 17424482; 224.14047 5589671; 224.33252 49800; 224.50677 1745999; 224.52143 1579499; 224.69316 43195; 224.95173 198387; 224.96385 22584; 225.21232 969; 225.23738 10321; 225.52482 152964; 225.59212 26562; 225.71316 1495; 226.14439 5577977; 226.34962 22359; 226.41557 161321; 226.56975 1403903; 226.89234 29584; 226.99515 9670259; 227.26012 161371; 227.41045 899338; 227.43015 3799; 227.60258 915781; 227.65276 28603; 227.77039 1926525; 227.78054 26584; 227.86769 30713; 228.12315 29293; 228.24348 97468; 228.27194 29645; 228.49476 5733023; 228.56572 103735; 228.88167 20442; 228.97712 8367; 229.05121 29008; 229.1609 113045; 229.17681 14497; 229.19487 22589; 229.2658 1096866; 229.92201 5815115; 230.4245 900334; 230.72501 7144841; 230.76404 1046452; 231.40316 1083; 231.85703 106080; 231.94741 6947; 231.98633 8263594; 232.18143 395376; 232.18734 22706; 232.29601 3413820; 232.3276 62086; 232.34372 6096374; 232.44197 80527; 232.9763 57955; 233.0314 7443; 233.36397 2685888; 233.63309 1916907; 233.75272 7762; 233.81804 4018; 234.20992 7338980; 234.31978 26994; 234.56116 4754938; 234.70675 63894; 234.80703 336; 234.8723 1607199; 234.90646 115960; 234.92478 43396; 234.94284 6386; 234.9651 3961633; 234.9955 47926; 235.32065 77411; 235.44154 2459; 235.69255 64180; 235.79355 721128; 235.81295 1709962; 236.19225 41743; 236.1964 4529939; 236.2664 74653; 236.66019 20996021; 236.68053 37411; 236.70051 350044; 236.80156 50675; 237.21623 2069238; 237.27158 79156; 237.57817 5605971; 237.996 9522; 238.06233 1139983; 238.10701 58289; 238.10855 57157; 238.15448 63077; 238.15502 18216; 238.31583 196828; 238.84403 73890; 239.47092 635418; 239.47725 1299876; 239.54845 31671; 239.68664 792298; 239.71931 8633284; 239.88965 5827; 240.04532 1797690; 240.10428 142379; 240.16028 537679; 240.24648 135; 240.57246 759; 240.57469 11696; 240.94181 3898632; 241.5759 73065; 241.98231 67577; 242.06683 69829; 242.18683 6014630; 242.29067 1086368; 242.7578 50108; 242.83955 59559; 242.90291 1440336; 242.97996 7375; 243.20657 1218747; 243.35045 8317270; 243.39018 43894; 243.67927 2559; 243.99524 72945; 244.03445 7201580; 244.12328 31334; 244.38491 1664716; 244.50167 25971; 244.78689 78831; 245.37992 76999; 245.86312 189561; 246.03156 17947125; 246.22253 145; 246.45102 7401936; 246.58259 24553; 246.9037 59268; 246.92369 26057; 247.00829 55184; 247.11437 17596; 247.30296 3239077; 247.37824 567717; 247.3993 100484; 247.46277 107262; 247.55465 17312; 247.78039 401333; 247.9653 2953963; 248.05178 19044; 248.07922 34335; 248.20693 22595; 248.31371 1508221; 248.87722 226814; 249.01128 77109; 249.06698 321; 249.18368 213239; 249.59985 3041779; 250.0175 24190115; 250.38324 42511; 250.46872 25279; 250.5436 2373; 250.69916 41424; 251.1949 55411; 251.65664 5686; 251.73468 9985525; 251.89146 5856109; 251.91794 17351; 252.09145 22806263; 252.24825 7972; 252.26742 18900; 252.40834 25519; 252.67695 1056611; 253.02571 150946; 253.07363 76220; 253.15533 51672; 253.16185 122079; 253.20469 7938; 253.34252 77616; 253.36037 1769019; 253.40789 127610; 253.76717 23166; 253.98977 2936518; 253.99855 53062; 254.3217 1938474; 254.35381 20104; 254.39576 40619; 254.40468 33484; 254.79042 3112491; 254.7907 29279; 254.79398 219613; 255.13156 34982; 255.60832 1482195; 255.63249 24068751; 255.79705 5164178; 256.26951 63157; 256.30667 106113; 256.53443 22399329; 256.67032 21547; 256.87744 199891; 256.90343 128444; 257.19876 884203; 257.37385 79385; 257.73392 730267; 257.81269 29083867; 258.05405 5989416; 258.40088 249732; 258.45018 9301; 258.75574 9823741; 259.09816 338417; 259.19152 43161; 259.36983 35349; 259.46975 22882; 259.64475 138857; 259.82514 30266; 259.85813 7027; 260.33998 71195; 261.03388 2905981; 261.30347 756914; 261.3782 158948; 261.38608 24822; 261.46817 78164; 261.50289 18451; 261.66317 39489; 261.69182 1371562; 261.77079 5811; 261.85253 2947236; 262.02184 50923; 262.16819 1454; 262.16893 33009; 262.18743 6142; 262.29081 122238; 262.47894 746898; 262.60686 378871; 263.00697 77056; 263.1869 20931; 263.29628 20808; 263.36585 217971; 263.68356 1738017; 264.06341 569408; 264.12657 62368; 264.1866 1021; 264.36556 22701; 264.4304 33505; 264.61704 366; 264.62652 5753612; 264.62683 29683; 264.64643 712785; 264.66155 4143648; 264.80394 64749; 264.83128 58878; 264.86085 37210; 265.05668 8913; 265.63489 1672708; 265.70474 8896152; 265.80424 9645457; 265.91149 6630035; 266.18938 46056; 266.99838 386574; 267.37266 17086448; 267.38996 1748445; 267.44966 43405; 267.45351 1031611; 267.48634 17984730; 267.79793 72010; 267.90491 3975151; 267.98373 23134; 268.06968 27199; 268.15755 66783; 268.19749 29383; 268.73245 1663516; 268.80074 48452; 269.34542 13766; 269.34546 1070901; 269.58487 6312215; 269.60807 21425859; 269.66614 4421402; 270.11974 9135; 270.41918 12767; 270.45421 449506; 270.516 1916405; 270.68058 6837920; 270.78077 38804; 270.79186 47712; 270.82576 32067; 270.85263 2424708; 270.93559 1887416; 271.29067 840925; 271.38813 1047162; 271.50093 24708; 271.51847 1089881; 271.61566 7136679; 271.73931 37808; 271.8954 3051720; 271.96178 3072507; 272.00271 11522; 272.04494 27713; 272.35311 3417016; 272.41896 1110577; 272.55951 16894; 272.69343 7070; 272.78769 25909; 272.81615 1294394; 273.59927 2967; 273.66897 5506; 273.73225 44422; 273.734 8393720; 273.78145 3677344; 273.78756 1709631; 274.12756 1997808; 274.29577 62654; 274.33464 3886988; 274.44835 67221; 274.66225 3208364; 274.77434 1895486; 274.95136 14546; 275.00184 99369; 275.16812 571669; 275.1768 31654; 275.22084 5787; 275.40551 6694; 275.67219 1186383; 275.88112 72561; 276.3253 804376; 276.3355 45349; 276.35557 67613; 276.41635 175240; 276.42124 1127513; 276.45863 15173; 276.55725 9397220; 276.56686 148206; 276.67752 24396; 276.68394 55087; 276.69972 4816850; 276.77379 1894764; 276.95997 526930; 277.15449 6970560; 277.71781 2985500; 277.93222 1615492; 278.0117 23720; 278.11907 19110; 278.18994 466453; 278.23903 6374968; 278.31868 1925063; 278.66959 3692674; 278.73448 32589; 278.95753 65167; 279.43403 7121; 279.49689 868382; 280.10944 549; 280.31673 735779; 280.81388 4226; 280.99116 69285; 281.0782 491808; 281.51172 310061; 281.59304 4427560; 282.11513 1157153; 282.17156 6202667; 282.38623 3573362; 282.43862 29457; 282.44286 2553296; 282.49064 197956; 282.53831 62020; 282.56898 59920; 282.84115 1792641; 282.89433 151505; 283.07853 447319; 283.0878 1771551; 283.49837 3420211; 283.60707 74435; 283.60795 1349; 283.67213 8684; 283.78936 26442; 283.85334 197066; 283.92068 7802403; 284.08045 42184; 284.41337 7152; 284.5745 13146092; 284.64649 39666; 285.11472 24735; 285.19792 3855220; 285.3191 46643; 285.34892 42793; 285.95921 1058786; 286.48001 46676; 286.56771 1773; 286.62892 44745; 286.80373 2292274; 286.82242 23537; 286.82996 747064; 286.87112 59333; 286.99762 19850; 287.11922 62171; 287.24429 433029; 287.25652 259237; 287.35042 3036; 287.36745 1998469; 287.49971 49315; 287.68748 1408793; 287.9052 18660; 288.40605 12602; 288.88366 6579577; 288.89385 141840; 288.95196 43745; 289.37539 367822; 289.70422 8346; 290.06403 162425; 290.07111 1985; 290.22772 148661; 290.59763 79869; 291.00545 999421; 291.08933 29533; 291.31645 12735; 291.38743 2976547; 291.51805 223301; 291.53847 24643027; 291.74843 45603; 291.80344 7496; 291.82147 5977; 291.89492 2695; 292.10894 22437; 292.46386 3773109; 292.46434 478723; 292.60575 51443; 292.61947 26618; 292.75446 3371009; 292.89189 44580; 292.89322 57783; 292.93679 74564; 293.00518 9302490; 293.2196 79856; 293.39868 3543993; 293.45522 3882533; 293.59649 152063; 293.69085 4801; 293.97801 7554; 294.08974 79621; 294.27229 1220785; 294.41489 25730025; 294.59347 108679; 294.89783 35545; 294.92021 21353; 295.01443 21934; 295.08316 6687127; 295.14558 1390; 295.5848 1497; 296.23389 185319; 296.23938 3747489; 296.54631 1248526; 296.68055 1053861; 297.33573 96810; 298.02265 703525; 298.137 62499; 298.36904 3599105; 298.47255 2214; 298.51978 7750619; 298.53653 2065237; 298.55282 69818; 298.69568 9076; 298.73166 17452506; 298.77637 50190; 298.91931 31873; 298.96337 20970; 299.18974 141376; 299.34297 79510; 299.82404 117803; 300.04576 23043; 300.36404 3539219; 300.99994 4781; 301.03606 1762894; 301.09118 28790199; 301.84569 3723255; 301.96116 56750; 302.28707 10547; 302.54888 9648; 302.7501 98251; 303.21536 8745; 303.28414 844994; 303.39071 603848; 303.43168 25215; 303.81765 7557487; 303.87616 9452469; 303.96241 2460114; 304.0225 26749; 304.07093 4340; 304.23175 175517; 304.31287 3289756; 304.37773 1553594; 304.44452 7546790; 304.53678 893331; 304.78166 165384; 305.00306 6264833; 305.20354 1676503; 305.51223 1457; 305.5166 21350; 306.14828 1712325; 306.16229 17857546; 306.25046 28749; 306.27105 25557; 306.35821 2326010; 306.46797 8654455; 306.52388 7975598; 306.90681 55516; 307.05663 32225; 307.47728 1150305; 307.4928 8166493; 307.64531 3860039; 307.76912 2341920; 307.79403 8642; 307.82667 9765731; 307.86071 10674451; 307.91983 16165; 308.03829 40759; 308.06538 1366340; 308.34481 7877; 308.49171 78217; 308.62377 66547; 308.68092 6340; 308.75181 1779430; 308.96612 660919; 309.04472 192570; 309.4528 4278813; 309.46591 14958614; 309.49859 56116; 309.51744 77197; 309.60695 33083; 309.67072 58857; 309.76116 25488; 309.78466 9411; 309.90908 5649811; 310.28682 347213; 310.48903 9372722; 310.8756 73652; 310.92573 230434; 311.20313 11139; 311.20804 20788; 311.23723 2576819; 311.34011 67787; 311.3512 1924; 311.40778 11138; 311.60051 447805; 311.69701 6363778; 311.83219 161553; 312.13826 4599; 312.22168 32959; 312.28412 56911; 312.73015 173658; 312.85477 1760; 312.88494 288796; 313.09383 50074; 313.19539 5257; 313.4958 1820213; 313.53628 187014; 313.8059 497773; 313.81368 3741; 314.04206 3277; 314.25165 152787; 314.54346 32557; 314.69189 29062; 314.90963 57139; 315.03251 28899; 315.74572 17745; 315.87309 18450; 315.93731 819445; 316.01638 53676; 316.10053 25045392; 316.25439 5024; 316.28859 4392; 316.34709 8710758; 316.36056 2636683; 316.54133 486990; 316.55101 9630420; 316.59774 230728; 316.8248 41302; 316.93315 3140; 317.69057 393652; 317.71098 4151118; 317.96149 17673613; 318.05323 24680; 318.12904 15624; 318.1293 680; 318.3757 24486; 318.40456 65012; 318.50739 103884; 318.76769 25561; 318.83314 606910; 318.89152 63271; 319.12317 1578; 319.25168 68572; 319.29825 28353788; 319.39917 23329; 319.40234 8531630; 319.46388 52418; 319.49746 7805083; 319.76792 64264; 319.86557 1110952; 320.17087 1352082; 320.18059 23759; 320.32412 2267; 320.37496 8724081; 320.47222 3913989; 320.76668 2371906; 320.86693 34478; 320.91979 97623; 321.0712 89355; 321.10387 64503; 321.14686 129297; 321.32485 50114; 321.47647 4982921; 321.71264 157050; 321.80589 13711381; 322.6226 3024757; 322.6363 316974; 322.73242 15988; 323.01788 1152769; 323.17023 425761; 323.21787 3077080; 323.42716 3649337; 323.6623 28043; 323.81009 79675; 323.81279 54868; 324.45354 2661; 324.53895 77750; 324.60647 26359; 324.88039 1748; 325.67833 21174; 325.67863 75274; 325.79793 63500; 326.07473 608664; 326.25239 6192; 326.40138 1467670; 326.68638 1279864; 326.89581 6346; 327.54824 30613; 327.82722 79241; 327.88521 2883271; 328.33644 14581119; 328.54138 26955; 328.69899 677581; 328.99212 752154; 329.33377 510064; 329.40718 63647; 329.47497 2237325; 329.57705 21426; 329.66988 520; 330.03276 3559376; 330.36792 3214; 330.42123 197488; 330.50018 125710; 330.56926 20842; 330.76273 64224; 331.07666 7742; 331.16989 46318; 331.20829 48859; 331.68842 196848; 331.73589 8028199; 331.81849 68476; 331.83573 77768; 332.02372 1998726; 332.37885 1597671; 332.5703 24671; 332.91892 3444; 333.09953 180488; 333.14423 49574; 333.17166 7232; 333.5956 49008; 333.79817 22043; 334.10273 44449; 334.19306 1295404; 334.23908 5467146; 334.75121 199773; 335.08951 17312630; 335.47874 2889620; 336.2311 4460926; 336.27792 24541; 336.35489 42270; 336.51948 2841015; 336.94502 61211; 337.02979 8583068; 337.3049 31766; 337.36999 75484; 337.37477 6760532; 337.38308 29790588; 337.56663 4310104; 337.60733 51054; 337.88843 1435826; 337.91771 23340; 338.18188 28447; 338.47056 6343; 338.52574 11640; 339.49223 3851593; 339.58071 58806; 339.7058 745; 339.86384 22936; 339.88554 9037888; 340.14627 30361; 340.19536 905967; 340.22524 8027; 340.33012 4110789; 340.49892 18585; 340.67078 53135; 341.24575 8528; 341.3289 777628; 341.36986 5583; 341.46806 48128; 341.47461 4626750; 341.49954 93531; 341.82409 9150270; 341.85944 3711876; 341.94862 40868; 341.98972 187047; 342.2945 7538373; 342.45822 880955; 342.48087 8382; 342.70182 30759; 342.86344 5850456; 342.92402 17009; 343.64911 72563; 344.00504 140027; 344.02097 3546682; 344.93022 3145705; 345.39206 7603802; 345.48622 3869987; 345.58125 64756; 345.72548 70415; 345.76403 156870; 346.01502 4081408; 346.03363 66480; 346.34582 45949; 346.74112 2382586; 346.95283 20075; 348.08873 1129221; 348.56166 9154777; 348.88807 68359; 348.95748 47882; 349.0319 378190; 349.06183 2660760; 349.35094 799519; 349.38016 29169; 349.41148 22307; 349.46507 1671213; 349.95975 35427; 350.04297 33750; 350.07698 951039; 350.21635 501062; 350.58097 9003; 350.59596 1671590; 350.615 13199; 351.55749 7582; 351.56043 4475313; 351.88892 2862; 351.95079 4145545; 351.99536 78284; 352.15861 18757; 352.27283 2190810; 352.28457 761037; 352.58439 3886879; 353.22905 2339; 353.36154 4397693; 353.56111 22328; 354.08571 16879; 354.15987 4276229; 354.60019 66950; 354.74305 974678; 355.01291 3400080; 355.12999 36745; 355.26863 24762; 355.4188 21885572; 355.48769 702; 355.50204 92924; 355.70437 43970; 355.93725 83003; 356.15669 36585; 356.17721 1829904; 356.21256 31729; 356.57154 60734; 356.69836 55368; 356.74399 1046747; 356.93767 248872; 357.06166 113782; 357.87486 1890; 358.06027 806749; 358.11308 70601; 358.2357 21069; 358.38332 2623121; 358.39682 3254300; 358.6002 2880118; 358.64683 9250; 358.76044 36858; 358.90536 24505; 359.55888 1572968; 359.67833 1765106; 359.70891 7206247; 359.93223 3189504; 360.02336 3684357; 360.03849 7580911; 360.33545 6585840; 360.41454 142576; 360.55382 2632930; 360.87047 1412675; 361.09786 9156; 361.24153 40638; 361.54221 1264236; 361.62521 491797; 362.02193 1886473; 362.09875 26634; 362.12739 3347810; 362.19327 6121; 362.36058 5593692; 362.37599 3668699; 362.45834 5144; 362.64549 9703; 363.02635 1144287; 363.11768 4943; 363.17997 9920; 363.18766 25404; 363.2733 75797; 363.33677 1947830; 363.60659 9956; 363.86402 7472; 363.99185 46315; 364.08388 259; 364.0998 1328337; 364.35631 3959970; 364.51404 4166525; 364.82441 52993; 365.18938 5887702; 365.34927 6507; 365.3678 1250182; 365.5414 29426; 366.14272 10853; 366.43677 43842; 366.44612 8492; 366.61354 1689716; 366.88171 71632; 367.3063 67116; 367.42863 11733437; 367.9836 33839; 368.04977 44410; 368.12315 1855138; 368.21467 1576514; 368.27287 12481013; 368.47643 26472; 368.54 29891; 368.54208 34592; 368.68436 55104; 368.75855 9299; 368.82981 53866; 368.89917 2549; 368.94175 17900; 369.1449 1475508; 369.51596 55257; 369.63935 61084; 369.79879 3126490; 369.82564 1526; 369.96308 33797; 370.02219 32765; 370.24952 50001; 370.49032 3100399; 371.73088 26095; 371.99292 11024; 372.61707 4113; 372.85902 33320; 372.93541 45102; 373.20629 152134; 373.30831 900141; 373.35362 1572964; 373.3799 1639543; 373.39541 67275; 373.7928 79639; 374.02706 103414; 374.25785 78256; 374.86478 1517946; 374.87175 9627170; 374.9477 1919; 375.00636 14675; 375.0156 4638739; 375.1626 43974; 375.20288 518546; 375.37604 5195; 375.37792 16916; 375.63332 6897616; 375.83391 2513143; 375.98398 1931342; 376.00241 27639; 376.13029 20952; 376.29415 8452; 376.34539 4564; 376.58787 71487; 376.63409 67143; 376.65408 27822; 376.70425 60517; 376.89889 926545; 377.1593 1425439; 377.2068 60566; 377.42885 170967; 377.44163 28903195; 377.80732 4025479; 377.91404 1770251; 378.27112 744462; 378.28156 19603; 378.74028 16561955; 378.82044 1393034; 378.97792 50427; 379.00944 140630; 379.26148 44423; 379.36603 12904; 379.41586 22354; 380.28286 1016; 380.59253 364631; 380.96393 47048; 381.42454 71052; 381.4742 3673978; 381.5629 21986; 381.65573 2071542; 381.91815 1163307; 382.06927 3050986; 382.07673 22593; 382.28455 75488; 382.48819 104535; 382.83626 4445; 383.05907 64804; 383.05966 40052; 383.06776 903059; 383.14723 28077; 383.26729 3770; 383.30643 20543148; 383.36377 1936935; 383.46493 1546764; 383.8219 4178; 383.87666 275850; 383.92837 22422; 384.04201 59757; 384.08847 6516; 384.17149 69087; 384.35157 3738693; 384.37848 657564; 384.3955 71216; 384.51235 50473; 384.66358 52574; 384.85543 18836; 385.3152 22927727; 385.31751 70435; 385.51625 64034; 385.55449 31937; 385.5944 35761; 385.84057 78304; 386.55595 1271; 386.74959 24168; 386.82415 9637636; 386.91433 236603; 386.93974 42893; 386.99005 23626098; 387.11349 1001344; 387.14803 17330; 387.20199 1661459; 387.29195 3323031; 387.53376 1790805; 387.54535 23142; 387.62317 16849; 387.87021 27519; 387.96971 143000; 388.29179 27030800; 388.43674 17234303; 388.48115 106419; 388.53075 1804627; 388.83189 3013; 388.96438 1680644; 389.04543 7732; 389.17758 1979190; 389.20401 1586846; 389.6268 13202765; 389.76882 52428; 389.88588 31753; 389.91784 34577; 389.94223 36065; 390.09107 4305; 390.39207 2499367; 390.43009 1838709; 390.63024 3766; 391.39322 176099; 391.39667 672; 391.48003 282202; 391.60247 8597; 392.01554 7313598; 392.10506 3133612; 392.53352 379; 393.04049 63680; 393.22123 1089703; 393.29431 74479; 393.315 2497954; 393.3858 7520; 393.48745 9712; 393.67801 48953; 393.70976 7558848; 393.7567 68180; 394.26254 3363627; 395.11694 24662; 395.16967 614140; 395.34016 61339; 395.4206 395212; 395.43442 46564; 395.58612 19533; 395.8489 16015; 396.15871 584; 396.3852 76521; 397.13177 75437; 397.35144 5712794; 397.46351 113847; 397.51254 6723; 397.79152 29146317; 397.88693 38833; 397.89705 52445; 397.979 66252; 397.9854 7038; 398.12316 30463; 398.17989 37652; 398.62577 30365; 398.93399 7509294; 399.21613 1397241; 399.6564 995; 399.65716 38826; 399.88361 737438; 400.06681 61621; 400.15079 1905199; 400.27908 6001; 400.43071 61230; 400.47855 636486; 400.66459 58724; 401.02536 7733; 401.54571 13849598; 401.54842 11486; 402.01627 1871268; 402.11262 59286; 402.16493 50206; 402.38945 222895; 402.59266 2578640; 402.60306 57540; 403.01897 33022; 403.02092 934936; 403.03584 6868; 403.25606 36289; 403.3056 377; 403.53377 159140; 404.17291 6153; 404.32741 21799; 404.44296 1907741; 404.47969 1363160; 404.56318 54246; 404.82598 3621901; 405.11776 232986; 405.64974 795155; 405.78182 25556; 406.00127 40483; 406.01923 9908327; 406.34505 1992; 406.47315 31291; 406.91495 384799; 407.03793 371959; 407.08005 7503; 407.11043 9711535; 407.53612 1507114; 407.5939 13816; 407.69765 42703; 407.85005 724948; 408.16679 25928; 408.58672 50173; 408.59451 7868192; 408.74902 6471; 409.07719 29942416; 409.79408 7480; 409.99354 8653; 410.20297 1418403; 410.22985 27054700; 410.24305 43933; 410.4021 4666053; 410.64122 2190869; 411.13265 70366; 411.55238 1100753; 411.59557 29145036; 411.76496 3337410; 411.96389 1377965; 412.0406 28470; 412.21052 6132; 412.45561 76252; 412.6798 67107; 412.70694 39634; 412.96905 1660715; 413.00639 1515528; 413.46804 63416; 413.50526 4449; 413.63052 69848; 414.29731 1960; 414.49155 6018; 414.72601 65581; 414.80978 31596; 414.93746 4344132; 414.95419 9120; 415.324 30781; 415.39087 2257313; 415.48409 25116; 415.91519 29963; 415.91948 489515; 416.00635 1839; 416.03639 62793; 416.14036 17072; 416.60905 540217; 417.12951 54305; 417.17704 5790799; 417.39221 55590; 417.60135 8493; 417.74528 1379743; 417.83343 7078; 417.88209 7202; 417.91821 31235; 417.99372 5751; 418.03763 2001755; 418.29931 1748468; 418.75619 20486594; 418.8551 2713302; 418.90946 2796253; 418.95814 21209; 418.96923 35736; 419.11149 871883; 419.47871 4591838; 419.66962 25380; 419.83885 19764; 419.95375 3546223; 420.02827 7834; 420.09287 1505098; 420.10952 3688175; 420.36292 6993840; 420.42749 36336; 420.47369 33296; 420.54908 46037; 420.80687 192610; 421.02243 590919; 421.13092 47494; 421.27945 5792955; 421.50002 20579322; 421.77178 71698; 421.97181 3563673; 422.06188 39510; 422.10044 240; 422.52295 3190872; 422.57703 1596915; 422.91528 4794159; 422.96135 25724; 423.02149 51169; 423.07101 72417; 423.0973 3769858; 423.20005 1206847; 423.23907 1894043; 423.28005 7970; 423.59664 214498; 423.60408 47839; 423.7107 27982; 423.84999 18191; 424.18932 245809; 424.41974 48222; 424.79278 52557; 425.33939 60389; 425.77817 24183; 426.01039 483713; 426.20467 29197; 426.39282 769405; 426.4413 17110; 426.69032 179057; 426.76688 6181; 426.77115 2557; 427.04412 46582; 427.17884 492025; 427.27125 3832204; 427.39915 49540; 427.58423 79843; 427.66786 1769581; 428.05437 1867687; 428.1121 18176; 428.23193 1395231; 428.71331 106240; 428.90907 15371; 429.12724 35809; 429.16981 15098; 429.20726 1678233; 429.34245 22266; 429.37007 4776; 429.73112 2980883; 429.7389 1240396; 430.29041 3886911; 430.40567 129646; 430.53886 4422604; 430.78503 25140; 430.89434 2054; 430.94853 18345993; 431.01761 976978; 431.08432 73551; 431.20637 4661149; 431.25391 8851; 431.41215 72401; 431.41571 1122928; 432.1302 68412; 432.21611 2752; 432.2422 3587; 432.32015 1594693; 432.51513 4836458; 432.56081 73332; 432.61905 592515; 432.7634 1767709; 432.77924 13091; 432.982 27930979; 433.14407 73624; 433.18083 932; 433.24929 60497; 433.35904 9593; 433.39177 292295; 433.58507 4611243; 433.75278 57901; 433.79853 3444834; 434.01876 2530; 434.29887 21222; 434.36172 13052569; 434.38732 1186991; 434.76701 66714; 434.85504 606615; 434.90025 3978; 434.99708 8090914; 435.03477 4672742; 435.76172 54909; 435.76762 19309351; 435.7776 1104677; 435.80714 6387343; 436.0666 186143; 436.12793 28964; 436.32941 16837; 436.47727 164504; 436.57884 6509; 436.76572 123300; 437.24117 418619; 437.67886 31481; 437.76368 6856; 437.84021 32252; 437.9362 1664806; 437.99566 28735; 438.22131 146466; 438.39775 403491; 438.50272 55662; 438.5441 4164305; 438.57482 12984013; 439.57513 4640817; 439.75452 3983113; 440.1271 980822; 440.1638 60604; 440.2349 51709; 440.38269 29063; 440.46631 13734; 440.47323 75770; 440.49946 42557; 440.53374 4503731; 440.80128 1278259; 440.9569 24244919; 441.06772 63430; 441.15546 790822; 441.30454 152856; 441.6533 1411552; 441.98892 151146; 442.05051 258868; 442.09594 1539754; 442.57141 30070; 442.80321 52131; 442.91597 9475944; 442.95652 71268; 443.12082 429010; 443.17918 732721; 443.22315 550; 443.22964 38555; 443.49467 520622; 443.5425 1057; 443.68968 3902463; 443.79879 4130; 443.85967 43863; 444.01157 171363; 444.24307 20264; 444.35916 27624; 444.50406 10289; 444.5499 140346; 444.60982 16089165; 444.72116 7745608; 444.73043 6057641; 444.865 66087; 444.90291 47680; 445.11136 8330; 445.25308 4107196; 445.25796 7089432; 445.42258 3120; 445.45952 951856; 445.87539 14538; 446.07618 10090878; 446.11597 27923; 446.47806 5261; 446.57361 26686; 446.79334 7235142; 446.91167 71002; 447.02316 1493619; 447.03828 3334409; 447.33427 26345; 447.70747 1635; 447.83561 1162; 447.86839 7741106; 448.23397 64087; 448.46207 420205; 448.554 5817035; 448.59501 7454; 448.60647 375894; 448.62808 31056; 448.73872 31009; 448.74902 91348; 449.07574 729749; 449.11121 358980; 449.33357 1709348; 449.50189 3329; 449.77915 175427; 449.80909 2424106; 449.89775 27907228; 449.90558 11700; 450.15027 1423139; 450.15265 1529804; 450.50919 3854698; 450.84312 31603; 451.22501 1201110; 451.36219 9137; 451.39688 29792455; 451.62915 930952; 451.89401 6034681; 452.01387 28166; 452.10928 41372; 452.21116 22177; 452.33313 28860; 452.67592 57631; 452.74446 1443041; 452.82257 194786; 452.88814 29007; 453.0034 48699; 453.02612 8190; 453.39423 9744; 453.39706 47891; 453.44198 3489007; 453.49111 47699; 453.50418 70502; 453.65597 707665; 453.69035 12670; 453.87067 5794943; 453.90409 73190; 454.14764 1174250; 454.34647 13681; 454.77324 45965; 455.05204 33360; 455.10837 20241992; 455.23108 25051624; 455.40244 4054130; 455.48208 4193; 455.64167 67849; 455.66884 2293170; 455.92472 28049; 455.94041 69253; 456.6003 3756480; 456.99481 199625; 457.01967 57275; 457.14066 139574; 457.53902 2546; 457.66325 64765; 457.92253 6460; 457.92295 24580; 458.16625 1753268; 458.25028 1001123; 458.32001 33432; 458.39938 1420564; 458.61703 78456; 458.64353 6350; 458.73334 27976; 458.82443 50889; 458.83991 69115; 459.03309 686256; 459.06555 108197; 459.09338 1362652; 459.12607 24579; 459.18757 3712723; 459.256 175248; 459.28441 30374; 459.43104 19837; 459.5192 24655; 459.54415 956518; 459.64533 25012; 459.70648 1978815; 459.72055 42678; 459.9243 9663; 460.08054 234417; 460.21464 68969; 460.5682 23616; 460.58795 24984527; 460.79436 120903; 461.32748 36865; 461.55495 138576; 461.63083 986423; 461.9377 171028; 462.08348 4125241; 462.43836 1839936; 462.64008 1792877; 462.72063 17976841; 462.87947 131632; 463.00452 4164831; 463.06565 881763; 463.44551 2631135; 463.87508 2178; 463.88522 25672; 463.91865 22372; 464.19157 1246713; 464.49852 34240; 464.59398 2431013; 464.62104 20373; 464.87668 1032817; 464.90722 3291109; 465.24338 120915; 465.65086 21753; 465.75063 182283; 465.77411 4822752; 465.80121 25632; 465.94294 27064; 465.96373 7639; 466.09712 150; 466.18567 1537057; 466.49673 68325; 466.98376 1782192; 466.99971 7511; 467.20987 1280036; 467.25905 29739; 467.62217 6448609; 467.7255 9774747; 468.23373 2606980; 468.61185 165868; 468.68967 1442940; 468.69324 18659; 468.75577 16950995; 469.12617 1122227; 469.26057 155561; 469.29909 47201; 469.49456 4193941; 469.51204 29941160; 469.52636 8680; 469.53094 3631; 469.76352 9608; 470.03122 1776426; 470.48322 149957; 470.62186 1952066; 470.65418 7399584; 470.93382 5036314; 471.25634 31245; 471.28412 30098; 471.52937 24173; 471.53593 15720; 471.64503 20884; 472.22846 141313; 472.37871 7082; 472.74249 976076; 472.9278 2272940; 472.96038 2263723; 473.02329 42862; 473.28584 76493; 473.34322 8468916; 473.58395 141711; 473.58906 6865836; 473.6538 25272; 474.12619 68943; 474.21703 36120; 474.25685 2298; 474.32373 33675; 474.34657 24203; 474.45162 51310; 474.62961 30198; 474.78245 20164; 474.91272 17694; 474.92276 32908; 474.98688 11561830; 475.03949 7704; 475.24899 22951; 475.34342 296923; 475.35602 1903146; 475.40923 7445473; 475.41664 1414992; 475.42465 72042; 475.58122 2021134; 475.74618 84474; 475.76798 2311579; 476.07409 1231259; 476.0986 52166; 476.32409 24749; 476.40837 69115; 476.85283 66836; 477.0625 2674808; 477.46658 2247672; 477.74433 4470583; 477.77278 38884; 478.01575 6597; 478.56763 332880; 478.66253 1642953; 478.73311 8418; 478.88482 1221707; 479.79175 514035; 479.9114 4276705; 479.91929 35265; 479.92478 100853; 479.97669 2588651; 480.44426 9243; 481.05926 11202; 481.09889 2584121; 481.10502 22661; 481.20513 39879; 481.25199 8144975; 481.38673 6152131; 481.4435 22644; 481.49042 1572149; 481.544 7439319; 481.61633 26017; 481.79734 3071670; 481.82346 71057; 481.9021 665939; 482.30617 25504; 482.66729 27284; 482.71892 1797956; 482.88862 54455; 482.94563 8683074; 483.2025 126793; 483.52748 16706; 483.76989 232761; 483.84067 20004; 483.91347 515904; 483.93071 2775626; 484.1727 787839; 484.45212 183850; 484.68749 33974; 484.80797 10669497; 485.47376 36062; 486.17805 177711; 486.34983 3698211; 486.60872 155685; 486.72568 8382; 486.82441 22266991; 486.86781 273571; 486.9423 63954; 487.36557 4976637; 487.40141 50106; 487.44934 28978; 487.75014 6226; 487.96843 1006260; 488.18885 30592; 488.39675 4770855; 488.41656 143578; 488.54045 954396; 488.58566 1665948; 488.69073 61471; 488.96566 56540; 488.98768 27846; 488.99938 980840; 489.38104 1609787; 489.43798 16619; 489.6282 1498490; 489.67117 1117111; 489.69008 14846; 490.15833 78552; 490.19229 933153; 490.35548 15808; 490.36781 58454; 490.45903 17205; 490.64933 3; 490.82867 1070369; 490.84562 3642295; 490.97685 1159505; 491.20675 15227; 492.01914 66420; 492.07637 38345; 492.3064 43428; 492.37351 6234; 492.52595 44264; 492.7074 4222420; 492.90725 3331537; 493.01666 2072; 493.22212 82229; 493.2307 2476061; 493.49552 76800; 493.50799 23911; 493.73092 78771; 493.80458 31723; 493.84666 41359; 494.27391 53512; 494.35441 2527; 494.51372 2965; 494.70273 910468; 494.87957 1700835; 494.92747 6563492; 495.81594 3863; 495.87583 4251031; 495.99207 3481; 496.05231 40789; 496.54952 9185618; 496.55803 47252; 496.84214 56499; 497.07894 173241; 497.30567 616927; 497.36246 400852; 497.58088 29030; 497.61472 13418932; 497.68435 467299; 497.83627 186793; 497.88001 29546; 497.93143 1251763; 497.9966 20626018; 498.06744 578045; 498.17728 1723; 498.22034 154875; 498.22411 6731; 498.30978 25875; 498.39295 11889; 498.45391 6633085; 498.66982 25262; 499.1771 60493; 499.24512 28481; 499.43196 607852; 499.5212 4330 +<1, 4>: 0.28958 1270442; 0.30382 9245238; 0.30392 57015; 0.90018 17069; 1.44726 18798; 1.50139 2819396; 1.90843 15904654; 2.13265 1456665; 2.14797 2622027; 2.30934 1973; 2.53257 1646330; 2.55555 1874664; 2.63299 1711460; 2.69661 925228; 2.81192 2146820; 2.81788 6549; 3.10703 19934; 3.41293 6631; 3.66307 1749598; 3.68979 29918; 3.78327 3242217; 3.92198 23256; 3.97594 25571; 4.10107 57510; 4.26157 58619; 4.59888 39530; 4.6829 28920; 4.73854 11678; 4.80305 431404; 4.84849 9402355; 5.02207 2496682; 5.15837 2179718; 5.35902 19661359; 5.60633 45810; 5.98179 45327; 6.04969 2711646; 6.05614 72691; 6.33409 3098577; 6.4773 1168; 6.52549 30709; 6.78494 956948; 6.8271 7069; 6.92104 1319; 6.97298 6569529; 7.33847 27752693; 7.34064 3205018; 7.41518 11947; 7.59515 5073; 7.64683 61076; 7.74524 225726; 7.79295 35045; 8.23131 29236558; 8.32174 445; 8.39432 12278; 8.42996 1047147; 8.71179 50502; 8.91804 11097; 9.14515 8410; 9.30076 2363068; 9.38824 107681; 9.43575 1331564; 9.66861 166421; 9.78993 1892646; 9.85637 27235; 10.19406 376490; 10.2952 524888; 10.31276 119918; 10.47308 6352; 10.77524 826239; 10.77702 65284; 10.95448 190412; 11.18413 42248; 11.26395 8618; 11.38024 1722622; 11.98945 2306; 12.34536 3806072; 12.54684 71467; 12.75243 4223; 12.77143 196837; 12.79004 3692208; 12.80372 4319564; 13.12841 10150; 13.33477 73894; 13.34366 192405; 13.37657 77526; 13.41948 68250; 13.47132 29844; 13.52911 7747607; 13.66716 3007452; 13.96466 4998; 14.07104 21103296; 14.13137 63859; 14.18458 1052753; 14.22975 63380; 14.32103 27706; 14.5336 2737158; 14.55541 5633; 14.64426 31261; 14.7159 17330; 14.74349 66149; 15.02728 1031042; 15.73577 79890; 16.62695 4241; 16.64536 4936771; 16.9416 2840; 17.48091 27590; 17.61778 1103780; 17.69182 102584; 17.77042 9085; 17.90412 26662; 17.9893 1004; 18.55422 29660; 18.61037 22723; 18.83876 63102; 19.10492 5470500; 19.19893 9430; 19.24836 4387633; 19.3058 5955; 19.61299 17949874; 20.48561 59114; 20.89354 880320; 21.18438 9797330; 21.31555 17516; 21.36816 4198152; 21.44889 26222; 21.54526 19995; 21.59908 6977; 21.60979 6316115; 21.6472 8710; 21.7265 711334; 21.79242 21144; 22.26746 1410922; 22.40782 1735274; 22.40871 4052298; 22.55891 466860; 22.81684 57889; 22.83844 13855; 23.07978 172727; 23.18739 16362; 23.38497 3289391; 23.49951 40234; 23.54614 60815; 23.8358 19672; 23.99817 8128; 24.1026 64503; 24.34705 5567; 24.61453 4259; 24.84135 1677397; 24.84852 62505; 24.98643 4704645; 25.33354 34450; 25.49457 9252627; 25.56784 68263; 25.6627 72852; 25.84834 5048; 25.96711 5938; 25.98954 43814; 26.16505 15941; 26.20101 27201; 26.2023 10642; 26.24693 74418; 26.25188 3827379; 26.58042 606; 26.63132 2866427; 26.73432 3558440; 26.8166 77946; 27.0207 71580; 27.12609 40491; 27.23639 34891; 27.39996 1122657; 27.53197 3962719; 27.60598 1201540; 27.63013 1691925; 27.67707 44014; 28.06883 58343; 28.07115 676446; 28.21639 28812; 28.6319 20027; 28.87554 15944; 29.57674 3439280; 30.35945 22546; 30.82276 39716; 31.11424 569784; 31.11938 9480; 31.3162 18371; 31.65491 30442; 31.76995 6368; 32.04078 4722; 32.15333 6443866; 32.25572 1581900; 32.3174 23537598; 32.6655 478798; 32.73003 32651; 33.03249 1100203; 33.05355 276091; 33.10857 28079; 33.91744 8010653; 34.04374 6712823; 34.06398 8361; 34.07118 60919; 34.10442 20491; 34.16389 29230; 34.25458 16497187; 34.38196 56889; 34.62881 5108998; 35.10928 49571; 35.1222 1608338; 35.32808 7983662; 35.35407 47103; 35.56359 71730; 35.77227 4360; 35.78623 12834; 35.98853 72290; 36.65814 26387; 37.67374 1673851; 37.84667 8669; 37.96514 5275; 38.05656 2141184; 38.06439 4132; 38.0875 3189966; 38.27313 20960; 38.45946 1489215; 38.47676 1020; 38.4798 58766; 38.66164 5148; 39.62958 192795; 39.7024 8882; 39.90432 1448364; 40.00499 32459; 40.09059 3674; 40.25898 3040839; 40.35233 3352242; 40.35733 1797742; 40.39681 4800908; 40.44545 4197162; 40.64563 2490; 40.68342 64856; 40.84373 5995; 40.90626 2495; 41.52849 279904; 41.76185 173499; 42.07439 602540; 42.4354 3645; 42.46935 25276; 43.03957 41436; 43.12393 24400; 43.19363 1593555; 43.39934 53785; 43.64584 46815; 43.67982 1521368; 43.7986 3638170; 44.01601 5966425; 44.29299 1968398; 44.72283 1287778; 44.96039 2956360; 45.37603 21779; 45.39899 503888; 45.46191 1064283; 45.49592 605718; 45.5006 946483; 45.58914 444912; 46.13761 29698; 46.17244 76908; 46.1732 72396; 46.18585 187900; 46.19251 1461; 46.2522 4985105; 46.37445 22409; 46.65708 9754137; 47.0997 10838; 47.13809 33; 47.37013 22997; 47.41349 65446; 47.51428 63565; 47.59858 27845; 47.61274 2997724; 47.76525 1837945; 48.09667 1619434; 48.19542 789993; 48.25778 9469; 48.41483 16444; 48.58833 863815; 49.06977 31322; 49.11758 963429; 49.23129 1762143; 49.30788 9349; 49.33362 2591735; 49.39381 12290; 49.64933 466830; 49.84995 1581973; 49.85467 59396; 49.96114 27956; 50.06151 18946115; 50.27508 1490462; 50.28015 37542; 50.33368 5245471; 50.59869 5558; 50.68183 50324; 50.91032 2364044; 51.1169 137728; 51.16703 30726; 51.35074 841194; 51.39183 18; 51.56105 7716; 51.70992 6466850; 51.73339 134726; 51.80885 49939; 51.83324 153649; 51.95482 1487778; 52.02491 20050; 52.11135 2951562; 52.37802 77837; 52.47108 23304; 52.83334 2544000; 52.94158 190923; 53.38602 5799661; 53.54172 70156; 53.84072 2773224; 53.853 634125; 53.85718 1201; 53.93424 4760; 54.0277 3129; 54.07653 3037; 54.15122 23635; 54.27925 59942; 54.32222 5399; 54.39416 6699; 54.63045 994; 54.80715 161646; 55.08513 8007313; 55.11515 20673; 55.32979 4095226; 55.47858 9525; 55.65246 3885; 55.79764 59842; 55.90384 4828; 55.9214 54481; 56.06499 8871022; 56.30647 4871112; 56.62385 7014700; 56.98022 967229; 57.09697 2449726; 57.14726 1437; 57.51479 43752; 57.55638 35886; 57.74006 440264; 57.78232 60594; 57.80184 2319743; 58.02158 64740; 58.19849 921410; 58.30216 7096359; 58.36139 72871; 58.55945 61961; 58.90887 56078; 58.91307 1483; 58.94344 9141; 58.96932 4345419; 59.10054 73884; 59.46173 19830; 59.50959 3414644; 59.60011 3795774; 59.64525 106729; 59.68045 44948; 60.06306 1862661; 60.18791 2299425; 60.29934 8176; 60.33804 1120712; 60.61373 334; 60.75757 1510621; 60.90996 7588; 60.97615 1760597; 61.33951 8943; 61.47551 12436; 61.6805 3713; 61.68584 33243; 61.88425 8946427; 62.26194 23299; 62.30283 102960; 62.46978 163347; 62.59597 2201155; 62.68849 55163; 62.80697 52998; 62.92576 138368; 64.17348 9732; 64.37078 79153; 64.66885 448578; 64.8449 9110; 64.90435 14755; 65.193 44; 65.74919 44595; 65.93538 29843; 66.20959 26239; 66.23296 2739760; 66.50836 3050306; 66.68166 71688; 66.79459 1063172; 66.82383 6034292; 66.90789 46773; 67.59478 187201; 67.90468 31650; 68.03046 121105; 68.62938 9729; 68.66292 1615597; 68.68127 69318; 68.97404 120897; 69.68547 85935; 70.02566 510416; 70.07697 48543; 70.16606 1787992; 70.46635 517101; 70.6873 4499179; 71.11316 147647; 71.15355 76813; 71.74904 16627; 72.03262 40974; 72.17758 77888; 72.25719 3261126; 72.41019 8036844; 72.60846 641645; 72.77847 489420; 73.01362 10508; 73.1794 31652; 73.21381 1475538; 73.34528 75359; 73.56519 1946646; 73.80456 101305; 73.81618 1689652; 73.90275 1732; 74.04606 29815; 74.27504 3903; 74.49483 249509; 74.61837 30883; 74.71523 34418; 74.7375 110; 75.03391 21901; 75.20321 40574; 75.37931 40922; 75.47537 4234; 76.09068 1482202; 76.23816 39234; 76.411 543942; 76.49304 51834; 76.49956 676; 76.54082 78429; 76.58532 23626; 76.86397 22440; 77.07171 51829; 77.17981 140449; 77.42639 28188; 77.50228 793243; 77.82655 35272; 78.03645 3656143; 78.27824 1673828; 78.64452 5295405; 79.3637 57368; 79.39321 44796; 79.86674 3051276; 80.09705 14895263; 80.11721 5600259; 80.19091 2153; 80.20771 54313; 80.35755 1670140; 80.36255 43067; 81.012 10951; 81.24539 8336; 81.25665 6163450; 81.29236 413604; 81.39361 1530831; 81.75937 28847; 81.92392 8310; 82.06067 35659; 82.07431 3074; 82.17107 4454025; 82.41639 17950; 82.9251 186164; 83.1428 978743; 83.5283 22005002; 83.88202 3938; 83.97893 12834; 84.15091 6957; 84.60731 4715; 84.66088 6697083; 84.72739 174155; 84.85325 21040; 84.91014 7281857; 85.0793 144643; 85.09482 1206542; 86.06463 1370042; 86.18838 43600; 86.3504 28928; 86.48518 6415; 86.59964 28990; 86.70542 28293; 86.8325 32947; 86.98361 9029; 87.24991 65050; 87.45489 495899; 87.74885 1518710; 88.30443 4814; 88.31755 119561; 88.45839 1903771; 88.59162 1045854; 88.68555 48464; 88.72298 2586176; 88.96012 21983; 89.14332 3999; 89.16059 28458; 89.44044 40743; 89.54039 26770; 89.54583 131044; 89.81191 27727; 89.89685 72273; 89.91133 3207715; 90.13049 9228586; 90.25286 12233; 90.77129 15111; 90.83422 30903; 90.90329 4843303; 91.12384 134627; 92.18477 66488; 92.36279 523243; 92.61141 8996285; 92.74781 156407; 92.79468 3893160; 92.82982 282; 93.04904 65667; 93.22611 1190511; 93.23528 29574300; 93.66004 76342; 93.6899 329009; 93.69857 27863; 93.70295 33466; 93.92305 7995486; 93.98822 3128192; 93.99806 10197; 94.09641 3839033; 94.12548 1169577; 94.34318 66264; 94.49902 41306; 95.02857 193003; 95.10516 590328; 95.29123 4738587; 95.61826 1744070; 95.7332 50779; 95.78184 3118; 95.7936 69307; 95.91078 22603; 95.9658 51564; 96.39076 45967; 96.58167 38512; 96.59865 2604; 96.63312 108027; 97.06797 192196; 97.83432 1160687; 98.17241 682993; 98.35198 60120; 98.42901 944267; 98.53493 2205842; 98.55209 33492; 98.56079 9207290; 98.62624 32938; 98.94244 22813; 99.2091 26428; 99.2977 1595482; 99.58561 536424; 100.05065 9512; 100.12973 6031; 100.31809 552357; 100.49205 8485; 100.56923 885343; 100.92558 5705; 101.03296 478636; 101.22082 3609268; 101.50262 2566087; 101.56787 5748138; 101.67192 5720333; 101.86077 3459; 101.90012 79747; 102.0078 9110133; 102.22097 9346490; 102.40232 1410024; 102.62335 3553; 102.76541 5223608; 102.82403 22056388; 102.86834 24747; 103.28336 4219; 103.40263 11653; 103.48834 760; 103.7721 20274; 104.06348 48861; 104.4028 16337013; 104.47079 7264720; 104.62426 6194844; 104.6271 41912; 104.92228 46087; 104.93041 29474414; 105.1527 17547; 105.29633 3137943; 105.3096 7314; 105.39701 26996; 105.56749 6491; 105.68212 160; 105.71654 25744; 105.83635 59157; 106.80373 7960117; 106.95266 1415772; 108.03052 165265; 108.08691 6779; 108.25736 53936; 108.26915 37411; 108.75078 8655; 108.9286 14963; 108.99843 11294990; 109.04788 2813; 109.42659 5272; 109.7029 303545; 109.71301 5828351; 109.7267 9739957; 109.74129 26756; 109.90301 3972; 110.01965 26638; 110.24193 40757; 110.25448 4553443; 110.31099 36308; 110.31745 4511; 110.82861 187015; 111.41764 1094199; 111.90521 1153; 112.4166 8444; 112.43821 26709203; 112.56952 4143; 112.68628 320021; 112.80805 112435; 112.8646 16588837; 112.97375 25380; 113.00826 1132535; 113.08472 28181; 113.16062 18011; 113.53445 1187; 113.87689 1300042; 113.91131 2349; 114.07597 6065489; 114.16286 1375148; 114.44624 8692998; 114.55776 16432; 114.59332 1703977; 114.67015 65982; 114.69345 1112996; 114.81775 79848; 115.03127 5855; 115.08987 68009; 115.1706 474692; 115.19599 17670; 115.23677 42731; 115.47993 45496; 115.50968 76917; 115.55729 23298; 115.82268 43516; 115.94718 63377; 116.05836 55971; 116.47909 72039; 116.80601 42912; 117.30115 1706577; 117.31569 59714; 117.3986 2862148; 117.53462 65353; 118.01335 2884; 118.14601 28295293; 118.17811 9777049; 118.53498 7925213; 118.5599 111408; 118.56501 16437; 118.68714 143034; 118.6962 41269; 118.71138 32694; 118.9835 4630876; 119.17074 90904; 119.41872 37138; 119.42496 1399; 119.44812 28475; 119.59909 7802652; 119.78065 1652614; 119.79962 2544; 120.10118 3372564; 120.3859 1677868; 120.40648 53877; 120.4187 41616; 120.91431 1947859; 120.95955 13873730; 121.24895 29501; 121.299 11663; 121.33306 811512; 121.35604 74070; 121.51896 2301555; 121.66555 2857; 121.69164 423823; 121.87692 32010; 122.26172 1953; 122.84436 6906364; 123.2067 6295; 123.21331 36280; 123.34008 3668949; 123.44772 40285; 123.68279 10912975; 123.80345 43900; 124.01852 1480041; 124.02076 647358; 124.02332 14949; 124.26955 6492203; 124.40554 3476; 124.6513 2531052; 124.95242 17633; 124.99714 9139; 125.02391 8517161; 125.06457 217012; 125.07072 23488; 125.12615 414562; 125.20414 753897; 125.28759 48719; 125.61192 13507; 125.82346 820298; 125.83338 12029; 126.10351 7954759; 126.26576 18565; 126.29662 4458751; 126.55754 27542; 126.57441 8975; 126.70279 7510; 126.76643 22596; 127.18585 4273166; 127.37021 746715; 127.49468 72174; 127.98063 40165; 128.08114 429; 128.11126 56943; 128.18564 40269; 128.32097 5027; 128.50472 7075310; 128.52491 17855; 128.66867 2464452; 128.90494 39414; 129.41152 1884604; 129.44072 247074; 129.5024 46102; 129.72789 4000; 129.82477 23702; 129.86967 2684; 130.04484 24146; 130.06669 8504000; 130.14463 20050197; 130.1466 29185; 130.16629 7730627; 130.41998 3181594; 130.4693 1926337; 130.52922 9818463; 130.71985 23099; 130.77537 382432; 130.80389 4264402; 130.95686 2814; 131.10049 3091; 131.19231 3849798; 131.29119 47617; 131.47022 154119; 131.92262 158464; 132.03418 4686860; 132.19612 58753; 132.3986 9546695; 132.5791 33319; 132.61384 5311; 132.85825 6736984; 132.95553 359149; 133.12403 3461689; 133.17357 1750960; 133.36058 116457; 133.41379 412768; 133.68182 596964; 133.80188 4848; 133.84236 1695242; 133.85462 15924; 133.92809 8992; 134.39272 15309; 134.72618 8275; 134.83712 666902; 134.9954 9551; 135.14149 1483719; 135.17595 3437438; 135.30796 987880; 135.65212 1066728; 135.69264 967518; 136.10798 8660702; 136.11369 74158; 136.13289 1830657; 136.35531 5840; 136.57214 17947; 136.57875 6852350; 136.79861 4855438; 136.81513 553409; 136.81732 4009337; 137.04814 25491; 137.29698 9205737; 137.31469 41328; 137.33796 6988; 137.49634 57970; 137.69307 26318; 137.76531 442630; 137.97133 25467; 138.28751 78605; 138.43677 14749; 138.52761 8494355; 138.72733 75006; 138.82797 26410; 139.01951 883677; 139.03308 160578; 139.19015 3477765; 139.88626 2578052; 140.30659 57115; 140.40933 153886; 140.47959 78816; 140.70428 961250; 140.91589 860710; 141.42563 2838352; 141.9612 525494; 142.16174 6326; 142.17887 270637; 142.21167 46649; 142.4094 27201; 143.04787 69915; 143.26469 55577; 143.43026 190575; 143.6146 49329; 143.63664 20174; 143.71417 9386704; 143.95509 7985798; 143.98795 75073; 144.03299 29605; 144.04994 532563; 144.37458 52031; 144.50268 64513; 144.70368 60640; 144.79188 5701614; 144.86558 1360; 145.03606 1345654; 145.08164 1206278; 145.10259 58583; 145.19145 126948; 145.33717 166206; 145.3417 65411; 145.36797 23147; 145.57193 1172207; 145.57853 38819; 145.85298 58056; 145.96226 3238; 146.17859 16698; 146.20624 28501; 146.36082 135601; 146.36249 2112; 146.4248 342579; 146.69822 1639223; 146.80752 28923; 146.84717 1153160; 147.26156 11915; 147.5471 2397729; 147.55742 12963; 147.61462 150363; 147.68873 1312384; 147.73451 2093; 147.81024 1373921; 147.94025 11078; 148.01174 100592; 148.47841 77022; 148.51082 8565794; 148.67983 31327; 148.80249 651407; 148.81417 989258; 148.82219 118; 149.00374 160; 149.29595 928209; 149.64594 956330; 149.85161 1792020; 149.86665 27198; 149.93765 21413; 150.0434 185577; 150.27853 22571; 150.59292 48299; 150.59935 4549; 150.72124 1013583; 150.73949 37721; 150.84634 6155730; 150.89478 16734354; 150.92328 1111266; 151.01363 1717; 151.26728 1249837; 151.34545 7826499; 151.72488 1534437; 151.77006 33679; 151.80844 65971; 152.12745 7321; 152.19131 2445156; 152.50224 5006; 152.63756 7269649; 152.72822 8191; 152.95463 36094; 153.11666 74760; 153.56807 51454; 153.74721 39865; 154.00039 8804251; 154.18978 29004; 154.41609 78688; 154.52684 25129; 154.73267 25231; 155.05418 79206; 155.09783 33258; 155.25905 81944; 155.42768 13574; 155.45686 27011; 155.70194 7444; 155.99111 54523; 156.72324 6071; 156.92097 58350; 156.97996 47527; 156.98194 25675732; 157.53261 2165733; 158.27881 4739241; 158.42001 2851085; 158.66328 857; 158.70901 56114; 159.02232 377277; 159.09827 4087385; 159.17558 33282; 159.4003 4727; 159.62808 23675107; 159.65029 342386; 159.6981 23435; 159.83933 25941; 159.85296 761; 160.20078 56174; 160.46966 55921; 160.49224 19060594; 160.88082 35435; 161.26661 28678; 161.96642 2814997; 163.03065 44020; 163.16246 17063; 163.26319 54684; 163.36851 66825; 163.4963 44300; 163.61438 686576; 163.77441 7647; 164.5565 2066; 164.58892 60642; 164.8051 59429; 164.98245 1212877; 165.11166 51853; 165.21907 45315; 165.31536 1129016; 165.4404 2462563; 165.63528 72562; 165.65244 33402; 166.06772 65694; 166.12898 9337; 166.30061 791965; 166.33963 4143283; 166.35762 2309840; 166.71058 27603; 166.72883 1858177; 166.73565 3099; 166.81752 101418; 167.09893 5266119; 167.55164 29876; 167.74099 1672027; 167.75351 178652; 167.83073 879878; 167.85856 61542; 168.48744 46219; 168.76744 19503868; 168.77823 840338; 168.7819 7019438; 168.82086 2398; 169.00391 4284933; 169.09212 25114; 169.14281 26418; 169.24368 1220440; 169.44158 25519; 169.50213 117576; 169.74031 55495; 170.49824 65164; 170.61036 216816; 170.78181 77743; 171.33963 23302; 171.62366 3058; 171.91953 137353; 172.18946 47563; 172.26386 9554168; 172.31327 2952610; 172.54388 212516; 172.5678 1943468; 173.02711 8254518; 173.04883 66171; 173.19156 20422; 173.23318 418; 173.26286 48690; 173.53266 20448; 173.56495 362093; 173.66525 63638; 173.91573 3249308; 173.94645 1518343; 174.00033 1086363; 174.00638 118088; 174.18391 33559; 174.21062 77959; 174.44772 180367; 174.74015 99663; 174.74867 380099; 175.02173 1492294; 175.02459 99384; 175.15937 4468123; 175.17841 4784; 175.19353 3043589; 175.252 70286; 175.55406 14395; 176.19048 1459760; 176.37555 57494; 176.98937 5139; 177.16784 1120; 177.5776 4222951; 177.72569 47995; 178.16038 13801; 178.18532 922185; 178.35443 2294226; 178.39086 36557; 178.83523 9775283; 178.83528 26805340; 179.02343 68325; 179.08371 4032187; 179.39252 1165; 179.50228 231327; 179.70523 38672; 179.87907 22482; 180.04055 131508; 180.20967 56123; 180.28858 29341465; 180.29275 4907283; 180.47105 20404; 180.50912 3785; 180.5716 9689219; 180.96778 1187399; 181.0085 15633107; 181.83469 69010; 182.10048 127153; 182.30653 14900; 182.5939 1726497; 183.01519 549452; 183.02528 61227; 183.02976 48177; 183.10649 14564; 183.11791 1143362; 183.28497 9372; 183.32194 57168; 184.11128 4444; 184.17025 12373; 184.23341 54001; 184.37721 22939454; 184.62344 133022; 184.77575 35182; 184.95604 4970348; 185.26356 7090; 185.27311 675560; 185.56444 26059; 185.64745 61103; 185.6748 602351; 186.1476 32443; 186.39819 92818; 186.40427 15240514; 186.42948 48698; 186.81365 25172; 186.86278 3696304; 187.23015 49032; 187.28985 2935; 187.39167 12854; 187.55207 49266; 187.74031 30528; 187.84983 52685; 187.9129 801838; 188.04911 175061; 188.10135 1565598; 188.16954 962792; 188.2283 36579; 188.45388 23370; 188.79443 1714; 188.83375 285809; 189.03898 2744393; 189.15972 24675; 189.1866 57745; 189.33307 26508; 189.58898 44238; 189.74421 4469667; 190.11453 9458045; 190.13974 17769; 190.92593 3416103; 190.92615 6897080; 190.98563 723274; 191.04712 4521702; 191.10167 23695; 191.16458 917873; 191.40577 60891; 191.48871 75661; 191.69633 112894; 191.73681 550472; 191.97534 26557; 191.9902 249; 192.76904 3370; 192.78979 2385; 192.98475 163302; 193.24551 172681; 193.26341 129440; 193.58621 15190; 193.58837 29937; 193.83746 11692; 193.92095 1514; 193.98517 1853275; 194.57393 1601875; 194.80912 160177; 195.04594 136939; 195.22624 17954; 195.87473 13890; 195.88382 20307; 196.04564 33640; 196.13811 54633; 196.24647 28603; 196.52514 177447; 197.02199 4156301; 197.05043 44159; 197.3683 9561742; 197.42924 8221325; 197.82917 43047; 198.19196 66875; 198.49401 6945365; 198.57829 8698; 198.73883 673784; 198.83805 4347; 198.91605 67651; 199.49818 28644; 199.51948 25327; 199.69196 10267041; 199.74457 25279; 199.80655 22559; 200.00095 30079; 200.21088 9596; 200.70207 5025; 200.73619 1901613; 201.01089 4266997; 201.31129 139310; 201.55373 36734; 201.71871 292019; 201.8309 5053842; 201.98996 72878; 202.18228 180177; 202.55684 5787727; 202.55803 4875419; 202.6323 33340; 202.79747 1676758; 202.92221 29407201; 203.05805 176149; 203.15417 3824; 203.35506 142540; 203.41653 2325831; 203.46281 922170; 203.53886 940084; 203.63989 8500; 203.70411 25800810; 203.71902 36697; 203.88195 483874; 204.01466 1498731; 204.1231 56402; 204.17401 71842; 204.35347 3692557; 204.52807 847599; 204.6393 131703; 205.04274 74225; 205.16828 86966; 205.18206 57630; 205.37053 514916; 205.58373 24320; 205.84187 48052; 206.17127 7902384; 206.18501 113371; 206.20077 423057; 206.31385 10923015; 206.97419 49940; 207.01913 3750; 207.12478 56205; 207.30575 4139; 207.39949 22454; 207.51796 4615914; 207.71685 9097025; 207.73578 1197; 207.77259 78114; 207.96139 1711585; 207.96454 337184; 208.48202 5576068; 208.65882 26877; 208.75896 526981; 208.98589 1503664; 209.19004 30775; 209.22224 3401694; 209.48257 161658; 209.76145 6719; 209.7663 28211; 209.83547 691; 210.46292 612883; 210.54697 17334; 210.56053 6664; 210.81484 71499; 211.29815 52330; 211.44805 525811; 211.5042 14766666; 211.64401 57256; 212.1072 9042085; 212.19908 147754; 212.33763 13771; 212.4732 43800; 212.51388 1834624; 212.57714 189274; 212.67791 41634; 213.0023 6391790; 213.23909 61860; 213.39693 501555; 213.47764 1823689; 214.13577 36726; 214.17065 30327; 214.26397 2068370; 214.29843 17264; 214.71175 139307; 214.72419 8421; 214.79801 11312; 214.94456 27023; 215.04047 1442465; 215.06952 948255; 215.0878 4844823; 215.09489 2920225; 215.38582 28368161; 215.41666 202; 215.48135 3176; 215.77907 359569; 215.85627 2287713; 215.85839 3718662; 215.91265 37472; 215.92151 361701; 216.04208 23214; 216.14575 73418; 216.25338 55922; 216.35771 1520499; 216.64804 127899; 216.78417 693848; 216.8277 2644; 216.84622 28985; 217.31725 1556179; 217.35938 7232; 217.44639 3590297; 217.86482 1701781; 218.34183 1665837; 218.9275 9987; 218.94144 6939; 219.05567 129701; 219.27103 8240677; 219.48419 1659297; 219.65333 25087; 219.89827 2934794; 220.18575 6154184; 220.29151 72007; 220.32013 4039; 220.33236 59030; 220.44253 8522117; 220.45943 26462; 220.79842 7632; 220.80625 32474; 220.94276 28161; 221.04927 24014; 221.25648 48777; 221.37539 77267; 221.3883 9169737; 221.41796 9417270; 221.48746 18577007; 221.66314 5744091; 221.73203 26240; 221.8187 179891; 221.86288 4836537; 222.15776 77419; 222.63124 19059; 222.64735 909751; 222.65164 2408797; 222.65168 46987; 222.91663 1893506; 223.20564 5938; 223.20854 121718; 223.27525 83; 223.58983 1556822; 223.73768 533437; 223.82809 13080203; 224.08955 1543; 224.17471 1787; 224.40923 228300; 224.60942 336; 224.7233 171394; 225.30947 53834; 225.41828 181949; 225.53231 56753; 225.75754 574777; 225.87253 29657; 226.58239 28299; 226.91999 4289291; 227.05238 7174; 227.54591 24607223; 227.93689 106811; 228.01058 111752; 228.35174 5976; 228.36908 3308; 228.39381 1238996; 228.41863 10; 228.59942 173914; 228.64798 12667604; 228.69049 20525; 228.97266 1477254; 229.11015 46144; 229.18839 65817; 229.19466 144235; 229.19734 134675; 229.28971 3356758; 229.31935 29408; 229.51904 6070995; 229.53604 31366; 230.03907 59495; 230.26557 29155; 230.31645 71442; 230.41159 76279; 230.43765 68845; 230.85354 22079392; 230.87801 3360886; 230.93958 25785; 231.01061 22163012; 231.01713 13201; 231.03662 1082161; 231.06222 769975; 231.08496 8777; 231.13871 2756124; 231.15391 26489; 231.16349 3334804; 231.52005 300264; 231.59326 40082; 231.59983 57539; 231.64903 387698; 231.98986 67395; 232.4053 923162; 232.68431 17856; 232.70489 62603; 232.77257 32739; 232.92072 3169984; 233.08336 24513; 233.28578 398241; 233.48602 1609916; 233.53978 66064; 233.76561 154208; 234.05867 937935; 234.1181 73913; 234.28764 11475; 234.30263 44433; 234.31541 21280; 234.37364 2134; 234.38852 3083; 234.40726 42375; 234.70509 40126; 234.90436 28406; 234.90973 7907; 235.18714 106240; 235.46092 18900; 235.82645 23425; 235.91338 20237; 235.93069 33894; 236.65687 4001705; 236.97398 1273086; 237.089 2770671; 237.10434 93470; 237.58845 130514; 237.8641 1188285; 238.19045 1677196; 238.20164 4388; 238.33184 53066; 238.48399 50910; 238.70979 46619; 239.1533 96502; 239.40553 46591; 239.40688 169377; 239.66804 33989; 239.86697 92368; 239.94466 5265307; 240.07014 190312; 240.11777 166726; 240.13878 7218525; 240.18945 77394; 240.34174 173773; 240.38506 551701; 240.81659 131770; 241.19291 72346; 241.43236 1262886; 241.45886 71365; 241.63294 49492; 241.86581 63412; 241.96179 53909; 242.2796 6452; 242.30321 2543411; 242.3763 945706; 242.44716 26366; 242.55476 40920; 242.77133 28605307; 242.82481 85625; 242.85908 7448; 243.2427 1508546; 243.45602 60090; 243.92295 2995419; 244.42505 51425; 244.44717 803010; 244.45195 49955; 244.49551 4055473; 244.51793 47579; 244.68267 7369410; 245.67548 9196913; 246.12369 1773; 246.15572 58403; 246.30336 166590; 246.30379 2516; 246.54861 6455559; 246.87304 56050; 247.04856 9507078; 247.37696 19079806; 247.54134 2771479; 247.57934 29618; 248.06939 3863523; 248.28744 7406; 249.04819 584; 249.3197 2353; 249.33949 7001405; 249.93386 4619; 249.99778 73301; 250.10264 43965; 250.19245 8327711; 250.75734 37347; 250.9486 28806; 251.14324 842383; 251.42647 7266; 251.4631 51962; 251.97925 26343; 252.0086 1348335; 252.06359 21896; 252.43464 13330103; 252.48149 6061548; 252.5532 378592; 252.63601 8240937; 253.0399 32464; 253.05757 22109; 253.24059 2645; 253.42079 8623; 253.53393 62972; 253.65646 8143; 253.78342 563437; 253.95643 14261; 254.22398 1402673; 254.39565 1475297; 254.49464 1706081; 254.53985 136294; 254.74227 174338; 254.80285 60626; 254.83691 60128; 254.8717 66470; 254.87618 5197; 255.16282 36315; 255.40511 20358; 255.45741 928601; 255.79942 12931; 255.82939 150637; 255.93234 44499; 256.41036 6863904; 256.45217 20161; 256.49102 717781; 256.60763 10913054; 256.60904 5500; 256.66243 60723; 256.76299 84708; 257.33017 7393771; 257.43264 5864; 257.80303 50117; 257.80958 1867212; 258.0276 40126; 258.3493 29076; 258.87406 59693; 259.1448 14129; 259.465 4680938; 259.90767 1065692; 259.94919 4607336; 260.05083 3334; 260.16609 8954; 260.27005 8133589; 260.87752 1716402; 261.1419 8153; 261.21077 49226; 261.31591 16197; 261.78385 4403; 261.90897 1548001; 261.97138 8456; 262.11853 139768; 262.31899 48463; 262.50336 25962; 262.65583 266350; 262.69998 6723; 263.78998 34692; 263.79406 3029899; 263.82774 7820163; 264.02802 1069338; 264.38886 2973369; 264.73613 5080; 264.77757 66624; 265.07953 21205; 265.14255 3213604; 265.24661 61976; 265.26409 22605; 265.74072 9173182; 265.9643 64242; 266.03796 1690409; 266.19034 9213; 266.63549 9569065; 266.63619 27777; 266.7238 64598; 266.77561 58124; 267.48509 1365; 267.77412 71080; 268.33041 28375; 268.37947 7223233; 268.55299 64747; 268.6235 29113; 268.89034 7923; 268.93273 942349; 269.11683 11352; 269.5824 33688; 269.64075 25559; 270.06928 94014; 270.09688 24066; 270.16596 760023; 270.51655 40825; 270.63391 3644784; 270.84732 235; 270.84968 43421; 270.98939 1789775; 271.4228 29426; 271.47284 133003; 271.73347 28700159; 271.73703 51540; 271.77015 47911; 272.46648 3347; 272.627 243463; 272.91022 5565; 272.96306 1284325; 272.97963 67593; 273.08392 23850; 273.11123 14716; 273.22317 3002183; 273.24998 845777; 273.28561 729933; 273.57243 5950569; 273.76077 1863141; 273.79442 28072; 273.90913 190129; 273.94573 81165; 274.27316 2501; 275.61206 66527; 275.93756 68872; 276.01734 2007793; 276.14542 23565; 276.14803 34781; 276.15306 62176; 276.85752 4370; 277.223 25135; 277.41753 3334; 277.55534 162375; 277.58063 60404; 278.09314 48228; 278.26103 1583; 278.47034 6593324; 278.63701 4796545; 278.73464 58774; 279.08135 21901; 279.56081 13140; 279.56862 1956486; 279.61365 1098717; 279.99327 22927863; 279.99383 64367; 280.03454 56627; 280.16754 32096; 280.17176 23091; 280.34841 77645; 280.37521 9687585; 281.38239 70; 281.46309 64787; 281.53265 135027; 281.65768 14678; 281.98572 45548; 282.09851 3111263; 282.41109 1098293; 282.48978 982569; 282.52258 4812516; 282.53532 1696011; 282.64379 79919; 282.9958 1988; 283.31685 7717240; 283.53715 43847; 283.63384 4758419; 283.76089 72616; 284.04681 38046; 284.40674 3049684; 284.62908 9439152; 284.79596 8048700; 285.16691 97906; 285.31703 745209; 285.8277 9795; 285.98428 1664095; 286.0536 9673; 286.1071 4124320; 286.14562 25755; 286.38499 432240; 286.45254 97234; 286.66645 72488; 286.7232 78329; 287.29732 1606437; 287.42374 4591; 287.43538 57042; 287.90306 20497780; 287.99039 7115259; 288.38881 587532; 288.47709 1430332; 288.90666 692255; 289.05562 31685; 289.44994 647488; 289.62597 5639531; 289.81762 68904; 290.04884 73060; 290.05092 994963; 290.29415 29380; 290.31412 4050954; 290.35654 6238987; 290.48006 4232; 290.51171 1560548; 290.55262 647544; 290.74622 18573553; 291.0216 36194; 292.37679 4654; 292.60133 2072; 292.76927 20096; 293.17367 10274926; 293.18813 243; 293.19555 60923; 293.24867 27408; 293.37601 2005106; 293.78286 47155; 294.15684 42558; 294.33595 1411139; 294.39853 7478; 294.72623 2422002; 295.01348 84392; 295.36614 261803; 295.48324 2127; 295.66 15905134; 295.6668 1215; 295.70759 227810; 295.78633 61036; 296.10907 19540061; 296.49174 28948659; 296.51022 69504; 296.52135 1069; 296.60537 5558; 296.66387 59894; 296.91713 123757; 297.15228 918276; 297.23905 5180783; 297.44192 44082; 297.45908 35433; 297.59504 38815; 297.66278 532608; 297.87435 490; 298.17599 69255; 298.17725 25914; 298.42691 2350169; 298.56355 81464; 298.66608 15482; 298.8074 668258; 298.89184 2600150; 299.05319 1949920; 299.29675 32559; 299.32487 28620; 299.38232 33245; 299.77865 45756; 300.05207 2031; 300.40936 23960; 300.4985 5567458; 300.73415 94577; 300.76717 8982; 300.77199 62938; 300.85525 67506; 301.29438 7984730; 301.35257 2023250; 301.48811 71902; 301.78611 1023088; 301.78817 46652; 301.79402 50476; 301.84168 837618; 302.02398 767; 302.23679 4682; 302.27913 4921042; 302.31411 651805; 302.54962 187868; 302.58304 1661151; 302.59239 5524; 302.80524 3635322; 303.19142 72869; 303.19938 9947305; 303.25525 24983; 303.41047 700429; 303.92989 79921; 304.01983 50445; 304.7029 52909; 304.92717 1819546; 305.19515 167611; 305.2126 5328106; 305.65208 39039; 305.66669 102050; 305.87178 180510; 306.01886 5759550; 306.43842 2079930; 306.53432 22393; 306.71237 53841; 307.30978 28408; 307.66877 22928; 307.80053 31930; 307.93374 2501; 308.21217 40575; 308.39349 24614; 308.42921 77639; 308.51649 5561742; 308.51971 48308; 308.58988 71038; 308.66087 1731; 308.7574 22619; 309.08269 1947; 309.40548 4872909; 309.59576 36190; 309.78027 1485980; 309.81367 24315; 309.84254 1942; 310.01711 6192; 310.09996 1033829; 310.25935 179968; 310.64822 64511; 310.72289 26629; 311.54818 468489; 311.55044 68268; 311.56396 211082; 311.62106 48136; 311.86398 21110; 312.06882 8982024; 312.35 23590872; 312.60624 1460319; 312.65993 450371; 312.68674 6274506; 312.8428 8257721; 312.85623 44083; 313.33525 121177; 313.37193 1199993; 313.50106 7384588; 313.808 2043476; 313.97692 72200; 314.06642 21214; 314.43338 28429; 314.72333 573003; 314.97603 90387; 315.20248 864342; 315.28571 9274; 315.73358 7415; 315.75955 9438291; 315.98429 284625; 316.24155 6534; 316.2801 168236; 316.35726 25632; 316.43711 1879958; 316.72527 45403; 316.74942 9083829; 316.89197 60179; 316.93516 3489948; 317.28317 43034; 317.30151 50696; 317.33235 128649; 317.51801 1143117; 317.65589 26873; 317.68217 954; 318.05365 101507; 318.05618 4855; 318.22866 50639; 318.60676 34605; 319.06701 68417; 319.54079 4567; 319.8792 1794924; 319.95905 1442; 320.22251 25107; 320.58444 3468485; 320.83389 2630547; 321.08819 3670685; 321.40595 13564; 321.40884 29345923; 321.41851 31183; 321.42388 1264; 321.47005 53427; 321.54304 1695485; 321.64823 3992; 321.85641 183893; 322.41432 2340044; 322.42709 2355047; 322.42818 1442; 322.81131 4904859; 323.10021 710381; 323.22606 136978; 323.22624 2875046; 323.29341 6879386; 323.63468 782778; 323.78533 171754; 323.9696 4565822; 324.20437 5784724; 324.45099 4305731; 325.19068 702173; 325.2341 5713; 325.4154 46630; 325.6497 31218; 325.74002 1566191; 325.79566 525675; 325.96287 121605; 326.16303 30801; 326.30422 34950; 326.6826 23679400; 327.06912 1780858; 327.17609 9177; 327.5428 3035678; 327.59417 3142113; 328.39468 19405; 328.42347 72288; 328.48914 23382; 328.6041 31708; 328.94969 6858540; 329.11762 22650; 329.22899 1623298; 329.23723 9769; 329.49866 2571170; 329.51402 96675; 329.62252 8444007; 329.83887 8494642; 329.85611 15965086; 329.90508 3354683; 330.01491 3681952; 330.47683 75690; 330.7901 36158; 330.9871 479950; 331.0146 2100274; 331.13688 97315; 331.14227 5181; 331.146 5230236; 331.20711 151308; 331.26213 23771; 331.5806 4597831; 331.62917 65501; 331.80259 132987; 331.90661 8033308; 332.47022 952643; 332.5138 5876920; 332.62275 1701395; 332.65013 73270; 332.6714 20920; 332.72467 52132; 333.00722 4812572; 333.27548 44964; 333.53859 3225491; 333.6847 16392; 333.90747 2135522; 333.99774 29256; 334.17375 502762; 334.22236 1374472; 334.36305 475806; 334.38621 152; 334.73352 1371577; 334.82173 26511556; 334.85743 58989; 334.86547 704495; 334.86856 1798937; 334.90772 3721011; 334.94398 56621; 334.9806 25664; 335.15386 216478; 335.15633 9446496; 335.46748 1899105; 335.5513 163194; 335.56652 8058029; 335.71042 4951025; 335.78334 58689; 335.88369 91317; 336.04715 29287; 336.07022 4985; 336.26747 6474; 336.79766 1150420; 336.80359 21479; 337.03451 22629; 337.48929 46037; 338.20841 5361; 338.30501 48579; 338.30943 36421; 338.4968 23640255; 338.59713 25910; 339.39689 63634; 339.4162 24467; 339.46767 9818544; 339.72444 51500; 340.00688 231404; 340.32178 1204412; 340.35912 55411; 340.45354 1271608; 340.59996 942557; 340.67518 2136160; 340.69085 28615; 340.69605 44879; 340.72236 944840; 340.77619 979; 340.7772 559917; 340.85441 23489; 341.26112 3417646; 341.35749 1148599; 341.37552 849638; 341.41762 38289; 341.47444 68475; 341.85495 3864; 342.00384 75106; 342.07299 1860023; 342.17799 176221; 342.26343 346512; 342.59137 4957871; 342.86148 29922; 342.97348 172932; 343.33634 706918; 343.36537 51816; 343.48138 3713336; 343.49013 27602; 343.62623 3749490; 343.67348 44033; 343.89086 78150; 343.93508 1997449; 344.00483 1180972; 344.11286 1201472; 344.11978 8060; 344.15289 49870; 344.19217 100638; 344.24757 7704559; 344.41538 4640739; 344.49851 1532619; 345.03548 26047; 345.17613 871; 345.35071 26838; 345.56152 8068; 345.98437 9251; 346.1751 2514; 346.63256 1139258; 346.76813 1243398; 347.55835 22685; 347.57765 3097; 347.58092 78720; 347.65603 21129848; 347.78824 26873; 347.96017 829886; 348.07916 47306; 348.13702 7686; 348.26548 20471; 348.33337 1397802; 348.54506 8811259; 348.58343 8629; 348.81089 7861469; 348.86346 31344; 349.13715 18920; 349.1449 256876; 349.79586 188374; 349.86868 23224; 350.41552 63051; 350.47975 6479; 350.80325 601430; 350.89067 3542584; 350.91235 21640; 350.93849 1640529; 351.09697 50766; 351.14818 17305; 351.22334 1180503; 351.2803 862960; 351.32037 2326; 351.34767 12565; 351.38652 6366; 352.08644 36886; 352.16423 27417; 352.45422 1582656; 352.5665 846885; 352.64564 557538; 352.67692 2575; 352.71356 1584661; 352.73092 69761; 352.73376 114774; 352.74962 7215; 352.86626 46543; 352.99333 4422523; 353.00608 2718266; 353.0321 8680153; 353.211 57361; 353.42858 3141635; 353.42949 50179; 353.55332 9680150; 353.60925 69823; 353.77802 25646; 354.13419 68573; 354.31022 426429; 354.41307 696; 355.20264 21823; 355.3701 134692; 355.6007 28090; 355.64778 7969; 355.6862 2387; 355.72242 69379; 356.00005 4360110; 356.11369 5560398; 356.2321 44524; 356.44406 165650; 356.67832 1713353; 356.7936 439325; 356.87233 74188; 357.17515 3900; 357.18526 19161; 357.61337 2497; 357.65413 517912; 357.68058 9333982; 358.03342 9625; 358.09271 4736238; 358.23535 14187415; 358.44397 63685; 358.80043 3180796; 358.86767 3554; 359.03848 78811; 359.07136 2673387; 359.3894 5258793; 360.03547 1097934; 360.19555 685891; 360.29859 74546; 360.55132 20134278; 360.81374 1462357; 361.02529 2979; 361.0754 13457717; 361.26906 4037872; 361.29293 51699; 361.36609 2516; 361.43176 6988485; 361.47054 106278; 361.47691 10728; 361.73283 194553; 361.76897 1873422; 361.94199 68181; 362.30918 7894; 362.80606 36559; 362.89149 25289; 363.1924 39698; 363.21627 3448306; 363.61911 134638; 363.87776 50456; 364.39873 1908936; 364.46019 9538664; 364.88164 8995; 365.16675 4694830; 365.2153 2805837; 365.47652 15059826; 365.4769 22697; 365.5031 1273927; 365.51618 5446282; 365.6072 9359; 365.65137 1760794; 365.853 73166; 365.90091 45605; 365.95004 1861407; 365.99354 2755767; 366.06298 3657548; 366.09059 41140; 366.34152 4654; 366.73587 4479617; 366.77763 43473; 366.77826 32508; 366.89239 3154180; 366.92133 12727; 366.95047 4961273; 367.15841 78256; 367.22929 1786103; 367.67013 15040871; 367.80439 4893310; 367.82834 26231; 368.09359 523433; 368.31059 589206; 368.42066 2337641; 368.45157 4477400; 368.4586 48702; 368.49436 2540225; 368.60744 15383668; 368.85934 7936484; 369.39195 146530; 369.43086 42698; 369.56424 1777979; 369.71975 5575; 369.74387 9959994; 369.83309 132165; 370.19026 1031634; 370.33479 8972; 370.66875 1255122; 370.72047 30082; 370.88187 7277; 371.0674 42889; 371.22855 1197109; 371.26756 214495; 371.66803 52618; 371.76387 125677; 372.2257 2575457; 372.39767 8418; 372.40801 50044; 372.53104 12933560; 372.76875 4329138; 372.80363 4360101; 372.94789 22436; 373.51394 3861280; 373.82334 4824385; 373.87624 9989; 373.96492 1420646; 374.0511 20194; 374.20887 4892889; 374.51834 3540528; 374.52932 11240342; 374.5438 114935; 374.70386 74962; 374.96609 66155; 375.31654 1988565; 375.40162 141295; 375.51911 2791110; 375.5624 206413; 375.67673 51980; 376.02658 4004978; 376.05216 953810; 376.13019 2256518; 376.17088 1710986; 376.22661 67235; 376.28649 4005264; 376.71314 1249066; 377.35477 43533; 377.44269 12993; 377.84086 27270; 378.04705 8207; 378.12077 1164; 378.19989 41043; 378.3643 992091; 378.92281 817464; 379.07506 38928; 379.09744 128832; 379.40186 1098384; 379.57108 256393; 379.69988 282602; 379.96124 72929; 379.98979 106770; 380.01209 163009; 380.12016 52354; 380.15751 49129; 380.33204 3980552; 380.48619 2173043; 380.64478 1504410; 380.72758 18469; 380.83072 9310253; 381.02966 9267; 381.20387 866499; 381.20694 8058721; 381.25388 63943; 381.33305 2413; 381.35284 42159; 381.45251 2469609; 382.08887 820799; 382.43993 6505; 382.59125 59663; 382.69903 82219; 382.87536 1231686; 383.50669 31558; 383.69201 71910; 383.78954 887208; 383.80459 622529; 383.94196 2581378; 384.41054 7997; 384.49683 13263; 384.49891 959605; 385.33072 104075; 385.47694 23722; 385.89391 2159; 385.8989 68414; 385.94661 4414481; 386.1444 5347; 386.74922 29098; 386.97267 1887387; 387.16276 5152815; 387.19571 63784; 387.84443 4296836; 387.96115 4335771; 388.02654 9630; 388.18374 8835; 388.19608 31628; 388.83903 4066730; 388.9243 8274261; 389.11811 4905437; 389.80997 4549; 390.28062 57897; 390.31209 4007524; 390.34732 4270123; 390.5209 331059; 390.83018 3475082; 391.01156 89800; 391.2564 7676209; 391.32837 23344; 391.36751 35270; 391.38803 43565; 391.64349 582308; 391.7166 1092; 391.81251 40837; 392.07266 28438; 392.16528 14950611; 392.18982 361573; 392.34506 48638; 392.35839 530490; 392.64783 1484766; 392.71035 24568; 392.93552 56118; 393.03841 6677; 393.06744 2148295; 393.1044 1077927; 393.38807 3194219; 393.67057 33862; 393.9632 4429; 394.21659 40414; 394.76409 19679; 394.77764 3145580; 395.22839 4486348; 395.41063 414894; 395.94613 1323347; 396.23709 26432; 396.38025 2526991; 396.44687 44958; 396.59082 27794; 396.68881 804671; 396.97399 8154; 397.11156 42020; 397.1236 8137077; 397.22902 942513; 397.24462 27994; 397.33973 24229; 397.42916 2656; 397.47184 66593; 397.62481 16238; 397.76098 2826803; 397.97167 19931023; 398.12838 1869; 398.76349 28240; 398.78034 7508; 398.81477 17247; 398.82505 114551; 398.87178 1062683; 398.89091 68489; 399.0903 313422; 399.11168 1704; 399.13657 1733; 399.29466 23528; 399.33232 2127; 399.55497 8732; 399.62974 2437; 399.67325 6074571; 399.91887 6854; 399.93368 53466; 399.99631 9482; 400.26729 5436534; 400.42073 1201794; 400.53198 60789; 400.70433 9421854; 400.71203 53301; 400.73258 72581; 400.84656 8275; 401.22808 353; 401.28888 6873085; 401.35845 20257; 401.42309 27499; 401.48498 1390809; 401.67417 109717; 401.83495 33003; 401.8595 2248; 401.97973 34647; 402.50879 1370811; 402.55116 3999595; 402.66917 2231585; 402.72042 27570748; 402.96323 73162; 403.03597 847095; 403.68304 70375; 403.76538 193410; 403.77643 44551; 403.82576 972603; 404.01241 539; 404.26766 78077; 404.31745 19122; 404.31878 153945; 404.59449 2342; 404.62586 14045; 404.84146 1408840; 404.87854 2823449; 404.88309 101298; 405.56508 6047578; 405.77409 44032; 405.96395 836216; 406.08833 29871; 406.11153 3998; 406.60338 49373; 406.66858 12389; 406.83716 190832; 406.91156 4727; 407.23502 64193; 407.27257 5634; 407.38418 8935; 407.4704 1743996; 407.65201 2574336; 407.68236 2145811; 407.76677 802308; 407.93432 1143420; 407.95919 11736; 408.96201 92007; 409.01131 55543; 409.20011 41332; 409.40577 4552458; 409.57462 2025769; 409.87166 942569; 409.94357 25112; 410.23808 72233; 410.46337 217639; 410.52022 8597709; 410.55796 30321; 411.32025 25162; 411.37849 2761; 411.55705 17808; 411.80226 63094; 411.82695 9925205; 412.00602 3715526; 412.07059 184924; 412.28172 2366; 412.35273 350223; 412.47187 828658; 412.52266 1608525; 412.52357 2571340; 412.59882 2627; 412.64796 2612666; 412.66044 1290256; 413.06114 6240; 413.24076 1655; 413.45398 87949; 413.64526 24966992; 413.69824 9379483; 414.27487 112383; 414.43532 3705454; 414.45336 68105; 414.52927 23937; 414.67123 25647; 414.67239 4424398; 414.68046 1097228; 414.74306 3758; 415.09602 1148835; 415.3759 1113231; 415.53853 35422; 415.83763 1981787; 416.13302 29828; 416.37339 1175140; 416.5107 18362; 416.62567 23504; 416.72422 53501; 416.82977 8077; 416.84777 39989; 417.13235 132; 417.18222 71517; 417.26457 21127; 417.31754 785823; 417.37792 23795; 417.7531 68323; 417.82548 346799; 418.30761 26519; 418.42579 378; 418.46549 49158; 418.6567 708524; 418.7778 370; 418.87206 22713412; 418.9533 5828; 419.30178 5045780; 419.42534 18566; 419.67869 2194; 419.70506 39395; 419.90399 3533981; 420.04796 3252677; 420.12759 515264; 420.16693 149; 420.3258 43904; 420.56685 8232778; 420.83607 29798; 421.05026 5946; 421.16177 21064201; 421.24267 63685; 421.47306 47194; 421.61935 2258955; 421.63885 1094; 421.71505 4579742; 421.77908 32954; 421.79984 1716564; 422.17463 2153715; 422.18364 1845104; 422.42173 23187; 422.74217 36591; 423.01678 6859; 423.07177 31980; 423.31324 8946; 423.42094 41914; 423.71365 6026; 423.79512 36735; 423.93741 12177; 423.9396 1068426; 424.10367 48239; 424.11212 8769; 424.12291 67392; 424.12794 884782; 424.23474 187456; 424.36091 9050; 424.4904 38904; 424.63535 8720; 424.83587 2071753; 424.97928 5780739; 425.06783 39453; 425.59678 829394; 425.93678 20676; 426.11519 4186510; 426.39099 36893; 426.51612 29618; 426.62529 35331; 426.99788 345; 427.05411 3409; 427.11228 54994; 427.33702 5132562; 427.35117 4881745; 427.44914 772; 427.54673 4040145; 427.57143 1611; 427.59966 9057; 427.68131 55307; 427.71734 219; 427.80429 20476; 427.8918 28886; 428.07601 9699100; 428.58352 1394486; 428.58922 143825; 428.60289 11182; 428.77351 1328347; 428.83805 24152; 428.86899 4776344; 428.97244 160313; 429.00302 50252; 429.37269 7083; 429.99348 1403616; 430.09073 1532; 430.91721 2299615; 431.01512 109474; 431.29444 8314; 431.37377 5534115; 431.75489 47534; 431.97212 964978; 432.06378 4359387; 432.22445 65081; 432.95874 44970; 433.38151 25835; 433.83339 901153; 434.23784 25172; 434.28604 14837212; 434.60488 19823; 434.83578 3618758; 435.70659 5685; 435.72488 56370; 436.58336 43823; 436.59022 1534185; 436.93635 20954122; 437.56333 3741971; 438.48441 39179; 438.60635 32155; 438.68365 4772608; 438.69778 24531; 439.0061 1047818; 439.12589 401458; 439.44452 28000; 439.45501 274506; 439.54407 3983910; 439.77902 8480; 439.81191 59328; 439.92053 19264; 440.04377 3340604; 440.04889 7753675; 440.13309 66033; 440.18128 68; 440.3041 16084901; 440.33485 595; 440.55597 5064; 440.61508 118947; 440.66418 17739; 441.08368 156926; 441.0956 1803740; 441.2297 7400; 441.55835 9623; 441.82374 63642; 441.99865 3422393; 442.22824 665225; 442.25692 1405152; 442.44114 69437; 442.51656 44684; 442.88314 53958; 443.03936 40687; 443.14562 14152; 443.24914 4059973; 443.51906 7339; 443.72007 1696606; 443.78782 1114055; 443.97443 1071581; 444.0112 10992; 444.35067 2134; 444.71303 7848828; 444.78355 463200; 445.1374 9112; 445.22762 61860; 445.31409 9391991; 445.31959 17610; 445.76786 74579; 445.81225 638097; 445.95065 981472; 446.02951 35091; 446.05345 1720695; 446.08737 24372; 446.32577 1661; 446.39831 1216941; 446.66803 57624; 446.67957 50246; 446.68968 30563; 446.96807 2554342; 447.28847 102675; 447.32682 26766; 447.35503 557903; 447.37328 9817228; 447.68012 182395; 447.79632 6030; 447.87356 24123; 448.25529 21000; 448.25982 36045; 448.37545 21724497; 448.45957 16811825; 448.5334 7055; 448.78281 1885648; 448.89872 1005896; 449.04777 13219; 449.0803 2817158; 449.30456 1428123; 449.75552 582983; 449.90545 949572; 450.05082 184203; 450.55132 112293; 450.8108 6966; 451.1866 58110; 451.52142 24572; 451.54908 82946; 452.07907 1624102; 452.22137 9067136; 452.52171 2817348; 452.81128 371931; 452.84447 8900839; 453.13985 1325057; 453.14638 266698; 453.32635 30640; 453.66475 1865; 453.74656 4301; 453.79167 4884; 453.80721 2335; 454.17895 73562; 454.4132 30505; 454.75244 36914; 455.04825 58986; 455.15984 8307; 455.21101 10626574; 455.25914 9983; 455.49126 513827; 455.73935 4120526; 455.74159 4091; 456.35243 4867307; 456.35329 5370; 456.37826 787551; 456.45882 7301714; 456.56333 26786; 457.01705 4105; 457.08481 4172965; 457.16819 70538; 457.19278 106223; 457.29874 5102; 457.34282 1279022; 457.66417 1957556; 458.28024 3061225; 458.28042 27852; 458.45077 27422; 458.69034 1321528; 458.83948 36972; 459.06264 19590; 459.08778 1417; 459.13621 1680582; 459.54244 45753; 459.67997 233639; 459.76069 9252; 460.16496 2939108; 460.23672 76831; 460.35454 32249; 460.59844 65184; 460.75317 79698; 460.77868 20215; 460.83582 62682; 460.93938 60856; 461.19569 1883999; 461.92836 58517; 462.33156 52908; 462.517 4875969; 462.60753 23154; 462.61726 28673; 462.74012 68067; 462.76816 824; 463.00953 2364756; 463.06285 9189441; 463.06884 616166; 463.08823 7241; 463.13002 1261056; 463.3952 13340; 463.53469 33950; 463.54764 24510; 463.83108 5990315; 464.14262 61205; 464.20199 68412; 464.29651 18570; 464.53669 713752; 464.65966 20214045; 464.67012 1384134; 464.85539 1179; 464.99166 1248473; 465.03121 11479060; 465.11344 4871; 465.29938 42037; 465.31474 117903; 465.43257 72711; 465.69592 4940813; 466.43925 1771518; 466.59651 767951; 466.63352 556490; 466.66947 44289; 466.69997 59020; 466.91655 12563; 467.01896 1126111; 467.04626 24435; 467.09953 15645; 467.41397 24843; 467.75647 4185495; 467.7863 31324; 468.57142 1867513; 468.63718 22; 468.87907 130970; 469.1785 176748; 469.18064 1133; 469.32986 158129; 469.7207 7024; 469.87137 62367; 469.89987 3195243; 470.38183 5806446; 470.62209 1351637; 470.88594 669; 471.02688 8522; 471.15311 24894; 471.18385 6755410; 471.23356 2807; 471.31927 29060111; 472.21606 29114; 472.36577 14352; 472.41187 132098; 472.46316 31437; 472.60296 922311; 472.9751 4283102; 473.04079 140762; 473.04311 8526603; 473.15306 29467; 473.2061 80773; 473.40573 22752508; 473.82135 29626; 473.90112 43875; 474.13745 34637; 474.19542 48105; 474.67783 57390; 474.69777 24370; 474.69892 28663; 474.95793 1888; 475.6312 1771132; 475.81749 1524105; 475.94579 7979317; 476.03238 574383; 476.05061 53980; 476.09911 45607; 476.36347 192; 476.59124 55270; 476.83334 14393; 477.03628 648684; 477.16552 3731631; 477.16776 56380; 477.51478 72982; 477.90396 5237; 478.11786 41932; 478.14182 7451223; 478.63795 79758; 478.72185 46084; 479.03516 4287132; 479.08403 47069; 479.24149 461558; 479.24567 57057; 479.76881 40646; 479.91351 1513836; 480.27013 4759072; 480.4431 604; 480.76958 1311791; 480.85951 952411; 480.91946 16486; 481.10899 2034514; 481.33165 323645; 481.37338 2057559; 481.43456 4298663; 481.76304 6109412; 482.10301 34475; 482.16818 93314; 482.2003 799428; 482.3913 54880; 482.45654 68330; 482.502 3949684; 482.51314 213; 482.61326 76853; 482.62518 53005; 482.9594 37775; 482.98161 29976; 483.2553 61533; 483.58543 104531; 484.08171 36663; 484.2944 5984; 484.62847 1885; 484.7622 1871495; 484.91531 21535; 484.9539 69433; 484.99758 8779; 485.18766 34440; 485.33258 237611; 485.60512 1907532; 485.69868 348; 485.71646 61661; 486.2436 21167; 486.3751 37775; 486.50352 2695927; 486.59163 16288824; 486.84452 4676; 487.10751 6385; 487.76089 1930182; 487.90462 712448; 488.11721 2559941; 488.1506 1552287; 488.64061 59131; 488.94295 7796; 488.96884 8535911; 489.11107 516533; 489.11678 8187; 489.25482 412015; 489.47793 6276; 489.61035 19366; 489.96669 1402; 489.99408 173345; 490.20006 748522; 490.31377 6123; 490.65371 188649; 491.03355 4601485; 491.12626 3728335; 491.17917 1546134; 491.26939 77143; 491.38483 14258; 491.39595 53003; 491.50728 48343; 491.54176 2713; 491.88167 3962203; 492.07752 67661; 492.16405 4495612; 492.30379 1739196; 492.41357 6559058; 492.45304 49569; 492.6937 359166; 492.80805 31439; 492.85716 1760339; 493.07722 64003; 493.14011 4740; 493.23189 1766914; 493.53588 3846119; 493.70488 1677423; 493.86138 18074171; 493.99091 64167; 494.10432 79184; 494.29089 31634; 494.41532 53069; 494.64827 183469; 494.67782 28839; 494.78479 4139; 494.88206 4665049; 494.9493 55526; 495.03911 19349841; 495.19795 9108; 495.98204 28124; 495.98983 2220; 496.11939 50014; 496.19887 14511; 496.33841 1440243; 496.46591 79791; 496.70808 7793; 497.10327 54131; 497.61556 37980; 498.22234 29111; 498.25725 66292; 498.26997 22894; 498.40473 24230; 498.69116 6869; 499.43264 13481; 499.92639 79908 +<1, 5>: 0.26334 29302; 0.51022 45649; 0.82144 1186263; 0.87311 34565; 1.05412 19235886; 1.15311 7927; 1.18593 3403; 1.2777 679764; 1.31828 8820; 1.70359 6752; 1.79586 2832; 1.82922 13264; 1.88625 26798; 1.96409 9782567; 2.88089 73252; 3.03103 6204; 3.10344 29318; 3.27982 1465108; 3.34328 17218; 3.42159 143251; 3.42308 52038; 3.46199 1285577; 3.54387 15929; 3.70771 64730; 3.71147 17581; 3.77151 24175; 3.7755 29264; 4.12525 148577; 4.33249 3982327; 4.59306 2557884; 4.6233 18913; 4.7567 5428; 4.77079 27883; 4.83215 66051; 4.86212 14080385; 4.99946 5641; 5.46062 2306; 5.67444 19406818; 5.70981 57073; 5.92464 1849851; 6.06808 28189615; 6.18111 902624; 6.52841 18219448; 6.89383 53070; 7.02564 3309425; 7.14483 58887; 7.30324 8514895; 7.43871 35984; 7.45122 70704; 8.06359 1189298; 8.23288 45201; 8.29868 7773; 8.31367 65067; 8.49832 58975; 8.60891 1683539; 8.65571 2716666; 8.69656 18905; 8.72005 8782; 8.78405 27028; 9.15144 18460; 9.19232 78962; 9.31261 1919904; 9.32399 24550; 9.46983 2587; 9.58984 170238; 9.78 3619; 9.84445 21343086; 10.54284 63487; 11.04218 3603571; 11.08498 21212; 11.35631 59048; 11.55794 40017; 11.58588 3357; 11.67781 10134; 11.89462 10922; 11.92222 26058; 11.95028 6215571; 12.00674 26223; 13.0006 8145685; 13.19519 41216; 13.24098 28166; 13.25484 32031; 13.57294 66800; 14.04977 193765; 14.05705 2486335; 14.20096 74225; 14.2355 38581; 14.31424 12172; 14.31968 27762; 14.31987 23422; 14.6275 155743; 15.98852 34358; 16.0166 20865; 16.31696 72849; 16.33472 5073; 16.42271 22183; 16.61136 44480; 16.63678 68168; 16.65574 6805; 16.65858 15046165; 16.94933 24805; 17.16811 223742; 17.23939 4816385; 17.43718 37650; 17.83395 4433981; 17.97025 4588442; 18.05054 351577; 18.09589 9971788; 18.11979 4517174; 18.2106 22863163; 18.28627 5559; 18.70047 40593; 18.82742 1320763; 18.98861 4187; 19.09169 34604; 19.16934 12747; 19.25629 1714906; 19.48974 2856648; 19.52046 7603; 19.52921 17678; 19.71015 3780; 19.86768 49612; 20.48812 1601878; 21.25975 9496339; 21.35344 1388818; 21.36915 76209; 21.37553 199617; 21.56786 28418; 21.83661 2464; 22.09976 51996; 22.30266 43906; 22.57702 198640; 22.78329 776407; 22.78775 2855; 23.17178 795060; 23.22713 50147; 23.25055 4670183; 23.30665 23705; 23.43056 34881; 23.47986 61695; 23.48452 29366; 23.51039 163191; 23.53061 6096; 23.74147 9978863; 24.18899 8342949; 24.34219 50416; 24.35991 28713; 24.50661 9263931; 24.53773 9000; 24.6648 2107707; 24.9483 2681937; 25.21465 39037; 25.28282 7257387; 25.33349 4328; 25.38972 67210; 25.6594 1172796; 25.66365 7842457; 25.67664 4623123; 25.73456 2928; 26.01509 1017199; 26.18562 21697; 26.28398 3189; 26.30625 6139; 26.43001 1597689; 26.51897 226348; 26.77177 4530572; 26.84846 13537; 27.07593 7122772; 27.15701 1506281; 27.20291 60989; 27.37661 27453; 27.56474 182503; 27.81001 20071; 28.39754 9741; 28.53653 3430; 28.59108 35067; 28.61629 29008; 28.6202 1991914; 29.02696 41219; 29.03603 1806043; 29.28568 2912221; 29.56604 18045; 29.68567 3699398; 30.35046 36532; 30.41241 1800729; 31.08079 864147; 31.63472 8906; 31.69236 5154; 31.75046 287598; 32.01884 14255; 32.21287 60236; 32.46325 40854; 32.67343 128849; 32.72972 126659; 32.87945 4041718; 33.02676 22459; 33.20847 50834; 33.45407 7394762; 33.56564 1337679; 33.91207 171419; 34.15683 23202726; 34.33764 4113; 34.38507 757002; 34.45266 193069; 34.53923 1760966; 34.56686 2091126; 34.77661 201029; 35.07351 1304246; 35.07919 6374615; 35.39488 17900; 35.54521 3152; 35.61534 2189275; 35.91033 1262734; 35.92992 6373; 36.14348 28709; 36.42364 45550; 36.64405 20289; 36.76743 1530250; 36.79377 415068; 36.85191 42677; 36.96312 7276241; 37.06047 33954; 37.32946 57149; 37.43724 28522; 37.49823 3400967; 37.55145 946274; 37.66693 1778; 37.71436 1293083; 37.86351 23254; 37.86802 4105173; 37.95885 14506; 37.98006 113572; 37.9813 30178; 38.05512 163; 38.08157 3815482; 38.41314 24994; 38.71824 2827324; 38.86485 2265; 39.04053 23061; 39.06532 33902; 39.28247 43003; 39.32779 127617; 39.45232 5374; 39.69308 45675; 39.77156 63652; 39.79924 3979; 39.80813 23134; 40.11363 36800; 40.74467 3194259; 40.81885 9737009; 40.94738 70331; 41.26249 27307; 41.44139 66589; 41.67792 28342; 41.70809 98178; 41.84146 40134; 42.12076 70631; 42.40648 70671; 42.61055 1297641; 42.87035 4666374; 42.9895 8877; 43.01244 5672; 43.37126 54178; 43.61641 1780991; 44.21838 16422; 44.24987 1343977; 44.25501 2901641; 44.3531 5407; 44.77559 36642; 45.02513 618779; 45.17846 4974698; 45.21632 6392; 45.32994 112152; 45.44446 14316; 45.57496 46576; 45.7229 10332; 45.85986 1557384; 46.0474 75816; 46.12132 25828; 46.20397 19220; 46.31182 25497; 46.34421 8976609; 46.45835 2763; 46.77406 60480; 46.96868 22831339; 47.11739 373; 47.28035 2249328; 47.35853 1066058; 47.36201 6511; 47.37282 72144; 47.41517 3991688; 47.61046 8268; 47.68595 2747102; 48.06069 68278; 48.12717 79411; 48.67578 170; 49.06614 48816; 49.09536 5929; 49.10185 402676; 49.42028 54440; 49.49721 68090; 49.51573 754996; 49.63069 14970; 49.64344 11982859; 49.65169 1274801; 49.86414 642452; 49.95382 4134890; 49.96997 11678; 50.47423 76397; 50.48771 4079; 50.52264 37531; 51.04262 58611; 51.59615 73964; 51.59898 66733; 51.66439 71667; 52.11728 9229713; 52.11956 25945; 52.19655 63259; 52.50645 79701; 52.61692 37737; 52.66139 28720; 52.67783 93007; 52.87194 1298; 53.0581 69881; 53.29803 459498; 53.44349 25064; 53.5741 1273698; 54.17753 148764; 54.25036 6470560; 54.39494 1591923; 54.43912 24022; 55.10026 2760; 55.14982 147878; 55.2007 54697; 55.35007 6652; 55.62904 1516590; 55.89181 1201110; 55.93827 4905406; 56.28675 1813953; 56.3069 65445; 56.32427 23849619; 56.64819 1508761; 56.87584 72216; 56.98531 22764; 57.03921 114873; 57.20034 8403690; 57.62057 1138601; 57.77778 27703; 57.84787 6555; 57.9925 1272795; 58.18351 115815; 58.24577 72921; 58.29902 5065; 58.38974 15161; 59.03198 19556088; 59.07435 73493; 59.1912 3975761; 59.28373 543722; 59.31809 16572; 59.41711 703400; 59.46987 54829; 59.48418 16004; 59.5258 1319579; 59.56763 23401; 59.88134 2585527; 59.89461 155211; 60.28728 776706; 60.64445 38085; 60.86789 66175; 61.06737 30091; 61.07526 20540; 61.20972 7990; 61.2811 28150; 61.39927 1566428; 61.70123 650; 61.96816 21591; 63.17725 55761; 63.36511 1158324; 63.39023 2803; 63.46609 56693; 63.54168 21474; 63.78567 28708; 63.97753 8742035; 64.34001 196523; 64.36493 43110; 64.94825 2065447; 65.00697 9454332; 65.0394 22158; 65.04317 502116; 65.20154 64401; 65.36549 36161; 65.75863 16071; 66.03762 1771; 66.06504 54652; 66.23512 914557; 66.6842 2768606; 66.95852 72414; 67.25332 1816516; 67.39347 4909970; 67.60621 75793; 67.97626 17207977; 67.98901 70186; 68.19285 6957; 68.25455 31595; 68.41301 42471; 68.46458 6244114; 68.60871 3363; 69.00891 40984; 69.21034 12985; 69.41023 1653552; 69.60028 15753; 69.64381 40504; 69.79768 8453; 69.89462 27463; 70.12709 59302; 70.1847 68760; 70.38101 7042; 70.946 1501326; 70.97567 83730; 71.08783 3068; 72.31229 2597; 72.48932 46335; 72.76078 2184309; 72.88275 145773; 73.01488 4187954; 73.03964 34899; 73.66708 48673; 73.73748 1536284; 73.98945 1452375; 74.33731 6931199; 74.80205 133446; 75.02806 959738; 75.45014 77464; 76.40849 356222; 76.44065 3139; 76.67485 2810178; 76.96581 5403; 77.0552 22634; 77.12957 2823391; 77.16369 625420; 77.20672 37755; 77.55404 40862; 77.6904 1144562; 77.71522 71095; 77.74314 21343; 77.94577 36776; 77.97413 35728; 77.98554 3652393; 77.99893 61846; 78.09824 3625423; 78.47325 2709327; 78.48401 9933; 78.61635 6543; 78.92635 16501299; 79.05267 24235; 79.21551 15165065; 79.22041 163461; 79.70775 28889; 79.83487 47961; 79.89253 57727; 80.15678 569448; 80.27703 524007; 80.29378 4866432; 80.50056 4156; 80.99208 308268; 81.32095 171395; 81.33677 20785; 81.34658 66441; 81.34954 3528060; 81.83905 2926669; 82.31112 14333; 82.42184 754009; 82.45407 10438; 82.4549 143244; 82.46939 824; 82.54525 725592; 82.69668 25153750; 82.76215 15496; 83.35983 281372; 83.49402 972454; 83.61738 8410; 83.93346 2803121; 83.93612 27646; 84.11715 32371; 84.42331 3995704; 84.76938 4723208; 85.19848 17486; 85.37659 1072382; 85.45366 57447; 85.91936 16747676; 86.14209 34111; 86.17412 1758434; 86.32202 9875493; 86.62718 15812; 87.0255 61490; 87.02646 6666; 87.07079 4557260; 87.19601 62880; 87.38356 701169; 87.39483 6907885; 87.63726 2235386; 87.72496 61894; 87.74632 34463; 88.53723 71720; 88.62577 2111433; 88.70853 1104198; 88.84859 2420617; 89.22897 29326; 89.25744 30947; 89.27335 5492; 90.01079 22781163; 90.31526 756; 90.45536 7351046; 90.79439 3099991; 90.86176 7574951; 90.91352 4412079; 91.68878 22889; 92.08654 6538; 92.42022 4800620; 92.68858 36630; 93.02616 1513362; 93.19021 43677; 93.41779 4256; 93.44846 8125; 93.53527 1801084; 93.59307 44268; 93.63581 8863; 94.29017 59559; 94.56283 76587; 94.72393 15857; 94.72789 7428758; 94.87691 1256439; 95.02594 75376; 95.57471 243533; 95.72055 178262; 95.80303 23342; 95.8486 21168546; 96.37699 163406; 96.41397 709539; 96.63862 20485; 96.63987 20929; 96.64236 1589226; 97.31422 20118; 97.36082 567; 97.64228 6149; 97.77716 8460; 97.99 90951; 98.01858 118196; 98.10425 1933; 98.202 63908; 98.38815 330871; 98.60827 30286; 98.66557 8565; 98.77937 2256345; 99.13681 168385; 99.44899 117034; 99.57408 55214; 99.67224 2810741; 99.69556 1797263; 99.8534 23456; 100.06127 7881; 100.14954 67222; 100.14975 32433; 100.17419 104765; 100.40537 1424919; 100.68631 9792570; 100.87812 64633; 100.91466 29500; 100.99995 48311; 101.24382 78458; 101.2596 36611; 101.28754 36271; 101.43336 547; 101.4443 1159022; 101.61579 34772; 101.75345 441891; 101.92557 4205664; 101.9737 1490819; 102.04817 26095; 102.05274 1922942; 102.06915 3740568; 102.425 8612; 102.51863 31818; 102.68696 33598; 102.72645 15648; 102.94143 8731575; 103.16993 17128; 103.50278 23899; 103.63388 59249; 103.81617 470831; 103.97617 5935705; 104.01513 153203; 104.1438 379083; 104.30531 4462; 104.32087 17097; 104.59622 281371; 104.68015 389; 104.71092 5379; 104.76178 776432; 104.90908 4264161; 104.95739 46959; 105.07284 685506; 105.37687 57100; 105.49875 24018; 105.87971 424764; 105.91914 13851; 106.31236 66955; 106.57939 76628; 107.36452 51663; 107.50739 8173304; 107.72501 11476; 107.81741 22011; 107.9963 130045; 108.05651 30884; 108.59532 64577; 108.82582 6669216; 109.01063 883974; 109.26519 3471134; 109.38353 36757; 109.40759 3508964; 109.42802 747366; 109.51883 11829; 109.69309 63822; 109.71201 1495949; 109.89208 1245477; 110.2193 2016; 110.38971 9785493; 110.61786 25585; 110.62982 43108; 110.74127 6212; 110.79412 371652; 111.17655 1232649; 111.34216 15472919; 111.42986 43946; 111.78045 7111; 112.00868 16497; 112.09977 3200; 112.29282 25463; 112.44788 20401; 112.59068 44055; 112.69294 5996016; 112.77956 4003018; 112.97498 68944; 113.02526 55696; 113.14916 16619094; 113.35115 73141; 113.36591 9529101; 114.0044 1955271; 114.08068 52089; 114.1139 828; 114.29396 33152; 114.63661 302879; 115.16558 5591258; 115.28704 90303; 115.57708 4328438; 115.5797 23766; 115.92897 1198309; 116.20075 23299688; 116.45644 121701; 116.53597 7335; 116.59011 18870; 116.78992 36638; 117.14845 1733316; 117.33867 4414; 117.3623 48328; 117.78235 572196; 118.07636 49198; 118.21353 102948; 118.41235 41846; 118.48293 23683320; 118.66804 2501518; 119.13287 19015; 119.24855 121696; 119.34114 27654; 119.48197 4650512; 119.58455 1810813; 119.78793 2239; 120.97886 704137; 121.03526 3662261; 121.26416 9162; 121.34358 7947; 121.36755 55598; 121.41655 46938; 121.47701 16195147; 121.50375 191645; 121.51081 853167; 121.83533 63325; 122.2859 1102058; 122.3133 33586; 122.83061 197752; 123.03878 57246; 123.10177 63356; 123.1791 60459; 123.38312 20514; 123.73357 14794; 123.81828 1454452; 123.83143 45767; 123.958 1129739; 123.98001 26053; 124.06929 28899; 124.21461 23132; 124.41486 695708; 124.67736 1119443; 124.68957 136126; 124.81041 15529; 124.93634 1668527; 125.00849 17023; 125.26219 518055; 125.28218 30583; 125.37139 26507; 125.54569 1142; 125.54911 1756847; 125.88319 7966123; 126.12758 25089361; 126.26481 3613287; 126.42378 78461; 126.51861 2909; 126.51979 8134885; 126.60709 3656348; 126.7018 9275574; 127.3578 5778572; 127.55516 1602539; 128.12602 47676; 128.15817 1824153; 128.18842 7657; 128.3201 2727152; 128.32206 5118886; 128.3709 11397724; 128.41191 75789; 128.65122 928660; 128.7271 1785353; 128.81705 2356; 129.17882 1674418; 129.47969 89252; 129.67734 643534; 129.7568 67448; 129.78417 8716895; 130.12351 7770; 130.28444 1913818; 130.40321 117996; 130.59579 16496; 130.64482 3988975; 130.79778 9011662; 130.9345 60964; 131.04136 3411439; 131.50672 162089; 131.63774 36795; 132.00252 64422; 132.19693 1443229; 132.21505 27678; 132.36994 1142118; 132.83379 21919; 133.05955 58531; 133.11013 24286897; 133.18201 4997323; 133.19419 48417; 133.88181 976528; 134.20958 216; 134.25792 4851732; 134.26461 32225; 134.3561 2118; 134.43822 7046; 134.53354 864815; 134.625 71142; 134.9486 364633; 135.28667 70773; 135.31047 75249; 135.53598 1447138; 136.23918 5785962; 136.54242 52974; 136.67377 20440; 136.68586 14261; 136.90502 8747784; 136.99659 54982; 137.3434 1254837; 137.44492 3809424; 137.57421 2456163; 138.11004 1830202; 138.24976 4559; 138.45433 89759; 138.53226 76757; 138.65717 302694; 138.65929 1328; 138.66938 2973; 139.14267 19497; 139.24863 6468; 139.40531 18405; 139.51229 73748; 139.58391 3113745; 139.89917 9518069; 140.4079 40154; 140.47227 55940; 140.54883 151766; 140.87049 998473; 141.0085 68175; 141.17704 9059004; 141.25983 26720575; 141.32092 111376; 141.76567 209209; 141.79957 190718; 142.24704 32719; 142.37256 1120308; 142.39095 162618; 142.48029 20769; 142.69424 3438954; 143.61512 4680625; 143.81718 4035210; 144.01083 24568; 144.14316 78798; 144.16126 3353; 145.54506 37144; 145.65872 187030; 145.74786 477362; 145.79752 1521111; 146.22946 1299148; 147.00212 37627; 147.06544 8387239; 147.12356 67590; 147.31438 15; 147.70554 66774; 147.81729 222318; 148.53817 7734; 148.64897 24038; 148.72942 7759175; 149.03386 4277; 149.19404 27628; 149.30884 30664; 149.56512 57368; 149.64928 7476971; 149.93294 17034; 149.95196 8291; 149.97389 1896944; 150.08611 70213; 150.24942 135186; 150.26893 66276; 150.49793 78883; 150.62519 129277; 150.7167 178854; 150.93076 68661; 151.05899 50467; 151.06127 666416; 151.06326 57111; 151.51224 4419402; 151.7318 50179; 151.80641 9771; 152.55151 6891; 152.61445 2795712; 152.89869 6128304; 152.92374 52774; 153.06882 46767; 153.23871 5446; 153.55775 2716932; 153.61807 172899; 153.74339 33810; 153.81531 67353; 153.85052 10831; 154.23898 1778112; 154.24061 21409; 154.33244 1043531; 154.47881 113933; 154.73656 8785826; 154.79617 2193; 154.91558 71993; 154.91768 190900; 154.96266 42859; 155.1512 4016; 155.20089 374078; 155.20521 1488214; 155.30851 2574643; 155.48312 49261; 156.39035 658710; 156.45627 78763; 156.68789 1203674; 157.05557 945303; 157.35171 1615134; 157.39566 23808; 157.39661 1383305; 157.4315 37829; 157.49455 633557; 157.83246 83386; 158.36634 868596; 158.39684 1763377; 158.40105 9422; 158.53633 64215; 158.5395 5300378; 158.54291 35984; 158.66391 965330; 158.69187 37414; 159.06554 51539; 159.12146 120045; 159.75813 261245; 159.86291 17405; 160.16614 1267926; 160.27613 54593; 160.44705 785855; 160.55874 3673103; 160.72461 2449782; 160.97591 1899002; 161.11116 28630057; 161.48712 71293; 161.60116 37706; 161.73694 15453948; 162.3517 4382607; 162.45434 38638; 162.45757 9496915; 162.83075 706912; 162.85758 1111727; 163.00915 3205444; 163.67858 44772; 163.78367 1986157; 163.91396 2486786; 164.05748 4633288; 164.0754 3637; 164.18288 8322977; 164.23417 9487066; 164.95158 25755; 165.09872 1406343; 165.09906 871411; 165.18898 59018; 165.31713 452228; 165.66632 25282; 165.80623 27632; 166.20565 52460; 166.35188 14644; 166.36195 4780; 166.45774 6805; 166.67551 3769122; 166.95135 8541411; 167.48736 6164; 167.65526 66607; 167.99043 798804; 168.20156 10385566; 168.66242 68509; 168.79935 3671; 169.05396 79741; 169.21403 20513; 169.36771 162848; 169.50134 1642758; 169.50816 44229; 169.53351 22584; 169.76808 1245; 169.78292 27100702; 169.7959 7567751; 170.33104 1623759; 170.69257 18807923; 170.74526 71156; 171.03805 763403; 171.12111 647436; 171.19511 2380; 171.24135 2776440; 171.26718 1014548; 171.31313 3572124; 171.72936 2393840; 172.03055 30277; 172.06454 1662; 172.19963 13865; 172.2194 6955119; 172.26737 1278977; 172.27679 48330; 172.428 43241; 172.45175 320216; 172.46585 642493; 172.48797 8128192; 172.92447 4081758; 173.57348 414136; 173.64358 4977624; 173.7156 49181; 173.92458 7413; 174.24571 126388; 174.50442 40287; 174.51074 129677; 174.6854 4266777; 174.74457 42165; 174.821 50222; 174.8929 38779; 175.10533 1490378; 175.2507 20439; 175.34284 4870509; 175.34372 68303; 175.86235 22616; 175.94225 24764350; 176.03572 5623929; 176.11762 3416999; 176.43078 15711343; 176.44702 14243; 176.79845 38570; 177.33232 3238905; 177.34058 52637; 177.56938 2472441; 178.11176 8287437; 178.42927 3900924; 178.52045 20689; 178.59326 29544; 178.94163 4717075; 179.21011 685634; 179.28223 394271; 179.44662 30985; 180.0272 574801; 180.17113 13301; 180.24461 62890; 180.30662 26842; 180.31794 278876; 180.39821 3664896; 180.88506 63655; 181.1547 55460; 181.20283 24004; 181.27283 139999; 181.52599 12768; 181.55514 55847; 181.59321 114496; 182.144 30811; 182.20298 1698252; 182.38776 2362; 182.52693 5681367; 182.57239 1711065; 182.65652 26164; 182.82667 5950; 182.87022 160251; 183.1631 430964; 183.21887 3482182; 183.26776 2111556; 183.41016 760548; 183.41969 25937; 183.48915 468234; 183.58757 1518554; 183.629 51386; 183.69581 9760136; 183.90711 1317052; 184.01798 631603; 184.77056 952596; 184.80278 67058; 185.35601 4909824; 185.40181 741291; 185.65833 37005; 185.94546 6443; 185.94997 1452451; 186.50216 1355041; 186.79705 25179; 186.81942 1266084; 186.91167 4086660; 187.03349 9897522; 187.50046 1938242; 187.77868 25138; 188.01719 3990286; 188.0179 700637; 188.24304 18814; 188.8202 3680865; 188.89207 1461097; 188.90281 19842; 189.41079 425035; 189.80241 70689; 189.83537 152016; 190.16511 4555571; 190.21522 28803; 190.33419 1219700; 190.44719 1618788; 190.50925 17752; 190.60322 2135240; 191.04871 895623; 191.34313 2476; 191.50853 43408; 192.11477 6131; 192.23949 1435900; 192.67618 2673654; 192.70629 1994; 192.90827 9622636; 192.96339 9109; 193.08966 150153; 193.09235 159900; 193.26169 2776; 193.40949 16445; 193.46845 2753; 193.69199 50222; 193.69762 75538; 193.70926 51184; 193.8595 21972; 193.96154 8936237; 193.98286 5265125; 193.99667 5390; 194.6245 8579781; 194.8269 32714; 195.03271 30984; 195.61515 1058473; 195.6293 3437426; 195.72918 57995; 195.74625 42443; 195.78506 81283; 195.8594 4696244; 195.88631 888960; 195.90477 531; 196.36926 1610928; 196.46753 16586; 196.48243 29904; 197.53283 2952; 197.7438 3626373; 197.81505 1663846; 198.12359 24982; 198.24686 8870; 198.24904 541769; 198.43829 7287773; 198.52978 6352; 198.60371 174818; 198.78413 50041; 198.79772 27631; 198.89497 21422; 199.53565 3173357; 199.59126 4237252; 199.64711 61108; 199.79089 50121; 200.26508 7222; 200.28081 13733; 200.44812 24818; 200.4981 29236; 200.77734 15788; 200.78863 26311; 200.92067 20351; 201.09008 24002; 201.34646 31929; 201.70463 57261; 201.72755 54928; 201.9604 448195; 202.03214 186927; 202.39536 28573; 202.62094 9378741; 202.84913 33257; 203.12946 1722522; 203.20621 14732; 203.25823 3534; 203.48426 19820739; 203.56406 804533; 203.56864 667220; 203.89306 107186; 204.07399 1103396; 204.18978 2607382; 204.35091 9060; 204.51402 73794; 204.8765 98559; 205.12455 5659970; 205.39871 8635894; 205.40268 5800799; 205.52932 99266; 205.64677 20249; 206.12884 1690; 206.42393 6831; 206.45546 60037; 206.5224 1172220; 207.45347 21052983; 207.79919 1490868; 208.30701 21979176; 208.31098 598213; 208.38314 54163; 208.4848 58212; 208.5271 37230; 208.53836 9554141; 208.68784 34967; 209.02109 3425; 209.15167 58440; 209.22085 393345; 209.31425 3556473; 209.36736 6170; 209.49719 76247; 209.84686 24062; 210.00198 4595389; 210.18198 7470; 210.31896 50; 210.3894 3405; 210.44323 36657; 210.44338 28203; 210.93159 4960; 211.25343 948857; 211.34584 51214; 211.36807 19717; 212.36046 43810; 212.52158 9721; 212.56192 3567; 212.9925 21622; 213.0666 1875; 213.16211 3984069; 214.19853 831446; 214.35411 760649; 214.39767 28995422; 214.58543 1717331; 214.73065 3056; 214.77034 1983537; 215.66255 746251; 215.67711 1744056; 215.71848 1775051; 215.90812 190783; 216.11305 5926; 216.28052 46427; 216.34107 56768; 216.90544 7035051; 217.37099 55546; 217.43621 116119; 217.44802 4228637; 217.48954 64557; 217.79428 4724848; 217.95325 28903; 218.13316 28361; 218.17517 58800; 218.25754 3775; 218.28924 9599; 218.50904 7473; 218.87811 14470690; 219.28724 22889; 219.31307 1852740; 219.35225 208219; 219.53169 40508; 219.73911 22976; 219.76236 149488; 219.78665 78454; 220.33254 23642; 220.37309 9744126; 220.92076 29582; 220.93271 127245; 220.95669 22144; 221.07733 20782; 221.16499 49322; 221.22352 254; 221.50872 9012; 221.7323 64872; 221.92563 195452; 222.12972 249; 222.61733 1634; 222.70578 654; 222.71544 61634; 222.72922 49965; 222.77651 8236; 222.79822 48089; 222.85391 25524; 223.1205 512153; 223.32964 37763; 223.48626 1017360; 224.08078 3384694; 224.10216 47207; 224.58907 23175; 224.67541 3640; 225.00967 10833; 225.01206 1803984; 225.06266 13173; 225.09748 26377; 225.4786 17217; 225.53345 15417184; 225.98983 53918; 226.06021 3393800; 226.0648 1329198; 226.08252 1632145; 226.12371 13111744; 226.15244 26361; 226.28388 4385; 226.3892 29487568; 226.43166 16301; 226.45537 9842; 226.48631 71435; 226.89347 1645638; 226.92783 49318; 227.21138 4797974; 227.23988 8699; 227.43348 1815; 227.49451 453228; 227.56836 8720; 227.72024 3903729; 227.73001 186843; 228.02381 43504; 228.06534 18514; 228.0979 67861; 228.2916 20768; 228.31623 25891; 228.32139 1534626; 228.45413 46750; 228.57333 5254; 228.60227 395; 228.63715 76030; 228.77862 33254; 228.79932 58554; 228.95455 7993; 228.97626 21406; 229.27661 21546; 229.47575 2630; 230.11916 71076; 230.3977 3539274; 230.61177 2508504; 230.7402 45881; 230.75535 15839; 231.10444 164252; 231.3876 47280; 231.5535 134835; 231.60231 4346463; 231.61924 5346441; 231.68215 23241278; 231.87819 21271; 231.95398 581532; 232.40005 4970744; 232.48917 18297; 232.56579 1095170; 232.71716 4604432; 232.73924 9564593; 233.21297 4782; 233.35069 3647500; 233.42965 22802; 233.83633 907687; 233.85705 2221753; 234.01086 27698; 234.1427 1293029; 234.27806 28767; 234.32735 67713; 234.57711 148; 234.78137 1254348; 234.95266 32553; 235.0723 5203; 235.12203 65784; 235.46466 19232; 235.76996 5867227; 236.08176 9747; 236.11739 7038695; 236.29093 214672; 236.32743 985524; 236.45935 2310657; 236.58781 600520; 236.72798 42149; 237.25325 3646902; 237.36183 4517911; 237.69818 135304; 237.77703 94169; 237.84384 28226; 237.94964 92885; 238.06222 24062; 238.15853 33344; 238.3367 3969492; 238.38806 1689098; 238.8957 76332; 239.03643 479820; 239.21236 9586; 239.30194 1998; 239.68074 69692; 239.85294 19620; 240.09531 1554243; 240.27099 2920969; 240.29856 13582; 240.35401 26937; 240.43147 74157; 240.5578 4911285; 240.82988 37329; 240.95634 4810; 241.10237 9524; 241.30126 53426; 241.42012 4950233; 241.47399 1374316; 241.76337 44641; 241.93025 857027; 242.10536 9832; 242.28851 10151018; 242.70074 873422; 242.82439 1781701; 242.88468 1440; 242.99263 4989; 243.05573 54652; 243.21447 5908; 243.37492 2664; 243.51784 2375508; 243.76757 6579614; 244.62019 4729; 244.99381 249585; 245.04642 8728073; 245.0907 68179; 245.25031 28167; 245.46955 381032; 245.6802 8048; 245.78815 1347572; 246.18908 133564; 246.30302 4617401; 246.42898 1312074; 246.89198 2930301; 247.11528 510529; 247.59925 515340; 247.63052 3722; 247.67955 1777679; 247.72355 25056; 247.80214 65500; 247.95891 2329242; 248.05898 7557124; 248.13817 3852205; 248.33975 91296; 248.39668 24309; 248.95839 1266148; 249.06726 2131843; 249.22439 1756682; 249.47294 17180; 249.94187 47454; 249.96003 598067; 250.0066 3210088; 250.64078 58392; 250.9888 206120; 250.99308 23282; 251.16102 1727618; 251.21175 137460; 251.24888 33681; 251.26032 1228421; 251.36379 34822; 251.63537 78637; 251.73954 205933; 251.91336 16951; 252.08913 7917; 252.11909 13873; 252.56918 19846; 252.66545 41105; 252.7071 13152085; 252.95453 2078243; 252.9814 2183452; 253.08859 100623; 253.24506 3238871; 253.76649 1488021; 253.7881 2892084; 254.19835 2618; 254.59841 26204596; 254.71799 38381; 255.02282 20227; 255.40238 1365052; 255.52612 3786; 255.68419 148543; 255.91905 29080; 256.06661 24306; 256.40422 15592; 256.42918 18844385; 256.59995 2760; 256.97072 1906665; 257.49509 1353856; 257.72478 31288; 257.73847 1229; 257.91592 65224; 257.94977 47427; 257.98518 25558077; 258.0315 21356; 258.05747 1920012; 258.4622 23377; 258.7271 26929; 258.84699 10703; 259.04468 23067; 259.08869 20464; 259.12322 7308; 259.21259 24944; 259.30276 4782808; 259.54868 16744; 259.80309 1264214; 260.01394 990236; 260.21274 4746543; 260.58105 6146; 260.75454 75731; 260.75561 23543517; 260.90759 7876; 261.48463 26188; 261.76161 16513; 261.8501 61595; 262.6733 2195341; 262.85231 52378; 262.95313 46472; 263.0187 26872; 263.32996 6919934; 263.46943 7308; 263.66106 27171; 263.79532 5234; 264.07691 6055001; 264.17453 71459; 264.1961 181565; 264.45875 6166; 264.45989 71059; 264.51983 8205; 264.63402 9808; 264.83382 762894; 264.91276 606115; 264.92774 8018; 264.99161 1174348; 265.02561 9519; 265.04682 60450; 265.10854 447069; 265.24574 41538; 265.54742 302297; 265.65026 11922; 265.70512 25262; 265.81179 24763; 266.16543 3844166; 266.21843 1975115; 266.47998 2559785; 266.51913 11427; 266.59467 185966; 266.60464 3743931; 266.75339 6971323; 266.89296 28583; 266.99451 4032; 267.22293 7922861; 267.34929 1408481; 267.92666 20359901; 267.93228 57789; 267.98015 8989599; 268.08882 315610; 268.27778 2516932; 268.40805 3345; 268.44371 52190; 269.13166 25145; 269.17714 62666; 269.21811 138; 269.36361 5431; 269.55114 52597; 269.59581 6011; 269.67521 1925190; 269.86739 21563; 270.03537 3861735; 270.17432 5427874; 270.5097 135; 270.60192 10904; 270.65225 1210512; 270.71791 9085229; 270.82573 28232; 270.92898 7726489; 270.98896 2033387; 271.63655 30690; 271.63979 59082; 271.82915 179656; 272.05231 4512148; 272.15991 8423282; 272.19036 1533; 272.63898 23964; 272.73965 161074; 272.80377 5677097; 272.86601 73497; 273.17037 28569; 273.22941 2091129; 273.54739 2162; 273.78472 42548; 273.87652 670159; 274.50796 5892; 274.64904 47723; 274.71362 3544748; 275.00641 969; 275.09938 1122780; 275.207 48382; 275.31191 143762; 275.54907 1028894; 275.90249 1058534; 276.19826 8699; 276.26768 673527; 276.88566 3918100; 276.89839 7559302; 277.13523 8301; 277.34859 43881; 277.51529 29814; 277.70373 3316268; 277.72073 67934; 277.72749 72193; 277.789 479502; 277.85529 1554422; 277.87648 90412; 277.91049 23168; 277.95804 90980; 278.04533 6821095; 278.54542 69430; 279.06887 36787; 279.42641 10767; 279.44184 971068; 279.47005 23015; 279.61147 16546; 279.81443 2377952; 280.0689 1658924; 280.21121 39211; 280.84842 21659865; 281.06616 1085488; 281.29194 35187; 281.4448 5018; 281.46484 1200606; 281.86021 63026; 281.96211 47903; 281.97022 77678; 282.21862 2351; 282.25694 4009; 282.32156 52436; 282.35535 24564; 282.37022 66166; 282.48393 2061934; 282.63683 13433880; 282.81514 632613; 282.83088 77435; 283.00256 67266; 283.03562 18159151; 283.19008 737941; 283.53893 45589; 283.6459 21717; 283.71207 37720; 283.84503 1665267; 283.85088 1991679; 283.85259 67339; 283.89541 1416515; 284.06131 43488; 284.174 5352; 284.26379 1757174; 284.39905 8435492; 284.45545 24416; 284.45673 40245; 284.94723 75326; 285.33064 1651939; 285.37501 16097; 285.48427 8778508; 285.55851 1884415; 285.60438 386713; 285.80985 47808; 286.05843 1258; 286.21457 1605242; 286.4956 25948; 286.64917 34620; 286.94642 16627070; 287.20708 43474; 287.23535 55709; 287.47616 32640; 287.77285 73163; 287.8368 16394; 287.91662 4322763; 288.1642 150091; 288.18133 172021; 288.37764 20111; 288.45229 33559; 288.76107 22504; 288.8124 116508; 289.24256 9560; 289.60843 3071794; 289.61091 10305822; 290.03765 685387; 290.19018 397729; 290.28366 62718; 290.36061 27961; 290.45537 137625; 290.51915 38190; 290.63442 22547; 290.96298 1488878; 291.15087 12816; 291.47012 10784350; 291.59335 20482; 291.63323 107523; 291.6404 1687186; 291.66179 78360; 291.72003 15157; 291.83576 15290; 291.92804 15766; 291.9378 6209435; 292.02343 10680579; 292.13752 5969; 292.36705 21561; 292.47406 1574; 292.60333 48012; 292.76644 657381; 292.76751 76401; 292.96786 3472315; 293.36874 942743; 293.57936 169058; 294.42149 6473102; 294.64029 109870; 294.92352 4761; 295.23139 3062202; 295.52524 8788; 295.90992 70367; 295.98651 730916; 296.03721 340863; 296.04382 214315; 296.04907 77416; 296.07272 1367673; 296.20969 422615; 296.27605 76407; 296.4588 6854314; 296.47739 5351141; 296.8035 185745; 296.94994 237; 296.97954 7388; 297.25498 29951; 297.44793 26105; 297.45728 3409409; 298.00415 22334; 298.06735 28279; 298.11455 6779870; 298.23658 8613; 298.3196 54512; 298.69621 522929; 298.81778 1448733; 298.86704 4637389; 299.07411 2588; 299.12032 933; 299.34078 1348668; 299.38326 7863; 299.52513 3434644; 299.53061 4275; 299.57921 194082; 299.58734 70351; 299.64733 361493; 299.73841 8451396; 299.75645 18833; 299.77993 2161375; 299.90338 1175847; 300.06962 673458; 300.09207 40878; 300.2556 21646; 300.4629 729582; 300.59153 66513; 300.70695 15826; 300.75628 21006; 301.02611 34674; 301.18357 2911709; 301.27441 989; 301.31612 9749689; 301.6748 2124498; 301.7125 1939949; 302.04248 6491162; 302.099 694; 302.2091 660235; 302.29389 24688; 302.32268 1580935; 302.37672 15968316; 302.47996 8662; 302.55681 36739; 303.05641 28371; 303.1888 37313; 303.45901 68798; 304.06477 1813393; 304.1465 16840; 304.40731 5763426; 304.64448 6174505; 304.72479 77846; 304.85543 4143290; 304.92666 1251663; 304.98632 79976; 305.04888 71432; 305.31185 16599; 305.40422 23917; 305.93005 35480; 305.97012 40154; 306.10767 4613987; 306.49524 1748; 306.70409 24199; 307.48707 1303; 307.64096 4956; 307.7104 814; 307.78527 22777; 307.78688 7431940; 307.90099 1925914; 308.15396 157728; 308.37933 6887407; 308.492 7088809; 308.67367 1714049; 309.09588 3560127; 309.12205 6716; 309.2176 5030; 309.37287 25283; 309.4705 1939842; 309.47455 47027; 309.78733 675970; 309.86412 21985; 309.87565 2722298; 309.88703 48644; 309.99028 73627; 310.13437 59093; 310.25614 2; 310.57086 1620217; 310.68144 22531; 310.74209 1367474; 311.71232 44697; 311.79562 83825; 312.41071 59287; 312.73011 689328; 312.86077 66928; 313.17813 7094; 313.2054 803780; 313.67494 5199454; 313.91446 7993258; 313.97344 70839; 314.07244 7093078; 314.24416 11720; 314.51306 157589; 314.51779 6526136; 314.6263 60000; 314.6537 584750; 314.89093 4813313; 314.89284 49498; 315.4556 27228; 315.45964 79657; 315.49513 113169; 315.78393 10516; 316.20037 294290; 316.27526 596660; 316.4117 77731; 316.51614 47679; 316.72842 59756; 317.50574 4719270; 318.18414 167765; 318.31709 3470178; 318.45382 18047; 318.70092 61353; 318.79758 5850588; 318.87816 7590; 318.9148 16764; 319.03917 4109; 319.07484 4660098; 319.83795 8212; 319.86366 5313; 319.89509 78273; 320.18415 23607; 320.62325 28691; 320.7094 4964; 321.12387 51241; 321.12758 955745; 321.24385 52141; 321.60378 21553; 322.05146 2158; 322.07839 284910; 322.09364 50611; 322.54665 1652000; 322.59216 1016618; 322.79359 198423; 322.8195 21549063; 323.36224 7581; 323.54652 1792503; 323.90947 170916; 323.95064 73331; 323.97027 37095; 324.20277 15752; 324.33032 160512; 324.39821 5242; 324.44155 50202; 324.53945 1588; 324.54547 934; 324.82283 9529760; 324.8753 8416567; 324.91281 6957822; 325.03886 78349; 325.65584 437953; 325.83835 1211064; 326.17365 238600; 326.24429 2404536; 326.29932 51739; 326.43263 78955; 327.396 3835367; 327.41112 74816; 327.48495 38376; 327.49281 469411; 327.80782 89129; 328.10231 671384; 328.21575 7628912; 328.34611 1004696; 328.39631 1081; 328.47031 40012; 328.67019 70018; 328.99711 6562096; 329.04573 21071; 329.16605 1477049; 329.26905 28413; 329.51688 9693; 329.97643 5487387; 330.01648 59231; 330.36435 1085579; 330.50441 1680190; 330.59674 808861; 330.90207 161925; 330.90683 8251626; 330.91771 54611; 330.98172 10146139; 331.12011 98769; 331.26278 1739963; 331.70064 8085654; 332.09599 1141152; 332.1934 252486; 332.25035 163715; 332.4304 25787; 332.71656 1291245; 332.95984 1637904; 333.04624 75380; 333.13917 885772; 333.18932 17079; 333.22799 630908; 333.35868 545669; 333.54008 629463; 333.7234 23031; 333.88168 1888; 333.97222 1304085; 334.08694 32266; 334.38595 1119786; 334.49378 818509; 334.70428 6919; 334.80741 6235; 334.83342 58807; 334.86681 2907718; 334.89068 8699996; 334.98741 3924383; 335.07547 157096; 335.25253 12476; 335.32635 2958517; 335.40498 25432; 335.70739 3576541; 335.87109 19657; 336.02793 73431; 336.13399 77740; 336.29597 26975; 336.53122 135348; 337.17673 192665; 337.38126 382369; 337.42374 3961; 337.46608 76983; 337.66674 32129; 337.94951 79733; 338.067 47250; 338.10237 61327; 338.46558 8190508; 338.55398 57089; 338.79411 5089197; 339.02372 112948; 339.08814 7483965; 339.19989 1677516; 339.20724 4466; 339.38679 67700; 339.39342 7403; 339.61481 19867; 339.66549 27285; 340.20235 41001; 340.29505 5390227; 340.56396 29214; 340.58994 239; 340.78534 19955; 341.90307 22319; 341.96668 10683; 342.23888 24145; 342.32762 18830; 342.54013 66974; 342.59332 77262; 342.65796 54452; 342.72612 197719; 342.92978 1794063; 343.08825 3552; 343.17792 803115; 343.35734 1336857; 343.53776 57006; 343.55188 12639; 343.63671 27891380; 343.95382 753256; 343.96723 1808; 344.10467 61988; 344.16777 184147; 344.48782 2977005; 345.02564 24596; 345.07967 7342387; 345.14476 27672993; 345.2019 5378778; 345.53984 43085; 345.60058 1584740; 345.61777 491783; 345.63606 1471108; 346.10565 179976; 346.15406 3602650; 346.17146 4194462; 346.1742 10393; 346.69991 9853; 346.90402 31964; 346.92129 45190; 346.92915 35564; 347.15797 42473; 347.53203 5764792; 347.9156 663; 348.10738 1007291; 348.16244 9723; 348.21752 13485190; 348.30885 269592; 348.31054 9788327; 348.3387 23660; 348.47742 34519; 348.49658 419933; 348.6935 1730484; 348.9366 5530; 349.81586 667; 350.14742 13392; 350.42743 6822124; 350.49218 11281696; 350.56504 763391; 351.23235 302349; 351.24258 69660; 351.25377 32955; 351.26366 129410; 351.42734 24889; 351.44456 182347; 351.8361 843; 352.05555 62276; 352.09184 4264645; 352.18997 944249; 352.35044 11335500; 352.48015 107383; 352.55009 3897; 352.66523 110256; 352.68226 41057; 352.71887 1758276; 353.27187 29110; 353.49651 62489; 353.64487 6025; 354.21677 11684835; 354.21696 754199; 354.66411 17921; 355.04229 78162; 355.06486 9304400; 355.35451 2532265; 355.36726 7617; 355.42794 183890; 355.59677 30217; 355.74053 2922662; 355.78541 9359; 355.90011 143810; 356.13786 19104; 356.15004 27630; 356.27825 17641779; 356.77792 1360982; 357.46995 29656; 357.48398 1060103; 357.914 4908551; 358.10182 860905; 358.25402 3298108; 358.27425 6459335; 358.44452 7510189; 358.46824 27408; 358.4917 8284; 358.83241 20898; 358.97803 1293869; 359.03594 2335; 359.0579 25177; 359.14817 12306; 359.29415 7188; 359.35413 369576; 359.64512 1412175; 359.94107 60568; 360.02585 9486; 360.03601 77955; 360.07366 1552193; 360.15937 38415; 360.74884 2559; 361.11612 3005138; 361.20791 4493973; 361.30136 4734820; 361.36661 37277; 361.51938 39891; 361.55444 8213449; 361.58584 2292877; 361.69742 2347; 361.82551 10305; 362.08685 11386; 363.06593 3387017; 363.08544 27038; 363.22674 590155; 363.23946 6632500; 363.26729 22550; 363.33594 23927; 363.68217 2387418; 363.89125 1332431; 364.0178 9968818; 364.45087 8406041; 364.81156 76810; 364.81359 9321163; 365.53078 68580; 365.61396 22532037; 365.7701 3425286; 365.93485 10509; 365.94546 4795096; 366.1037 3370; 366.69452 6144; 367.06024 6692276; 367.36703 72859; 367.41586 3141007; 367.42878 2849315; 367.53006 11785; 367.79471 19730012; 367.92039 133212; 367.98917 33653; 368.02587 71419; 368.18278 71492; 368.37729 1515735; 368.43098 79952; 368.50146 5192967; 368.56438 793077; 368.82454 57611; 369.21578 3093579; 369.32461 842895; 369.53565 1227224; 369.66423 4833; 369.70911 3177160; 370.01755 1611877; 370.16838 4554; 370.24192 1817507; 370.24428 647894; 370.4273 77877; 370.64518 1537683; 370.77195 3513176; 370.7858 28267852; 370.91521 184414; 370.99478 3942409; 371.20221 20482; 371.47589 20019853; 371.52998 1448079; 371.67865 9496915; 372.02333 4072; 372.11882 31070; 372.12987 5475559; 372.13118 6811537; 372.13949 35110; 372.14413 7149971; 372.40467 28868; 372.41444 94691; 372.69198 54879; 372.70573 750271; 372.80821 2171; 372.86085 37999; 372.93062 5213; 373.19629 3947308; 373.25831 7494042; 373.26629 2315902; 373.31173 34831; 373.52115 505855; 373.71443 89813; 373.78312 3203257; 373.83475 20061; 373.96907 107004; 373.98942 12; 374.10346 21972; 374.64546 633119; 374.86968 1269361; 375.52352 6980026; 375.55318 67113; 375.66475 3845687; 376.2444 56180; 376.44301 47233; 376.63324 222875; 376.73578 5016449; 376.74479 33719; 377.01325 6878207; 377.06118 60244; 377.54044 69179; 377.71281 553969; 377.78592 4915; 378.11033 2668434; 378.27407 7589478; 378.48558 18546; 379.11678 160961; 379.33712 31350; 379.43364 56388; 379.53793 67519; 379.54594 1882091; 379.87135 96636; 380.14424 26445; 380.28031 42076; 381.02984 6876; 381.27603 71700; 381.31392 1677221; 381.55824 19225; 382.31753 61814; 382.36695 70231; 382.5064 6977; 382.73854 28296; 383.01303 4528679; 383.01992 8208; 383.02853 74722; 383.04602 74856; 383.10767 267259; 383.16724 2387; 383.45856 47143; 383.63765 41864; 383.6926 23817; 384.08622 5634; 384.24338 177453; 384.27669 73607; 384.29279 37393; 384.30249 48447; 384.99402 562233; 385.52797 1404748; 385.79573 47121; 385.93712 284724; 385.99397 47465; 386.00803 6581025; 386.01144 20044; 386.03276 8693101; 386.09465 20858; 386.29685 47042; 386.78837 6180686; 386.79589 21725; 387.1326 4576648; 387.1727 87766; 387.19228 26210; 387.20904 25509; 387.22041 1214607; 387.46187 33428; 387.70032 71810; 387.83305 5917; 387.84791 70113; 387.92723 191066; 388.31514 3837040; 388.34255 20097; 388.46982 6897663; 388.50164 130631; 388.88202 60383; 388.89227 27254; 389.13497 1454; 389.2641 1753688; 389.32083 1118875; 389.34637 62674; 389.58236 73866; 389.6707 16187; 389.74925 9355; 389.93536 6213; 389.9554 63538; 390.00507 461700; 390.88185 99890; 391.15343 20704; 391.16066 28911; 391.59658 437434; 391.72409 461194; 392.01274 3846990; 392.18515 22003; 392.19549 93061; 392.19596 903; 392.34205 22529; 392.59161 3275; 392.59846 474044; 392.62526 67612; 392.80704 3691; 392.99228 18191; 393.29127 534682; 393.49955 16834719; 393.5313 502940; 393.56206 500014; 393.91882 912556; 394.08985 3333416; 394.09092 41224; 394.10723 289004; 394.30332 932375; 394.56197 828900; 394.56334 8687292; 394.6263 10530; 394.80729 65720; 394.94378 3210; 394.94433 1278; 395.20703 43895; 395.39588 4357750; 395.59894 25039; 395.69504 56650; 395.78097 5676; 395.87518 5082; 395.9766 16644; 396.2714 22125; 396.40065 714378; 396.54122 350889; 396.58857 1950; 396.63738 893223; 397.14051 29787; 397.20321 4498636; 397.3471 23391; 397.41029 67481; 397.41664 1930404; 397.58403 37205; 398.30857 1577207; 398.36529 448000; 398.53811 604309; 398.64748 4704416; 398.99838 77844; 399.46239 63135; 399.52765 27920; 399.62506 35662; 399.86768 1983238; 400.08591 142750; 400.56723 8585195; 400.64438 513318; 401.00763 1962684; 401.06708 4606068; 401.3976 3906; 401.78341 7284303; 401.95791 4556386; 402.04143 37025; 402.12676 14142516; 402.19359 53445; 402.21164 48933; 402.42565 4926; 402.56431 7560; 402.82732 129625; 402.90653 32274; 402.91814 50152; 403.13199 20555; 403.96152 7156; 404.02544 13643; 404.14349 29279; 404.44721 100681; 404.84137 24518; 404.89204 36142; 404.94708 154599; 405.31654 498421; 405.32269 29201; 405.3288 2609849; 405.58723 30265; 405.7891 47975; 405.98435 3255503; 406.22613 1350849; 406.24834 11002; 406.4338 1753164; 406.43506 57756; 406.62218 3712852; 406.71947 5678095; 406.81856 806521; 407.03235 121896; 407.12933 1871813; 407.25091 2944526; 407.58939 16524; 407.77969 34153; 407.77979 8670; 407.86472 75416; 407.94439 8707; 408.57789 86878; 408.60374 68558; 408.75959 17759; 409.00605 49830; 409.31025 17186; 409.4533 74726; 409.57813 1688250; 409.63651 927353; 409.66551 81036; 409.70556 1773590; 409.85348 35424; 409.94059 1913541; 410.00448 35135; 410.17047 729703; 410.18617 17585; 410.37782 15561; 410.38598 3860590; 410.73642 1357417; 410.82163 26535; 411.30459 1797508; 411.52364 100801; 411.69722 60866; 412.05274 59491; 412.2 58904; 412.21949 194959; 412.51733 6431722; 412.52777 1372119; 412.94956 27006; 412.97648 2819362; 413.22328 22443; 413.47111 112157; 413.50592 313351; 413.56965 11607468; 413.57688 79074; 413.7236 28511; 413.91911 5451642; 413.99856 19113664; 414.17687 4949269; 414.45212 2553595; 415.09918 753371; 415.10053 961504; 415.11989 614152; 415.43694 162502; 415.57464 8163; 415.73538 3070; 415.83763 1134; 416.01193 1868182; 416.66823 47162; 416.70855 22464; 416.85701 66812; 416.88422 53258; 417.15269 417; 417.46948 962912; 417.4865 2851; 418.23453 40670; 418.41573 19553895; 418.50594 161147; 419.0247 3607649; 419.18375 15643; 419.53533 5914; 419.78701 387250; 419.80036 15165; 419.80672 2291997; 419.80791 123321; 420.47305 53372; 420.49761 3249489; 420.523 6004; 420.7972 21006206; 421.00714 9133; 421.65932 4942363; 421.68976 296628; 421.72639 28109; 421.78259 29776; 421.90825 47871; 422.04087 915235; 422.33477 6830763; 422.69743 26183; 422.80866 66559; 422.86931 60487; 422.96778 9515807; 422.98031 857533; 423.03601 4343369; 423.06496 3783181; 423.08324 3775472; 423.50489 22919; 423.74791 4246439; 423.84769 357629; 424.27337 1538784; 424.33358 6129; 424.35981 1739069; 424.54664 29261; 424.78995 16999; 424.81883 31826; 424.87524 42174; 424.94396 76149; 425.01672 74267; 425.33452 1480217; 425.51231 1521; 426.44617 28050; 426.90767 1385609; 427.0819 63734; 427.11901 1370085; 427.15854 1536; 427.27927 68469; 427.69588 27557; 427.88944 5730; 428.12101 74145; 428.17685 85950; 428.18048 773495; 428.23033 5136; 428.31693 154488; 428.48548 54465; 428.52731 7399; 428.56837 74649; 428.85165 26328; 429.35767 171574; 429.40147 41735; 429.63548 50941; 430.07788 1841318; 430.71911 27520; 430.7858 8828422; 430.83716 1102; 430.93121 22136390; 430.93699 7563893; 431.12515 2415401; 431.26132 29516769; 431.36731 52637; 431.37885 12883; 431.40381 22617; 431.51165 2481; 431.71979 631196; 432.54355 103066; 432.66627 36748; 432.81836 46911; 432.88223 5602171; 432.88658 29056; 433.016 1371; 433.4647 4500; 434.24998 6461; 434.25324 380270; 434.46745 601050; 434.47321 3321299; 434.48232 23600; 434.67613 884897; 434.8 4521; 434.82659 322321; 435.29128 4474; 435.87913 937938; 436.02657 40200; 436.8637 5552; 436.95535 84780; 436.98828 548531; 437.20441 8490477; 437.29532 4134719; 437.62282 1066608; 437.66034 1596732; 437.69423 43072; 438.04994 94076; 438.13083 5930; 438.46134 970341; 438.56577 63542; 438.57875 4605; 438.86331 52196; 439.09537 64704; 439.34698 27271; 439.35313 9355242; 439.38613 79055; 439.5231 19056; 439.55771 2591505; 439.62941 287806; 439.97738 10763; 440.30753 21958; 440.30878 41935; 440.32092 9580; 440.37423 54556; 440.85455 47608; 440.99809 8330965; 441.09484 151175; 441.10472 13900; 441.36587 17375; 441.9752 8637119; 442.56076 41983; 442.67634 9684515; 442.74826 5499728; 442.80003 52810; 442.88475 72603; 443.01705 1032571; 443.6373 345656; 444.25292 22637; 444.58064 749683; 445.08396 7732; 445.16882 76794; 445.18752 596265; 445.22399 70460; 445.2674 130385; 445.29411 1621857; 445.33408 8475219; 445.59282 12938; 445.60215 4281792; 445.69554 4395994; 445.87251 455138; 446.07408 53769; 446.09037 43473; 446.1671 51177; 446.23182 27796; 446.42273 641370; 446.7611 4999100; 446.93695 327499; 447.47095 1771868; 447.5166 21141; 447.72519 1966423; 447.75079 8644410; 447.88203 14712; 447.93898 933989; 448.09945 123719; 448.27762 308334; 448.31803 984216; 448.55371 70052; 448.84709 193773; 448.91657 914; 449.20038 4651; 449.29174 76130; 449.36062 78202; 449.50009 65102; 449.77448 43922; 450.06572 1343254; 450.32115 50945; 450.45758 1140742; 450.69506 5445918; 450.87683 44051; 450.98215 63947; 451.27787 2538544; 451.35075 550813; 451.48077 9670; 451.69349 749; 451.85182 76329; 451.9862 9228996; 452.08284 42390; 452.24383 51885; 452.33195 98674; 452.38194 1763618; 452.47092 23752; 452.6282 63078; 452.65391 993376; 452.79864 4390; 452.9001 36544; 453.22588 996605; 453.5169 188784; 453.72565 37448; 454.08518 146566; 454.50113 167431; 454.66276 27368; 455.10484 7963; 455.15121 35541; 455.2045 950751; 455.40743 329761; 455.74356 9373065; 455.87862 67708; 456.21034 1193195; 456.31357 3908210; 456.51459 53890; 457.04205 56339; 457.10557 5015; 457.74954 1220632; 458.34954 24374; 458.48501 67417; 458.52498 1121474; 458.70872 5298676; 458.79929 41608; 458.81201 263323; 458.83449 37586; 458.86234 54255; 459.01925 4145; 459.02889 35569; 459.03113 975476; 459.20966 2901; 459.25927 13322737; 459.52974 29614; 459.86701 20924; 459.87725 3685573; 459.8924 29681; 459.97594 6118303; 460.32642 1343849; 460.48815 80; 460.54991 7732046; 460.74805 27804; 460.89768 56576; 460.98412 595899; 461.01575 40370; 461.30288 1245165; 461.41231 71823; 461.61081 3659474; 461.62934 437724; 461.71059 27410; 462.03912 3897286; 462.10008 20260; 462.31431 39189; 462.56267 3920; 462.62397 1261883; 462.82102 5020; 462.96401 1106; 463.13562 5500; 463.17375 38207; 463.44743 64885; 463.57231 9288044; 464.32683 29144; 464.47303 32790; 464.51594 20774; 464.80032 413129; 464.80783 53497; 464.86761 59114; 464.92367 22728; 465.30795 3129555; 465.5226 2605144; 465.52889 22178714; 465.81443 16456; 465.87569 638011; 466.06005 56482; 466.23093 70380; 466.30985 28874; 466.32796 147709; 466.39134 1545086; 466.65073 43128; 466.67578 74766; 466.95629 1185166; 467.06081 136078; 467.529 1817879; 467.53411 6276; 467.63625 66365; 467.72675 22641; 467.90926 7958745; 468.02905 8296002; 468.08271 26177; 468.10999 25324368; 468.26398 5730; 468.58425 73577; 468.63129 47810; 468.8009 900327; 468.81377 197812; 468.81526 4073604; 468.85586 442822; 469.07962 4636; 469.32915 8307; 469.35453 52108; 469.35662 26992; 469.49661 69195; 469.65392 6558964; 469.81644 233533; 470.10825 47787; 470.24417 28340; 470.26175 2948; 470.45279 9292898; 470.63385 4644; 471.14351 28360; 471.29171 1335736; 471.35133 1114; 471.43958 34157; 471.44241 46119; 471.67017 22303164; 471.99624 29456; 472.52401 42340; 472.98224 9037149; 473.24941 10014; 473.76647 32206; 473.88071 8542; 474.49287 4578; 474.50826 19400; 474.51216 825908; 474.57385 624912; 474.78362 89594; 474.82226 211459; 474.84383 1466257; 474.97241 2015; 475.10888 22589; 475.18182 2766; 475.23274 72531; 475.78166 35777; 476.21832 59003; 476.33686 1878636; 476.76891 3310103; 476.92316 1880874; 477.13804 862519; 477.16755 11225; 477.20459 3126436; 477.74754 8597; 477.76404 4170999; 477.77014 566216; 477.95933 24111; 478.12205 1248409; 478.21623 435686; 478.30829 3101514; 478.3088 912868; 478.4216 1511019; 478.57449 4843398; 478.59149 45087; 478.64788 24174; 478.87424 8353; 479.12655 4006; 479.75605 53366; 479.77961 28312543; 479.89431 477558; 480.07876 4859151; 480.18193 266731; 480.41238 50607; 480.69589 38174; 480.97385 1156; 481.19169 26157; 481.36446 5531616; 481.56727 44201; 481.57148 3530180; 482.46142 14912; 482.69578 1410022; 483.16893 29634; 483.18855 1868441; 483.19391 1101286; 483.2376 4012; 483.26349 412364; 483.26809 679; 483.32074 9783461; 483.61297 23639; 483.61583 11198; 483.92941 73092; 484.09698 7079; 484.17467 1253783; 484.70062 64746; 485.28347 8682401; 485.28633 882; 485.38029 25637; 485.84386 23704; 485.87907 51143; 485.9116 177855; 485.92766 1284121; 486.045 43121; 486.06956 13393135; 486.0708 7230045; 486.1818 37026; 486.47536 40941; 486.56587 1295848; 486.57379 48689; 486.9111 23172098; 486.91658 1538519; 487.19726 51558; 487.24431 339124; 487.31904 1948965; 487.90003 51397; 488.18295 4133019; 488.29459 23530; 488.30401 75753; 488.31701 119575; 488.3241 25503; 488.52874 22415570; 488.55715 474354; 488.56547 23209; 488.60836 73987; 489.04477 1745; 489.35896 23024001; 489.49283 24010; 489.50268 119486; 489.53758 1902915; 489.54018 1235; 489.71823 8581362; 489.8476 13161312; 489.9084 8209; 490.26457 7525; 490.27299 50741; 490.31179 42076; 490.33294 1450780; 490.73458 45706; 490.96387 149228; 491.1873 1484806; 491.26099 1587912; 491.50919 22286; 491.59691 70723; 491.66855 29160; 491.749 53255; 492.16487 14; 492.26051 175319; 492.31359 375113; 492.33582 5939849; 492.39057 5400807; 492.61922 908401; 492.80231 78297; 492.87438 29302; 492.89147 7117177; 493.26814 649245; 493.38131 11733; 493.4998 16877651; 493.58321 6483724; 493.65429 25184407; 493.67031 1230187; 493.69033 72069; 494.08622 1593434; 494.15801 831179; 494.46555 33389; 494.46795 37621; 494.63867 25649955; 494.66519 7526; 494.97167 4102; 495.05188 3747747; 495.06051 48406; 495.06318 60865; 495.07788 15896; 495.08021 29531; 495.18712 18155; 495.48562 1434563; 495.67617 7268247; 495.82851 2326137; 496.04382 343; 496.08879 40957; 496.19105 1542486; 496.25332 1042835; 496.40069 83288; 496.70274 3623; 496.86228 42941; 497.18811 190969; 497.25875 4562534; 497.27058 20661450; 497.62999 1777299; 497.81718 9340863; 497.90444 20085129; 498.37678 42873; 498.44344 190414; 498.8797 81635; 499.19013 4588957; 499.39569 4730660; 499.52443 75283; 499.60661 4307; 499.75149 5327; 499.78639 632; 499.85332 30072; 499.85413 182; 499.88938 4761 +<1, 6>: 0.41366 471981; 0.64572 113429; 0.99012 66710; 1.16043 8931905; 1.32265 1505366; 1.62435 1884683; 1.66024 43719; 1.68286 1047321; 1.87116 78420; 2.10314 173707; 2.21149 37429; 2.33295 4328551; 2.63076 75477; 2.64426 31139; 2.81088 1595363; 2.92861 3170876; 2.92975 5121; 3.20763 22609; 3.33455 8835; 3.34868 10928547; 3.54965 1307; 3.57503 16162249; 3.6809 1484325; 3.89174 96158; 4.01918 198993; 4.13948 11753; 4.19694 34808; 4.37629 774985; 4.95866 39333; 4.97519 23233; 5.28076 101450; 5.40443 20171; 5.6836 33630; 5.77108 451433; 6.17045 49493; 6.20623 39910; 6.3546 8577096; 6.53195 24577; 6.75355 75546; 6.94446 54133; 7.07856 4501352; 7.53449 25956; 7.61846 2561730; 7.93617 5653; 8.07218 43045; 8.15823 8662876; 8.31324 71982; 8.50602 27835; 8.86268 3778500; 9.29742 106288; 9.47443 50599; 9.68646 1087456; 9.79942 1132; 9.83117 7368; 10.03928 26350; 10.09475 79452; 10.11551 58931; 10.14758 22151; 10.64716 25845; 11.23227 27950; 11.23926 6866; 11.29092 1762; 11.41917 5782653; 11.45838 507010; 11.48952 6611; 11.5794 75728; 11.61006 20902; 12.01957 56258; 12.15408 675973; 12.45778 35997; 12.59832 6954688; 12.71697 126328; 13.08234 1977107; 13.33442 33660; 13.42862 40780; 13.8193 67409; 13.84646 2359981; 14.22727 14876594; 14.23249 8414; 14.38262 23260; 14.44908 944761; 14.58931 540792; 14.6202 188647; 14.82376 4670; 14.94089 66771; 15.04223 74420; 15.19296 4021; 15.30662 757414; 15.31389 683918; 15.4118 2188016; 15.46604 137346; 15.76637 1633747; 16.12994 1407373; 16.24239 6021; 16.2663 679972; 16.433 36000; 16.55509 41134; 16.56031 24220; 16.7624 591124; 16.8344 31603; 16.89692 9311; 16.92707 6056; 17.00976 5833; 17.13621 30442; 17.60866 612986; 17.69801 57309; 17.74414 3961390; 17.84873 1210124; 17.86085 21275; 17.86397 1972783; 17.93277 1336904; 18.04883 998422; 18.13895 38869; 18.22936 1818720; 18.37966 649996; 18.40975 942579; 18.65107 133245; 18.67114 75831; 18.8242 173; 18.83055 78359; 18.91729 2088543; 19.04408 1755057; 19.06716 1269584; 19.09278 218652; 19.53623 42843; 19.60696 7146; 19.6691 16579; 19.68569 20573; 19.9698 27787; 20.00488 77748; 20.16349 107130; 20.2737 635252; 20.34591 150554; 20.4052 978353; 20.61717 4207836; 20.6666 27383; 20.70988 169110; 20.96716 9285763; 21.04198 24400; 21.11865 212331; 21.20948 1368054; 21.2918 941093; 21.31006 22010; 21.31913 5121481; 21.59561 12956596; 21.83388 25269; 22.10534 74637; 22.49015 3657755; 23.06491 5790357; 23.30638 5379608; 23.4389 2544215; 23.8318 63218; 23.87935 49958; 23.93621 1335; 24.14864 4871979; 24.16132 11387763; 24.33975 7185; 24.48746 62929; 24.58316 2847267; 24.69788 1959993; 24.85541 17469330; 25.20175 430309; 25.40463 1765265; 25.4646 8060; 26.09787 836863; 26.10086 62253; 26.26699 156271; 26.40392 7136811; 26.44799 23177; 26.64741 75104; 26.66579 7229; 26.84953 26417; 27.11059 399; 27.36627 3208409; 27.50168 8613689; 27.78222 6460; 27.81654 3959341; 28.15094 3954773; 28.26576 68737; 28.35864 51370; 28.62759 4705930; 28.68627 3562311; 28.77481 1274724; 28.79673 88063; 29.27602 10502; 29.31593 67094; 29.37574 25870; 30.3913 62290; 30.4308 68261; 30.66399 67568; 30.93667 187006; 30.94415 1448917; 31.0549 1934337; 31.0667 151964; 31.09943 2402; 31.15222 1757189; 31.19265 2748507; 31.26325 61713; 31.76736 9754919; 31.80969 11683; 31.99837 50258; 32.10458 42738; 32.36091 1178931; 32.8096 51158; 33.1284 841651; 33.15791 28592966; 33.40342 15660; 33.52692 611797; 33.69095 616674; 33.72414 1967356; 33.73269 56782; 33.85229 40796; 33.86294 15499; 34.23219 3861800; 34.36836 9376; 34.3953 3619084; 34.42221 4895211; 34.54215 8867373; 34.55371 664257; 34.83055 52756; 34.91116 54443; 35.09066 7630245; 35.09434 9177243; 36.1881 26389; 36.4348 5211; 36.46764 1268591; 36.50859 624959; 36.5635 27782; 37.12255 349651; 37.16258 24537; 37.5138 27212; 37.54856 148961; 37.78642 487949; 37.96372 74557; 38.10797 8177241; 38.41888 431171; 38.56784 32217; 38.69343 21243; 38.80535 8935; 38.92213 6633192; 39.06073 6650; 39.28228 1481784; 39.80924 65382; 39.84221 6353; 39.8602 34230; 39.8799 47238; 39.97913 370705; 40.28122 24020; 40.4847 46990; 40.53715 1253; 40.67988 21405; 40.69339 2249431; 40.75148 969225; 41.13136 32662; 41.51405 176092; 41.58027 4236516; 41.98396 34382; 42.10435 6599; 42.50055 35229; 42.90629 19683; 43.09343 9947823; 43.26231 8040975; 43.62536 49948; 43.67943 74890; 43.71338 1210548; 43.73101 78499; 43.80172 4665863; 43.87816 8366578; 44.05155 33315; 44.10605 1765664; 44.40606 900; 44.4779 23783; 44.60356 37691; 44.72396 1954573; 44.73388 212848; 45.11009 6755; 45.24568 2362; 45.30661 995031; 45.33991 76039; 45.35427 572; 46.04474 1582787; 46.13043 2392550; 46.16009 472471; 46.30732 2788; 46.72501 150619; 46.95803 1270764; 47.07364 1978282; 47.1314 49893; 47.145 64257; 47.32626 1286031; 47.36476 51155; 47.67097 31381; 48.11658 24993; 48.33964 1787110; 48.41687 861659; 48.4382 28798; 48.5572 75606; 48.61395 118; 48.90995 24923; 48.92929 5076; 49.03138 8965090; 49.13414 123412; 49.45637 302122; 49.49088 2766485; 49.64036 481464; 49.67666 104002; 49.99238 1229580; 50.06979 1824889; 50.32306 63224; 50.45107 1568; 50.71995 3233; 50.76277 4385; 51.32898 27007; 51.44474 55081; 51.71837 2685192; 51.76485 3836658; 51.96322 62292; 52.10771 2840998; 52.12813 2555835; 52.18477 34548; 52.44651 25770; 52.55066 3926; 52.9219 15812; 53.15718 23422; 53.17854 6513; 53.31072 4514576; 53.48408 106628; 53.71045 21910; 53.92834 14432; 53.94846 1621378; 53.94922 1284884; 54.02317 4236925; 54.0639 17761297; 54.25841 25149; 54.39252 8058845; 54.61681 1088686; 54.62141 2241735; 54.82976 10101; 54.93056 124391; 55.40551 25560; 55.68647 4351; 55.85202 1235995; 56.733 4851820; 56.76586 6712546; 57.27152 1467130; 57.2842 21548; 57.37134 39884; 57.56798 22664; 58.10382 5264; 58.28034 561867; 58.39392 1413309; 58.70208 8830; 58.70463 28050; 58.90058 9168; 59.043 4907266; 59.0928 7732; 59.25889 345032; 59.30131 7627160; 59.55962 91692; 59.58378 65804; 59.68023 8281; 60.03051 2326; 60.80665 177782; 61.21294 2681841; 61.22859 2614135; 61.52121 786061; 61.87503 10489; 61.88771 1634393; 62.483 739217; 62.64799 914030; 63.33601 62194; 63.46195 421100; 63.55674 179293; 64.05062 9545; 64.09501 8870562; 64.54416 602811; 64.59006 35170; 64.63811 9515; 64.63817 1872722; 65.03829 19502; 65.27343 3378832; 65.62896 21106645; 66.22654 2905151; 66.5785 1122; 66.65192 41227; 66.85779 906474; 66.85801 66826; 67.15924 1654470; 67.22539 70200; 67.29905 77625; 67.41705 766137; 67.5928 1667189; 67.86171 9815766; 67.86919 79934; 67.88823 1520; 68.0113 27057; 68.06212 5647204; 68.18216 28859; 68.20424 732355; 68.46148 8529; 68.518 1402100; 69.10106 77210; 69.38075 3006329; 69.38692 6672; 69.87736 43122; 70.06515 16105; 70.42416 1782684; 70.46273 41440; 70.56001 39040; 70.87689 196036; 70.89473 3779; 71.02305 1418235; 71.07599 22803; 71.1324 1613437; 71.19261 2345376; 71.26292 22848; 71.31552 127925; 71.54775 773622; 72.25502 8568821; 72.99808 10365; 73.29576 1131917; 73.38376 23306; 73.44454 372412; 73.50521 62421; 73.57907 5482; 73.60692 5316; 73.72596 4090227; 73.76093 8930247; 73.79398 49141; 73.95747 55861; 74.04305 1987067; 74.71217 74386; 74.72361 1154376; 74.89352 607925; 75.63527 132631; 75.64805 7353701; 75.65117 75322; 75.96106 75258; 76.18565 21567; 76.30915 5656; 77.11627 466; 77.24212 7131; 77.27819 8495; 77.47872 3073; 77.59734 727017; 77.69682 3699625; 77.7622 42990; 77.94704 20251; 78.37803 76121; 78.48633 143313; 78.51424 723122; 78.5444 492131; 78.67498 265512; 78.81383 64776; 78.99215 74506; 79.03566 45185; 79.07957 30494; 79.23127 47380; 79.27156 142456; 79.4481 72052; 79.53398 76587; 79.68677 7264; 79.96607 41047; 80.1807 1361711; 80.32844 1767; 80.33376 51142; 80.52897 40264; 80.5732 3654941; 80.77468 56495; 80.89643 53316; 81.15057 66693; 81.27631 6629; 82.10609 7878435; 82.11306 5002; 82.57956 47308; 82.71976 8642785; 82.94194 8269255; 83.07921 3995394; 83.17955 76904; 83.1903 46683; 83.30208 1321923; 83.57746 16940; 84.13676 8505; 84.32401 173305; 84.66587 1915; 84.75203 6271900; 84.92451 369580; 85.04737 64559; 85.10304 1914689; 85.13856 3045; 85.35241 170871; 85.45787 8960; 85.65826 6428; 86.26994 9468513; 86.51919 12889; 86.82076 355970; 86.9693 24283436; 87.21635 25590; 87.40722 63691; 87.46464 197; 87.6619 1486; 87.75217 740863; 87.80894 763; 88.00096 22822; 88.50208 1339135; 88.60369 55635; 88.70755 7534931; 88.88984 39147; 88.89373 26495; 89.0195 64821; 89.31699 1055843; 89.42483 59371; 89.55185 1882335; 89.66046 80335; 89.68057 1136512; 89.77693 47995; 90.18259 13032; 90.63771 710390; 91.04686 4270; 91.21477 35292; 91.38704 52791; 91.43166 1866523; 91.75478 65252; 91.76479 6352; 91.85753 6545431; 91.90207 9092; 92.15467 9179; 92.47317 97623; 92.52658 50178; 92.7189 895; 92.95936 1070; 93.05861 38575; 94.00212 1655735; 94.17134 86052; 94.18454 821795; 94.35947 1146099; 94.51868 697756; 94.5925 9665756; 94.85367 63100; 95.18553 1453; 95.27239 64766; 95.58684 132; 95.71792 2895737; 95.98316 1127267; 95.98436 13180; 96.18563 1355; 96.26337 22098; 96.26442 74033; 96.30913 51890; 96.83597 3447; 96.86524 64896; 97.01247 43797; 97.34013 992511; 97.59233 3875; 97.67838 6983539; 97.98883 1931212; 97.99235 26991; 98.02898 8145174; 98.75428 296192; 98.77281 78272; 99.16133 1805839; 99.18698 4642226; 99.40351 46914; 99.49925 79823; 99.76402 6924; 99.80384 1442211; 99.81593 42636; 99.99669 5926; 100.10784 6074418; 100.1354 4990939; 100.19884 38780; 100.23696 27923; 100.50988 1496956; 100.64147 57995; 100.7424 30864; 100.80011 8646; 100.94093 125004; 101.04106 503309; 101.08888 911460; 101.27505 30403; 101.9704 68524; 102.00913 1146260; 102.18872 4261439; 102.27898 4276969; 102.33417 4021802; 102.37273 4454722; 102.50242 7760041; 102.83286 56262; 102.89122 3086964; 103.08922 78329; 103.35617 7799; 104.17523 2334731; 104.25796 85770; 104.53664 71299; 104.84613 3416771; 105.0554 18032; 105.08948 43715; 105.24511 50027; 105.49948 3982; 105.53237 9639849; 105.56725 525730; 105.78943 6352; 105.80042 19441; 105.82809 36521; 106.09987 459469; 106.7848 39446; 107.00243 6858; 107.0423 1733022; 107.06122 100714; 107.06323 1286; 107.13962 49085; 107.22976 73158; 107.30869 77330; 107.44218 1596209; 107.45761 102648; 107.47471 84900; 107.53855 185202; 107.56966 51912; 107.87761 27456791; 108.69216 6341436; 108.87868 2148363; 108.91652 3269238; 109.14176 6840; 109.36972 5410; 109.58062 7266492; 109.70381 36569; 109.71682 182175; 109.75193 96768; 109.81708 447223; 110.02841 37405; 110.25144 5616; 110.33309 27944832; 110.41305 57852; 110.45792 8761; 110.49802 27659; 110.60421 66630; 110.93473 73573; 111.17551 56062; 111.27129 974638; 111.33252 35887; 111.86695 63846; 111.93509 3229; 112.1561 848591; 112.1676 5413; 112.29889 70376; 112.72719 1003420; 112.83795 28872; 112.84295 103794; 112.96313 68795; 113.07844 61910; 113.49836 13348; 114.0927 1775750; 114.29649 102004; 114.48207 7938474; 114.56111 19654; 114.57736 1825824; 114.74303 5631051; 114.82978 13501553; 114.88024 21931956; 115.10334 49172; 115.17914 19128; 115.2515 218997; 115.60409 1038686; 115.61688 27678; 115.69131 168327; 115.83621 359841; 115.88212 4648443; 115.92575 990; 116.18613 94323; 116.2564 1335055; 116.44063 1377587; 116.5024 7831218; 116.71533 244008; 116.79525 770985; 116.81589 29957; 116.90458 762918; 117.25108 72324; 117.35035 2308503; 117.57098 534; 117.62087 25379; 117.67424 41262; 117.70176 121416; 117.75822 15338; 117.86226 2222682; 118.13315 358802; 118.38033 131759; 118.46638 7630770; 118.46853 2316422; 118.70644 3461; 119.05217 25371; 119.20455 2266492; 119.34092 200327; 119.89646 8723014; 119.93671 868413; 120.01093 26076; 120.17187 9512; 120.93493 1082820; 121.03232 28903; 121.35667 191851; 121.35884 1196999; 121.56187 43228; 121.7003 3170; 121.94891 116532; 121.99529 15685; 122.36739 86012; 122.66514 30805; 122.77288 77117; 122.8122 954; 122.82091 30413; 122.95116 60982; 123.06062 35334; 123.16431 6544; 123.1734 186941; 123.58907 18941; 124.12395 75194; 124.43783 4809086; 124.50903 11616; 124.66578 25490; 124.7702 81959; 124.80108 29167; 124.9979 5878620; 125.11083 1469464; 125.46418 37959; 125.51985 1401099; 125.5213 3258430; 125.80191 11616; 125.98386 508420; 126.00327 12910; 126.18999 811; 126.6492 183938; 126.76072 205524; 126.77354 3093292; 126.87626 43537; 127.14828 24983; 127.35622 2030629; 127.4895 3762836; 127.57946 7913; 128.02824 32064; 128.24328 41893; 128.39284 3659471; 128.52795 226683; 128.685 3693082; 128.75248 22791; 129.07539 39979; 129.17371 634112; 129.18257 956897; 129.27517 16765; 129.34553 249239; 129.48157 4667705; 129.55099 69256; 130.36562 73528; 130.38754 1384029; 130.4355 74476; 130.50286 7070; 130.52312 103328; 130.57925 1793550; 130.71702 20076; 130.8441 76995; 130.87763 120334; 131.26538 2955374; 131.39314 796450; 131.55677 25389; 131.79434 2303; 131.93977 28885; 132.33086 9254; 132.4487 235161; 132.50419 33243; 132.61667 1371050; 132.70672 4647411; 132.95979 24432; 133.12854 5322; 133.37784 471377; 133.51182 202; 133.785 27109; 133.79216 1305061; 133.92526 28514; 134.1534 7680485; 134.21277 50983; 134.3513 27181677; 134.37124 2221330; 134.57283 46785; 134.77634 7991846; 134.95586 3588; 135.07295 1694477; 135.16078 2155244; 135.38739 6566; 135.82462 50073; 136.07239 220615; 136.27223 7347456; 136.28426 1114509; 136.52778 24376; 137.12798 76612; 137.13687 718499; 137.22517 108621; 137.23502 5320203; 137.29782 1479; 137.29884 1100173; 137.56342 17828; 137.63018 3813912; 137.66501 77911; 137.82292 7332; 137.86135 64992; 138.36419 349955; 138.36645 8444452; 138.7018 37783; 138.80975 16020; 138.81486 9786; 138.84937 54383; 138.90237 78395; 139.24559 99622; 139.48329 64492; 139.92098 54302; 139.98103 25515; 140.27478 7225; 140.56321 2748885; 140.6324 727146; 140.80364 34464; 140.90138 6441782; 140.91481 31835; 141.06155 7824; 141.28563 552068; 141.38628 8326783; 141.51611 2084682; 141.54741 2182071; 141.74075 48899; 141.77064 743525; 142.02843 6170421; 142.1552 7493448; 142.66553 29761297; 142.72849 63928; 142.78476 64812; 143.12299 29645; 143.13537 12121; 143.16971 7314846; 144.12235 60561; 144.22028 18184; 144.23749 77772; 144.32689 193965; 144.43525 20116; 144.67445 6502459; 144.7143 117933; 144.89817 75979; 145.09571 1372460; 145.21466 45080; 145.24708 143867; 145.41751 15373469; 145.56788 4114843; 145.58563 22847; 145.61744 46198; 145.94018 59133; 146.08455 56452; 146.10148 4994790; 146.29567 1269; 146.3557 5439; 146.39448 6368550; 146.44565 159; 146.7417 2417; 146.81197 36796; 147.1092 45017; 147.13389 37838; 147.13534 4183491; 147.36731 2582313; 147.64177 765294; 147.72962 625421; 147.92853 5915; 147.99468 44646; 148.06342 31231; 148.44287 28210; 148.47124 4147388; 148.93421 4723143; 149.08884 4248; 149.90837 20824; 149.94129 61046; 149.98284 49889; 150.06689 475878; 150.17488 11925; 150.28419 8659; 150.89745 23362; 151.00746 22979; 151.08603 13749197; 151.17617 70779; 151.17904 55310; 151.19393 21243; 151.95835 66983; 152.01769 4996; 152.13524 14789772; 152.42982 7171848; 152.61913 40646; 152.63306 17803; 152.66375 31; 152.71086 74666; 152.73704 73874; 153.40315 1774478; 153.68226 53252; 153.70596 1251420; 153.94514 4470; 154.10683 49387; 154.17991 29960; 154.33163 840; 154.50531 6453; 154.8392 3566673; 154.97262 726780; 155.13001 57031; 155.21832 61984; 155.64086 4639; 155.73598 6077; 155.91195 2507568; 156.21317 6030873; 156.21913 1722551; 156.25888 483198; 156.33775 4305111; 156.46959 11418; 156.52501 15802; 156.58653 58782; 156.70334 54654; 156.74144 1509416; 156.80257 9877; 156.81837 1931687; 157.14646 2507680; 157.26143 3529336; 157.56077 9246; 157.69432 6769; 157.9512 6778305; 158.12773 28859; 158.43999 6330; 158.56076 1321900; 159.06018 12500; 159.06454 47662; 159.23912 15894282; 159.55101 32698; 160.09229 1374843; 160.14255 29691402; 160.1656 20016; 160.21918 65957; 160.23531 1577; 160.26075 445538; 160.51464 26118; 160.53028 68928; 160.55269 3264112; 160.67803 198475; 160.83094 5147747; 161.10156 32602; 161.10713 200843; 161.4146 641727; 161.81258 8882224; 161.83532 27615781; 161.87438 36690; 162.08909 6003; 162.13835 6713421; 162.15856 57064; 162.486 3532022; 162.53188 3395258; 162.59454 76101; 162.64636 2931169; 162.69691 73734; 162.87464 50338; 162.88114 112122; 163.18996 21604; 163.34491 3164; 163.42801 53610; 163.59783 9113; 163.85098 5054115; 163.87275 18295; 163.95756 11303037; 163.96298 52780; 164.05648 661396; 164.19108 2155; 164.28019 20514; 164.4587 1797911; 164.53236 19922; 164.88376 187977; 165.09792 19308743; 165.23665 53844; 165.49132 5420554; 165.49278 6367040; 166.00921 47171; 166.28254 29551; 166.75854 1024852; 166.88433 43211; 166.98266 1096693; 167.08661 7199880; 167.37531 9236; 167.45389 18073; 167.66766 1219858; 167.73954 47040; 167.80566 937921; 167.94927 6526; 167.95572 902418; 168.17015 37188; 168.3908 44141; 168.5191 1075192; 168.53011 2508875; 168.66817 9935; 168.77421 60943; 168.99212 17576768; 169.05202 697311; 169.08383 40095; 169.10838 246535; 169.19046 33889; 169.32587 72420; 169.40281 58269; 169.55363 747093; 169.63921 1478293; 169.78007 9378195; 169.91391 1704102; 170.19144 62443; 170.31971 47356; 170.57732 36126; 170.71552 888003; 170.93878 8951420; 171.00735 45925; 171.16558 2589688; 171.38406 45299; 171.8115 169133; 172.15584 7584071; 172.65036 61547; 172.69601 184239; 173.21868 1249; 173.31991 18303; 173.37782 53937; 173.47504 548012; 173.88 58798; 174.13681 38188; 174.17722 2351; 174.44483 25988; 174.55248 43304; 174.61428 1057466; 174.61964 6435699; 174.64169 54486; 174.82813 771285; 175.2016 74894; 175.3554 626320; 175.36905 1045487; 175.39759 22453; 175.41214 38819; 176.17197 1710060; 176.19828 857387; 176.25792 68207; 176.26291 8407; 176.38385 17835; 176.70941 67060; 176.77558 24595946; 176.83482 79594; 176.98834 3050822; 177.18712 22194956; 177.52352 20341; 177.65489 100569; 177.79714 9869235; 177.81062 23289; 177.81573 5407; 177.96747 3748934; 177.98541 999372; 178.02321 6121412; 178.19953 28338; 178.68132 34433; 178.68398 3952; 178.93518 44491; 179.03961 242159; 179.11477 87029; 179.16514 66726; 179.20937 1805579; 179.54458 38107; 180.21106 6927; 180.44668 43880; 180.51973 30054; 180.69393 1873239; 181.19845 11012889; 181.3583 4172095; 181.48945 18454510; 181.8835 5721864; 181.95061 21683; 182.13534 49032; 182.15779 322695; 182.25219 373; 182.49586 5922; 182.50747 2754994; 182.7416 44702; 182.82255 492209; 182.8454 3733311; 183.30923 6012; 183.45947 871703; 183.66459 1818491; 183.6674 8567099; 183.81512 6820167; 184.19591 7098; 184.23662 5484803; 184.26346 17879; 184.41516 30240; 184.50972 25734; 184.5215 42893; 184.60724 3183; 185.05743 8666; 185.13076 3056472; 185.27386 476319; 185.56936 67039; 185.88337 39819; 186.02822 5980; 186.32297 55673; 186.47553 19606; 186.50516 28570; 186.62634 5044; 186.65378 28570; 186.82076 1031506; 186.83691 169880; 187.07316 8808; 187.18785 3478; 187.3036 3046; 187.94024 16037; 188.36265 34568; 188.36445 112554; 188.55752 875778; 188.89851 64809; 189.03962 7582248; 189.04423 2350669; 189.08263 88814; 189.37602 1120274; 189.44862 6448239; 189.66827 79940; 190.00334 9794852; 190.14639 652090; 190.16245 8953720; 190.23905 23112; 190.48075 3847650; 190.51465 8883072; 190.80776 43011; 190.94305 4122931; 190.94803 709213; 191.1009 1980210; 191.17586 8889563; 191.30493 67324; 191.36372 4800946; 191.43442 2508997; 191.67545 4376; 191.94658 60887; 192.07155 75644; 192.35088 42901; 192.50373 829941; 192.58867 70932; 192.685 60967; 192.78987 5722575; 192.92041 73127; 192.92387 9997720; 193.16095 40202; 193.46805 43923; 193.52558 832004; 193.71173 52977; 194.49543 48322; 195.18497 5460; 195.19257 486741; 195.3363 381877; 195.4166 17552; 195.53158 113837; 195.66189 3943721; 195.80909 179922; 196.18911 17252; 196.25397 108098; 196.29275 5054; 196.36151 60135; 196.38875 51269; 196.4043 9908; 196.41222 29779; 196.42279 3446; 196.58098 60417; 196.80018 468; 197.13222 27608; 197.17715 6132358; 197.24737 2038605; 197.4081 4496; 197.8509 4673; 198.16143 3149581; 198.27047 134285; 198.33501 76675; 198.54956 8028129; 198.60967 2575934; 198.67581 1550967; 199.06957 53344; 199.09938 34400; 199.26654 5176434; 199.2817 1379566; 199.36238 73853; 199.44876 198390; 199.62893 50150; 199.71391 3818; 199.92239 70896; 200.09888 59717; 200.44498 9890; 200.78709 57787; 200.91127 4210; 201.064 1170; 201.19418 4621; 201.30576 1944665; 201.5818 6588265; 201.891 663; 202.08089 114040; 202.10124 1253687; 202.57828 139605; 202.67848 397368; 202.84937 28240; 203.01901 8391021; 203.05829 642; 203.10721 70134; 203.13953 7304700; 203.29046 6034786; 203.68841 15002; 203.7826 48639; 204.34516 5409; 204.51714 2806793; 204.65507 6158438; 204.68958 3393067; 205.05247 6636; 205.25247 170264; 205.63398 1568362; 205.64769 48692; 205.8664 26255; 205.87408 6059750; 206.0254 541906; 206.10755 8013; 206.30927 1760439; 206.5108 1524669; 206.51609 1770; 206.79234 75904; 206.79362 159067; 206.81022 9089; 206.81789 21349; 206.85519 142854; 207.19558 13820; 207.66375 3897360; 207.9527 103656; 208.08024 299343; 208.20001 4527369; 208.65967 11600; 208.72809 3221878; 208.88948 24330; 209.04652 9285446; 209.07432 9273; 209.25087 73690; 209.32155 762730; 209.62413 24314; 209.67739 6945; 209.98987 1234612; 210.05767 1324210; 210.19013 1610091; 210.31175 1189357; 210.36732 42383; 210.44915 4285369; 210.60053 28810; 210.66429 1572166; 210.75888 26704; 210.84456 21706374; 211.31871 119209; 211.95927 13516742; 212.01174 6824145; 212.05186 61833; 212.21567 54750; 212.24707 955946; 212.29332 168986; 212.41061 3658693; 212.47367 29735; 212.66963 35174; 212.71543 23185; 212.83339 74357; 213.02116 12519; 213.24141 3651812; 213.48131 8078; 213.49921 11073; 213.82383 31568; 213.97821 3582658; 214.13277 9954; 214.1463 1139872; 214.15459 2411116; 214.32327 808598; 214.60723 766495; 215.03703 69378; 215.2314 31380; 215.30821 9910; 215.33677 1419421; 215.73063 9648; 215.8224 38235; 215.86907 1245; 215.91792 1116508; 216.68311 1593987; 216.82315 6791; 217.45384 516616; 217.80418 300868; 217.806 142950; 217.9493 122453; 218.34503 9577; 218.35852 56396; 218.58071 1244519; 219.49507 1410383; 220.08806 4855855; 220.23997 967484; 220.44695 41659; 220.45044 839781; 220.73092 6172816; 220.84061 2117820; 220.94248 22430; 221.46057 102479; 221.61078 10142; 221.8698 79430; 222.08857 84721; 222.09755 59780; 222.10421 640655; 222.31342 6244372; 222.37679 53936; 222.41458 147871; 222.67508 139798; 222.76933 16932361; 222.97262 8130219; 223.13802 6541; 223.39372 802853; 223.44677 1314763; 223.60133 4231; 223.71324 161754; 223.97307 256880; 223.99791 31768; 224.16662 766599; 224.43911 71344; 224.59101 36904; 224.60617 176622; 224.70668 67503; 224.86117 28521; 224.90743 185837; 225.46021 7063; 225.84892 31297; 225.85794 4979; 226.04865 801025; 226.31999 1576161; 226.33676 1274; 226.56834 68870; 227.29255 7385; 227.31176 20682; 227.52443 48219; 227.57733 70908; 227.79884 67763; 228.36702 4126939; 229.10564 925156; 229.26932 429163; 229.39242 28682; 229.39372 6146; 229.42118 14174; 229.5183 7318546; 229.74086 56128; 229.75131 2857248; 229.85039 13653; 229.92013 27021; 229.93108 57145; 229.9729 62984; 230.27065 2215775; 230.34686 26035; 230.38562 1574666; 230.41331 16812025; 230.42113 26478; 230.87064 20934; 230.94404 49108; 231.01003 1031693; 231.01952 56938; 231.20893 197876; 231.23946 3412696; 231.3353 3420273; 231.76874 65281; 231.78537 1951334; 231.90775 21413691; 231.99944 3266382; 232.27526 29452; 232.79962 10989; 232.91585 1395814; 232.93009 41492; 233.49904 1596580; 233.6339 69096; 233.76652 1646169; 233.91605 31464; 234.212 3746428; 234.3672 29555; 234.60291 47742; 234.74139 256584; 235.07981 20507; 235.16745 854907; 235.24558 5736; 235.41411 21315; 235.61764 703; 235.72473 28812; 235.8327 874961; 235.86233 806718; 235.9125 237242; 236.016 74658; 236.15687 27497; 236.52154 1692009; 236.60053 37408; 236.60315 2434527; 236.96611 44632; 237.42186 39570; 237.4491 407369; 237.84518 4392874; 237.97023 1290089; 238.1091 1382497; 238.16475 7155150; 238.67328 1810550; 238.69443 22645; 238.82584 283; 238.84842 5457; 238.99448 3393456; 239.09301 50646; 239.33213 70565; 239.4011 4659964; 239.4208 1630650; 239.659 42428; 239.83487 15817; 239.89999 68966; 239.93175 3956328; 240.04533 44201; 240.36217 8474; 240.54869 6913; 240.88019 29524; 240.9288 28080; 240.94148 72617; 241.12324 18009; 241.3171 377294; 241.68553 31339; 242.38045 26962; 242.56595 30467; 242.61998 9538696; 243.31771 85682; 243.61073 2052533; 243.7468 113782; 243.78 7063; 243.95393 38300; 243.99972 61184; 244.28231 4519630; 244.86424 1051622; 245.02674 107499; 245.09319 71441; 245.22495 78386; 245.29974 660257; 245.45385 7545; 245.84057 4888; 245.88044 13074568; 246.12203 717870; 246.25205 55540; 246.67694 7563; 246.74646 255977; 246.9464 919558; 247.16673 58118; 247.29874 27357; 247.30637 7843; 247.43148 27709561; 247.82087 4844153; 247.98943 1904842; 248.03641 8463758; 248.33313 212244; 248.54051 75816; 248.57163 52762; 248.58021 7296384; 248.64082 249494; 248.83936 2450711; 248.9162 1029459; 249.26987 189415; 249.37692 3180; 249.48061 1611246; 249.50225 2232800; 249.63893 73273; 249.74273 152292; 249.75538 1845043; 249.84289 6143; 249.85194 6545377; 250.02228 29759; 250.10744 8178; 250.11885 1840597; 250.16868 8958; 250.24525 1227; 250.26719 2578; 250.41069 59405; 250.68321 24677531; 250.82428 927; 251.21492 1093759; 251.58058 923292; 251.61302 24131; 251.86906 1329356; 252.19006 147183; 252.31657 5991; 252.33709 64133; 252.38314 27646; 253.20858 8965802; 253.23106 61732; 253.35077 57118; 253.55513 68963; 253.84736 115900; 254.11869 6575; 254.14618 79797; 254.3568 124647; 254.55049 7630929; 254.64836 45102; 254.97711 6315; 255.37692 35627; 255.48219 1470897; 255.53205 7778971; 255.59369 2580170; 255.83447 56132; 255.86056 67525; 255.89584 212436; 256.05641 5185151; 256.20429 7380679; 256.26125 1756271; 256.27861 14229002; 256.45325 8442; 256.75719 8486; 256.76878 64292; 256.97433 1344920; 257.04522 7624347; 257.18324 2350; 257.37264 52701; 257.37485 2404535; 257.42868 20629; 258.37899 3383240; 258.80753 41705; 258.84245 26480; 258.86672 71532; 259.11459 18540; 259.41329 454308; 259.44239 543; 259.68681 22419; 260.02732 2246426; 260.02787 5074813; 260.38301 9997690; 260.44231 21274; 260.44808 2282214; 260.47529 13948493; 260.62301 14384669; 260.63799 29956; 260.81031 1974821; 261.24922 1862474; 261.90572 1384698; 262.08284 890277; 262.13151 22299; 262.56391 7663422; 262.5643 8428923; 262.64544 4578; 263.11989 7487884; 263.48746 20763; 263.56444 4257; 263.73354 24837; 264.09477 1963718; 264.41056 6579924; 264.50789 33709; 264.78728 45354; 265.1184 551202; 265.24246 18484204; 265.74246 1508395; 265.8934 984390; 266.18184 4786; 266.1924 15151; 266.2699 61627; 266.43207 1886867; 266.63758 21178; 266.72714 36262; 267.09224 4750372; 267.26224 20599; 267.31316 21648; 267.59078 61147; 267.6181 110398; 267.86097 1747831; 267.97116 7032; 268.2882 141480; 268.55194 3830861; 268.60057 28565; 268.71557 50630; 268.74424 1002745; 268.97409 2356; 269.01167 61858; 269.08302 889950; 269.15196 43975; 269.18835 20478; 269.65114 65040; 269.69062 3683049; 269.92558 76748; 270.02909 1776560; 270.10458 1268126; 270.11775 7682325; 270.33137 1973350; 270.3928 791370; 270.45298 239249; 270.68373 56518; 270.70532 5608612; 270.86239 2812695; 270.96911 16483099; 271.23243 9486; 271.34807 4226432; 271.50222 824; 271.58842 2816157; 271.68782 70463; 271.85054 960046; 272.40402 1358597; 272.63482 4183251; 272.65403 5885253; 272.71361 363; 273.07026 1726592; 273.18247 5654301; 273.48666 7270966; 273.66396 613268; 273.83221 58726; 273.87472 35869; 273.92506 9937089; 274.30564 35121; 274.33376 2214; 274.43249 658059; 274.78139 563227; 274.83631 1451778; 274.90884 64806; 275.85793 78318; 276.17284 75415; 276.20948 8023; 276.61905 6134311; 276.64368 694979; 276.85917 65975; 277.33236 70522; 277.37486 50343; 277.66899 1065120; 277.69156 934603; 277.71883 2305122; 278.0621 41931; 278.09793 682361; 278.32654 28550; 278.34053 6084; 278.34446 3284; 278.63672 5877806; 279.07862 6577; 279.08658 562688; 279.09288 194881; 279.35675 4232787; 279.67027 72361; 279.92768 7708; 280.02709 4184709; 280.44201 73756; 280.56013 9993438; 281.18256 26248; 281.78362 9427; 281.99292 5878651; 282.2207 3640; 282.59708 23812; 282.62122 147650; 282.96967 1548790; 282.97361 46423; 283.55826 15736; 283.61512 3362571; 283.94905 38840; 284.01441 7254; 284.26284 10677; 284.3803 774657; 284.39222 4830; 284.93061 31783; 285.04912 126377; 285.97017 3475774; 286.0975 274160; 286.1335 7995; 286.48615 79162; 286.61894 51687; 286.76305 990033; 286.822 1251582; 286.83489 27265; 286.92757 5970; 287.19515 2052; 287.24262 56294; 287.36428 20797335; 287.49518 18287; 287.58698 42490; 287.76961 4428085; 287.78699 2036654; 288.50417 53269; 288.60392 8296281; 289.00492 57325; 289.11743 91052; 289.19423 192168; 289.67405 5170008; 290.22387 1587262; 290.26728 23260; 290.52085 6779719; 290.60438 812353; 290.61108 64650; 290.61247 27705; 290.63059 7701; 290.86281 998811; 290.91977 13180; 291.07168 65410; 291.1593 27207; 291.26385 933182; 291.37103 23027; 291.38401 29488; 291.85138 15137; 291.8587 22233; 291.88497 167606; 291.90386 35507; 292.38042 93356; 292.39754 21123; 292.54261 2633; 292.59075 511435; 292.62491 129286; 293.03752 35099; 293.308 810290; 293.3454 58035; 293.47339 330394; 293.5279 30137; 293.59394 165829; 293.84965 784; 293.87133 13366385; 294.06037 1054336; 294.06184 1592654; 294.23377 33187; 294.37209 3881690; 294.63877 5802764; 294.76682 29879; 294.80866 47992; 294.88815 8862; 295.01425 37637; 295.39469 77020; 295.50636 54334; 295.80011 1566; 295.8729 19409; 296.00906 6591548; 296.01356 3015477; 296.08535 27282; 296.11645 4712; 296.4023 49132; 296.59167 190935; 296.63203 36069; 296.69062 23718; 296.86866 4647; 297.04903 4326; 297.1519 62028; 297.31244 7489904; 297.61883 262431; 297.65894 22698; 297.71707 135782; 297.83392 65647; 297.95688 32681; 298.04047 164835; 298.27191 677442; 298.53786 27623; 298.55962 18190024; 298.69593 27804; 299.09529 177778; 299.62057 3488089; 300.04865 20532; 300.34767 150543; 300.56185 37596; 300.80864 8607623; 300.82373 4374; 301.18087 27515; 301.87736 2250507; 301.99842 4093012; 302.36834 1976998; 302.42636 39772; 302.48112 1645379; 302.60567 4512044; 302.72816 28566; 303.14998 180739; 303.40978 184943; 303.47341 153188; 304.10654 8754327; 304.30508 1099; 304.40006 24844; 304.52375 122635; 304.52456 2464742; 304.66599 29055; 304.83307 8586299; 305.25269 2862074; 305.72266 21187; 305.72662 1504897; 306.03047 53935; 306.32789 44004; 306.35592 6514630; 306.49754 31481; 306.56956 3059; 306.62945 1175501; 306.76086 26018; 306.76196 3334; 306.97706 29813; 307.0983 2200313; 307.60366 5972374; 308.22466 4040664; 308.24829 257; 308.3729 796; 308.56512 5783; 308.65633 343009; 308.84649 6814794; 309.05993 123073; 309.23583 49829; 309.30437 1035368; 309.38991 63293; 309.4711 1150200; 309.75073 178532; 309.98624 70007; 310.10943 34377; 310.17202 2902719; 310.58306 3785516; 310.73655 60885; 310.81756 16859; 310.84463 8662808; 310.96777 1072189; 311.55145 556580; 311.65436 9516211; 311.73208 3581; 312.21083 6205; 312.43783 53474; 312.50244 4141327; 313.09172 2735493; 313.51845 3531; 313.62628 67411; 313.69967 1336679; 313.74502 3246158; 314.22136 1391072; 314.33975 1375452; 314.72263 7828; 314.89123 13735; 314.8963 3163428; 314.92 28753; 314.96074 33520; 315.01519 9755160; 315.40574 3892416; 315.53683 8444323; 315.86384 2310127; 317.03478 66645; 317.06944 942123; 317.10024 40271; 317.4667 21128355; 317.55479 2897241; 318.25547 76929; 318.52195 22917; 318.61893 5745; 318.62291 77709; 318.88913 7750; 318.93184 2482112; 319.07087 4377; 319.38415 47400; 319.48536 650969; 319.50065 8299154; 319.75726 10094; 319.82113 13873; 319.9074 63997; 320.30795 70353; 320.34086 7375; 320.90567 22782851; 320.99131 879; 321.05627 29753; 321.60052 17684; 321.79572 2939743; 321.80957 3485; 321.84491 20958716; 321.92168 10817127; 322.04639 21446; 322.30168 95342; 322.31539 2903519; 322.42469 1836639; 322.43885 719635; 322.96587 44014; 322.96893 4678; 323.12301 354803; 323.24175 6174; 323.57629 16011; 323.68323 3203; 323.81835 132925; 323.86989 1117728; 324.31289 2312; 324.40892 3377128; 324.76956 56029; 324.8904 140041; 325.16563 1106507; 325.41321 336836; 325.45696 50050; 325.49303 1676180; 325.53317 8059386; 325.55403 52688; 325.75354 21091; 325.77844 12106607; 325.79692 6356637; 325.94821 8982; 326.41726 30129; 326.84514 50261; 326.91906 42833; 326.9255 121223; 327.02979 33246; 327.15681 7259090; 327.25929 1506273; 327.54347 147887; 327.624 29291867; 327.76625 2943559; 327.85108 74566; 327.96548 25427; 328.05033 1519728; 328.05356 132914; 328.36725 2066; 328.54729 70052; 328.97279 25878310; 329.10668 7037; 329.60912 4999636; 329.68577 14519053; 329.76876 8020456; 329.97643 15811; 329.99155 562408; 330.40476 59874; 330.42759 9915439; 330.44672 15190; 330.78771 11390055; 330.85513 51796; 331.11973 820426; 331.16226 35969; 331.26365 5927797; 331.43615 1854995; 331.81036 8075; 331.82267 64230; 332.32717 9553790; 332.33257 1016; 332.67761 1749069; 332.81515 28180; 332.84855 2164365; 332.85296 6268113; 333.09387 922366; 333.20768 8750894; 333.41083 49524; 333.49272 2352208; 333.90146 536486; 333.94421 10741; 334.02318 1863008; 334.09651 49831; 334.54169 21921; 334.5479 2655291; 334.83583 29419; 335.2271 1651; 335.38549 8905; 335.62065 8949110; 335.78217 46872; 335.81293 64751; 335.95275 9855; 336.3235 26708; 336.40539 1858548; 336.43944 8205; 336.44512 2627; 336.52522 28018; 337.15368 40030; 337.42299 33971; 337.54709 22417; 337.83318 2629282; 337.92361 121331; 338.0259 22685; 338.03752 1371627; 338.09812 179782; 338.15183 1139464; 338.2687 6266; 338.33238 4025482; 338.64253 18192; 339.12575 1238; 339.29791 4917542; 339.313 7206; 339.37672 29689; 339.40694 63189; 339.67823 41937; 339.76732 21772101; 339.81901 1861467; 340.0246 62923; 340.22589 243193; 340.281 10468; 340.35226 2675036; 340.53587 9936; 340.59829 2240514; 340.61045 5956329; 340.74683 88858; 340.94273 67828; 341.04567 27218; 341.12385 28581; 341.22294 21969; 341.79143 4671163; 341.85386 99883; 342.21141 65021; 342.21244 72422; 342.58448 35424; 342.79407 56907; 342.8627 2250; 343.33754 46215; 343.53579 9025347; 343.62372 46021; 343.78997 99367; 344.46343 52334; 344.69817 33188; 345.17693 65509; 345.30043 1899081; 345.35087 123377; 345.61992 70132; 345.7267 24483; 345.74849 62783; 346.19801 66187; 346.37284 645698; 346.5191 391380; 346.74004 76141; 346.98293 1497464; 347.60105 1244; 347.60466 4698534; 347.68146 24556; 347.72432 25386; 347.87613 22145; 347.97154 540528; 348.14421 20517094; 348.23194 8650; 348.45386 7100; 348.47788 8592480; 348.51521 197848; 348.53932 159; 348.86276 25228; 348.99957 4687; 349.10264 65394; 349.1142 37776; 349.27128 312; 349.42479 50879; 349.58109 12979; 350.06643 4197842; 350.16457 87106; 350.43745 177; 350.59594 5305; 350.92764 874584; 351.60991 6897076; 351.62033 7512283; 351.71096 23725; 351.81232 14474; 351.87996 1890717; 351.88636 7049011; 352.29403 24018611; 353.00067 4177; 353.92894 1821942; 354.32931 1915886; 354.64117 5855; 354.6642 18439; 354.9279 6357861; 354.97243 532; 355.54245 106500; 355.64484 807224; 355.74907 176084; 355.88175 42299; 356.05804 25468755; 356.17383 11805151; 356.23124 7874295; 357.95074 9094; 357.96729 4110563; 358.23239 51564; 358.3889 2757556; 358.41731 20857748; 358.48829 158777; 358.83553 347393; 358.96959 922; 359.02354 8516; 359.11539 3578112; 359.99401 538212; 360.17639 43219; 360.55042 471592; 360.68441 158578; 360.84735 124321; 360.84751 7044643; 360.90627 8708; 361.20798 36300; 361.47624 81311; 361.49603 32267; 361.66319 5259361; 361.85313 21664; 362.26102 27999; 362.37093 281; 362.49458 122294; 362.54002 15715; 363.04363 1570986; 363.18714 1622317; 364.15048 2550171; 364.1875 3316097; 364.87958 21098; 365.17169 641; 365.21446 8243999; 365.43321 31284; 365.97948 79186; 366.13214 8810818; 366.5385 1351823; 366.69367 30317; 366.80088 22585; 366.85045 79647; 367.39223 1483661; 367.47834 23167; 367.61623 3671; 367.62801 3897960; 367.64761 993; 367.81795 22236; 367.86161 23375; 368.46318 46099; 368.47861 7732893; 368.59422 15394; 368.63972 5123618; 368.80936 8144; 368.83107 1895338; 368.89626 3742; 369.30213 9136761; 369.54531 358447; 369.59053 969380; 369.5934 1518; 369.79734 1240733; 369.93568 28222; 370.09127 128346; 370.10501 283341; 370.17653 77156; 370.22184 1641809; 370.63041 14497; 370.70461 8976403; 370.88181 275704; 371.29378 15701; 371.38538 21178320; 371.46786 432023; 371.48826 24339; 371.55076 107651; 371.57857 35715; 371.69601 6454; 371.7434 5963799; 372.03534 48766; 372.1841 41813; 372.33339 25926; 372.51636 805237; 372.69105 3077104; 372.74677 3084579; 372.83599 31754; 372.86053 2122635; 372.90066 13500362; 373.5117 162053; 373.72684 64440; 373.75083 29310; 374.00725 27571; 374.06662 2856; 374.15516 6914760; 374.23021 13259; 374.32032 4699; 374.41214 44973; 374.47592 32200; 375.16978 1019304; 375.1852 1173014; 375.25312 1640574; 375.30065 2161899; 375.34418 768444; 375.54821 58152; 375.61006 4277663; 375.67089 22606; 375.80014 43830; 376.06219 2168809; 376.06718 30902; 376.20322 9816; 376.47658 13398106; 376.95758 1161403; 377.31711 13012; 377.94223 130395; 377.95902 1728404; 378.11199 53795; 378.34771 16783532; 378.65209 1377708; 378.81636 4918212; 378.94828 2067287; 379.29367 10929; 379.55753 25036; 379.64272 1829; 379.96283 1291147; 379.97349 24220; 380.34431 4776285; 380.90966 1882954; 381.03 24148; 381.05556 47648; 381.06637 362193; 381.87357 9397556; 381.95698 77860; 382.08211 1950542; 382.23993 62999; 382.34009 3935960; 382.52559 23468; 382.67563 1438; 382.71195 7749647; 382.79695 27084; 383.07305 22618; 383.29637 63833; 383.31396 9439361; 383.31567 2678286; 383.57949 46576; 383.89366 987649; 383.96553 1631755; 383.96951 4719077; 383.98603 39221; 384.03319 32761; 384.20146 30023; 384.64774 22420; 384.69976 1480626; 384.75508 22781; 384.87267 2799823; 385.1687 4873767; 385.30234 169005; 385.34612 8081737; 385.4435 28958845; 385.46092 47188; 385.54204 2852842; 385.71593 11757; 385.97968 6456; 386.01948 1521687; 386.0509 20111; 386.46006 102623; 387.0789 86548; 387.10528 58725; 387.376 9765; 387.4575 4139240; 387.90622 43202; 388.06011 72616; 388.09004 7715; 388.25336 560865; 388.46997 2159445; 388.92701 7725346; 389.06522 1114420; 389.38515 72551; 389.49476 299281; 389.56524 765711; 390.03979 1680753; 390.45266 7210321; 390.67989 1630907; 390.73269 26168; 390.95153 25718; 391.35496 96312; 391.56395 393140; 391.61813 15038; 391.74926 15138; 391.81184 39926; 391.94955 5369; 392.01625 10296; 392.2877 28690; 392.36584 362396; 392.70723 761098; 393.27008 193427; 393.34283 46682; 393.38673 9603; 393.53978 63319; 393.84675 163088; 393.88574 33090; 394.12813 22180; 394.17733 50404; 394.34883 6725; 394.51034 4893; 394.77651 63144; 394.97327 148485; 395.23667 4678; 395.52674 38087; 395.60722 1585828; 395.72953 5407086; 395.85669 64571; 396.09157 18770; 396.38777 566727; 396.643 640298; 396.6614 47968; 397.05254 130399; 397.1397 100222; 397.30309 66918; 397.37848 27254; 397.55797 2886; 397.75309 2582012; 398.39974 67050; 398.59435 592641; 399.01107 55385; 399.21004 8640; 399.21384 72159; 399.33584 9842295; 399.39209 34189; 399.72855 2861076; 399.96273 47469; 400.25534 70599; 400.34792 53342; 400.56075 45179; 401.11354 13354; 401.13462 48579; 401.13557 6038; 401.18273 4247; 401.36119 20296; 401.45217 50659; 401.50479 4970355; 401.55269 549181; 401.62196 71142; 401.65674 34049; 401.72267 3770249; 401.80085 20975; 401.89721 46670; 402.15512 24670; 402.19912 3510; 402.25203 76573; 402.61107 9588; 402.84263 34505; 402.89988 67411; 403.10164 6808; 403.17672 39699; 403.59961 4633987; 403.80704 19963; 404.2612 16509875; 404.48152 578827; 404.564 1961369; 404.58322 2526621; 404.65492 48708; 404.68753 939090; 404.80558 1670; 404.89868 1843136; 405.00747 72981; 405.01059 14093; 405.01646 23228; 405.17477 1011908; 405.27989 49679; 405.89353 73811; 406.05142 412; 406.06483 1384; 406.24943 8848581; 406.43539 4018986; 406.52388 3420375; 406.56948 130631; 406.57877 4975417; 406.60532 7398; 406.72724 120470; 406.78537 42919; 407.18964 4363888; 407.33777 1857115; 407.81161 8371; 407.92867 3767; 407.94048 1710222; 408.05617 7807093; 408.19115 8679; 408.60859 1331; 408.78176 57504; 408.80723 22106427; 408.92998 26419; 409.03015 1120653; 409.23233 768733; 409.45791 64387; 409.73824 41581; 409.79658 4289299; 409.84182 413128; 410.17528 533; 410.4764 14334; 410.61581 601690; 410.73248 71369; 410.82182 3694; 411.05142 9373; 411.05555 212272; 411.10055 78996; 411.26873 35130; 411.35424 7909; 411.81637 9184016; 411.96574 27836439; 412.13496 69850; 412.5268 25979; 412.77071 369347; 412.82643 1456; 413.06345 68353; 413.47937 96226; 413.71334 9254; 413.78695 553773; 414.04531 27566; 414.09972 46011; 414.10264 643701; 414.20466 180926; 414.20924 44395; 414.32496 11353; 414.52031 27312; 414.52347 28849; 414.71517 27908; 414.74229 69455; 414.87513 152570; 415.24893 1310842; 415.53618 1532547; 416.03402 75698; 416.17422 32983; 416.42929 1710523; 416.921 10047979; 417.05075 195885; 417.14725 2242450; 417.29269 26054; 417.46885 8094; 417.48175 4157913; 417.52336 71712; 417.55495 67080; 417.55873 26052; 417.68997 2891010; 417.72564 4883958; 417.87476 3012714; 417.95449 3775376; 418.15056 1337731; 418.20806 125611; 418.23557 38955; 418.68343 52588; 418.88431 2191939; 418.96447 71935; 419.08046 111644; 419.14168 56859; 419.20037 661208; 419.32732 1663784; 419.47898 159568; 419.63833 7880; 419.7528 6098343; 419.99001 6090; 420.04937 386750; 420.08285 48140; 420.14897 17142353; 420.15904 17339; 420.2153 1143231; 420.31806 3408788; 420.45135 9060866; 420.5203 1955; 420.53411 71043; 420.54274 17159; 420.60177 2545; 420.68774 4043695; 420.70877 41753; 420.75982 1820647; 420.81753 55032; 420.93788 5563859; 420.94259 660; 421.13301 446456; 421.13353 1328218; 421.32089 79325; 421.94101 30714; 422.0067 149774; 422.07697 28291; 422.1611 4510175; 423.03576 18475; 423.31288 29226473; 423.33339 27927; 423.36143 95387; 423.87098 46040; 424.08166 32078; 424.2976 45974; 424.5343 70119; 424.55845 1833422; 424.73599 3040853; 424.83081 14538; 424.86254 3110; 424.89874 1792710; 424.91257 74863; 424.97951 95972; 425.03339 1483; 425.07853 3038; 425.10167 333; 425.21786 1505262; 425.39549 1470364; 425.44053 57130; 425.47391 66345; 425.54263 2776723; 425.98344 6178071; 426.15742 3310357; 426.19563 1868756; 426.34715 20048; 426.38885 22613; 426.42509 4660526; 426.49667 13387; 426.51443 10573; 426.5634 1667938; 427.10543 11995739; 427.10662 5495; 427.33355 985605; 427.37692 1398556; 427.58804 1003167; 427.74527 112619; 428.83779 638493; 428.86616 19842; 428.94024 7743472; 429.02458 21009; 429.11253 2240390; 429.17407 191670; 429.42366 709976; 429.60525 6084880; 429.71034 25197; 430.34526 26792; 430.41121 1511050; 430.70541 5413; 430.94662 4030360; 430.95308 1651192; 431.18168 6152; 431.31689 760671; 431.38769 40557; 431.83135 35106; 431.91297 26123; 431.94908 61687; 432.07814 24815; 432.17479 78314; 432.25703 20479; 432.34103 1712761; 432.42173 696969; 432.43424 45272; 432.44358 33536; 432.76131 8621618; 432.78742 27275; 432.79591 7958408; 432.99627 960209; 433.05095 8863254; 433.16493 2941101; 433.29057 4710; 433.41983 1253029; 433.44461 7699645; 433.70352 1357819; 434.01735 283404; 434.61866 1879131; 434.68432 470696; 434.91964 668248; 434.9305 7982540; 434.93439 29386818; 435.27568 231; 435.31048 1627; 435.37057 1379; 435.43624 3629383; 435.5179 9658; 435.51925 75294; 435.71944 25749; 435.84991 44252; 435.87646 397947; 435.90366 1900478; 436.07852 4909426; 436.20409 4517; 436.38413 55350; 436.86125 27480; 437.24121 53188; 437.50701 174082; 437.51735 70145; 437.63833 103103; 437.64565 6588; 437.68735 1136766; 437.79872 29738; 437.82132 5063122; 437.95983 50870; 438.05975 23886; 438.39429 981609; 438.44413 19482949; 438.56918 32990; 438.63444 27565; 438.7004 3397472; 438.91076 8824; 439.02641 28439; 439.14154 4041; 439.14824 22227; 439.23961 2589428; 439.41836 17647; 439.60354 27230; 439.62811 9593; 439.71459 28126; 439.96392 825497; 439.99802 49069; 440.0712 83343; 440.1415 76432; 440.20582 2202831; 440.37342 991; 440.47355 41004; 440.49646 4181; 440.52677 4646; 440.72839 9914; 441.07753 72606; 441.09716 25776952; 441.25835 3491; 441.32393 1967338; 441.48744 30677; 441.63353 23957; 441.69466 59452; 442.03764 2009542; 442.16604 9010426; 442.48408 2859806; 442.69329 4037806; 442.74326 18710143; 442.91922 54128; 443.03826 4777660; 443.11851 259; 443.19163 197387; 443.23482 5340; 443.26123 39544; 443.44111 596; 443.51993 6160795; 443.82422 523681; 443.93637 1478870; 443.97323 8599; 444.71038 633; 444.73691 2827010; 445.19098 26295; 445.22975 70751; 445.52057 15979; 445.64931 4403435; 445.75591 26389; 445.8139 22013; 446.14392 1559; 446.24574 73829; 446.41172 5993; 446.70491 73763; 446.8485 70919; 446.88577 155127; 447.11435 3467211; 447.40693 3999144; 447.54053 1974079; 447.93303 3674880; 448.33604 22841175; 448.59453 2532339; 448.8414 3995; 449.1113 582455; 449.27635 33638; 449.64588 27460; 449.88028 29093; 449.98114 870272; 450.02892 1247676; 450.0355 36308; 450.1263 1793431; 450.21398 34327; 450.35647 17343; 450.42117 2812445; 450.51329 5772284; 450.52735 73167; 450.64298 71490; 450.6545 787; 451.11118 9210; 451.11248 29886; 451.13954 243555; 451.14797 2099; 451.34286 52178; 451.37495 3977; 451.38715 17847; 451.4158 4036843; 451.56646 52928; 451.59829 872563; 451.6139 4355396; 451.83411 24878; 451.99614 887212; 452.50773 46750; 453.01649 35740; 453.13541 4139; 453.15446 66210; 453.21915 6336981; 453.39768 1344; 454.03661 2183262; 454.22692 4850030; 454.58173 5612; 454.62349 25806; 454.65756 1932; 454.70856 22889; 455.15544 44984; 455.35324 357685; 455.35544 42524; 455.70375 4072; 455.80205 50718; 456.07304 4294; 456.15198 713890; 456.34575 61123; 456.39037 821488; 456.60289 1662; 456.65748 53395; 456.88494 3587812; 456.92246 1037255; 457.17965 872772; 457.25038 2855; 457.34862 8521; 457.47529 733; 457.57613 21716; 457.57697 1910103; 457.70722 768686; 457.75363 680; 457.83681 2298025; 457.83967 26052; 458.43026 160083; 458.81989 1432703; 458.8334 63281; 459.10139 12826; 459.10353 9816661; 459.13914 3899100; 459.14003 2365; 459.27623 7607459; 459.55581 428349; 459.55895 157556; 459.65617 17134; 459.69599 61157; 460.19883 36502; 460.80035 3583; 461.27768 5566; 461.3009 63939; 461.49529 21483; 461.54084 633518; 461.61331 7552; 461.89646 2122213; 462.01112 9875903; 462.10197 17264; 462.25767 116119; 462.30087 8822; 462.38994 79749; 462.59659 1228589; 462.80094 79690; 463.61495 82180; 463.9628 14331; 464.04212 3735890; 464.33463 614419; 464.34153 4360; 464.39247 1788898; 464.51213 3555812; 464.52734 19709465; 464.85264 250614; 465.00051 715354; 465.01743 5494253; 465.08012 51778; 465.23101 26345; 465.26187 43063; 465.3206 54305; 465.32641 354344; 465.33734 336986; 465.6113 31236; 465.67241 3234551; 465.70581 18288; 465.87852 1594; 465.88076 51605; 465.95196 577598; 466.27914 48159; 466.29087 9906; 466.40009 12652; 466.56477 68183; 466.74923 165072; 467.13249 35615; 467.20475 27526; 467.56486 20521; 468.03788 27193; 468.30112 69908; 468.38938 4124; 468.61221 96518; 469.51543 21483; 469.55417 1644199; 469.81523 1007902; 469.86697 36182; 469.92423 5834; 469.96699 7759; 470.30441 90670; 470.46039 25480; 470.50746 24190; 470.60813 18636; 470.84098 71857; 470.89243 3567966; 470.91449 6164; 471.06334 3703893; 471.09201 8216; 471.15367 49654; 471.19646 1481956; 471.30738 166795; 471.4959 7008414; 471.59719 28501; 471.65057 41942; 471.66516 53348; 471.77532 446; 471.96737 26992; 472.0319 76634; 472.25441 1458093; 472.42056 118845; 472.44935 127268; 472.49664 63389; 472.59053 6050051; 472.69888 22457; 473.0299 926504; 473.07157 20731; 473.35294 183490; 473.45646 3672196; 473.67472 387086; 473.69384 29299; 473.79696 3634628; 473.83179 9127534; 473.83946 1082; 473.85626 6432; 473.89062 807223; 473.90141 29709; 474.16193 48456; 474.3141 3049156; 474.32991 8894055; 474.54407 10252; 475.0378 184076; 475.126 62150; 475.19452 39564; 475.31873 110568; 475.54429 2068233; 475.82516 24167; 475.84923 5217; 475.92862 42411; 476.14423 3911; 476.22756 12183; 476.3778 122321; 476.46102 8154179; 476.63468 3365; 476.76997 8061; 477.20761 76449; 477.27502 601; 477.28046 23265; 477.52289 108591; 477.62332 60303; 477.62469 2439; 477.79873 185; 477.81134 55229; 478.13325 835159; 478.44492 5229184; 478.53096 752414; 478.98005 1772; 479.2104 4064452; 479.35835 9591842; 479.49591 33963; 479.79756 1194039; 479.9237 1614245; 480.15416 1469141; 480.22689 3047901; 480.59137 1163580; 480.77801 58125; 480.90166 24354274; 480.95716 15849; 481.03158 7927167; 481.12192 27356; 481.22835 5369; 481.31356 38978; 481.56686 8484; 481.6644 411302; 481.76239 13713; 481.8384 2939; 481.84122 4559; 481.84355 763899; 481.85113 3600; 482.02974 5892; 482.07009 600; 482.09661 49187; 482.1257 6020; 482.69734 1886641; 482.79106 1540678; 482.94083 660428; 483.02741 7923085; 483.04956 69012; 484.06555 23345282; 484.14022 373633; 484.16683 7419; 484.20031 21343; 484.30396 8573781; 484.41056 4086; 484.43483 50459; 484.64106 24233092; 484.70523 3494880; 484.74865 196465; 485.20575 39678; 485.28974 730790; 486.05352 8462453; 486.15249 15310; 486.21912 11824; 486.27926 36085; 486.29298 191364; 486.45232 436; 486.52685 12084; 486.67919 36586; 487.00638 28969; 487.85952 2982; 488.37887 334192; 488.61986 8539; 488.63929 43105; 489.00767 5739037; 489.40018 16002120; 489.41493 25785; 489.73959 176574; 489.82509 775005; 489.94293 24343; 490.10252 27154; 490.203 47736; 490.28607 8328; 490.39926 7256446; 490.69496 47050; 491.49016 721352; 491.98969 149708; 492.35494 5699478; 492.43446 2523634; 492.43927 60898; 492.45549 423083; 493.2115 2008604; 493.37151 32959; 493.69616 274373; 493.92788 34152; 493.95637 32739; 494.13371 5856; 494.50641 36816; 494.72765 3637; 495.10707 1753685; 495.20641 126; 495.41797 1403815; 495.66874 2838518; 495.75768 4455; 495.93109 6652286; 495.94924 79299; 496.12323 1885085; 496.12874 1062316; 496.27951 394; 496.6791 68603; 496.99401 23063; 497.32273 27228; 497.37849 530726; 497.60153 217043; 497.66329 65261; 497.70229 8657917; 497.74167 4258; 497.85555 4334255; 498.1244 25257; 498.62106 27507; 498.63543 1471573; 498.74363 1729; 498.8447 249640; 499.31762 1164190; 499.56756 656911; 499.77262 62326; 499.90407 883512 +<1, 7>: 0.0619 238764; 0.25767 1992025; 0.37717 39703; 0.45036 38339; 0.52875 500661; 0.54479 7133; 0.56797 24155; 0.81563 10186; 0.82499 2455981; 0.90999 79032; 0.97118 118466; 1.47501 184445; 2.02575 2905897; 2.09643 9430232; 2.52028 2517457; 2.53624 8836155; 2.6287 8946; 3.00412 12434; 3.0395 27566; 3.11011 8133184; 3.53684 35105; 3.81273 4233371; 3.90093 4437196; 3.94746 49721; 4.00987 61964; 4.10095 161040; 4.22784 479181; 4.32342 72109; 4.35801 138; 4.45781 3754; 4.62403 10570; 4.77176 41134; 5.07333 1917430; 5.45336 6948; 5.73846 2755469; 5.79189 3709912; 6.05378 146; 6.3014 2245242; 6.56545 5417; 6.63392 32743; 6.8977 4182; 7.0725 40252; 7.9819 1349513; 8.03094 3963; 8.13252 4484162; 8.13794 59095; 8.16519 3588; 8.35826 23201; 8.5137 6641; 8.65754 18701; 8.93232 63716; 9.27843 45059; 9.36333 934451; 9.37045 1759; 10.07564 2983374; 10.23285 197084; 10.47918 2483085; 10.61808 9832037; 10.67489 28069; 10.67861 16588; 10.86503 7118; 10.93109 583304; 11.14123 20355; 11.37639 36591; 11.47158 6197; 11.76352 25199040; 11.80311 4782445; 11.87244 51161; 12.22359 1156334; 12.51907 41764; 12.80375 9629632; 12.96876 419970; 13.12594 2767; 13.63396 33669; 13.63663 20707; 13.72938 2078182; 14.11239 41221; 14.35542 46673; 14.37276 3966247; 14.43222 513660; 14.45294 604; 14.55924 163348; 14.83804 8865697; 15.08578 57147; 15.23718 46239; 15.35482 4192; 15.3767 7795893; 15.43141 191661; 15.81962 434886; 16.26622 17451904; 16.55346 8088; 16.60814 8271; 16.65889 53394; 16.85937 25795; 17.11892 40770; 17.6449 23613; 17.65568 40594; 17.99687 35276; 18.19437 142103; 18.24852 42224; 18.40002 1227244; 18.50512 42490; 18.60797 210198; 18.62592 29790; 19.41993 27975610; 19.62946 28332; 19.89402 1187500; 19.90581 9454; 19.94908 55788; 20.08828 11603; 20.3449 9701989; 20.50654 4235211; 20.53993 28045; 20.64206 4612714; 20.64896 72402; 20.87157 193015; 20.96353 323164; 21.0481 8006; 21.04844 25883640; 21.25812 1559158; 21.30416 23223; 21.33299 72544; 21.40143 78827; 21.48272 4166716; 21.68214 1201476; 21.98195 42092; 22.17453 388805; 22.22554 13571; 22.24841 2521; 22.24995 3747808; 22.3257 6911; 22.95601 3956636; 22.9651 3484981; 23.13654 6522; 23.26368 73884; 23.28096 9461; 23.32331 53934; 23.57839 164913; 23.86063 7143975; 23.98931 71752; 24.00975 1608961; 24.12826 36838; 24.14039 7173060; 24.30866 25865; 24.37739 8824; 24.47418 69796; 24.69575 186120; 24.7997 4003720; 25.02825 166128; 25.37846 40242; 25.82116 1171616; 26.0612 519718; 26.52901 1060470; 26.65629 1719; 26.71893 70198; 26.73242 29468; 26.97507 2017; 27.32131 38144; 27.3303 78299; 27.39799 1785818; 27.7138 2411979; 27.85833 1942462; 27.88669 1978; 27.92781 4617; 27.93182 20100; 28.16952 56917; 28.17013 9863; 28.27917 200890; 28.41665 697910; 28.609 22363; 28.93437 21591; 29.07146 1683539; 29.73967 674615; 29.96007 205753; 30.13193 37067; 30.27887 1226951; 30.37063 1424; 30.41593 26761; 30.55702 6416; 30.63683 3502368; 30.67787 4224167; 30.73948 24342; 30.81805 180629; 31.08184 4591; 31.55655 5489936; 31.71381 47791; 32.22554 6847; 32.81807 29544; 32.87506 70619; 33.05083 147692; 33.13307 6586; 34.14545 117091; 34.25354 37129; 34.49091 100815; 34.82735 1059125; 34.96936 732120; 35.25018 113020; 35.30932 41894; 35.3264 2611165; 35.50627 363659; 35.63657 4892905; 35.73446 3400523; 35.76124 56352; 35.77781 4370; 35.86424 1688030; 36.18198 6124989; 36.23114 107160; 36.56102 930535; 36.56311 3181868; 36.67194 4550638; 36.70625 57108; 36.88623 7436394; 37.12179 29148; 37.19339 22114; 37.23887 7897592; 37.51828 65275; 37.52684 2955; 37.91564 29365966; 38.14293 17637726; 38.51216 21554; 38.55049 1428; 38.63888 8322; 38.66093 25912; 38.72349 1595450; 38.98333 39352; 39.05581 70037; 39.21414 22222; 39.30109 471373; 39.70025 7630; 39.75547 45224; 39.93057 178667; 40.14543 875646; 40.37491 168210; 40.4443 19090; 40.95467 22022; 40.9823 8453; 41.0351 2201116; 41.54148 910100; 41.72023 77904; 42.09281 22363; 42.2613 10791; 42.29233 60566; 42.36664 20957; 42.54677 4691; 42.84134 19431; 42.86693 3415281; 43.10219 14126; 43.36522 34927; 43.73888 1371; 43.90939 52994; 44.02168 9783; 44.31639 20969; 44.58285 136; 44.82122 1452097; 44.94684 21446; 45.08292 1813966; 45.27918 1876760; 45.34949 5116629; 45.94218 604395; 46.08318 28774; 46.11548 175759; 46.19612 51402; 46.19894 127254; 46.2408 37278; 46.345 211168; 46.34816 4227858; 46.76584 502662; 46.7855 9614699; 46.9065 4151; 46.95416 46846; 47.16481 242014; 47.22827 42890; 47.42151 3554102; 47.42415 382497; 47.49599 6042; 47.51268 606621; 47.57291 21697; 47.58524 8532; 47.67994 12536; 47.74769 34541; 48.12502 49336; 48.1696 864488; 48.27276 21831; 48.57435 3623983; 48.68029 5983968; 48.86822 63450; 49.43503 22637; 49.49606 155779; 49.53663 516693; 49.59827 3752800; 49.63703 4231474; 50.0166 95927; 50.09179 1671332; 50.39055 5438701; 50.66028 27914; 50.6668 143288; 50.66876 33001; 50.94152 72637; 51.04238 29473; 51.05467 12303686; 51.13981 165887; 51.24224 3536565; 51.27758 1860634; 51.76282 35286; 51.88856 73447; 52.34705 16233; 52.47288 41205; 52.85135 16827774; 53.07765 1972880; 53.40857 4609918; 53.59796 845498; 53.62942 428302; 54.3468 9684; 54.53673 2326774; 54.57911 46688; 54.89631 60639; 54.91947 4153; 55.01225 7734; 55.0389 9699737; 55.16646 1958584; 55.18627 78928; 55.52701 55619; 55.79131 67862; 55.80306 4586624; 56.04898 63706; 56.50226 6505634; 56.519 29926; 56.52121 8719820; 56.59183 1418816; 56.88357 24980; 57.1275 80931; 57.38987 2938323; 57.42379 5567871; 57.66155 1329538; 58.51766 7863653; 58.67777 78173; 58.82183 125540; 58.89555 1575112; 59.11808 865239; 59.12682 28212; 59.48827 66314; 59.53218 1138152; 59.88468 2661; 60.29686 4719856; 60.73033 1498201; 60.77417 989266; 61.00795 844132; 61.18984 6999; 61.51914 4515; 61.69744 11759; 61.77813 7977; 61.92281 912655; 61.98867 7592; 62.41592 10707; 62.99425 9378; 63.18975 467; 63.2198 360; 63.3279 5071; 63.42951 289748; 63.64254 25116; 63.65996 62347; 63.74038 47613; 63.87498 541435; 64.13218 24804; 64.22387 9687152; 64.40055 30078; 64.50863 2179; 64.52427 4554; 64.57654 873023; 64.59576 18799032; 64.67336 23628; 64.77971 7526211; 64.86549 2304223; 64.94689 24912912; 65.02658 2946594; 65.11025 79212; 65.17306 22570; 65.19283 3893674; 65.44546 17342; 65.51481 2024; 65.90059 63758; 65.99602 820909; 66.05001 787152; 66.143 5682; 66.42188 52990; 66.73815 37413; 66.85661 4419424; 67.31075 11432440; 67.39844 6705420; 67.46461 12573; 67.72511 12338; 67.81221 9266030; 67.88651 26509; 67.91172 39185; 68.09314 114182; 68.16873 6644068; 68.57382 348767; 68.5818 5452298; 68.86849 3442; 68.96143 970632; 69.26326 1319463; 69.47486 2163061; 69.8251 9162504; 70.4259 121276; 70.55277 781; 70.56082 25639; 70.80903 307498; 70.8387 887589; 71.25857 6092980; 71.35882 532247; 71.64101 1947168; 71.89779 6878; 72.30606 21039; 72.43369 27426; 72.55148 311636; 72.75717 5574916; 72.75933 17758; 73.14752 5659421; 73.23396 1249; 73.29243 197252; 73.62433 6278509; 73.75073 183814; 73.80047 3063672; 74.03429 26704; 74.06364 75162; 74.22972 196759; 74.25427 985911; 74.36673 26334; 74.4676 79609; 74.47915 21703999; 75.17467 48723; 75.1859 40639; 75.46 5331; 75.52627 1136; 75.63133 48292; 76.07386 27073; 76.07532 43306; 76.57606 6872122; 76.74246 48846; 76.80155 9567622; 76.99971 42526; 77.16689 5423825; 78.11324 36122; 78.1832 808488; 78.92394 1289706; 78.96131 9636688; 78.97334 6440; 79.24016 52514; 79.25865 3956984; 79.49328 63693; 79.56305 1870182; 80.00469 2792; 80.04587 55971; 80.37168 70212; 80.40583 558346; 80.44145 1822933; 80.62961 65997; 80.79635 79694; 80.96207 26578; 80.9668 33228; 81.15128 29889; 81.15278 11034; 81.19028 3634; 81.20327 175432; 81.53261 75672; 81.6479 98114; 81.77665 3915756; 82.08554 3266517; 82.11446 4044974; 82.15739 1125619; 82.1783 979; 82.56461 7315126; 82.57535 3338093; 82.58974 641088; 82.75837 167692; 82.81602 18185; 83.1712 41178; 83.17592 1112249; 83.24865 58787; 83.40119 20484; 83.80373 7196; 84.03101 55219; 84.2737 14085; 84.32109 860342; 84.48458 2311615; 84.49911 20788; 84.61009 3016408; 84.67989 1776942; 84.92411 36388; 85.12158 8962965; 85.18133 2189834; 85.19499 47913; 85.26936 15205; 85.28719 7685; 85.46428 29708; 85.65384 9643593; 85.85603 35427; 85.96496 50482; 86.04559 29451; 86.14459 9965682; 86.2733 467871; 86.35992 1129; 86.45514 3348; 86.48223 13620; 86.61954 263989; 86.66517 240889; 86.67203 6120171; 86.98659 28077; 87.11857 24139; 87.31304 45699; 87.50278 220196; 87.53889 23040; 87.67186 35743; 87.7624 44462; 87.93872 4146; 87.95482 24072; 88.24002 3108792; 89.28384 19896; 89.84481 7054987; 90.7505 109701; 91.10615 21011; 91.23558 9947791; 91.34467 34970; 91.34539 166838; 91.47265 1813; 91.47921 3492; 92.07563 21782; 92.59779 399502; 92.64592 129192; 93.17403 9334142; 93.30965 25915; 93.4643 53561; 93.4883 2422; 94.74224 73612; 94.78789 572099; 94.79417 4124233; 94.80987 1661287; 94.87547 630906; 94.99974 7872; 95.28237 22465; 95.321 36973; 95.91658 1281546; 95.99241 26628; 96.49524 139312; 96.56868 58789; 96.81012 12796; 97.14424 38859; 97.37966 289459; 97.46731 22515; 97.5335 601882; 97.67434 22050; 98.11863 739286; 98.38628 1471663; 98.75914 55033; 99.16698 3365; 99.45407 5685984; 100.20781 5794; 100.22418 64918; 100.25044 2426069; 100.31509 11988156; 100.53113 3836138; 100.56904 2684655; 100.60702 61500; 100.70839 503175; 100.8968 24047; 101.39058 52453; 101.75897 3827418; 101.91158 21394; 102.01136 1831024; 102.09776 23254; 102.11845 126300; 102.20606 47982; 102.23369 67669; 102.45214 21546975; 102.62189 9617629; 102.71837 4341250; 102.79854 10138; 102.86794 36999; 103.04467 28678; 103.25398 18164; 103.32471 176586; 103.38842 60806; 103.45158 47027; 103.46598 63784; 103.639 4511994; 104.02167 3992061; 104.0815 9930127; 104.11231 978214; 104.22508 296329; 104.48535 4076486; 104.52329 2910; 104.58259 9517675; 104.79046 9253158; 104.85755 1874; 104.86488 33484; 105.20657 1643445; 105.43833 236968; 105.634 7464907; 106.26768 27774; 106.4119 1289733; 106.42329 32588; 106.63497 833435; 106.97169 7386; 107.31713 2902548; 107.38714 7302; 107.48199 18272; 107.64619 3508612; 107.73095 5502262; 107.73169 58050; 107.99237 8466; 108.04013 55382; 108.15901 871859; 108.24561 4079; 108.4268 75427; 108.50998 2138; 108.87858 25725; 108.89529 548293; 109.01369 52810; 109.28554 459592; 109.3098 556262; 109.39728 27558; 109.46896 715725; 110.00097 27515; 110.3244 240210; 110.34034 1610740; 110.46745 9208; 110.50299 29959; 110.60641 4892; 110.65029 6115530; 110.76407 3392907; 111.39877 1964768; 111.47223 4788977; 111.58108 24698; 111.60102 4269; 111.72869 2; 111.78186 31019; 111.931 25388; 112.31566 47710; 112.50433 20865; 112.67012 28477; 112.77118 39125; 113.13113 11837; 113.35289 28348; 113.4546 67354; 113.46524 4371691; 113.51829 1036636; 113.77981 23574; 114.12431 759744; 114.21881 9052355; 114.42261 7502; 114.48322 1613535; 114.69569 4194229; 114.80766 58926; 115.15458 2557014; 115.22115 60772; 115.979 92677; 115.99019 79124; 116.13377 41090; 116.27572 1215924; 116.29674 25643; 116.30521 9697; 116.75724 871903; 116.75791 63453; 117.05483 78584; 117.12056 4434156; 117.99747 16734; 118.22128 793954; 118.45561 7911; 119.40932 41373; 119.46082 16137; 119.74416 4049187; 119.78689 27961; 120.84215 178384; 120.84564 1765845; 121.20474 120573; 121.32048 58569; 121.74026 28457; 122.06728 2635766; 122.25581 798921; 122.30138 3207142; 122.48199 24912; 122.5033 9921; 122.58973 36586; 122.63025 1665711; 123.0234 1329319; 123.03945 630538; 123.04629 22110; 123.1636 8862; 123.19287 189191; 123.24177 1167954; 123.36418 11910580; 123.5146 1936907; 124.10965 37240; 124.52955 21713; 124.55689 2838; 124.73298 60578; 125.05213 3574273; 125.09901 83005; 125.11031 906389; 125.26683 3012; 125.49973 764249; 125.63924 224; 126.20148 316; 126.52406 7521; 127.21061 14167; 127.42851 25415; 127.79666 22186; 127.84773 590434; 127.95699 196155; 128.07926 32754; 128.27177 6707; 128.38771 72621; 128.51432 41971; 128.71423 56016; 128.82775 2001; 129.06531 2007; 129.19939 8586705; 129.71368 44771; 129.83743 44287; 129.86013 28225; 129.94831 7735210; 130.28473 123278; 130.32734 1838855; 130.37767 25022; 130.61355 28685; 130.83639 66288; 131.05107 33626; 131.31726 1611998; 131.42125 2785894; 131.55121 49896; 131.73173 39909; 131.88434 6713; 131.95366 34276; 132.04765 1762749; 132.47236 24563; 133.08355 54080; 133.25854 860; 133.69976 9770; 133.71031 3262; 133.79436 1328357; 133.82344 12435; 133.94113 53385; 133.97078 49468; 134.3966 534702; 134.52302 53952; 134.57771 22292; 134.60175 20134032; 134.63445 31127; 134.88846 989; 134.8981 4550; 135.33114 55023; 135.83414 98264; 135.86425 9083578; 135.94142 8718695; 136.4763 1156; 136.70378 23832; 136.85941 24290; 137.29695 1360094; 137.57715 1124627; 137.99091 1119177; 138.06095 32073; 138.09123 24666853; 138.20411 7076971; 138.21565 54181; 138.40135 8508333; 138.53027 14626; 138.93507 1379244; 138.95459 52806; 139.09447 32296; 139.27262 3845055; 139.51346 1454082; 139.56343 5480343; 139.59548 6214677; 139.62966 318; 139.69644 2703438; 139.83617 8588674; 139.92998 20641; 140.0874 27662; 140.16944 155116; 140.51456 75764; 140.62471 8440; 140.75256 3397148; 140.83296 8543925; 140.84371 29349; 140.92671 43217; 141.32684 959; 141.35024 6874032; 141.46602 25322; 141.47005 3975143; 141.56972 443608; 141.59399 1740937; 141.71459 9932163; 141.78673 65518; 141.84099 701414; 142.00706 9860255; 142.32338 107814; 142.53192 954738; 142.55066 75235; 142.64649 7263; 142.73406 4248114; 142.78668 42725; 142.84105 22571; 142.98097 776481; 143.0358 8936; 143.14538 19550220; 143.20177 378342; 143.32635 3185960; 143.94031 31926; 144.56173 59489; 144.98077 33075; 145.06982 1348; 145.18054 45117; 145.19857 1260; 145.49307 5834808; 145.5801 28294; 145.58617 3929133; 145.62131 2203; 145.62802 289; 145.64388 26625; 145.69963 85552; 145.82798 6987374; 145.86423 863679; 145.99495 369082; 146.03957 383673; 146.54448 25940; 146.60323 9276; 146.85733 1543335; 147.04782 421; 147.39543 8864788; 147.55229 461961; 147.61278 1633438; 147.76099 25885; 148.08014 10397; 148.11915 1086600; 148.18077 260665; 148.36123 6411; 148.4558 45446; 148.57711 1669035; 148.70336 25123109; 148.77162 596023; 148.9885 28585; 149.0894 531619; 149.19484 4476; 149.20565 665862; 149.44741 46258; 149.76068 7503148; 149.78197 1199324; 150.49185 1195348; 150.53556 398; 150.9514 1715929; 150.95568 2508178; 151.099 1505; 151.47581 2378184; 151.86516 32416; 151.88016 16409; 151.95706 6492; 152.01298 1054692; 152.0527 5728115; 152.07441 12800; 152.20357 11489; 152.33527 44750; 152.5901 15021; 152.65387 5470; 152.66492 1945408; 152.7479 3981406; 152.77715 3522; 152.88424 1659; 152.88966 846375; 152.96846 5701295; 153.14943 374194; 153.3006 15611; 153.67453 60597; 154.11965 9458; 154.23707 28562; 154.52271 10757402; 155.07235 1018689; 155.5603 2127032; 155.62497 7437; 155.68671 67871; 155.76762 878060; 155.77127 28107; 155.93672 90240; 156.06 30958; 156.17734 49939; 156.27139 3338892; 156.3969 67502; 156.57283 5195355; 156.83331 9587; 156.83737 1836366; 156.94675 6724; 157.22794 531683; 157.26866 3771; 157.34837 1716282; 157.35704 8384576; 157.91324 2611880; 157.97333 50204; 158.00063 55807; 158.28398 64416; 158.4873 1552105; 159.05862 22747; 159.09071 2313287; 159.20038 45289; 159.24912 168469; 159.29912 85285; 159.33439 1371012; 159.42498 7510875; 159.63175 97074; 159.64826 41227; 159.87302 1235233; 159.91714 14546; 159.93463 34621; 160.04329 8037; 160.08229 15773; 160.11571 1125683; 160.15927 37540; 160.18533 9420209; 160.3112 33990; 160.3794 3567038; 160.40087 3376097; 161.16027 9441; 161.19791 8460; 161.22446 77850; 161.29545 4099; 161.41124 1942568; 161.58715 8225; 161.71769 69936; 161.75026 55040; 161.78433 5083; 161.91244 21353; 162.42008 216276; 162.44615 2903670; 162.93871 72761; 162.9904 4197; 163.07771 4964; 163.38129 3824715; 163.45203 67977; 163.52553 5756; 163.52769 57625; 163.63643 3372341; 164.01216 37410; 164.3375 43270; 164.41473 34830; 164.62367 64791; 164.81782 6006727; 165.10386 159713; 165.24554 1129645; 165.29722 1495336; 165.38373 1513100; 165.39928 484934; 165.67732 8701393; 165.76994 24142; 165.82209 91996; 165.91511 65434; 165.97606 67379; 166.2118 1462394; 166.29801 8757; 166.65586 177310; 166.70421 40127; 166.73518 21142; 167.63157 47487; 167.82635 20060717; 167.88773 22481; 167.89053 19036; 168.22058 1277425; 168.25665 69477; 168.31223 13435; 168.4966 1529911; 168.5833 63462; 168.58878 57372; 168.64251 7853; 168.91629 27397; 169.11779 45165; 169.29192 461784; 169.44469 1928; 169.47394 7949; 169.53095 78309; 169.58882 171367; 169.73869 31803; 169.86547 4027327; 170.1464 664352; 170.23949 5938; 170.50354 2153988; 170.58552 9931054; 170.59009 5861770; 170.81767 25040284; 170.94213 21741; 171.35247 317997; 171.38515 26560; 171.45659 5221089; 172.14742 29376; 172.47782 1163; 172.59603 655890; 172.7887 71224; 172.82522 10217; 172.88077 27960; 173.03296 25356; 173.0385 54100; 173.40159 9871; 173.4298 22181; 173.58294 60684; 174.30519 27434; 174.35299 1311782; 174.48659 14335; 174.49141 11515; 174.80121 6496; 174.95129 591046; 174.99636 2305401; 175.05122 34267; 175.28228 2666551; 175.35355 64581; 175.36433 524827; 175.49013 5081; 175.59519 4736546; 175.64321 3623166; 175.67922 12116; 175.69236 1150024; 175.88159 227038; 176.24447 54975; 176.78678 35451; 177.43076 1989404; 177.76448 19138901; 178.02474 162201; 178.03197 2956925; 178.3418 65030; 178.7258 29579; 178.93374 4651273; 179.07657 1483178; 179.08361 2909; 179.08563 78982; 179.55972 12736008; 179.61617 4067289; 179.79764 58830; 179.88644 43533; 180.25722 4728023; 180.30901 835; 180.36106 23679; 180.66653 709825; 180.79214 6365453; 181.04172 846237; 181.16196 485412; 181.5389 76103; 181.66989 44539; 181.78723 398694; 181.88961 6371; 181.96836 57687; 181.99473 2169127; 182.03536 76651; 182.42522 7066160; 182.80055 47617; 182.82539 13602; 182.9051 1696880; 183.09477 1635; 183.16325 1126505; 183.32341 196036; 183.53846 9668932; 183.60248 5292138; 183.99487 1375846; 184.43006 7739913; 184.58262 673155; 184.73034 4224251; 184.80438 1568377; 184.9581 178784; 185.37477 16543; 185.47434 9726; 185.61234 6778; 185.66153 5597; 185.70487 16667; 185.92444 26210; 185.93176 13366; 186.01374 357411; 186.4804 143563; 186.72267 310; 186.73708 2723604; 186.80233 15411; 186.89674 7924; 186.90614 95142; 187.25997 6883; 187.3856 9507; 187.58883 7722880; 187.78977 27585; 187.79542 189900; 187.82688 19439; 187.84226 76976; 188.01691 14664838; 188.51835 7477; 188.84281 2967405; 188.8885 1282657; 189.02555 11316; 189.71945 61220; 189.93139 2420482; 190.03959 174075; 190.20747 436545; 190.567 29818; 190.7408 942236; 190.76284 22458; 191.00375 61174; 191.03205 6770707; 191.47503 8514; 191.56562 7498; 191.90172 642355; 192.00592 160963; 192.3303 7947; 192.4752 759944; 192.49399 50008; 192.62029 24466; 193.21138 1753744; 193.22871 31819; 193.27685 46531; 193.28871 31045; 193.30159 153156; 193.34185 197892; 193.43321 68332; 194.56376 2195440; 194.76248 525081; 195.41223 20970; 195.46441 979802; 195.68349 1318094; 195.83825 1015835; 196.01053 5235; 196.06574 8820; 196.1667 6930; 196.24918 15293; 197.41169 7978; 197.45044 6252; 197.47267 25253; 197.67564 1148257; 197.68803 1278044; 197.84095 40254; 198.19363 660; 198.23011 12019; 198.40046 38044; 198.72241 6929929; 198.8575 7307142; 198.90512 625438; 198.94736 37878; 199.10978 2057505; 199.24583 1767725; 199.53392 1940915; 199.68329 103079; 199.71768 70817; 199.90722 131189; 200.0265 26027782; 200.05265 1342; 200.33441 1932619; 200.62286 1016140; 200.6265 148; 200.71713 44775; 200.7748 7600319; 201.13614 648962; 201.43125 704337; 201.47083 3740354; 201.53689 104185; 201.66667 15856; 201.80479 9228646; 201.81332 19209760; 201.88799 111058; 202.09736 145847; 202.17044 1024676; 202.28639 17251; 202.32201 4503933; 202.47818 52474; 202.55509 89327; 202.7371 12440; 202.83876 1147032; 203.10029 5782; 203.16019 3406552; 203.2547 7781000; 203.43109 1649781; 203.75786 313987; 203.78935 6432; 203.98174 59309; 204.30512 137880; 204.54935 426084; 204.62892 839; 204.63359 983103; 205.25869 6234; 205.36789 132934; 205.36973 44690; 205.44612 16448; 205.61095 8828608; 205.63932 110539; 205.64301 26411; 205.75251 9500; 206.87306 9232946; 206.9266 4661393; 207.74848 166259; 207.76039 5990639; 207.93551 14112; 207.95809 866921; 208.09132 1421554; 208.24406 539; 208.30825 76389; 208.32436 1651353; 208.3282 34767; 208.41111 9956; 208.95835 107425; 208.96323 7679; 209.07829 61221; 209.13289 32070; 209.29583 6986; 209.39113 1446115; 209.42759 1319625; 209.58287 50917; 209.76301 65084; 209.78433 73713; 209.87065 72603; 210.25405 122476; 210.35886 9850952; 210.54385 161; 210.88485 2061770; 211.4845 45006; 211.61045 36759; 211.61302 669763; 211.66721 42042; 211.72801 480663; 211.90752 6080942; 212.01511 28623; 212.03012 8417687; 212.04925 7390230; 212.1439 56891; 212.37078 72465; 212.85219 4133369; 213.35134 1224223; 213.49551 4973686; 213.58679 6124; 213.62536 177651; 213.69915 3016654; 214.01289 3750081; 214.04902 6752; 214.17994 27801; 214.39435 64234; 214.51735 7454142; 214.66771 4591413; 214.81981 85907; 214.94973 28395; 215.48276 6030714; 215.587 70786; 216.16655 26311001; 216.47705 3705282; 216.50309 161438; 216.62481 36095; 216.80325 73687; 216.81855 76461; 216.82371 27326913; 217.20837 2961971; 217.37215 1376017; 217.45785 1796142; 218.29023 3004329; 218.40269 31461; 218.55177 3819765; 219.03063 42861; 219.35687 7754236; 219.40013 1186361; 219.48788 324016; 219.83635 39885; 220.12076 222685; 220.14175 6504073; 220.22102 33845; 220.41343 36914; 220.61743 20897217; 220.79237 1327026; 220.94626 66108; 221.01654 875162; 221.06058 147127; 221.38016 8482102; 221.40361 8527; 221.51586 4655496; 222.15243 33165; 222.2135 130781; 222.33445 10482; 222.33463 314506; 222.61839 1344432; 222.64732 966252; 222.7223 147806; 223.54322 68339; 223.60744 77268; 223.63643 709677; 223.68771 28205; 223.7182 158382; 223.72213 37282; 224.00027 32778; 224.0658 79548; 224.14819 3521491; 224.18162 1143767; 225.21803 50807; 225.41038 1710836; 227.24736 714590; 227.29959 13496; 227.61915 107689; 227.64508 140298; 227.64888 1791817; 227.82234 59310; 227.84939 15103; 228.10302 6130312; 228.16102 50831; 228.18634 70741; 228.43768 4859179; 228.55614 1184891; 228.65134 994241; 228.75174 4041865; 228.81691 9959482; 228.85627 18477; 228.85973 58294; 228.91844 498523; 229.33542 206041; 229.92353 193524; 229.94629 1424358; 230.02947 6450060; 230.14661 28205; 230.23248 1022488; 230.34486 1847719; 230.3635 76859; 230.50643 27692; 230.50758 1085278; 230.76299 67731; 230.77853 39525; 231.03874 1922070; 231.10999 8553229; 231.50041 1701836; 231.75597 2131550; 231.81649 3762425; 231.85543 47861; 231.98228 688545; 232.02054 50537; 232.1654 52850; 232.21892 9100807; 232.70581 1955074; 232.70992 34275; 232.82578 1501633; 232.84875 3225; 232.94027 6209; 233.08315 54893; 233.26582 1884380; 233.47293 81469; 233.57065 13427; 233.82516 47917; 233.87821 9638440; 233.96145 21525224; 234.20006 893421; 234.51467 7475661; 234.83382 136415; 234.89248 21939; 235.07146 139839; 235.21453 30961; 235.29659 14591759; 235.38064 18540; 235.9849 1330609; 236.09648 133041; 236.18439 3050; 236.35708 1837550; 236.66697 8139; 236.84548 47344; 236.93164 7967; 237.04394 3587; 237.10247 8662; 237.28839 32010; 237.76648 7606; 237.93471 67958; 238.02504 8748087; 238.03762 7183587; 238.10468 3017963; 238.21668 445731; 238.28861 79462; 238.46035 7296; 238.52085 56827; 238.61347 8706608; 239.19387 65732; 239.2846 7722596; 239.55936 68713; 239.6214 1695033; 239.91305 1326365; 240.03665 562693; 240.39633 22245; 240.68212 8310784; 240.72841 4609874; 240.80633 2065854; 241.15635 759793; 241.31928 15147; 241.56607 2176986; 241.98477 11039; 242.04799 212662; 242.24406 10800080; 242.3705 493226; 242.38155 4073; 242.66956 3016; 242.80152 8144789; 242.86871 23612; 242.88353 7530; 243.04353 8741; 243.09135 47543; 243.18093 46134; 243.29911 1416046; 243.61052 88218; 243.67127 25024; 243.75461 817978; 243.80082 25011; 244.21103 74250; 244.25182 4209639; 244.27812 7722229; 244.74565 27091; 244.80274 5400075; 244.93456 1170407; 245.07786 6119964; 245.33167 7474; 245.38383 46126; 245.46549 42090; 245.57056 5340514; 245.63197 63403; 245.81482 29754; 245.82659 1913341; 245.97461 8669; 245.99122 41820; 246.73376 2514717; 246.74071 3215838; 246.77418 188143; 246.79226 1238812; 247.12776 76361; 247.20516 2040802; 247.2737 6275327; 247.41977 185459; 247.51468 3126830; 247.64627 9918904; 247.72076 25309658; 248.54224 67511; 248.57369 9327; 248.5863 42183; 248.68755 165; 248.72366 2589954; 248.73802 20933; 248.78895 56996; 248.82232 593515; 248.85515 46573; 249.05142 32947; 249.216 160437; 249.82637 57605; 249.84256 12780; 250.21818 93719; 250.28042 884374; 250.2897 37365; 250.35354 13145; 250.71057 4072415; 250.83517 1591235; 251.02949 141157; 251.5093 27430; 251.58065 6169; 251.65429 12154; 251.74341 63352; 251.77709 79200; 252.15249 605827; 252.35127 13039; 252.52887 7429226; 252.77027 15299603; 252.78442 841753; 252.84111 354258; 252.85915 9958; 252.87512 42003; 253.16357 7759; 253.30361 589295; 253.35689 44817; 253.42282 29303; 253.5555 578360; 253.55786 21785; 253.85635 7498; 254.27365 5551308; 254.34621 463; 254.50587 2055911; 254.71569 3508; 254.84785 2116414; 255.09601 197403; 255.13673 25988271; 255.28593 57716; 255.54774 4982; 255.83419 43786; 255.96215 65347; 256.01549 21448; 256.03018 64990; 256.52771 887768; 256.57347 34890; 256.76411 59096; 256.82419 10794723; 257.18245 2295571; 257.19211 25059; 257.81983 24386; 257.84389 881841; 257.98188 116663; 258.02934 936210; 258.04972 7244438; 258.16345 16559; 258.2061 25928; 258.28035 448559; 258.54559 1463416; 258.6581 29030; 258.65938 29930; 258.79842 20334; 258.86051 1519; 259.20531 9406; 259.22702 7641; 259.32335 27801085; 259.37516 25994272; 259.48577 689244; 260.55817 4698415; 260.82128 791181; 260.90413 49356; 261.06092 1995414; 261.20753 589187; 261.33918 43416; 261.41117 49730; 261.50497 2698169; 261.56046 1043035; 261.58226 1345; 261.61446 30855; 261.64445 7836255; 261.99989 56604; 262.04412 17981; 262.06443 161354; 262.2914 31086; 262.38691 6850; 263.1137 158078; 263.27339 3393778; 263.32225 24553; 263.326 188041; 263.49758 3662123; 263.53626 198256; 263.71795 4330693; 263.73668 2467; 264.07428 1802267; 264.21817 77541; 264.2502 2364828; 264.26135 34097; 264.32901 3285173; 264.39011 178491; 264.54476 3097201; 264.76087 27418; 264.87412 206408; 264.89868 6465419; 264.96188 1048503; 265.04792 48874; 265.19656 77227; 265.20992 4304; 265.28627 18138; 265.31254 47686; 265.99256 4521343; 266.37006 1007; 266.60622 50484; 266.77734 158888; 266.8935 26670; 266.91566 15292; 267.01526 676634; 267.2885 3822; 267.36983 4243681; 267.90525 6743156; 267.98804 27257; 268.02558 20353; 268.05515 517050; 268.34628 51163; 268.41852 485; 268.46376 1077151; 268.77868 8684; 268.78016 1046608; 268.87599 4957506; 268.95229 23317; 269.04209 69929; 269.06665 1548977; 269.18042 61447; 269.57364 10059; 269.80132 6961; 269.90375 44852; 270.06432 22044; 270.25718 812853; 270.5661 608845; 270.87062 21854597; 271.02604 816473; 271.05671 3841307; 271.07472 5490398; 271.1291 34772; 271.33972 9463; 271.58625 8255853; 271.98628 37987; 272.12439 3301948; 272.34606 5066; 272.96828 71859; 272.99137 2876661; 272.9916 107437; 273.09467 27317729; 273.10994 1525; 273.47895 28538; 273.47956 53275; 273.48901 29504; 273.5874 164752; 273.61664 18982; 274.17543 25489112; 274.2038 30189; 274.25223 333223; 274.50126 1833859; 274.52395 6659; 274.60208 151446; 275.14903 1614; 275.24064 29045; 275.33602 76333; 275.38933 1522000; 275.38955 58792; 275.41757 42010; 275.69284 54540; 275.70936 73344; 275.84038 134438; 276.06554 1070651; 276.28112 3945462; 276.511 50387; 276.58525 1386827; 276.58613 822789; 276.60163 4847542; 276.60822 38314; 276.73445 47926; 276.87828 309380; 277.18096 959101; 277.24473 3559174; 277.457 27974; 277.64183 12720; 277.70984 691; 277.87186 27936; 278.02251 6655; 278.18971 78760; 278.43059 150608; 278.59552 97121; 278.63074 67751; 278.81148 168618; 279.25903 67593; 279.82241 2700011; 279.82661 1617761; 280.03544 3875915; 280.37075 349024; 280.65391 651958; 280.69568 374; 280.74058 357741; 280.76433 939159; 280.88494 26680; 281.13045 147283; 281.2877 31373; 281.88558 85321; 281.88868 25667738; 282.17346 30405; 282.68658 1840413; 282.87456 62226; 282.97422 7712035; 283.79362 943335; 283.83424 51964; 283.87619 34043; 283.95837 1710902; 283.96899 2941; 284.1737 166717; 284.22645 8390; 284.35908 21591710; 284.37843 74446; 284.38772 56920; 284.52136 151032; 284.57901 9831; 284.77257 1420547; 285.33103 421224; 285.65568 134400; 286.37413 7432; 286.37489 1384908; 286.62892 71657; 286.71491 56761; 286.75403 291350; 286.84688 23039; 286.88343 6965; 287.07251 7215910; 287.30912 815595; 287.75303 27982; 287.95288 50455; 288.21583 1919132; 288.35191 7153; 288.40191 1504017; 288.49411 46760; 288.56664 21801; 288.84687 70040; 288.91889 9808; 289.15591 12039; 289.39922 28348; 289.54393 32169; 289.59614 865972; 289.73367 6074; 289.99827 76181; 290.44913 80858; 290.60188 1760621; 290.70873 1979581; 290.76349 140548; 290.79888 23888; 290.93507 1037517; 291.06175 707652; 291.09072 6837313; 291.24915 1772034; 291.2882 48258; 291.78584 8552540; 291.81979 3478; 291.93417 51466; 292.16606 2254424; 292.44378 1834916; 292.59952 509943; 292.67792 2622; 292.75984 3460556; 292.94127 13153732; 293.38277 14245; 293.85501 19566493; 293.86671 1226; 294.32245 36073; 294.56846 31932; 295.05679 7625; 295.11554 14875; 295.39775 366155; 295.44814 9242905; 295.45108 72520; 295.477 4775373; 295.93865 1906984; 296.10002 1249015; 296.27277 242387; 296.46532 483523; 296.53317 67362; 296.59916 1823119; 297.03406 43702; 297.16043 7022; 298.00743 4144327; 298.5214 27321; 298.72396 65950; 299.09341 780; 299.24573 8175; 299.53272 5716171; 299.77097 42211; 300.05458 39054; 300.12413 99037; 300.19283 1870389; 300.37585 6788; 300.74665 7518003; 301.09164 52650; 301.26767 2009; 301.34187 8702; 301.47853 63893; 301.63097 626256; 302.07572 195091; 302.57473 282659; 302.77648 2383526; 303.00188 62292; 303.13321 28264; 303.23425 35304; 303.274 11164; 303.3328 7391489; 303.33784 23551; 303.46604 6124; 303.90752 65374; 304.04552 56228; 304.04782 982010; 304.09783 30644; 304.54944 49281; 304.72084 7935; 304.81852 7850; 304.85046 1212258; 305.04972 65584; 305.11155 380668; 305.31976 1257977; 305.4121 27912; 306.7244 66878; 307.08327 18521683; 307.17845 44135; 307.36936 1228681; 307.93404 126271; 307.93457 73260; 308.11313 7952; 308.19728 2129160; 308.20062 28862; 308.33451 21656; 308.3612 1939416; 308.38456 3506441; 309.06169 22568716; 309.19355 68071; 309.22008 2947877; 309.2328 6699; 309.45252 3251156; 309.5253 43019; 309.58018 3750; 309.59307 29886; 309.96778 72248; 310.02099 283472; 310.03008 20843; 310.41593 7470; 310.45846 1830; 310.62838 4167; 311.00468 178554; 311.51713 123572; 312.05162 56891; 312.17341 66347; 312.26704 17809; 312.84438 138289; 312.99156 6883717; 313.00123 542237; 313.11696 1871722; 313.20291 63549; 313.42777 7179; 313.43246 45697; 313.78037 1324300; 313.9211 6128684; 313.97815 61153; 314.03443 1787513; 314.0385 4900; 314.1422 4665354; 314.44209 582677; 314.62243 9427727; 314.68692 75254; 314.85618 2589514; 314.98794 22959; 315.21946 835836; 315.44793 53846; 315.67314 21868; 315.78553 21396; 315.98476 69915; 316.40756 20395; 316.4182 550827; 316.64114 21088; 317.02763 2714; 317.07094 9749; 317.22167 24990; 317.26541 29474; 317.30214 13469182; 317.44604 11573; 317.90251 19048959; 318.03131 1079349; 318.09677 63295; 318.29135 14574; 318.37052 450903; 318.98908 72429; 319.20557 190149; 319.21697 19243; 319.5864 25863; 319.63086 56395; 319.82113 982919; 319.86509 1137538; 320.02918 177186; 320.17002 27809; 320.25821 34578; 320.27986 9764159; 320.35739 2810262; 320.59488 4901; 320.80094 23524; 320.91945 6995321; 321.22129 44071; 321.22382 1046721; 321.53158 486; 321.5493 45102; 321.72334 43249; 321.94518 28834; 322.05481 1466446; 322.07343 7227; 322.25432 177620; 322.39174 25548; 322.42343 73993; 322.78335 83989; 323.07385 827075; 323.13007 53553; 323.42496 44; 323.42845 1529428; 323.45084 126060; 323.53133 175561; 323.55255 1120; 323.65719 78152; 323.79561 12108; 324.03508 1688; 324.12327 8632; 324.39867 13509; 324.48346 1710295; 324.50646 5291553; 325.0529 195887; 325.1189 27242; 325.21422 46416; 325.53075 417876; 325.55805 3866375; 325.57038 6760; 325.69156 4820755; 325.89958 4856; 326.05987 1154396; 326.15415 95436; 326.34308 6194458; 326.453 3991702; 326.65735 71638; 326.70775 1519288; 326.84326 37; 327.16206 5530; 327.24016 134597; 327.45984 1368823; 327.73092 195376; 327.93422 43060; 328.01746 2525258; 328.85711 46135; 328.87582 16338975; 328.94408 184855; 329.00746 842487; 329.49241 460; 329.60942 22979619; 329.65418 1179; 329.7002 61439; 329.85161 26656794; 330.18877 3027337; 330.55499 597223; 330.93658 307; 331.19425 4688763; 331.20529 17756860; 331.54049 41270; 331.63476 1000; 331.68331 3693865; 331.92557 393502; 332.11596 21302; 332.19318 7741; 332.36695 4361390; 332.53226 8698; 332.72585 94171; 332.78022 36453; 333.28525 79115; 333.39041 302990; 333.4295 22451; 333.46384 49438; 333.96807 60702; 334.19546 8950; 334.49255 23289; 334.75333 66266; 334.78477 8851; 334.843 760040; 335.09358 3024177; 335.15257 133; 335.19174 46955; 335.2288 59802; 335.6387 53705; 335.88772 2997869; 335.9331 4404752; 336.01257 4312315; 336.15593 42283; 336.25936 39293; 336.4759 13926; 336.63486 7152; 336.91179 804946; 336.94589 37794; 336.98198 56221; 337.13625 607901; 337.3132 5080866; 337.46759 26743; 337.5382 29599; 337.79727 43028; 337.84779 1629553; 338.06667 8691720; 338.13318 78244; 338.31525 1160179; 339.11048 2856; 339.15459 69618; 339.30286 628269; 339.30479 32971; 339.36808 6908; 339.89183 24531298; 339.93745 6902; 340.01377 403551; 340.53117 1763729; 340.97711 4400777; 340.99176 1437566; 341.08478 7900; 341.12192 4218625; 341.25514 55432; 341.62715 2353429; 341.73402 51783; 341.73642 3643732; 341.79516 3233565; 341.95954 28377; 342.64827 4773811; 342.68619 10618; 342.75747 2756006; 342.94561 3089561; 343.06496 36057; 343.22566 1987643; 343.31372 414010; 343.74811 2865; 344.04604 48671; 344.168 25453; 344.21697 1883849; 344.24335 43148; 344.28801 2582; 344.39137 9895; 344.45724 171507; 344.49008 11274; 344.78259 43298; 345.25745 26118; 345.53224 195157; 345.66641 1272843; 345.90649 405240; 346.20772 681634; 346.27358 69812; 346.41685 79405; 346.47847 56385; 346.62615 98; 346.68824 124057; 346.82668 1883280; 347.37998 92773; 347.65424 142032; 347.89215 3519480; 348.10753 3638303; 348.25048 34560; 348.26038 1334958; 348.42344 891166; 348.56458 39194; 348.60689 6399333; 348.84032 4590866; 348.96685 7374438; 349.32002 52178; 349.42078 17554; 349.44433 358360; 349.79477 5560; 349.90006 1056133; 350.0881 5866; 350.1383 19821; 350.81809 51878; 350.8942 62134; 350.97094 3985103; 351.05979 3974; 351.28934 60161; 351.4732 8312736; 352.08696 1186485; 352.17296 75015; 352.2413 1538718; 352.69764 3207; 352.77145 28489; 353.02506 1334089; 353.09284 4223653; 353.46761 22437; 353.5444 61595; 353.78746 64920; 353.80036 1235984; 353.8639 146432; 353.88138 9759; 354.24579 24600; 354.36475 579347; 354.36815 30177; 354.45151 5777; 354.52174 717963; 354.70571 39501; 354.97119 27521; 355.03823 2851903; 355.53788 9585; 355.74418 2594580; 355.93684 68525; 355.95433 750; 355.95997 43068; 355.96775 24133; 355.97979 85968; 356.18996 39636; 356.39501 301796; 356.55933 9159703; 356.80907 7747981; 357.17746 1570613; 357.59033 28672; 357.82314 26843; 357.98274 1782053; 358.12574 182314; 358.16179 75355; 358.31018 3014550; 358.46189 10869; 358.50927 41070; 358.87929 24564; 358.90577 13020; 358.91625 295992; 359.04461 48967; 359.14291 32621; 359.37634 4726853; 359.57641 185; 360.36284 55165; 360.80884 16876; 361.05745 4992; 361.27046 51071; 361.68795 4237659; 361.70521 59877; 362.05344 1056823; 362.13812 76246; 362.31961 2902; 362.68354 39951; 362.743 1895517; 362.84137 23931; 362.91305 3384423; 363.3174 214511; 363.85998 1524483; 363.95526 145214; 364.02341 4720; 364.185 13409; 364.37576 79016; 364.51081 1995; 364.72763 549750; 365.05418 11440; 365.42122 6659; 365.52279 1102534; 365.63446 351807; 366.00234 1412365; 366.10968 19645568; 366.44992 23963; 367.12153 6768296; 367.12883 32045; 367.18753 21387505; 367.24587 84766; 367.71704 29606494; 367.87142 7899340; 367.8773 579665; 368.0702 26518; 368.22713 9471; 368.61232 5276681; 368.66722 2316206; 368.67739 1898891; 368.70619 62841; 368.74657 561382; 369.11088 521137; 369.16048 10558; 369.16091 1968748; 369.74619 59659; 370.01265 43836; 370.05591 9586874; 370.20264 2061733; 370.35427 25112; 370.4105 144521; 370.51633 16938; 370.58125 73352; 370.79507 1626105; 371.14073 3483; 371.16308 63882; 371.20302 65010; 371.24083 43367; 371.35451 3437; 371.86735 5659759; 372.25895 1877; 372.29617 17598; 372.60548 16279; 372.61607 23710; 372.65877 67489; 372.9825 689023; 373.33337 4718338; 373.62336 107233; 373.93214 29760; 374.05085 1916308; 374.15827 47087; 374.572 13171; 374.83022 1716888; 374.88499 1488902; 375.07786 662656; 375.11909 26281; 375.66934 2619; 375.70745 69169; 376.05531 615803; 376.10706 27351; 376.19207 660929; 376.4649 32212; 376.61611 62386; 376.63466 175431; 376.82143 57326; 376.83007 3170; 377.02491 12037; 377.29193 40584; 377.34292 1724239; 377.6589 7072838; 377.80171 9072251; 377.87694 1410485; 378.385 3059711; 378.47687 7632; 378.64127 8203; 379.0712 3533139; 379.34305 3207493; 379.53031 61957; 380.20558 28046892; 380.47233 176182; 380.73533 37741; 380.8122 90799; 380.83892 5239; 380.88593 121951; 381.04822 3617810; 381.47619 43449; 381.53812 4424; 381.8254 41866; 381.85166 103279; 381.8582 23403; 382.52429 29412; 382.54489 638668; 383.30113 4147485; 383.38694 2469550; 383.47941 1027815; 383.60894 9853; 383.93313 7395; 384.15132 27469; 384.21478 1748409; 384.37319 740757; 384.47729 28267; 384.48943 1878143; 384.50237 2678291; 384.50763 19636; 384.53761 4891977; 384.78473 11388; 384.79468 8177; 384.90517 3126417; 384.991 45387; 385.01131 1996083; 385.16168 62301; 385.29945 22239; 386.0167 58027; 386.02023 15839; 386.91121 3430407; 386.972 1240853; 387.18107 32658; 387.40615 7639; 387.60798 24733; 387.61462 5933834; 387.658 634028; 387.68189 1194125; 387.70504 29262; 387.71771 5468; 388.11012 1894501; 388.16987 103129; 388.33324 79283; 388.33483 2530; 388.6696 1217005; 388.73225 2390837; 388.84598 7954; 388.85022 12224633; 388.93922 20708; 389.00212 888333; 389.18126 3481395; 389.44238 71944; 389.51641 3155865; 389.57864 4764447; 389.58962 3400449; 389.70664 645; 390.01528 926267; 390.02694 1556; 390.19963 1492413; 390.27812 28206; 390.58532 10036280; 390.63783 9026735; 390.67912 834823; 390.7535 171763; 390.76293 51044; 390.80935 229939; 390.85724 4869; 390.86387 9997828; 390.88559 4062; 391.12488 32631; 391.22415 495617; 391.39289 24694720; 391.80976 5365486; 391.82383 366664; 392.04321 118241; 392.39772 1860895; 392.40499 427278; 392.62657 28321; 392.87879 68729; 393.34698 8429468; 393.41905 53778; 393.55402 5417055; 393.58276 29135; 393.89757 1096; 394.06257 20725; 394.1087 65134; 394.35478 50447; 394.35905 63402; 394.5295 1106; 394.6619 17326; 394.8422 22211; 394.99043 59217; 395.1151 28094; 395.17085 7882654; 395.42092 2618; 395.44293 120727; 395.4559 4420; 395.59996 136475; 395.97107 28680; 395.97572 21338; 395.99262 11486; 396.24942 4600084; 396.42741 26958; 396.7957 53758; 397.03248 227078; 397.10912 29111; 397.33581 983963; 397.64147 1602476; 397.94184 27861; 398.11077 56104; 398.19033 56882; 398.33006 60443; 398.64239 49043; 398.75487 81465; 398.77855 21821; 398.87852 6388; 399.05079 6570; 399.71245 208561; 399.99756 64944; 400.31566 26167; 401.78486 633144; 401.85362 8047206; 402.19341 1413900; 402.25889 796803; 402.51004 1688549; 403.47046 2684842; 403.55631 217443; 403.60633 27673; 403.60675 386192; 403.9764 3677640; 404.17338 410238; 404.24699 4162497; 404.42195 146568; 404.70535 953152; 404.78183 615603; 404.85975 6199; 404.8861 71856; 404.95763 2754745; 405.18856 3695656; 405.95826 27351; 406.51512 790190; 406.61289 3601754; 406.75759 2424748; 406.80408 25078278; 407.10545 137254; 407.17453 680321; 407.25004 28743; 407.30592 46516; 407.3416 45382; 407.67822 10986904; 407.77875 20448; 408.0253 8843553; 408.35363 6764553; 408.48468 4030202; 408.68731 594154; 409.10286 64344; 409.2066 6537; 409.25248 45052; 409.3695 63131; 409.44352 22908; 409.59136 4906723; 409.92198 6018997; 410.02342 21879; 410.07456 27237965; 410.10928 40385; 410.34712 26564; 410.92854 9668; 411.67473 1194847; 411.70277 1037840; 411.74646 8369; 412.27488 3418989; 412.58418 21408647; 412.67389 600850; 413.44542 5757; 413.73623 31515; 413.86481 36788; 414.15354 29740; 414.24933 6772; 414.45871 699732; 414.5591 5858195; 414.90342 969865; 415.10149 2184677; 415.15069 5868; 415.22074 443679; 415.23904 2783; 415.46891 32436; 415.54233 50048; 416.24502 24309143; 416.32798 55162; 416.37101 3407281; 416.3749 60937; 416.60941 1056943; 416.75061 5664; 416.7819 20754246; 417.47138 13088287; 417.54671 55331; 417.67257 2784; 417.80591 1254278; 417.99768 1148094; 418.11023 5858; 418.31902 18979; 418.33603 10786440; 418.42334 639623; 418.51346 577844; 418.5284 461995; 418.75092 5204; 418.95649 5037936; 419.0318 2761189; 419.05773 2816315; 419.10527 6621; 419.74973 8984827; 420.51151 52114; 420.54402 75924; 420.63497 27662; 420.69627 94093; 420.90246 8432; 421.36091 890061; 421.41596 1814705; 421.43129 48035; 421.62666 52894; 421.74004 29161; 421.97237 1121764; 422.15072 7285; 422.24396 1193322; 422.33571 1177463; 422.45696 6795; 422.47596 910382; 422.73003 2193279; 422.81326 60455; 423.46443 65346; 423.51077 8060878; 423.86525 128036; 423.90031 1698334; 424.20739 2461133; 424.40376 27424; 424.49784 56379; 424.62409 606087; 424.67532 1713681; 424.81061 2212; 424.86856 607169; 425.27671 109710; 425.29236 914; 425.98218 847821; 425.99028 42917; 426.24818 2537974; 426.27248 6843367; 426.68527 1365426; 426.76073 29750819; 427.31429 51679; 427.4874 1780205; 427.7594 7463223; 427.99488 814679; 428.41424 10726; 428.46067 73482; 428.72101 8033; 428.78006 65389; 429.06092 7800003; 429.0764 160864; 429.33149 32992; 430.19411 23487; 430.68252 43884; 431.24381 28393; 431.28293 3761106; 431.39658 693224; 431.43496 71121; 431.45175 79649; 431.72411 1916436; 431.77402 4583; 431.92667 24886; 432.18882 1291568; 432.32542 37120; 432.4232 45363; 432.48844 18497; 432.6696 76523; 432.71275 8527; 432.82239 5640; 432.8304 26586; 432.85314 54329; 432.88208 429963; 433.13605 40598; 433.4703 19549; 433.72535 748; 434.04383 1628689; 434.25952 1650351; 434.498 4808; 434.64586 29030; 434.70804 361554; 434.72714 60293; 434.88892 263642; 435.0141 29889; 435.03088 1463; 435.19573 1222402; 435.46384 293992; 435.56121 3357; 435.57664 29277; 435.735 59488; 435.78237 18964; 435.84036 169910; 435.88691 387; 435.94507 202674; 436.03234 77357; 436.98492 1184564; 436.9955 4733; 437.25049 447683; 437.32358 114551; 437.36107 897020; 438.10102 66246; 438.10857 46019; 438.14538 54186; 438.38784 1509812; 438.46363 3650; 438.47016 1644441; 438.59836 207920; 438.75342 8840; 438.95708 168318; 439.39425 4148659; 439.68722 5540406; 439.76054 3875; 440.12467 3168439; 440.24744 2919; 440.27556 5116136; 440.37707 8943772; 440.62245 47592; 440.76382 896316; 440.90868 65139; 441.41006 176919; 441.54201 1115; 441.6022 38455; 441.61652 61522; 441.65794 11560; 441.73514 2587111; 442.36009 23925; 442.36627 5501; 442.7186 3792; 442.75716 6630482; 442.76638 7316534; 442.91871 11665; 442.92786 23663; 442.93026 54740; 443.31925 32068; 443.33457 57248; 443.35008 7574577; 443.3857 1577166; 443.72743 39652; 444.09168 3143707; 444.3491 25962865; 444.92352 34029; 445.11505 3951435; 445.17048 8041058; 445.21832 51639; 445.26272 6258; 445.51521 25839; 445.62215 2533861; 445.81469 4267382; 446.09259 49018; 446.71211 45880; 446.73959 202723; 446.93488 1956; 446.99169 8613070; 447.08498 3197; 447.33761 5075; 447.48777 66209; 447.76651 28555; 447.82362 63188; 447.8669 27112; 447.96858 30336; 448.01081 55736; 448.17826 6780151; 449.08839 1120196; 449.44363 93653; 449.47811 155202; 449.56786 10892; 449.63442 14946; 449.67517 27800; 449.74106 17603; 449.93267 7223359; 450.0624 76606; 450.60314 22828663; 450.62299 490026; 450.65107 3782921; 450.7372 1464797; 450.83326 77772; 451.08949 23819; 451.1371 22470; 451.22879 1196084; 451.31426 19646; 451.37872 831038; 451.41176 1129031; 451.47077 46526; 451.50034 4669; 451.59332 1289242; 451.75731 23100; 452.15111 77009; 452.38504 3634941; 452.6142 5810; 452.89802 68153; 453.13082 4006057; 453.24634 28213; 453.33353 36137; 453.5628 2927; 453.77073 2089104; 453.78427 7758362; 453.7848 4950465; 453.81958 17881; 453.95345 6203115; 454.33697 28915905; 454.63484 2727035; 454.6532 1344135; 454.794 30686; 454.89367 60733; 455.15877 383805; 455.25452 72932; 455.5333 8330; 455.90276 3386; 455.96247 21772; 456.25885 1754424; 456.29637 7244; 456.55832 3047; 456.59643 20728; 456.6579 1527135; 456.69512 1973666; 456.86433 7660; 456.94863 1993230; 457.23127 9870381; 457.37908 754474; 457.43535 28671; 457.44608 32606; 457.45804 9320975; 457.4996 2659801; 457.52967 20476; 457.57493 118353; 457.72684 6024353; 457.78076 9942767; 457.83384 5113089; 457.94565 2294810; 457.94809 1892399; 457.95948 77249; 458.14965 44164; 458.2952 2498680; 458.76738 9487151; 458.919 7272555; 458.98163 1578554; 459.05184 2642321; 459.29667 9113535; 459.39868 41306; 459.59495 6987; 459.61534 3920138; 459.70526 29036; 459.96516 65572; 460.31342 4202114; 460.37834 19074; 460.51736 42965; 460.52448 3696669; 460.95122 30439; 460.97547 65525; 460.99127 724661; 461.00623 21718; 461.97137 51523; 462.03264 15405; 462.17804 322461; 462.21398 240927; 462.23279 22862; 462.28159 33609; 462.3201 802251; 462.45029 21878; 462.4686 1994778; 462.56531 27483; 462.5765 28227; 462.5801 171788; 462.61637 53677; 462.61955 1630588; 462.62118 4876234; 462.64365 425020; 462.782 4638949; 462.80825 8004615; 462.82851 72385; 462.92376 24543; 462.99916 930577; 463.01403 134024; 463.23051 33332; 463.43643 39431; 463.44699 60398; 463.51594 69084; 463.61893 384914; 463.78773 156077; 463.91055 8529; 463.92758 965274; 463.94052 11702029; 464.20794 46517; 464.41906 759344; 464.55589 788965; 464.57857 4379423; 465.30316 37685; 465.41462 4097505; 465.90661 1; 466.01101 1149478; 466.15547 4273070; 466.19803 70182; 466.57183 41559; 466.95345 21781; 466.99659 23165; 467.20751 5184132; 467.27243 35710; 467.29501 7815; 467.37473 21036; 467.45732 9764; 467.4866 74109; 467.49109 7769; 467.65079 7772950; 467.9195 55062; 468.07428 8911973; 468.26366 49936; 468.67249 78724; 468.72654 3244711; 468.75824 3100; 469.35536 46478; 469.70027 1616274; 469.73849 280427; 469.8621 29251; 469.98753 1967446; 470.29178 735250; 470.31612 154706; 470.50733 1520862; 470.51049 1282093; 471.08769 29321; 471.34236 26243; 471.42155 1454778; 471.83693 341143; 471.84098 23822; 471.91427 1270661; 472.01043 6378435; 472.18498 182509; 472.48326 22633; 472.73006 839; 473.06988 39544; 473.11585 1557742; 473.24091 134679; 473.25889 29309; 473.42403 137365; 474.00883 7383371; 474.04689 20504; 474.08403 3581; 474.3287 64089; 474.45638 3522001; 475.47008 30075; 475.75227 95544; 475.83586 34097; 475.93565 7165; 476.01604 21325; 476.32969 3432567; 476.36167 725950; 476.70438 279253; 476.90185 45528; 477.12801 1582177; 477.2188 35432; 477.22014 2782031; 477.47905 127445; 477.74288 1908267; 477.81098 11680; 478.10404 2904938; 478.12903 10577; 478.15972 6930; 478.25758 692; 478.4192 1068753; 478.58753 1574389; 478.82124 158069; 478.83756 3412294; 478.90832 148379; 479.34242 8106; 479.35662 8952; 479.5709 689342; 480.04234 39515; 480.32203 4133; 480.38162 20044; 480.81444 513260; 481.02763 21550; 481.08633 259859; 481.19757 73814; 481.29945 41138; 481.37726 3448250; 481.50093 5713464; 481.67107 362394; 481.79858 21401; 481.86273 799492; 481.97058 22880; 482.05685 105491; 482.22934 1509121; 482.25046 43955; 482.33836 974; 482.41085 1093378; 482.68986 6972; 482.7171 114450; 482.82588 1719290; 483.54889 22947; 484.01534 9366; 484.47733 19680; 484.50824 3462; 484.67902 34889; 485.04179 9889; 485.20215 45563; 485.34087 59035; 485.49598 35196; 485.54112 1958618; 485.62961 193670; 485.69368 8458; 486.08089 2218; 486.16748 546743; 486.29965 11660; 486.31834 43035; 486.69448 6495796; 486.8046 144739; 487.00216 7155; 487.01803 46442; 487.03102 644613; 487.37639 50613; 487.37983 73282; 487.64482 15009; 487.69835 25057; 487.85857 1104853; 487.96616 42640; 488.11364 2907; 488.21365 19008; 488.29051 202949; 488.52804 3774831; 488.61541 22279; 489.18698 25448; 489.21494 1329006; 489.92909 2514847; 490.10901 3975230; 490.16597 8051; 490.29161 18306; 490.35858 7415; 490.54793 14808; 490.66609 57115; 490.78011 2539645; 490.91248 1922243; 491.04586 1864816; 491.11836 6455541; 491.65136 75277; 491.82274 3411722; 491.82449 63096; 492.13017 69083; 492.30919 29549; 492.36277 7591; 492.43253 71692; 492.59024 1644444; 493.06364 73320; 493.07272 70355; 493.33871 46701; 493.53014 16646; 493.59023 28938; 493.80045 2577536; 493.85991 64401; 494.03133 875580; 494.034 4555; 494.26736 7146013; 494.581 37255; 494.72653 44947; 494.76217 1244214; 494.99169 17238; 495.08378 27299; 495.1035 3132; 495.13296 78550; 495.27114 1941; 495.38247 16359828; 495.70225 10391; 496.16847 52036; 496.25203 180934; 496.38613 4230141; 496.47435 1420627; 496.53327 1249370; 496.61045 26830; 496.63796 3986104; 496.78525 41622; 497.1754 460197; 497.32035 21614; 497.35084 54189; 497.76001 1708542; 497.80566 30398; 497.88701 883493; 498.01802 11099494; 498.03545 1475024; 498.35226 50110; 498.38304 40620; 498.7187 26452654; 498.95306 28868; 499.05604 54624; 499.06989 44366; 499.21777 1090580; 499.4331 1545; 499.47948 42678; 499.51634 26696; 499.5624 36181; 499.59279 1843522; 499.69067 27921545; 499.76456 1767857 diff --git a/traffic/traffic_5e9_2.txt b/traffic/traffic_5e9_2.txt new file mode 100644 index 0000000..f1785b2 --- /dev/null +++ b/traffic/traffic_5e9_2.txt @@ -0,0 +1,7 @@ +<2, 0>: 0.07989 186357; 0.10003 344123; 0.13852 14325; 0.31922 488488; 0.33357 2220; 0.34213 7698; 0.64474 9742140; 0.75774 4206704; 0.77259 1791794; 1.44165 56548; 1.61819 4722930; 1.79396 6982362; 1.95172 9872269; 1.95506 43135; 2.14977 898814; 2.35173 75662; 2.81151 2300115; 2.91789 1835077; 2.95268 941293; 2.98267 12800; 3.05225 214943; 3.08017 26092; 3.38113 136612; 3.44415 13417; 3.45698 26888; 3.86517 33658; 4.02798 735518; 4.79557 1563424; 5.97184 1428473; 6.08719 20916; 6.47263 9806; 6.53405 24589; 6.86713 27879; 6.97339 624909; 7.07432 849; 7.1 895927; 7.46383 68503; 7.60756 1426521; 7.8577 5540365; 8.02924 499588; 8.26802 218779; 8.3466 189904; 8.41283 40977; 8.4553 2946; 8.57734 42037; 8.79721 5975; 8.81687 2521; 8.83833 753262; 9.20372 2506; 9.21901 70353; 9.42529 14818; 9.52575 491598; 9.5555 140737; 9.74483 6843; 10.03503 472434; 10.04806 26837; 10.0615 1830704; 10.32608 1400599; 10.49995 941769; 10.7231 22071; 11.53601 984; 11.57722 61193; 11.6738 1182178; 11.95314 43465; 12.02573 1412394; 12.0682 52104; 12.07671 3248449; 12.292 1928222; 12.3165 92671; 12.80305 37804; 12.81285 6830; 12.81639 56145; 12.8798 110894; 12.92421 322915; 13.03063 22724; 13.06142 845386; 13.11107 3313; 13.13932 76327; 14.00955 22469718; 14.25259 744; 14.48308 425395; 14.49778 25212; 15.02556 46637; 15.45216 130216; 15.4541 6326883; 15.54877 6914428; 15.56136 200481; 15.63079 22267984; 15.73248 198203; 15.91235 63736; 16.18284 193073; 16.41742 4661895; 16.42236 35423; 16.60812 1257; 16.70191 7223394; 16.78971 9597969; 16.81124 3439071; 16.97005 6640466; 17.01362 11097; 17.14191 1362392; 17.38246 75402; 17.51167 25186; 17.77733 26409; 18.08024 56603; 18.19841 941542; 18.23379 47978; 18.24447 73976; 18.3336 1145115; 18.61391 7799; 19.25852 5322213; 19.82477 45257; 19.91168 1381; 20.04561 27762; 20.19509 186809; 20.34722 40318; 20.61962 73279; 20.67132 1706; 20.72127 8800595; 20.81812 51258; 21.02009 5282; 21.02171 117; 21.11318 5847; 21.34374 30572; 21.54719 1950767; 21.56529 1980530; 21.67253 4470; 21.94605 57585; 22.51099 4356097; 22.84733 421; 23.12883 362944; 23.42964 61307; 23.45021 41633; 23.6069 16581; 23.76405 3944428; 24.24143 256077; 24.42431 8858887; 24.6981 78564; 24.88864 8348; 24.90053 718084; 24.95999 3006134; 25.00702 1118282; 25.09733 16030; 25.15548 71813; 25.29046 23598; 25.92897 2685960; 26.69005 75953; 26.86179 36776; 27.07688 7381; 27.15941 35956; 27.2893 64434; 27.41739 2690416; 27.99084 1284255; 28.16851 18531; 28.26875 26106; 28.29079 1991099; 29.40605 12302; 29.54949 124346; 29.59793 323660; 29.75515 855631; 29.8008 168730; 30.01827 21803; 30.09891 1133656; 30.15022 14561; 30.19678 461042; 30.51405 987659; 30.83444 26569; 30.91204 71705; 31.18705 19793; 31.29678 680; 31.37629 8223282; 31.50854 3242335; 31.65968 72823; 31.71456 8959552; 32.05289 675246; 32.20879 65163; 32.23793 70670; 32.31064 16761; 32.44438 13967; 32.55457 376107; 32.77472 68446; 32.7873 23990; 32.99364 27977; 33.24949 473329; 33.44619 1930693; 33.48436 978101; 33.52299 46255; 33.52569 4964824; 33.55808 1362609; 33.57239 23684; 33.6123 58711; 33.77931 58947; 33.91782 18926; 33.99368 2886846; 34.00075 2116732; 34.01638 73973; 34.31862 9328; 34.36864 2599992; 34.9654 45245; 35.10802 35180; 35.12262 3142910; 35.3268 192875; 35.42303 37482; 35.70708 6270; 36.02633 5909111; 36.83392 13546; 36.87524 7581001; 37.54339 39419; 37.6882 82086; 37.97208 21261; 38.53144 19173230; 38.56074 7558265; 38.64793 5855; 38.76127 5035; 38.77695 1208947; 38.81991 336780; 38.86786 59129; 38.93262 17880; 38.97452 48567; 39.00464 29154; 39.00598 176114; 39.03312 53115; 39.42962 1061568; 39.43073 863588; 39.81476 7380245; 39.94843 103428; 39.95316 796853; 39.98168 106446; 40.26098 66765; 40.32365 1670671; 40.37327 3771909; 40.62975 197606; 40.89438 77; 41.15904 616042; 41.38665 4275; 41.43197 75701; 41.5485 960660; 41.68324 26; 41.7308 1898204; 41.94302 256217; 42.32637 1319498; 42.66028 47171; 42.83478 7203989; 43.04247 15955147; 43.27137 7682731; 43.95036 7501; 44.01633 57953; 44.02294 281; 44.06391 22918; 44.15917 101785; 44.22404 2453183; 44.91845 7829315; 44.93612 2728141; 45.1603 9602255; 45.20882 1540863; 45.52307 137269; 45.86908 17504; 46.01848 26308068; 46.08862 6097; 46.68884 26422; 46.75128 3390213; 46.82471 732405; 46.83623 3240548; 47.06082 1094150; 47.19518 28129; 47.3008 2717244; 47.86811 17866660; 47.96814 36753; 48.12088 3690519; 48.14093 82488; 48.47307 7620921; 48.65391 1750685; 48.66411 46792; 48.71349 45288; 48.99935 7951; 49.01108 4636632; 49.0457 49757; 49.0477 31288; 49.29111 15832; 49.48341 586991; 49.6746 9939073; 50.00028 143985; 50.19214 52744; 50.24663 269306; 50.29562 21575; 50.31989 23304; 50.4117 8698; 50.51226 4788; 50.59092 64835; 50.73318 1103420; 50.83937 573377; 51.33805 1176735; 51.5013 18683960; 51.57628 67098; 51.5991 7652; 51.65014 4926287; 51.793 74136; 51.89574 1987926; 52.03196 5831; 52.13049 9989093; 52.21837 3949; 52.36922 21860; 52.40681 763784; 52.60653 4965; 52.67256 71888; 52.8892 3033006; 53.07807 9971; 53.22406 540895; 53.33305 28065; 53.52833 29188; 53.77926 1539816; 53.79528 824620; 54.14428 64806; 54.15764 24241; 54.36526 30971; 54.65797 73981; 54.69935 121489; 55.02602 15592784; 55.04993 5376; 55.11586 3614; 55.20141 593942; 55.3521 2155686; 55.67605 43962; 55.82643 427; 55.96178 6544221; 56.1281 65431; 56.81802 6081498; 56.83168 846; 56.83524 83501; 56.96805 365329; 57.30964 8968002; 57.37639 56852; 57.85721 78289; 57.87175 5275836; 58.06112 2412; 58.18472 862076; 58.2579 873; 58.51035 1071312; 58.86679 766105; 58.93166 40076; 59.01772 40829; 59.36011 6708; 59.39159 24114; 59.72213 21499; 59.98618 899414; 60.13008 76490; 60.49184 250618; 60.5474 54672; 60.73685 79755; 60.7455 1652389; 61.01383 339663; 61.10514 3831297; 61.34055 27423; 61.51077 37064; 61.82447 1465815; 62.36905 21372; 62.78276 18222; 62.94059 6245; 63.20358 176119; 63.26745 52096; 63.38707 135952; 63.49805 25334; 63.55092 6696503; 63.87932 2193675; 64.0542 70589; 64.26162 25079; 64.44321 7311202; 64.47142 4216382; 64.9027 1757527; 64.98143 1243498; 65.22795 47584; 65.2814 216908; 65.3866 71059; 65.41138 2800819; 65.52971 143067; 65.76421 137612; 65.80126 4798; 66.65156 63651; 66.76168 972803; 66.83179 38036; 66.86707 55559; 67.07877 12065; 67.09929 761180; 67.20123 20008; 67.33911 26348; 67.57686 26690; 67.64474 93933; 67.71017 39777; 68.00113 19880; 68.0984 8684; 68.34814 5315097; 68.44946 24873; 68.95083 72345; 69.23434 7603636; 69.56709 9924; 69.70205 695805; 69.80423 3147; 69.84115 8532; 69.99037 50941; 70.05088 1085180; 70.11867 52233; 70.18385 3552; 70.29264 27515341; 70.48335 7292515; 70.61343 1336555; 71.36127 3338868; 71.42905 21954486; 71.85491 5836; 72.07353 2373546; 72.13633 29603; 72.51064 383935; 72.5541 7297; 72.79142 2876753; 73.05296 9548; 73.06998 7149; 73.44695 3508; 73.51337 1509101; 73.52048 4976729; 73.97983 1158369; 73.98839 18648; 73.99383 28612; 74.14598 3777571; 74.30284 4298397; 74.36938 4271; 74.39579 26651; 74.48827 95612; 74.58616 2114082; 74.91651 109317; 75.15895 20250; 75.18663 18373584; 75.26777 2965254; 75.31815 25354; 75.66762 10709; 75.94367 571; 75.97116 74083; 76.05645 5117; 76.11336 2851963; 76.11348 9003; 76.15345 64458; 76.75541 39627; 77.03428 1227019; 77.05777 10113; 77.18792 9632; 77.41566 54400; 77.58989 6923622; 77.742 109193; 77.90128 65847; 78.15796 6118344; 78.27283 1441592; 78.59981 12220107; 78.89785 27343; 79.05591 69654; 79.13355 5305168; 79.42178 4176096; 79.94964 17004959; 80.19602 5624; 80.26274 7373240; 80.31158 189049; 80.76664 4485980; 80.81721 43235; 81.20399 5505; 81.42129 216274; 81.49305 6835; 81.61904 29131; 81.74441 64407; 81.82808 880842; 82.22675 24160; 82.36862 16403; 82.54538 1634; 82.73932 17202; 82.74263 2619; 82.74804 139049; 83.05922 13944012; 83.08577 569511; 83.17776 27377; 83.33525 74027; 83.35739 72182; 83.46125 12487; 83.6752 5429; 84.07608 30628; 84.41082 1029005; 84.44473 262; 84.53459 6505126; 85.04304 2318821; 85.1049 22700; 85.19009 16215; 85.30305 3514712; 85.5442 8985305; 85.54628 66342; 85.59893 402728; 85.65689 310509; 86.42723 68294; 86.50412 1391431; 86.6872 47683; 86.76122 7798; 86.93877 9116; 87.71625 73172; 87.99136 291; 88.18636 1233335; 88.23091 5794564; 88.4461 235134; 88.5311 69094; 88.89487 2712; 88.89817 8982387; 89.27364 64413; 89.60196 27736; 89.66849 86287; 90.47842 1265856; 90.65514 757208; 90.83789 1149682; 91.10785 617418; 91.34418 32749; 91.37651 62132; 91.46412 19526566; 91.96877 610943; 91.98219 129769; 92.06422 17265; 92.30093 67760; 92.68999 27928; 93.07979 6570697; 93.20868 2264753; 93.34282 53646; 93.38327 15275; 93.627 30691; 93.70744 9703272; 93.78804 5072373; 93.81096 62497; 94.02433 2906665; 94.08803 1622382; 94.12785 1624073; 94.26702 64454; 94.34933 13050597; 94.37212 182954; 94.52371 27742; 94.58412 25573; 94.62021 409515; 94.68747 47052; 95.06221 4524; 95.24024 1700172; 95.87843 1681312; 95.89603 24808; 95.94028 8629; 95.98121 3972789; 96.06168 44247; 96.13618 5035552; 96.37403 633027; 96.69259 3571501; 96.7174 45498; 96.79349 49121; 96.88628 1374; 96.90539 1851; 97.2285 8140; 97.72936 15347; 97.93647 53797; 98.08405 16261; 98.17865 36502; 98.24106 6973; 98.77532 613214; 99.59446 1297; 99.70643 9573519; 99.71828 25963; 99.72264 149450; 99.8743 15295025; 100.23828 365185; 100.24343 73780; 100.2954 6885598; 100.31204 2805; 100.32856 41260; 100.67071 4481498; 100.77273 49697; 100.86374 529283; 100.87039 7566825; 100.91593 1073; 100.96333 2353; 100.99672 2879143; 101.02992 133972; 101.05512 2916335; 101.09031 9738; 101.27944 57184; 102.02475 4472921; 102.12137 9261; 102.19569 9503; 102.69397 23888199; 102.79576 2308422; 102.81757 44214; 103.04536 1253136; 103.079 24851; 103.14998 162630; 103.34642 56830; 103.68978 954180; 103.77258 20423; 103.82071 69156; 103.95299 3071806; 104.14319 4625667; 104.38082 21102; 104.91395 149086; 104.92335 18553; 105.45973 3272892; 105.4683 28102; 105.49071 79053; 105.79498 199467; 105.88291 23923; 105.89132 76404; 105.97681 3644; 106.0088 4499526; 106.28334 57266; 106.37635 8818; 106.43454 5852943; 106.54589 400142; 106.735 158159; 106.94663 16252; 107.06146 61226; 107.54333 118036; 107.75052 104393; 108.08508 5144; 108.3142 90678; 108.66575 4835776; 108.71729 9840; 108.88511 24403; 108.94017 926537; 109.20603 14132; 109.25366 8023106; 109.67067 14328; 109.9299 16188; 109.95361 5905; 110.01115 40032; 110.04292 35802; 110.75837 73186; 110.81411 3392153; 110.99337 28789; 111.12742 766185; 111.15878 1598771; 111.25169 1428501; 111.26218 421291; 111.28034 2257464; 111.58692 63165; 111.73717 62742; 113.62267 325011; 113.79999 8213492; 113.87659 177581; 114.26334 1786246; 114.34334 72897; 114.98445 48059; 115.13024 47452; 115.31741 14208363; 115.46061 224; 115.63475 26180; 115.7159 277820; 115.99698 1156125; 116.40352 1268808; 116.62371 5614513; 116.69641 1707727; 116.83912 8938132; 116.85562 1525516; 117.18162 61462; 117.36756 54628; 117.45914 1276913; 117.50043 79690; 117.69317 6170; 117.72487 7395; 118.07786 22839; 118.10889 30506; 118.2022 4308351; 118.84007 21948; 118.96285 76162; 119.06401 107004; 119.27262 44212; 119.29166 6390338; 119.36738 3615; 119.7168 2025306; 119.73404 927; 119.74611 16434; 119.75812 8420035; 119.93962 14492438; 120.17259 217141; 120.27163 19067399; 120.37532 29761; 120.65017 4835; 121.28241 44826; 121.38158 73480; 121.43768 78770; 121.52367 4593060; 121.63781 1962319; 121.87316 28044; 122.101 996915; 122.46665 10392395; 122.59873 42682; 122.94852 31000; 123.24443 25714; 123.58368 23153; 124.00219 58197; 124.17227 4895126; 124.45922 8913078; 124.99389 561653; 124.99706 2274; 125.40801 38515; 125.84111 132334; 125.87608 71860; 126.53229 52101; 126.64426 40518; 126.76577 6639; 126.79568 21128037; 127.29459 18108159; 127.6843 66407; 127.82557 46806; 127.92113 62676; 128.00334 133514; 128.06324 20337765; 128.17963 20545; 128.55672 73932; 128.61058 4965199; 128.65532 7875079; 128.74356 27463; 128.75577 30057; 128.82486 37493; 128.94397 133227; 129.03155 21455; 129.21032 1266291; 129.88973 1752613; 130.27 66489; 130.3659 6318913; 130.55574 8734998; 130.90671 72738; 130.96815 64344; 131.00881 1627948; 131.07729 85486; 131.30704 151874; 131.32347 32409; 131.47042 5344; 131.52006 62485; 131.64192 39377; 131.72237 21548220; 131.91039 1702; 132.08562 10223; 132.10211 58831; 132.13442 45823; 132.14824 186694; 132.33809 1433105; 132.42427 26908; 132.56438 49898; 132.57296 3085648; 132.80356 11815100; 133.0241 71716; 133.12586 77021; 133.29474 2931155; 133.35994 3879496; 133.42541 27994; 133.47436 254984; 133.59386 3039136; 133.63648 551839; 133.66172 933613; 133.70224 19709694; 133.7773 47338; 133.79263 4175876; 133.86873 2902927; 133.91453 47650; 133.95842 1721763; 134.51799 6413621; 134.6491 78073; 134.69622 1742063; 134.83551 11611; 134.85602 5972530; 135.15413 32354; 135.33076 35046; 135.44959 162596; 135.96269 585769; 136.07161 24036; 136.34975 141689; 136.73501 57236; 136.86029 1381; 136.9501 20473; 137.00091 57218; 137.01992 18730; 137.09177 2275; 137.18067 2726538; 137.63374 75743; 137.78755 7872; 138.12492 24502; 138.13453 45893; 138.23558 89074; 138.44793 22852; 138.59648 22981; 138.61738 27503; 138.75711 15336; 138.8549 125204; 139.0022 4680437; 139.12975 5048811; 139.6419 525814; 139.95657 904154; 140.04401 968466; 140.65684 172797; 140.72884 35910; 140.76459 12146; 140.89497 932461; 141.00188 6737081; 141.06317 60521; 141.157 95230; 141.58535 515602; 141.72841 63820; 141.90205 23086; 141.99138 183186; 142.03387 47705; 142.21084 2548; 142.21374 65482; 142.73683 171175; 142.79287 8056230; 143.31195 474543; 143.48206 2372; 143.52931 101804; 143.70701 46131; 144.10509 7316; 144.5583 76291; 144.72229 653793; 144.72488 437404; 144.76431 35220; 144.85246 6490; 144.91108 54530; 145.27888 5769594; 145.29289 1010717; 145.3689 1804179; 145.38321 10518; 145.55009 3628347; 145.6209 65511; 145.88013 214993; 146.111 20407; 146.20878 28793981; 146.3153 26086; 146.41454 2061; 146.64322 229479; 146.72397 8015; 146.92015 35397; 147.03294 1140233; 147.16628 27814; 147.20679 52507; 147.46301 14282; 148.1189 2105; 148.12483 28243; 148.64292 811672; 148.79975 57722; 148.86706 2647763; 148.88388 942143; 149.06331 9419125; 149.10051 7901087; 149.18598 4852048; 149.49898 5929; 149.75709 4782; 149.98818 5880410; 150.12412 187079; 150.13048 968744; 150.22205 6931; 150.73371 4386; 150.7809 6935363; 150.83717 972; 150.85003 77474; 151.03384 35309; 151.31772 67515; 151.35243 2653083; 151.47669 28248; 151.6843 44255; 151.98014 9972030; 152.01863 17444; 152.11607 33589; 152.41818 1913077; 152.6727 57262; 152.83652 74652; 153.04803 2033873; 153.28436 49947; 153.6353 44712; 153.88284 23371373; 154.20054 1534731; 154.25913 209824; 154.56393 58175; 154.67104 1255; 154.80982 199385; 155.23374 30919; 155.70668 24775; 156.19442 69015; 156.2179 20554; 156.3638 34575; 156.584 1051; 156.72301 65878; 156.74729 1287849; 156.77994 173062; 156.84345 16042; 157.06968 8873352; 157.39373 144403; 157.44379 2801861; 157.71478 4692; 157.73313 21890; 157.8496 12201; 158.76603 3346869; 159.44658 42811; 159.59965 37247; 159.61282 79609; 159.67299 36631; 159.8115 240080; 159.883 1889520; 159.90227 17211; 160.05343 282411; 160.06255 56261; 160.18388 30688; 160.68218 15032; 160.83987 1248467; 160.88244 45042; 161.2822 208891; 161.33353 7119814; 161.49668 62307; 161.54505 29037; 161.58794 5154311; 161.69936 569232; 162.22078 7693; 162.26371 67553; 162.33907 7627845; 162.69344 15738; 163.04265 64403; 163.08774 169725; 163.17199 2642; 163.36942 3591160; 163.43265 4299476; 163.47217 68120; 163.67112 30651; 163.87696 9867744; 164.09755 5311; 164.09869 46392; 164.16898 4804; 164.38815 141757; 165.11237 18797; 165.17705 56982; 165.51068 120; 165.85793 55941; 165.89 21554610; 166.03116 77130; 166.10538 5909; 166.24446 62485; 166.48409 758403; 166.54871 119216; 166.65598 22346; 166.98847 665820; 167.08372 101572; 167.23556 29776; 167.24846 13837765; 167.41276 4891036; 167.45592 20942; 167.57401 582; 168.01076 1363561; 168.01283 706188; 168.04612 48900; 168.2677 62788; 168.34704 185938; 168.63926 6180; 168.66679 4100706; 168.68086 135318; 168.8845 50684; 169.03331 23043; 169.20557 47470; 169.29031 29796; 169.29689 5043; 169.356 49184; 169.36756 75970; 169.3974 1272503; 169.55075 22471; 169.56449 6555; 169.62414 91381; 169.67639 1850480; 169.84063 142541; 169.85783 28369; 169.94506 9799293; 170.1919 1792516; 170.72343 1234563; 170.79022 2305; 170.84525 34013; 171.28607 39202; 171.53959 68413; 171.73383 14806389; 171.75447 6964286; 171.793 146472; 171.87639 1712321; 172.07144 3579000; 172.1327 6236; 172.15651 1274618; 172.30529 4419305; 172.49852 74445; 172.64977 78944; 172.6556 501638; 172.76961 75527; 172.92024 88076; 173.15325 24242; 173.27593 4617283; 173.42209 1162; 173.57468 1226; 173.6548 1951014; 174.009 8559000; 174.37033 28241; 174.51315 71365; 174.52375 5131; 174.66068 50413; 174.68315 1564547; 174.75279 73048; 174.91084 5309; 174.98014 139090; 175.13851 1799781; 175.84089 41867; 175.99549 4353477; 176.16593 56979; 176.16844 188550; 176.38053 22945; 176.41829 16706; 176.45997 6430952; 176.52209 526411; 176.56419 180357; 177.1098 89954; 177.24599 1453279; 177.32199 3114261; 177.3775 129187; 177.57302 74922; 177.72724 46008; 178.12077 402410; 178.18139 65848; 178.28455 335193; 178.40241 13763244; 178.78317 9096008; 178.96859 4557180; 178.98158 1655018; 178.99112 12046; 179.16237 18456; 179.18628 3336654; 179.24506 705932; 179.35165 84156; 179.49233 764984; 179.53854 1433; 179.66701 66035; 179.78241 7767103; 179.84299 7093954; 179.84797 1984280; 180.1289 193512; 180.47542 4965380; 180.48192 9871784; 181.11141 701307; 181.96376 51115; 182.12735 23162; 182.18078 72875; 182.30798 26639037; 182.51464 59679; 182.64407 54990; 182.87164 187824; 182.97056 72284; 183.0932 70787; 183.25988 6130; 183.39572 1378995; 183.46836 842450; 184.25515 432537; 184.52552 52438; 184.60949 558; 184.79267 1341900; 184.93288 67201; 185.06106 5318; 185.37077 26658; 185.7244 8389936; 186.25226 19702; 186.30465 28192; 186.64266 74553; 186.78571 59533; 186.80194 725760; 186.80442 38680; 187.05823 54376; 187.1446 842649; 187.1603 795134; 187.19479 201373; 187.41013 1823514; 187.48146 4789549; 187.54075 8279; 187.66279 35822; 187.66869 18073; 187.722 228518; 187.73664 67067; 187.7669 2141215; 188.10047 9836; 188.1162 3637493; 188.741 24726; 188.78523 43736; 188.80057 710103; 188.85226 9354890; 188.95588 29549; 189.02288 76229; 189.02544 2816; 189.15303 2303; 189.32837 1272566; 189.36848 8496; 189.57844 1978233; 189.60756 3197; 189.65839 36224; 189.95373 602678; 190.30571 6195044; 190.44745 2698; 190.61185 158052; 191.00702 1188925; 191.01939 12593; 191.12303 30458; 191.72343 55123; 192.09149 33791; 192.13271 19358; 192.20271 29239; 192.41296 22856; 192.87427 7503360; 192.96817 3454; 192.98449 23197; 193.02292 560974; 193.33777 20751; 193.55106 167428; 193.5513 51490; 194.02655 17431; 194.45054 804; 194.57289 43602; 194.68615 141036; 194.94849 1653312; 194.95708 449214; 195.27803 55098; 195.33776 41394; 195.34279 112277; 195.35857 5347039; 195.3916 11322630; 195.4697 3625; 196.05916 75630; 196.42204 2837239; 196.45813 73013; 196.90423 245555; 197.03975 14891048; 197.17311 6633; 197.2851 72334; 197.3757 21262; 197.45044 9856980; 197.62388 26338; 197.7923 490423; 197.92157 1442; 198.19687 1765; 198.20729 1224; 198.40629 454; 198.87992 78158; 198.94211 1239093; 199.09511 8826; 199.1177 1021661; 199.36809 35914; 199.4134 50932; 199.67785 32760; 199.70346 2610525; 199.86048 4645566; 200.04414 1759320; 200.19398 1468867; 200.57004 260798; 200.59976 611162; 200.73185 3886834; 200.99782 14276; 201.58747 29597; 201.69508 4893074; 201.71445 17584; 202.11013 4249565; 202.71737 68925; 202.78983 22405; 202.80119 18492035; 202.80613 1687192; 203.71148 22826; 203.90475 182533; 203.9276 2640; 204.19477 8319; 204.34079 9977; 204.38214 9266269; 204.44999 6300; 204.85263 3010438; 204.86592 6377; 204.93505 56381; 205.04233 1505929; 205.20004 1548388; 205.5115 48107; 205.77686 46401; 206.02304 6696; 206.06989 22428538; 206.0928 51433; 206.23086 2656013; 206.33314 60696; 206.63173 26924; 206.70264 8686; 206.91789 3173795; 207.06388 4569355; 207.45056 3629422; 207.71485 377174; 208.03544 1082534; 208.21634 2385030; 208.25007 27360; 208.41576 1708548; 208.53551 27761; 208.67743 7566887; 208.8412 36229; 209.0033 1066672; 209.02286 2411033; 209.15012 36238; 209.3535 3464774; 209.40603 24733309; 209.51362 826115; 209.54222 23535; 209.90587 469319; 209.91948 60384; 209.96502 48084; 210.14146 11489021; 210.26884 1034811; 210.57129 6718993; 210.89853 21767; 211.08715 25289; 211.38151 22776508; 211.60868 42918; 211.66784 198149; 211.67316 135404; 211.84523 4610377; 212.27246 9049093; 212.30603 583418; 212.47086 51988; 212.71462 1696115; 212.74515 2891265; 212.92773 130234; 212.99737 22957; 213.08008 1384728; 213.30069 20590; 213.37858 1028204; 213.42532 8921; 213.48345 42372; 213.52428 49055; 213.72009 64226; 213.72119 8739; 213.97317 363299; 214.0222 5572; 214.08261 5168; 214.69503 8424; 214.8967 57970; 215.05478 380625; 215.3137 42660; 215.55324 61957; 215.83069 1295410; 216.05678 664774; 216.06839 862960; 216.19268 717559; 216.28497 3541; 216.45032 28701; 216.54828 5028; 216.61995 5066; 216.68731 3005096; 217.11207 13100; 217.17516 9738618; 217.78069 3226338; 217.79839 2124; 217.86825 20523; 218.12274 17059; 218.16474 47133; 218.192 2665253; 218.53484 604882; 218.55006 4132; 218.59333 24039; 218.71114 31083; 218.731 56986; 218.73937 5939; 218.84501 39468; 218.90502 9081; 218.94474 1797592; 219.02207 84; 219.0373 36854; 219.11391 2332312; 219.23436 50032; 219.66214 666989; 219.78003 9883734; 219.94928 421851; 220.21998 1632595; 220.34459 1171; 220.50583 27595; 220.68765 3045195; 220.78092 3956554; 221.0992 51454; 221.8047 14961; 221.81612 3722; 221.88104 947982; 221.98083 8658; 222.00418 1762090; 222.0712 24606; 222.07645 679; 222.08925 32255; 222.09346 1015; 222.35043 4118107; 222.624 4331186; 222.67845 8698594; 222.68358 703533; 222.77284 71515; 222.90407 1747510; 223.0609 65173; 223.34618 4506533; 223.49593 17910; 223.76045 6838099; 223.86935 42918; 223.92177 1748425; 224.23951 6790; 224.56141 703409; 224.62936 1359644; 224.70782 24595; 224.72048 22986; 224.9979 66864; 225.0009 43655; 225.07031 8152370; 225.10506 32552; 225.2498 838483; 225.34439 25193; 225.49919 13515; 225.59273 801165; 225.60262 12497; 225.69039 24135; 225.70343 6589537; 225.77472 3867624; 226.27355 28574; 226.42946 17093; 226.61045 57860; 226.97059 968145; 226.99273 129916; 227.13905 5025033; 227.25987 9569658; 227.43142 70098; 227.57003 6940; 227.69672 2522847; 228.1294 1687; 228.21936 9389838; 228.23244 70775; 228.30262 2895610; 228.41015 6994; 228.84913 5443049; 228.9875 2915253; 229.21634 3183306; 229.23652 4264; 229.28499 3874; 229.6177 4721; 229.74102 483813; 229.8325 4468384; 230.06095 36553; 230.30565 192799; 230.45558 11293; 230.59596 74644; 230.6488 533664; 230.6634 50212; 230.73681 1471466; 230.76788 69634; 230.93202 51475; 230.98221 685182; 230.99884 22668; 231.4012 8346; 231.46235 4655183; 231.6858 1042819; 231.81396 13691; 231.88771 23941; 232.15955 2406568; 232.1976 6314; 232.36767 59393; 232.45955 7458; 232.49768 34023; 233.30619 30581; 233.42375 168558; 233.45587 1913; 233.74896 31340; 233.98177 3261578; 234.32012 1232; 234.45813 57257; 234.47243 1726809; 234.73614 655439; 235.07792 2659; 235.10752 75561; 235.12095 40721; 235.22605 3265; 235.25604 21119; 235.34872 4865250; 235.38648 7556313; 235.467 134532; 235.57035 782883; 235.70378 27997454; 235.71653 6385; 236.20768 28779; 236.2348 26902; 236.32034 5475781; 236.99438 14243; 237.36517 548007; 237.36559 885328; 237.61234 51111; 237.62076 2387; 237.80525 1667; 237.86713 34797; 237.90637 11220800; 237.99808 45599; 238.07093 136573; 238.08675 5267854; 238.2677 1083032; 238.33546 483924; 238.58843 27317; 238.65325 2617; 238.79952 100903; 239.05633 954255; 239.06998 23375; 239.22583 29335; 239.26011 3838; 239.36018 53206; 239.38355 8565373; 239.9139 26796; 239.96306 65758; 240.0992 3413525; 240.35249 40572; 240.55549 28810119; 240.59131 23858; 241.07233 146775; 241.11731 43406; 241.18873 1870; 241.26796 7378133; 241.63601 78731; 241.64359 30643; 241.78149 72696; 241.7832 1302136; 241.78728 26896; 241.93581 64296; 241.97012 98215; 242.02732 4036488; 242.14703 7181849; 242.17133 1374542; 242.36318 3684; 242.74646 8754; 243.0636 21190; 243.2798 1863993; 243.73015 112009; 243.82579 23425; 243.86371 19407; 244.46863 7702501; 244.76844 38518; 244.76912 12485; 245.01289 63132; 245.2208 2588486; 245.28536 25473; 245.74294 40558; 245.97638 5842; 246.41423 71889; 246.45642 22685; 246.47842 27684; 246.54851 17320594; 246.94872 124817; 247.03488 58293; 247.26233 6659; 247.48707 60493; 247.54084 52133; 247.60219 414560; 247.89582 22075; 247.93542 37226; 247.96807 1393299; 247.98353 1471340; 248.07236 47829; 248.17551 20876; 248.18587 154642; 248.22127 61495; 248.3104 1282; 248.3437 4684456; 248.36228 24037; 248.71319 56236; 248.77221 61198; 249.07011 4677121; 249.32591 4742209; 249.42953 626351; 249.61023 2573254; 249.94463 212154; 250.11116 28771; 250.33899 138290; 250.75031 29637; 250.79081 851; 251.15472 5399; 251.21195 64690; 251.34093 8300568; 251.71693 23226; 251.72162 39773; 252.07057 3472; 252.08401 3677376; 252.22964 914010; 253.20238 68647; 253.27437 15950; 253.42153 4230; 253.43644 91912; 253.51407 22350620; 253.57234 23045; 253.80387 63198; 253.86328 115207; 253.95249 60204; 254.07817 5068; 254.28844 9033; 254.54491 83691; 254.66861 113371; 254.68654 61994; 254.75206 35662; 254.77479 3400635; 254.95596 31149; 254.95986 2519722; 255.04783 38307; 255.10858 4211; 255.21958 3325621; 255.35656 29013; 255.43608 24054; 255.49492 2894974; 255.70693 4768228; 255.72135 1812722; 255.79592 3378452; 256.08349 1244498; 256.15383 20268; 256.51523 4205; 256.55508 1594054; 256.70214 7487; 256.85645 47259; 256.96011 36220; 257.10474 77831; 257.23193 22336; 257.30001 1932280; 257.44982 118581; 257.71816 5680; 257.77535 348934; 257.86591 26948; 258.59796 3711824; 258.60576 4653; 258.91647 26453; 258.93568 1762; 259.09636 30035; 259.29214 1941175; 259.32084 12875; 259.33368 6888048; 259.34419 3736419; 259.75584 111692; 260.07265 22239; 260.10327 510304; 260.20674 5166394; 260.3021 72822; 260.36551 8107; 260.55584 19080; 260.60227 59821; 260.61199 9923058; 260.74945 4827986; 260.93707 333406; 261.08265 23351; 261.30481 91341; 261.55968 16096; 261.87887 24642; 262.29566 4123921; 262.31018 8444; 262.83132 4992; 263.06582 69851; 263.13859 61476; 263.23415 3287; 263.24599 8851; 263.38003 550681; 263.49718 1772750; 263.52104 1295926; 263.62399 7367267; 263.87554 27534; 263.89253 887547; 264.00258 29895; 264.00861 33416; 264.6437 15909; 264.98345 117173; 264.9967 61867; 265.00154 1108928; 265.01976 1224734; 265.24535 12017; 265.30672 818647; 265.3464 10897; 265.80689 1145116; 266.05153 4621860; 266.17094 11892; 266.64231 79429; 266.71835 34314; 266.97498 26163; 267.05154 9422977; 267.08696 53514; 267.63701 8344; 267.71367 56049; 267.89889 26676; 267.90379 46834; 267.92165 21199200; 268.22566 41370; 268.28145 75010; 268.71372 22057; 269.32336 1507609; 269.5187 5341; 269.70321 170173; 269.74421 3076691; 269.81375 944863; 269.87927 1872815; 269.93258 7785271; 270.08272 467521; 270.62261 3114981; 270.69707 9732393; 270.79273 21014199; 271.04055 26785; 271.0777 1627621; 271.10687 8234349; 271.14579 66094; 271.2165 816996; 271.24902 18280; 271.60794 36762; 271.64112 95454; 272.0527 1847462; 272.11882 2523083; 272.37189 27083; 272.565 935936; 272.63381 13740; 272.97833 131056; 272.99309 25445; 273.21419 9259; 273.4379 5176; 273.49948 55788; 274.1096 758774; 274.42166 424873; 274.42225 53194; 275.02763 1712009; 275.1308 1036772; 275.4996 1894979; 275.59802 34395; 275.66493 67483; 275.69597 2574; 275.69614 63537; 275.76071 2439509; 275.82419 145289; 276.2262 50668; 276.30723 78284; 276.42554 3545; 276.67466 24367; 277.0731 4124853; 277.08901 7850264; 277.14912 2903523; 277.39024 8219397; 277.76764 103402; 277.76841 57966; 277.77093 34095; 277.93626 4271; 277.9901 4953694; 278.00579 1492018; 278.04972 9034581; 278.24808 352814; 278.31302 44444; 278.35224 8742; 278.64709 40343; 278.67744 65363; 278.69036 304354; 278.69184 3349; 279.01926 47716; 279.37946 166267; 279.46974 7482576; 279.58931 9118130; 280.05787 36600; 280.27471 9682; 280.35842 13368; 280.43593 27072; 280.52913 61522; 280.59115 626; 280.6344 21595252; 280.76268 3111352; 280.80908 3682; 281.00573 363653; 281.23332 7654206; 281.31373 141377; 281.4499 7308; 281.61007 17926; 281.727 195698; 281.78705 22351; 282.43699 4509413; 282.85771 199348; 282.93588 67402; 282.97579 134519; 283.01467 6493220; 283.24787 42494; 283.26757 33312; 283.30951 21879; 283.93221 154395; 284.42374 1585551; 284.49104 160919; 284.65199 4673621; 284.72711 74794; 284.77579 66322; 284.77752 42747; 285.07729 23123; 285.09031 1302357; 285.54667 31050; 285.61639 2927; 285.70554 65682; 286.03617 18099; 286.12492 34198; 286.19802 47843; 286.45326 1269787; 286.52051 5345; 286.82787 19621527; 286.84218 72619; 287.90206 1077590; 287.95484 1725864; 288.08393 2472262; 288.21435 160; 288.61265 744991; 288.68969 3554; 288.79561 1856145; 288.90343 6834; 288.91067 9099; 288.91322 2545826; 289.10477 61823; 289.38951 830885; 289.72774 3955384; 289.9385 766083; 289.95473 74482; 290.33433 108065; 290.53757 66414; 290.5771 1883506; 290.65125 28885653; 290.69168 196467; 290.83942 43683; 291.13105 7557; 291.99584 7122469; 292.04073 459570; 292.06854 3988471; 292.13072 74224; 292.70029 148344; 293.38062 55592; 293.3943 30988; 293.4229 133149; 293.43376 50067; 293.63729 7864667; 293.73864 37341; 293.74045 13565; 294.05525 9247; 294.06756 4453; 294.27377 24817; 294.51646 22297; 294.54057 510822; 294.60588 912; 294.6359 1114491; 294.70828 1032092; 294.80469 26268; 295.06855 21828; 295.15508 9988; 295.57606 1761124; 295.62058 21276; 296.11167 324261; 296.27891 74058; 296.30754 3989326; 296.46009 4013; 296.73178 5608; 296.80332 4571915; 296.85084 29904312; 297.04803 376612; 297.08911 136142; 297.12055 8857160; 297.29956 10730; 297.74258 3660135; 298.21601 1689735; 298.31434 4086037; 298.50091 1727117; 298.54553 55503; 298.70275 4084851; 298.75068 954202; 298.80952 54579; 299.14125 5571; 299.35059 196265; 299.42172 229559; 299.47784 6713; 299.6709 1880350; 299.76664 3503; 300.08494 25191; 300.13281 68766; 300.44273 26439; 300.6549 6734; 301.00367 74046; 301.0312 21690; 301.04236 93297; 301.11289 44667; 301.14345 195573; 301.16151 1508998; 301.17483 66549; 301.31692 188078; 301.3531 37387; 301.51068 630641; 301.55672 1808016; 301.66915 22615; 301.86398 74670; 302.17827 1961618; 302.51355 37984; 302.68191 55703; 302.69841 18417105; 302.75943 31728; 303.14941 4949881; 303.27669 1015; 303.64516 3033566; 303.92029 1874137; 304.07829 329849; 304.29701 37044; 304.35927 2616720; 304.38575 6673; 304.62483 75398; 304.64288 1389502; 304.9246 30091; 305.44963 8102; 305.61727 1645381; 305.61828 2943306; 305.62146 7513; 305.85946 2057606; 305.86693 2557299; 306.1594 96749; 306.38945 22539075; 306.44977 135900; 306.55484 6084; 306.67926 67485; 306.96875 690734; 307.10352 42948; 307.11963 5651; 307.38757 33952; 307.85383 13836; 308.52634 664138; 308.52726 20490; 308.6178 997887; 308.73293 3799138; 309.34576 1486200; 309.53154 159; 309.70029 5758230; 309.84073 591996; 309.89063 2446434; 310.16818 78066; 310.20176 4462426; 310.2402 15029850; 310.52043 59095; 310.61043 28116; 310.69836 6801; 310.82183 5165; 311.00515 1068009; 311.01947 2681015; 311.09252 367; 311.1304 62068; 311.15616 283469; 311.17003 4524925; 311.28333 1482308; 311.49875 390412; 311.6858 182840; 312.35998 1083714; 312.78644 2279446; 312.91908 735763; 313.0799 51628; 313.50278 29705; 313.52508 55586; 313.55485 24356; 313.59333 926; 313.60921 110564; 313.60962 1743700; 313.68634 6924; 313.76132 13156; 314.17179 78193; 314.65973 43829; 314.66214 18336; 314.7833 21040; 314.81209 111104; 314.82176 1139223; 315.16181 28529; 315.34484 27671; 315.44282 830184; 315.64215 179107; 315.68139 12494; 315.78893 17219; 315.8441 18490; 316.29657 58476; 316.45145 1507; 316.71043 221755; 316.74267 9424; 317.03229 3454; 317.85194 75960; 317.90351 6281862; 317.91502 10538; 317.94958 29649; 318.15335 4016994; 318.23266 2080112; 318.40038 48332; 318.64637 16259; 318.8557 731604; 318.90913 3643; 318.99326 2296853; 319.15833 21732; 319.17747 1373574; 319.22193 79643; 319.39512 20468; 319.47631 5554780; 319.91198 1322257; 319.91607 27825; 320.07655 154889; 320.33702 842407; 320.5483 1334811; 320.63892 1150725; 320.73307 24243; 320.79604 8651; 320.90253 2758931; 320.92997 1183473; 321.53994 32354; 321.57689 1884383; 321.70816 1295220; 321.74315 239239; 321.85642 10996; 322.03833 70825; 322.0543 1140; 322.41306 37431; 322.50924 4016107; 322.5783 1821353; 322.70525 61468; 322.89661 55513; 322.92278 106106; 322.95784 1711544; 323.23369 1508922; 323.26768 54940; 323.86117 27094; 323.86893 67695; 324.24708 18786; 324.42947 9121492; 324.46423 7518927; 324.6238 20715; 324.69441 1860811; 324.83799 1628970; 324.96113 3847599; 325.30136 26626335; 325.35608 2231581; 325.77072 39863; 325.81255 57098; 325.83177 1424006; 325.96078 2823; 326.18389 4587; 326.44253 12503; 326.68743 27269; 327.31431 4880; 327.3284 1122431; 327.33757 5623359; 327.36648 9777; 327.42877 2302730; 327.55524 1738506; 327.90518 68173; 327.93182 4678659; 327.93336 1511140; 328.02108 26225; 328.28832 34301; 328.59327 2589066; 328.65292 10043; 328.82165 8576; 328.94562 281426; 329.03891 49865; 329.10626 50091; 329.36415 39025; 329.40376 1925911; 329.46733 19193; 329.50306 24571; 329.9827 50886; 330.3176 45475; 330.32149 802166; 330.33207 9480357; 330.61786 15962; 330.83433 64502; 330.91442 46829; 331.03878 757832; 331.10274 64213; 331.12662 8958; 331.18844 4027908; 331.24668 1956; 331.39389 3813423; 331.40179 4844609; 331.55095 70374; 331.60287 23038162; 331.818 64459; 332.20764 3459; 332.26022 1141323; 332.39371 3663390; 332.44553 1840163; 332.66796 1172651; 332.74765 72718; 332.88772 4016; 332.93251 2009; 333.05379 2932373; 333.31998 7552854; 333.44152 70874; 333.57786 20567; 333.62401 8108867; 333.81557 42692; 333.85908 7933; 333.86181 4956560; 333.99999 4055963; 334.05586 3079669; 334.48631 3429; 334.8162 133230; 334.86077 179988; 334.97498 195235; 335.01264 5381; 335.01402 85640; 335.27932 419790; 335.42862 3109027; 335.52374 7263696; 335.70125 21328; 335.95232 55507; 336.05609 11417; 336.07933 2192; 336.29906 5799; 336.30347 51044; 336.44422 184417; 336.55594 16924045; 336.67934 26816; 336.79868 9335; 336.96427 34778; 337.02258 187804; 337.06482 24557; 337.13229 3204680; 337.36452 1570805; 337.51354 20112; 337.63756 586044; 337.69166 88034; 337.75388 9852; 337.96352 43953; 338.21908 4231295; 339.21907 39811; 339.57633 46384; 339.88758 16974; 339.96369 2523519; 339.97181 29101; 340.04036 2581457; 340.06555 4759784; 340.49237 2619; 340.5866 1460471; 340.86415 47460; 340.87933 35604; 341.13481 7883; 341.17382 1326127; 341.19109 394718; 341.60789 8240; 341.65871 4116371; 341.65924 4309111; 341.69122 38207; 342.44267 150824; 342.75148 1133067; 342.93857 7750; 343.01404 4872539; 343.78163 191039; 343.97485 108758; 344.21976 6297212; 344.27857 611131; 345.04004 36026; 345.26845 2189257; 345.58254 66675; 345.6389 2196188; 345.73784 38383; 345.97446 42202; 345.97586 54188; 346.04474 86113; 346.17751 17694; 346.29318 5431925; 346.47322 1273389; 347.09685 4956636; 347.4317 20590217; 347.46921 3623217; 347.57286 333251; 347.7532 1855452; 347.9072 3168718; 348.08031 5533531; 348.31589 761227; 348.42187 28482; 348.69566 2587095; 348.75321 4811314; 348.84985 63801; 348.92952 53328; 349.0502 7400; 349.36666 6945; 349.39126 8315; 349.61931 3838613; 349.68177 45738; 349.74368 431084; 349.77927 2204553; 350.01435 43220; 350.92261 1865384; 351.06015 1724629; 351.24219 5744100; 351.47774 659009; 351.69534 9460; 351.74935 191504; 351.81363 48736; 352.07118 24988; 352.12952 65064; 352.32202 52566; 352.32558 88824; 352.46207 5701; 352.65453 20111613; 352.70573 25454; 352.79902 562572; 352.9486 68611; 353.02342 16842506; 353.07624 1466847; 353.36839 1587346; 353.45147 2541421; 353.47851 1100845; 353.5034 126916; 353.61929 8048; 353.82619 47004; 353.85983 2007; 353.88924 25198; 353.98291 70309; 354.05242 68251; 354.07969 8352; 354.09537 756772; 354.29665 48329; 354.58853 172707; 354.6935 13326; 354.75615 29018; 354.97669 5239970; 355.16833 8424161; 355.76415 58582; 355.78041 3655206; 356.10801 65663; 356.249 27928; 356.25524 5853; 356.25742 1732182; 357.00931 1573759; 357.14312 480389; 357.33592 18107; 357.48889 155186; 357.59371 8154; 357.60635 2909957; 357.61389 4702465; 357.78883 9291; 358.09312 7101503; 358.15928 20784; 358.16416 41202; 358.1651 40394; 358.39602 56893; 358.76518 4191812; 359.4635 63271; 359.48797 500; 359.67141 21983; 359.72755 12058406; 359.74656 391809; 359.77911 47215; 360.13503 38177; 360.35209 4699353; 360.64399 7691975; 360.67783 4296906; 360.68539 23112; 360.98491 3328580; 361.23466 28491354; 361.38054 764; 361.38557 1791028; 361.4827 3492; 361.72677 19026; 362.02111 63853; 362.12358 53529; 362.13598 40126; 362.25689 1148521; 362.33434 1314390; 362.59853 698752; 362.82906 9067; 362.99201 27354; 363.02903 52985; 363.11793 21017; 363.17285 739846; 363.39275 20743; 363.42421 9429; 363.70383 92316; 363.7143 539; 363.90643 816510; 363.96242 79304; 364.08444 1875; 365.19358 8656; 365.28696 191776; 365.46703 25042; 365.80184 71491; 365.85716 830453; 366.14826 20502; 366.18367 4687508; 366.28475 103973; 366.76377 39175; 366.84205 8927681; 367.02795 34199; 367.08963 1385; 367.15568 4870398; 368.02503 58162; 368.25951 41668; 368.34958 55768; 368.6476 1477942; 368.80905 1597; 368.81679 7035230; 368.84072 7092; 368.86727 58748; 368.90836 4855; 369.26725 42971; 369.29316 988994; 369.44788 1333859; 369.46294 32487; 369.66548 2428130; 369.77948 1049679; 370.0059 4030450; 370.06726 6551928; 370.24006 56792; 370.35467 61825; 370.53775 1810787; 370.56228 72826; 370.56897 77825; 370.76982 840216; 371.78678 9555423; 371.98878 4719; 372.08739 182852; 372.11223 7890363; 372.32375 9950621; 372.59041 6233806; 373.56975 9761; 373.60782 149626; 373.65679 1673032; 373.69286 26646; 373.73751 41497; 373.99645 175798; 374.08922 6460808; 374.27016 31538; 374.32517 234051; 374.55295 2955463; 374.71708 65456; 374.89546 9653678; 375.24114 7453455; 375.26951 133694; 375.27096 4725258; 375.33239 28238; 375.3915 8249; 375.4022 7634316; 375.68165 11863; 375.71069 57487; 375.77965 8943; 376.17261 41912; 376.23344 7220119; 376.54259 8294; 376.86367 67349; 376.8868 24612; 376.97859 18923; 377.20059 1339622; 377.27686 2546308; 377.32222 3318785; 377.68501 24228; 377.71864 31602; 377.77147 135744; 378.01364 8935329; 378.39652 607; 378.45146 2551858; 378.52303 5115145; 378.5431 73474; 378.68909 198215; 378.73636 773; 378.86027 48762; 379.18447 5989; 379.3374 33826; 379.49555 61921; 379.58891 36655; 379.60715 37093; 379.69905 35473; 379.81737 70243; 379.89093 7655728; 380.10614 19147; 380.31346 15360; 380.40088 1054804; 380.67019 8791; 381.31835 1512922; 381.5049 29189; 381.56931 4994678; 381.72577 68298; 381.75931 226355; 381.91353 22973; 382.61373 6796528; 382.62076 24023617; 382.64118 34661; 382.909 71721; 382.91834 26346; 383.3147 7; 383.33168 19587; 383.36769 631224; 383.66469 11246387; 383.71675 9077; 383.72819 6254021; 383.94074 36832; 384.12842 22711; 384.27522 113513; 384.38113 61821; 384.38965 3938788; 384.72969 299; 384.87968 1688123; 385.01328 5608; 385.29895 5842; 385.36685 285605; 385.39426 1254865; 385.49832 36081; 385.57336 55346; 385.77553 15215; 386.46143 8677494; 386.5696 3668; 386.61163 163; 386.97678 8124175; 387.23605 32977; 387.79285 4677257; 387.95486 23392; 388.00511 4661828; 388.03647 8615; 388.16652 140160; 388.26183 49093; 388.27807 3598304; 388.37719 76000; 388.57559 23629; 388.67453 9863429; 388.98001 8367714; 389.00762 65500; 389.29842 6989127; 389.3579 4783450; 389.46911 70408; 389.84081 839302; 389.84801 34483; 390.0999 1810486; 390.36787 24484; 391.08794 25859; 391.19661 2347451; 391.38256 3178; 391.40759 530844; 391.4168 4117594; 391.41971 51996; 391.51299 8447; 391.57411 76245; 391.57432 24311; 391.67796 704966; 391.82605 37443; 391.95004 2964070; 392.18754 282935; 392.35722 1040; 393.06011 9323; 393.08778 9663888; 393.47968 1721; 393.51726 14733421; 393.70348 1060005; 393.72585 9333; 393.938 443182; 394.00113 75423; 394.0338 40639; 394.16474 22896; 394.16912 1720863; 394.58404 11335; 394.70269 3670773; 395.22206 77803; 395.26895 21214; 395.29401 36815; 395.33144 1877458; 395.40013 10751; 395.46516 768662; 395.90864 7314885; 396.03078 5789; 396.06832 145910; 396.07071 65540; 396.08376 979774; 396.14363 1577471; 396.29165 47779; 396.87574 5677354; 396.90458 38189; 397.05365 1706; 397.3605 28264; 397.37387 1632852; 397.45226 1770; 397.46905 6483; 397.52555 9925099; 397.72019 27155; 398.08605 3017; 398.15923 5667909; 398.21881 6970; 398.82501 1692319; 398.94861 37231; 398.96356 4141816; 399.07105 3161200; 399.4874 3090211; 399.57554 1068752; 399.86185 25201; 399.95728 18734; 400.78758 45506; 401.00609 2094; 401.45873 28604090; 401.47208 42652; 401.79275 3802365; 401.81852 20485; 401.93645 7613; 402.11496 5296142; 402.16054 1472999; 402.20144 3170312; 402.22614 1984; 402.46742 53494; 402.72086 558999; 403.00765 1671135; 403.11083 33032; 403.27202 847; 403.31003 3781; 403.51893 13574; 404.16356 47552; 404.52769 21274; 404.72545 83515; 404.86563 19135; 405.4593 9542; 405.58667 149722; 405.59078 7183; 405.62812 1902297; 405.70912 627993; 405.78967 1762301; 406.08802 3465; 406.19028 68796; 406.65709 25920; 406.90296 4018717; 406.98283 5608142; 407.16059 4362569; 407.42084 68434; 407.44002 140180; 407.63182 21444; 407.70837 1808954; 407.72082 5116; 407.78773 424461; 408.01486 15552; 408.26749 9211964; 408.33632 58312; 408.3988 51482; 408.51695 28734; 408.93638 7492; 409.02187 76002; 409.03276 29639; 409.03796 9336; 409.08543 39154; 409.10905 5796152; 409.34034 67885; 409.49146 934350; 409.6605 29561; 409.85039 29965591; 410.47702 485692; 410.56726 43970; 410.8179 523677; 410.90527 68312; 411.0394 72546; 411.09408 37257; 411.10769 4491531; 411.10797 31969; 411.54918 1582824; 411.61671 5360; 411.71738 1280949; 411.74106 273064; 412.06731 9452694; 412.27986 3768905; 412.37323 58320; 412.74285 13; 413.12242 144837; 413.35167 28151; 413.46122 61209; 413.58334 12854; 413.60398 310362; 413.8358 6402; 414.11855 1578424; 414.34604 8817077; 414.39667 945844; 414.40261 3361; 414.60653 21517; 414.69725 53994; 414.72262 6230560; 414.78073 1693499; 415.22621 19400209; 415.55304 4250829; 415.70692 46849; 415.80643 866566; 415.94526 22972; 416.03638 11328; 416.34392 178473; 416.4538 148324; 416.73275 974709; 416.8194 49900; 416.87936 6892; 416.89036 2535686; 416.95135 17775; 416.96227 29759; 417.26097 47389; 417.35879 9740095; 417.53287 156518; 417.55965 1763937; 417.61668 64898; 417.64607 1062238; 417.71323 21283; 417.82982 79848; 417.93241 74719; 418.05405 61976; 418.09293 3657696; 418.13005 9019; 418.32617 1303550; 418.51307 12390; 418.6912 49582; 418.86159 47358; 419.0614 2438; 419.48675 1384695; 419.60407 22454; 419.67909 74815; 419.75966 2600518; 419.91826 3363569; 420.90767 62838; 420.9879 188889; 421.11123 195163; 421.42139 41986; 421.53769 1253901; 421.77647 411318; 422.37954 25554; 422.42386 48281; 423.12805 5096; 423.72938 2904; 423.75723 29457; 424.09921 4837; 424.52456 43808; 425.32544 1485527; 425.46403 873284; 425.78587 7591; 425.85174 466761; 425.92607 2676932; 426.12527 4411; 427.25409 4920277; 427.31816 5512; 427.92085 886836; 428.40147 10478; 428.40878 5501469; 428.6782 8565244; 428.92859 1477; 429.48042 11328; 429.77971 5778560; 430.18727 11260; 430.2518 23245; 430.28578 898678; 430.51948 9660; 430.59645 869997; 430.74506 31434; 431.09502 34936; 431.12203 27993126; 431.36058 78954; 431.57486 57764; 432.33076 21663; 432.34647 40220; 432.45546 3416909; 432.49807 1683805; 432.69976 35258; 432.8528 33323; 433.25029 54733; 433.38761 76467; 433.40887 26985; 433.56537 661355; 433.60753 470695; 433.8669 45255; 434.01009 10597498; 434.03927 55312; 434.08319 1378798; 434.17653 69353; 434.31431 4205; 434.32991 69559; 434.60957 8896909; 434.81899 2074850; 434.86154 827202; 434.95064 295050; 435.18913 2962701; 435.20016 415417; 435.21748 1662392; 435.31727 75891; 435.32246 5496880; 435.44699 32032; 435.46516 30709; 435.86136 824364; 435.99387 4176; 436.17829 806290; 436.58672 2691959; 436.6421 14306; 436.64831 66301; 436.67079 28481; 436.91944 21165; 437.12916 35519; 437.42265 212747; 437.50609 1900530; 437.51622 2298536; 437.73699 9408; 437.78795 1477740; 437.82218 1049126; 437.83653 98048; 437.92836 164886; 438.05436 3000481; 438.25353 25099662; 438.40753 33482; 438.46503 53248; 438.75783 1368376; 438.99677 193126; 439.39213 41958; 439.40849 25749225; 439.70654 20398; 439.71377 158226; 439.76964 21893585; 439.78553 20253960; 439.94911 1669; 440.19149 2742944; 440.2655 6591; 440.39262 11470761; 441.25098 7808; 442.44864 568264; 442.49208 60467; 442.55424 46500; 442.58987 795578; 442.74291 8332; 442.78116 53949; 442.8311 47684; 442.9919 141307; 443.23232 39722; 443.826 37802; 443.8612 2730959; 444.25942 191245; 444.39247 59542; 444.56503 9427; 445.01228 26233; 445.23494 29668; 445.70094 15410; 446.0317 15236223; 446.24987 32387; 446.34065 7411; 446.40848 22894036; 446.42284 19904; 446.56186 102332; 446.70659 7592; 446.79976 778014; 446.80973 5184751; 446.92412 45198; 447.28971 861843; 447.34336 7577; 447.53571 1929713; 447.64069 446520; 447.79141 6658; 447.81002 27365709; 448.01551 4122568; 448.13154 2461333; 448.18598 35871; 448.20654 64863; 448.33224 29803930; 448.472 1253998; 448.98942 574; 449.01173 23695; 449.45129 2691; 450.36307 885388; 450.38071 1010; 450.70849 25875810; 451.00999 44037; 451.23875 26578; 451.27358 413189; 451.41327 4662853; 451.44818 28625824; 451.62798 62983; 452.01717 4751284; 452.52586 283457; 452.56062 17396; 452.63871 9022305; 453.01274 8104; 453.16255 1253084; 453.25274 1626476; 453.43493 780624; 453.43708 3089; 453.49028 23378; 453.58146 43819; 454.14684 45240; 454.26827 39889; 454.56951 31058; 454.84223 20533; 454.95975 2358168; 455.1555 624751; 455.17958 5887; 455.34078 7348; 455.41338 76466; 455.44662 5480; 455.49208 160; 455.63217 656; 455.69846 3791360; 455.71245 29840; 455.74421 24906; 455.81585 1380627; 456.05678 9036696; 456.21891 60298; 456.4281 53518; 456.4431 4532004; 456.45022 3408745; 456.54565 27893; 456.6212 48242; 456.79021 26028; 457.02114 60099; 457.03567 76784; 457.38308 77127; 457.43687 8645; 457.60904 3285541; 457.77442 23471; 457.78861 8091; 457.80853 3214; 457.91339 55417; 458.34256 62597; 459.2473 4016; 459.5472 1872924; 459.70106 17599; 459.72666 10086; 459.98161 35940; 460.07379 5330667; 460.16737 20109; 460.4674 7641; 460.58864 3193; 460.61208 49370; 460.72593 9278535; 460.8006 1792; 461.21023 45389; 461.38962 5827805; 461.53099 110402; 461.54665 26524; 461.84113 13681; 462.14448 147386; 462.15133 28274; 462.15768 1927160; 462.3448 6704; 462.68661 8647; 462.78025 4617; 462.86146 6802; 463.12182 1750910; 463.31183 927975; 463.39022 669213; 463.64325 9694; 463.93726 53724; 464.00187 292095; 464.44979 31223; 464.60669 67488; 464.72802 723623; 464.87306 6572847; 464.92176 7493234; 465.01613 1801267; 465.45804 54953; 465.50716 1150953; 465.51139 3741243; 465.52942 3737815; 465.65338 5717185; 465.6968 47034; 465.87975 475357; 465.96676 22312; 466.02961 968062; 466.15788 40639; 466.17459 1814306; 466.27806 8956; 466.6501 31566; 466.78973 105355; 466.92973 56151; 467.41226 4985613; 467.43702 8034; 467.6393 6508; 467.95694 19321; 468.17733 229276; 468.31339 35505; 468.63153 10623; 468.7018 25378126; 469.09754 159075; 469.13524 2714; 469.40991 7329484; 469.44645 16077; 469.51695 3019; 469.54731 1428198; 469.75971 69661; 469.91165 548909; 470.24973 4768704; 470.42144 24740; 470.62893 8584; 470.65544 43394; 470.9802 4349281; 471.05393 65625; 471.5924 1813352; 471.96571 26579; 472.00057 70958; 472.33513 15922717; 472.51449 23340; 472.88232 75270; 472.88424 1216270; 472.97763 27706; 473.17998 53551; 473.28099 6392635; 473.4836 1725513; 473.56943 19147; 473.7881 11418; 474.03492 69160; 474.16187 6397134; 474.21183 8947021; 474.7077 1166834; 474.8587 45092; 474.88399 22839; 475.04216 39169; 475.57133 48145; 475.87214 196659; 475.93617 2197; 476.00662 1373; 476.42759 2243; 476.63027 5630; 476.74514 17072; 476.81139 33656; 476.86544 47980; 477.23129 3272116; 477.52224 68496; 477.5539 32305; 477.81731 55386; 478.08254 28460; 478.14687 6553173; 478.15765 58901; 478.29944 4884; 478.43788 27660; 478.71517 3491244; 478.96821 1171339; 479.07433 654704; 479.10617 3877408; 479.10978 26467; 479.12898 8681; 479.18124 48883; 479.24346 4907260; 479.27791 11339037; 479.42391 28819; 479.49599 78504; 479.57753 795012; 479.68912 70116; 480.14738 50259; 480.35816 2385; 480.44852 103419; 480.46309 2214; 480.71662 29787943; 480.75519 2672; 481.27416 8130289; 481.63622 113514; 481.66075 137587; 481.73647 2396; 482.25176 223985; 482.35771 8070566; 482.38737 38811; 482.43516 254639; 483.00543 25839; 483.14729 422; 483.22227 1862841; 483.2506 56262; 483.68688 803138; 484.11604 4353689; 484.16522 21021; 484.2271 20715; 484.52781 21307; 484.68402 5777403; 484.72159 101301; 484.76386 4658; 484.86777 19055; 485.14492 15330576; 485.30484 3307360; 485.32496 18388; 485.3382 38871; 485.59234 27065; 485.6518 24936; 485.71846 195560; 485.91658 1374921; 486.0231 5635; 486.32707 204884; 486.43707 901887; 487.0168 153582; 487.10116 6719937; 487.25477 2783121; 487.41049 867013; 487.44565 27910; 487.4603 4450; 487.71259 7473353; 487.82058 76450; 487.86201 37369; 487.93701 4446622; 488.12019 15272; 488.18935 3662; 488.19177 8527; 488.42289 1534920; 488.89487 9753196; 488.99216 12746; 489.39401 25566; 489.43849 61284; 490.36889 28052; 490.46212 21035; 490.58922 79; 490.75283 882897; 490.80798 4360; 490.89495 44845; 491.1569 117529; 491.34144 3227680; 491.53118 9624390; 491.5483 663106; 491.82333 32587; 492.2802 49649; 492.88833 3513150; 492.91941 5995; 493.06623 4246; 493.10967 4898455; 493.23011 24563; 493.42509 20187828; 494.4203 1985764; 495.26882 445999; 495.40937 32382; 495.48382 60297; 495.49549 112362; 495.63754 13615; 495.63761 28056; 495.7714 172; 495.92837 2133048; 496.28453 22799; 496.32207 69755; 496.57061 18898; 496.67207 24472; 496.7103 1189197; 496.86473 1564648; 496.96317 152459; 496.9768 3080333; 497.03062 4831185; 497.05896 24667621; 497.07469 38325; 497.62174 17531; 497.90728 36586; 498.0152 40076; 498.82135 6341640; 498.93182 64460; 498.99027 3853622; 499.1725 828848; 499.19507 2621639; 499.20079 9067; 499.8079 191365 +<2, 1>: 0.22489 29214; 0.3284 55545; 0.42136 1507648; 0.62306 21565838; 0.82042 1057100; 0.95868 3833690; 0.98993 1833966; 1.04916 1206; 1.77277 2058717; 2.0033 152771; 2.43134 18711245; 2.61227 7787; 3.24574 40827; 3.27537 31055; 3.39937 2840011; 3.56556 34919; 3.6715 21328; 3.77449 2900088; 3.83494 5719; 4.13916 488147; 4.22703 77857; 4.27377 52145; 4.47947 951; 4.66213 9653; 4.76811 6156; 4.77022 375300; 4.81003 14198; 4.84602 11251605; 5.28789 523; 5.51794 1649; 6.01154 45716; 6.03345 45575; 6.20548 47288; 6.24328 943922; 6.29322 5400904; 6.39449 100286; 6.6616 3719; 6.66311 473251; 6.96257 2681961; 6.96595 125236; 7.05294 4004; 7.09229 829083; 7.63619 53866; 7.71391 3777979; 8.07236 3983450; 8.42648 1324581; 8.7949 3965481; 8.87981 1501; 9.05213 78879; 9.79359 4238; 9.85132 1650525; 9.96758 3058674; 10.20206 5559556; 10.3903 1458146; 10.41317 24783142; 10.45001 20401; 10.70551 219024; 10.83276 1573625; 11.07916 1596107; 11.27808 1363884; 11.32869 1453406; 11.33247 178295; 11.57227 44243; 11.66812 1162921; 12.12761 48475; 12.17521 55415; 12.19684 4568585; 12.3749 1483935; 12.51822 178164; 12.86387 43720; 13.41415 61827; 13.41955 39935; 13.57134 3371; 13.63708 42386; 13.90382 31102; 14.06103 1391; 14.09482 20152; 14.14566 266237; 14.4492 40935; 14.46971 17538; 14.5265 16557; 14.68765 74492; 15.00979 40094; 15.79367 3806422; 15.84155 6354367; 16.56138 1532499; 16.59998 23577189; 16.91833 41127; 17.00045 3972741; 17.04875 9335; 17.09206 2394; 17.80992 22957; 18.02321 30956; 18.13068 44727; 18.17452 3964; 18.88165 76031; 19.00238 184987; 19.71789 12796; 19.9645 9939461; 20.28275 56861; 20.52568 254459; 20.62013 177758; 20.95019 42055; 21.21785 23419; 21.52401 10419392; 21.54856 161605; 21.62401 151125; 21.63239 195046; 21.64495 27302; 22.14059 38759; 22.30071 30000; 22.32832 31; 22.46662 66179; 22.54789 79053; 22.83133 1775590; 22.86357 540462; 23.04747 24338; 23.33723 44347; 23.36467 6233720; 23.67224 19380097; 23.89909 1718; 24.07279 4385260; 24.11747 2805482; 24.13794 47449; 24.51003 848426; 24.5788 29059; 24.79312 1640451; 24.83161 6030967; 25.10507 10043; 25.33424 82592; 25.33831 169747; 26.05279 970565; 26.18257 59148; 26.65104 6873; 26.76501 27274; 27.08992 188257; 27.24765 4163651; 27.28634 12530195; 27.4201 2761644; 27.52982 38208; 27.69361 9328641; 27.69598 24124; 27.73653 919251; 27.84514 52554; 27.85573 9571; 27.87823 5937; 28.1191 185050; 28.15217 1266951; 28.33503 1385434; 28.6314 12899; 28.71983 1006672; 28.84798 5748; 28.90513 1435133; 28.986 23321; 29.05959 2594365; 29.47329 68751; 29.77337 30728; 29.84575 11704807; 29.94379 272272; 30.00647 27006; 30.16318 6295022; 30.4363 11141; 30.46688 77290; 30.65992 661402; 30.82715 44099; 30.91713 942034; 31.29076 57540; 31.44199 60045; 31.58646 4293898; 31.72265 1240947; 31.87752 1375344; 31.90608 17719531; 32.41656 4767208; 32.51142 5921770; 32.75844 22243; 33.00555 23670; 33.12546 4571; 33.27797 59656; 33.31509 7418; 33.3158 3809115; 33.32765 108311; 33.53983 36056; 34.12578 1326; 34.16799 1707509; 34.16979 7073; 34.18504 24533162; 34.27975 28068; 34.303 31730; 34.39402 1651580; 34.53881 7457; 34.67582 350950; 34.77889 38285; 35.03221 68822; 35.0414 59600; 35.53248 66885; 35.56875 76658; 36.13902 24983353; 36.18688 59946; 36.201 4800110; 36.27172 2458179; 36.34032 68283; 36.5538 60357; 36.56579 68619; 36.64971 29118248; 36.73868 3075; 36.79073 1240681; 36.9081 350862; 36.92566 1247210; 37.03644 6322; 37.13603 840873; 37.15075 2411418; 37.66502 168802; 37.71804 1938276; 37.79014 50354; 37.97506 8402256; 38.73598 204706; 38.78208 29448; 38.80206 873139; 38.92801 150572; 39.15589 22600; 39.21003 15048; 39.21606 57220; 39.2692 22986; 39.4308 63647; 39.53231 31973; 39.57546 9349; 39.87406 69307; 40.07664 8785668; 40.2835 75525; 40.42173 60482; 40.53067 502874; 40.87813 1809057; 41.26148 403842; 41.38796 49880; 41.53155 22029; 41.54978 637223; 41.69565 106489; 42.12278 1782059; 42.26124 37986; 42.36161 13359093; 42.70092 21776283; 42.77832 25694; 42.89144 55336; 42.91351 5960; 43.25901 1242605; 43.47036 84344; 43.68782 56291; 44.27536 8342; 44.32496 57931; 44.4548 1951572; 44.66862 57510; 44.73582 133129; 44.83137 31433; 44.88726 56817; 45.15709 1136553; 45.28401 10682301; 45.33337 38875; 45.34872 1344784; 45.5578 76308; 45.62422 28067; 45.72764 178681; 45.80141 375; 45.89655 11466; 46.10331 490891; 46.10666 2722452; 46.33912 20149; 46.34504 126812; 46.55783 29209; 46.645 25482; 46.74967 46505; 46.83569 99495; 46.93367 2915483; 47.05564 9050551; 47.16113 1819601; 47.19032 54131; 47.19178 1313032; 47.41547 118858; 47.42765 1114536; 47.45711 1155159; 47.64008 43207; 47.64069 95353; 47.73688 921389; 47.79334 24861; 47.96492 5750; 47.97 39452; 48.17445 32380; 48.19134 37722; 48.22775 8763125; 48.6854 3624567; 48.7235 7536266; 49.38206 4256365; 49.4126 1272434; 49.79001 57687; 49.91627 3593; 49.98363 11290; 49.99156 7555; 50.3294 4607640; 50.33801 32608; 50.96906 46274; 51.10408 8040633; 51.23357 108080; 51.57469 471392; 51.65416 118324; 51.68631 51356; 51.6972 108833; 52.18174 1253652; 52.46228 1629; 52.6389 34720; 52.68551 1437418; 52.9852 144601; 52.99926 6124; 53.2704 165020; 53.27096 1807637; 53.36722 1302; 53.63464 27510; 53.81706 6765771; 54.07393 1000762; 54.12891 910883; 54.68987 9146391; 54.74372 7833307; 55.21816 649517; 55.23716 21814; 55.27337 3684; 55.48116 23451; 55.60836 168364; 55.94262 724428; 56.07537 2285392; 56.21195 77523; 56.5158 37389; 56.52314 214596; 56.59632 67250; 56.78612 12153239; 56.95094 22065; 57.23292 365661; 57.29801 119191; 57.57266 183386; 57.5781 76956; 57.638 30279; 57.75413 50108; 57.78642 16763607; 57.79148 125441; 57.82932 7380455; 57.91248 24860; 58.19909 28738; 58.43174 57735; 58.92176 23215; 59.24656 38506; 59.30774 4661208; 59.53619 4918; 59.93176 665701; 59.96988 1396857; 60.09735 73774; 60.15026 43684; 60.25003 1439644; 60.32961 60301; 60.36689 193245; 60.42737 1534483; 60.7823 330594; 60.84628 3651; 60.97344 8626; 61.0575 5249; 61.06579 5353; 61.1329 183872; 61.55049 19420; 61.75222 10747; 62.04971 237066; 62.08028 9161; 62.25919 8654; 62.4687 32811; 63.01202 137552; 63.11391 51403; 63.20866 53301; 63.31074 38518; 63.3355 69337; 63.34131 8325; 63.59138 25718; 63.60365 3312614; 63.73588 62762; 63.90247 2834026; 64.03074 444655; 64.19771 2864090; 64.25126 1090602; 64.29933 447470; 64.38487 764789; 64.46807 895267; 64.84805 52955; 64.97604 32381; 65.03853 48258; 65.04376 1576; 65.47639 4709; 65.79964 29379; 66.0638 1226569; 66.10791 69679; 66.34084 1120345; 66.34812 767452; 66.68122 149486; 67.06889 4708; 67.32113 4242209; 67.43851 5547; 67.74616 62279; 67.87067 70179; 68.38014 49994; 68.39331 1538474; 68.47563 811948; 68.54543 40841; 68.67957 4879915; 68.9179 3901; 68.97367 3318795; 69.06242 72125; 69.31473 194441; 69.33044 8870; 69.35789 7866505; 69.56407 5890; 69.74241 3167889; 69.90149 29731; 69.99876 830025; 70.07683 1968330; 70.39381 88716; 70.46216 27571; 70.51781 102089; 70.66148 1411428; 70.67263 4086737; 71.05289 1855194; 71.14068 229703; 71.33564 28990; 71.47117 332712; 71.50247 68053; 71.65661 76378; 71.74412 26054; 72.05092 61980; 72.30331 15139; 72.45895 853; 72.52546 109433; 73.05336 12925; 73.15423 56641; 73.35486 879999; 73.56483 2596; 73.60806 169555; 74.07441 54252; 74.08839 24838; 74.14931 4614100; 74.19256 2654187; 75.00615 1030871; 75.10667 44892; 75.4019 136556; 75.4367 2960401; 75.57302 21092413; 75.79734 434891; 75.85778 4556462; 75.96491 71193; 75.99617 978075; 76.00648 1745633; 76.21763 244; 76.22607 303583; 76.2422 4583; 76.34835 42640; 76.45742 1495416; 76.50307 23850635; 76.64834 5944; 76.84282 284681; 76.94637 5899; 77.2297 2542475; 77.39264 60311; 78.3446 31600; 78.5127 7183048; 78.54446 4804; 79.37251 41986; 79.58325 145273; 79.67888 34734; 79.90431 1266; 79.95067 1947471; 79.99479 2190967; 80.1213 2215922; 80.34156 24001; 80.34303 6346890; 80.41699 586714; 80.51949 30970; 80.84854 329848; 81.2294 32930; 81.42714 60368; 81.6302 980829; 81.88522 33410; 81.92597 181914; 82.01194 31133; 82.03157 75085; 82.10203 218270; 82.26002 515164; 82.26412 5592768; 82.54817 44370; 82.60835 8404; 82.64204 30255; 82.78429 1724930; 82.78526 32000; 82.89233 75494; 82.96163 120236; 83.67125 25406; 83.77189 69141; 83.82126 1600924; 84.03996 59495; 84.33534 20977; 84.4799 8466; 84.58612 29628; 84.59646 188666; 84.6215 31831; 84.62295 10608; 84.70195 5449; 84.79703 50055; 84.94392 3160457; 85.02605 1123987; 85.23342 4946; 85.25744 6698922; 85.26842 5198; 85.28633 152959; 85.36115 56606; 85.48252 22183377; 85.55662 20891; 85.71223 29493; 86.26476 11779806; 86.62834 3115; 87.05466 47016; 87.08806 5964; 87.10157 642755; 87.13477 56876; 87.14459 357552; 87.33514 70174; 87.50389 6837547; 87.6129 889849; 87.76252 26500; 87.80786 65214; 87.88958 47962; 88.02031 532138; 88.13935 68464; 88.30105 38394; 88.38383 148525; 88.39104 4561651; 89.19179 438203; 89.25242 3195314; 89.72644 9650295; 89.80746 24926; 89.86519 651858; 89.87555 2078086; 89.89811 109093; 89.96305 730269; 90.15902 7559; 90.16999 192853; 90.28683 18953; 90.62573 1477; 90.8763 6984973; 90.89568 635615; 90.92292 9378; 91.32839 2495; 91.39818 2705706; 91.47544 33971; 91.50807 40594; 91.72318 1943487; 91.89226 20744; 92.03858 872820; 92.04154 3382; 92.20396 238635; 92.23474 1575506; 92.54181 4113578; 92.54536 39856; 92.77647 13572049; 92.95155 32161; 93.22908 5261; 93.71841 2212; 93.77774 87432; 94.09942 1477; 94.17416 49898; 94.47723 9341435; 94.48416 7113; 94.68391 18868; 95.03215 29866; 95.52219 4035514; 95.57125 4100472; 95.68403 3657; 95.7505 6874; 96.41045 18677; 96.95981 8047; 97.16538 648118; 97.19126 4380522; 97.27239 14762; 98.08712 976304; 98.4307 77329; 98.4558 9311; 98.49633 1968891; 98.95625 1200226; 99.16402 2148; 99.19008 54272; 99.28366 28534; 99.30791 30076; 99.34342 7652903; 99.63872 1810475; 100.00149 10040122; 100.27195 8931; 100.406 8756; 100.47778 26156; 100.53466 3735; 100.58845 125519; 100.62087 43478; 100.7129 693795; 100.73388 2816; 100.80603 8925; 100.84843 877; 100.8622 20273; 101.01827 1375718; 101.53786 1514408; 101.7013 26528; 102.01682 2302555; 102.03527 4897483; 102.27915 56975; 102.30847 154420; 103.19502 4560854; 103.45461 301499; 103.75925 78789; 103.79284 2898839; 103.87873 1643437; 103.88937 8786; 103.90476 16996; 103.97699 2273235; 104.03336 887680; 104.0741 1672203; 104.35054 70252; 104.52419 1361451; 104.706 7338; 104.90526 3940365; 105.43453 624003; 105.43918 35513; 105.78167 60219; 105.94134 8687805; 106.24537 1982686; 106.35847 2437366; 106.62673 27693; 106.86465 2527; 106.97869 2128805; 107.03083 9493042; 107.15984 1917646; 107.35512 62397; 107.3885 639708; 107.58936 143926; 107.67215 76663; 107.73181 1972235; 107.92724 921305; 107.99709 25965; 108.12182 29344; 108.23931 47097; 108.57201 9849832; 108.57905 9691; 108.67551 40764; 108.96954 16152; 109.16009 1708208; 109.32518 68871; 109.57833 8820410; 109.74769 1406498; 109.86084 1501129; 109.86536 7199; 109.91246 1095761; 110.15414 22609; 110.2665 32055; 110.3159 160869; 110.3194 17665; 110.4657 22126; 110.71561 135766; 110.71782 79709; 110.76859 71625; 111.04098 4669206; 111.12454 1243332; 111.20383 10777; 111.21633 58371; 111.34943 13154; 111.3686 585853; 111.45593 5916; 111.57057 5833651; 111.71575 5649354; 112.09407 9302; 112.18034 511188; 112.76682 59635; 112.7903 65067; 113.08328 3377201; 113.09218 1841495; 113.10068 57959; 113.32215 9881957; 113.49314 65385; 113.78769 1111486; 113.81443 1770963; 114.27621 951103; 114.28371 6320192; 114.45292 9813; 114.58612 60336; 114.64469 4673372; 114.6483 2739085; 114.90595 44226; 115.20028 23169; 115.20813 36978; 115.22685 26036; 115.27473 66098; 115.36481 4011649; 115.55939 29171; 115.79362 3404; 116.62269 64152; 116.7793 9564; 117.22454 1315632; 117.38652 8231057; 117.75521 21066; 117.96889 1238524; 117.96992 5221; 118.09296 5332260; 118.56491 2299828; 118.75991 95551; 118.93112 1829295; 119.2862 9365722; 119.42576 79202; 119.45011 110726; 119.53415 38483; 119.55907 4495620; 119.8449 8254873; 119.98122 50563; 120.36604 2770; 120.45132 7145; 120.61433 28966; 120.62865 16938473; 120.63699 5744027; 120.95715 19015668; 121.23784 4052154; 121.35965 105006; 121.40227 20729; 121.41117 43204; 121.41195 9215; 121.63225 40602; 121.83502 75882; 121.92304 4239; 121.94154 32347; 121.95476 5715052; 122.80362 689064; 122.81116 9342; 122.90786 24282088; 123.06924 32461; 123.11209 8214; 123.29285 7719152; 123.39822 4819; 123.45514 20083597; 123.64599 69927; 123.7566 399234; 123.76932 2245; 123.81098 2862; 124.22615 919; 124.23384 9375; 124.37802 9740; 124.65448 3890725; 124.66116 68045; 124.7983 16876; 125.143 9867116; 125.65233 7773144; 125.97505 24948; 125.99888 29080; 126.13613 24701; 126.34016 29755; 126.5355 3567; 126.72146 1561726; 126.98346 4056; 127.4638 588519; 127.59871 17242192; 127.75162 22152; 127.77758 72935; 127.85902 205163; 127.9146 1181820; 128.01486 4730; 128.20162 3531; 128.33484 74856; 128.43382 39479; 128.68608 71221; 128.78971 56923; 129.09755 4694846; 129.27183 33658; 129.89713 80717; 129.99104 2042; 130.00436 1257038; 130.00625 17051; 130.09947 934928; 130.1195 55226; 130.52946 156408; 130.64585 51521; 130.67119 54243; 130.72785 5423; 130.97561 26339; 131.33355 38486; 131.40914 349516; 132.11561 39043; 132.35023 9627; 133.50363 41117; 133.87098 171904; 134.1254 40348; 134.2774 22141; 134.33541 70731; 134.44376 14589516; 134.61387 17977295; 134.61571 499411; 134.62538 58749; 134.67938 48719; 134.84597 580; 135.19099 18060; 135.34965 75234; 135.42948 78620; 135.43068 863040; 135.44225 23028; 135.62647 20964; 135.80299 139111; 135.84855 181540; 136.07666 5973; 136.14493 25480; 136.31376 31925; 136.42229 8389; 136.6052 1497444; 136.65478 1693533; 136.68105 152666; 136.76938 25291; 136.84901 1649; 136.88447 4646765; 137.0014 24781281; 137.02511 29055903; 137.07939 1005386; 137.23792 17680; 137.27289 150032; 137.38739 343046; 137.50891 35086; 137.69073 78229; 137.73476 4289; 137.83236 3096806; 138.0476 58771; 138.11129 540395; 138.55955 12430; 138.65691 12432; 138.85608 1097850; 139.04455 15724; 139.14218 28842; 139.32955 7691; 139.42757 30672; 139.46542 5079742; 139.64743 50262; 139.76319 654615; 139.89329 67959; 140.18677 4887; 140.6337 2196661; 140.63895 118160; 140.66343 52791; 140.73093 34106; 140.73544 4234; 140.76802 909070; 140.93206 1805419; 140.94904 145233; 140.95333 6158145; 140.99225 19550; 141.02672 17590; 141.29377 7938; 141.62394 20211; 141.90914 9433; 142.69978 185578; 142.80118 3547774; 142.94417 633474; 142.985 9634; 142.99277 177641; 143.01466 8616; 143.0383 6653; 143.17415 161084; 143.22245 2710080; 143.39975 3297; 143.40898 74885; 143.52422 3571; 143.8559 10143; 143.8802 1708906; 143.95828 1803434; 144.04238 1728; 144.13447 271071; 144.14846 1563748; 144.22468 1720620; 144.78551 853897; 144.7952 415201; 144.80794 503207; 144.96461 132250; 145.00516 4458770; 145.04003 36225; 145.18711 4433; 145.32255 2014470; 145.32442 624840; 145.82696 11786; 145.96763 700478; 146.50235 976; 146.51316 1932018; 146.86227 1621663; 147.10912 20195; 147.11441 5497077; 147.29452 2539; 147.33129 2893227; 147.40276 106403; 148.03106 25216; 148.09145 1780772; 148.13918 2922; 148.30946 4710; 148.38365 4497636; 148.47471 1777387; 148.74967 1262148; 149.19277 67583; 149.30658 1627297; 149.59047 33826; 149.61283 5812594; 149.76188 42343; 149.76976 45; 150.17348 6389225; 150.21437 14888; 150.27752 7454165; 150.48478 4095135; 150.50373 389460; 150.81077 2418; 150.91398 19449; 151.06155 32175; 151.09488 1540156; 151.13587 160886; 151.14015 7357; 151.34409 143416; 151.50754 9116; 151.63682 313735; 151.89161 4324; 152.2275 9492; 152.32548 1705460; 152.42816 42956; 152.55829 473947; 152.68944 7733; 152.80319 4828324; 152.9805 7659; 153.06676 28867; 153.36872 6815; 153.42829 79161; 153.63631 684484; 153.72536 40862; 153.8225 9932893; 153.85624 199341; 153.95903 15182; 154.25759 58685; 154.35029 978920; 154.52017 72602; 154.91407 3762066; 155.23581 1209739; 155.24454 34161; 155.30711 4028780; 155.51262 1459783; 155.58517 21945; 155.67802 1648430; 155.74751 24853; 155.98116 20975; 156.03425 1893893; 156.33091 72475; 156.37695 40299; 156.61539 9878; 156.9623 107238; 157.73957 16864; 157.98633 23747; 158.00497 64574; 158.0325 1473163; 158.03562 57895; 158.26869 58526; 158.26903 5705099; 158.49994 6695887; 158.81825 11384; 159.13535 9801; 159.16921 1756766; 159.18109 3407505; 159.39161 1046587; 159.48279 16857725; 159.61015 21050639; 159.64297 21769; 159.76518 894645; 159.91231 61804; 159.92099 1385539; 160.28643 5850183; 160.66606 35393; 161.28195 7258; 161.36123 1293009; 161.39586 9943778; 161.44946 3179614; 161.48579 109772; 161.57414 2641833; 161.64571 78763; 161.65315 9956087; 161.68836 844; 161.89915 874720; 162.18876 77540; 162.29486 71496; 162.34622 35651; 162.39997 5731; 162.66028 114748; 162.95009 9338295; 163.14043 21327; 163.2768 3618; 163.32081 46481; 163.58044 102867; 163.61742 1102714; 163.7438 1448; 164.10331 8119; 164.12395 6080349; 164.3242 8198772; 164.60319 66412; 164.69181 10763; 164.87221 7492; 165.03126 1943929; 165.05092 78382; 165.28374 1649499; 165.40211 54923; 165.56261 79054; 165.60068 1290561; 165.845 741596; 166.02751 24924228; 166.19485 770827; 166.33465 88415; 166.50538 6681421; 166.72028 14566; 166.74758 56601; 166.94077 41122; 167.04761 6866; 167.28916 4502136; 167.2894 8574; 167.5049 5623830; 167.78783 923786; 167.84193 3877772; 168.6967 613911; 168.93213 9567; 169.14082 487577; 169.65907 871065; 169.7798 8929; 170.36947 199228; 170.53188 3879562; 170.5787 845557; 170.90153 24781; 170.98238 7577; 171.13879 24308; 171.26748 41030; 172.27624 6869206; 172.46015 28167; 172.518 494863; 172.55844 5112970; 172.6331 6155; 172.72257 5099727; 173.00639 1426451; 173.38911 296048; 174.00812 7101; 174.37111 5462; 174.53262 134829; 174.75156 5052821; 174.90613 46731; 175.01372 21821644; 175.02731 75184; 175.29135 53375; 175.48454 3608275; 175.83304 8264081; 175.88251 88243; 176.00148 593781; 176.38045 504646; 176.88686 846531; 176.90999 7310; 177.23207 18316757; 177.25923 35369; 177.56228 4091982; 177.71703 2056185; 177.84722 9205513; 178.09916 9453; 178.46011 1148782; 178.46873 5853; 178.50363 28249; 178.55399 14997; 178.68805 7007; 179.34381 12867255; 179.60357 1990883; 179.61211 6475; 179.74243 54170; 179.86911 1271467; 179.91013 1931607; 180.61405 1806; 180.72118 1125763; 180.86692 11313129; 181.34365 9781; 181.4009 32319; 181.42141 39020; 181.43254 1898472; 181.98152 42579; 182.25162 21417; 182.67997 25551; 182.73324 3597089; 182.88249 271233; 183.09711 75416; 183.15651 19572; 183.51817 7865; 183.70104 162890; 183.70856 29457; 183.74012 3667482; 183.76668 76590; 183.8491 45152; 183.94502 29383; 184.02415 2661; 184.19537 1921796; 184.29775 1469888; 184.3683 3277; 184.5719 3604075; 184.70736 25459914; 184.8785 22487143; 184.96672 2201620; 185.05192 564229; 185.52751 1184193; 186.01219 28420; 186.22486 54873; 186.24995 7076; 186.3528 57571; 186.38717 13109; 186.54187 54170; 186.60383 80974; 186.91571 190550; 187.13512 6060; 187.14235 32827; 187.29789 1314824; 187.49047 1007; 187.54666 921769; 187.64573 65422; 187.76182 72383; 187.90204 48420; 187.97095 76550; 188.47491 75964; 188.91822 1175563; 188.99044 25369; 189.21681 28959; 189.52933 5809286; 189.7693 1666964; 189.91069 16720; 190.21864 21264; 190.34319 5828516; 190.44444 13566329; 190.46681 8249409; 190.53067 61520; 190.61854 70569; 190.63633 76764; 191.01247 18375; 191.29324 2196539; 191.47962 29814; 191.526 2814643; 191.60632 25792; 191.65759 51857; 191.67507 5285; 191.68314 8589; 191.92998 22224; 192.30904 158563; 192.31015 1883; 192.38953 22281951; 192.81267 65886; 193.11919 114795; 193.3425 176; 194.47597 19036; 194.51147 87815; 194.58907 26246; 194.6647 27884; 194.7586 2647611; 194.76245 7637509; 194.97434 27188; 195.22246 42124; 195.37268 126784; 195.43028 1323093; 195.48507 64225; 195.97524 9875645; 196.30599 739854; 196.5641 124309; 196.56984 1393465; 196.66747 4077; 196.71153 24486; 196.72167 15076; 196.89645 5752441; 196.99334 1939985; 197.01476 78392; 197.1134 58104; 197.26095 141154; 197.8829 12177909; 197.98047 1861350; 198.09756 8941; 198.19051 76504; 198.26857 6316; 198.3036 5056; 198.35692 45933; 198.38745 69260; 198.46753 80736; 198.5119 2792001; 198.7447 5107548; 198.78334 8228569; 198.89761 875; 199.10851 21873; 199.23626 526683; 199.65061 9886619; 199.66018 7677804; 199.94515 35542; 199.99416 6705; 200.12251 4768449; 200.19532 4087350; 200.19821 22611; 200.6295 38410; 200.78476 976489; 200.90588 58023; 201.19192 6452; 201.27544 1715; 201.38929 19191; 201.5074 932; 201.53767 67822; 201.64718 12987; 201.65003 25407; 201.67707 41213; 201.68579 1450166; 201.76037 68353; 201.88647 3064; 201.98794 43643; 202.1758 27866; 202.30178 28255; 202.64229 180419; 202.82488 1822340; 202.97429 1065080; 202.99944 825832; 203.00765 40531; 203.27802 16375; 203.30471 26937300; 203.45073 485980; 203.62649 9170313; 203.81495 9171; 204.10579 4877118; 204.31457 1448813; 204.37616 98560; 204.4142 3480944; 204.43331 6706162; 204.55674 71022; 204.6128 14051; 204.62073 7992; 204.64926 996784; 204.70636 1097089; 204.87374 628; 205.11347 1472456; 205.13279 1543418; 205.30238 1775143; 205.321 22476741; 205.73539 842941; 206.14165 4943; 206.27554 71786; 206.29871 27786398; 206.44746 3772; 206.57851 227335; 206.59522 789; 206.69365 903687; 206.96109 4321579; 207.21411 22439; 207.23085 1532; 207.23235 24943; 207.2903 4811284; 207.65189 12718; 207.85155 70961; 208.60644 148036; 209.03971 6544; 209.05748 369221; 209.06418 13884; 209.75527 56645; 209.81061 31726; 209.83038 405493; 210.28533 51150; 210.33515 2428882; 210.37498 5783396; 210.64805 27719; 210.85023 834772; 211.06489 4279726; 211.2258 162219; 211.26428 417281; 211.34359 7214; 211.47358 26485797; 211.68974 5618; 212.02373 530412; 212.1018 4137; 212.28973 7257; 212.30483 3653621; 212.35613 112112; 212.71979 20090; 212.74983 29302721; 212.89165 67883; 213.04585 16587; 213.11779 56685; 213.17226 1962964; 213.38974 20979591; 213.46863 2255651; 213.51522 48832; 213.78685 7446; 213.78917 7582179; 213.86256 7907; 214.2376 43661; 214.42247 176039; 214.61833 777; 214.87501 11970; 214.88895 8859; 215.0199 3384869; 215.08557 8898; 215.47909 1417; 215.50822 400741; 215.8719 29592; 215.90038 65378; 216.00324 17757; 216.13847 5655; 216.20262 33153; 216.43267 78223; 216.43836 752710; 216.6079 34747; 216.95188 1124; 217.2785 51760; 217.36357 3733436; 217.52794 880921; 217.61592 59881; 218.24572 3730; 218.29116 39332; 218.37373 5214048; 218.39307 2729; 218.49305 26477; 218.53608 12045; 218.65405 3097601; 218.71372 43399; 218.92188 1458; 218.94392 3774478; 218.95627 39743; 218.98683 4686794; 219.0973 7778306; 219.26265 57211; 219.4198 35447; 219.71347 2030; 219.93703 65366; 219.9986 39778; 220.11518 52465; 220.46527 13378; 220.62246 2870493; 220.78982 8956094; 220.82473 3223939; 220.90863 53675; 221.05175 146292; 221.31414 75401; 221.38876 5927; 221.39597 5711; 221.42801 33388; 221.49561 71657; 221.75789 25347311; 222.0403 12105; 222.14222 485060; 222.3888 2645703; 222.72094 336271; 222.82654 6998; 223.30677 4677580; 223.31846 27679; 223.47596 1767628; 223.56078 55974; 223.74201 19251; 224.16682 722732; 224.45542 3255113; 224.58502 3430004; 224.61454 566742; 224.68406 2380; 224.68724 895978; 224.82537 20926; 224.84993 134167; 224.87187 28270478; 224.89651 2500484; 225.06178 67449; 225.19873 57842; 225.35322 3933; 225.44402 10798774; 225.48496 10685; 225.52373 23973; 225.69645 4940780; 226.05994 58835; 226.1854 41759; 226.41403 4031690; 226.55691 20031; 226.66499 700513; 226.88514 6771; 227.29881 52039; 227.34812 5728; 227.53395 33190; 227.67151 28323; 227.87692 6371813; 227.95885 1818703; 227.96137 131691; 227.97892 43512; 228.00271 1087262; 228.12468 4603; 228.12566 884097; 228.27866 71631; 228.31047 49988; 228.45297 5301148; 228.58201 31648; 228.66051 74745; 229.06984 6960; 229.12115 1412109; 229.13857 3026; 229.20585 2896375; 229.24018 25081; 229.37233 923121; 229.37776 429335; 229.43387 1660949; 229.53489 84067; 229.58564 2072703; 230.02852 129111; 230.29221 30473; 230.41848 721778; 230.51526 4385742; 230.52018 7819274; 230.59796 36994; 230.96799 100055; 231.0695 798996; 231.09394 62569; 231.12772 121282; 231.20938 786230; 231.33535 5200137; 231.57199 86018; 231.57245 55749; 231.74732 8025; 231.93177 6450; 232.58373 2559; 232.63448 5010934; 232.89527 637117; 233.25999 268898; 233.44767 47130; 233.46086 28768; 233.46155 77769; 233.90264 920; 234.01985 36563; 234.02526 6669171; 234.30125 62278; 234.3337 1517152; 234.60597 8209768; 234.96268 30520; 235.02851 21849; 235.11271 3317306; 235.38073 19342; 235.48087 4442; 235.48351 22580; 235.6435 67371; 235.77039 19939; 235.82976 19427457; 235.92649 35794; 236.10593 27905631; 236.12472 9308948; 236.24445 6895; 236.5374 25609; 236.79971 55437; 237.12872 8940109; 237.28017 4812848; 237.38449 9639; 237.46406 52220; 238.18368 34142; 238.26127 2584965; 238.76457 14196574; 238.97727 32550; 239.30381 2884; 239.30873 640188; 239.37135 32714; 239.49484 59436; 239.54905 854098; 239.75274 102367; 239.81441 769593; 239.86665 13685; 240.26371 186384; 240.86101 2911; 241.03733 232957; 241.04712 892840; 241.28093 38776; 241.39374 49069; 242.01166 391; 242.01553 1790; 242.02485 20928; 242.09696 9624; 242.36647 3789; 242.49168 1112095; 242.50993 953848; 242.67718 5004; 242.88287 29540; 242.93095 41433; 243.01075 37783; 243.03218 19758; 243.4539 831796; 243.69878 77304; 243.70704 1584308; 244.53053 1506617; 244.74215 2556723; 244.88328 4863495; 245.52574 8517585; 245.62163 28647447; 245.69162 549074; 245.91879 71603; 246.08107 27084; 246.15144 2324; 246.17764 26066; 246.27872 593682; 246.30612 12248959; 246.67216 229; 246.82966 39141; 246.89621 3728351; 246.90492 2506349; 247.14756 56061; 247.21759 4927714; 247.32073 1776663; 247.44064 99573; 247.69907 673297; 247.78969 39328; 248.16118 30718; 248.17376 4549003; 248.26022 81229; 248.65925 70085; 248.83066 1675; 248.86652 23158; 249.1398 1697176; 249.29936 29544; 249.91165 171764; 249.9954 7165; 250.08117 1045662; 250.17704 49855; 250.30522 3404969; 250.32223 39307; 250.67188 5593; 250.69558 1196079; 250.70956 62958; 250.99415 20217; 251.33831 1826251; 251.89606 67330; 251.976 1201081; 252.00804 658401; 252.28205 1639235; 252.60037 4268; 252.60083 68553; 253.12583 4536; 253.14287 8272309; 253.20689 4417448; 253.22399 3018281; 253.6938 32333; 253.93948 13699; 254.06569 66531; 254.10539 4059795; 254.53974 4909193; 255.23338 621278; 255.29238 274; 255.7289 19268; 255.79264 248987; 256.26407 1217387; 256.26544 9346006; 256.6267 1110844; 256.65 1356504; 256.71895 41433; 257.22304 16028; 257.23048 19480; 257.24715 48119; 257.30343 136552; 257.42557 3473808; 257.42974 8847; 257.52111 3327912; 257.60534 117150; 257.74832 23241477; 257.94554 1035129; 257.97761 67519; 258.33387 464642; 258.36487 73228; 258.38761 57540; 258.39413 67145; 258.65692 4636352; 258.74428 2947343; 258.80973 73754; 258.85951 68952; 258.91557 25608; 259.06554 20163; 259.12949 56739; 259.16975 1174887; 259.28306 4434042; 259.32257 714602; 259.36852 71298; 260.02687 5417163; 260.50207 21287; 260.79982 26462; 260.83773 27901; 260.972 1972524; 261.25157 797399; 261.25335 24651; 261.27541 958461; 261.30533 49166; 261.33253 8887; 261.37453 56939; 262.12221 8766171; 262.218 148480; 262.28518 8265823; 262.61844 4640242; 262.70937 3868; 262.8104 18338; 262.81543 6418; 262.83533 28951; 263.0763 329998; 263.22048 9293; 263.82251 1449054; 264.03646 173886; 264.0554 8343843; 264.22531 8934156; 264.53828 9775895; 264.6358 68929; 264.72927 49238; 264.75282 750225; 264.82466 34436; 264.9024 106527; 265.03396 28512; 265.24872 6762523; 265.34941 7154; 265.45461 3314; 265.57228 7374293; 265.63832 5873310; 265.78078 29051; 265.99593 2699; 266.22806 473330; 266.26833 1569030; 266.54389 85366; 266.55798 8441344; 266.63489 15933; 266.74953 126042; 266.9807 7547870; 266.99997 6823583; 267.00257 5664; 267.10906 28635; 267.28131 68664; 267.41014 1472735; 267.58919 34339; 267.65565 9877; 268.12732 5040; 268.13832 946454; 268.14839 9188496; 268.40392 83865; 268.42339 1525402; 268.51919 3095746; 268.52456 4460636; 268.59145 3192945; 268.72015 3390172; 268.76912 1937018; 269.0708 187; 269.18317 4471508; 269.72804 20750; 269.84077 9038; 270.17192 14685; 270.37287 1364711; 270.53423 3469085; 270.64847 28442; 270.77999 11856; 271.00334 3801605; 271.34973 29916; 271.3512 1399200; 271.43032 107996; 271.43973 1319504; 271.70216 105949; 271.94513 72413; 272.02419 9045; 272.30218 2489548; 272.74115 172505; 272.91831 692439; 273.04774 5177918; 273.30753 769217; 273.42749 1300092; 273.44573 66681; 273.58451 357436; 273.60514 3388890; 273.78449 8849; 273.84859 16437911; 273.95268 52828; 273.97194 105193; 274.27667 477; 274.33938 21681; 274.39645 6686; 274.6747 845763; 274.6909 60691; 274.74126 1833982; 274.80807 27414; 274.90843 4180587; 274.97961 7790; 275.68501 3593427; 275.70409 148778; 275.79249 66263; 275.8236 286638; 275.98144 1047057; 276.20054 769545; 276.30693 16936; 276.925 97191; 277.07615 8408; 277.16936 190173; 277.17754 4165564; 277.39098 71445; 277.3992 7325487; 277.45498 32311; 277.58782 18209; 277.72593 45966; 277.86196 20614; 277.88731 51592; 277.91066 34511; 278.25457 2591348; 278.32769 27019; 278.56344 54494; 278.66062 735555; 278.86601 148079; 278.88685 79420; 278.95749 2461; 279.06463 2764514; 279.0664 1581008; 279.46744 61030; 279.62687 4526; 279.8036 60756; 279.84558 3418503; 279.9516 58829; 280.04624 13656; 280.17516 31507; 280.22573 27488; 280.32821 780328; 280.57462 9302; 280.63574 6477; 280.67818 26604; 280.71609 20870; 281.19411 10063; 281.25284 1219767; 281.65586 2086; 281.68365 42227; 281.8842 6943399; 282.12537 3194800; 282.45225 66865; 282.88901 79830; 282.92783 20153731; 283.07635 7367757; 283.46213 51286; 283.61592 3224790; 283.64479 3959; 283.68555 825611; 283.98263 142341; 284.09393 2314912; 284.16165 2021576; 284.20174 8627; 284.59084 54231; 284.66757 57247; 284.67972 4583989; 284.69347 667606; 284.72801 24797460; 284.76862 55138; 284.86778 48772; 284.87706 1918221; 284.97377 4565862; 285.16279 1848883; 285.51563 10992; 285.56446 38036; 285.66339 1338898; 285.67141 823756; 285.86064 1716418; 285.86435 27274; 285.86539 5632; 285.90411 52601; 285.9838 7127; 286.12936 169539; 286.18762 8361067; 286.24375 7709309; 286.25154 128704; 286.33683 32017; 286.36686 77635; 286.70616 151568; 286.78609 2420983; 286.8356 971; 287.08697 26158; 287.11302 3160467; 287.12685 1922855; 287.45379 1362533; 287.94329 5363; 288.23023 20632; 288.30767 42250; 288.33978 52218; 288.34067 28199; 288.5546 2474; 289.19174 3592636; 289.69588 488442; 289.88971 69257; 290.15062 3757; 290.55705 55924; 290.63686 198936; 290.69858 5042354; 290.93976 64840; 291.06309 22630; 291.47514 8388; 291.50468 5755390; 291.56792 39452; 292.05581 6060962; 292.10084 166540; 292.43866 9869; 292.55849 612749; 292.59156 3243135; 292.70845 3966; 292.72435 75218; 292.72723 1268252; 292.81003 7360; 292.82852 7496; 292.98671 71653; 293.15092 57041; 293.25707 1951; 293.64029 514200; 294.50164 42615; 295.07177 20556793; 295.37506 67163; 295.42015 3675378; 295.54555 5071234; 296.00177 42648; 296.09436 3189; 296.1728 1664303; 296.53502 103871; 296.73941 61401; 296.9414 80402; 297.02243 23284; 297.79001 2460; 298.23935 498472; 298.4016 1319489; 298.60605 20894; 298.99829 803834; 299.29617 74782; 299.30099 1839057; 299.30978 76465; 299.51026 189022; 299.85255 9988; 299.9803 5934; 299.991 885229; 300.01782 2414255; 300.08145 67329; 300.31391 12442; 300.56888 4711847; 300.82849 935521; 300.92194 1182115; 300.95332 47963; 301.1684 5771; 301.77214 31178; 301.87259 77627; 301.93742 118794; 301.96919 1649980; 302.204 161961; 302.41454 4140272; 302.42545 15180552; 302.48138 4037905; 302.70161 60484; 302.82094 1683; 302.97492 78312; 303.1148 1180741; 303.37136 46200; 303.6927 3898; 303.76033 3922; 303.8287 61942; 303.8972 34154; 303.99613 1423546; 304.09881 31168; 305.11708 39985; 305.49649 34661; 305.54317 29859; 305.57929 1941020; 305.61094 4212495; 305.73168 46224; 305.89322 5565; 306.26757 722003; 306.44678 3192753; 306.80241 15932653; 306.94206 3950; 307.0659 33165; 307.21031 8683; 307.25125 57315; 307.47311 34575; 307.795 49439; 308.02062 1851519; 308.06739 32088; 308.88717 15754610; 309.05164 6376643; 309.59994 66780; 310.19686 56269; 310.48966 5228298; 310.49953 742175; 310.81622 6371114; 310.92867 41509; 311.10032 5946783; 311.1662 9034630; 311.26851 21760; 311.2946 7964265; 311.72938 4549522; 311.77036 3726017; 311.83957 3044602; 312.04738 12428; 313.31691 8149; 313.49163 1521452; 313.51954 36930; 313.66209 23167; 313.67003 26568; 313.6785 1804569; 313.7552 5479; 313.83309 9258387; 313.93872 199347; 314.12029 43369; 314.7905 408640; 314.91809 3446178; 314.92211 1826930; 314.94422 161006; 314.9629 55547; 314.97368 69880; 315.07561 5726342; 315.15342 82215; 315.15935 3161; 315.75318 280247; 315.95393 5943; 316.11293 9505; 316.26631 8548780; 316.41586 9707953; 316.44515 27244; 316.66484 8310; 316.69366 2558569; 317.15081 1965391; 317.20313 9244083; 317.25507 64985; 317.57307 1286933; 317.85935 9733; 317.98718 2372199; 318.0522 198876; 318.46563 70935; 318.76878 1143413; 318.96592 32669; 319.35982 5503843; 319.80202 51823; 319.83768 426208; 319.88655 15383073; 319.96574 67965; 320.06332 15854; 320.12877 68381; 320.27372 34826; 320.70555 65585; 320.75544 29016; 320.86803 27053; 321.04622 461188; 321.67356 1241649; 321.93664 40672; 322.06406 76083; 322.14279 11083; 322.23377 22908; 322.33162 12780832; 322.37524 73759; 322.48598 468222; 322.75954 33077; 322.76197 634352; 322.9774 3289; 323.37765 4442662; 323.40612 1871; 323.4445 112393; 323.4729 14868795; 323.71125 1270092; 323.83318 9553240; 324.13813 511184; 324.93075 140725; 324.93684 707901; 325.41893 4455668; 325.5611 181728; 325.71128 13008744; 325.81211 18557; 325.85121 6399048; 325.95192 46161; 326.06468 8299; 326.11109 2468; 326.11232 34361; 326.52372 10622; 326.69734 22787; 326.88528 7839; 327.1014 29731; 327.23014 143879; 327.46021 77490; 327.47089 18465950; 327.50886 73801; 327.56127 578630; 327.77307 4850946; 327.80022 91818; 327.96003 907114; 328.13774 523456; 328.32337 75436; 328.56459 40131; 328.65153 628649; 329.07018 1884511; 329.15671 46487; 329.25651 22037; 329.46957 3787869; 329.68071 1580; 329.77748 28871114; 330.03787 4893937; 330.47512 32555; 330.62528 2990413; 330.63245 25836; 330.83542 180103; 331.01328 46081; 331.13922 62156; 331.25799 23141; 331.5201 6602; 331.73316 9332744; 331.77887 2540233; 331.94088 1174399; 332.37217 33355; 332.39431 663734; 332.59066 169792; 332.63684 1163415; 332.93621 70099; 333.1207 3509152; 333.26035 8142; 333.30593 5570; 333.53574 50808; 333.84387 28407134; 334.08436 57418; 334.15202 873913; 334.21885 6112994; 334.23234 63653; 334.49922 8713; 334.5105 7535; 334.74796 19290; 334.95039 62542; 335.24599 8414611; 335.26342 12518837; 335.29445 1808430; 335.4005 5063; 336.09218 46475; 336.11759 3777; 336.13232 25948; 336.23644 1527014; 336.42633 63996; 336.42762 62171; 336.5646 54714; 336.80079 59588; 336.98946 181498; 337.37711 784952; 337.38463 898611; 337.42443 3965; 337.50312 18516; 337.62926 25942; 337.7472 29373; 337.75084 14518; 337.81512 61910; 337.90637 40806; 338.05508 4254005; 338.13031 47829; 338.23648 1154255; 338.24791 77850; 338.28656 27995; 338.47017 24216; 338.54761 21355; 338.61211 19317; 338.82696 152949; 338.88706 26321; 339.07896 1035528; 339.32099 44807; 339.58998 69168; 339.61402 35124; 339.6899 1197554; 340.20634 41955; 340.61127 4369; 340.81622 6902; 341.01115 8202; 341.06415 15878; 341.22115 9745; 341.43673 14973976; 341.9767 2812783; 342.52311 58879; 342.54251 3879208; 342.87415 61241; 343.09974 75480; 343.18866 454705; 343.63573 153067; 343.76759 28302; 343.77764 437093; 343.96937 24150; 344.10391 972844; 344.17657 44232; 344.52499 50711; 344.88048 9127; 344.97501 3234866; 345.00799 95637; 345.29298 499743; 345.53079 6023; 345.72262 2932621; 345.93441 7986; 346.34122 17170; 346.55252 2371281; 346.67976 24291; 347.08897 3592; 347.22023 9890989; 347.6818 29474; 347.69117 338647; 348.26738 40485; 348.63227 1116248; 348.76613 5415783; 348.81749 5705; 349.01134 4911277; 349.02191 7941192; 349.16125 949; 349.24669 777545; 349.42134 22471; 349.65289 1482838; 349.69451 4553361; 349.77079 10309; 349.88984 37450; 349.92515 18810; 350.29394 2806; 350.77885 7917; 350.97977 1060398; 350.98595 140849; 351.35476 30497; 351.52309 5135938; 351.55582 96708; 351.57477 9331470; 351.586 1040724; 351.71449 24016; 351.97124 116440; 352.05752 4782433; 352.35363 70679; 352.6447 6302360; 352.82779 6348669; 353.3357 4839913; 353.34654 7236912; 353.67952 1071969; 353.8466 6194338; 353.84817 49876; 354.09072 682719; 354.37738 110428; 354.733 301929; 355.01675 31591; 355.05918 47561; 355.18489 1590393; 355.18995 66089; 355.33607 690709; 355.40386 3885930; 355.41174 1514466; 355.49769 65271; 355.89604 134948; 356.04264 35633; 356.08961 151593; 356.10788 15846; 356.11314 3972; 356.19529 43672; 356.76545 7260611; 356.99554 43837; 357.09367 4272; 357.11516 43809; 357.13604 68765; 357.14734 37521; 357.19183 1043582; 357.32486 16930; 357.3386 52132; 357.36074 8089; 357.38281 5810975; 357.42384 25157; 357.53605 3509; 357.87982 395383; 357.97901 21556; 358.02403 726007; 358.40573 23909; 358.4165 3298352; 358.45609 133479; 358.5095 28555129; 358.6843 1466086; 358.79817 1677168; 358.80213 5666429; 359.09764 78858; 359.39347 5311; 359.47648 9622602; 359.53159 8918; 359.65564 1147159; 359.8722 29546; 359.89995 76184; 360.0075 68038; 360.84 52569; 360.99725 11417; 361.04286 1205647; 361.4288 4091572; 361.60778 892966; 361.72264 554703; 361.97984 3638576; 362.20643 27871; 362.37554 5460860; 362.44927 60473; 362.48611 8277616; 362.9453 35596; 363.04242 222007; 363.1263 5134; 363.18008 9141; 363.46461 270500; 363.6162 3823; 363.84656 163173; 364.13538 44220; 364.63502 219780; 364.71391 77737; 364.78337 9222; 364.80627 33734; 365.08195 4560; 365.34548 5378; 365.5208 9436; 365.59112 80107; 365.63411 38284; 366.13768 8038939; 366.57901 35584; 366.63625 55951; 366.68807 69402; 366.83933 14802; 367.24382 17519568; 367.33219 4107; 367.52491 48116; 367.82864 9961; 368.09487 13873764; 368.1623 71116; 368.29349 59623; 368.30018 28778; 368.50975 431980; 368.65452 55586; 368.78257 143909; 368.93232 44830; 369.11351 3756; 369.13294 23243; 369.69801 105400; 369.90737 1969141; 370.00005 15203; 370.01951 25287; 370.05713 1316087; 370.10824 4932920; 370.40059 850977; 370.68008 7750; 370.8212 58035; 370.85132 33311; 370.87998 33111; 370.94774 45140; 371.05274 3643262; 371.19621 38173; 371.35772 467; 371.44405 19277; 371.88808 8948247; 372.09292 28596; 372.26562 53698; 372.6138 60106; 372.6973 59683; 372.9175 72516; 373.29696 22721406; 373.41964 7937944; 373.53737 1315433; 373.88032 3578; 374.02976 9698236; 374.20844 4982696; 374.50053 2072910; 374.55178 18960; 374.55425 4842519; 374.58135 75754; 374.67442 3832; 375.0649 29045578; 375.10013 112441; 375.18377 27860; 375.20619 74551; 375.39468 1647570; 375.59305 7011; 376.24143 28665; 376.29492 1591219; 376.37474 23535; 376.40363 27083; 376.66449 44639; 376.87763 1016753; 377.5247 539640; 377.80705 7948365; 377.82487 9847411; 377.82532 19147; 378.01686 8455; 378.23373 3717658; 378.36925 921815; 378.37185 34543; 378.82955 164536; 378.93773 26434; 379.04045 99003; 379.34326 1995093; 379.61446 916703; 379.77996 9070458; 380.03705 1462426; 380.05092 29031274; 380.20767 73590; 380.2471 8519; 380.27031 8234492; 380.3001 84867; 380.38296 21527; 381.17467 61662; 381.31813 7307; 381.42933 69991; 381.55176 8450339; 381.60313 36333; 381.65145 1054713; 381.75364 182429; 381.90614 612915; 382.08756 5782725; 382.21719 37252; 382.50554 54389; 382.61911 20676; 382.73104 3888698; 382.77655 6375; 382.81869 58894; 382.83653 178798; 383.05119 37023; 383.32356 184907; 383.35009 3200800; 384.19424 9011889; 384.42202 788251; 384.4293 63172; 384.52834 3528549; 384.77377 71418; 384.95815 29502; 385.55556 555; 386.10494 218607; 386.34277 59026; 386.37797 6177; 387.72086 20868; 387.75312 49058; 387.76279 191656; 388.14566 70245; 388.25814 410669; 388.49072 593456; 388.50911 9472; 388.54579 1403714; 388.74026 873; 388.81847 59921; 388.90275 34828; 388.97455 12444555; 389.2575 2905005; 389.49475 11294; 389.49514 1649199; 389.71421 41685; 389.73737 35692; 390.43188 1230; 390.46207 1217255; 390.69947 37509; 390.94481 84740; 390.98451 70534; 391.36391 35622; 391.37771 1424829; 391.48053 5994; 391.97816 19959; 392.04114 186413; 392.38092 76823; 393.06261 2490; 393.29122 1917689; 393.5668 26977; 393.58106 1013; 394.03658 49624; 394.13647 50921; 394.32035 24611; 394.37483 107777; 394.7943 23635; 394.81537 67026; 394.84272 45084; 394.86756 24660; 394.91991 77109; 395.13746 1148958; 395.3051 13877; 395.62057 220478; 395.67469 674902; 395.71683 106556; 395.76345 73370; 395.85299 7149; 395.97825 56254; 396.26621 75619; 396.40737 34016; 396.4576 76738; 396.67352 3093105; 396.79678 1305866; 396.9687 1900826; 397.24888 21828; 397.26615 9375; 397.6489 48482; 397.75253 68837; 397.92355 20076; 397.98483 3621789; 398.20238 21300; 398.57545 3778; 398.61792 48853; 398.66868 18671; 398.77202 35138; 398.92935 36751; 399.05158 22270148; 399.40965 8243; 399.57555 2160; 399.64783 1627963; 399.80202 40601; 399.82945 28133; 399.83273 37413; 399.84257 48877; 399.9517 1576880; 400.02277 9687; 400.20134 23833; 400.53184 1398036; 400.91942 30894; 401.02758 1220746; 401.03469 4402974; 401.11861 866023; 401.19526 8049; 401.22976 2334111; 401.35523 178171; 401.40403 4886983; 401.47554 40874; 401.61257 222; 401.76788 542978; 401.80085 23338; 402.01355 347837; 402.20228 55079; 402.43885 74111; 402.55059 41764; 402.88511 54491; 403.06125 62432; 403.10221 1902341; 403.13337 122461; 403.39594 19434; 403.4285 75581; 403.87995 6664725; 404.05603 9639; 404.17827 22954919; 404.43734 81934; 404.5341 196876; 405.03352 64051; 405.2292 47394; 405.3413 1586; 405.5667 25528; 405.67742 72427; 405.75793 4863238; 405.93604 34648; 406.19928 7492; 406.81676 23336380; 406.85152 1096905; 406.86842 9937; 407.35657 52620; 407.43611 3744355; 407.5677 11852; 407.75522 22942; 407.78491 8039523; 407.80915 4562022; 408.07833 28146; 408.12362 63119; 408.17551 21720; 408.19494 26322; 408.28725 79241; 408.45321 5680; 408.77387 25202; 408.79526 28718; 408.93643 161089; 409.13002 703; 409.39432 67243; 409.70909 805174; 409.73247 1122434; 409.8621 770584; 410.03177 52396; 410.1202 7355853; 410.5794 2256518; 411.72624 15054; 411.78316 9621; 411.79275 2549067; 411.86202 8848; 412.03572 46881; 412.10626 52897; 412.26165 7617; 412.41694 21449846; 412.6976 49080; 412.71321 598658; 412.85147 16124; 412.8854 4178541; 413.05022 1284670; 413.38676 182101; 413.51747 29227; 413.5326 7718646; 414.07491 22457158; 414.1003 339103; 414.12011 165643; 414.16565 69541; 414.44821 3861; 414.51009 6500; 414.72873 12973248; 415.2101 83198; 415.46443 26263; 415.51963 2481; 415.74703 20289; 416.28723 8632; 416.46315 64423; 416.80123 23062206; 416.80373 55185; 417.29243 664501; 417.35898 8558; 417.40653 4993421; 417.69908 76472; 417.86694 4419; 418.04008 1842320; 418.06156 24621; 418.37399 4219089; 418.54365 1710423; 418.60987 3547157; 418.65876 6723352; 418.99042 10391; 419.16761 8534037; 419.59245 105277; 419.78241 8206; 419.81198 66267; 420.37228 21992; 420.71148 12289; 421.63832 21456; 421.67976 657009; 422.2117 26807; 422.64652 67395; 422.77855 50133; 422.98935 1566972; 422.99689 49359; 423.25471 230778; 423.30854 199134; 423.93985 1953510; 423.94906 4906885; 424.38046 79549; 424.40192 9184996; 424.54071 2027066; 424.6037 2748057; 424.7926 14754; 424.79631 70380; 424.88293 58549; 424.98968 29361; 425.01591 145717; 425.26271 159985; 425.269 4505590; 425.44373 1326448; 425.53221 35607; 425.55253 1091728; 425.86125 33744; 425.93566 54234; 425.9411 432121; 426.42724 49101; 426.43443 31536; 427.05032 1776452; 427.28335 7371; 427.57772 416554; 427.69905 37063; 428.05713 811593; 428.10373 1093; 428.14382 4676; 428.44648 56745; 428.47557 25795; 429.02488 7937; 429.07029 4311230; 429.12658 94529; 429.20157 873201; 429.85091 47693; 429.93365 46388; 430.00296 378597; 430.16133 4217192; 430.27586 173771; 430.40027 3462600; 430.56394 1329908; 430.64509 9572606; 430.69096 2629; 430.73136 3639823; 430.92716 326265; 430.98443 64695; 431.00731 35069; 431.03365 125796; 431.48651 30348; 431.84321 58427; 432.09457 3606233; 433.13713 6808; 434.4065 40721; 434.49971 6089353; 434.59395 78910; 434.59625 40229; 434.69094 1257680; 434.72708 7100447; 434.74054 59093; 434.97429 3391796; 435.01 178356; 435.04454 65367; 435.63077 1575223; 435.88544 45073; 436.19225 1030622; 436.21499 3244939; 436.31059 10044; 436.37997 42096; 436.53999 4479171; 436.5628 9607; 436.82989 27227106; 437.37246 1562999; 437.37654 6717735; 437.57307 1518457; 437.62946 1030659; 437.9488 4800; 438.5703 75086; 438.66145 75513; 438.79914 46391; 439.03248 206640; 439.23809 59336; 439.40498 8365; 439.4436 21518; 439.73957 853355; 439.7421 67764; 440.29583 37159; 440.76293 27851; 440.85545 4763230; 440.9487 42596; 441.25819 434155; 441.35054 30117; 441.41961 812392; 441.60098 5243; 441.79137 17601; 442.2741 32808; 442.34719 1330536; 442.3474 565; 442.4206 26363; 442.469 28641; 442.4984 20504; 442.56363 1487; 442.74835 1091; 443.03988 52545; 443.07752 26660099; 443.20521 1632300; 443.22752 27067; 443.37911 67799; 443.6467 4059; 443.90755 26465; 443.91231 1043669; 443.93764 74203; 443.98781 3870; 444.02575 6964440; 444.18382 18579; 444.49601 1986548; 444.54611 14665; 444.77805 626306; 444.96281 25766; 445.04502 63333; 445.11883 48011; 445.23297 25475; 445.3383 4805708; 445.40308 3279612; 445.52972 5325; 445.95815 16461787; 446.01763 1006851; 446.0864 2638581; 446.29708 1576249; 446.35721 1441773; 446.42728 6412759; 446.61553 9134; 446.83442 239663; 446.85302 69488; 447.01639 9340491; 447.09124 55963; 447.14571 35816; 447.24065 1448414; 447.56096 6258956; 448.01767 6750; 448.18093 1250360; 448.20583 4578906; 448.48244 7625076; 448.55563 21619; 448.90772 704988; 449.438 9954442; 449.72396 61288; 450.16981 2237092; 450.17137 65331; 450.34708 3805849; 450.4495 179901; 450.57193 50569; 450.661 40287; 450.8327 409886; 451.05587 37495; 451.19836 1113419; 451.30776 4256743; 451.47143 1040551; 451.48607 512497; 451.54765 1956495; 451.57131 183450; 451.83603 489; 451.887 28049; 452.37307 149117; 452.55083 830378; 452.81628 3492; 452.91008 77751; 453.01753 2862440; 453.04316 133924; 453.20129 126973; 453.41816 186; 453.52243 5246081; 453.69736 37649; 454.01059 187501; 454.119 1669947; 454.12722 38408; 454.16714 511634; 454.86343 21595; 455.06451 24484; 455.10313 124011; 455.65009 101014; 455.73477 55662; 455.82695 382; 455.83152 57114; 455.86073 724953; 456.02287 26796; 456.24036 19536; 456.31899 9915383; 456.56894 68615; 456.72112 52203; 457.3406 570016; 457.4817 18348033; 457.52205 33094; 457.73965 25990503; 457.85711 1085101; 458.03525 7668260; 458.11647 3020; 458.33266 78; 458.59195 174522; 458.78764 23289; 458.89847 91142; 459.62188 50526; 460.25783 3548914; 460.29062 50201; 460.38193 9600277; 460.39997 6160; 460.60122 6072; 460.7726 685125; 460.95805 298801; 461.07882 192193; 461.15732 71547; 461.19885 56927; 461.23124 9146330; 461.36453 1371379; 461.41444 4563541; 461.46049 28816; 461.61372 13217; 461.68923 14200859; 461.69901 8544; 461.85489 38967; 461.8749 2924; 462.37377 1048345; 462.45395 9907; 462.48721 71657; 462.78372 2217543; 462.91283 22809; 463.19481 8147; 463.28096 48671; 463.42512 177318; 465.4627 47519; 465.50258 28272; 465.52715 50072; 465.56511 67621; 465.91219 1261891; 466.06652 1260664; 466.34223 37987; 466.37865 28934; 466.54878 8168; 466.62231 46910; 466.69328 165476; 466.82316 3066022; 466.86113 13358; 467.12957 53172; 467.17752 1596291; 467.30979 3588563; 467.3193 74514; 467.38647 25236; 467.43352 64662; 468.32679 36980; 468.41409 4671; 468.46505 4120825; 468.57076 2483001; 468.60984 7275; 468.67247 50335; 469.14772 104746; 469.64559 36678; 469.69694 22589; 469.74163 945290; 470.14392 791651; 470.23119 23308; 470.28291 13774955; 470.32433 2836576; 470.41368 5000; 470.62567 52471; 470.79387 20093; 471.27621 9525379; 471.61767 3101751; 471.73169 10326; 471.78672 9238; 471.86961 1245204; 472.25447 865508; 472.39023 1389; 472.524 2449053; 472.59255 6474429; 472.68273 3446650; 472.97807 21873; 473.01553 20305; 473.0489 1945202; 473.18722 1880350; 473.33391 1844185; 473.36133 898993; 473.44595 79456; 473.78268 4341572; 473.90863 4987; 474.03196 6833536; 474.05392 62069; 474.34082 56576; 474.37543 165496; 474.71186 26106; 474.73867 39056; 474.97555 3898114; 475.03187 1808; 475.25094 7532373; 475.54363 106583; 475.59638 18579759; 475.65236 2919385; 475.78383 878777; 475.80335 38675; 475.96934 9305528; 476.20099 124775; 476.3423 65852; 476.78316 27635; 476.85667 673758; 476.93403 7630; 477.11298 2611071; 477.69442 4783920; 478.16718 70776; 478.19455 320633; 478.65105 32783; 478.75714 1508142; 478.88713 131846; 479.21901 10641; 479.45434 101; 479.58934 6277; 479.66251 22353; 479.69673 8144126; 479.76121 4735; 479.76854 69115; 479.79013 2080; 480.02747 1107595; 480.15762 1210944; 480.19667 15725; 480.40968 3501192; 480.68787 23324; 480.85096 5561; 480.93457 88540; 481.07332 64010; 481.10159 66773; 481.15 24503; 481.41426 514785; 481.47804 40053; 481.48853 1880; 481.57086 1103976; 481.85077 7904971; 482.31649 79811; 482.81258 87860; 482.81994 6868526; 483.38698 38438; 483.40194 23286; 483.49869 591536; 483.61535 698725; 483.61921 5747; 483.61936 9867; 483.65194 53450; 483.77894 4963567; 483.84661 7187; 483.90447 3368990; 484.17434 21403335; 484.2989 1459391; 484.38662 44479; 484.5356 95568; 484.57102 72917; 484.57966 156371; 484.70795 80354; 484.80987 87913; 485.11575 1430002; 485.1572 1937620; 485.52209 3470875; 485.80268 38326; 485.92379 486889; 486.19374 64615; 486.21404 712040; 486.58694 3893; 487.11831 32897; 487.16018 22772; 487.18142 3362; 487.3983 1401034; 487.48522 6279; 487.62488 1311750; 487.656 8738576; 487.75141 42768; 487.96298 9668638; 487.97393 981537; 488.08412 76613; 488.17607 32764; 488.38363 1076290; 488.4092 24101; 488.96608 871; 489.06641 48999; 489.47052 1302926; 489.77773 661676; 489.83146 5115; 489.86558 8472593; 490.08037 9972; 490.17242 11690; 490.2074 1511611; 490.23724 5528867; 490.28675 67828; 490.58377 2431577; 491.03352 4295; 491.4403 8946322; 491.71981 26358; 492.30043 1231613; 492.40123 7023705; 492.46833 6222102; 492.60697 18858; 493.34918 9770214; 493.75607 5194; 493.80601 683423; 494.12399 1848672; 494.16101 4840789; 494.40565 271186; 494.40924 733370; 494.62965 14867; 494.64437 9122; 494.67181 22601; 494.75514 72822; 494.95388 4361428; 494.99287 709444; 495.04535 8704031; 495.08546 8605; 495.09839 6573847; 495.18891 1117549; 495.67664 708168; 495.84244 938; 495.9974 75987; 496.01357 4741250; 496.09893 23703; 496.38477 3908399; 496.38886 155721; 496.39978 40003; 496.62893 742190; 496.66818 499597; 496.75883 38500; 496.82644 24543; 497.28303 669531; 497.42287 73065; 497.58396 58682; 497.90978 7775295; 498.28287 3668219; 498.42771 147630; 498.71248 68188; 498.72706 63787; 498.82433 3316137; 498.85969 5608038; 499.39156 46338; 499.9355 10918 +<2, 3>: 0.01388 4100364; 0.11883 4043781; 0.30124 2974; 0.33477 41341; 0.36676 726872; 0.44618 6725626; 0.50107 2641; 0.58188 49832; 0.74359 953262; 0.76401 17103; 0.76509 33308; 0.79752 6430; 0.81437 2861; 0.83495 12471; 0.88766 77711; 1.31728 789226; 1.55334 134970; 1.60346 21727; 1.66746 3934; 1.67241 3096415; 1.71841 67680; 1.83068 10297; 1.88394 2347; 1.95672 24599; 2.63453 4454802; 3.08164 13021; 3.09081 7663824; 3.30198 3865928; 3.31248 73879; 3.37768 6984; 3.49501 48397; 3.78001 21394357; 3.97395 1973035; 4.01721 3237621; 4.16026 2056115; 4.44389 34316; 4.58949 193713; 4.75602 22579; 4.8039 16760; 5.31695 41798; 5.43967 79868; 5.6539 65838; 5.82464 25961; 5.96126 1276040; 6.05483 2244665; 6.69547 3942244; 6.80395 2160494; 6.84294 915921; 6.91904 7802352; 7.10469 60752; 7.29718 85436; 7.61974 787334; 7.63664 3336484; 7.66415 26935; 7.71705 67094; 7.82236 9807; 8.27512 28852; 8.31157 541; 8.37635 34805; 8.40487 1131517; 9.00979 72917; 9.30234 19362; 9.43779 50493; 9.49367 590418; 9.72282 8675; 9.99529 19769; 10.38769 2783; 10.39212 5785902; 10.46941 3926525; 10.53428 87408; 10.58078 1745380; 11.41216 41408; 11.46234 79030; 11.64918 1947943; 11.86965 15561; 11.93493 6248490; 12.04274 14855; 12.10417 3286053; 12.36468 144585; 12.39849 32345; 12.73861 23076; 12.90425 1337; 13.403 5803; 13.54162 11225; 13.64949 3606171; 13.65395 10234; 13.73485 23703; 13.85473 28401833; 13.90309 3207; 14.05397 60498; 14.42637 11257603; 14.53666 21280; 14.8696 3931299; 14.92464 2259357; 15.20044 4197482; 15.2289 7135; 15.49772 280610; 15.5341 11103; 15.67308 615421; 15.78817 57705; 15.89897 12549; 16.18214 7514908; 16.19999 32015; 16.31254 63393; 16.48436 155822; 16.982 76472; 17.20228 28096882; 17.35047 50888; 17.87437 163813; 17.89323 32989; 18.26911 275447; 18.35677 3334499; 18.57743 40256; 18.72809 1229670; 18.73837 8590066; 19.00482 150297; 19.03838 104907; 19.28076 5400; 19.67133 23255; 20.18168 17291694; 20.24166 26837; 20.25861 34267; 20.28188 54095; 20.29412 191610; 20.31058 7523909; 20.34251 2623; 20.43319 39983; 20.47432 6193; 20.49799 25716; 20.54818 7795409; 20.6786 22602226; 21.07544 135321; 21.29309 18446; 21.35159 191994; 21.5472 1784108; 21.62006 2050; 21.67248 25518; 21.97068 3866316; 22.13063 52837; 22.19597 318515; 22.37893 136318; 22.77832 74604; 22.80079 69232; 22.8017 46817; 22.89381 61441; 23.07609 57151; 23.09053 2736967; 23.14276 29505772; 23.15596 56204; 23.17981 31299; 23.25963 4085945; 23.50892 179450; 23.5276 6304669; 23.56224 50371; 23.59601 59863; 23.71677 773387; 23.88223 174264; 23.96556 1913096; 23.99923 834456; 24.03909 57309; 24.39958 24156660; 24.73594 70109; 25.05056 31337; 25.1788 1728; 25.20582 416164; 25.23505 175745; 25.30702 23612; 25.31181 79531; 25.5215 22039; 25.75031 1707539; 25.92198 68296; 26.11584 1753203; 26.22965 48660; 26.26335 1666383; 26.72048 44476; 26.96804 1613734; 26.99753 78293; 27.39696 9707; 27.56499 73975; 27.64043 27669; 27.74605 46472; 27.91991 6876; 27.96923 23090; 28.14059 40418; 28.48207 24359; 28.83418 458782; 28.84345 2408339; 28.9483 893244; 29.53767 29071; 29.70496 54918; 29.96798 76358; 30.02484 22939; 30.36109 57603; 30.46195 35806; 30.59618 25983; 30.90611 73452; 31.15666 16652; 31.164 1385767; 31.35 53230; 31.51504 64867; 31.68319 1991653; 31.98434 3147; 32.13963 1069331; 32.23814 4328; 32.25269 47746; 32.39231 184683; 32.50908 4959; 32.5662 10146; 32.69097 4458665; 32.99991 4911901; 34.01521 3459; 34.24917 49489; 34.38673 77731; 34.72989 3411453; 34.87943 14046; 34.96891 4836272; 35.05474 5596; 35.12968 756674; 35.45468 34289; 35.86857 53704; 35.9994 141497; 36.71313 22593; 36.98431 5401231; 37.05787 49559; 37.4599 14737; 37.47823 5232512; 38.05644 1245253; 38.06742 40063; 38.38746 27905; 38.71609 1080676; 38.78232 30503; 39.04831 7184; 39.13249 6055; 39.19945 1945178; 39.26301 59475; 39.27006 8611; 39.45541 18775; 39.45724 902961; 39.65709 77830; 39.67136 31567; 40.14231 1079799; 40.32108 9608; 40.38676 926162; 40.41725 3891128; 40.48409 119703; 40.48567 125052; 40.49413 2433; 40.5182 21698; 40.57116 1746374; 40.57381 121474; 40.67076 51407; 40.79872 3871; 40.8696 7396; 41.0316 1956; 41.36225 5249; 41.62986 78928; 42.91449 31371; 43.17001 161920; 43.42425 1415335; 43.75231 29309; 43.93747 65632; 43.94036 3454973; 43.99952 3992327; 44.16786 130221; 44.20736 143587; 44.39051 1705403; 44.43512 74288; 44.59665 3538; 44.81854 2873460; 44.92264 1619810; 45.16474 48517; 45.31127 4905; 45.31563 1357; 45.42852 24691; 45.4487 74352; 45.45538 22571; 45.64874 186260; 45.65397 4916543; 45.72736 58266; 45.99191 8548391; 46.14218 9211984; 46.1494 49003; 46.48725 24979; 46.62219 2611108; 46.63183 3151; 46.83351 22993; 46.91661 67231; 47.47999 1005235; 47.58628 24553; 47.73548 55340; 47.77336 510348; 48.06396 1627309; 48.07774 1864046; 48.10376 3014872; 48.12232 977410; 48.32256 1423428; 48.32376 880304; 48.87722 1494545; 48.96639 35677; 48.97325 8131294; 49.02343 2280110; 49.08709 40681; 49.1401 7290109; 49.23881 50650; 49.55043 285486; 49.56306 9313; 49.56441 652007; 49.57662 374632; 49.68946 16275796; 49.71642 11863573; 50.09783 7710; 50.48797 3625925; 50.62486 20577; 50.89301 24145; 50.93071 40978; 51.09537 1784218; 51.33167 5699; 51.38024 5312606; 51.96453 22707; 52.27249 67042; 52.31396 15719; 52.33575 34963; 52.42402 21850021; 52.44269 283699; 52.81071 36526; 52.86985 4072787; 53.03053 31904; 53.12506 3712; 53.33036 8719322; 53.68129 1783158; 53.74708 2919; 53.90186 433047; 54.03963 357; 54.39874 23970; 54.75345 26966; 54.86374 2290379; 54.96772 19165; 55.17465 14687; 55.23836 625386; 55.36047 198556; 55.4472 1213347; 55.49541 3391; 55.51583 15698; 55.57557 44392; 56.12181 19940761; 56.13916 1463856; 56.26348 831; 56.34086 66870; 56.35003 10691; 57.31666 21508; 57.38042 269488; 57.6419 1430663; 57.66116 4360; 57.6965 24054483; 57.75979 54264; 57.78763 970414; 57.92456 344462; 58.02914 1098397; 58.06013 1629730; 58.35646 1068146; 58.44808 5265; 58.45098 75006; 58.45905 1147785; 58.50864 14890; 58.60659 63328; 58.62701 50764; 58.69311 62521; 58.82303 1879980; 58.85865 551361; 59.15484 60347; 59.16428 60898; 59.28582 410939; 59.31415 57559; 59.41894 10485; 59.53786 69598; 59.62986 28026; 59.77105 4635543; 59.80211 1475; 59.81612 7696100; 59.91196 8159578; 60.00452 64421; 60.08978 3059; 60.29797 20843; 60.48654 62187; 60.715 74903; 60.81877 1280379; 60.88946 24739; 61.09746 73019; 61.42647 4234; 62.01303 35875; 62.01405 156359; 62.08343 1872007; 62.22906 1501499; 62.27264 9005254; 62.48409 5353479; 62.62182 59373; 62.63155 1187726; 62.83722 30906; 62.95727 848583; 63.51045 1159474; 63.57525 308871; 64.00115 1097714; 64.13066 7665; 64.34606 1433401; 64.95534 65537; 65.10336 5259680; 65.44726 24611443; 65.74366 341220; 65.8068 23204236; 65.84686 3381511; 65.9283 48176; 66.32604 18987644; 66.52104 43198; 66.59658 9377; 66.63227 171981; 66.64164 11279; 66.77875 551115; 66.83728 21562555; 67.23944 33151; 67.26827 3041273; 67.48676 2449858; 67.51769 22592; 67.56996 881204; 68.24635 9623621; 68.3979 517156; 68.66373 5000990; 69.1777 505159; 69.45381 28225; 69.61917 348; 69.6247 15303; 69.67332 2886; 69.77119 1688885; 69.77847 27; 69.87193 65216; 69.88316 4652; 70.02055 7160; 70.05648 29253; 70.11612 8007; 70.35055 75395; 70.5703 9363249; 70.57296 2174824; 70.97398 52144; 71.08829 8239; 71.08959 74250; 71.10511 51392; 71.19358 843779; 71.38471 7419; 71.53438 113784; 71.61184 15771046; 71.66889 80273; 71.69778 3548; 71.91387 9350373; 71.95728 6106; 72.33168 128579; 72.45099 5670; 72.4933 72654; 72.56238 1108674; 72.62055 833668; 72.70264 27474; 72.71342 19633; 72.71647 159044; 72.92919 1038193; 72.95335 24540; 73.005 3243618; 73.48558 1370692; 73.94418 1937573; 74.11406 13822; 74.12654 112820; 74.13936 3991; 74.24374 5410; 74.3841 996266; 74.5342 99944; 75.082 2082; 75.44258 36130; 76.03605 26404618; 76.16884 52056; 76.61367 43025; 76.85022 625218; 76.87138 1695505; 76.91718 8872736; 77.35268 3999; 77.4846 8981983; 78.15076 74007; 78.61396 55055; 78.72922 16066; 79.01244 106742; 79.05294 22407; 79.4311 200152; 79.47329 57342; 79.63692 48040; 79.67423 9464; 79.68088 3545; 79.75032 1404172; 79.91518 28831; 79.99835 74351; 80.09723 850744; 80.32207 71087; 80.36657 45022; 80.73996 14404066; 80.8198 22110; 81.74171 32122; 81.86204 2991509; 82.28786 14141; 82.37226 27244; 82.4384 1024032; 82.46113 767677; 83.3622 862960; 83.37542 4685203; 83.51994 465168; 83.82427 225572; 83.8317 275912; 83.87966 9644; 84.65746 4349785; 85.55596 63097; 85.6497 31190; 85.71509 6429; 86.18982 108110; 86.57311 19530; 86.80986 827672; 86.86524 7767; 87.02232 29919; 87.64263 5557105; 87.76226 51121; 87.84053 71790; 88.23967 9120; 88.45801 64380; 88.52748 4421; 89.18604 27774; 89.60609 33959; 89.99632 1795508; 90.05212 3233748; 90.27236 696115; 90.51148 347948; 90.53136 77129; 90.6268 15797; 90.71087 39759; 91.46354 978604; 91.80513 22503; 92.13928 7491; 92.1909 279119; 92.3779 236315; 92.38998 1310621; 92.41205 45451; 92.51725 6633; 92.98636 1602218; 93.05072 10111; 93.20576 1664159; 93.21707 9058361; 93.43427 1492; 93.62059 39313; 93.7279 17383; 93.886 722058; 94.08485 68369; 94.14043 134816; 94.14584 69648; 94.23099 8202812; 94.28836 5209661; 94.50103 46305; 94.64259 12762; 94.80939 20527; 95.18931 755601; 95.49248 1266126; 95.51747 1915274; 95.52014 44384; 95.7508 1227077; 95.80384 382; 95.81296 57201; 96.27574 29577259; 96.47942 260396; 96.79471 9006; 96.83953 28602; 97.0028 5180888; 97.02283 49540; 97.14692 3885613; 97.21875 12474382; 97.55307 1728662; 97.59433 36917; 97.76993 1978673; 97.83368 63406; 97.92045 5171; 98.13425 3756; 98.17487 69592; 98.20162 71589; 98.22059 29319; 98.26506 159393; 98.29271 117140; 98.63991 1709164; 98.64148 1903321; 98.83583 67925; 98.96338 1750796; 99.0509 7968550; 99.13173 538259; 99.13898 576518; 99.2171 46834; 99.22768 24565; 99.29086 37609; 99.3006 1385257; 99.31005 9200; 99.54701 14466; 99.63335 7306; 99.63937 17623; 100.17864 71417; 100.30812 955268; 100.44486 59426; 101.09983 48661; 101.46256 47667; 101.53726 179558; 102.04727 1467483; 102.13392 9229; 102.34318 71277; 102.38872 1288684; 102.44629 8382; 102.77957 136892; 102.86397 47438; 103.0162 142610; 103.53499 120246; 103.82837 1316553; 103.98207 79472; 104.53779 24206; 105.28292 1659303; 105.34576 1492490; 105.45114 2917456; 105.75905 3190668; 105.94008 44887; 105.94432 11719; 106.44628 27539; 106.56576 30391; 106.59449 24979523; 106.72526 1367908; 106.85523 156788; 106.92936 726901; 107.36379 1256833; 107.42932 74790; 107.54879 2708; 107.84561 5552635; 108.47149 568205; 108.57255 264; 108.60313 4578733; 108.631 33026; 108.75847 4570215; 108.84378 9515; 108.85415 3048; 108.91948 6728; 108.94726 2284827; 109.84228 6870827; 109.94324 509067; 110.41618 258581; 110.50526 3639256; 110.52207 8615798; 110.84487 263513; 111.12686 4159471; 111.47885 400992; 111.55457 7009677; 111.68111 76885; 111.87757 25545673; 111.97673 73052; 112.06199 8839893; 112.26085 27135846; 112.28603 10656; 113.06716 25813; 113.46828 713969; 113.78447 15168; 114.00787 386198; 114.1526 101382; 114.19938 1973730; 114.55643 23630; 114.68369 8877; 114.73114 50915; 114.75336 30906; 114.81818 54207; 114.82283 2418441; 115.14068 42011; 115.84279 3447022; 116.02042 3011; 116.0616 1739379; 116.15795 60777; 116.2178 20847; 116.34321 51686; 116.55172 67792; 116.8969 21092; 116.93961 43628; 117.07113 77605; 117.19979 1097115; 117.20644 3673; 117.43458 62413; 117.99323 9618; 118.26279 2845; 118.28858 10865; 118.44246 1808765; 118.67534 2852931; 118.71339 151660; 118.75619 1889076; 118.7745 3217862; 118.77587 4456723; 118.93306 4671516; 118.99376 7822; 119.03872 8374; 119.25616 12809; 119.26496 2127238; 119.40079 9449; 119.41348 166491; 119.50055 32458; 119.57264 781586; 119.82175 87284; 119.92741 74190; 120.0195 947204; 120.04107 7029025; 120.14694 9322; 120.32565 18001; 120.36533 2995960; 120.5559 49174; 120.66091 22147; 121.09276 81328; 121.78951 7944; 121.82283 69196; 122.03218 770090; 122.45733 43855; 122.49329 540723; 122.68634 49152; 122.73534 18073326; 122.82195 5117715; 122.83277 56843; 123.03674 5688801; 123.04468 276788; 123.33347 9660; 123.42836 69487; 123.46174 464662; 123.58673 1430899; 123.73206 889399; 123.76045 45961; 123.91186 37718; 123.93484 13678077; 124.5808 37767; 125.42928 29220; 125.46701 34657; 125.70712 682956; 126.00165 9617231; 126.0384 26252; 126.47529 1052131; 126.56762 54075; 126.87453 9821704; 127.24499 5297; 127.3913 45708; 127.98301 4616067; 128.00989 29397; 128.08097 740079; 128.08353 6378; 128.28452 904073; 128.59077 278916; 128.63123 48109; 128.75401 7071653; 128.90838 71311; 129.04562 1160927; 129.1416 8847; 129.26034 35312; 129.35032 73373; 129.56938 107505; 129.77174 7568; 129.83523 4459463; 129.94831 50390; 129.99498 2586; 130.50271 267644; 130.75592 7528268; 130.79206 3472; 130.81705 7853; 130.84108 13224; 130.95592 24301; 131.25452 53485; 131.58898 948458; 131.75695 2464383; 132.00884 188167; 132.04471 8796112; 132.05579 20922682; 132.24053 777952; 132.64468 76696; 133.546 60976; 133.66848 208253; 134.32679 35122; 134.46508 1556; 134.46884 92361; 134.48935 4996649; 134.57671 1331414; 135.22437 48; 135.42269 1788087; 136.05139 1119915; 136.72345 29721; 136.83305 7491; 136.83801 63717; 136.94788 67937; 136.95862 17876; 137.00211 23602; 137.04949 51254; 137.10904 2155617; 137.12521 765593; 138.56358 1829781; 138.78452 25601; 138.9674 1800; 138.97403 54920; 139.1373 1375032; 139.17761 6393865; 139.44557 6555; 139.92192 24527; 140.04083 9784; 140.32232 5383; 140.43167 25240; 140.43174 60737; 140.59621 78023; 140.85909 16999; 141.89282 18027; 142.32279 1560423; 142.59174 13257; 142.61818 6191553; 142.64076 16388510; 142.82095 13261; 143.01344 73518; 143.29389 61792; 143.40789 26133; 143.69125 4050363; 143.79806 1517377; 144.00317 1726678; 144.08891 92090; 144.22181 9238; 144.31911 100308; 144.37529 8073; 144.53311 1968207; 144.94249 1038018; 145.05349 8564; 145.52145 2333072; 145.60884 45591; 145.6893 284622; 145.81429 47423; 145.92268 7987640; 145.94984 71184; 146.0659 3179525; 146.07518 8018; 146.0821 2855491; 146.11133 14171; 146.43911 7772; 146.52696 1333630; 146.57149 32658; 146.5955 4332236; 146.655 536136; 146.8049 79997; 147.06393 1044174; 147.48132 1433530; 147.89408 1556288; 147.99949 47044; 148.15638 19161; 148.20238 73954; 148.27641 78778; 148.68531 74316; 148.71365 21983978; 148.95321 25214; 149.09676 12810; 149.1218 8625623; 149.15423 442; 149.27311 4806; 149.39463 8970; 149.58729 3563646; 149.64978 63781; 149.66116 1897568; 149.66597 10944; 150.13586 6320827; 150.22571 185376; 150.31943 93697; 150.38312 79290; 150.83572 7308865; 150.93025 793013; 151.21301 2837294; 151.60999 39397; 151.85096 8358; 151.85971 6492; 152.10469 27741; 152.11496 4363; 152.22642 304; 152.60659 43533; 152.89646 7338; 152.89812 25552430; 152.992 970727; 153.0271 5695859; 153.2753 4949431; 153.34365 69373; 153.50588 77947; 153.64253 24206; 154.04614 4252200; 154.49441 38779; 154.50921 575522; 154.53958 655303; 154.68763 4502609; 154.73511 3405; 154.93575 4582; 155.10036 3478711; 155.4592 11003; 155.95968 72284; 156.00834 172090; 156.09268 60170; 156.43337 58898; 156.63774 175766; 156.7469 143150; 156.84658 1606911; 156.91479 7947897; 157.02279 1788481; 157.04299 409340; 157.06415 60579; 157.14081 5956; 157.32159 29106426; 157.51614 3188087; 157.5815 122690; 157.68105 19750; 157.68345 2665; 157.83463 3578732; 158.27603 3264220; 158.2838 25619; 158.36667 23150; 158.58077 54211; 158.59816 14243236; 159.13371 40801; 159.14772 13613; 159.19068 9899279; 159.19986 9668; 159.2639 4834932; 159.34354 3131344; 159.50138 4364501; 159.56005 1532863; 159.62896 22189; 159.75684 2542462; 159.84526 1535812; 160.02453 82964; 160.14194 849792; 160.55158 44466; 160.58275 18612; 160.68582 1394735; 160.7902 78319; 160.80214 2677; 160.85573 1195; 160.86325 138866; 160.98266 150608; 161.15375 1789516; 161.16872 771318; 161.25464 42565; 162.10537 8608; 162.18375 15688235; 162.27929 5461639; 162.88777 46091; 162.92922 895924; 163.02079 1249877; 163.14156 1476165; 163.21414 20712870; 163.52917 46687; 164.16242 1624436; 164.79794 317703; 164.89483 42730; 165.64231 10366094; 165.66908 1362097; 166.05669 4167755; 166.49643 59055; 166.8973 1938618; 166.9772 1533322; 167.02588 253977; 167.2698 1397847; 167.3031 196685; 167.69514 5240; 167.93679 31771; 168.05116 61129; 168.16835 1855912; 168.17262 984740; 168.26219 8443113; 168.30833 54888; 168.37219 4390733; 168.63455 12175346; 168.82768 160790; 169.26167 74417; 169.61565 21825; 169.68137 684875; 169.94396 24821; 170.0636 169611; 170.12045 947828; 170.18879 817524; 170.30981 103080; 170.30983 29681; 170.60602 1146202; 170.6221 3077; 171.34412 7408691; 171.41032 19940; 171.47515 1964178; 171.48746 590125; 171.65527 114959; 171.67205 70747; 171.79681 62207; 172.79086 14605383; 172.96312 1418858; 173.14994 6470654; 173.56144 14523; 173.5857 181242; 173.62452 3376; 173.76563 22594; 173.7803 71347; 173.79682 56996; 173.92676 71950; 174.16308 368029; 174.65875 29420; 175.2663 2544710; 175.34858 4926; 175.43502 67475; 175.69041 40537; 175.70177 974712; 175.85151 42377; 175.95312 36461; 175.96136 59449; 176.17814 2428645; 176.18763 80754; 176.44476 64814; 176.62848 1587849; 176.65597 26339; 176.81005 4167; 176.88446 9867210; 176.88886 534985; 177.20921 29672; 177.32071 20713; 177.34682 38620; 177.62997 1198207; 177.72115 4643; 177.87264 3641411; 177.89391 31156; 178.75673 11110; 178.82452 21385; 178.8664 34277; 178.9257 366943; 178.99154 50983; 179.06027 61972; 179.08619 123370; 179.17447 76421; 179.37982 4531; 179.41752 52508; 180.0338 215593; 180.58945 73741; 180.66867 1251735; 180.67797 719243; 181.00628 13625; 181.01708 48707; 181.05798 62345; 181.06473 4041614; 181.2213 48503; 181.3012 6413; 181.78489 174708; 181.87278 1935505; 181.88733 18532345; 182.11726 4102647; 182.19073 8916; 182.25381 61735; 182.30904 903039; 182.45601 3038; 183.08487 696726; 183.13118 14603; 183.28641 528444; 183.48411 58591; 183.6273 71982; 183.75658 30886; 184.09402 1486684; 184.20257 1502075; 184.30039 729809; 184.68498 45989; 184.68743 156467; 185.13386 1078135; 185.45843 3067; 185.63189 496931; 186.39308 7571402; 186.55055 1567654; 186.62039 89150; 186.87696 242164; 186.97187 155148; 186.9869 7174; 187.09845 5381; 187.53229 33104; 187.68542 4667611; 187.89003 71898; 187.90711 165249; 188.0759 6047; 188.15633 4436812; 188.88293 77933; 188.89615 531283; 189.01847 1898856; 189.10261 5575613; 189.11703 111994; 189.30266 77; 189.31301 6445431; 189.52668 71398; 189.82814 640601; 189.94937 26305; 190.00569 578212; 190.25884 2565445; 190.29885 77172; 190.30829 128554; 190.31672 9955; 190.34871 58816; 190.38273 2967349; 190.47961 1977241; 190.53634 15898; 190.84378 1421693; 191.31863 60850; 191.51483 29340; 191.93308 6573502; 192.04698 16310417; 192.0941 55749; 192.17808 25139; 192.20684 22054; 192.64594 64994; 192.6918 8535950; 192.84399 25692; 192.99131 7755571; 193.20003 495927; 193.27291 207019; 193.29619 1748; 193.52483 95441; 193.72026 8632283; 193.92304 953153; 194.12717 4404872; 194.55657 28143; 194.74916 19726; 194.80468 9726; 195.17562 464438; 195.22302 11545; 195.26499 39110; 195.56091 4807481; 195.72311 70883; 195.7658 34898; 195.97191 5752615; 196.13602 25195; 196.42444 11869987; 196.54379 31212; 196.54644 36265; 196.56702 8365; 196.62091 20009; 196.70148 1467164; 196.73977 44720; 196.82566 15475; 197.08025 29585; 197.35848 412596; 197.54985 7156; 197.70512 2301983; 197.81053 31771; 197.89179 5581970; 197.98889 179709; 198.25779 70999; 198.47646 3705; 198.83347 1178887; 198.88534 4337; 198.94265 508818; 199.11268 598331; 199.7012 1859433; 199.768 16347; 199.83831 1068767; 200.32224 78665; 200.38628 1548150; 200.50882 78339; 200.84179 900004; 200.85442 24586; 201.00201 59725; 201.48578 26436; 201.54878 68529; 201.72829 23984; 202.03675 11359; 202.90514 5119; 202.96055 59215; 203.09973 1606119; 203.54897 516935; 203.7003 25978; 203.79022 44968; 204.00171 9347803; 204.00801 29673541; 204.16289 1867875; 204.17519 143101; 204.20828 100172; 204.30605 20852; 204.39773 17337; 204.46195 3313904; 204.52484 12448707; 204.65925 47625; 204.72766 1740800; 205.01357 5655031; 205.3429 15277; 205.64692 6303879; 205.72959 22501; 205.74917 137183; 205.82221 1882615; 205.88658 3226226; 205.91184 2199; 205.91398 35421; 206.15143 2646228; 206.36331 328341; 207.08068 46201; 207.19451 64342; 207.27936 3777; 207.49907 26026; 207.67839 23112; 208.1716 40767; 208.18082 7871; 208.20864 81839; 208.61062 196490; 209.18223 32201; 209.40953 10979; 209.60215 736218; 209.70356 1913; 209.73833 10551; 209.78289 50991; 209.94569 11466; 210.14907 74685; 210.20569 9462; 210.33157 86143; 210.45894 2873589; 210.73068 38609; 211.00239 37585; 211.1352 1197568; 211.19229 44814; 211.38211 24336; 211.46446 141051; 211.5566 27311; 211.58482 187322; 211.7055 70676; 211.71287 5836386; 211.8873 449342; 212.01813 76721; 212.0909 329856; 212.41657 898288; 212.53078 304748; 212.58854 23996; 212.72743 44058; 212.84766 57990; 213.0107 86028; 213.24175 51703; 213.2549 49516; 213.36913 23872; 213.44025 5476; 213.55953 19127274; 213.65683 15171; 213.77551 1318082; 213.80077 8665001; 214.4096 76833; 214.55319 11873; 214.84796 32582; 214.94007 1887835; 215.04959 55763; 215.23852 34399; 215.36688 66042; 215.62452 2017100; 215.81221 26396; 216.46044 6428; 216.64001 1625860; 216.64955 1231985; 216.71648 64850; 216.72487 73338; 217.14081 17723; 217.16424 3916584; 217.2953 7661; 217.51556 37773; 217.62268 599409; 217.74147 21991; 218.00551 19391; 218.31543 63584; 218.6386 7214; 218.73905 3455; 219.01619 33796; 219.03766 8014; 219.16323 3321500; 219.43079 6170; 219.46748 35500; 219.58538 7631681; 219.77294 712493; 219.98175 21862; 220.13441 830472; 220.14691 20051; 220.15977 148644; 220.3524 5332635; 220.41514 1836; 220.51805 43512; 220.58644 8040410; 220.63468 1746449; 220.6358 2111374; 220.9587 639377; 221.15674 1368839; 221.35009 166841; 221.45364 1610174; 221.56809 65737; 221.58928 1441880; 221.66 31944; 221.8073 26776; 221.95685 14007; 221.98576 163850; 222.1634 37873; 222.16652 2184701; 222.80031 1800462; 223.06694 73581; 223.26937 4754222; 223.39905 24739; 223.50418 15701; 223.92598 542637; 223.93512 8225; 223.99901 56585; 224.24067 2780820; 224.29297 45292; 224.38977 1772151; 224.40754 19981; 224.45856 686554; 224.77802 68938; 224.91855 22898187; 224.91901 8187; 225.06682 771707; 225.12485 7443872; 225.22385 60278; 225.39749 72089; 225.65895 29610; 225.84844 24781; 226.12895 3221; 226.17321 27573; 226.71839 985898; 226.97034 71614; 227.13606 76821; 227.34201 26967; 227.40182 21765; 227.4373 78268; 227.55694 1999037; 227.86253 2259453; 227.98718 2814827; 228.44916 27129; 229.13996 3239; 229.50802 872669; 229.61073 76964; 229.74967 66117; 229.75102 4807; 229.86588 3958346; 230.12433 75999; 230.39001 964711; 230.44201 1142597; 230.60941 51132; 230.97662 61389; 231.03153 45895; 231.14337 1051869; 231.18669 1497733; 231.60519 24687; 231.65519 2933; 232.01967 11516; 232.18892 3412129; 232.69395 1269745; 232.76685 29078; 233.08338 32528; 233.43879 1394503; 233.44877 619588; 233.46692 8954; 233.85297 4315; 233.91939 3357275; 234.04092 4746; 234.09969 1526; 234.17238 3524; 234.22601 43182; 234.26124 76416; 234.38238 72345; 234.48624 7333959; 234.49328 67698; 234.58808 646853; 235.28985 1939355; 235.4021 8758295; 235.56991 39815; 235.62151 39868; 235.70435 65438; 236.06027 5928247; 236.16548 34631; 236.32182 16462; 236.37817 1294140; 236.56867 11296; 237.20058 19292741; 237.2376 6406; 238.7284 13855218; 238.75168 151807; 238.95469 932631; 238.97485 1060; 239.04626 9908; 239.26799 3303; 239.39349 43786; 239.45821 5560; 239.49793 29228; 239.52663 262739; 239.77168 3769599; 239.813 3217623; 239.86091 1650000; 240.06043 69509; 240.31403 8633; 240.41999 550503; 240.48849 4303200; 240.54948 51029; 240.65184 290277; 240.89634 1796; 240.95175 15871931; 241.0999 5913856; 241.1339 3182947; 241.60652 2906629; 241.67777 11200; 241.68801 45002; 241.85682 69293; 242.03418 58231; 242.11591 2756064; 242.67446 72244; 242.71451 9141; 242.72565 43237; 242.7394 22384; 243.03403 47590; 243.33314 13023851; 244.06594 2166; 244.76597 4981486; 244.8346 2315; 244.85282 3748607; 245.18063 4721373; 245.34781 373682; 245.41051 7898; 245.47222 1062136; 245.88294 1683548; 246.28156 5684279; 246.42388 68218; 246.61543 9912191; 246.65595 4100915; 246.853 280467; 247.95374 4539; 248.04618 22172; 248.14881 43657; 248.46019 4002989; 248.52473 142027; 248.84727 704670; 249.03135 3674538; 249.08446 4684; 249.34598 124151; 249.70584 1603158; 249.73333 4043836; 249.73572 35538; 250.01673 148481; 250.56708 2474; 250.6325 186034; 250.75124 6908; 250.89293 199700; 251.05971 69333; 251.10332 6623; 251.11458 34404; 251.62366 38619; 251.63079 30131; 251.67695 5985; 252.13335 182602; 252.20371 61036; 252.59496 29149; 252.93091 4127330; 253.14461 1816; 253.51601 5558; 253.66532 2694167; 253.67843 4991; 253.69501 7672; 253.71144 3009422; 253.82035 7609; 254.00282 16873; 254.15593 168191; 254.55533 24397; 254.60132 379305; 254.8299 1220247; 254.88123 54500; 255.28756 43275; 255.34117 1718446; 255.53144 698; 255.62017 1208770; 255.73278 21471155; 255.81843 1821878; 255.83368 14325; 255.87985 8009; 256.35069 9541075; 256.50262 1206; 256.55843 4583; 256.71575 8244; 256.87634 30435; 256.91821 69310; 257.05881 227836; 257.08492 208745; 257.75768 21859722; 257.75817 12360; 258.0265 13905; 258.23439 180519; 258.45216 29948; 258.57597 1221298; 258.86958 3947068; 258.98613 31749; 259.21799 9492659; 259.25519 3111; 259.37831 6727009; 259.52934 105182; 259.55006 22538; 259.8005 7797543; 259.97198 915608; 260.21395 79068; 260.29282 29404; 260.43448 840573; 260.546 65946; 260.78548 661252; 260.88715 67574; 261.09299 87289; 261.22589 1087887; 261.27127 131376; 261.76629 45579; 261.77948 9872; 261.93677 18405776; 261.95521 76528; 261.96068 1439092; 261.97863 1709652; 262.1518 2299194; 262.20779 22988; 262.44194 17903; 262.68563 29977; 262.93438 154162; 262.94629 532945; 262.99056 15164; 263.22377 67231; 263.42023 897616; 263.43804 2151; 263.46122 3041426; 263.67379 78913; 263.88516 1114056; 263.98925 42342; 264.05426 35764; 264.13965 2588185; 264.31091 8117484; 264.34649 46507; 264.46769 29685704; 264.5664 27455283; 264.64708 298110; 264.66925 8694477; 264.88313 40572; 265.16871 58301; 265.24975 29879; 265.36266 5948864; 265.39736 475959; 265.41986 5155111; 266.57706 1703439; 266.83939 121805; 267.07438 139572; 267.53815 182031; 267.84593 68507; 268.06482 1361286; 268.51682 709591; 268.63767 2580423; 268.67935 43202; 268.72344 948379; 268.88775 6608969; 269.06802 60153; 269.07873 6767887; 269.19348 102865; 269.58559 7962; 269.69635 9216; 269.76549 29687; 269.86419 6377; 270.11859 64214; 270.12111 4610863; 270.15862 1997531; 270.22553 21755; 270.47902 101344; 270.49076 3634856; 270.62126 24856; 270.62233 120327; 270.88366 2508; 270.99805 164424; 271.56282 41843; 271.67731 19301760; 272.06256 905006; 272.35474 9053; 272.46224 14204509; 272.49124 23529; 272.89957 3123078; 273.41018 7409407; 273.58653 36986; 273.9781 33253; 274.02306 70901; 274.11911 7467493; 274.15407 3869; 274.34764 35425; 274.54186 185636; 274.65778 27028; 274.96346 1638399; 274.98985 22892; 274.99186 568229; 275.11104 1820204; 275.22425 15915; 275.42294 3249; 275.52571 7180534; 275.63523 742858; 275.81719 578153; 275.90474 9943734; 275.91395 4408729; 276.01797 3870549; 276.0501 23972517; 276.09543 6187578; 276.27357 8011055; 276.45468 23835; 276.47672 2512782; 276.48566 40649; 276.56745 666126; 276.73333 8594; 276.80765 5745673; 276.83095 53613; 277.01769 24008; 277.13743 37195; 277.2037 4650482; 277.23861 2599501; 277.48655 1056099; 277.55149 188740; 277.57033 6169; 277.73166 14392; 277.88498 6897; 278.17912 17525111; 278.2339 2337939; 278.24518 621027; 278.28149 4941845; 278.32947 20046; 278.33647 47627; 278.55436 13391; 278.8586 23686; 279.01623 20793763; 279.08108 29243; 279.09755 93641; 279.15905 49424; 279.19513 743306; 279.26868 77885; 279.30157 58608; 279.38413 405169; 279.56832 1473270; 279.57139 1764327; 280.07705 19843; 280.26633 62994; 280.41473 36819; 280.47484 1685811; 280.57798 68692; 280.62819 941696; 281.05359 48838; 281.25523 47939; 281.32225 58846; 281.38687 91234; 281.42626 3724036; 282.14349 9412; 282.58233 10745245; 282.6335 6821; 282.92758 66543; 282.95562 7651; 282.95623 6796; 283.11783 21829; 283.12692 21156; 283.16362 1204044; 283.39775 479; 283.44091 2424261; 283.53527 3323030; 283.54114 58156; 283.60434 37175; 283.64077 2176617; 283.6726 58669; 283.75287 3574348; 283.84409 6250; 284.28796 4108331; 284.46276 3491043; 284.48607 4266; 284.5709 2149655; 284.6042 29356; 284.63052 19648; 284.67684 33148; 284.92272 44587; 284.92958 25872; 284.93205 5227380; 285.27436 7459437; 285.28101 90701; 285.31472 945337; 285.42884 164377; 285.47129 15579949; 285.54055 4635; 285.54848 160784; 285.55985 71507; 285.63383 71391; 285.67392 29213; 285.84626 13690; 285.86639 226015; 285.93205 392648; 285.98658 1707291; 285.99889 67742; 286.02387 214436; 286.097 45766; 286.34641 2714688; 286.80227 10787; 286.87066 21824; 286.96891 77169; 287.09124 23697; 287.34255 8746; 287.34985 103700; 287.43149 16259444; 287.4466 59253; 287.46949 52336; 287.47101 5708; 287.5744 1719164; 287.79767 1044; 287.85365 1115572; 288.31391 49324; 288.43069 23674; 288.45399 3906767; 289.07306 154003; 289.13748 831376; 289.18769 1154; 289.43806 535201; 289.61378 27280; 289.79154 11252; 289.88958 50177; 290.0321 149648; 290.27518 2472; 290.51216 1353; 290.56319 14565; 290.7864 6261971; 290.82586 619733; 290.85268 22110; 290.9456 33951; 290.95011 59248; 291.1813 75124; 292.067 86210; 292.09403 21425051; 292.20684 2039; 292.38793 5385540; 292.83415 18368; 293.17639 2904305; 293.71268 2688689; 293.79384 1052205; 294.2761 1839305; 294.31962 20533672; 294.44516 48491; 294.6952 4061; 294.69641 19517; 295.49012 45405; 295.70148 24158; 295.80379 56849; 296.25084 56411; 296.34343 392; 296.55187 5737711; 296.55438 9060368; 296.57206 106636; 296.67795 5684; 296.90492 49864; 296.98928 9885; 297.15425 967629; 297.24816 1811688; 297.83548 2574007; 298.03124 68998; 298.10405 102378; 298.25973 1783278; 298.28415 2145256; 298.42912 38334; 298.54161 33056; 298.71979 1969641; 298.84614 36121; 299.03524 42773; 299.21108 29549; 299.23444 25756; 299.31767 69658; 299.70073 6252854; 299.71688 4674; 299.75445 897941; 299.81205 249971; 299.85095 152124; 300.23385 990188; 300.24302 14638; 300.50651 1267253; 300.57374 88236; 300.64504 11536; 300.65562 1551120; 301.16074 23854; 301.29425 24825; 301.39309 8209999; 301.81828 9757297; 301.85797 9658641; 301.98949 1149978; 301.99372 884023; 302.11564 59927; 302.19866 133351; 302.45606 7690162; 302.52873 366714; 303.14013 18648; 303.20017 57245; 303.49079 690133; 303.5209 1257; 303.67625 52599; 303.71093 7636992; 303.85109 48076; 304.31889 83828; 304.61727 3058; 304.77898 1108219; 304.85425 22031; 305.01561 77032; 305.09353 140386; 305.09754 24038; 305.26305 1592398; 305.67241 1346934; 305.78862 1415938; 306.0837 18108; 306.35812 23535; 306.65266 25198; 306.70803 63236; 306.82974 1062007; 306.93226 4490; 306.97042 57163; 307.17802 7236; 307.76734 1178899; 307.94411 36347; 307.94641 2383581; 308.11651 65910; 308.16908 929007; 308.36842 2415127; 308.59175 28888379; 308.74172 78172; 309.05657 2585233; 309.05878 48679; 309.18825 136171; 309.24231 37221; 309.2605 5990; 309.36148 3379720; 309.50246 22729019; 309.51933 44883; 309.72014 46344; 309.76897 1622757; 309.87371 9470; 310.04275 749011; 310.08117 1076933; 310.18625 475221; 310.32961 482147; 310.59047 4189844; 310.6713 33445; 310.7169 28004; 310.78355 2991; 310.8514 2410; 311.05982 170544; 311.30986 828683; 311.4555 4228203; 311.54067 191758; 311.66676 2092921; 311.88476 21809; 312.05794 816863; 312.55958 21350; 312.64776 4309320; 312.7324 48798; 313.01538 28875; 313.0178 103; 313.13365 77163; 313.61464 140798; 313.64888 33; 313.79426 2995; 314.20581 9343436; 315.0119 30972; 315.26488 654202; 315.31732 30901; 315.42088 390904; 315.43036 13174; 315.48097 68281; 315.77901 18225; 315.84576 8298059; 316.69876 9471878; 316.80772 5402; 317.52713 6815193; 317.88876 7657303; 317.99174 29180255; 318.12262 30968; 318.41114 4853038; 319.04599 56297; 319.20025 24986; 319.40424 65290; 319.5296 1943; 319.68065 63368; 319.73576 112778; 319.75469 5395; 319.79586 1688504; 319.82173 1035160; 320.2919 2606; 320.46128 293941; 320.50149 40693; 320.51429 303663; 320.537 22339; 320.57559 1762423; 320.74066 1161835; 320.76152 30980; 320.7835 65264; 321.02302 22690; 321.36966 1343181; 321.42531 8897721; 321.49872 1425793; 321.72245 574265; 321.781 12314589; 321.79086 4065675; 321.9443 1364538; 321.9724 50972; 322.13696 37239; 322.15491 18768; 322.44664 125479; 322.74402 168662; 322.83923 6121; 323.07205 697126; 323.10168 83640; 323.13285 51602; 323.21971 17995; 323.2818 9204727; 323.28799 25464; 323.46666 25486; 323.69457 11331; 323.70842 153125; 323.91138 7538; 324.24794 6457037; 324.33999 44805; 324.65578 5940924; 324.88695 13240; 325.18803 26905; 325.33911 1536658; 325.5555 21169; 325.64885 1996455; 326.26182 75428; 326.35616 2715571; 326.44676 35897; 326.5199 115932; 326.56499 150862; 326.72112 20794; 326.91592 1958; 327.10343 1379188; 327.27096 3490; 327.29461 166348; 327.68268 20751; 328.02166 1571586; 328.16873 29288; 328.29145 18596; 328.29931 22169; 328.36796 2703445; 328.38729 2834651; 328.45935 949648; 328.52652 40272; 328.58714 1473728; 329.7042 75585; 329.99901 20558; 330.13332 372227; 330.18574 2374560; 330.51262 3969625; 330.68289 189147; 331.14788 3410884; 331.73279 71625; 331.76167 6773; 331.88582 3933168; 332.1526 59932; 332.42006 1986206; 332.53551 24752575; 332.5698 48318; 332.59141 600; 332.61579 185310; 333.06766 5387017; 333.06979 4546986; 333.07279 19810217; 333.13202 2748613; 333.2713 297540; 333.7659 3517381; 333.97219 1485739; 334.03889 45071; 334.08412 2399; 334.87416 6671; 334.95954 1483443; 335.09879 105; 335.19036 39957; 335.19315 229329; 335.2241 7333445; 335.26535 6127542; 335.66187 164316; 336.07538 4558383; 336.2343 3484873; 336.38788 5935132; 336.53529 7403; 336.81509 46294; 336.86712 17652; 336.95057 61025; 337.00983 4212334; 337.28564 16521; 337.29098 2141244; 337.52471 2759963; 337.54439 67148; 337.69379 3329888; 338.24912 1168232; 338.25057 1622855; 338.36773 29111; 338.42388 8631; 338.75416 27398; 338.83232 52645; 338.97248 3487392; 339.02616 3362; 339.28744 1231556; 339.28995 42963; 339.33677 10890900; 339.39299 21298; 339.44353 1950305; 339.65656 534576; 339.81778 27198; 339.91166 7401794; 339.9766 79581; 340.05282 60339; 340.15427 2307257; 340.24669 44704; 340.33074 9253; 340.4662 76242; 340.56166 3016223; 340.66235 750626; 340.78193 8620; 340.98784 13543; 340.99967 274696; 341.25946 2571809; 341.52005 8003; 342.1369 715789; 342.24306 29761; 342.24813 34072; 342.79326 23693; 343.02846 1457689; 343.24294 1795047; 343.32971 5158; 343.4074 20770; 343.58595 873; 343.77949 74221; 343.89284 2325462; 344.34754 29259; 344.46936 1339257; 344.58562 73849; 345.17941 147964; 345.31262 37785; 345.40928 26978; 345.41106 138800; 345.45113 64538; 345.70749 883388; 346.37159 62334; 346.45042 24520; 346.46497 15791; 346.77157 1249359; 347.09536 1015408; 347.11958 9307361; 347.19732 39877; 347.25983 30511; 347.4831 1807029; 347.81849 67686; 347.97465 57443; 347.98379 391; 348.03033 25501; 348.05557 1933757; 348.6085 195645; 348.62778 886414; 348.79238 140042; 349.09205 20442; 349.87469 1771425; 350.03742 4905822; 350.10065 627376; 350.1667 7595505; 350.94737 74016; 351.38097 4400; 351.42338 43211; 351.48628 21754; 351.5829 2030974; 351.8402 3914379; 351.85768 22735; 352.02778 8057166; 352.05224 10281; 352.43119 877808; 352.48006 44851; 352.50467 54596; 352.719 53739; 352.84112 197841; 352.87935 71861; 353.12114 11020; 353.17598 5847; 353.2678 19598; 353.42739 4705; 353.57404 42540; 353.94402 1144843; 354.032 1623992; 354.03502 7173383; 354.35736 353448; 354.40672 7407; 354.42764 2051185; 354.45412 27660; 355.30545 33267; 355.52234 2196933; 355.59443 7180533; 355.65526 1273; 355.66898 9171683; 355.67706 345240; 355.82783 76371; 355.89163 27804034; 356.02859 565939; 356.30118 41567; 356.53412 47795; 356.66678 15742; 356.68393 23221; 356.74612 14731; 356.85934 9106; 356.93348 29329571; 356.99411 233925; 357.09964 171660; 357.19645 68889; 357.25381 1774058; 357.41955 2880447; 357.58516 52857; 357.671 37075; 357.74335 10323; 357.92487 67498; 357.92779 1494192; 357.97692 5516670; 358.3703 198468; 358.44485 3167904; 358.5371 222560; 358.64283 8118607; 358.71114 62639; 358.76461 57304; 358.95465 32064; 359.02856 80045; 359.043 26285; 359.04426 57337; 359.16405 330921; 359.25403 4988904; 359.2551 8837; 359.82583 1704003; 359.87621 1316318; 359.98255 7094; 360.46914 15673; 360.62348 72373; 360.69112 54047; 361.0505 21490; 361.69408 8460; 361.79358 33986; 361.98714 75604; 362.02495 8622873; 362.31645 72114; 362.31686 5406201; 362.46039 430812; 362.61637 152106; 362.75509 1391648; 362.87271 2515587; 363.2177 47861; 363.59242 3117607; 364.28511 820231; 364.85354 4480; 364.959 18617; 364.99307 5524; 365.09125 271131; 365.227 21805265; 365.47849 8460656; 365.63503 7766; 365.87174 1694152; 365.91352 6253310; 366.29217 8197786; 366.6205 582131; 366.89426 44863; 366.91456 1292785; 367.01426 137843; 367.1711 37852; 367.17295 28279; 367.27002 3195022; 367.69038 9709779; 368.09657 185494; 368.14833 75294; 368.42346 961028; 368.54505 24281; 368.59096 133343; 368.82713 191618; 369.06939 30373; 369.13533 31715; 369.18443 187190; 369.50188 4217451; 369.66261 1361647; 369.95363 2076714; 369.95664 1312335; 369.97315 4903; 369.98115 22753; 370.08575 1337743; 370.42303 26100; 370.5462 16767; 370.82106 17069; 371.21964 17218; 371.29374 121153; 371.45362 19745; 371.6179 53224; 371.90041 3198471; 371.91738 7671945; 372.01599 52140; 372.07891 5756500; 372.17652 25971; 372.46594 3335257; 372.76249 61506; 372.78008 1959809; 373.53573 27653783; 373.64917 2867626; 373.91311 6988631; 373.9344 956768; 373.93772 67660; 374.02484 6857014; 374.27994 105978; 374.34363 1133604; 374.83138 5503; 375.35261 698660; 375.40671 17778; 375.59473 3726020; 375.95733 22534; 375.98503 44487; 376.01668 66233; 376.16662 50076; 376.46437 26794; 376.55712 57711; 376.60648 41555; 376.64723 3135; 376.67141 709659; 376.89397 15102; 377.02224 14261; 377.13258 9721; 377.277 1544049; 377.33105 1850689; 377.44164 23858; 377.75641 28973; 377.89644 50884; 377.92017 2231985; 378.16248 4990; 378.28033 1958405; 378.29584 49366; 378.3913 28312; 378.92109 2967441; 378.94333 8910; 379.12881 25583; 379.25412 70968; 379.57155 3603238; 379.62436 29214; 379.89019 10960; 379.95072 22307; 380.02334 15600755; 380.05797 1101034; 380.26654 4187879; 380.68382 75530; 380.71178 22918; 380.71941 62420; 381.03293 63375; 381.10092 6379; 381.11952 37031; 381.48282 74880; 381.51422 22790; 381.76504 2648; 381.98381 1170185; 382.11172 7465; 382.306 1803080; 382.33316 519964; 382.55899 25345257; 382.72669 4414881; 382.96363 50221; 383.02609 4524739; 383.031 773588; 383.09264 846403; 383.18191 59360; 383.35486 46329; 383.9756 1811248; 384.00149 4168077; 384.07052 901818; 384.11819 6799485; 384.50704 2911852; 384.79676 1058551; 385.36161 7888; 385.48219 24470; 385.75602 73379; 385.92976 3426961; 386.44817 185022; 387.15656 4108083; 387.31511 3250273; 387.52346 75244; 387.63661 4533782; 388.27629 9494122; 388.30457 2027269; 388.316 239038; 388.51191 27646; 388.5907 2773389; 388.71729 59094; 388.73282 6217585; 388.8419 1682980; 388.96299 50700; 389.36108 742512; 389.36855 63445; 389.56737 2751564; 389.59047 9073246; 389.75824 22149747; 390.11799 45425; 390.14 1112333; 390.19223 9497097; 390.31515 18641; 390.37687 1947238; 390.50599 1546; 390.51212 1613503; 390.66222 196070; 390.75125 13079; 390.88958 3577847; 390.90897 4544198; 391.17468 6721; 391.43519 1508266; 391.68585 31370; 391.74639 329915; 392.05647 77946; 392.35235 3086001; 392.57888 55935; 392.6896 17679; 392.90174 6971293; 392.96038 9226; 393.17597 2634; 393.22633 53140; 393.27975 48630; 393.38912 16752; 393.44774 926841; 393.4557 4265794; 393.9756 27370; 394.05777 116939; 394.06468 3898427; 394.2585 73706; 394.38078 382157; 394.47299 1919222; 394.69169 1282586; 394.90216 53326; 395.59995 64772; 395.67286 1110691; 395.69685 36289; 395.81164 7396575; 395.93946 997; 395.96773 31318; 396.03892 2518; 396.06348 63904; 396.34407 61977; 396.5339 5267377; 396.82917 1451373; 397.03862 50757; 397.28015 2105589; 397.45406 6209279; 397.76497 33905; 397.8244 70059; 397.82698 39621; 397.84182 51089; 398.13942 722629; 398.41429 67181; 398.55359 845416; 398.82098 56977; 399.15711 3465360; 399.3514 847099; 399.50152 339319; 399.55125 4054111; 399.74183 532180; 399.83758 55579; 399.93366 6188; 400.03427 1692; 400.20462 1675540; 400.41535 98461; 400.45151 56201; 401.2009 16374; 401.37123 4284; 401.5511 21133; 402.12642 7962; 402.13271 42068; 402.18944 1196573; 403.10178 879895; 403.14632 3188698; 403.16645 192044; 403.91356 141342; 403.98482 7863004; 404.15568 9494875; 404.51384 24962395; 404.82387 40502; 404.84824 3792933; 404.94504 67; 405.03676 3853439; 405.06015 1802165; 405.22865 5831149; 405.31874 2989127; 405.65399 20027; 405.66973 7715756; 405.69276 6145886; 405.75063 1055811; 406.17377 2969; 406.20946 72413; 406.51738 50401; 406.67486 1912; 406.90605 9642198; 406.90895 2529046; 407.1545 65529; 407.19687 15621126; 407.35132 3845936; 407.35624 3611179; 407.71229 191331; 407.7761 8491023; 407.87603 42185; 408.10101 9052441; 409.19414 9324; 409.49322 143586; 409.53162 147531; 409.85243 2400802; 409.92094 1693; 410.06098 13871; 410.07948 53386; 410.17781 109274; 410.58288 22684738; 410.642 58506; 410.67636 884014; 410.67657 737250; 411.00008 8663; 411.21439 2919351; 411.25377 62732; 411.28918 46098; 411.38032 29651; 412.25613 1869; 412.36386 5379142; 412.36931 3916314; 412.40543 7201; 412.59557 25783; 413.01601 28551; 413.27678 7175; 413.30905 1555567; 413.55471 23164; 413.6148 954186; 413.6245 24200; 413.67875 4068635; 413.81984 59274; 413.93047 49448; 414.03698 356070; 414.08946 20915; 414.30674 31623; 414.57194 162141; 415.03476 19902; 415.70302 99689; 416.28254 30287; 416.42057 1316590; 416.52347 27304; 416.54081 6389244; 416.70823 27697; 417.32221 31861; 417.46002 42673; 417.54481 65545; 417.68519 1769415; 417.70586 71160; 417.7552 66281; 418.52541 1818949; 418.54596 870514; 418.57602 5679505; 418.61639 2233187; 418.66109 725246; 418.7395 1116655; 418.82145 14512; 419.11578 2431400; 419.3864 998088; 419.43641 745780; 419.53449 4355086; 419.66413 4808973; 419.72974 7446465; 419.7542 3556966; 419.75691 8397691; 419.88266 124843; 420.10778 4495; 420.11074 1556275; 420.24373 63809; 420.35365 53737; 420.49889 21147; 420.74684 439109; 420.97736 14117; 421.16168 4581823; 421.47325 34410; 421.92354 3976738; 422.21692 5243; 422.69518 35615; 422.94481 42341; 423.13058 65180; 423.1534 5527; 423.31162 21875; 423.79507 174271; 423.80935 50786; 423.84958 23920; 424.04331 2737598; 424.82428 2624714; 424.86867 2458109; 425.16227 49218; 425.18423 33433; 425.45074 29576234; 425.63367 78994; 425.7541 501319; 426.0331 385866; 426.10387 149752; 426.32738 4551908; 426.37924 1395187; 426.42213 34363; 426.95072 75900; 427.21161 41939; 427.28277 21609; 427.60285 10713; 427.68712 76644; 427.74444 14911; 427.79123 161035; 427.82397 3199508; 428.31747 525; 428.36874 26377810; 428.55098 2621; 428.55878 4491; 428.83167 86557; 429.1348 41865; 429.96355 52035; 430.00039 3797406; 430.10303 24503; 430.11932 940909; 430.72715 1666; 430.74963 991; 431.01451 60368; 431.04691 44688; 431.40125 13991; 431.51569 21440; 431.56256 63549; 431.59312 169210; 432.27841 649590; 432.3389 69606; 432.39524 4648027; 432.56061 2779791; 432.59891 29889; 432.87977 27207; 432.93862 10675; 433.02951 40719; 433.25676 28105; 433.45364 3071005; 434.34165 175660; 434.57141 60415; 435.00777 779136; 435.02439 2993362; 435.0941 1750; 435.27046 53612; 435.43398 50161; 435.44548 1139458; 435.74835 5818; 435.8455 5103; 436.0598 4228543; 436.44191 9839603; 436.68298 35835; 436.77684 52699; 436.8567 29938; 436.90338 982; 437.34436 21082; 437.37512 34661; 437.65638 5674; 437.66601 43244; 438.2592 15900; 438.59321 453346; 438.68227 1716697; 438.88151 35878; 439.16178 125921; 439.27942 2148108; 439.37472 406366; 440.13279 1025201; 440.24599 8804733; 440.87724 124256; 441.31112 714732; 441.32202 6082451; 441.35509 4399962; 441.4122 2871; 441.52469 8242497; 441.67738 69328; 442.18231 47801; 442.52436 111819; 442.84669 3419; 442.96228 11674; 442.98306 1071; 443.05917 129304; 443.49026 881861; 443.66654 109129; 443.85781 1299838; 443.9595 26115; 444.00511 5133568; 444.00722 1660; 444.04224 874848; 444.1378 12381; 444.60574 689; 444.79023 1726953; 445.01942 574611; 445.32906 7634; 445.36257 78759; 445.38058 2310; 445.89591 7849203; 445.96702 20356; 446.02481 195258; 446.04212 1813015; 446.08235 90411; 446.13757 951160; 446.19462 24803; 446.30731 69838; 446.40354 5493; 446.42176 1684549; 446.46127 1020179; 446.5804 9123641; 446.61573 63579; 446.70031 30387; 446.81506 13514; 446.85215 76916; 446.91654 8434; 447.29938 7425; 447.36065 2873055; 447.39435 1917288; 447.53446 467023; 448.21067 9626; 448.71216 5910; 449.42627 3478438; 449.55892 25051; 449.6008 40483; 449.71743 1058160; 449.93294 6453; 450.27433 1327273; 450.29122 45258; 450.47122 807034; 450.66992 42593; 451.05053 1675773; 451.17097 40220; 451.23232 5298; 451.34558 474; 451.55164 5391285; 451.61299 18504; 451.63316 65295; 451.67336 1572029; 451.89766 1798732; 451.90066 158322; 452.05058 1157695; 452.11071 15582; 452.1858 1252088; 452.29332 4633; 452.29464 3387; 452.3114 33409; 452.45388 36111; 452.53808 1174186; 452.93004 4049322; 452.9634 9155977; 453.13146 43469; 453.21396 31119; 453.31789 867884; 453.33023 5329089; 453.42294 3466549; 453.52187 1502; 453.64315 3500175; 454.11119 34134; 455.04502 30173; 455.17496 583797; 455.69833 21326; 455.84356 3913482; 455.85064 5055; 455.97945 5420173; 456.24067 16333; 456.58902 1228068; 456.61102 22581; 456.83743 1671410; 456.85066 9383; 457.12427 791047; 457.24951 6781; 457.41405 16225480; 457.73966 31506; 457.76934 98770; 457.78426 582057; 457.9498 408588; 458.01401 49594; 458.12927 4119311; 458.22379 49134; 458.32991 17; 458.35633 1351; 458.37966 3750212; 458.51359 42266; 458.71942 166023; 459.09488 3869815; 459.1167 86767; 459.40309 26302; 459.87512 9796390; 460.12871 1346452; 460.17846 28364140; 460.24365 5696; 460.46512 28761; 460.47349 4264190; 460.49873 55551; 460.86112 44601; 460.9058 36942; 461.16167 23200097; 461.1743 726644; 461.36698 32536; 461.6241 39501; 461.88558 6623849; 462.32233 62990; 462.54482 31424; 462.95962 6785312; 463.29575 1341810; 463.43363 23920; 463.49795 20973; 463.56784 38490; 463.56785 69784; 463.74206 1541; 463.82165 4188841; 463.96755 429141; 464.37876 4127685; 464.8408 36163; 465.18229 26728; 465.28718 16465; 465.34944 384838; 465.4205 2375; 465.51709 157709; 465.62344 1465385; 466.17028 2883253; 466.35014 72878; 466.6744 52541; 466.82003 45356; 467.39658 1673433; 467.80665 97053; 467.91333 60186; 468.0674 18659; 468.24563 2690224; 468.26954 3964830; 468.6054 881017; 468.64151 76434; 468.79064 399834; 469.27597 2167287; 469.49458 65249; 469.54448 303250; 469.92875 8280724; 470.0251 1606; 470.07647 4129940; 470.11674 26318; 470.9102 63306; 471.33937 973082; 471.34577 899466; 471.35875 60659; 471.82777 106473; 472.03166 446648; 472.1209 9825904; 472.16828 32714; 472.18221 7498; 472.26265 41881; 472.30443 77813; 472.32912 60726; 472.91235 2557917; 473.80387 5981130; 473.83751 693778; 474.38837 16771; 474.67443 4514892; 474.73963 46650; 474.84925 3698667; 475.07407 57738; 475.10719 996832; 475.11125 75108; 475.34053 48764; 475.4339 168447; 475.53681 2919225; 475.5508 26447; 475.89492 35054; 475.93848 174542; 476.07729 63948; 476.29398 11774; 476.96542 6962144; 476.96881 3217899; 476.97335 117656; 477.01978 122016; 477.08487 5610; 477.25284 43971; 477.37677 8637; 477.58732 92095; 477.85833 636130; 478.09862 4281361; 478.10347 892498; 478.61663 3345; 478.63722 26902; 478.6401 1186; 478.75799 19176; 478.81479 77048; 478.97116 1757512; 479.37282 19565; 479.41184 4220; 479.56559 31643; 479.88081 90029; 479.93114 22281044; 480.1635 1103610; 480.18039 1481207; 480.34869 65398; 480.98467 21048; 480.98491 844; 481.66308 6620; 481.67277 62554; 481.81579 81614; 482.15689 16311; 482.18523 65382; 482.55219 10075; 482.73431 856544; 482.82483 970409; 483.02336 3279; 483.29209 9026222; 483.89353 5029729; 483.93938 8148; 484.14341 223581; 484.17095 1864432; 484.23371 4782083; 484.51279 34054; 484.54046 58889; 484.83166 24491; 485.04704 9678; 485.18543 4281; 485.22753 2678094; 485.56091 950339; 485.65831 557594; 486.40799 26189297; 486.49167 376; 486.73422 58411; 486.84447 7279; 487.20665 32610; 487.28012 1023624; 487.37817 23674; 487.38406 28807; 487.68242 40345; 487.70301 1033313; 487.71035 49117; 487.77399 20115; 487.84672 505; 488.07116 42479; 488.79592 32273; 488.83764 53225; 489.21107 56640; 489.23555 20375; 489.40427 53604; 489.50769 5183339; 489.51939 49115; 489.58449 342201; 489.93391 402978; 489.96158 8404; 489.99542 61039; 490.38806 26123; 490.61432 6157684; 490.73037 1990; 490.8646 62517; 490.8672 1549296; 490.9827 3986; 491.08907 1127744; 491.24111 4809403; 491.38817 10054147; 491.70052 8187475; 492.0257 71676; 492.07585 826757; 492.20191 586547; 492.23424 426713; 492.57714 7103; 492.70245 3808532; 492.72944 46800; 492.90326 13199; 493.07429 30726; 493.12794 707043; 493.23608 2164856; 493.34332 1210518; 493.45561 1929344; 493.83218 7272174; 493.95982 27176; 494.20071 1300160; 494.34144 12096021; 494.55946 14364; 494.63379 29540; 494.72917 68657; 494.83917 211; 495.02679 3407734; 495.2292 9690; 495.26178 1917657; 495.38066 4253463; 495.6167 330140; 496.10428 1174189; 496.12002 41371; 496.27127 2499692; 496.32335 2847; 496.41899 44496; 496.45234 702687; 496.73639 79516; 496.93092 19468; 496.93142 5715; 497.07385 70020; 497.276 322651; 497.32168 3970808; 497.54405 47419; 498.3247 462783; 498.36588 4550086; 498.77563 108398; 498.8526 67682; 498.94082 1880474; 498.94698 8763; 499.16138 23255; 499.3818 2420565; 499.45428 9724010; 499.80881 65828; 499.98622 1163289 +<2, 4>: 0.05134 6473; 0.37162 53428; 0.43077 26267193; 0.73172 68319; 0.7859 39638; 0.89023 363999; 0.97843 26590; 1.50604 39321; 1.71947 28477; 1.81265 12051; 1.94318 70409; 2.14222 51447; 2.333 45595; 2.37498 10855; 2.53304 52198; 2.64599 17260; 2.8577 73930; 3.11593 423337; 3.16373 69332; 3.17375 4895337; 3.52587 2257885; 3.59487 440137; 3.80788 261638; 3.82115 12869; 3.88022 15115; 4.38093 1989540; 4.39405 24240; 4.44563 258562; 4.60602 8474211; 4.62706 4573; 5.29636 12614; 5.34761 42159; 5.98474 1188214; 6.02985 715994; 6.1375 1403; 6.2747 54547; 6.60571 170915; 7.06288 10230; 7.26247 48; 7.56805 19526; 8.06845 35087; 8.40419 6746; 8.76226 17503; 8.91063 59165; 9.01506 324971; 9.02219 1975938; 9.26096 9256; 9.29986 17830; 9.43942 10218; 9.60276 633922; 9.92507 77148; 10.22595 26980; 10.58028 51271; 10.97789 29567; 10.9855 539; 11.05661 148516; 11.14206 70925; 11.23195 23213; 11.30431 2224; 11.47378 3509; 11.74861 1312375; 11.88908 9733; 12.12137 9642854; 13.02632 63379; 13.03636 69638; 13.51097 3526; 13.66083 747568; 13.82869 31811; 14.01606 276127; 14.10094 38806; 14.21143 1443527; 14.63208 56661; 14.76303 3210915; 15.37049 5985154; 15.54255 18396464; 15.63742 37708; 15.90189 31025; 16.16071 42556; 16.2434 21735; 16.61086 3793651; 16.75246 67499; 17.01893 8393; 17.405 48684; 17.41416 189841; 17.47273 10710; 17.60507 21927; 18.04952 193350; 18.05297 64365; 18.0581 1079458; 18.06243 27275084; 18.22937 20892; 18.93596 8476369; 19.18367 59597; 19.37205 8018; 19.47731 33020; 19.51399 6314; 19.62186 1392000; 19.65321 4191505; 19.73388 1625995; 19.78185 29101; 19.82947 26153; 19.99051 484; 20.03836 74309; 20.18861 28249; 20.40177 75635; 20.66795 45393; 20.89605 46531; 20.90118 6082; 20.90464 563820; 20.91281 76815; 20.99846 173587; 21.04154 24817; 21.29277 1054076; 21.39187 3173680; 21.51193 764414; 21.54482 14208; 21.60653 16194423; 21.6196 21603; 21.67376 24977; 21.96633 953685; 22.90353 4676; 22.9624 4269605; 22.97586 8549170; 23.15994 3836; 23.18987 9909; 23.28337 64871; 23.34418 5202638; 23.51261 13154; 23.64208 1015352; 23.8963 4030272; 24.1442 25877395; 24.33143 27867; 24.57855 1000892; 24.62237 40840; 24.68211 29461; 24.81071 1936; 24.81856 28278; 24.97048 1900992; 25.02981 29903751; 25.18363 4584; 25.59524 386872; 25.81177 4786563; 25.92542 49133; 26.08266 21147; 26.28159 3581107; 26.37241 25781; 26.43029 126431; 26.83245 24856; 26.9569 4659; 26.9743 6707; 27.3226 3628; 27.43819 378873; 27.84059 1060381; 27.96124 21646; 28.04965 1321253; 28.10296 5973894; 28.37579 10931; 28.38172 905574; 28.95625 1178640; 29.07789 455622; 30.08673 39414; 30.10358 6018; 30.3581 65475; 30.46675 19230; 30.47075 53660; 30.59702 15978736; 30.72046 19323; 30.73596 654149; 30.94649 4871382; 31.16394 48333; 31.21632 4440; 31.3452 67141; 31.87185 7297; 32.13543 28464899; 32.16084 39483; 32.18017 18376; 32.3422 1043053; 32.68311 56101; 32.79302 15798; 32.90439 6266564; 33.0114 1658481; 33.59467 2238; 33.87689 195169; 34.11411 522252; 34.11782 52079; 34.18995 27892; 34.53285 863397; 34.57037 1404114; 34.58424 28518; 34.96313 20448; 34.97487 18561187; 35.15275 5673052; 35.41819 170668; 35.44689 20927; 35.66047 38319; 35.88799 1383256; 36.03873 142493; 36.13874 127759; 36.37021 56944; 36.56337 28603; 36.61537 6077892; 36.88903 434715; 37.14479 310619; 37.18114 6559598; 37.21611 8726; 37.26401 1386721; 37.48556 62163; 37.64334 1128525; 37.79933 24895; 37.91754 3932; 37.95848 32919; 37.96954 20382; 38.16776 108560; 38.27372 152389; 38.3017 8681; 38.37159 3579; 38.42787 557009; 38.46055 2123; 38.65502 5702; 39.03847 125393; 39.3843 5936; 39.41639 542162; 39.64212 42073; 39.64968 14509349; 39.68766 3673; 39.82575 18399281; 40.00649 17288; 40.15238 6621; 40.31704 39934; 40.33587 7283354; 40.35626 6109268; 40.63055 52595; 40.70329 166663; 40.81602 7321; 40.8339 4808546; 41.30579 4515196; 41.32393 8635; 41.33396 3983486; 41.61125 20726; 41.6705 22635; 41.68068 5293; 41.82998 8501; 41.86932 197079; 41.96347 3597612; 42.19788 40566; 42.2928 348058; 42.30473 445946; 42.52438 902528; 43.05247 786; 43.08948 4009204; 43.54014 3797529; 43.91398 39618; 44.08144 13633; 44.29307 18606222; 44.39762 182481; 44.55624 34041; 44.59012 101067; 44.81681 142287; 45.03737 2163848; 45.21866 803932; 45.36411 68269; 45.65163 694; 45.74549 69974; 45.8422 7165785; 46.16145 10301455; 46.20102 270146; 46.20436 52919; 46.44205 1626537; 46.44802 12546; 46.50493 7209643; 46.64642 57532; 46.73694 3340226; 46.7377 66291; 47.01176 45634; 47.0705 4515; 47.19502 1214; 47.48158 852600; 47.60857 5225818; 47.63025 3456; 47.82705 156988; 47.89001 242843; 47.92457 954750; 48.05802 6337; 48.21214 5687; 48.21704 3004391; 48.46526 3202411; 48.51576 13573; 48.61012 1347009; 48.84066 289422; 48.91272 1479627; 48.93232 29874; 48.94406 59893; 48.97399 1748086; 49.1935 3063718; 49.29018 9571; 49.34366 26509; 49.70476 60102; 50.00415 65078; 50.45186 334; 50.56057 231690; 50.62522 5765071; 50.73694 5552; 50.74214 512327; 51.28702 299152; 51.30045 26315; 51.49106 10476; 51.90056 57243; 51.90141 3524348; 52.45 37070; 53.15201 41362; 53.24789 47261; 53.49619 797950; 53.54463 2214; 53.57639 424; 53.65881 52851; 53.69698 45732; 54.19463 41128; 54.38676 1953453; 54.45646 696509; 54.59275 123; 54.60679 2038; 54.71925 23081; 54.84852 62169; 55.07946 940559; 55.32298 45163; 55.37371 24074; 55.50633 1676; 55.8096 37577; 56.02649 8944766; 56.03737 188418; 56.12225 65466; 56.32239 131155; 56.58653 7904; 56.84117 21999; 56.8519 5589450; 57.18694 153365; 57.29202 20621; 57.40314 25286; 57.63677 7394894; 57.83361 154735; 58.03193 7513; 58.46469 12070; 58.53862 20670; 58.75459 8770; 58.77112 358328; 58.97562 39210; 59.46889 4984270; 59.74049 31855; 59.92892 1654769; 60.25752 24646223; 61.11724 287943; 61.16958 910982; 61.18243 7776; 61.32191 2414340; 61.45931 22972; 61.65092 9588608; 61.68764 9972; 61.87347 3048226; 62.24829 75895; 62.27609 67370; 62.2794 34518; 62.3411 57761; 62.71095 1415803; 62.77663 72818; 62.89653 71318; 62.97835 145129; 63.10901 11032; 63.34435 4854716; 63.39989 3223643; 64.25381 808692; 64.8487 24850; 64.92544 25702; 65.04921 1509465; 65.06877 1738391; 65.31256 26845; 65.41236 9609; 65.41273 24622; 65.55401 4242591; 65.65641 3060881; 65.68026 3754; 65.68189 59921; 65.87902 356680; 66.01657 10175885; 66.02848 237852; 66.07485 905208; 66.26687 6909153; 66.34311 1758; 66.51413 468610; 67.10779 17720; 67.3234 53073; 67.80425 60235; 67.82836 2240875; 67.93654 147902; 68.1245 1469386; 68.87845 487953; 69.02981 252260; 69.07321 6725; 69.3923 174659; 69.5159 31757; 69.73069 8764618; 70.14869 8307; 70.34724 45130; 70.61637 1694350; 70.63053 52970; 70.96317 723922; 71.32766 1658191; 71.41554 34006; 71.61363 4539099; 71.79148 1911956; 71.80155 5793; 71.99506 17200; 72.12135 25614; 72.20842 4095; 72.21307 50246; 72.21752 8799481; 72.57914 1061647; 72.76791 6904604; 72.85805 3057507; 73.2902 1607500; 73.30427 1927832; 73.93479 14721; 74.18415 31741; 74.2309 461774; 74.24716 21717064; 74.45253 2612; 74.59852 926134; 74.86841 7265103; 75.09011 34665; 75.44227 4158011; 75.55855 160294; 75.59226 32006; 75.67536 1813306; 75.71803 33960; 75.75584 15179; 76.31327 25812; 76.37325 789172; 76.40437 51136; 76.42352 55263; 76.54904 5680; 76.66614 232580; 76.78666 119875; 76.83091 4264447; 76.92359 1981920; 77.02602 2480918; 77.20308 457585; 77.21581 4551204; 77.28328 78026; 77.97229 28306; 78.15218 2121095; 78.22541 8310181; 78.37452 65797; 78.5668 386389; 79.16003 5468400; 79.18005 35317; 79.26906 709768; 79.76972 587894; 79.89182 54618; 80.10934 62198; 80.19983 46198; 80.22665 47198; 80.32625 485955; 80.51989 1325069; 80.61464 1683246; 80.77911 256370; 80.81053 21436080; 80.94674 2037023; 81.22645 303102; 81.55063 24243; 81.57125 1798089; 81.73227 135709; 82.11651 455258; 82.99907 50930; 83.24681 27635737; 83.32092 3082329; 83.41163 29190; 83.48506 773192; 83.51087 3169; 84.13394 46821; 84.5117 573071; 84.51359 204032; 84.58528 7367; 84.80182 1621406; 84.91186 59828; 85.04678 9539944; 85.7836 1639997; 86.13312 9629; 86.27375 8539; 86.52445 1765797; 86.69536 1992910; 86.78348 77683; 86.98456 72359; 87.23993 24883; 87.45997 149209; 87.48786 2564; 87.95031 53195; 88.09726 3910; 88.49116 2837125; 88.57132 185169; 88.58697 106954; 88.70154 569; 88.79869 8730; 88.8355 199835; 89.44369 32660; 89.58095 630490; 89.58507 5407; 90.19042 72536; 90.35082 31185; 90.50849 941285; 90.57513 17389; 90.58721 1560158; 90.60664 34418; 90.74192 1371305; 91.04864 4144513; 91.06237 38720; 91.30588 67706; 91.35659 68117; 91.99936 61054; 92.0404 60570; 92.19174 32767; 92.25303 43417; 92.40756 40711; 92.44667 79081; 92.51538 59129; 92.65127 1136218; 92.84913 522432; 92.94332 36545; 93.22953 7020; 93.96548 8489; 94.05658 52279; 94.07821 40443; 94.1027 1458543; 94.39392 21326; 94.41832 18028; 94.51094 45510; 94.58614 7096; 94.64286 2394; 94.84069 672582; 95.07349 2809592; 95.16582 24483; 95.35903 15262278; 95.47506 97945; 95.53971 60820; 95.62047 325112; 95.62703 51052; 96.282 18019326; 96.38125 30478; 96.57107 781605; 96.60931 58998; 97.11082 3181001; 97.29965 260059; 97.35565 24083; 97.64157 6915517; 97.64735 15461904; 97.84399 10696; 97.93036 9049; 98.05282 78960; 98.07124 44931; 98.13188 9047141; 98.16046 2243; 98.27482 3334; 98.48791 2134949; 98.53087 4708286; 98.81001 835504; 98.83933 58482; 98.84813 27066; 98.95726 4171211; 99.07345 6381326; 99.10345 1358065; 99.71412 99210; 100.01043 1830; 100.04947 52657; 100.19048 14879; 100.53512 4921346; 101.02847 22074; 101.17978 23205087; 101.31726 68428; 101.58851 118316; 101.67837 16148; 101.71412 23946; 102.07231 177435; 102.11301 67619; 102.43313 22538; 102.74529 297349; 102.84515 32327; 103.04669 34949; 103.19152 5280; 103.24074 645173; 103.24858 2085173; 103.29935 10942; 103.49963 2540887; 103.54125 41916; 103.63644 4055581; 103.69171 18328; 103.74205 42070; 104.29994 9719919; 104.3874 1532200; 104.51592 1562687; 104.75125 7199; 105.15708 9921; 105.31882 77691; 105.55872 2127018; 105.93612 35877; 106.25987 1671; 106.28706 714013; 106.40334 16267262; 106.52805 54822; 106.62136 670988; 106.7235 29954; 106.85494 1535396; 107.02417 1456000; 107.04791 1954065; 107.21483 74586; 107.22716 7590; 107.22931 19685388; 107.24244 27034729; 107.42384 3895735; 107.59557 78985; 108.07247 73605; 108.73945 6258; 108.80111 43385; 108.89713 810551; 109.00564 97091; 109.27268 454188; 109.31755 862165; 109.48264 24701; 109.67504 1872429; 109.75894 45961; 109.90726 51185; 109.92019 1906; 110.27522 78794; 111.07624 72158; 111.10346 149080; 111.17518 193235; 111.31037 26793; 111.41778 27850; 111.49379 799925; 111.74615 57182; 112.01852 3249362; 112.08562 49378; 112.11817 358459; 112.1718 64780; 112.28464 20176124; 112.34664 22690; 112.5361 3638647; 112.84195 48105; 113.1334 45951; 113.42264 3402511; 113.63648 8150; 113.66802 1296320; 113.82073 67553; 114.05709 1932143; 114.11525 3668909; 114.16508 103994; 114.29966 62433; 114.31412 6765184; 114.39211 25009; 114.66614 32091; 114.72234 762651; 114.82283 70101; 114.86275 2325; 114.94736 105162; 115.15813 2513115; 115.39491 40644; 115.71958 800316; 115.86744 2936147; 115.97571 1218400; 116.57416 18540; 117.22505 23412; 117.24089 44797; 117.27177 2977; 117.29337 54350; 117.34017 24419; 117.48964 1943439; 117.65672 994; 117.86233 29245; 118.01448 8374; 118.28842 6247785; 118.30847 4377; 118.49116 53580; 118.53131 6288; 118.76557 4216068; 119.07445 74521; 119.22891 50584; 119.65227 49838; 119.71401 116178; 119.9397 37983; 119.97848 11544; 120.07307 66026; 120.09094 1702947; 120.46866 2328855; 120.52135 25829; 120.56636 1745587; 120.88364 24708; 121.14677 3220474; 121.52269 166080; 121.85146 69851; 122.18595 25444; 122.28242 75281; 122.70005 151368; 122.736 594808; 122.95551 325691; 122.98819 74155; 122.99807 65474; 123.07774 4154; 123.18094 3997294; 123.20067 5365810; 123.42702 65934; 123.68185 116589; 123.80406 782285; 123.82378 61002; 123.9077 21633; 124.04686 6987; 124.87919 387141; 124.93481 8321997; 125.01319 1835538; 125.14019 4345669; 125.20596 42145; 125.37228 31445; 125.41527 45626; 125.81158 10639; 126.25664 53993; 126.47247 52193; 126.67675 1614181; 126.91641 4113; 127.11204 70366; 127.79376 62314; 128.01326 2931287; 128.05141 27301; 128.38131 6513199; 128.40204 33805; 128.43534 7761; 128.44932 9168; 128.53854 1812; 128.85545 954300; 128.98993 62223; 129.09224 660559; 129.51304 30623; 129.58836 428171; 129.67088 34163; 129.80051 65590; 129.89278 177085; 129.91872 45576; 130.20691 1107; 130.21071 28694; 130.22386 1879759; 130.39718 14959875; 130.5867 9105439; 130.62256 5396; 130.80596 111911; 130.96907 4063984; 131.6987 8020; 131.97287 4389979; 132.11083 25994; 132.15094 8945; 132.15614 7366; 132.24821 2504272; 132.2871 494209; 132.45365 1915046; 132.65186 29755; 132.71841 1201; 133.04174 476659; 133.13172 12307; 133.43696 528040; 133.43699 144241; 134.2489 65696; 134.37142 25642; 135.19179 1748151; 135.19957 8630; 135.28967 24198; 135.48873 39922; 136.16983 41738; 136.46178 9848006; 136.62125 3809567; 136.99998 180157; 137.1473 795252; 137.34887 50223; 137.3652 8751; 137.74474 171249; 137.94558 21726; 137.94954 77038; 138.09442 35249; 138.32167 73935; 138.5423 17227048; 138.84789 182513; 138.8848 23918; 139.09576 19307; 139.24678 55059; 139.39769 361; 139.6129 18654755; 139.61533 66881; 139.66258 723538; 139.72602 514812; 139.80182 1156983; 139.881 15361; 139.98873 103018; 140.07161 3563896; 140.19767 1135099; 140.63392 6343538; 140.8318 45798; 141.2317 766763; 141.35385 25014; 141.47965 37699; 141.88971 4080603; 141.99578 8598547; 142.24695 235790; 142.45468 239311; 142.61354 30677; 142.69434 4283444; 142.71055 2533797; 143.01029 67539; 143.41334 33307; 143.48829 3946; 143.87375 74828; 143.88617 3594048; 143.98221 34074; 144.32035 3759429; 144.48222 33792; 144.71282 2022; 144.73134 45827; 145.18759 32752; 145.46472 62613; 145.70904 68934; 146.06918 672539; 146.1306 5170; 146.24952 169649; 146.82239 19116138; 147.04333 14555; 147.06923 9341080; 147.12048 1850770; 147.23706 422556; 147.27232 54229; 147.65251 605829; 147.70902 71329; 147.96494 74618; 148.23899 1628801; 148.6603 12808; 148.67646 17005; 149.17988 262243; 149.22858 63033; 149.49166 31520; 149.51444 191275; 149.56871 9854708; 149.6991 3662848; 149.78044 33711; 149.80274 951219; 149.84568 189688; 150.29689 27687709; 150.51518 64575; 150.76442 146233; 151.29788 637389; 151.37613 44756; 151.67097 50412; 151.96047 64524; 152.13011 154344; 152.36664 758351; 152.38744 17683; 152.42974 8803; 152.61252 4798937; 152.65985 6557; 153.17535 972990; 153.21627 9508; 153.35171 1160814; 153.42081 393905; 153.51104 1565327; 153.97252 1644781; 154.05037 541812; 154.17834 28276; 154.34686 24230; 154.40304 708774; 154.54076 3757614; 154.69518 183970; 155.1737 62703; 155.22496 1524644; 155.24012 5653; 155.59835 1847785; 155.6023 44138; 155.64414 92453; 155.83267 769759; 155.99665 58575; 156.1372 139934; 156.45774 743410; 156.57445 1290; 156.91611 101610; 156.97607 296537; 157.26007 166472; 157.4673 51128; 157.50944 3869840; 157.74371 4750494; 157.90941 237078; 158.22801 17081; 158.27327 244747; 158.55552 15107; 158.7876 79150; 158.85719 117649; 158.96653 67549; 158.99023 7629; 159.61434 96056; 159.7987 56105; 159.84289 23324; 159.9155 27394; 160.12669 26817; 160.44933 8357533; 160.46727 3094193; 160.5798 3808798; 160.78548 132635; 160.8169 4053; 160.82545 134931; 161.08224 188567; 161.19302 265136; 161.84635 4; 161.84806 2293687; 162.08203 1526727; 162.11747 26565; 162.19301 222; 162.72044 10742; 163.18872 82474; 163.59559 8137753; 163.75641 6973; 164.39064 7992; 164.45742 22202; 164.52489 50482; 164.67883 11571; 165.58294 47948; 165.60319 60338; 165.73269 76127; 166.18205 3959896; 166.30092 14291; 167.13329 7391241; 167.28348 28238505; 167.43411 1705647; 167.67089 7257325; 167.6754 1304011; 167.76859 15681; 167.86861 25399; 167.94525 79795; 168.14758 295773; 168.37547 146258; 168.38105 1212; 168.62029 8137675; 168.64871 2533196; 168.80031 34685; 168.88301 12900; 168.93958 76848; 169.01438 1859; 169.08739 9208; 169.18443 2095191; 169.31334 30332; 169.35789 25942; 169.46718 1573319; 169.61036 16102; 170.47154 2091626; 170.47259 23000; 170.52615 45827; 170.57768 3531; 170.64746 228197; 170.92327 9024; 170.95587 1493613; 170.97073 2493830; 170.98642 530309; 171.19045 43683; 171.59858 14921; 171.61943 1098417; 171.63941 7591; 171.8737 141384; 172.68146 3712193; 173.18006 10210; 173.33793 38238; 173.58343 989633; 173.64795 4288541; 173.72686 4804429; 173.82477 1237; 173.8393 4267693; 173.99085 1320041; 174.01011 358748; 174.34195 18335; 175.00276 252672; 175.15706 1573227; 175.57522 33879; 175.60935 1670529; 175.96296 3070903; 175.97383 11661; 176.13644 23537; 176.19807 1062797; 176.33943 5763974; 176.40354 2184; 176.58213 122498; 176.59969 1834968; 176.8269 6263192; 177.17682 180171; 177.46677 1365769; 177.47557 30541; 177.56066 35304; 177.67774 7030; 178.30531 4662; 178.33939 20939; 178.44142 7371; 178.58293 75952; 178.68608 1318; 179.40092 894677; 179.45644 34537; 179.53051 9728275; 179.89625 1311335; 180.0623 3253832; 180.13452 5607; 180.25174 8976; 180.9925 66679; 181.24168 1375995; 181.25115 181266; 181.35331 7520; 181.45249 1377845; 181.49495 1782961; 181.615 13777463; 181.77593 4152; 181.88139 319471; 182.08822 104920; 182.22384 13490; 182.33319 20354; 182.44904 44797; 182.70415 33336; 182.80103 20358; 183.52965 532361; 183.56375 474268; 183.69126 28957; 183.69167 8937185; 184.21392 1191190; 184.43787 1442002; 184.53375 40811; 184.57301 8722; 184.61322 1482032; 184.64021 5170948; 184.81423 42426; 184.89624 1251985; 184.98665 3360761; 184.9885 1026142; 185.22467 1761587; 185.29446 3199; 185.83514 7499; 185.87468 95307; 186.70027 4353292; 186.74262 38255; 186.87587 9281292; 187.05777 70529; 187.21623 62075; 187.22728 2712213; 187.65945 50972; 187.78927 830163; 187.81368 28823; 187.81852 1533027; 187.92072 3837; 188.08971 3980334; 188.52531 679399; 188.53789 7142014; 188.57988 197277; 188.86672 18122; 188.90868 8671; 189.28796 5970854; 189.71395 40251; 189.75463 94664; 189.83312 63463; 190.46235 997972; 190.51416 4611795; 191.16553 9812238; 191.22164 3188043; 191.38001 37970; 191.74863 42842; 192.04686 7362; 192.1148 52043; 192.15781 611654; 192.30911 28804; 192.34418 862; 192.55688 84879; 192.60208 7952; 192.85062 24250; 192.87797 60878; 193.17637 2030155; 193.54563 4909; 193.59482 11381025; 193.64092 50026; 194.0462 3829; 194.1762 173327; 194.22017 55246; 194.23618 47386; 194.4124 63929; 194.42924 784090; 194.60589 9637; 194.60641 53091; 194.62036 4377710; 194.85917 611210; 194.97645 4705; 195.09665 10815; 195.10623 1909; 195.20208 29900; 195.50716 34179; 195.78906 1207573; 195.94919 61570; 196.23821 42188; 196.30553 24491830; 196.4824 54993; 196.66409 576944; 196.92307 38975; 197.55024 1915675; 197.59614 2303446; 197.96159 5631; 198.01712 200684; 198.30322 1983959; 198.72455 60088; 198.89435 268213; 198.9499 91374; 198.99801 2210232; 199.17962 146744; 199.20204 28789; 199.27343 9485770; 199.61676 623435; 199.76674 8301438; 199.88189 8950; 200.16186 284938; 200.36266 61989; 200.48127 7955079; 200.60994 12920; 200.79822 140042; 200.88409 34876; 200.91316 3135292; 201.07261 493; 201.08246 30262; 201.08867 1808967; 201.12408 43349; 201.20233 33201; 201.20564 3666535; 201.2679 623585; 201.41131 4242; 201.88109 5684050; 201.89188 4783; 202.00666 9166; 202.3495 1352298; 202.99411 9410224; 203.02705 76899; 203.11352 49198; 203.19083 78446; 203.265 43771; 203.82435 17701; 203.87004 4070; 204.15728 21000; 204.29451 1306993; 204.61919 1554318; 204.70064 53840; 204.81841 7523608; 204.90334 180300; 204.99741 46394; 205.07612 5205; 205.2958 55471; 205.75309 8169; 205.89091 2581045; 205.95265 702820; 205.99663 14696576; 206.46888 67804; 208.62111 56865; 208.67121 19020; 208.71191 4138; 208.83708 337015; 209.04764 6279; 209.63755 32430; 209.6454 1564788; 209.70403 42246; 209.89658 7232857; 210.26461 32109; 210.89618 528013; 211.00635 3108; 211.11868 1855465; 211.1231 1117099; 211.12938 24833; 211.44926 57786; 211.79191 67012; 211.83341 1782438; 212.03719 332752; 212.08106 67065; 212.16878 448441; 212.24277 416629; 212.64185 2042584; 212.70984 4784; 212.72275 391206; 212.8212 47353; 212.96577 5814257; 213.42696 926937; 213.42983 514291; 213.62011 1521422; 213.79642 29736; 213.8407 24415290; 214.10399 627202; 214.11297 4371773; 214.33944 176; 214.3545 178046; 214.38472 16143; 214.39426 189325; 214.42372 26999; 214.87046 6501110; 214.89703 828; 214.97965 28954; 215.00255 86553; 215.45134 7807068; 215.64447 7432; 215.76145 179655; 216.22332 848222; 216.3467 760977; 216.39603 1948; 216.50246 7457106; 216.53749 1217155; 216.56948 37694; 216.58857 2523; 216.96868 10823; 217.15513 64615; 217.21702 240059; 217.53278 1089578; 217.93618 131152; 219.06635 6193; 219.63588 41446; 219.90841 62075; 220.31139 21815; 220.3842 39691; 220.4788 95417; 220.59095 6964661; 220.98964 619967; 221.41314 119251; 221.56333 37051; 221.83677 43472; 221.87204 60106; 222.0438 44320; 222.62938 6465928; 222.97046 8222; 223.38484 626834; 223.53944 60574; 223.54827 25118; 223.646 77567; 223.70268 188210; 223.83088 8020; 224.05409 85487; 224.08793 6896; 224.29789 4852318; 224.3956 25931; 224.41815 75785; 224.43495 30930; 224.53122 15814; 224.65642 25715; 224.78298 19582; 224.81042 1997609; 224.86499 1959003; 225.05654 61460; 225.1658 7855; 225.43937 9774; 225.5709 4730415; 225.72558 79083; 225.7549 2513831; 225.83255 3311924; 226.06482 2463854; 226.1447 6223; 226.26901 764854; 226.30705 38464; 226.71016 4147; 227.14402 62261; 227.23092 21377; 227.25957 145000; 227.36841 3348166; 227.601 64598; 227.6263 12981; 227.90489 6979; 228.10532 2955342; 228.10863 5606; 228.20081 9846807; 228.25632 1342513; 228.33771 3440351; 228.84388 3271574; 228.95716 695082; 229.34545 500849; 229.44617 15943025; 229.83118 1709722; 230.10044 1265724; 230.3751 65878; 230.85816 5922847; 230.86329 68609; 231.16355 45343; 231.16779 2774; 231.24888 23041; 231.29938 10327; 231.34906 13003; 231.40595 30946; 231.45984 47701; 231.68179 153114; 231.70716 12669; 231.7705 6360; 232.06076 7995; 232.21636 1975; 232.51678 20897; 232.563 1400332; 232.6021 4604; 232.70245 137003; 233.10759 6706593; 233.29484 1921380; 233.31209 72440; 233.39582 27912; 233.53164 56946; 233.68541 984234; 233.82457 8748; 234.23172 10830413; 234.31411 72425; 234.39452 6578283; 234.4485 49994; 234.52381 14159; 234.58302 2096; 234.62193 49668; 234.69489 4204; 234.81951 3156; 235.5402 19277; 235.86493 3508288; 235.91222 1686308; 236.11357 227949; 236.11736 4526211; 236.51613 4896649; 236.64271 92339; 236.7253 42962; 236.77448 16830930; 236.78374 6455; 237.42986 5213626; 237.6102 5063; 237.85626 58150; 237.87519 16714; 238.61135 17943; 238.94386 2905513; 239.29883 3601; 239.70847 30846; 239.73758 4394051; 239.85759 1877333; 240.1894 4112056; 240.50966 74319; 240.60642 2699; 240.65661 18332; 240.87101 77552; 241.06321 2877992; 241.12003 158891; 241.29638 162502; 241.30134 747105; 241.76077 2242565; 242.15176 20565; 242.2497 39235; 242.33341 96134; 242.43179 23263; 242.4731 7977009; 242.51162 20480; 242.7294 76963; 242.9293 12214416; 242.97628 183331; 243.08909 1721; 243.52583 14769; 243.66608 147824; 244.0348 2040016; 244.21365 43645; 244.63447 36277; 245.23078 2295; 245.6143 4256834; 245.64944 1009857; 245.85144 101828; 245.89732 25295; 245.9401 55287; 246.00142 7967560; 246.00675 152178; 246.11874 4032814; 246.17697 1213; 246.25724 5687; 246.32627 6390; 246.49296 4192; 246.64395 7572; 246.64832 1209467; 247.11443 4191309; 247.14426 2834875; 247.21412 4756852; 247.25362 6212; 247.36509 1142; 247.67382 5599649; 247.90215 224366; 248.02765 2819719; 248.08072 42819; 248.32304 36921; 248.45737 494578; 248.74818 61755; 248.80741 533392; 249.21674 3258004; 249.39139 74759; 249.87628 4740; 250.17512 1909162; 250.63012 1533480; 251.00853 190279; 251.05585 197351; 251.47101 3820840; 251.51736 16530; 251.54157 1009542; 251.67649 2012887; 251.79831 3637; 252.3303 56283; 252.36808 54168; 252.39273 48462; 252.46012 6351641; 252.64408 9406526; 253.03254 2322578; 253.06806 24927; 253.10938 1015; 253.57956 21494; 253.92553 29228; 254.05862 93071; 254.3981 1837361; 254.45712 3910594; 254.66882 38758; 254.69055 8471; 254.69103 5229942; 254.83793 17934; 254.93728 1375440; 255.12171 186561; 255.28076 7867911; 255.33729 67413; 255.38196 72794; 255.63303 9509865; 255.77898 4712; 255.8961 41242; 256.14798 15821; 256.19792 1003252; 256.33875 795578; 256.59312 42845; 256.70827 53350; 257.36252 2555; 257.62956 22371; 257.77346 44587; 258.0071 4116; 258.19153 25391; 258.23137 154644; 258.65382 127204; 258.66034 6813; 259.17347 33015; 259.19546 44955; 259.56112 48291; 259.79055 52278; 260.02259 4872; 260.06084 28195; 260.11524 19517; 260.22215 122405; 260.29316 1127253; 260.37849 2398652; 260.39264 9108; 260.39849 21867; 260.71657 3673970; 260.88986 78627; 261.1166 36713; 261.2777 56821; 261.37577 72052; 261.45817 94072; 261.70321 85674; 261.82895 4199114; 261.82932 479673; 261.85467 8155674; 261.87849 3969544; 262.27903 8525; 262.416 78174; 262.47787 20815; 262.49109 74978; 262.54902 123888; 262.55899 42366; 262.62723 10147065; 262.64265 1932456; 262.87695 475221; 263.07033 1700167; 263.09215 24955; 263.11214 2874693; 263.28478 4944; 263.53404 329845; 263.56915 29782; 263.82475 458496; 264.0051 2292598; 264.11963 4626332; 264.12215 696733; 264.42012 53194; 264.47111 56968; 264.68772 38497; 264.81895 171416; 264.87268 7029757; 265.03705 77477; 265.89898 1516912; 265.97229 21673; 266.3444 24717; 266.44452 50321; 266.44891 7206; 266.6323 13812; 266.72536 1240486; 267.11804 42956; 267.2089 1685945; 267.37041 746549; 267.64681 17401; 267.80067 3107217; 267.85655 9193406; 267.94949 1061706; 267.96309 5082; 268.12687 1288321; 268.17114 3364171; 268.3838 38770; 268.44053 75981; 268.56023 11683; 268.89587 37285; 269.11596 5863; 269.47937 3628776; 269.51667 26975; 269.59701 601425; 269.78051 154336; 269.88665 33107; 270.02251 1211223; 270.10637 3115758; 270.30954 3904637; 270.59563 6552; 270.78306 4460590; 270.8523 3823343; 270.99206 1835894; 271.25506 241; 271.39409 1095761; 271.40984 43369; 271.5911 9746; 272.17375 64163; 272.2879 62890; 272.36713 17414; 272.42507 1457519; 272.53062 8878274; 272.54205 545736; 272.86513 515087; 272.90779 825820; 273.47774 7761850; 273.67628 172451; 273.77573 26670; 273.78142 22178; 273.80769 184774; 274.28429 26815; 274.48991 1852; 274.61441 8938; 274.6812 1949866; 274.78337 1179269; 274.80013 54305; 274.81095 41843; 274.98418 108195; 275.12388 1639623; 275.39123 59559; 275.42519 367; 275.67002 22046; 275.71873 15154; 275.79128 154680; 275.80514 62621; 275.98907 51439; 276.00125 743348; 276.0402 8833; 276.23449 77392; 276.52013 73041; 276.57064 6415; 276.5968 499019; 276.7427 60187; 277.1947 3789; 277.36016 4782180; 277.75747 28769; 277.7819 21051514; 277.98275 7148951; 278.30277 56181; 278.61645 789472; 278.84282 6604; 279.48366 125601; 279.79358 9192; 279.81591 8833154; 280.06771 1102; 280.22248 9793782; 280.43825 23730; 280.83369 30549; 281.13966 70507; 281.21616 1956171; 281.2233 65158; 281.25729 61267; 281.49207 1855; 282.07519 4891472; 282.07837 2608140; 282.09544 34534; 282.1847 62869; 282.27476 29662489; 282.33593 1098972; 282.4069 7807; 282.41031 20853; 282.45461 33613; 282.51809 5396; 283.17298 19910; 283.42015 27491; 283.49207 72273; 283.85611 51702; 284.11109 26050; 284.33359 11064; 284.40657 20625; 284.43844 1116383; 284.64899 59938; 284.8272 26728; 284.94825 313442; 285.76273 417924; 285.90028 4555894; 286.07414 265529; 286.16778 1720825; 286.20736 4046; 286.30986 21283; 286.88038 1212335; 286.91682 27371; 287.26533 1420261; 287.27327 7539891; 287.75191 373824; 287.84987 193; 288.00656 2494740; 288.10502 4085; 288.21069 67316; 288.43331 15059747; 288.43613 4901; 288.58898 435396; 288.84717 51035; 288.93752 4859569; 289.22093 5829; 289.60658 74997; 289.827 21718; 289.96675 8184676; 290.28587 1012807; 290.3928 8773; 290.40797 23247; 291.0838 6146; 291.67613 6633; 291.89153 15393; 291.93631 1806774; 292.21932 28916; 292.60645 61437; 292.71229 12522557; 292.7286 76508; 293.25585 4780858; 293.37652 153162; 293.53115 3074361; 293.65183 38973; 294.12372 1283; 294.12855 58323; 294.31122 447368; 294.38328 24191; 294.539 9059; 294.61361 3154492; 294.69055 49042; 294.77332 9201; 295.41176 44275; 295.53386 286559; 295.64771 61617; 295.77727 515029; 295.77873 71552; 295.9021 878456; 296.22182 75728; 296.3762 3772; 296.46097 2979; 296.68122 1538678; 296.78455 8120152; 296.87535 53025; 296.97404 19280; 297.01781 32645; 297.2488 81585; 297.26622 64796; 297.32195 1048230; 297.35364 1492; 297.47527 13643324; 297.52035 5795; 297.64157 7668; 297.76647 37959; 297.78549 5887; 297.87417 26459; 297.88235 29295; 298.32162 25286; 298.66722 46001; 298.78278 2475670; 298.83373 6959; 298.83401 5054; 299.07297 61399; 299.20912 562888; 299.32071 73813; 299.62009 376019; 299.72919 22015; 300.0937 8888531; 300.21371 54811; 300.48322 41234; 300.48694 761289; 300.86704 105498; 300.89298 62377; 300.96993 1079468; 300.98907 139302; 301.02418 26398; 301.13477 2714962; 301.80294 60772; 301.99085 39597; 302.03821 34358; 302.05721 47528; 302.47376 37483; 302.53446 699030; 303.04456 1150111; 303.26601 27709008; 303.4208 1296856; 303.44768 5910868; 303.5095 1580548; 304.05139 169891; 304.23632 17106; 304.3111 132264; 304.89756 5929202; 304.9057 15868; 304.99134 48740; 304.99489 5990; 305.02334 86209; 305.05915 20853; 305.42799 28287; 305.72879 437810; 305.79951 616801; 305.84849 242810; 306.14449 41771; 306.14644 6948; 306.33829 45217; 306.69458 189583; 306.99682 20608; 307.03142 8586; 307.16215 51231; 307.38985 104695; 307.41251 134; 308.19663 900165; 309.07927 3276; 309.15461 328945; 309.50348 7250; 309.61032 30049; 309.78971 48823; 310.24229 7628; 310.26984 148732; 310.35337 1490313; 310.48025 47441; 311.11943 41368; 311.29066 199; 311.35021 8348; 311.42237 36867; 311.98799 71822; 312.22215 30800; 312.36774 25881; 312.41494 2967409; 312.90601 7622708; 313.1333 22744; 313.50518 8965049; 313.59892 5311209; 313.89498 73156; 314.01432 26707; 314.1 775882; 314.63694 8808; 315.08665 28107451; 315.62812 24478; 315.71778 8944695; 315.73705 51739; 315.80151 20215; 315.9393 338690; 316.05789 2222; 316.15562 52851; 316.26284 1068; 316.30322 1426067; 316.61313 402528; 316.78989 2479; 316.90542 12254; 317.13424 54672; 317.37968 1160271; 317.5923 1040498; 318.0377 33484; 318.09205 18742; 318.94333 24129; 319.16946 38427; 319.43914 5627; 319.80218 837324; 319.86619 4925069; 320.00408 130985; 320.2157 3260715; 320.24269 666359; 320.36977 723773; 320.46049 3493058; 320.61172 872471; 321.09018 23753; 321.2431 9289; 321.3402 36291; 321.38499 999983; 321.80592 114834; 321.85207 22547; 321.99695 5852997; 322.0301 5108; 322.07669 26321; 322.40308 1805840; 322.95267 75914; 322.97915 15138; 323.01787 7455; 323.03991 73921; 323.28382 29219; 323.33244 1785598; 323.56923 66138; 323.59606 8645; 323.60919 470375; 323.61902 7587; 323.71272 996866; 323.87107 1367104; 323.98077 29683; 324.25089 4851; 324.28382 72986; 324.34729 10784; 324.34949 113783; 324.47129 427; 324.58206 15418754; 325.14787 1614466; 325.27835 3956; 325.43618 36178; 325.47336 58641; 325.94326 75603; 325.96396 4256; 326.13283 22862; 326.43374 1515553; 326.45237 45765; 326.74251 23306; 326.76955 1174357; 326.81015 4968; 326.81358 6238109; 327.28414 412304; 327.63144 1366; 327.72576 5065; 327.72905 43317; 328.11923 4329434; 328.25132 22129; 328.3051 876817; 328.45254 991803; 328.55314 76535; 328.89341 44154; 329.00921 2031198; 329.49313 21139; 330.02929 18622; 330.06282 197; 330.06554 175524; 330.15028 3629; 330.25402 17875; 330.29335 1162904; 330.56253 73645; 330.56634 22335; 330.6198 39801; 330.87485 3927631; 331.13324 28562; 331.19046 3968801; 331.26778 141866; 331.38532 2517838; 331.49005 23131378; 331.51935 7353; 331.63118 8217; 331.68193 1468148; 332.13243 2256; 332.1469 60880; 332.70107 43238; 332.90654 31909; 333.0137 32483; 333.07102 3743438; 333.11482 32624; 333.22969 5803744; 333.7568 124745; 333.76238 4765; 333.85065 14179; 334.09036 1628; 334.44341 40027; 334.54031 7376043; 334.67048 32911; 335.03875 16774; 335.14221 5116297; 335.17351 65759; 335.62704 20056; 335.72179 2416193; 335.75227 7526; 335.88313 68775; 335.96464 4198220; 336.08827 1637234; 336.39178 774768; 336.78968 28071; 337.45745 4520599; 337.80136 25980; 338.0289 331927; 338.88636 753523; 339.11694 90172; 339.24036 783993; 339.37533 1915242; 339.4004 67565; 339.68328 1572457; 339.70619 439482; 339.7227 69216; 339.95085 978945; 340.08794 5143420; 340.14146 2458; 340.3307 1603309; 340.55126 1169524; 340.92913 14188; 341.15904 9004; 341.33297 2252806; 341.4241 7230674; 341.55912 63977; 341.69302 6930861; 341.79874 8553253; 341.92878 46857; 342.05582 8916; 342.25333 27330; 342.48421 2038123; 342.49233 6828; 342.6634 4428; 342.7995 57176; 342.81499 44517; 342.93823 1860956; 342.96701 26262; 343.01835 4413402; 343.1423 7052858; 343.29232 26379; 343.33637 20027; 343.49078 95638; 343.49673 845059; 343.60144 12225; 343.89928 3143030; 344.09749 3092871; 344.10165 6078265; 344.12603 3484; 344.15405 1920413; 344.35982 47349; 345.09187 49439; 345.46535 107930; 345.63851 1653417; 345.6914 3983630; 345.70063 2918159; 345.75243 7942; 345.76563 6419; 346.16587 64526; 346.76879 31449; 346.89471 57130; 347.08275 805494; 347.25343 76063; 347.3123 45641; 347.61273 942499; 347.6995 1383163; 347.8003 26013; 347.8609 35625; 348.12618 4822573; 348.2059 58124; 349.3142 7030; 349.31806 10408; 349.66777 13805764; 349.677 165649; 349.8234 545; 349.95278 48365; 350.27425 8806; 350.29678 75627; 350.75004 3961644; 350.99976 14635; 351.65649 129584; 352.06776 1030896; 352.50255 72697; 352.5154 53487; 352.54028 24364; 352.62693 30198; 352.81767 10519856; 352.89052 49745; 352.92412 12986; 353.03326 7484392; 353.09333 3201695; 353.39285 54039; 353.55741 64804; 353.59179 25866; 353.66147 1920115; 353.66933 197064; 353.80241 42397; 353.85171 24466; 353.85464 71606; 353.89358 10094; 353.98657 19444784; 354.04112 5755670; 354.07342 12911; 354.1393 23574; 354.26325 29102; 354.28776 8294214; 354.6206 20844; 354.69672 2243; 354.93914 176206; 355.28124 886833; 355.38154 192447; 355.50118 3956; 355.57911 1357618; 355.6243 1321; 356.1179 1829272; 356.15134 963516; 356.23126 56739; 356.315 41205; 356.37237 722467; 356.55237 199074; 356.63275 6481285; 356.67047 50626; 356.70756 9921960; 356.71565 174710; 356.83045 22375; 357.01991 2290; 357.16633 2706; 357.4685 28625; 357.75916 1345443; 357.8029 59519; 358.12161 1286; 358.23058 25518; 358.28197 7724; 358.58661 10735; 358.59895 150967; 358.7537 2502636; 358.91522 4003768; 359.04427 76786; 359.12923 79625; 359.2034 25387; 359.3734 53520; 359.39817 2212403; 359.55109 61683; 359.67026 27838241; 359.74041 1205037; 359.90032 9338; 360.30039 29259106; 360.34592 8624; 360.88944 8150; 361.06883 9489105; 361.35271 30611; 361.44792 6989; 361.56018 1570534; 361.9327 74047; 361.96174 1793789; 362.18211 14950; 362.44513 7516; 362.5221 209075; 362.608 34352; 362.73797 23144; 363.32839 6835682; 363.49149 116390; 363.5973 2503; 363.70397 6131093; 364.02914 74518; 364.07276 92743; 364.3455 65872; 364.41685 2170764; 364.58222 27328; 364.58879 62093; 364.62167 19667; 364.81391 5743527; 365.07001 5999; 365.17309 46558; 365.2642 5669407; 365.29227 23728; 365.36013 504958; 365.43956 16323; 365.65676 1042958; 365.8765 684687; 366.00096 1149667; 366.09137 8877; 366.2855 29219; 366.65803 753469; 366.66727 17079; 367.20672 14511349; 367.57856 8019528; 368.05713 5162950; 368.146 1990717; 368.25993 39168; 368.33848 19638; 368.39472 8539; 368.41427 16463; 368.4341 1957; 368.45929 44241; 368.46442 18896; 368.56919 2296596; 368.96485 58084; 369.01664 15382; 369.04422 1915947; 369.20366 486642; 369.45605 16278; 369.47687 100001; 369.50623 25138; 369.83127 60987; 370.00146 64237; 370.656 9850; 371.61948 195507; 371.68804 4365; 372.12458 1686; 372.14983 302682; 372.2784 58367; 372.39309 4612486; 372.68339 8402; 372.68744 46130; 372.95666 23053; 373.09283 512141; 373.13739 42248; 373.2924 694076; 373.30221 59363; 373.58973 20910; 373.62038 44704; 373.64277 3132609; 373.65789 1858611; 374.1957 5897782; 374.47612 1634658; 374.67014 4825; 374.73701 4814; 375.05496 47586; 375.10068 27081; 375.29904 3596; 375.43643 849837; 375.47034 1356836; 376.08404 48736; 376.15285 133418; 376.67614 66810; 376.8203 80472; 377.27597 925252; 377.28914 7750230; 377.47381 50860; 377.53909 9125; 377.59124 76048; 377.88287 70231; 377.88814 70332; 377.88985 9129351; 377.93026 7100705; 378.12443 38229; 378.12608 2363936; 378.38459 9079762; 378.51462 858683; 378.69937 2824586; 378.97334 22541; 379.00007 13944; 379.13494 27777; 379.17286 228655; 379.52439 20438; 379.61406 14275350; 379.66137 5675489; 379.7083 16948; 379.7656 1661940; 380.42098 59290; 380.63129 599; 380.69173 398647; 380.79263 984; 380.83315 35491; 380.94688 2601738; 381.0239 222929; 381.28521 6058397; 381.40233 134353; 381.63307 7616194; 381.78156 24794; 381.84434 707136; 381.99372 38038; 382.5628 72285; 382.71732 51877; 382.80027 60432; 382.80643 968892; 382.81013 73495; 382.93203 65353; 383.02863 41715; 383.22597 1946359; 383.81104 27604; 383.85183 21996; 384.19518 7609; 384.21815 6528651; 384.22762 1226; 384.25279 33816; 384.44344 383409; 384.65579 20263189; 384.66086 56541; 385.01592 8998; 385.06807 539; 385.18182 909; 385.22158 167891; 385.46457 44007; 385.51787 78097; 385.51931 192655; 385.62453 1157502; 385.85236 1144777; 386.05388 364160; 386.32814 7424819; 386.86596 6619; 386.95167 457447; 387.05617 165859; 387.28081 22325; 387.29481 858; 387.85969 5992486; 388.04775 58801; 388.05616 6327; 388.06436 7018; 388.22006 75007; 388.23015 911957; 388.26951 3584; 388.78408 88302; 388.83984 741618; 388.97192 3702456; 388.974 36874; 388.98837 1479721; 389.51173 696; 389.69835 2748500; 390.01686 8648643; 390.1564 51814; 390.31091 8837876; 390.33195 4832768; 390.6085 125744; 390.62553 13543; 391.0721 18177; 391.46726 19558; 391.86346 10905; 391.93735 17076; 392.0219 1252039; 392.16984 29655; 392.20639 1912; 392.35035 2118; 392.39097 9870886; 392.58265 591557; 392.68458 33526; 393.26617 3677; 393.55911 51852; 393.5692 72542; 393.66685 542706; 393.93324 12275; 394.02623 7646; 394.51311 58403; 394.51657 9952719; 394.72825 4428823; 394.78889 9812; 394.79217 586611; 394.80108 1847610; 395.01376 56522; 395.27164 568748; 395.34059 8172386; 395.43718 24771; 396.15645 2405395; 396.44678 8947090; 396.59674 9380373; 396.84624 11373; 396.92452 4649713; 397.1228 25571; 397.21265 1782434; 397.38458 60740; 397.50223 28099; 397.80479 33474; 397.83139 34707; 398.88509 3702421; 398.9464 63512; 399.28524 32900; 399.58383 23684; 399.77971 1683732; 400.10664 18152; 400.29975 9506332; 400.34123 1588; 400.3523 1715304; 400.4128 66331; 400.47297 5291; 400.51682 61655; 401.11318 8184431; 401.14005 63288; 401.2187 517642; 401.49973 4234817; 401.52611 79403; 401.75355 4553590; 401.93884 4304059; 401.95969 961079; 402.01996 6826; 402.23591 23195; 402.36799 24765; 402.70362 79034; 402.8084 50943; 402.88607 118962; 403.51872 4878; 403.52756 42917; 403.59283 78119; 404.07258 3644; 404.09005 4643508; 404.11554 2440; 404.26622 503; 404.37467 62967; 404.43732 72412; 404.63998 27250139; 404.79648 8549343; 405.08515 8797; 405.27931 4943566; 405.28108 20241; 405.34344 61662; 405.72674 113851; 405.73893 22337; 405.97166 16800; 405.98686 5557; 406.05502 4699; 406.22616 134975; 406.25034 57799; 406.29065 24102; 406.51389 77456; 406.94268 38363; 407.03389 775485; 407.36852 177574; 407.70801 4478; 408.06611 27937; 408.12422 979696; 408.35063 1843; 408.40418 9092; 408.48754 4470858; 408.65873 7341; 408.72391 707672; 408.96445 38475; 409.07472 3410351; 409.09711 866519; 409.10402 9299; 409.31682 20117; 409.50672 29600; 409.55875 1528982; 410.1346 4312230; 410.3382 53809; 410.41826 48131; 410.57602 455; 410.58373 79833; 410.86247 65798; 411.10274 183301; 411.13023 11212; 411.16373 30325; 411.16933 1700494; 411.62401 38569; 411.67403 75367; 411.79525 834993; 411.8016 20462; 411.81751 15431; 411.92709 31540; 412.39604 4840077; 412.49884 17929; 412.5423 22095; 412.70944 2186; 412.83022 59348; 412.83326 25836; 413.09831 462566; 413.46946 2790; 413.75163 673985; 413.91733 2459; 414.06586 61086; 414.49821 1843545; 414.74825 4961; 414.76068 44382; 415.21215 6498; 415.33357 22552; 415.43968 9215242; 415.55674 57686; 415.72302 64645; 415.78162 300921; 415.82464 38450; 416.15165 17795; 416.38085 1268735; 416.39366 6786; 416.80857 26276; 417.32514 2814; 417.33061 411256; 417.33475 834268; 417.39734 22127; 417.46224 52746; 417.61444 7324; 417.6814 22339; 417.70493 1317; 417.89353 171291; 418.00002 455595; 418.09389 22800; 418.11677 3851741; 418.18759 2913477; 418.36069 549528; 418.59562 7941535; 418.76763 3002535; 419.11565 8206; 419.14346 1910976; 419.1702 795208; 419.33459 41222; 419.49668 2623; 419.59804 22186; 419.6116 1310376; 419.7105 53414; 419.78501 107586; 419.81858 74185; 420.21241 2499765; 420.50085 78810; 420.51561 62442; 421.00389 51552; 421.1696 7341389; 421.81773 43814; 421.83943 1531657; 422.09728 20758936; 422.66164 380; 422.67197 803; 422.83415 73002; 422.84507 65008; 422.85322 6933; 423.01603 2196; 423.21897 146477; 423.32264 2475; 423.35339 122657; 423.63128 420145; 423.91317 6122; 423.98417 1413482; 424.38808 844305; 424.67908 2823; 424.7155 74964; 424.786 27281; 425.53877 40708; 425.57749 481295; 425.60711 8426; 425.76089 814562; 426.13245 481928; 426.19597 44501; 426.24 35151; 426.25414 682; 426.53042 839959; 426.87957 172851; 427.25169 6908892; 427.53705 47981; 427.5514 15927; 427.56239 53400; 427.62565 8116249; 427.88705 2251728; 427.99545 1844982; 428.08385 22124; 428.13316 1077537; 428.43239 8286483; 428.46899 65795; 428.49414 4184671; 428.63592 195546; 428.87125 20310; 428.96064 9968; 429.13375 44197; 429.77826 2478206; 429.87343 2190; 430.01969 7077181; 430.05572 28614; 430.53869 8156991; 430.68442 16127; 430.72785 1047772; 430.73825 4737674; 430.87918 12436; 431.08013 22358; 431.43641 58165; 431.84684 3235010; 432.06924 4125179; 432.07184 31883; 432.14262 8306; 432.32269 2219770; 432.34427 384721; 432.45748 4663; 432.98638 1000; 433.29829 1508; 433.49652 31864; 433.66854 24604; 433.80433 78912; 434.23825 6359; 434.24235 1866888; 434.2878 604064; 434.4919 29796898; 434.5585 1436476; 434.61108 51118; 435.13451 2172; 435.42424 1846; 435.46658 9155; 435.55358 32157; 435.96269 268504; 436.10328 76561; 436.24197 895504; 436.33115 398455; 436.50026 147689; 436.51526 74127; 436.81983 26226; 436.89141 161657; 437.16397 7921229; 437.18348 9493; 437.18735 1840173; 437.23494 441197; 437.78736 4445; 438.06287 2997682; 438.28351 609847; 438.9737 33962; 439.10974 15612; 439.32429 171658; 439.79625 65598; 439.88747 1339617; 440.06696 20218; 440.10608 20531; 440.21926 39285; 440.28103 12184; 440.39047 30618; 440.43023 5161; 440.50801 2123; 440.79842 9534; 440.81001 6906073; 440.93243 4251554; 441.04902 150617; 441.12549 3835056; 441.32876 39335; 442.1265 140658; 442.63651 208903; 443.26537 24782; 444.2764 1066099; 444.29826 27462; 444.60762 33003; 444.66168 1987424; 444.73617 73395; 444.76553 22194; 444.87614 1521839; 444.91716 12248; 444.97401 112144; 445.31517 150033; 445.54983 8830025; 445.75587 910672; 445.99892 74390; 446.26941 16657; 446.53496 348991; 446.58828 72865; 446.95732 8206243; 446.98874 4774355; 447.04226 60425; 447.19787 104392; 447.33358 1904; 447.41995 1089431; 447.78735 1827602; 448.01752 4307664; 449.05527 36923; 449.15332 1106501; 449.38611 14893; 449.47977 11719; 449.52666 4304; 449.61842 2488401; 449.62556 142318; 449.84896 1811940; 449.88294 47631; 449.90665 431817; 449.96226 20276956; 449.99431 225610; 450.42794 199343; 450.59293 39278; 451.0883 57795; 451.24859 1162413; 451.30916 98354; 451.33374 40264; 451.45175 1807454; 451.98695 611366; 452.04479 35407; 452.05409 16349; 452.11785 36255; 452.30488 70813; 452.36822 68549; 452.4845 5283; 452.85866 3095529; 452.93997 152264; 453.22483 22108; 453.3425 54519; 453.36065 24675; 453.39805 6686406; 453.46705 37994; 453.47031 1432015; 453.84302 22473262; 453.8567 22717; 453.98495 72359; 454.06797 76071; 454.26184 38362; 454.36939 27632; 454.88193 27309; 455.40635 64230; 455.42492 661382; 455.79111 1925409; 455.8037 1578999; 455.85094 50171; 456.14402 4372; 456.36164 78690; 456.48872 8008778; 456.65968 16724; 456.76392 21196; 457.07878 43114; 457.33855 49780; 457.57586 2772141; 457.83293 51493; 457.93605 18990; 457.95525 4375284; 457.97564 14294; 458.13698 28365; 458.36384 50639; 458.57851 2918238; 458.60156 1495589; 458.60792 12063; 458.72216 1188879; 458.83628 4646076; 459.39089 61246; 459.7641 55959; 459.81862 3393; 459.9228 1312114; 460.11235 29801; 460.15062 1460287; 460.62271 6023; 460.63496 75832; 460.79753 4706966; 460.84518 80246; 460.94195 25765; 461.41802 3040395; 461.74038 2450; 461.82335 77768; 461.88506 1812908; 461.99011 15559; 462.62304 9814; 462.88948 18731; 462.95382 472164; 463.23588 8764; 463.28497 219387; 463.38954 2918871; 463.65185 5408; 464.21644 66876; 464.28742 1056677; 464.38746 1046; 464.77668 29325; 464.88439 414896; 465.20245 8846003; 465.21779 51197; 465.27758 57729; 465.38819 2324784; 465.43365 3539899; 465.43417 29683; 465.66129 12177; 465.71855 16021; 466.00881 3613769; 466.05569 5363; 466.08731 27954; 466.27617 6505; 466.47151 3207; 466.59091 76943; 466.6646 168037; 467.00318 3272624; 467.24128 3783; 467.33715 9157109; 467.48642 832976; 468.19232 617868; 468.19579 8638; 468.55297 68779; 468.73266 4627499; 469.24657 2237; 469.49592 997369; 469.58832 35605; 469.89546 29754; 470.30023 1563668; 470.46731 865769; 470.67389 1627182; 470.78314 6973; 471.12034 191311; 471.13348 34759; 471.20421 61097; 471.36081 280550; 471.47203 20210; 471.61244 1229555; 471.84453 551819; 472.05896 2020484; 472.81154 142433; 472.84779 26709; 473.04058 48626; 473.04556 841079; 473.22861 843977; 473.55783 68923; 473.7458 1168080; 474.26325 5361; 474.3026 4447; 474.34261 195838; 474.39243 73235; 474.78406 63417; 474.78968 140819; 474.79989 1563598; 474.93898 74093; 475.33404 51032; 475.50027 3239761; 475.65938 5973563; 476.03256 4812047; 476.10149 1999268; 476.62991 1425; 476.63676 9196081; 476.68816 6614; 476.86058 72091; 476.9233 5591; 477.15876 2886; 477.19247 36812; 477.3506 4723747; 477.41507 9782; 477.92021 4257; 478.61452 17441; 478.71092 1287254; 478.74798 5933; 479.28464 4130; 479.29755 22766; 479.52486 79767; 479.58383 3675796; 480.00092 163981; 480.05743 48758; 480.13657 46224; 480.20631 3852; 480.38671 1439597; 480.56423 28547; 480.58179 6396; 480.59187 13143; 480.80298 19944; 480.90985 2326143; 480.93833 606187; 481.05344 153678; 481.43365 21964; 481.61419 52203; 481.62186 43948; 481.64811 26261; 481.80313 64287; 482.25382 89863; 482.2849 2578; 482.41367 877763; 482.64352 78193; 482.87218 1353220; 483.05249 73961; 483.09037 49321; 483.19601 58397; 483.35808 9662702; 483.55861 40451; 483.58019 53175; 483.67082 5609880; 483.67881 6498981; 483.88959 928; 484.07423 1385120; 484.18875 29337; 484.51233 50248; 484.80674 1899918; 484.90689 182081; 485.04737 8730; 485.71207 22862; 485.74439 8895; 485.81531 85641; 485.9228 8104580; 486.27813 20568; 486.28526 9088455; 486.28791 5226461; 486.32193 159315; 486.35014 8986552; 487.38026 400204; 487.49823 63503; 487.67884 764597; 487.76615 26665; 487.84083 1849901; 488.16148 6958; 488.42282 59171; 488.67586 1263149; 488.73748 59592; 488.80543 5549788; 489.06417 9816960; 489.07368 50009; 489.1136 4634856; 489.13787 8991975; 489.66574 244027; 489.87599 981; 490.42464 63878; 490.44181 3166647; 490.52115 13387053; 490.73629 3767; 490.99104 516814; 491.05604 3533177; 491.15824 18877; 491.22279 5740; 491.34066 68298; 491.36229 5176225; 491.40496 6757914; 491.54291 8403; 491.65533 7582044; 491.66454 55924; 492.16599 29468357; 492.80158 5287; 492.82818 2458149; 492.97818 128735; 493.21017 153087; 493.31944 36654; 493.70257 790010; 493.82636 7068; 493.91648 504142; 493.95509 43493; 494.01248 36673; 494.04088 26720; 494.06665 67676; 494.55853 25069436; 494.80756 339887; 494.86718 31421; 495.13186 1744835; 495.18789 79515; 495.27427 21017; 495.30259 39626; 495.59961 6122; 495.62959 54121; 496.09754 67102; 496.1118 17407; 496.15592 9395; 496.22889 820119; 496.24694 49510; 496.71259 22469; 496.89223 19483; 496.98062 5579319; 497.46259 30388; 497.80795 108815; 497.9404 63863; 497.96299 1138830; 498.61286 29047; 499.24124 48904; 499.31146 1017899; 499.54728 70687; 499.92142 3194058 +<2, 5>: 0.27607 11946326; 0.30696 5284568; 0.61367 6943700; 0.73333 14590; 0.77599 61162; 0.77864 72656; 1.03463 6829; 1.47345 22890; 1.5301 2054476; 1.59285 40780; 1.84346 984931; 2.10498 64548; 2.22424 151138; 2.22784 25937; 2.27459 2927263; 2.29147 1637468; 2.30642 52145; 2.63001 224305; 2.63332 98677; 3.05359 1953362; 4.20261 1988822; 4.37254 71553; 4.41784 1981; 4.56144 74881; 4.56631 28813; 4.65232 969986; 4.66401 1264488; 4.76958 1091; 4.89908 51097; 4.92155 9352; 4.97941 1064708; 5.11014 1730166; 5.20623 22918; 5.30377 4425740; 5.32433 3817963; 5.45006 69610; 5.57277 2473; 5.59854 47667; 5.71358 1755368; 5.74261 8678640; 5.78043 7083; 5.88483 40624; 5.97055 5855796; 5.98953 20414; 6.24458 29762; 6.98701 7248; 7.23131 45110; 7.25203 249873; 7.61747 19838; 7.79654 997; 7.84605 543424; 7.94412 64345; 8.18606 68151; 8.5462 1609097; 8.7062 309406; 8.77352 18815; 9.13172 51310; 9.28757 6569738; 9.40436 10994953; 9.46923 79674; 9.56003 677332; 9.60289 52175; 9.70162 8080673; 9.72577 26471; 9.87775 59279; 9.88175 287291; 10.1902 180232; 10.24969 805186; 10.39211 3938741; 10.67718 6886; 10.70984 15151; 10.73655 27709; 10.77858 5970268; 10.98763 1228516; 11.34262 6326; 11.61386 31891; 11.79905 2711446; 11.87726 1082618; 11.88414 2624006; 11.96079 28433; 12.23502 71557; 12.25336 48326; 12.32738 114587; 12.38889 1507774; 12.40777 7274; 12.62418 18045; 12.66092 150830; 12.67326 4036; 12.92954 7490917; 12.94314 28684; 13.07437 3971; 13.14926 34603; 13.15309 9435; 13.29257 493; 13.65021 2136555; 13.96519 5715525; 14.15495 1713; 14.7349 14521615; 14.74433 15053; 14.80146 314; 14.97267 3640; 15.18892 6302541; 15.26232 981787; 15.58693 949798; 15.75899 59612; 15.76017 3590643; 16.13724 27859; 16.38482 3481; 16.65974 3903; 16.95169 798597; 17.23119 335; 17.34086 23072289; 17.34877 3671187; 17.38084 20829; 17.62147 21106; 18.00129 1301543; 18.00988 2278959; 18.43536 3568; 18.53282 10905; 18.65959 1299649; 18.75274 8209235; 19.60372 4103904; 20.18502 25415; 20.21032 53057; 20.31854 61421; 20.41103 29514; 20.96819 20874788; 21.00739 1597885; 21.07715 24142; 21.62119 644959; 22.0325 9415889; 22.37998 4157; 22.62799 61088; 23.0114 91484; 23.13091 505554; 23.14855 86358; 23.19411 5778; 23.32425 16442; 23.331 2841; 23.43364 9990; 23.5484 38300; 24.51914 31386; 24.52789 448390; 24.56946 41809; 24.62803 26437; 25.31362 884208; 25.36686 26354; 25.57972 1922661; 25.85647 20713; 25.89146 21455; 26.04782 16691; 26.18395 77901; 26.43082 10170851; 27.00824 3760; 27.0785 1345377; 28.10832 23015; 28.12988 941421; 28.40132 712315; 29.00065 4121094; 29.0944 24971; 29.09527 129482; 29.25644 216; 29.30567 68275; 29.48508 14139; 29.68283 50713; 29.75325 1704; 29.89092 126392; 29.89879 35796; 30.07489 2191757; 30.09929 26322; 30.1384 15303524; 30.27225 3148021; 30.40283 58307; 30.50588 6297; 30.61446 65622; 30.62906 7132953; 30.63805 10471; 30.8935 1688152; 30.95734 10079; 31.19605 9448012; 31.47718 58454; 31.57766 200219; 31.64232 281777; 31.75705 2709004; 32.02873 4239; 32.13868 41052; 32.15423 8991; 32.27437 15311161; 32.36569 29650; 32.37136 2530287; 32.44963 8910925; 32.67481 22909066; 32.77001 75756; 32.83286 27497903; 32.85563 9247146; 33.44741 4007923; 33.50874 13245; 33.89331 14005; 34.07636 1472810; 34.21575 8530940; 34.33962 21614; 34.53692 6545182; 34.63891 26700; 34.70911 236891; 34.7786 28562; 34.83659 1233228; 34.88056 79555; 35.28334 10020; 35.86398 72704; 35.95507 26093; 36.1798 1949355; 36.23311 75669; 36.60937 9591930; 36.9675 8072; 36.98132 51601; 37.10433 42026; 37.43971 667837; 37.49907 22433; 37.61203 3761360; 37.67246 8086; 37.6797 7546; 37.91936 28640; 38.59283 6996; 38.74739 33054; 38.75294 592199; 39.00878 6495; 39.02803 41984; 39.11884 18672445; 39.41323 70058; 39.42089 24024; 40.00385 25242887; 40.08189 5182; 40.15095 5601; 40.20908 8843548; 40.28837 4468465; 40.43745 2427325; 40.49506 590868; 40.68035 7055182; 41.15293 25634; 41.1615 1485620; 41.22037 13935753; 41.2625 530127; 41.30418 189242; 41.48473 4893; 41.48837 14998; 41.86274 59390; 41.99326 4192; 42.04866 29651788; 42.19685 220; 42.23483 146025; 42.31756 27448; 42.44972 735113; 42.45937 20614; 42.51904 9437; 42.55191 35558; 42.75191 37553; 42.80592 2494345; 43.71666 138501; 44.06705 6271; 44.19531 2223478; 44.35774 1444597; 44.58134 3630853; 44.65964 2442062; 45.00891 832043; 45.37873 79915; 45.74231 20734; 45.97406 767; 46.43074 3454338; 46.58051 537196; 46.65555 56593; 46.97237 148097; 47.47036 3858673; 47.57371 25279; 48.13897 3155; 48.32472 51945; 48.33191 20327; 48.59168 4017; 48.97795 717643; 49.00817 9333; 49.17067 5721; 49.50579 83508; 49.7024 1242358; 49.72071 610078; 49.77944 846056; 49.85267 5288; 49.92066 462386; 49.95485 5552; 50.02464 6956; 50.25233 4435; 50.32703 8808; 50.37869 1670294; 50.46387 23507; 51.04459 539110; 51.07172 25606; 51.20481 247171; 51.21625 31550; 51.2687 8543; 51.28067 125787; 51.34615 8437052; 51.52578 3588429; 51.53221 8574; 51.72332 865695; 51.92097 9212; 52.15324 53157; 52.27164 1241431; 52.67745 22797; 52.69476 69075; 52.82212 104645; 53.08902 280256; 53.11357 862957; 53.12864 2950; 53.16323 21908; 53.72172 92069; 53.75993 126625; 53.77385 456457; 54.02561 23062; 54.05454 20519; 54.07659 928644; 54.08973 6269; 54.23144 1159033; 54.3569 6162173; 54.50858 663500; 54.57667 46481; 54.65444 37827; 54.71489 12389; 54.82593 4842013; 54.93838 4685989; 55.1533 8826762; 55.27556 69438; 55.38929 100504; 55.46655 1948208; 55.50729 5151634; 55.92014 4707072; 55.93303 2244613; 55.95403 44591; 56.0765 3865338; 56.32489 202399; 56.80827 22191; 57.18756 34121; 57.6168 176030; 57.66311 7704558; 57.68406 645558; 57.68575 1477252; 57.71486 72049; 57.86098 24240; 57.86535 26865; 58.19654 7167788; 58.41663 16887; 58.45939 1705920; 58.55158 395246; 58.57222 2399966; 58.81687 4318849; 59.12675 19336227; 59.13456 256209; 59.41394 63904; 59.65315 45322; 59.68524 1288896; 59.80747 21430; 60.03404 75780; 60.4544 8660647; 60.74696 983172; 60.77815 2454; 60.78966 370970; 61.17199 69446; 61.43186 46374; 61.45327 3008192; 61.64703 608501; 61.71687 29766; 61.72094 809520; 61.85289 7232484; 62.21507 4997294; 62.30629 69789; 62.48754 8231285; 63.1271 9872426; 63.44788 7357; 63.75925 3708; 63.77857 500030; 63.81754 14312; 63.81995 7640207; 64.13262 169040; 64.20636 1614568; 64.31986 8766; 64.49064 24759; 64.56969 991763; 64.59271 60307; 65.20048 63580; 65.55061 55729; 65.61408 2099204; 65.84017 9779591; 66.04493 3578303; 66.1571 45788; 66.23302 38065; 66.25243 6592073; 66.26912 157855; 66.37203 1086361; 66.38914 48565; 66.4618 1636684; 66.6324 23072; 66.9531 5417; 67.6327 24332; 67.72429 811114; 67.77254 31883; 67.9214 193331; 68.16099 19731; 68.21961 27388; 68.39009 903814; 68.49736 181781; 68.8061 6467035; 69.26559 901392; 69.30511 6376374; 69.31438 35937; 69.45257 28487; 69.50942 22955; 69.73432 20372; 69.9818 7374128; 70.22422 2391488; 70.25338 6345; 70.28184 41860; 70.34846 82920; 70.57258 1673193; 70.63059 38220; 71.06992 27507; 71.22017 1555611; 71.27983 877666; 71.53628 48921; 71.54032 21399; 71.63381 34134; 71.89227 421313; 72.1145 77028; 72.4764 1756512; 72.64355 5456394; 73.06327 5379; 73.54523 432220; 73.70571 54332; 73.80658 8374663; 73.95283 1559249; 74.09986 5740159; 74.30193 237893; 74.45493 33180; 74.69015 31304; 74.95041 822668; 75.05899 261697; 75.0863 75925; 75.17463 41682; 75.24867 399319; 75.36792 69882; 75.53676 46990; 75.59686 74644; 75.82532 991529; 75.97502 8974; 76.02422 38961; 76.19193 1116477; 76.25325 7904240; 76.25692 33916; 76.27849 63140; 76.38022 14440; 76.7098 4797; 76.82078 5661; 77.00227 1466969; 77.62221 109630; 77.75024 1191764; 77.87588 26513265; 77.89659 40422; 77.90566 37133; 78.05362 4558068; 78.22845 78995; 78.49491 4973; 78.91511 147389; 78.9617 71704; 79.57199 76446; 79.6027 59405; 79.68941 71040; 79.70513 8060; 79.86664 54575; 80.13419 3167; 80.2167 5686; 80.33685 8710; 80.49577 126368; 80.90857 563174; 80.96831 62152; 81.12328 3693565; 81.25757 8290401; 81.56725 2596041; 81.63892 116123; 81.69799 754; 81.84966 88191; 82.03721 1935054; 82.08793 3823435; 82.22066 143733; 82.34752 1610393; 82.63921 24085; 82.88139 44887; 82.97977 68836; 83.05187 1081615; 83.24911 4382255; 83.30129 842537; 83.49396 1083874; 84.01617 8286; 84.24734 6307823; 84.37779 20961; 84.71902 31232; 84.79264 41493; 85.18396 218326; 85.22743 22610; 85.58874 65426; 85.62795 8685686; 85.69285 9227; 86.02586 6975522; 86.6562 78931; 86.88106 141170; 87.11864 5263201; 87.96404 12945; 88.05505 896284; 88.14091 1889927; 88.66113 145550; 88.72431 5980377; 89.12194 1486221; 89.31743 5899762; 89.33561 1809055; 90.30742 181563; 90.4793 3423086; 90.48666 3193349; 90.49967 65306; 90.50647 59704; 90.52662 5517; 91.0588 2542; 91.16624 23574331; 91.32995 916711; 91.69739 109359; 91.74555 9271; 91.76867 74115; 91.80479 56980; 92.31037 22860; 92.3938 26013; 92.55655 3; 92.61172 4547071; 92.72196 17451; 93.08547 9337; 93.64755 1203519; 93.82895 9872538; 93.91929 135123; 93.98997 52545; 94.09926 64429; 94.14405 14711; 94.24708 7721; 94.25394 21099; 94.33506 77235; 94.38616 47096; 94.54746 16141; 94.55372 672832; 94.79502 15277; 94.83622 1393425; 94.87635 129162; 94.9792 827659; 95.1086 20975; 95.45624 32043; 95.74729 3203; 95.94122 1187141; 95.94775 72707; 96.41827 32910; 96.60634 221267; 96.65387 13803989; 97.02685 30214; 97.10746 3232397; 97.15415 9489265; 97.29813 8110; 97.40895 138975; 97.63877 6379; 97.64353 42729; 97.88568 28763302; 98.27914 7585; 98.57957 4763162; 98.60761 52534; 98.76185 676319; 98.78736 68383; 99.20682 46735; 99.23124 43575; 99.53644 18905; 99.56786 3002003; 99.60645 841535; 100.30592 169285; 100.4757 5244; 100.57571 28841; 100.62974 131969; 100.72563 6317432; 101.03369 163796; 101.07364 19603; 101.41955 78699; 101.50332 21462; 101.57263 1400737; 101.71969 1771620; 101.94817 11406; 102.04021 631765; 102.20193 77416; 103.14107 75596; 103.68003 9804988; 104.26722 1316052; 104.30986 51242; 104.32053 131762; 104.70882 905330; 104.95805 17055; 105.19529 6455329; 105.20156 52330; 105.40061 1878; 105.79485 34559; 105.94498 628894; 105.97523 23113; 106.01443 16882253; 106.38339 171072; 106.46973 184855; 106.60436 251216; 106.65531 64560; 106.86904 5557402; 107.05934 880549; 107.1521 2498636; 107.8499 76464; 107.98664 7629; 108.68091 1391023; 109.38832 28513; 109.65821 63383; 109.71827 77459; 109.76201 501043; 109.82491 58091; 109.8842 3596089; 110.2462 2160479; 110.27686 63703; 110.35626 3698; 110.36992 156162; 110.3874 55418; 110.59245 24876; 110.70883 35111; 110.76128 912560; 110.89695 35921; 111.05367 8899; 111.20284 4616; 111.28692 34114; 111.32102 20191; 111.32419 5512972; 111.3568 2744152; 111.42184 1003243; 111.47811 41076; 111.77533 169738; 111.88382 511321; 112.10793 74082; 112.42995 47663; 112.80418 2740656; 112.82043 40794; 113.19282 15843; 113.30544 2020607; 113.33845 3805; 113.58286 184549; 113.77508 1417872; 114.09964 2767412; 114.2041 21792173; 115.24588 69228; 115.56371 8974653; 115.78883 18557354; 116.18834 1001698; 116.31462 3199163; 116.51484 4967; 116.61219 915450; 116.72227 2895220; 116.92681 7976936; 116.92694 5872; 117.03029 12984; 117.04487 31577; 117.18058 6785773; 117.59649 1113530; 117.6223 3011; 117.96062 23711315; 118.05128 453; 118.1649 862385; 118.17718 165; 118.53936 25552; 118.85865 1104166; 119.28589 55572; 119.55707 6630; 119.89554 14105; 120.03178 262464; 120.08981 1959233; 120.16601 7608848; 120.45176 14119; 120.46234 50970; 120.52992 25996; 120.70863 22565838; 120.73107 7891; 120.76349 9173; 121.20529 733896; 121.62722 1468276; 121.7038 182012; 121.89784 66614; 122.10062 39497; 122.34127 49381; 122.75726 37153; 124.28011 20252; 124.31871 45861; 124.41519 43922; 124.73703 1245; 124.95596 3253196; 125.38221 1938627; 125.46852 125897; 125.59483 63236; 125.60698 3814758; 125.64053 4921; 125.64459 70255; 125.9096 52991; 126.22757 25906; 126.24268 131488; 126.64671 44990; 126.80537 76991; 126.89834 7194316; 127.47157 17247890; 127.55577 3798; 128.15248 3307869; 128.40702 8499776; 128.48864 22372; 128.7058 3291521; 128.85441 1810907; 129.45616 37723; 129.46156 11433098; 129.50815 953270; 129.55643 24662; 129.64121 2659; 129.70659 1230489; 129.8326 7199; 129.90195 557440; 129.90791 38925; 130.08853 1260832; 130.55239 361805; 130.67671 3543; 130.74559 16874; 131.03882 414194; 131.26448 390103; 131.32993 1005231; 131.39791 6793156; 131.45154 24910; 131.73173 10527; 131.91806 1573; 132.12584 29405; 132.2021 5936; 132.24353 68967; 132.36695 3957; 132.52136 2662; 132.57592 655694; 132.79015 8498815; 132.8427 7192; 133.05713 73408; 133.26704 25464; 133.36764 24886; 133.66812 34848; 134.04124 2103959; 134.04764 21140; 134.06185 11047; 134.22207 98522; 134.42865 3838825; 134.55395 18668; 134.60391 1162569; 134.72377 165603; 134.76419 46637; 135.04076 22406; 135.26511 75016; 135.27363 117346; 135.46387 1211536; 135.53488 524302; 135.99579 6992; 135.99686 1939843; 136.17963 36153; 136.55055 15045; 136.97304 1316283; 136.97386 380758; 136.99764 26189; 137.32637 78999; 137.41373 33504; 137.56042 14216838; 137.70182 23949; 137.72467 9596050; 137.81192 4156454; 138.00152 6155766; 138.08508 3271339; 138.11569 49068; 138.32852 29471921; 138.62988 34470; 138.85661 2292055; 139.08104 4968; 139.2716 113567; 139.57838 4537549; 140.02799 7101584; 140.11851 1227349; 140.30913 3265; 140.44944 4984411; 140.52558 52817; 140.54677 78758; 140.7663 49441; 140.8463 36500; 141.15003 54348; 141.2835 4872; 141.48337 5517; 141.66861 50241; 141.78573 5635; 142.359 4899281; 142.69129 3074461; 142.94191 1905763; 143.18224 6213; 143.22434 468430; 143.22589 17666; 143.23883 7220; 143.59412 112851; 143.68289 3086978; 143.89247 2654882; 144.02097 75974; 144.0367 128510; 144.06106 2540; 144.37271 13736039; 144.69273 651338; 145.20699 5884; 145.33474 27162; 145.63793 52869; 145.65497 105132; 145.86428 2096005; 145.90292 3117; 146.15613 75101; 146.17987 55656; 146.23431 4988824; 146.39613 381; 146.40511 7262; 146.50288 950122; 146.71575 9495361; 146.80377 23212; 146.85011 6136; 146.8706 69387; 147.04544 4274; 147.22339 26014; 147.47974 67583; 147.56387 57495; 147.69739 51622; 148.05048 16264; 148.23584 69272; 148.50439 8234081; 148.71942 13443; 148.82686 3995; 149.11206 4644901; 149.23924 5487124; 149.38005 67512; 149.40034 147034; 149.42234 64790; 149.47672 161152; 149.9654 4217; 149.96705 1365285; 150.08948 1702541; 150.20826 33328; 150.27958 148948; 150.35922 1041452; 150.41219 141552; 150.42377 27959; 150.62183 63407; 150.73968 3373; 150.85994 53131; 150.98189 3553; 150.98704 69807; 151.19067 72090; 151.23709 1019065; 151.34534 9255323; 151.51118 1893274; 151.97077 1987456; 152.46717 295318; 152.59722 139080; 152.8139 961304; 152.91524 24099; 153.08182 1679739; 153.38262 42716; 153.54564 21315529; 153.54924 1327945; 153.56268 1493; 154.3634 117008; 154.56848 127287; 154.59073 660575; 154.81795 1096884; 155.01805 94971; 155.38397 1533430; 155.79281 915366; 155.81947 25; 155.85748 1599975; 155.98838 1644342; 156.13885 634753; 156.37338 37299; 156.59 48181; 157.0905 56004; 157.22125 6711326; 157.43346 2232199; 157.44276 79197; 157.47405 68623; 157.60141 3873305; 157.69391 193594; 157.79174 22439; 157.9717 5109; 158.16308 4910860; 158.25931 21200; 158.39966 2743; 158.56349 687219; 158.57287 9577012; 158.86279 437185; 158.95801 8843944; 159.0192 1984512; 159.65509 23286; 159.80293 15138232; 159.92699 195749; 160.34152 59437; 160.35833 1248294; 160.65366 4547951; 160.75311 8992; 160.93502 37608; 161.05266 44362; 161.18546 50595; 161.53716 21447; 161.55358 22036; 161.57193 6577447; 161.6906 42664; 161.83693 41998; 161.87834 98383; 162.53747 24561; 163.10949 5816068; 163.20243 1696890; 163.55522 1088349; 163.72661 67431; 164.46811 74835; 164.52449 52213; 164.628 25409; 164.6468 17873358; 164.75008 828341; 164.80491 448149; 165.24112 2569314; 165.44231 1652882; 165.46421 74020; 165.51604 1165; 166.29057 24587; 166.37916 2465875; 166.45684 36947; 166.58136 311183; 166.5825 778751; 166.58674 3601380; 166.75647 3921703; 166.86864 29251; 167.1241 25724188; 167.13755 1254978; 167.21156 1623746; 167.35193 31702; 167.40431 3884297; 167.76839 29356; 168.32963 1230; 168.59038 1288226; 168.62582 2362699; 168.88744 75001; 169.10074 3414749; 169.4512 2644219; 169.46793 18087; 169.48971 31119; 169.51633 26032; 169.69783 98574; 169.82425 188; 169.8263 5041542; 170.14541 196689; 170.24486 5624756; 170.41989 6252; 170.49896 1452209; 170.52312 35218; 170.59766 1038869; 170.62004 5323; 170.88329 852; 170.97871 804392; 171.05329 64244; 171.17585 1226364; 171.24291 77546; 171.38232 2131935; 171.43335 2346; 171.56934 7; 171.81608 5104; 171.90171 27882; 172.05904 417822; 172.19061 1509; 172.28582 22188; 172.31025 1332645; 172.36621 24830; 172.54961 5399; 172.76856 70735; 173.21374 6976; 173.38135 60703; 173.39894 21102526; 173.74585 75511; 173.87775 55642; 174.05529 79946; 174.28276 5962248; 174.79181 26006; 175.13973 70238; 175.72559 3867043; 175.76824 26129; 175.85826 37242; 175.86044 155441; 175.90274 23545; 176.02037 52759; 176.04296 8778; 176.08397 146; 176.91739 4537; 177.16383 72555; 177.39996 60982; 177.45113 130824; 177.45596 2479931; 177.52989 6953706; 177.531 24950480; 177.64124 3605; 177.85329 49983; 177.92572 8128279; 177.94668 23935; 177.98293 88437; 177.98677 9040606; 178.19331 13810; 178.35764 87093; 178.5344 72426; 178.97298 2645955; 179.05864 62674; 179.1547 29249; 179.4331 1841; 179.86348 1580181; 180.43141 1509; 180.49711 53879; 180.59266 7138870; 181.32935 2682746; 181.55837 12015; 181.67531 19062; 181.74259 16014184; 181.83151 89707; 181.99944 199061; 182.06076 243; 182.07845 9835; 182.20935 48595; 182.22686 97642; 182.24504 162033; 182.41745 60039; 182.45861 53708; 182.83535 47421; 182.89498 67931; 182.93676 4585332; 183.06281 157561; 183.08399 7379; 183.15792 61669; 183.19218 17906757; 183.41658 1566522; 183.42133 3106; 183.43835 9721247; 183.47453 5360; 183.66491 939243; 184.46028 39330; 184.48145 8411; 184.76691 22681; 185.3986 50736; 185.44026 80266; 185.56225 31982; 186.20446 16622; 186.40188 41794; 186.47511 157104; 186.47859 60882; 186.54118 4105086; 186.58199 72707; 186.84216 303384; 186.91299 1238735; 187.01209 26595; 187.2423 1857110; 187.71229 9924110; 187.78384 7749; 187.97454 580566; 188.56789 165061; 188.86536 86582; 188.92845 1534898; 189.07654 23972099; 189.19216 939279; 189.25475 599712; 189.33185 8920480; 189.41242 22646; 189.82815 2883544; 189.91991 976994; 189.98551 18835; 189.9899 1353178; 190.05707 512443; 190.08865 43365; 191.16458 6855792; 191.52429 1098237; 191.55083 2767; 191.91527 12147168; 191.9722 263845; 192.03617 28550; 192.04369 59829; 192.25215 37688; 192.5618 431245; 192.63103 1053417; 192.66472 124009; 192.75489 4642567; 193.11906 4779750; 193.59759 195891; 193.72491 308438; 193.79126 1325478; 194.33044 41118; 194.6905 66857; 194.76251 4971299; 194.80117 1479121; 195.21532 767912; 195.36673 24113; 195.43419 36158; 195.84169 5491665; 196.29164 75450; 196.46917 944568; 196.62887 4894; 196.83064 70206; 197.13957 276389; 197.32179 2620181; 197.3669 1988958; 197.87194 31583; 198.19019 70100; 198.27676 15674; 198.5321 134988; 198.71228 21574; 198.97484 6443; 199.09356 1636130; 199.09652 836415; 199.55053 39290; 199.69795 66373; 200.00979 14364; 200.03713 4272716; 200.20919 3849; 200.32137 4496446; 200.348 26572; 200.35195 57122; 200.47523 70602; 200.48771 28498452; 200.78421 39517; 201.46505 25441; 201.52222 14638; 201.78536 77710; 201.93389 24505; 202.15385 3187058; 202.22949 711160; 202.49497 7083; 202.81565 1995312; 202.8374 194158; 203.30492 2140486; 203.51413 28158; 203.54243 25007; 203.63642 872366; 203.67583 4148219; 203.92844 1248743; 203.98232 2241; 204.11352 28064; 204.15123 753750; 204.21079 275; 204.31226 8951; 204.43533 11; 204.48619 713900; 204.66235 3627; 204.68625 14809; 204.87642 70785; 205.52567 4173; 205.80594 82576; 205.82371 1152735; 205.88465 9269720; 206.04777 26356; 206.3052 2727990; 206.39173 141070; 206.73314 69780; 207.04168 17059354; 207.33101 38264; 207.51919 5981681; 207.99129 865735; 208.15577 1419402; 208.37239 30453; 208.51318 48241; 208.55653 63236; 208.59064 8926; 208.73768 23428; 208.91962 426098; 209.05217 16647; 209.06614 46246; 209.14537 16150; 209.29157 1398806; 209.44202 6967; 209.51242 71243; 209.69822 68150; 209.78745 8163; 209.79975 16184; 210.15216 1320952; 210.48161 205951; 210.5847 5810; 210.60622 46463; 210.67168 4080660; 210.68408 16642; 211.15198 2737; 211.35054 13878; 211.36776 50092; 211.46217 10913619; 211.6813 64929; 211.70285 2559535; 212.06853 89558; 212.08245 13140; 212.12359 41923; 212.12377 944215; 212.13764 2628907; 212.21234 40586; 212.38491 2318854; 212.52019 28522; 212.71671 24238; 212.73944 28871334; 212.90598 15787; 212.93666 872986; 212.99637 1855; 213.0196 87991; 213.17954 93202; 213.22029 43588; 213.2243 1387421; 213.34315 852271; 213.61614 515; 213.92784 63001; 214.15872 44252; 214.2944 18220; 214.54683 116552; 215.39176 1614858; 215.5596 50616; 215.57084 96705; 215.7673 1361872; 216.03342 28041060; 216.10237 25826; 216.10648 5038; 216.14962 24252; 216.15249 8029837; 216.60887 56774; 216.62816 4619; 217.60746 47181; 217.87013 20341; 218.0438 97734; 218.278 999261; 218.98036 21095; 219.35078 92698; 219.52139 3032256; 219.56211 7340428; 219.59872 64183; 220.24385 1416862; 220.55629 14442; 220.73225 8063; 220.82742 21625; 220.86765 494470; 220.97927 14364142; 221.10733 63077; 221.15415 28744; 221.36381 8617; 221.55578 92; 221.96647 434789; 222.16379 12671; 222.43851 1742043; 222.55709 1835516; 222.87517 65611; 223.24073 273253; 223.2758 22079; 223.69139 4000; 223.69957 9072; 223.76021 49849; 223.80822 9020; 223.82415 67016; 224.03075 837736; 224.29783 79856; 224.3989 20953; 224.4044 4563498; 224.45211 2838; 224.58403 44506; 224.79611 1123395; 224.80515 72266; 224.92227 5330733; 225.32988 1538381; 225.82905 1921536; 226.19115 908179; 226.19844 61593; 226.73852 14810103; 226.79663 1841253; 226.90783 2803574; 226.91103 52594; 227.1996 50915; 227.26216 28268; 227.30107 7654; 227.55897 34931; 227.58251 26468; 227.67437 1390700; 227.78955 66237; 228.06966 1277028; 228.11659 4222; 228.21632 552784; 228.35559 830502; 228.36884 8580942; 228.71082 13892; 228.98599 2453; 229.04577 176450; 229.30948 25530; 229.41337 24403; 229.64463 10295; 229.65735 450901; 229.699 49775; 229.94407 23352; 230.26969 33011; 230.28902 44868; 230.36588 73716; 230.3717 7156; 231.50343 8973; 231.70182 178142; 231.73109 234182; 231.75316 1393; 231.79831 70111; 231.83897 12348146; 232.12158 176285; 232.461 2369; 232.57153 7849583; 232.69813 17914037; 233.06811 58425; 233.23683 6926; 233.28374 781651; 233.87165 25355; 234.14499 4785374; 234.29001 76756; 234.39938 11810; 234.46707 1742; 234.46802 165; 235.28675 7338060; 235.51355 823545; 235.62241 29674; 235.86521 1105381; 235.94638 6896211; 236.05615 116866; 236.3605 24808095; 236.36509 129006; 236.4093 29996260; 236.4524 216; 236.57891 511227; 236.65965 3071676; 236.7291 357858; 236.82969 881138; 236.96519 5878633; 236.98821 41162; 236.99448 25264; 237.30038 1433782; 237.55811 1460197; 237.63695 439751; 238.05378 10433; 238.14586 356993; 238.44301 7180; 238.73699 54059; 238.75839 1159659; 238.88722 65317; 238.9569 30280; 239.08718 25283; 239.65648 32333; 239.91186 636734; 239.95514 5589; 239.96518 62723; 240.09958 42850; 240.13904 1980841; 240.17232 121098; 240.19307 2931627; 240.69702 2516; 240.75129 7250; 240.85728 4571; 241.03876 2630727; 241.28756 139100; 241.32241 27536; 241.37609 905917; 241.55341 1398515; 242.6693 2997084; 242.93624 77409; 242.98637 79687; 243.19154 54501; 243.30552 17338571; 243.39438 8426823; 243.48988 4864579; 243.54391 23047; 243.56553 28469; 243.86693 14869; 244.03647 955950; 244.29821 7753621; 244.61153 5720; 244.95483 2053; 245.02271 115820; 245.54527 968607; 245.77754 1035; 245.78367 11865; 245.84901 4489702; 246.74644 44560; 246.78484 7246182; 246.923 157312; 247.16863 58410; 247.17941 1172529; 247.20173 3499401; 247.44053 1615968; 247.63887 9008058; 247.81373 884468; 247.84723 35162; 248.16505 4817; 248.50009 71887; 248.61619 54198; 248.65465 92794; 248.68839 3492343; 248.87151 1484771; 248.89428 363210; 248.9549 1578180; 249.13458 54452; 249.29312 767648; 249.59671 1255629; 249.84214 15719; 249.88601 33391; 249.9313 14562675; 249.96063 281011; 249.96354 20031367; 249.96477 873220; 249.98807 17455; 250.12074 17390; 250.49717 29301; 250.57448 655493; 250.65521 18444917; 250.74174 21182; 251.06138 184238; 251.36963 20623; 251.46276 785198; 251.70853 1820738; 251.71157 4445928; 251.71307 16146760; 252.14168 24381; 252.31929 923460; 252.5743 68558; 253.22471 159558; 253.34178 6528935; 253.47986 3900744; 253.64243 71401; 253.65535 32174; 253.79155 25690; 253.88695 34207; 254.05018 15265; 254.2092 74458; 254.31206 3074822; 254.57694 2573388; 254.60047 84950; 254.9702 118813; 255.04284 8037; 255.63995 43852; 255.68406 24544; 255.98485 40409; 256.09748 21197; 256.13647 1003799; 256.33323 8049; 256.41576 23914863; 256.49935 9017; 256.50634 39591; 256.61765 74850; 256.64941 58760; 256.71532 54002; 256.80008 8658808; 256.89298 75001; 256.96688 143242; 256.9708 69282; 257.30947 5523; 257.41734 43640; 257.47456 36479; 257.72422 13638151; 257.81792 821153; 257.90335 143086; 257.94907 2990; 257.96966 68241; 258.01365 3460529; 258.37801 4886334; 258.38852 25988; 258.60617 11998852; 258.66324 6316; 258.77377 30772; 258.78386 24345; 259.00399 52062; 259.01263 1885125; 259.41189 3318; 259.64533 967553; 259.69762 48434; 259.70274 137873; 259.83282 6897704; 260.16972 55226; 260.19439 1510470; 260.24839 398110; 260.27989 1588; 260.33925 2581; 260.46124 1147328; 260.55137 1370; 260.62512 8395330; 260.79844 393; 260.94283 43173; 261.00257 139458; 261.03047 40134; 261.09128 77509; 261.2648 8695; 261.65692 1138930; 261.92094 67906; 262.48121 9899777; 262.73 1524360; 262.93688 23866; 263.29855 15135; 263.65498 2827592; 263.67373 1110868; 263.91285 5918; 264.18313 35853; 264.18686 89835; 264.39206 326144; 264.40375 4284; 264.7513 3569; 265.11387 6206; 265.16172 159078; 265.73589 7090; 265.86724 5837; 265.89116 6211407; 265.94808 3835; 265.9879 38797; 266.27623 706; 266.2967 72547; 266.40118 707468; 266.4744 563; 266.53543 192975; 266.95577 1976094; 267.03517 52117; 267.11171 908074; 267.33538 13054; 267.5038 3451; 267.70937 1864382; 268.1665 205451; 268.22129 155284; 268.89614 11592303; 269.14186 31289; 269.22743 38938; 269.27177 9014773; 269.55478 139021; 269.7787 27700; 269.95241 388285; 270.40928 1294035; 270.49909 3654303; 270.57125 26041; 270.6151 52039; 270.67538 1388684; 270.69467 25591386; 270.71314 791452; 270.80088 27222; 270.97548 41382; 271.03987 3273; 271.1565 22922; 271.29524 3703981; 271.35194 69256; 271.83091 24810680; 272.03454 26105; 272.10448 30676; 272.1667 1974940; 272.1761 4055621; 272.48582 1405044; 273.22424 8467; 273.27286 8810837; 273.29727 1464406; 273.31908 900542; 273.4695 1533518; 273.76817 27769053; 274.14317 106405; 274.25161 2313004; 274.34711 1371761; 274.64572 24080; 274.70115 1454; 274.99296 28162; 275.64427 55534; 275.65726 35023; 275.70771 6496127; 275.81796 1620954; 276.03659 8448; 276.26892 28582422; 276.6639 1800331; 276.76026 40486; 276.90855 1468592; 277.22998 365898; 277.23287 6799023; 277.29493 28203; 277.37371 7606258; 277.40232 64150; 277.4354 50766; 278.44031 549832; 278.66215 2246285; 278.8652 581421; 278.88251 16626; 279.12739 167689; 279.52906 29359; 279.59695 24714; 279.65853 64048; 279.99141 462148; 280.12882 861515; 280.21689 53446; 280.36508 21005526; 280.69469 6916; 280.83799 929669; 281.1433 1897783; 281.26808 740399; 281.57759 3525; 281.63604 4496044; 281.67266 42092; 282.02407 4199; 282.19704 5843372; 282.24572 3487702; 282.44607 9227744; 282.93907 4301; 283.07692 28278; 283.9308 73818; 284.01758 33621; 284.26512 18190; 284.35393 25681; 284.39593 10635; 284.42789 38045; 284.49847 6974; 284.63039 67479; 284.70916 9009735; 285.12398 6856; 285.15907 78695; 285.2682 35770; 285.32157 889474; 285.32794 640055; 285.69286 22633; 286.11806 1614; 286.50959 4637909; 286.51688 1849599; 286.65794 181034; 287.20917 9561; 287.36391 197053; 287.38368 71659; 287.45342 11715; 288.02661 534734; 288.1281 31657; 288.21235 1720437; 288.2661 15717; 288.46441 116354; 288.72713 14040; 289.02925 139237; 289.03465 769468; 289.10963 2777626; 289.26974 941102; 289.29998 9385127; 289.31805 5306; 289.81934 396893; 289.85555 160907; 290.35005 22953; 290.72336 8649683; 291.01378 3312; 291.04399 75192; 291.09125 3715253; 291.09887 42849; 291.48706 78515; 291.52245 1785925; 291.70353 5963; 291.74112 28566; 291.94381 2122097; 292.1111 2916753; 292.16594 28626; 292.38432 75085; 292.67116 23911827; 293.0022 745420; 293.4946 22499; 293.65922 1467747; 293.69331 39062; 293.7288 36471; 293.81139 1738375; 294.13047 10406; 294.3944 51929; 294.40108 4309801; 294.75042 4237553; 294.84414 188374; 295.01664 658718; 295.0504 780523; 295.16516 22719; 295.18774 354191; 295.4331 9579558; 295.43921 452752; 295.69661 74871; 295.75584 2495; 295.93024 59397; 295.98083 48608; 295.99374 97034; 296.05213 40386; 296.37927 1412841; 296.76042 28748; 296.8553 8384; 297.0756 26978; 297.52436 480; 297.89083 34951; 298.08852 2101; 298.52232 1296421; 298.53328 2216; 298.54259 25016; 298.59821 12215759; 298.66644 3749645; 299.02721 124626; 299.04831 3363155; 299.42788 29656; 299.68974 1078297; 300.20149 8330; 300.29307 9157555; 300.47253 1559198; 300.51249 26005; 300.88874 1549; 301.15995 338819; 301.21435 1143; 301.22602 9811; 301.2761 21979; 301.31875 70511; 301.35168 21561; 301.40633 6434; 301.49544 4006151; 301.74017 13455; 301.8058 7532; 302.08293 4867; 302.19419 3098521; 302.25172 53102; 302.33397 2455; 302.37748 4218700; 302.47119 8277; 302.53141 51637; 302.69559 6229104; 302.80877 61540; 303.00675 2432506; 303.04863 24440; 303.21829 29068; 303.43941 6700347; 303.47024 6710226; 303.52475 6693; 304.00229 915869; 304.0611 790175; 304.16164 49566; 304.2316 602028; 304.68834 45540; 304.78279 52282; 304.90617 2426200; 306.07778 31091; 306.17213 24211; 306.32593 1514959; 306.52621 22989; 306.61493 1665321; 306.64458 263610; 306.72471 6607; 306.85613 77840; 306.9772 898; 307.02242 2825575; 307.4296 10823406; 307.52864 5657770; 308.08116 4709497; 308.1029 14268780; 308.18692 17577144; 308.20921 902449; 308.36628 15350; 308.37515 2583; 308.49324 3203042; 308.49667 23196; 308.7447 2691776; 308.75574 1035948; 309.27617 890539; 309.65319 149769; 309.67911 1224956; 309.72821 56716; 309.74731 515326; 309.76399 7700699; 310.18233 782860; 310.35198 4519; 310.65975 69350; 310.86608 54149; 310.93177 53240; 310.97977 15994737; 311.04757 54118; 311.20264 3421550; 311.40249 61640; 311.49395 7783260; 311.64171 49397; 311.71353 4714361; 311.88588 1954565; 311.93116 9111; 312.12551 19547304; 312.24765 1371750; 312.42996 397672; 312.48764 23815; 312.53631 461502; 312.95693 3112046; 313.02793 24774; 313.11235 93793; 313.15237 1461117; 313.15735 2308694; 313.23603 136310; 313.31192 918548; 313.32937 1081232; 313.71076 3992739; 313.93734 1578432; 314.19153 1326; 314.26927 67164; 314.66106 143452; 314.89013 9229; 315.37246 13206; 315.44772 21249; 315.5507 138168; 315.65874 42401; 315.79438 6802797; 315.88473 814864; 315.93648 315; 315.99312 2681725; 316.04001 199586; 316.17762 5420; 316.56055 1387545; 316.57428 44861; 316.67 9129722; 316.69797 46021; 316.77045 1570715; 316.81801 62415; 316.93912 19358; 317.19043 24665; 317.63976 28020; 317.72835 7126; 317.8799 19565; 317.88604 21020; 317.96879 14121; 317.99502 908; 318.0679 883385; 318.08167 49683; 318.52222 66780; 318.63372 2077420; 319.06597 24999; 319.68009 586897; 319.92815 24758; 319.95345 45135; 320.13684 1689958; 320.20648 21712; 320.50328 79791; 321.78499 2137; 321.79065 4476788; 322.15671 66687; 322.16707 25986; 322.38615 835887; 322.76903 9810830; 322.95756 41217; 323.03904 26945; 323.0495 58353; 323.64218 27131; 324.20714 28373; 324.51498 557297; 324.52894 12853; 324.88837 3368843; 325.11056 794; 325.22132 99313; 325.64398 74206; 325.64726 3609386; 326.11804 65406; 326.20654 972445; 326.22076 7643; 326.29067 10945246; 326.6142 8152; 326.98019 1232035; 327.32287 16407; 327.39216 131112; 328.10205 121025; 328.18884 13423; 328.21596 9843; 328.26901 78596; 328.27316 94017; 328.31749 60572; 328.4285 6037494; 329.40377 9749559; 329.72117 70710; 329.74511 800895; 330.02925 7657689; 330.23786 9830200; 330.35391 52149; 330.35824 41371; 330.56544 9424; 330.60694 47653; 330.62564 31745; 330.69926 2; 330.76704 40738; 331.19665 5302679; 331.29381 516718; 331.36536 28140; 331.44303 46969; 331.61906 1493853; 331.67204 296119; 332.15569 1450; 332.46761 56642; 332.56654 38573; 332.57337 40415; 332.64085 67230; 332.64433 5324898; 333.16564 8304; 333.77774 2090654; 333.83099 40079; 333.93287 5253; 334.2626 38909; 334.36703 26550; 334.46909 72521; 334.71599 2925646; 334.90265 1908061; 335.00638 2961030; 335.00811 350804; 335.34203 1948338; 335.40176 1528723; 335.8387 2957780; 336.24831 829084; 336.3785 77340; 336.44929 76588; 336.58838 194198; 336.70979 79595; 336.86804 453199; 337.01252 1445238; 337.29449 594012; 337.37522 571; 337.40762 3215006; 337.44653 48274; 337.6531 2879419; 338.33348 23081; 338.61971 28533; 339.08509 382145; 339.11763 2574652; 339.40124 3849004; 339.48513 43942; 339.62262 792; 339.62263 7573; 339.71299 25671; 339.76726 28652; 339.92626 26978; 340.15376 59244; 340.22595 21292180; 340.81675 3447837; 340.8995 2521741; 341.25957 1484681; 341.90043 1701554; 341.95394 79664; 342.02764 9460114; 342.11862 56711; 342.20854 37928; 342.334 1635761; 342.41552 110915; 342.42412 1388; 342.45945 1489831; 342.66937 114883; 343.1587 6504853; 343.17637 53234; 343.25362 4267; 343.93325 27636; 344.36178 66231; 344.38683 2314346; 345.40103 581608; 345.48947 714548; 345.78455 8394; 345.84555 1568; 345.89133 141144; 345.96344 195310; 346.05615 75121; 346.33677 76305; 346.40851 30798; 346.49943 2221; 346.80216 24806402; 346.82622 78488; 346.86569 71498; 347.10538 1684769; 347.63998 1698240; 347.66173 715343; 347.73896 6911321; 348.04986 67934; 348.3909 22830; 348.52383 21108; 348.65368 52062; 348.69206 1277125; 349.17093 64241; 349.18912 78700; 349.19174 26900; 349.42843 36818; 349.5043 6896826; 349.74166 117265; 350.03082 9717656; 350.21441 4496715; 350.78688 31532; 350.80265 674; 350.80318 1607445; 350.95885 710087; 351.03861 21544167; 351.19918 1861; 351.2649 2182; 351.61999 25463; 351.68841 45678; 351.88904 63490; 351.93171 69187; 352.06075 10159; 352.62296 58412; 352.68267 7252020; 352.701 20449; 353.02239 21502986; 353.02939 37198; 353.39406 3975455; 353.3977 25002; 353.44102 4050574; 353.69775 23777; 353.85102 6276; 354.50318 2543370; 354.54279 41639; 354.63789 974752; 354.71883 9549; 355.06946 416388; 355.71916 186229; 355.94996 22990; 356.0661 71012; 356.30644 70690; 356.46364 12283; 356.53191 17072; 356.89571 7557129; 357.10293 5380783; 357.22285 47746; 357.45075 13900470; 357.72396 28078; 357.8722 4762686; 357.9464 1231570; 358.12194 2241299; 358.20625 25636; 358.27039 1177748; 358.39965 75443; 358.87229 264921; 358.90358 8325; 358.9931 76255; 359.56713 580067; 359.59579 8510; 359.61089 6252; 360.1813 732020; 360.24719 7629; 360.3464 1655934; 360.49973 3751165; 361.0514 1731633; 361.25182 33994; 361.4223 13400803; 361.49367 30995; 362.09229 481; 362.23741 4080077; 362.31908 1182671; 362.92821 67404; 363.517 2841; 364.07568 753294; 364.2506 24100; 364.64243 5100284; 365.15756 42813; 365.20707 43228; 365.22698 1266140; 365.3809 64177; 365.40956 78465; 365.42415 10174; 365.76331 46435; 365.83337 27402; 365.86312 263585; 366.29088 8531; 366.74221 149399; 366.7551 27090; 366.96363 9901; 367.05673 5569821; 367.07264 50544; 367.49424 25279; 367.69102 843604; 367.92725 69062; 368.51459 4079948; 368.8648 26777; 369.12729 66626; 369.15853 11198; 369.48543 14219; 369.54904 7603; 369.63024 13562; 369.6558 2160647; 369.70308 2730608; 369.86602 3638379; 369.93771 13746; 370.35362 1276; 370.82329 55800; 370.843 29998; 370.92813 4550587; 371.13401 4312; 371.15836 59225; 371.32772 35529; 371.66295 106380; 371.8709 46; 371.93708 50685; 372.22449 3980618; 372.35039 7502; 372.54109 469250; 372.71562 14935; 372.86234 435944; 373.04673 21614; 373.12341 392573; 373.1707 161253; 373.24972 761123; 373.55846 2831832; 373.60277 29791; 374.15834 35039; 374.18745 144036; 374.21731 8570; 374.23779 40330; 374.28722 40207; 374.53482 980382; 374.60269 4134; 374.72637 1069029; 374.79358 24635919; 374.89087 398612; 374.93601 6886; 375.01597 49117; 375.25585 181421; 375.42661 478637; 376.30235 19150; 376.43782 27077; 376.4523 1028038; 376.50054 1098; 376.7458 148203; 376.78581 31185; 377.52729 2003; 377.54677 916; 378.35362 1714019; 378.35933 960075; 378.58681 175749; 378.62906 79681; 378.69145 3081779; 378.77892 57171; 379.10939 19176; 379.43556 9166; 379.47251 47145; 379.77598 148204; 380.28577 4704760; 380.52341 140069; 380.63649 41675; 380.97966 187494; 381.10681 45433; 381.2833 17741600; 381.30305 13738; 381.4701 17596; 381.80362 69980; 381.924 3485218; 382.09215 38348; 382.20479 10371534; 382.34049 1063378; 382.58615 767245; 382.85437 1089398; 382.85451 1157300; 382.95834 643862; 382.96986 74357; 383.05553 4993; 383.26159 58325; 383.39688 47209; 383.53652 1459387; 383.69337 45972; 383.82406 1879922; 384.01531 1130759; 384.28039 9888728; 384.76681 937104; 384.81078 3459158; 385.01161 49652; 385.54778 4156932; 385.54995 26492; 385.55105 3323705; 385.66584 1419754; 385.82386 1568052; 385.82463 5210; 385.94777 1969856; 385.96868 35393; 386.15433 3524; 386.37394 33091; 386.38079 17475; 386.52747 3698885; 386.84586 3483104; 386.91508 829175; 387.443 7921; 387.54782 3501; 387.57175 34227; 387.78673 52140; 387.88596 37937; 387.90422 19217; 388.22142 16186; 388.44411 2924; 388.58332 66296; 388.81693 1116066; 388.93415 3129121; 388.95588 57574; 389.81118 6312594; 389.83031 1292373; 390.27838 26381; 390.43677 619707; 390.79144 56867; 390.83824 7917; 390.87911 62812; 391.3399 72776; 391.42935 29576; 392.01627 4920; 392.39163 48114; 392.50329 18141311; 392.88732 47164; 393.09127 10594; 393.12721 8920385; 393.16701 11262198; 393.40288 28797; 393.40653 1657794; 393.58778 508136; 393.61038 737714; 393.63873 1064403; 393.82769 133781; 393.84297 2801079; 393.9441 28153; 394.00093 3653839; 394.12691 61789; 394.13347 47172; 394.18189 39459; 394.4388 409960; 394.73001 7238196; 395.04064 188561; 395.17678 3659349; 395.57286 57859; 395.612 20032; 396.32356 16123; 396.5743 16380; 396.61826 694881; 396.83438 6784630; 397.08901 2235044; 397.33782 139146; 397.43565 69366; 397.49178 5663619; 397.52311 2216269; 397.65564 102835; 397.94117 644465; 398.00044 49368; 398.06677 5297660; 398.41123 3789710; 398.85311 18773; 398.85977 868933; 399.02002 49588; 399.07439 2192780; 399.78025 24583; 400.00194 994; 400.71379 1814; 400.84175 6235810; 400.84438 7801999; 401.1885 2592243; 401.23989 41543; 401.25467 3070499; 401.26435 3330; 401.2893 64182; 401.38043 522610; 401.4887 1153815; 401.51126 1187609; 401.77426 28922; 401.8155 2891900; 401.86254 10850; 401.99561 1507571; 402.6924 5055; 402.71043 5212; 402.80085 9097; 403.00489 4538296; 403.11595 1532423; 403.36743 21330; 403.38085 159711; 403.40361 6; 403.50843 128031; 403.67527 794584; 403.9186 72217; 404.38702 636773; 404.39848 9374201; 404.82389 17150; 405.15587 77852; 405.17564 14579; 405.32843 65984; 405.72566 1280566; 405.92594 39104; 405.93086 1825075; 405.99157 21616; 406.29997 4275798; 406.46544 4306; 406.74788 155996; 407.09622 2647957; 407.27076 665699; 407.83459 39483; 408.19323 9728628; 408.81034 6074; 408.8997 7688; 409.1419 3175645; 409.34032 2222475; 409.65844 177443; 409.73835 35801; 410.03473 4489125; 410.07363 15876; 410.1459 21466; 410.60118 6991554; 410.84902 9520110; 410.94331 25424; 410.98395 1312753; 411.26681 7825; 411.29357 1839782; 411.32087 2568904; 411.47216 1395293; 411.84872 12900; 411.88387 9668141; 411.88718 453321; 412.01258 33867; 412.11952 180136; 412.17599 1118437; 412.51657 684129; 412.8081 51601; 413.01505 1958067; 413.38481 9158; 413.44123 139130; 413.56998 449966; 413.70095 2288627; 413.84441 1759266; 414.14835 20805; 414.20083 11148; 414.22566 74247; 414.39439 796141; 414.4458 49220; 414.69575 375553; 414.90292 66145; 414.97961 22149; 415.00906 108911; 415.39795 25989927; 415.47767 24345928; 415.56386 7511; 415.62278 6072120; 415.63247 5286970; 415.67586 21867808; 415.70365 147510; 415.73865 999622; 415.82261 8251; 415.8306 1899848; 415.83801 24847; 415.88168 106296; 415.98298 790; 416.35122 3485970; 416.43266 62066; 416.44122 3255391; 416.97266 9674; 417.10122 1114588; 417.25027 523897; 417.63852 143162; 418.10078 1881100; 418.12944 2699; 418.28919 15282; 418.50542 18957; 418.52574 25734; 418.61903 8811065; 418.6637 907804; 418.68264 27621; 418.86833 9988183; 419.06339 33506; 419.21479 226017; 419.60899 34627; 419.77326 7586; 419.80643 1982; 419.93291 824649; 420.17044 802049; 420.27748 20924; 420.30097 6773; 420.5179 7946659; 421.46621 61727; 421.85514 6184; 422.00777 39848; 422.01453 38858; 422.10545 6277; 422.87043 996390; 422.92382 59725; 423.11514 6470419; 423.39746 160780; 423.53012 5297; 423.56491 31897; 423.59376 23387; 423.61514 75126; 423.76046 9063433; 423.84576 4164248; 423.97707 974546; 423.99244 22050; 424.31281 86388; 424.37278 899979; 424.54771 58956; 424.60101 3333075; 424.97613 9406; 425.16221 193548; 425.23409 106932; 425.46822 19456; 425.5837 771580; 425.79615 19720; 425.87868 22958; 425.95648 6007414; 426.03987 2644; 426.25208 9360861; 426.54095 1795276; 426.76569 25978; 426.78992 76595; 426.88926 1577598; 427.78017 775714; 427.81793 49462; 427.843 75424; 428.00006 22683; 428.01574 1425551; 428.01595 7805024; 428.08191 22760; 428.23797 920191; 428.31141 25812; 428.33947 3785534; 428.39542 6761; 428.71039 27314; 428.83043 2439366; 429.16851 44451; 429.61177 4913886; 430.34642 1387592; 430.36365 76158; 430.63496 50331; 430.68391 5633; 430.69485 8491695; 431.02392 51830; 431.03728 26067; 431.26105 22448; 431.57374 1133616; 431.63325 496658; 432.03807 2913020; 432.62873 133385; 432.96271 3217149; 432.97815 7179479; 433.05979 840795; 433.41284 1033832; 433.58673 8990; 433.88122 47296; 433.945 9701902; 434.02969 8201; 434.64679 9498; 434.66441 1483195; 434.87843 13972; 435.10297 70791; 435.22696 27131; 435.38544 1079997; 435.41475 1010261; 435.52501 39444; 435.96391 27619; 435.99822 8471322; 436.03368 9241; 436.06831 910815; 436.55285 121374; 436.58747 3965138; 436.72678 27668; 436.7513 27800; 436.77145 6342; 437.05943 3259413; 437.32222 74096; 437.4051 26266; 437.47629 1791010; 437.7126 76878; 437.93463 28136; 438.61127 4241; 438.70478 4145271; 439.59896 3737; 439.64218 1039065; 439.78308 252151; 439.81413 51310; 439.99866 5973258; 440.0541 10756; 440.16239 26542; 440.29422 4808849; 440.49316 7977; 440.64186 55955; 440.77651 4689; 441.28756 127318; 441.56423 130429; 441.67553 4938; 441.72154 1630786; 441.98144 12773; 442.18414 4672367; 442.18459 8295; 442.34532 30707; 442.66 146798; 442.78285 23360819; 442.80961 198814; 442.90802 1515041; 443.00539 9610; 443.53994 4821801; 443.6588 6862; 443.95245 139829; 444.18322 1355419; 444.36846 4149163; 444.41488 1277; 444.42574 12031; 444.61405 15909646; 444.78229 41759; 445.22819 26882; 445.35827 7747; 445.45216 27901771; 445.73143 49730; 445.97019 4907258; 446.02833 25484; 446.59676 45524; 446.76018 70595; 446.99842 1949723; 447.00868 1565; 447.06809 64602; 447.12958 18680569; 447.30946 73498; 447.95764 27928; 448.08004 89992; 448.42897 1591524; 448.63584 36824; 448.68906 67429; 449.11546 64348; 449.36797 39953; 449.41968 70943; 449.49608 6805; 449.56424 755824; 449.64244 2589132; 449.69614 45943; 449.87215 70235; 450.0671 8821570; 450.26528 384996; 450.34438 46420; 450.62612 65298; 450.64643 23373; 451.02365 71766; 451.2022 1223507; 451.36857 56543; 451.65487 78141; 451.74019 19128747; 451.909 870; 452.12464 16243; 452.14345 155306; 452.16442 163181; 452.38183 20280607; 452.51302 5370; 452.78988 78869; 453.29179 75524; 453.35436 34384; 453.52183 992873; 454.04658 28971855; 454.29882 1847; 454.34068 682740; 454.41525 29506; 454.4629 22678; 454.66086 240879; 454.67319 2424269; 455.12532 807849; 455.30199 1616369; 455.40812 25077; 455.47769 62966; 455.52724 5383255; 455.78513 29419; 455.92961 21037; 456.03681 91039; 456.05427 146991; 456.35318 43845; 456.37482 23028; 456.68412 96609; 456.72699 32533; 456.74473 55595; 456.87313 54315; 456.98524 4827475; 457.01557 1840; 457.45301 518050; 457.55733 7363335; 457.74102 32305; 458.27096 35299; 458.35962 46481; 458.51096 49120; 458.63693 15927; 458.64861 8114123; 458.86951 39112; 458.89106 1232949; 459.26553 58926; 459.31139 26295; 459.43657 27648; 459.53771 46945; 459.57724 46284; 459.69235 66645; 460.03025 703290; 460.12075 625255; 460.16538 143233; 460.35662 32415; 460.44315 93736; 460.46559 990264; 460.61107 6255; 461.00804 62581; 461.21074 6135241; 461.28366 587508; 461.38905 121009; 461.41817 85909; 461.58999 85066; 461.65159 21446; 462.02326 4353356; 462.12697 2143581; 462.20802 5904107; 462.77282 9062017; 463.10875 1205; 463.45327 45833; 464.14567 48919; 464.39882 9239; 464.77725 8292967; 464.82639 63600; 465.26354 6760416; 465.37361 9280; 465.43979 3331512; 465.69737 14241; 466.11673 5619902; 466.21627 27235; 466.34829 4156884; 467.07201 3722824; 467.12001 75931; 467.13281 15433; 467.51977 5100360; 467.60307 9048; 467.91691 22957; 468.49522 150942; 468.50523 9966510; 468.5722 3645; 468.68567 57748; 468.75238 26290; 469.16477 5296056; 469.43034 30244; 469.5402 14284; 469.70193 795090; 469.7182 72906; 470.19236 49725; 470.29579 11770; 470.4549 79495; 470.59056 19874; 470.59483 8797753; 470.60944 8077514; 470.63397 3248389; 470.85147 58422; 471.3225 1418235; 471.71654 75140; 471.78013 131673; 471.9923 3745733; 472.20796 9990; 472.30101 4174666; 472.3174 40088; 472.48844 62748; 472.70088 6146; 472.98153 2122; 472.98888 14996; 473.55956 3277; 473.8884 302243; 473.92905 7607081; 474.00921 70860; 474.15156 133181; 474.45902 29462239; 474.60433 4004; 474.64492 47206; 474.66976 3520759; 474.86703 93581; 475.0667 153850; 475.21899 1517867; 475.53561 1135729; 475.62221 24785; 475.85832 2540; 475.99818 406382; 476.13459 437745; 476.25379 26167; 476.32155 78813; 476.48323 21675434; 476.95789 27105; 477.1243 59323; 477.38118 655029; 477.48852 1643740; 477.63094 53894; 477.83722 15122917; 478.54493 55380; 478.54649 820851; 479.15288 37972; 479.26394 27213; 479.29533 25747; 479.45919 2414976; 479.49602 8961; 479.52257 7956357; 479.58429 203109; 479.9489 14875; 479.97037 3858; 479.98558 1174; 480.08271 1751981; 480.09412 64270; 480.83272 40098; 480.84653 6919181; 480.9453 356163; 481.78466 33933; 481.93289 1909085; 482.08803 1460411; 482.14148 581673; 482.21639 381821; 482.28698 27741876; 482.42527 78144; 484.02307 61304; 484.05418 1035142; 484.66504 9113663; 484.83189 72897; 485.1844 6949; 485.73205 94556; 485.91086 41276; 486.28954 4820660; 486.79097 42322; 486.90892 67887; 487.00731 36893; 487.47874 37362; 487.77762 7788457; 487.78904 55664; 487.79462 9005526; 487.83744 622184; 488.31453 67773; 488.6678 57275; 488.82475 128164; 488.98022 64309; 489.09231 2893; 489.10911 51930; 489.17122 12818; 489.2414 1525721; 489.51728 135961; 489.6543 1041204; 489.6762 1600; 489.87032 1553516; 490.25685 17912641; 490.40736 73034; 490.45829 36382; 490.45858 56368; 490.87396 74186; 490.93559 16592; 490.95442 8072373; 491.1647 134236; 491.17313 2594; 491.17717 31653; 491.18371 8545; 491.4029 7266884; 491.44443 14990; 491.5833 8118949; 491.67439 1345980; 491.70106 2715143; 491.79371 1691004; 492.39117 3721460; 492.61672 3427935; 492.86533 5524; 492.87463 7052071; 493.00232 9302759; 493.1118 1627964; 493.19687 20695; 493.49762 51775; 493.62922 56303; 493.71076 744883; 493.93545 54890; 493.96375 24429; 494.51875 75558; 494.57552 1027687; 494.60587 56176; 494.7889 2105; 494.89729 30141; 494.91222 7894; 494.94258 338225; 495.09911 21246; 495.39103 10428; 495.5299 148716; 495.83377 685; 495.90246 36185; 496.79099 5603; 496.92518 74715; 497.13393 31064; 497.19807 70089; 497.21342 2825465; 497.33766 13000; 497.59432 291099; 497.60642 574238; 498.24159 60269; 498.34221 2793273; 498.51214 9108998; 498.74877 13167; 498.86665 68693; 499.22261 61892; 499.84928 10954; 499.97117 26935 +<2, 6>: 0.06297 7915; 0.06443 4276; 0.06699 158765; 0.43097 29279; 0.45614 103448; 0.57519 3713747; 0.99325 2344; 1.20071 369122; 1.24007 31009; 1.41885 7115624; 1.47128 909186; 1.95825 56159; 2.27695 81892; 2.75309 58764; 2.89966 162052; 3.27159 27879; 4.07849 1905333; 4.48478 34252; 4.48661 9585021; 4.76801 8353; 4.78839 1755; 4.8117 66720; 4.81174 84618; 4.83363 161094; 4.96746 14844; 5.12566 657385; 5.15884 1851822; 5.20863 68031; 5.21316 1440794; 5.25529 3953; 5.45181 920401; 5.51151 796830; 5.81962 1195559; 5.86417 2195102; 6.37055 21524; 6.58014 12068644; 6.65879 65133; 6.71327 27258; 6.90359 3326; 7.11667 1191700; 7.35474 21270; 7.56163 553935; 7.80767 20873; 7.85306 2143560; 7.90587 303749; 7.95344 6929056; 8.04836 3725062; 8.221 1580639; 8.23362 108197; 8.24911 22794; 8.56341 52508; 9.09724 139131; 9.57401 1903019; 9.87407 35128; 10.16385 14202; 10.3473 2531572; 10.56571 67905; 10.7006 1661155; 10.87859 2775880; 10.95985 1157093; 10.99635 180889; 11.18316 6503; 11.42814 58178; 11.51107 11884; 11.6377 4405552; 11.78679 1444727; 11.98048 2900; 12.23491 1631740; 12.42365 29408; 12.73036 4494; 12.76295 159193; 12.85119 9103; 13.13467 22474; 13.23889 71732; 13.25929 63175; 13.47029 25825; 13.54391 138496; 13.75585 5147; 14.20712 28301; 14.3011 6130123; 14.58796 34188; 14.73341 36098; 14.73458 2871; 14.77509 1192921; 14.90477 5283; 15.6605 51406; 15.68361 72935; 15.88364 58104; 16.1456 9444302; 16.16421 165352; 16.30289 89252; 16.41413 52934; 16.9297 742; 16.94884 126302; 17.18755 6010; 17.35479 6528590; 17.35768 2143645; 17.46741 3984598; 17.66131 443; 18.18255 69234; 18.22576 6550; 18.3438 841155; 18.37436 66454; 18.69598 40482; 18.73457 37905; 18.74174 3383609; 18.94923 26463; 19.02756 1033324; 19.11371 29189014; 19.17577 20762568; 19.37988 24553513; 19.41232 1868075; 19.42007 4634980; 19.42937 36457; 19.60981 169720; 19.63047 1327375; 19.64981 32043; 19.68626 52936; 20.15069 52935; 20.3746 43628; 20.87043 5460025; 21.00301 113762; 21.05664 754153; 21.14526 53038; 21.16568 19047857; 21.27432 1905569; 21.56869 8796225; 21.84607 34943; 22.10586 150818; 22.35107 569241; 22.45768 5311; 22.61993 3329269; 22.83894 731248; 22.95457 26898; 23.0405 12421; 23.25344 3310173; 23.27742 57688; 23.64794 5292104; 23.70496 8438432; 24.00393 2708583; 24.05711 5534336; 24.09967 1463205; 24.11498 19294751; 24.64977 41832; 24.67886 42954; 24.88983 107188; 24.90575 713301; 25.03092 6571; 25.0853 6977; 25.45495 27649; 25.59158 25188; 26.22427 21488; 26.234 41874; 26.46653 9476; 26.50801 3373710; 26.66808 35304; 26.8502 4859; 26.87738 96503; 27.50811 2619; 27.55976 1162; 27.56197 661; 27.87481 15680753; 27.91737 58288; 28.26919 57617; 28.61832 387458; 28.70317 6000549; 28.79014 60931; 28.80465 1905828; 28.85862 24179; 29.07196 49705; 29.28517 805572; 29.9353 5913; 30.07723 1064617; 30.31884 20656; 30.87417 1136; 30.91637 1794; 32.32898 8055; 32.5386 2228; 33.10614 7197; 33.66451 4930237; 33.91393 17637; 34.29502 25051; 34.35334 8632; 34.40688 1843746; 34.71581 8119972; 34.77939 23428; 34.78051 1770862; 34.85917 286844; 34.99453 2822461; 35.12243 1829380; 35.17556 1103148; 35.2461 73437; 35.2562 55287; 35.49184 1950700; 35.58457 4976298; 35.84397 3943956; 36.32887 34125; 36.42991 14487; 36.84704 68295; 37.11134 1564098; 37.1853 7193; 37.46703 63646; 37.5223 27041; 37.72671 26876; 37.94532 5245; 38.31623 11426; 38.34388 523; 38.61563 5012520; 38.83637 8610; 38.88382 21655; 38.9044 9450; 38.90636 26719; 39.01826 6077; 39.09487 81149; 39.34721 45579; 39.90491 271373; 39.95817 9612260; 39.97527 546463; 40.05554 31672; 40.12675 5809; 40.28626 67067; 40.29626 6129589; 40.31267 5012041; 40.36008 59253; 40.39488 836; 40.43498 46231; 40.46756 72551; 40.58266 741583; 40.66422 28193; 40.77969 78371; 40.82487 1616447; 41.0512 9698; 41.06357 73298; 41.42725 77964; 41.50023 15305; 41.76321 2770898; 41.93573 7863816; 42.50781 411141; 43.33219 60607; 43.41189 27858; 43.8554 4558935; 44.1032 5529; 44.281 71211; 44.33122 74526; 44.41318 76382; 44.45775 538796; 44.75742 66581; 44.92309 1960678; 45.55275 1657052; 45.59872 95097; 45.744 67449; 45.79872 48582; 45.81962 64038; 45.92946 28837544; 46.23633 60767; 46.31812 142782; 46.43267 27492982; 46.47646 723195; 46.51883 1384232; 46.51928 8906; 46.6277 12381366; 46.711 43500; 46.80325 159871; 46.82118 4216342; 46.92591 2749832; 46.9543 644319; 47.13636 25553; 47.18987 8454; 47.27279 28953; 47.36973 828704; 47.43153 990106; 47.61009 1324510; 47.62644 4162721; 47.67935 746609; 47.73556 3277709; 47.92627 46712; 48.20281 6875433; 48.24114 2295938; 48.40555 3078588; 48.40995 47729; 48.47322 207279; 48.92451 528585; 48.94342 28132; 48.95249 28540; 49.09096 16447; 49.13047 155013; 49.16517 3777; 49.18099 2242; 49.52529 1205522; 49.61105 5623; 49.91281 24944; 50.06095 751711; 50.11677 50687; 50.45134 16305; 50.63782 27389; 50.76819 13236472; 51.08154 979178; 51.21393 38533; 51.4086 3245326; 51.54958 75498; 51.69582 13424; 51.82662 8410; 51.98259 466; 52.17654 8466686; 52.26764 1051; 52.33924 24378; 52.55486 1372042; 52.75517 16096; 53.05008 303068; 53.25024 1381228; 53.29473 4495; 53.48024 1295261; 53.52279 1912707; 53.83567 6581; 54.10825 1697835; 54.13144 4973372; 54.27262 1093539; 54.39967 2196383; 54.45875 69616; 54.52366 7923193; 54.70725 16603041; 54.92677 53197; 55.24811 11259887; 55.40085 29374809; 55.69372 7309; 55.74941 4287361; 55.8873 7116735; 56.11135 149273; 56.28326 951703; 56.37654 127672; 56.49335 184740; 56.59423 2638; 56.65933 4833; 56.7441 56311; 56.89175 57903; 57.01513 14170; 57.09555 13054; 57.10761 937543; 57.19905 78470; 57.29763 1818059; 57.57592 2680; 57.68671 44137; 57.95574 1236040; 58.10956 1404688; 58.36241 13674; 58.39617 844184; 58.40298 48865; 58.78455 1508451; 58.8542 8446; 58.86512 4471134; 59.28251 94905; 59.33494 280237; 59.40725 12046; 59.88142 1424947; 59.91339 4631; 60.1673 4152504; 60.30692 683292; 60.5165 97029; 60.58657 1157; 60.60995 11410647; 61.28643 64339; 61.3294 46596; 61.7429 8823; 61.81494 47846; 61.84165 79874; 62.05461 7172; 62.63234 51085; 62.9708 468; 63.00912 3174; 63.03247 3240; 63.17972 5393; 63.64119 42695; 63.90801 285; 64.24892 28406983; 64.7441 1324897; 64.78651 3564941; 64.80342 774383; 65.14635 1668593; 65.59841 8212522; 65.63525 34958; 65.69581 1586; 65.73711 24051; 65.83318 28781; 66.30816 4423; 66.77261 29629; 67.16286 21855; 67.5068 4553249; 67.67095 3603186; 67.69798 1298; 67.84284 23627; 68.13763 20449; 68.35673 3334; 68.3944 32211; 68.45874 21632; 68.93998 1078501; 68.99366 1586049; 69.01195 7945; 69.15486 26351; 70.13989 282832; 70.73908 96527; 71.13232 21074; 71.15795 7921809; 71.27965 266260; 71.44151 24397049; 71.50165 17527; 71.54106 3679468; 71.7724 18826; 71.88404 4439809; 71.91792 4607951; 72.0206 28809; 72.05052 50251; 72.06285 1565546; 72.11416 51672; 72.17185 746169; 72.24351 3484486; 72.25531 2704674; 72.30558 11227; 72.32302 93472; 72.36351 594603; 72.52458 3069201; 72.57828 16596; 72.61375 4240756; 72.75998 22913; 73.22228 31511; 73.335 18757; 74.14664 63389; 74.16771 67877; 74.32178 7438964; 75.10949 24310; 75.26704 7085894; 75.35375 7116620; 75.80901 44723; 75.98475 28101969; 76.19326 9062; 76.54264 44638; 77.37431 1955027; 77.38636 17360; 78.36654 8430319; 78.42936 106573; 78.44665 43189; 78.46231 7292; 78.48585 4529847; 78.70027 62030; 79.00573 21609; 79.07719 51741; 79.21131 63074; 79.45036 4513510; 79.62875 2319; 79.74821 1369968; 80.00996 2560074; 80.05024 649803; 80.06899 559161; 80.20172 2049548; 80.2763 5649551; 80.88386 1246276; 80.95785 120986; 81.14446 7757; 81.36742 1263175; 81.39335 6592; 81.67009 36946; 81.7817 2138; 81.78231 861655; 81.8644 7261; 81.90978 20085; 82.00007 1327194; 82.11349 5860; 82.26852 345419; 82.47542 1093346; 82.54957 44785; 82.73818 789762; 83.02792 3684; 83.22297 7963169; 83.48841 7864463; 83.66777 7317516; 83.6947 7525027; 83.85743 3534343; 83.93841 9980; 84.09053 1478738; 84.18151 8755740; 84.21115 44547; 84.25805 1460601; 84.44779 62294; 84.75994 77599; 84.86776 4377141; 84.87009 210513; 84.89587 74430; 84.90935 33218; 84.92908 321895; 85.62625 44637; 85.66329 529729; 86.08484 1058274; 86.16431 162553; 86.20293 15866; 86.45327 15933238; 86.63671 1000638; 86.7369 1973; 86.97648 1678887; 87.11785 28555; 87.13766 130150; 87.21599 42216; 87.79284 5352094; 87.84501 68563; 87.85291 130225; 87.87768 8530930; 88.0456 19341; 88.23297 57202; 88.35054 755537; 88.40124 3360182; 88.43366 21528; 88.67852 9009; 88.71201 23333; 88.79966 39516; 89.11411 29906; 89.24524 193438; 89.60534 630018; 89.77683 79507; 89.84142 2059; 90.3184 1156; 90.33005 946197; 90.44765 105960; 90.45888 106415; 90.45955 514031; 90.56859 9750036; 90.73697 1584519; 90.86869 1436390; 90.89497 1810437; 90.97636 25166; 91.10167 6687; 91.64557 30073; 91.69877 61582; 91.77887 16127; 91.802 38801; 91.91513 36563; 92.09219 93858; 92.24872 49937; 92.458 2157432; 92.46113 65767; 92.73758 42582; 93.03737 10125; 93.50392 13603; 93.51788 1685834; 93.51916 29980; 93.81661 2229; 93.90153 2051; 94.18345 9613697; 94.29255 42025; 94.61641 25654; 94.88746 164170; 95.11493 9448797; 95.15531 51225; 95.4828 545134; 95.74868 76553; 95.82531 3488; 96.76174 52189; 96.78197 45730; 96.81655 7900141; 97.27315 19281; 97.30307 1619334; 97.30801 7376079; 97.40567 1871339; 97.77058 172552; 98.57224 67129; 98.81572 4275; 99.13283 3802771; 99.23241 9093; 99.42824 75864; 99.50572 35649; 99.70158 12343307; 100.09067 166207; 100.21447 1224167; 100.29827 12069; 100.33161 45173; 100.41665 886575; 100.51772 3150; 100.56217 3212375; 100.74397 1579740; 100.76647 1191876; 100.90549 29351; 101.00043 800292; 101.20848 61879; 101.65245 6204512; 101.90962 3093832; 102.04424 28989; 102.41313 2953862; 102.4936 13203; 102.5906 73102; 102.75607 1278492; 102.81097 8672; 102.84396 594; 103.29946 897339; 103.46398 4267771; 103.57711 9288640; 103.86611 42668; 103.87197 53131; 103.9197 2913167; 104.14697 4685; 104.20919 51065; 104.38251 296; 104.43282 1264354; 105.07556 7031; 105.07755 5029; 105.36794 387009; 105.97766 1869792; 106.18673 67921; 106.34653 1261378; 106.35792 139364; 106.57684 4018427; 106.60163 842227; 106.70387 11160714; 106.76322 7509; 107.05187 19642; 107.13475 9273; 107.13622 78794; 107.1966 729424; 107.56378 8462; 107.76013 20236; 108.21139 2936; 108.34046 63596; 108.87292 8776170; 108.8958 70840; 109.01256 8540535; 109.02862 3599; 109.11728 136240; 109.19631 5493628; 109.38952 2216936; 109.60885 56487; 109.64741 74597; 109.79128 54876; 109.87472 21330; 110.21512 21198; 110.31636 2940679; 110.32581 182506; 110.33453 7354; 110.5052 61169; 110.57522 86607; 110.66167 299; 110.69663 7960866; 110.80624 845865; 110.89176 1924; 110.9149 6210; 111.49905 20610; 111.54746 3860903; 111.56607 43787; 111.72127 4616610; 111.75937 143384; 111.87487 3166; 111.95953 14259; 111.97943 37866; 112.41844 4848607; 113.00576 8909; 113.05535 11603; 113.07047 61843; 113.24818 68193; 113.42335 33485; 113.69457 67268; 113.87673 1862589; 114.0843 8535; 114.09057 10361; 114.18054 66825; 114.27091 1360767; 114.47004 1603558; 114.86788 1610898; 115.00942 26883; 115.15584 1204562; 115.19443 48564; 115.20001 6680; 115.82569 726833; 115.86671 7162393; 115.96082 1610097; 116.15377 21063; 116.30254 2581360; 116.49222 1006014; 116.88343 26746; 116.88871 4212; 117.28023 910377; 117.34535 1367; 117.46478 24835; 117.83005 106162; 117.86064 46579; 117.94929 42082; 118.24442 29776; 118.66814 528518; 118.67051 27715; 118.71159 4724291; 119.10906 36350; 119.23607 3444652; 119.27706 2953141; 119.34535 380562; 120.01373 10500; 120.04634 9492; 120.13862 19200; 120.27688 76499; 120.3685 1672; 120.49892 6698; 120.65283 6280; 120.79504 1180547; 121.02922 418; 121.31711 23323; 121.69944 24345; 122.03634 37164; 122.07998 35491; 122.22055 100080; 122.49706 50001; 122.52684 46108; 122.58768 1376800; 122.7737 49891; 122.97661 2881203; 123.02474 56775; 123.03194 815439; 123.17367 1681128; 123.19546 59611; 123.19749 9215394; 123.51751 40830; 124.17659 981; 124.31783 366818; 124.43626 19187; 124.72836 19687892; 124.81244 382803; 124.85888 47453; 125.06521 924940; 125.08226 76702; 125.36954 5636843; 125.4915 1493538; 125.5505 60394; 125.58158 5265; 125.73234 40920; 125.86624 889605; 125.96457 5009; 126.12849 11395; 126.60731 54825; 126.65195 4213543; 126.71313 17180; 127.01196 8057; 127.1042 1510; 127.26095 64617; 127.57975 121898; 127.93284 3310; 127.97404 7266814; 128.00237 9470354; 128.05125 297797; 128.07138 988448; 128.15396 52222; 128.26621 1558256; 128.40158 999723; 128.88773 45542; 129.20589 3344; 129.53806 25341; 129.86494 4073328; 129.91106 1187146; 130.13421 26951165; 130.28866 2206284; 130.29144 36107; 130.47247 980077; 130.48381 29548500; 130.88936 63388; 131.28307 27682; 131.35718 13078; 131.64634 1767; 131.65671 103431; 131.78722 9665116; 131.84236 6190; 132.02974 48586; 132.15288 1485289; 132.37732 8524; 132.55126 20963; 133.44462 3659145; 133.46562 821792; 133.58662 30313; 133.62728 2679; 133.91195 24473; 133.92767 51739; 133.94777 1127332; 133.96358 57801; 134.05706 172944; 134.10143 9877; 134.13748 350105; 134.26902 4555884; 134.63041 1487230; 134.83391 760410; 135.02079 1993; 135.26346 47834; 135.41265 27014; 135.50977 46058; 135.58907 16332590; 135.74523 52742; 135.91077 1265961; 135.99304 29916; 136.60649 863301; 137.06312 977916; 137.45731 17706; 137.46874 55252; 137.79153 7231; 138.20029 2359389; 138.34919 6840318; 138.40299 54116; 138.43852 688870; 138.4462 43229; 138.69261 69360; 138.81173 1960859; 138.90966 30311; 139.38179 9814526; 139.53257 19929792; 139.72595 58146; 139.89509 326288; 139.99238 26311; 140.0835 45827; 140.19128 15746; 140.2379 10389402; 140.32192 7666; 140.43687 3247066; 141.05673 16778; 141.65735 76812; 141.86417 1317359; 141.96187 1557282; 142.10613 1752239; 142.39343 35360; 142.48524 128630; 142.60168 1276738; 142.75364 96099; 142.85652 30905; 142.89467 619668; 143.00356 6134991; 143.15637 1360768; 143.17765 58673; 143.38991 16273; 143.49817 42291; 143.81806 26020242; 144.28664 66398; 144.34286 52998; 144.35738 8764; 144.49781 24214; 144.54271 7677858; 144.54699 42147; 144.68251 44897; 144.70471 763666; 145.06379 2206626; 145.43035 48274; 146.45397 457374; 146.49921 115147; 146.57858 131580; 146.62127 8343084; 146.71222 33349; 146.72798 195414; 146.87827 6681; 146.94292 1676799; 147.10612 3821445; 147.3382 52371; 147.65813 43138; 148.39301 3835; 149.088 4805106; 149.12138 53847; 149.31514 5857851; 149.57973 22214; 149.74935 4884; 149.84965 562855; 149.97033 26297; 150.17854 5947; 150.55501 4744629; 150.60245 57784; 151.06097 37064; 151.06345 73940; 151.14405 32597; 151.17181 46836; 151.19138 1263433; 151.62037 1477725; 152.10727 7333; 152.1904 56557; 152.30905 28940; 152.31151 17244; 152.62657 773401; 152.76321 4101619; 152.90595 100274; 152.96291 693; 153.31083 3922984; 153.31094 8873; 153.63566 281; 153.65003 27579215; 153.81985 454189; 153.99429 68999; 154.12757 48501; 154.33505 30486; 154.40389 87573; 154.75189 5824551; 154.93475 3411; 155.05693 71640; 155.20798 19145; 155.26605 10361319; 155.33753 136356; 155.64238 22682; 155.64677 34834; 155.71993 3782; 155.77812 35046; 155.90959 25836; 156.4535 14743; 156.493 19460611; 156.58779 192956; 157.09643 1121360; 157.19198 2016997; 157.33097 4712840; 157.61814 8432078; 157.62862 92919; 157.73488 6396; 157.80907 8059; 157.98029 583460; 158.12235 844948; 158.2251 74928; 158.53798 45888; 159.02169 52765; 159.05046 36200; 159.20978 42462; 159.49126 20739; 159.62457 3031053; 159.93202 36783; 159.95333 1263683; 159.96801 7305099; 160.11224 2985793; 160.15527 27636; 160.54085 13849; 160.8892 8514251; 161.04568 27597; 161.10899 21248; 161.27548 1347704; 161.27857 34228; 161.30961 11293358; 161.39075 17736; 162.21966 60172; 162.44623 526149; 162.5117 573979; 163.08672 49627; 163.32558 6229; 163.33117 229019; 163.49912 2613333; 164.46638 3228169; 164.59233 90892; 164.59503 431988; 164.7022 15096; 164.7238 1392650; 165.30088 1093; 165.34874 77362; 165.43852 456621; 165.50981 26273; 165.62137 1219342; 165.99395 68659; 166.06277 4418658; 166.87557 1217; 166.94047 487634; 166.94459 56125; 167.03846 29417; 167.37864 2912492; 167.69672 9306; 167.7963 20224223; 167.86388 4764618; 168.07209 28752; 168.12994 23982; 168.19665 39750; 168.20548 1844819; 168.29566 1265919; 168.31644 27599; 168.34193 21175309; 168.43313 9722; 168.70881 2886673; 168.75303 8423; 168.77396 111; 169.08551 82971; 169.32989 2157; 169.6139 2683966; 170.9344 46349; 171.07858 48213; 171.38795 22301; 171.56035 241; 171.96481 68447; 172.1834 41116; 172.37937 2570859; 172.44793 59532; 172.77746 9662200; 172.79593 8288; 173.09512 847924; 173.16758 41687; 173.18486 22693; 173.19511 8191; 173.38249 231147; 173.55195 5017; 174.05312 1372665; 174.07294 101284; 174.10876 647388; 174.48372 1187629; 174.55748 1644324; 174.78999 3502; 175.04899 8295067; 175.04916 608282; 175.16951 8643; 175.27479 22281; 175.28603 89900; 175.57681 2122684; 175.67704 453506; 175.87816 21403; 176.2375 4178150; 176.3455 76083; 176.97231 23445; 176.97982 55861; 176.99863 2464; 177.1312 287; 177.21974 1978; 177.22485 1808076; 177.31265 438; 177.40584 747115; 177.69795 8359551; 178.06958 45877; 178.69464 3314045; 178.83242 6298; 178.83889 78064; 178.87621 15101; 179.41192 62949; 179.50546 4816290; 179.54644 1623731; 179.58716 62363; 179.64974 175759; 179.841 8355; 180.23605 3751; 180.41345 4039135; 180.51428 1289064; 180.66679 4710716; 180.78318 3907; 180.86703 74763; 180.8684 195835; 181.28392 1382781; 181.32492 73875; 181.39074 67604; 182.07547 933872; 182.14624 1331920; 182.21957 2030; 182.34477 8829; 182.72864 3275125; 182.75532 9554; 183.10444 12285164; 183.13526 70524; 183.1757 156821; 183.33175 4545216; 183.34313 5802; 183.5847 1849185; 183.61795 67476; 183.6295 59577; 183.67541 41662; 183.87774 4607; 184.04658 69213; 184.06215 24093067; 184.32953 56706; 184.35604 137535; 184.36988 30926; 184.41488 97120; 184.42885 25897; 184.4722 4231136; 184.60575 78349; 184.9527 1265449; 185.17114 1895599; 185.23405 1462415; 185.28401 71302; 185.59376 27882; 185.6092 21484; 185.62305 83378; 185.73392 41168; 185.9475 49372; 186.28151 1462362; 186.38961 28501; 186.97544 152198; 187.19035 52852; 187.27127 104249; 187.60993 57897; 188.07803 24340; 188.21727 226153; 188.37758 6396970; 188.68023 8902210; 188.84186 38130; 188.89765 195862; 189.18085 59695; 189.22049 4980909; 189.62689 349; 189.98661 4918; 190.32137 717914; 190.44692 25240; 191.02239 77539; 191.16168 76750; 191.45346 83152; 191.46524 28892; 191.51214 115494; 191.59755 4763; 191.63161 4733713; 191.96151 2820734; 192.01069 120319; 192.10598 73450; 192.14993 1960457; 192.2856 163165; 192.64504 6112; 192.72133 887719; 192.73207 40129; 193.01088 77580; 193.08485 3976; 193.73099 2756; 193.81852 7058833; 193.9101 23780003; 193.96514 25909; 194.23623 3407532; 194.26531 75661; 194.70199 7116064; 194.76887 29178; 194.88661 22498003; 194.98696 11759011; 195.25401 1139; 195.32021 4544328; 195.49442 30344; 195.90969 26642; 195.92999 2069; 196.07457 58516; 196.19758 49303; 196.35634 1560; 196.42157 5446477; 196.42642 28737; 196.53464 61091; 196.65563 64092; 196.71552 11860; 196.78267 9429356; 197.03127 154363; 197.19988 14784; 197.25034 766831; 197.27555 3857; 197.48375 56336; 197.81716 999933; 198.06326 64286; 198.22393 457184; 198.25833 9857368; 198.47791 2746283; 198.66063 5415037; 198.97283 1598480; 199.21778 26655468; 199.42834 137581; 199.52779 18025831; 199.5457 1128420; 199.59749 15066668; 199.78034 6107; 199.78313 5625; 200.26996 2303647; 200.28478 17512799; 200.31309 69037; 200.56176 30783; 200.59549 1961316; 200.78851 580184; 201.2112 1492755; 201.38416 4282314; 201.39356 301137; 201.71389 5953; 201.82201 194684; 201.97167 1613687; 201.97391 22654; 202.32652 5839385; 202.66324 12678; 202.70835 16347953; 203.09362 39160; 203.26538 3512485; 203.49265 29353; 203.85554 12754645; 204.16689 107774; 204.22338 18586; 204.28724 394130; 204.54763 7532255; 204.61861 7189; 204.67079 5773; 204.71903 5395; 204.86863 8693; 205.15309 2886900; 205.18761 17809673; 205.63145 37591; 205.85164 11736; 205.86528 1947925; 206.14709 58136; 206.25883 19313; 206.42454 23734; 206.6523 10675; 206.70239 158828; 206.70712 47704; 206.95653 21780; 207.0072 600685; 207.9668 2111506; 208.4379 1022; 208.47755 73017; 208.56386 38230; 208.57367 50776; 208.63947 7551192; 208.74876 6803; 208.95561 65772; 209.00768 13801; 209.01897 1161981; 209.23532 78089; 209.4164 9204; 209.46022 5031952; 209.5535 47733; 209.6324 2081958; 209.90864 3141782; 209.91346 32288; 209.9357 762275; 210.29106 1623547; 210.34561 6550775; 210.48782 77922; 210.75791 1954593; 210.77633 1106690; 211.55926 897972; 211.564 9376; 211.59912 26721; 211.64534 95664; 211.70662 971338; 211.74083 64552; 211.80585 31686; 212.03009 75624; 212.07294 131378; 212.28633 7462; 212.91908 899841; 213.29333 7248; 213.71226 5468; 213.91889 5458; 213.949 2115538; 214.85044 42458; 215.93739 6843335; 215.95861 58908; 216.07638 2231279; 216.18737 4619; 216.26595 7495252; 216.3315 10849695; 216.4904 1831399; 216.58003 5106520; 216.64072 20934; 216.71677 120172; 216.80152 47384; 216.88136 39814; 217.1301 42103; 217.56538 5111; 217.67308 4324569; 217.84137 107116; 218.01604 1464544; 218.2816 4554906; 218.3123 459997; 218.48528 191879; 218.63493 3468801; 218.83886 5839286; 218.93418 2814229; 219.02639 194259; 219.13083 52737; 219.16759 3247; 219.27032 727150; 219.49962 41078; 219.52267 18362; 219.60191 6169; 219.65088 21785; 219.69423 20955; 219.83591 3015382; 220.04938 74583; 220.18311 854828; 220.36382 689477; 220.78863 4372938; 220.92228 60308; 221.00251 8653060; 221.07817 20066; 221.22566 90721; 221.31473 521513; 221.52552 1438121; 221.9788 9336; 222.09931 178502; 222.20853 519581; 222.27763 1546639; 222.29322 9687479; 222.30373 24823; 222.63924 72740; 222.79191 22163; 222.82885 995714; 222.86139 2105; 223.92425 5875; 223.94182 11453227; 223.96913 2718765; 224.23448 78518; 224.33147 9713; 224.35274 71065; 224.37614 19750; 224.417 72442; 224.51647 2419; 224.5808 26947; 224.60847 160920; 225.03338 77851; 225.09647 9568; 225.28429 1146274; 225.42473 1979692; 225.48173 13017; 225.56875 16285; 225.92077 3165; 225.98104 25427; 226.60728 51920; 226.97434 8873312; 227.05546 73330; 227.26334 28798; 227.5607 3503; 227.71004 75054; 227.85836 5269; 228.05079 10521; 228.20885 5413; 228.26182 1632; 229.16877 17180; 229.17946 23840; 229.2374 136475; 229.37128 50077; 229.45581 29465973; 229.50143 190513; 229.69243 26793; 229.70577 460486; 229.9176 39548; 230.01359 1486157; 230.11137 10934280; 230.37753 11011; 230.67043 1960938; 230.67136 32140; 231.37727 2148716; 231.60494 63796; 231.61344 364975; 231.61781 23386; 231.72366 515724; 232.3791 50853; 232.61013 127926; 232.65993 111604; 232.75958 1282; 233.02049 43019; 233.28031 1757822; 233.34924 4878876; 233.36178 26667; 233.80681 180063; 233.81736 43975; 233.83184 183465; 234.24728 34298; 234.35952 19882; 234.40746 1957408; 234.55562 59008; 234.57822 41097; 234.62944 42947; 234.89113 125633; 234.9224 55428; 235.11339 5958; 235.62531 1730963; 235.66677 2909190; 235.72657 77427; 235.74629 6072; 235.83458 24995; 235.90626 77035; 235.90716 163598; 235.92235 76726; 235.98196 24472; 235.98664 64942; 236.03139 35243; 236.54222 175898; 236.93382 46807; 237.03876 584690; 237.5405 1324536; 237.76502 12094; 237.91798 115952; 238.00631 3506106; 238.07374 1208716; 238.22166 13134898; 238.37989 1164441; 238.91446 148736; 238.98886 58904; 238.99524 11299082; 239.23419 58869; 239.55625 9879969; 239.55987 2600129; 239.77903 60106; 239.95234 653; 240.32864 5940; 240.36648 9998263; 240.48213 4788; 240.6022 23473; 240.6132 7541; 240.65857 61891; 240.78901 3592388; 240.80369 1738177; 241.05064 3850; 241.05577 15955; 241.0993 30716; 241.60306 1940285; 241.63832 49085; 241.64784 2663599; 241.72641 1682869; 241.84562 2139672; 241.91079 1694614; 242.14195 474103; 242.14774 51006; 242.27378 1594989; 242.35136 27506; 242.57868 35183; 242.75263 1962571; 243.21041 1332140; 243.22538 4794520; 243.27165 15849; 243.28953 51541; 243.54256 49703; 243.81467 29802; 243.84608 14701; 244.11564 26358; 244.25642 31139; 244.32746 1447375; 244.36862 6031; 244.37221 7809; 244.60865 28221; 244.64128 61204; 244.6668 1503; 245.10682 41049; 245.20039 83627; 246.01398 66085; 246.20929 70531; 247.04824 38950; 247.50263 4354413; 247.69162 1333964; 247.92633 50097; 247.94364 1994; 248.20975 71640; 248.55269 29567; 248.74864 356671; 248.79446 50166; 248.79603 1205866; 248.87318 429830; 248.95879 158287; 248.99102 4436298; 249.14295 7425; 249.49977 2925; 249.90703 646758; 249.94734 704210; 250.07705 17895; 250.81922 1939; 251.2998 691; 251.64559 6022674; 252.45193 72017; 252.86339 28499; 252.9443 74886; 253.3074 32633; 254.00865 8608; 254.02738 22134; 254.6824 325743; 255.15425 827673; 255.32903 78466; 255.92144 19476712; 255.96691 1804618; 256.00778 3984219; 256.21736 1927205; 256.24149 95837; 256.49452 9382802; 256.54395 230021; 256.58543 62493; 256.6115 1285797; 256.61775 3940641; 257.12469 1805475; 257.13713 67416; 257.67889 1870964; 258.02185 52188; 258.12794 3679; 258.13515 35899; 258.17454 8042290; 258.18593 35744; 258.30304 1048; 258.68066 3400436; 258.77326 110408; 258.78776 101862; 259.49837 3193; 259.78951 23924; 260.00432 63297; 260.04982 1661125; 260.11326 46271; 260.154 1153502; 260.47064 1214402; 260.64332 6065; 260.64776 6896; 261.17765 42327; 261.19916 3677773; 261.52935 46708; 261.55116 7707; 261.8274 185221; 261.83669 9340; 261.95146 18963; 262.02008 1951489; 262.55387 1953217; 262.66465 2621; 262.80339 8349; 262.94976 1693; 263.08567 4306151; 263.16484 73162; 263.16718 6816; 263.25938 1369720; 263.3701 4765071; 263.46916 18235; 263.52176 233336; 264.45657 1454079; 264.48139 1065; 264.50958 3555091; 264.60651 45155; 264.80627 7110; 265.09607 29952; 266.23499 7263217; 266.30292 1121058; 266.67073 31202; 266.79746 20624; 267.17573 44239; 267.18149 75236; 267.31429 3275; 267.53526 901882; 267.74547 3306705; 267.95807 37091; 268.06048 146571; 268.26761 26534; 268.29338 1216; 268.56257 199401; 268.58882 9622754; 268.92789 7876; 269.14196 46800; 269.2904 77564; 270.0358 939425; 270.47648 1121099; 270.62869 13082873; 270.64604 2870965; 270.70148 21782; 270.88519 2242689; 270.90128 21257706; 271.1826 9252451; 271.35214 133117; 271.74874 21916976; 271.76519 2358; 271.77334 12632; 271.9387 387954; 272.02914 22679; 272.63112 2715; 272.81719 28122; 272.95015 885656; 273.16252 29229; 273.23318 2047; 273.32739 1554621; 273.35616 33570; 273.41967 27998; 273.57199 22187; 273.80154 2689962; 274.50768 149688; 274.69995 534235; 274.70679 2214839; 274.74826 9973233; 274.94156 8004503; 275.52986 1403875; 275.78792 5754; 276.00189 26789; 276.11967 8701; 276.25101 52130; 276.68346 1340359; 276.86038 1357188; 277.2604 592094; 277.26082 63922; 277.4358 371118; 277.62958 67668; 277.8924 1294206; 278.06951 567026; 278.19937 414827; 278.63362 24257; 279.16029 148647; 279.33279 71169; 279.57629 66907; 279.71638 24201; 280.37424 1784733; 280.49933 6707; 280.5618 1871187; 280.74249 1291636; 280.78095 1460634; 280.99166 43595; 281.06285 5180; 281.25461 75755; 281.53115 14720; 281.68548 38817; 281.75561 1674456; 281.92306 44128; 282.26556 103504; 282.26844 8714814; 282.26993 63252; 282.37615 22982; 282.43451 41385; 282.51576 1744722; 282.88417 17276736; 283.2209 4822786; 283.40801 1621541; 283.48292 15520; 283.64132 27542; 283.70348 1207016; 283.80949 8317798; 283.94734 2705509; 284.1016 68636; 284.11233 298533; 284.16131 6185587; 284.21496 71896; 284.57085 826037; 284.60903 1459290; 284.67875 99340; 284.82365 90059; 284.92813 39577; 284.97363 20886; 284.99025 56788; 285.0832 1228213; 285.10664 28154; 285.30696 907214; 285.47568 1326886; 285.67467 57089; 285.90499 177256; 286.2242 2689; 286.29656 161236; 286.50679 16875; 286.51352 26702; 286.67008 29661; 286.69618 15776; 286.98137 75796; 287.00388 1348240; 287.12908 5908757; 287.45838 653071; 288.04051 4520; 288.33999 9522; 288.70947 4869561; 288.76461 7324; 289.27578 23612; 289.626 183377; 289.65432 6622; 289.69712 74015; 290.0935 26805; 290.37395 77125; 290.70271 13867; 290.80946 82; 291.08761 3003940; 291.09256 4596984; 291.16179 1688639; 291.20535 1619; 291.29885 159590; 291.36421 50941; 291.55253 25811; 291.59034 4544112; 291.62877 9020; 291.68552 41004; 291.83409 46808; 292.02768 37129; 292.03471 34211; 292.09919 37310; 292.75691 1691188; 292.76529 35798; 292.7957 103780; 293.18644 18756; 293.43603 24447492; 293.67382 9600575; 293.92697 10988619; 294.13494 134643; 294.1858 1144069; 294.68079 5842541; 294.99563 9583; 295.18706 4555334; 295.23489 661797; 295.25553 21523836; 295.60352 5135; 295.77494 6861; 295.98734 3463443; 296.0339 4121625; 296.04384 8912856; 296.22453 3044830; 296.33896 26997; 296.73288 3096; 296.7952 935727; 297.0821 21339; 297.23534 1525587; 297.29431 5636; 297.65747 184405; 297.67725 9811123; 297.69554 21299; 297.71719 1166; 297.75981 33966; 297.96909 1089502; 298.1312 30863; 298.20464 50611; 298.4997 46118; 298.52228 1928083; 298.90323 133893; 298.90373 1808337; 298.97709 58876; 299.32846 35437; 299.3516 39222; 299.71914 38553; 299.74046 4311235; 299.78148 63299; 299.81854 892898; 299.83456 7355919; 299.85152 7497; 299.91746 19918; 300.1328 68888; 300.22701 7033036; 300.48526 3104946; 300.82512 188006; 300.94909 45428; 301.09076 9689691; 301.12191 271816; 301.22395 63527; 301.37072 8838632; 301.84655 9700; 302.00758 23329; 302.24423 584477; 302.30868 20555; 302.85169 5624; 302.98003 4065905; 302.98483 53211; 303.11912 2678746; 303.3076 4112448; 303.3304 1159977; 303.43312 189212; 303.82601 41613; 303.92155 27398; 304.28689 2401306; 304.36378 40481; 304.52872 8356923; 304.77749 8918; 304.86748 36472; 304.87518 75530; 304.94841 4444291; 305.66227 1550330; 305.94863 11498485; 306.12607 147222; 306.48754 6045; 306.63663 54975; 306.65358 23553360; 306.76489 74654; 306.76693 373387; 307.09599 30962; 307.12666 1203411; 307.15615 5731584; 307.55224 3212; 308.06365 40059; 308.11485 161280; 308.19196 13025; 308.23073 1912393; 308.38578 67110; 308.52338 8081; 308.55326 46469; 308.72247 1672202; 308.86153 6804005; 308.93188 3956; 308.94261 2493; 309.58874 6969541; 309.8274 72445; 309.89449 18322; 310.22471 468658; 310.57227 49333; 310.70919 1195; 310.73933 22893; 310.89246 244; 310.92786 1041784; 311.09897 76378; 311.23693 19403; 311.40195 102069; 311.52845 18707; 311.53802 495; 311.60848 4042057; 311.82263 76312; 311.93583 10221; 312.12651 8035978; 312.42478 17856; 312.4597 1442; 312.4662 143687; 312.77497 28769; 313.03993 2432146; 313.41762 66860; 313.47775 3970; 313.62779 881470; 313.895 28036; 314.00691 9939; 314.04666 170981; 314.06274 67956; 314.76641 1120913; 314.80309 48338; 315.00868 12343; 315.07801 27558; 315.20545 40286; 315.26937 123207; 315.37871 1319486; 315.40452 55404; 315.50267 393; 315.50385 884833; 315.68869 95960; 316.17608 5333727; 316.28055 3258269; 316.2844 2920715; 316.45148 1983487; 316.70352 6288; 316.9453 5495020; 317.13839 2479796; 317.22011 1288038; 317.32403 44392; 317.59873 5051; 317.68646 1385947; 317.70433 79088; 317.80648 2105112; 317.86539 66726; 318.05154 673725; 318.2399 16998; 318.33034 45641; 318.73383 1623807; 318.80107 7472505; 318.80751 31398; 318.92037 20912; 319.0924 21385; 319.10453 5119; 319.19863 960206; 319.28607 3822; 319.29068 2694540; 319.29256 8209422; 319.60535 109587; 319.62712 3324; 319.74055 67921; 320.29685 77727; 320.33984 48992; 320.38212 440; 320.63878 56711; 320.66093 9828440; 321.19596 34969; 321.299 133079; 321.34526 8950984; 321.51495 35322; 321.57372 45994; 321.65633 808542; 321.78093 8229; 322.19956 1866631; 322.26532 53092; 322.37867 887695; 322.58431 1220461; 322.63406 182496; 322.84671 4753; 323.06536 337354; 323.34629 8970531; 323.38292 29193; 323.48029 2588106; 323.94021 107696; 324.12367 29016; 324.35534 450915; 324.65354 4452859; 324.73026 19270; 324.7565 48408; 324.99823 1242590; 325.08417 91614; 325.14627 3927307; 325.29668 81314; 325.53943 28611; 325.72049 3662; 326.0025 22933; 326.12918 176086; 326.26594 55112; 326.28283 3906736; 326.52227 5608; 326.62833 27070; 326.63943 9093; 326.64329 25412; 326.86548 4187726; 327.30499 164717; 327.66913 27178562; 327.7247 2061113; 328.37361 28364; 328.71386 25441; 328.95404 27030; 328.96126 25327; 329.38228 1022816; 329.47741 2883499; 329.52137 8347061; 329.65062 553928; 329.6656 4684525; 329.69384 4314786; 329.72281 9273; 329.73214 32054; 330.23616 613854; 330.40291 85178; 330.54492 38707; 330.63247 8995802; 330.67024 214848; 330.76832 26607; 330.76928 3833378; 331.38887 2029079; 332.03575 9645; 332.23627 77202; 332.36146 1115; 332.70804 1729710; 332.76907 68957; 332.79189 4128; 332.80609 7372; 332.81512 3007283; 333.03984 1857385; 333.28565 2072212; 333.31226 9469056; 333.35596 79802; 333.43154 29497; 333.51227 61516; 333.57751 15846; 333.91141 745021; 334.08931 55521; 334.28712 222093; 334.40264 2668617; 334.67277 37562; 334.81778 29728; 334.85929 191202; 335.87477 45402; 335.98104 23064; 336.07563 38000; 336.17584 78289; 336.37033 17949; 336.42191 6856832; 336.64335 4982; 336.86153 12831; 337.07648 24196; 337.22045 55247; 337.62823 68676; 337.64745 22872; 338.08126 125930; 338.33666 287; 338.34118 33213; 338.6248 78515; 338.62989 108909; 338.65211 24139; 338.9001 8342292; 339.01594 3888537; 339.0679 1918845; 339.25319 170825; 339.36361 2562; 339.58259 8055780; 339.71803 1427185; 339.73399 98318; 339.78977 74945; 339.85561 4933828; 339.88265 6762614; 339.98435 7840; 340.18933 6473; 340.24241 6152; 340.27111 78864; 340.50599 1120445; 341.66223 769474; 341.76886 73100; 341.97552 34466; 342.05697 157559; 342.18495 8326914; 342.55862 1675266; 342.61771 64788; 342.75988 1978141; 342.98793 19023; 343.14448 46539; 343.33702 5243; 343.64863 96437; 343.70513 33819; 343.71789 2537961; 343.7853 6456158; 344.05042 381633; 344.19854 8132; 344.21869 4803; 344.45379 1302807; 345.00287 4303549; 345.54432 27637; 346.02016 107317; 346.04916 29591501; 346.08006 22683000; 346.09087 3198997; 346.16509 922740; 346.30013 3012182; 346.86477 1351797; 346.898 47689; 347.14479 1142340; 347.17419 4866; 347.34579 138930; 347.6425 7932; 347.807 169323; 347.95373 7845299; 347.99522 424982; 348.07894 505994; 348.0845 2185901; 348.47522 5825; 348.63343 40902; 348.81278 1763578; 348.96348 523696; 348.96855 91331; 349.04483 36389; 349.07773 13812; 349.10489 3099; 349.14977 78160; 349.57532 13235; 349.57701 4872000; 349.61268 64733; 349.63271 35752; 349.82392 9805; 349.82501 137512; 350.01858 5590991; 350.2212 56898; 350.60229 20337; 350.66263 4081073; 350.68562 12968; 350.88344 65349; 350.92842 2898029; 351.90082 41584; 351.91372 36310; 352.04863 184575; 352.10789 11222; 352.20859 26731; 352.25044 206226; 352.55574 909001; 352.60588 431113; 352.64543 805424; 352.68674 12337; 353.00102 36678; 353.18526 47362; 353.37072 13107; 353.42898 48143; 353.50059 1250764; 353.6917 47763; 353.9991 2182142; 354.42598 46634; 354.76445 6605363; 354.76714 5590962; 354.87691 26989; 354.90853 5595797; 355.00105 252293; 355.10493 116513; 355.58832 85923; 356.03439 31283; 356.10115 8883835; 356.16673 77867; 356.24462 29491; 356.26109 33566; 356.52723 11608; 356.66538 8284; 356.66803 28200; 357.12673 6226023; 357.22717 41871; 357.46102 1479876; 357.64295 1164081; 357.64952 45750; 357.74242 68590; 357.92518 112122; 358.45198 1385206; 358.49178 810; 358.65971 161533; 358.76575 63310; 358.81541 18153; 358.83134 5235; 358.88882 3343574; 359.14627 4202247; 359.61969 50412; 359.63015 28449; 360.30594 72931; 360.38011 881938; 360.44782 40090; 360.56368 27787606; 360.57645 438468; 360.62555 26958; 360.75445 1757865; 361.08923 26689694; 361.46583 3951; 361.67845 4452; 361.89847 1219514; 362.08809 43180; 362.17651 1357151; 362.51493 2700; 362.70025 7696; 362.78648 10985833; 362.98488 868082; 363.48228 7928891; 363.56159 75777; 363.89546 4213; 363.98593 9186288; 364.41993 877914; 364.52189 569877; 364.58436 28890; 364.68532 59642; 364.79644 4415851; 364.79812 429926; 364.8175 68576; 364.85139 749506; 364.89785 5168544; 364.97227 42976; 365.25161 121450; 365.35524 35464; 365.7574 24833682; 365.94909 167407; 365.95144 22002; 366.05742 637780; 366.17736 62208; 366.31667 4660871; 366.3616 48703; 366.44195 36990; 366.44715 67474; 366.52786 869452; 366.72673 79365; 366.83758 1312548; 367.18592 28528; 367.2428 26057397; 367.37889 27575; 368.0853 2491; 368.42435 1314464; 368.5502 6651027; 368.69616 75113; 368.69719 1806444; 368.76105 41246; 368.95694 2029; 369.04491 2949; 369.24113 860; 369.28773 1884; 369.53988 6052971; 369.54122 57432; 369.78837 40491; 370.06829 38355; 370.33427 46590; 370.56235 1558061; 370.60539 39634; 370.70262 24389641; 370.746 18483; 370.82468 13092; 370.97872 1694424; 371.18222 68585; 371.2407 9178; 371.27976 9134; 371.38369 769; 371.45686 74351; 371.62098 3929; 371.62764 902861; 371.66259 11538; 371.82692 5062; 372.0026 228492; 372.20403 182949; 372.4502 102216; 372.631 20040650; 372.71576 3686260; 372.81905 3699035; 372.85123 3209907; 373.05384 1091170; 373.46177 175074; 373.57944 42063; 373.70567 63343; 373.72903 851; 373.84706 35772; 373.89128 5325375; 373.9044 1547809; 374.0513 6608; 374.27824 150395; 374.38152 74643; 374.53044 66769; 374.63314 1110638; 374.83488 16653; 374.8759 44046; 375.0518 2537543; 375.28797 1967; 375.42909 10843; 375.44795 1546532; 375.50194 26368; 375.52924 5997675; 375.68711 274241; 376.08949 3792516; 376.09149 3984953; 376.12593 7075; 376.15177 20234; 376.19367 622193; 376.38962 61774; 376.47162 8622; 376.81286 28883; 376.97098 4396; 377.32798 15240; 377.35158 55710; 377.65197 810922; 377.85946 1433135; 377.88738 9246; 378.02734 753521; 378.26982 21718; 378.34674 40256; 378.54067 578790; 378.72301 20403; 379.18309 14144951; 379.24301 6394; 379.26044 25276; 379.27967 15782; 379.46845 8973; 379.7129 67786; 379.77981 20499; 379.84663 34946; 379.90844 486274; 380.06175 753514; 380.20973 56894; 380.20989 1650689; 380.21244 88732; 380.2264 6973875; 380.32283 39062; 380.74892 39311; 380.7611 5330; 381.092 8438604; 381.63222 76527; 381.63542 267; 381.82573 33652; 382.07444 6798; 382.10172 7353708; 382.61133 14550967; 382.65567 9775; 382.79314 3052; 382.84906 7660; 383.03804 6010024; 383.10782 7211620; 383.33096 22924; 383.342 58852; 383.5411 33505; 383.56868 918276; 383.66179 144414; 383.75176 127663; 383.75958 3586504; 384.12585 159947; 384.18863 21591; 384.20491 484440; 384.97031 120576; 384.98283 5221857; 385.04228 190572; 385.10234 1195386; 385.10239 38653; 385.20055 20829; 385.6563 8098; 385.76033 2799144; 386.35335 46635; 386.43996 76837; 386.46356 76496; 386.51142 17568; 386.51679 2503993; 386.71377 38827; 386.7397 47928; 387.10013 736071; 387.63494 117018; 387.79055 157041; 387.93745 27096; 388.02246 924012; 388.28244 2174131; 388.41425 938559; 388.44373 183883; 388.54151 7858; 388.64748 446; 388.83687 1450823; 389.05678 19660; 389.28301 1090411; 389.30093 815594; 389.35409 642403; 389.43921 2322; 389.80549 745775; 390.13404 4705646; 390.27761 14342335; 390.55188 9571; 391.23893 38087; 391.33532 817294; 391.43578 4280201; 391.53968 22948; 391.80112 6083; 392.34388 503398; 392.53835 48832; 392.71338 23743; 392.79207 29055; 392.99834 1856; 393.17748 21865; 393.47419 1630860; 393.64699 2724028; 393.66052 39907; 393.82296 2696260; 393.84533 1876607; 393.85018 1899321; 394.08987 4120128; 394.36469 14346; 394.37757 76631; 394.49167 6149753; 394.63761 18210; 394.80115 4796800; 395.00971 4196087; 395.6237 770650; 395.70792 6570373; 395.73693 13262; 396.02674 18456; 396.051 2593110; 396.12727 233283; 396.14192 30133; 396.21749 71257; 396.36296 52266; 396.37441 53293; 396.60578 9945898; 397.06504 1957410; 397.1687 18165; 397.43743 9956870; 397.58154 416; 398.02677 9097; 398.13178 1883828; 398.76652 4970303; 398.8572 4394419; 399.65292 799041; 399.85425 8200; 399.96193 885440; 399.98184 68412; 400.0775 1063731; 400.11941 25545404; 400.36298 13077; 400.37419 43653; 400.41049 18632373; 400.57715 630945; 400.87292 1450252; 400.94958 940; 401.25519 7235; 401.26309 161344; 401.62092 20539; 401.70272 3451309; 402.38274 30790; 402.48123 566; 402.74899 9666617; 403.02179 5319303; 403.22058 72079; 403.40383 6850; 403.42626 7607; 403.51069 74054; 403.77361 8969; 404.10273 12617626; 404.18819 21333; 404.35729 8197526; 404.39296 1504305; 404.41272 1496497; 404.48437 4828; 404.55885 198553; 405.03409 1058101; 405.38993 16617; 405.61024 826301; 405.69796 45803; 405.81483 62437; 406.13184 4877; 406.13834 1894587; 406.63876 1972293; 406.74041 1824003; 406.89299 4104910; 407.15339 45956; 407.26089 27776; 407.36483 75557; 407.38596 10977; 407.41156 118963; 407.51749 194690; 407.7096 4372; 407.9522 705666; 408.26128 51868; 408.29386 4525710; 408.37478 1729692; 408.37652 1063665; 408.43829 9914758; 408.57983 39822; 408.60812 19795351; 409.14766 1940653; 409.18651 193935; 409.24119 8861948; 409.26063 215510; 409.43511 99246; 409.44144 41807; 409.52222 9908063; 409.59493 3876700; 409.7205 9575332; 410.22357 3344015; 410.61733 18045; 410.6626 42397; 410.93696 5165; 411.04946 64399; 411.08055 599548; 411.12646 3875386; 411.64927 7389206; 411.71298 9188; 411.85838 1451728; 412.16689 8057627; 412.17106 26201; 412.21219 161017; 412.29108 162833; 412.30031 60829; 412.35587 71129; 412.50414 26225; 412.85779 144032; 413.12785 2717312; 413.21473 71466; 413.43746 9659; 413.51784 70932; 413.59818 1660863; 413.79029 1599639; 413.81226 17146144; 413.85029 3376464; 413.90267 16917; 414.07263 41197; 414.35881 20279; 414.50642 4874; 414.72547 3199847; 415.15621 15316; 415.43473 42064; 415.47037 1110974; 415.75222 90153; 415.78559 29794; 416.07155 185152; 416.19784 24952; 416.49626 26644; 416.56062 6801900; 416.64141 47622; 416.81346 6447914; 417.05178 22060; 417.07788 8134; 417.16572 4701629; 417.24838 2057571; 417.31143 10465; 417.5327 65302; 417.93992 193222; 418.09497 1940927; 418.14807 1166; 418.1579 4738; 418.23632 76957; 418.29453 26968; 418.55391 1773972; 418.98587 1962660; 419.51036 59001; 419.58253 41698; 419.76084 2402566; 419.95677 2438; 419.96448 81673; 420.08459 3153471; 420.19452 2913067; 420.35124 5211; 420.3837 296481; 420.48208 4332947; 420.49431 75371; 420.50313 3904; 420.62932 74935; 420.66622 66356; 420.94094 45865; 421.23281 1881893; 421.28326 154191; 421.28711 74290; 421.30205 5248; 421.41003 149126; 421.52572 1566578; 421.53019 1531096; 421.55453 35019; 421.72416 692120; 421.74629 15254156; 421.85361 6428; 421.96719 5097; 422.20855 6371961; 422.43867 1100388; 422.54083 170446; 422.68348 1750033; 422.86385 15418; 422.98419 1538005; 423.01757 29943; 423.52978 8885; 423.63651 767102; 423.71908 73016; 424.46834 7774; 425.165 5316; 425.20065 6254040; 425.72265 747479; 425.74519 17165; 426.04201 7259; 426.05318 3377435; 426.12074 1446615; 426.21064 358088; 426.50287 15852; 426.54664 5558; 426.56247 831618; 426.77191 3672890; 427.06781 37638; 427.27107 1254019; 427.67133 116267; 427.80264 70046; 427.86505 3232; 428.01349 679204; 428.10714 1094156; 428.30458 22332; 428.73048 73591; 429.16541 175946; 429.81364 609458; 429.93741 10467; 429.98482 8267; 430.06506 54331; 430.22679 3018653; 430.3032 70654; 430.59188 41681; 430.92014 36544; 430.99892 76626; 431.12472 8336; 431.58609 75392; 432.03073 1968624; 432.06415 27011952; 432.67237 4625934; 432.88372 30283; 432.89632 5535; 432.9005 33444; 432.91554 674079; 432.98112 204005; 432.98156 51922; 433.17229 529803; 433.41866 1045717; 433.73127 59050; 433.74407 1514748; 433.98915 49798; 434.30997 178980; 434.80505 111185; 434.95317 702514; 434.98635 814362; 435.04107 58278; 435.17471 1648300; 435.59966 91648; 435.83733 155327; 436.11081 75694; 436.30945 269522; 436.43173 68303; 436.47159 9459768; 436.75317 504506; 437.2836 31819; 437.44811 1773288; 437.4698 37496; 437.80937 922387; 437.80958 9623; 437.99202 3673; 438.02446 287526; 438.06132 7409335; 438.43382 97776; 438.44457 6111; 438.47206 1322678; 438.52179 9514701; 438.56765 10764; 438.74794 174844; 438.84478 6316966; 439.00485 20352841; 439.15097 373463; 439.22735 6875; 439.65759 175219; 439.89286 6988; 439.97991 1333741; 440.5608 627060; 440.5821 39099; 441.03603 7572; 441.22565 708522; 441.67385 9198190; 441.89855 23020305; 441.9122 120822; 442.00784 3189513; 442.21795 7973008; 442.52893 1340630; 442.6363 126214; 443.22801 46560; 443.45981 1227061; 443.83426 172925; 443.85401 1250559; 444.24979 3140711; 444.41794 24476; 444.52869 1574378; 444.56009 182650; 444.65392 1436675; 444.95195 63465; 445.11454 6980609; 445.18794 51491; 445.22495 7995; 445.24679 10933; 445.25571 571796; 445.28704 460; 445.30944 6628007; 445.48237 1218930; 446.31439 9766; 446.4547 43814; 446.84797 3682; 446.97204 64111; 447.0458 2001998; 447.14822 794515; 447.29069 51397; 447.32291 1017669; 447.35046 4670; 447.48543 71421; 447.50998 1255198; 447.60942 4422; 447.78248 7378270; 447.91216 5390488; 448.10691 1935071; 448.11246 94972; 448.15055 48283; 448.27683 12090143; 448.3925 1879340; 448.43434 25522; 448.47005 56485; 448.66311 7743; 448.73947 25095; 448.88458 11592; 448.99396 1461002; 449.06852 703371; 449.08959 23141433; 449.38671 1202988; 449.81415 32324; 450.4765 2422; 450.70129 26036; 450.85615 195320; 450.87101 77007; 450.92741 196660; 451.03489 10521; 451.20663 4497; 451.47078 175116; 451.57652 47376; 451.91194 18475; 451.96332 342268; 452.20969 141587; 452.21924 6833882; 452.23507 16188; 453.06894 69907; 453.18769 1085758; 453.20825 2835611; 453.4406 72296; 453.75509 4767; 453.9051 8983338; 453.94194 3562; 454.03029 35399; 454.67781 43937; 455.18314 27309; 455.19504 45443; 455.26057 5821; 455.82114 888695; 456.30812 12909; 456.50038 6229905; 456.71856 2183320; 456.88405 902584; 456.90068 30683; 456.92921 69658; 457.07657 4128; 457.48996 64160; 457.63338 26802; 457.97128 3936; 458.60763 542923; 458.66347 564467; 459.23745 9815509; 459.80083 1656036; 459.83555 6032637; 459.91701 43563; 460.07121 55866; 460.6832 26983; 460.77496 57630; 461.03557 21128; 461.04398 1188054; 461.16409 63135; 461.18014 41465; 461.22591 28153; 461.31962 1915386; 461.40034 23296; 461.54099 4850266; 461.56136 529113; 462.08085 24748; 462.10102 928209; 462.19093 21834; 462.46771 398347; 462.49583 3414882; 462.58112 44707; 462.8286 29926446; 462.92894 75520; 463.01801 1140140; 463.06274 78080; 463.27715 4551; 463.32063 79611; 463.95818 78661; 464.11175 8565549; 464.29474 180850; 464.34568 1240740; 464.37702 172693; 464.56963 25890; 464.57299 58372; 464.70153 3567; 464.88467 64709; 465.08879 2662; 465.23969 20604; 465.29638 2754; 465.49976 10757292; 465.83745 9483239; 466.50357 64911; 466.82519 26483; 467.08254 807547; 467.24756 76258; 467.33056 4289; 467.38645 1181538; 467.46277 4063659; 467.5333 63264; 467.54095 1813601; 467.59527 58749; 468.17541 2354911; 468.4709 4939724; 468.5183 47577; 468.58547 61676; 468.70775 16997; 468.73237 586750; 468.73485 16017; 468.97825 154220; 468.99236 1949108; 468.9986 1426189; 469.16212 72291; 469.22471 6037281; 469.2494 141419; 469.29135 7031674; 469.59968 9644589; 469.7477 1071574; 469.74867 65445; 469.75528 30576; 470.03493 161718; 470.13406 2103030; 470.54822 9453682; 470.6481 1109403; 470.69464 28515; 471.00082 472; 471.3363 67214; 471.51161 33228; 471.52325 1464440; 471.68728 45007; 471.72751 8378; 472.42085 3156881; 472.75404 9686; 472.7581 4155982; 472.89968 1179; 472.9733 78160; 473.09692 696506; 473.12131 421; 473.12587 4899; 473.1336 4863; 473.29404 23564; 473.34494 1638560; 473.79768 2859349; 473.94574 18345; 474.36981 9730489; 474.58961 539979; 474.67857 53930; 474.71012 2306; 474.75469 1448806; 475.09577 162929; 475.14666 164308; 475.16202 5329772; 475.27184 1874397; 475.29911 2554918; 475.42912 29735; 475.69235 1360; 475.77937 4360177; 475.86542 13675450; 476.20228 8864365; 476.30739 18020; 476.40717 13116; 476.8977 28159427; 477.05498 9654634; 477.71288 2083; 477.84036 24492; 477.87888 2608735; 477.96327 1105606; 477.98388 1682871; 478.17514 471775; 478.30021 170106; 478.37971 15068; 478.39371 29510; 478.4839 71986; 478.8373 5892482; 478.83884 32062; 478.83986 22168; 479.01841 8360; 479.11804 2084987; 479.25795 31895; 479.27289 447633; 479.43887 1495461; 479.56159 31313; 479.56843 7063695; 479.63589 20349; 479.99585 6587440; 480.00297 8857; 480.07989 27380; 480.39107 916571; 480.64801 540007; 480.75384 1543; 481.0283 151240; 481.29214 46531; 481.47745 20068; 481.54498 2559191; 481.60046 165213; 481.61394 45473; 481.63313 21754; 481.99742 25130; 481.99908 3842244; 482.34077 25228; 482.42984 53744; 482.43596 73781; 482.44795 6519880; 482.59834 21846; 482.81777 53986; 483.16517 2180662; 483.45461 5341491; 483.53824 5845; 483.55066 555871; 483.68065 776621; 484.08741 7700979; 484.10562 74591; 484.11894 589776; 484.16263 25555801; 484.16419 2094421; 484.24694 175471; 484.33449 59306; 484.41079 23826; 484.41773 9986633; 484.75925 52490; 484.82154 2334507; 485.12219 28308; 485.43023 7922; 485.76259 23442; 485.84913 1794532; 485.89903 19644; 486.04177 1905; 486.93821 47797; 486.94286 3672; 486.99697 5025; 487.01293 21020; 487.1051 29031; 487.7293 822283; 487.759 79467; 487.9009 54172; 488.04438 10517; 488.09956 37733; 488.48049 62337; 488.62793 63895; 488.82357 76829; 489.35784 1869724; 489.88204 1992022; 489.91448 4804770; 490.22153 136432; 490.39802 1962891; 490.41465 6523; 490.54611 17502; 490.75588 5078; 490.93286 8923137; 491.04001 443283; 491.45536 50499; 491.49192 59059; 491.58358 58327; 491.68134 1872926; 492.03637 60305; 492.18415 2480387; 492.37717 26675; 492.55163 1042583; 492.62105 26628077; 492.62344 28346524; 492.67205 4818158; 492.68212 5372; 492.85225 78365; 492.87286 121956; 492.94581 61333; 493.01303 1607178; 493.15035 1828; 493.47336 56299; 493.58429 6545793; 493.97534 15874; 494.06381 2812402; 494.23844 181909; 494.38805 74961; 494.39385 2473264; 495.07155 503386; 495.11759 2821260; 495.47763 60973; 495.60957 103919; 495.91928 59004; 495.99116 4134521; 496.01242 2507; 496.80133 1445114; 496.91885 58188; 497.1067 629364; 497.2759 497652; 497.32561 4285920; 497.45086 3725717; 497.7912 1816242; 498.00302 6653; 498.19769 196654; 498.22873 22924; 498.27959 61549; 498.7908 14435; 498.90213 27716; 498.937 4528; 499.11488 52732; 499.31487 66511; 499.64834 9883395 +<2, 7>: 0.06201 28280; 0.59877 78657; 0.69829 51916; 1.07524 132201; 1.15062 49126; 1.53157 77688; 1.53898 773518; 1.82507 8344; 2.04947 97524; 2.14545 4846092; 2.18998 74256; 2.527 2407450; 2.53972 30145; 2.64013 3681049; 2.89318 6043049; 2.90456 27626; 3.01994 24358; 3.1896 9762999; 3.43291 9185317; 4.05127 19762; 4.0597 79791; 4.586 46814; 4.61633 787944; 4.92399 52233; 5.04889 195713; 5.06421 3948123; 5.22181 13917; 5.30762 141424; 5.39984 86780; 5.41629 1326697; 5.56641 3146337; 5.96927 32611; 6.03085 24210; 6.27882 156441; 6.29706 63031; 6.36314 77602; 6.56383 2119818; 7.22531 38510; 7.40718 35448; 7.54919 64750; 7.81562 9374698; 7.8308 7258128; 8.0125 4683; 8.16678 5646471; 8.18911 7939916; 8.23464 1014227; 8.36143 9183293; 8.44586 3661; 8.45646 781718; 8.49437 1088992; 8.599 1591643; 8.70109 3384788; 9.0149 34562; 9.38653 4447; 9.46553 2792498; 9.68214 4786; 9.75843 8571627; 9.80316 162621; 9.88264 35474; 9.96766 6735436; 10.08978 79440; 10.21884 3899; 10.58217 29722; 10.58366 52364; 10.67327 744118; 10.78956 29141; 10.87727 53574; 10.92136 24972; 10.94334 22825; 11.00961 77033; 11.07518 2425113; 11.09832 42255; 11.15332 1127999; 11.23989 950163; 11.35254 7198525; 11.39336 28760; 11.40443 4234309; 11.42338 1675551; 11.4971 13840138; 11.57957 9224044; 11.70095 1704602; 11.73962 179575; 12.39615 20422; 12.87867 1111983; 13.04704 381322; 13.19415 25456; 13.23409 188462; 13.29336 19219853; 13.47784 8180; 13.63232 1480389; 13.68424 1570; 13.8916 6755009; 14.01247 3471377; 14.05012 1907229; 14.10495 1531258; 14.12554 1294159; 14.25366 32290; 14.53598 38840; 15.1909 75147; 15.4246 27795; 15.53147 831335; 15.66062 98676; 15.90674 4373686; 16.05672 8474; 16.22201 956674; 16.23206 1914775; 16.50514 8840575; 16.89636 14879; 17.02921 197104; 17.09769 1983892; 17.13436 45137; 17.30852 674610; 17.32786 38563; 17.36461 8324; 17.46632 3691; 17.77002 1479694; 17.86277 1116; 18.2637 47368; 18.28487 2103; 18.41139 9305263; 18.612 1048374; 18.88184 21365; 19.02 29065; 19.16032 1533; 19.37355 351655; 19.48921 4152271; 19.73709 997386; 19.75007 1707452; 19.97672 1321497; 20.02107 115254; 20.03856 1139699; 20.13345 40808; 20.22074 27349; 20.305 105037; 20.35394 64660; 20.44753 21899; 20.52946 6147775; 20.76674 12720184; 21.06013 2978; 21.16812 8884; 21.22904 73729; 21.24383 20110; 21.4719 1046851; 21.47501 21397; 21.93789 1597474; 21.94444 1946610; 22.29587 6732; 22.35715 5318437; 22.53601 105624; 23.01726 28742; 23.02787 5897072; 23.06529 16281949; 23.09421 20225; 23.11617 26000; 23.42071 1136; 23.44551 907061; 23.56229 5510033; 23.64506 76179; 24.05954 337145; 24.26472 72010; 24.49578 7545535; 25.084 9513; 25.45522 21799; 25.54307 2462703; 25.82396 71703; 26.04151 73467; 26.18757 5073665; 26.67543 9486; 26.85195 15007; 27.37301 44661; 27.53758 1412380; 27.61151 860108; 27.65689 127661; 27.8036 13560; 28.04871 17826; 28.05116 1456299; 28.78795 10765; 28.99574 9320717; 29.03758 1924589; 29.14168 185013; 29.26447 8749290; 29.56776 321451; 29.61697 7745285; 29.6437 13521; 29.86807 324483; 29.9578 20611; 30.12397 666062; 30.21682 69846; 30.23716 1051613; 30.27371 2281590; 30.36375 8513882; 30.45606 713551; 30.48027 28165738; 30.55393 213487; 30.75553 6214869; 30.80173 371354; 30.9066 276753; 31.00062 6814288; 31.47624 22625; 31.70187 17614113; 31.88115 3774776; 32.18145 883241; 32.31362 24523; 32.32566 42853; 32.41973 9884; 32.70209 68311; 32.77294 2819; 32.84007 91010; 32.8475 22026; 32.87174 22883; 32.94284 712623; 33.14954 41982; 33.3608 6413006; 33.95178 55824; 34.17484 6376; 34.2488 47315; 34.29664 931598; 34.35641 29476; 34.41291 1135257; 34.47019 25891; 34.51433 6630183; 34.54818 28455; 34.82264 1115241; 34.8816 8849451; 34.90576 1802; 35.03723 4644110; 35.13466 9659595; 35.24666 18493; 35.59132 4437; 36.09108 43877; 36.32251 65768; 37.22779 1698108; 37.32614 118877; 37.38434 43529; 37.55274 1337799; 37.61125 2017674; 37.86399 8524101; 38.14062 50921; 38.21488 71177; 38.27545 2005329; 38.39937 300586; 38.52078 149560; 38.53407 5886628; 38.56281 60211; 38.56492 4953340; 38.60118 2366633; 38.70882 2309995; 38.72883 73999; 38.86914 44647; 38.96894 83496; 38.99728 7683; 39.10581 4672; 39.5758 45118; 39.7178 930115; 39.81359 31638; 39.92663 1195393; 39.94773 7115; 40.02067 70410; 40.08838 46620; 40.20141 30071; 40.25487 39114; 40.74806 151496; 40.93864 1817889; 40.98279 762438; 41.03362 4634381; 41.05245 74691; 41.1343 76976; 41.68245 55753; 41.90253 122465; 42.15584 9313775; 42.23336 255948; 42.38227 492810; 42.39733 832827; 43.27844 55532; 43.70997 5690; 43.85973 4781721; 44.11533 20485; 44.13628 7602; 44.28327 78907; 44.79586 19931; 46.09592 47030; 46.12735 50771; 46.30061 15486; 46.45246 73745; 46.77021 572341; 46.90186 978715; 47.21965 8070; 47.32213 1528; 47.9415 45971; 48.21718 7430; 48.31347 60352; 48.56957 2497995; 48.79679 112916; 49.0859 66967; 49.17357 3736378; 49.27883 5424; 49.39704 5536; 49.43196 1002715; 49.48695 199508; 49.94676 4472; 50.01773 1612478; 50.13718 47702; 51.39119 1203461; 51.44622 40492; 51.87493 60579; 51.98153 4703949; 52.2738 14894; 52.32179 738433; 52.39013 40422; 52.87322 11435; 53.2133 38345; 53.2495 46338; 53.4814 9358; 53.50812 21647; 53.80138 56301; 54.09247 19562747; 54.19314 9644; 54.29439 847486; 55.30301 10228; 55.335 58303; 55.53916 1006078; 55.60104 2731347; 55.72566 30938; 56.08034 6580761; 56.08538 72648; 56.20889 72555; 56.33153 3561329; 56.44541 9846; 56.66722 460835; 56.83729 1189182; 56.93698 29711; 57.04222 32046; 57.15756 28701; 57.23291 4906; 57.24656 78370; 57.47692 21767; 57.56603 7827133; 57.63236 66724; 57.66574 21396; 57.68118 1583729; 58.15617 1189074; 58.39334 724644; 58.4412 42811; 58.45118 77387; 58.54428 1889864; 58.92349 1618; 59.17003 842185; 59.40601 65087; 59.44154 123814; 59.47786 7268770; 59.74916 3056046; 59.87356 33730; 60.10719 26088; 60.25189 158202; 60.39163 1554884; 61.21773 32977; 61.24735 25612; 61.48126 26325; 61.58882 71513; 61.80252 22541; 61.88992 73593; 62.18436 53078; 62.21777 74916; 62.2722 98577; 62.56187 9308; 62.58635 3890610; 63.2572 1879527; 63.4345 10303013; 63.80884 40135; 64.01605 26465141; 64.0889 53036; 64.26293 2898488; 64.33382 7947379; 64.3628 68101; 64.61202 325545; 64.74048 1539504; 64.77181 6389157; 64.91437 62593; 65.04259 884018; 65.45801 1508693; 65.64472 25470; 65.76474 1757496; 66.17739 22781; 66.39748 1572260; 66.69035 4897; 66.80623 70332; 66.92321 645126; 67.01928 5630055; 67.10135 2037138; 68.02795 17924; 68.03821 1838136; 68.10852 49082; 68.25293 64947; 68.26189 1789596; 68.54889 24776241; 68.96345 1775115; 69.04119 167055; 69.096 2366; 70.10697 6725; 70.11189 19025; 70.11541 18729668; 70.71692 1954496; 71.03591 5110; 71.11548 107168; 71.24 5160807; 71.35134 34139; 71.65231 934551; 71.85353 27505; 72.22961 7728744; 72.67846 24301; 72.91863 1470456; 73.29806 29672; 73.37137 611549; 73.73932 100617; 74.18862 80192; 74.41516 5382370; 74.94219 35879; 75.15396 2679; 75.26887 553744; 75.38382 5051; 75.48988 692268; 75.50677 1031; 75.53147 8081680; 75.6431 32571; 75.88139 67572; 76.12027 29317; 76.23389 4238819; 76.27509 4507257; 76.5559 18959; 76.57185 79981; 77.115 66025; 77.47559 4968934; 77.51237 3765510; 77.64077 9480; 77.85852 25599; 77.90228 34013; 78.11886 572530; 78.20607 634598; 78.47396 29371; 78.88328 466672; 78.92216 28769; 79.23066 229788; 79.7639 573410; 79.91591 120585; 80.15364 54068; 80.32308 5035924; 80.56819 97603; 80.74495 22751; 80.75293 6100515; 80.98773 42231; 81.00696 1240116; 81.05764 6811; 81.29533 1026287; 81.3283 74828; 81.61329 79326; 82.17336 36965; 82.409 458; 82.66831 130322; 82.6738 611145; 82.72278 139284; 82.8354 2999161; 82.90308 8107225; 82.93372 18184020; 83.37476 20837; 83.40526 85716; 83.6061 1154784; 83.77662 44945; 83.97598 58654; 84.23039 58335; 84.89205 1651710; 85.04184 9350; 85.51405 42392; 85.85711 1445391; 86.08141 76707; 86.13429 152726; 86.26378 1088613; 86.41252 1727109; 86.42199 132598; 86.4434 78660; 86.59426 178328; 86.6911 52325; 86.70659 26005; 87.02916 297872; 87.27546 1711455; 87.32956 25163; 87.35305 36103; 87.68486 4325476; 87.78601 5928; 87.85992 27415; 88.01081 149562; 88.01401 668712; 88.31891 2831106; 88.42932 53923; 88.53097 66312; 88.55065 54606; 88.83868 18809; 88.84685 1167; 89.02642 1029293; 89.05098 4458; 89.3026 2548772; 89.35098 6918138; 89.35712 1205636; 89.51073 93368; 89.80758 2609977; 89.9022 1710318; 89.97304 2277; 89.98966 49315; 90.27298 21072; 90.28828 6333662; 90.77939 105749; 90.78521 123999; 90.8682 25731; 90.93483 21164; 91.2722 75250; 91.29494 9726; 91.47373 9108; 91.52307 44682; 91.54352 18413; 91.62241 5794; 92.18445 62853; 92.22091 43155; 92.67765 1603; 92.77911 22013; 92.93474 812108; 93.16257 549540; 93.20111 3962475; 93.21649 1585647; 93.28441 47064; 93.49387 23578; 93.69867 1209; 94.23743 5513940; 94.31908 2651270; 94.36682 3603911; 94.69039 25727; 94.69358 5246; 94.7345 21286; 94.84351 1770929; 94.85896 1212676; 95.20787 55; 95.71384 27277571; 96.05204 1409953; 96.24563 8755924; 96.35125 30046; 96.40534 71595; 96.41566 48586; 96.64216 35449; 96.81285 8007727; 97.00964 74000; 97.31061 38558; 97.40373 28893; 97.77098 1683851; 97.84765 8109790; 97.88051 5716653; 97.90054 1783173; 97.93968 425202; 98.39082 6148; 98.64262 159994; 98.99133 22631; 99.10558 1342003; 99.15196 115927; 99.46685 1613437; 99.59583 583; 100.00415 54540; 100.10929 8491; 100.17748 19352; 100.57448 48128; 100.6025 33131; 100.62818 4011346; 101.1878 940302; 101.34459 22129; 101.36556 58422; 101.37037 32237; 101.67397 22855; 101.92967 8952; 101.93052 8671; 101.94571 765801; 102.12546 1885467; 102.16164 157177; 102.33633 7254; 102.57394 65542; 102.5934 195503; 102.87223 2711207; 102.87657 9212; 102.91356 1255065; 102.92105 1416510; 103.09321 2786720; 103.26247 2656936; 103.41632 1790266; 103.72322 5200999; 103.88108 4572; 104.16884 5575051; 104.34224 20541; 104.49694 13233; 104.50224 4307; 104.77728 1191; 104.8645 29759; 104.94196 3299400; 105.03733 18393; 105.12548 1342506; 105.17013 1692601; 105.29718 44169; 105.6681 24335; 105.68791 47651; 105.70219 121; 105.70659 288301; 106.1993 61992; 106.27909 28356; 106.51814 4684; 106.56079 71662; 106.79858 4832018; 106.98888 72581; 107.00052 79559; 107.08804 416032; 107.48699 29096; 107.61044 1226022; 107.72944 713638; 107.94542 631580; 108.01598 134632; 108.41848 21917; 108.43154 322; 108.85688 171683; 108.86622 13548; 109.2472 383710; 109.91224 39608; 110.54976 28372; 110.79748 32689; 110.89239 4105; 111.00379 1365024; 111.14976 1999142; 111.54143 4756335; 111.64008 28593; 111.97532 247; 112.19214 4143; 112.3798 39745; 112.46145 1001736; 112.46589 545725; 112.68052 937836; 112.77313 812119; 112.81825 6685; 112.9705 60580; 113.04886 52100; 113.06595 871934; 113.41122 1336983; 113.73811 34600; 113.74122 206848; 113.82193 180030; 113.86028 1596717; 113.90865 49705; 114.03325 66539; 114.10503 12264; 114.10948 1797052; 114.23854 2258; 114.26196 74122; 114.44339 39131; 115.00095 1157264; 115.02688 60600; 115.13434 96699; 115.22216 839224; 115.4491 4909089; 115.9517 45450; 115.95439 20060; 116.15088 41871; 116.41169 63173; 116.41487 1935743; 116.42592 68271; 116.43595 1352316; 116.66043 6406; 116.78595 8371; 116.92763 41413; 116.94205 6589713; 116.99442 75173; 117.09031 54091; 117.18945 57396; 117.78772 47959; 117.85935 171455; 118.24432 67752; 118.42356 12021366; 118.49866 34039; 118.63106 55802; 118.72854 2068643; 118.73494 247341; 119.2307 146147; 120.16091 5250; 120.69568 823265; 120.82313 52259; 120.84322 3060838; 121.05299 1910847; 121.08972 1710050; 121.12354 3923; 121.21243 135573; 121.35947 190909; 121.36634 10267809; 121.45387 552858; 121.57335 1175940; 121.76349 1209980; 121.78387 55136; 121.78895 225875; 121.80931 33490; 121.8792 509572; 121.91856 15230; 122.31446 61474; 122.42922 4455627; 122.46473 48409; 122.61675 28845; 122.78623 1098462; 122.85069 25447; 122.88533 3550; 122.9032 34841; 122.92587 26585; 122.96113 65818; 123.01867 2706; 123.09307 8445; 123.27495 5162197; 123.34941 41856; 123.35129 29752; 123.72848 2737; 123.82468 8734145; 124.2095 564; 124.30449 22436; 124.32751 5621; 124.34824 1354; 124.97063 39134; 125.1135 4370685; 126.20708 1867; 126.2276 7780; 126.55476 82609; 126.71497 1173563; 126.72665 2984253; 126.87942 364498; 126.91475 7633; 127.30905 202447; 127.32331 3666; 127.45822 600130; 127.55724 108796; 127.76867 51784; 127.92848 45160; 128.18752 21389; 128.22342 2179; 128.59814 468233; 128.74716 382896; 128.83282 11979468; 128.97351 18338; 129.02369 37910; 129.17911 72796; 129.19005 1993258; 129.28909 22053; 129.34477 2119409; 129.84007 6615; 130.01428 1810833; 130.28646 25283; 130.40244 8615682; 130.48953 4593; 130.74057 13463619; 130.99733 3906; 131.04145 28174899; 131.17834 75988; 131.31461 162; 131.8232 532313; 131.86145 477618; 131.96823 2681895; 131.98494 1889172; 132.02155 2845582; 132.07998 94837; 132.14949 16325; 132.48706 198325; 132.60767 8847; 132.81245 8960; 132.8514 26156; 132.89131 11528; 132.94155 5719033; 132.99844 6639; 133.52719 7731; 133.64749 21122; 133.83155 32766; 134.21227 31543; 134.3795 3974190; 134.57092 32532; 134.5822 13617; 134.67676 144389; 134.71869 2169; 134.85675 109138; 134.94709 89986; 135.14308 3211; 135.35324 53717; 135.72957 10497; 135.74039 3731672; 136.10774 21756; 136.56847 19816; 136.78935 21859; 137.06294 957783; 137.06578 4202036; 137.38147 143157; 137.55766 788573; 137.7018 1959; 137.75431 79614; 138.80681 1347873; 139.44106 5732578; 139.53668 465513; 139.70468 28756; 139.73894 6507; 139.89343 266308; 139.94701 7645057; 140.01035 1949489; 140.03607 2339; 140.08306 16166; 140.33247 2643558; 140.61345 69179; 140.80679 88013; 140.95436 39098; 141.42864 59321; 141.57746 8260; 141.77959 18704; 142.01157 44363; 142.2035 26613; 142.49985 620028; 142.63475 5757675; 143.31171 4005; 143.35876 6675407; 143.55517 2202330; 143.57261 56347; 143.61116 72788; 144.13763 5322937; 144.13881 37635; 144.51788 51007; 144.99124 8085333; 145.03691 87690; 145.06498 41305; 145.10206 57848; 145.36493 27659; 145.78079 25324; 145.79534 104537; 145.80848 43215; 145.81591 1238669; 146.37644 54729; 146.47156 78400; 146.4973 3793421; 147.04572 1489397; 147.17476 3025; 147.2909 37390; 147.42858 609568; 147.49587 106206; 147.52004 30716; 147.65002 20913; 147.72334 2527746; 147.9085 199750; 147.92883 43152; 148.74485 9872; 148.80694 26274; 149.06573 2354130; 149.10359 8992135; 149.14544 420357; 149.50508 1486317; 150.05947 193121; 150.15657 22557; 150.33778 46186; 150.46897 34957; 151.20101 1293938; 151.25238 2445; 151.29134 23135; 151.31993 8305; 151.32811 675993; 151.4123 958869; 151.62681 37709; 151.86433 174850; 151.98551 30021; 152.01197 474023; 152.28991 37329; 152.4741 78853; 152.66502 1777372; 152.7831 1707074; 152.84553 731171; 152.91487 180230; 153.18148 22283; 153.26585 24179; 153.56799 36127; 153.74009 4988525; 153.86201 16610; 153.95587 388653; 154.0154 57300; 154.27624 608624; 154.31251 859417; 154.49676 27263; 154.73427 1022729; 154.78012 24307; 155.38027 2468; 155.67391 124558; 155.69135 4131489; 155.83639 1048163; 156.16361 69074; 156.51311 28024; 156.51993 1646761; 156.86051 24917; 157.0894 891688; 157.39355 22148; 157.80284 29781; 157.95158 16037137; 158.11087 3889507; 158.64295 1976; 158.82989 4269; 159.05805 114322; 159.18107 9008882; 159.22017 931372; 159.5398 24329; 160.44034 9703; 160.46022 64013; 160.49902 47392; 160.62632 62743; 160.66252 478753; 160.74329 1456044; 160.8 5801942; 161.38198 243139; 161.49278 41456; 161.60248 18396; 161.65742 1763738; 162.09344 30592; 162.23975 22498; 162.24532 58708; 162.50182 9027113; 162.54119 19732196; 162.57424 189894; 162.60939 10206; 162.85233 39013; 162.92253 1393162; 163.25822 4336791; 163.28943 68896; 163.66012 37199; 163.6721 70861; 163.85885 21054720; 164.26385 48650; 164.28728 5026; 164.85245 855079; 164.94062 5063102; 165.29908 27074; 165.37152 3501333; 165.70196 27028; 166.22899 8104; 166.743 1300; 166.78521 1857213; 166.78927 76614; 166.79441 2552625; 167.46781 28398; 167.80134 27958; 168.00915 104447; 168.32621 1802217; 168.41562 897802; 168.66597 30316; 168.79122 8817658; 168.97755 5737; 169.04616 21551; 169.1215 491929; 169.30446 4574070; 169.414 23814; 169.48304 67249; 169.48936 4803350; 169.49926 1503337; 169.80065 1198016; 169.86508 32003; 169.95568 47448; 170.00425 141484; 170.13096 840389; 170.26822 59158; 170.32658 877097; 170.8809 75575; 171.0654 901253; 171.78185 462964; 171.98261 8485; 171.98589 4647; 172.11035 65109; 172.12685 8761; 172.83321 1659431; 172.9491 21228; 173.00167 54231; 173.37564 11897; 173.67676 1010212; 173.83467 1895332; 174.11972 38195; 174.2395 2774173; 174.50396 17868021; 174.56033 36731; 174.85937 56836; 174.85981 1923389; 174.99686 5912; 175.022 28617665; 175.27906 2390; 175.28577 3617; 175.3771 88740; 175.69588 49547; 176.03981 551681; 176.30749 88323; 176.32375 1266567; 176.36582 58511; 176.36972 3785; 176.40028 8768; 176.56239 22806; 176.75884 139867; 176.83009 6818; 176.85997 678; 177.53713 7193; 177.58756 64788; 177.9828 8129; 178.02435 74755; 178.12266 57867; 178.19842 27772; 178.35698 2245505; 178.48805 4212; 178.51789 818582; 178.56428 2385; 178.74714 1288566; 178.81611 3091235; 179.54043 11037; 179.57837 44424; 179.65772 7848878; 179.7454 110954; 179.87296 1422214; 179.9717 36176; 180.05991 3478; 180.24923 15972; 180.76195 131602; 180.96849 20574; 181.05814 694845; 181.34611 9434289; 181.40645 6057311; 181.44549 20886; 181.64662 1839245; 181.89632 3209451; 182.48164 6183501; 182.73106 21742200; 182.76188 36922; 182.80023 27339; 183.23295 23713; 183.29194 1893; 183.49306 20879; 183.72582 4523780; 184.00361 4613; 184.03082 46026; 184.0454 8161; 184.36391 4617; 184.64969 466941; 184.91123 79596; 184.91707 4420048; 184.94848 2328817; 185.16037 12203366; 185.43318 1897604; 185.51538 2514731; 185.65572 9636; 185.8332 3794857; 185.86969 46548; 185.96441 5569125; 186.70856 4015; 186.75761 48411; 186.94275 14712; 187.07077 149289; 187.11324 667608; 187.69681 550839; 187.76241 2352287; 187.83705 12279; 188.06542 61011; 188.07122 833333; 188.39544 5369; 188.42512 20204; 188.54064 69634; 188.79298 1285076; 188.87383 407734; 188.90978 22585; 188.91496 2642112; 189.09788 60484; 189.27583 75430; 189.34636 1670643; 189.56477 1559897; 189.70882 1195; 189.79249 141839; 189.84161 5513171; 189.96034 4260; 190.15303 35215; 190.81691 2502647; 191.0263 868806; 191.89416 3806387; 191.97725 16222; 192.09945 1878429; 192.82035 16044; 192.85201 105561; 192.90339 1278; 193.00873 3649530; 193.47792 249714; 193.6886 3506873; 193.78948 15808801; 193.85659 1835458; 193.86438 21816; 193.96653 62435; 193.98667 1871; 194.00157 1554196; 194.17251 31569; 194.34036 2164427; 194.4195 30316; 194.54764 26577950; 194.54968 29648; 194.89067 57762; 195.55496 9161066; 195.58586 3021; 195.64366 172555; 195.9254 189914; 196.22953 3813518; 196.46396 36193; 196.57738 22965; 196.83758 9680; 196.88654 838565; 197.60663 2012285; 198.4999 138394; 198.65416 120551; 198.72643 25369; 198.85523 218349; 198.91126 65780; 199.03855 6704274; 199.0482 22995; 199.18926 1531230; 199.28708 34763; 199.45387 64077; 199.68974 1169; 199.7819 1392345; 199.80133 7588; 199.81949 2994316; 200.16367 1908560; 200.2099 4070446; 200.55348 58483; 200.66809 6609; 200.77526 21234; 200.83037 21498; 200.86175 8475; 200.90983 18071405; 200.97773 4573629; 201.18605 6355541; 201.21266 11972; 201.42472 4146398; 201.48383 70385; 201.59574 57443; 201.66608 110840; 201.92694 39951; 201.96312 1087164; 202.07448 27894; 202.34235 74115; 202.42857 39376; 202.47062 84028; 203.10953 21497; 203.30332 38969; 203.55395 5788754; 203.64068 560960; 203.66317 21944240; 204.0771 5146298; 204.08375 3026001; 204.40246 33955; 204.69916 188689; 205.26515 4119805; 205.29543 52854; 205.37965 6261; 205.40736 1770005; 205.5181 5884; 205.71779 26841884; 205.80059 30578; 205.9409 234722; 205.96149 1210886; 206.1427 1489332; 206.31277 9174; 206.4085 1770961; 206.49352 1247897; 206.66142 2105; 207.28324 1891; 207.37464 68830; 207.49034 78075; 207.87104 60425; 208.14262 369; 208.18558 605367; 208.31252 4461402; 208.50903 33926; 208.74825 25568; 208.76514 59684; 208.82655 6852; 208.91648 4073; 209.061 10906; 209.34176 676929; 210.05977 32445; 210.07113 2385486; 210.16641 1435; 210.17684 833890; 210.19148 63249; 210.40989 46839; 210.44762 2568731; 210.88912 29787; 210.93349 2148706; 211.10399 58143; 211.14616 190797; 211.24761 8301669; 211.3441 223917; 211.66124 26904; 211.73709 23034020; 211.87255 615807; 212.03295 2459600; 212.03346 1579227; 212.22951 65112; 212.2751 34229; 212.45533 3660381; 212.4747 38506; 212.48518 70655; 212.55861 6931661; 212.90331 1298424; 212.95311 3861353; 212.98313 66507; 213.27954 27097; 213.76292 7942932; 213.88404 18992; 214.06263 899780; 214.47356 29844; 214.74949 1621599; 214.92801 34476; 215.08136 14650441; 215.59005 8589; 215.62178 8452; 215.90425 275067; 215.98361 3213711; 216.05959 55031; 216.10511 14632; 216.28341 21207958; 216.29517 1955983; 216.47756 63820; 216.61091 75735; 216.62609 2411; 216.89413 35212; 216.95514 41490; 217.14556 29118; 217.2386 1332057; 217.27479 1196463; 217.40919 27362; 217.45808 36260; 217.54484 52175; 218.0135 6511; 218.1403 1136893; 218.31668 612749; 219.00352 18320; 219.36303 28490; 220.03306 822949; 220.10632 230160; 220.18731 501518; 220.29632 11691; 220.41336 1359669; 220.56684 62105; 220.84018 49348; 220.98346 64567; 221.07108 70514; 221.09928 2582; 221.54151 4695; 221.56735 345756; 221.60627 35993; 221.66597 30226; 221.66784 413463; 222.02564 7647; 222.36725 754999; 222.38445 1189312; 222.51974 277281; 222.57446 25545; 222.71407 3295; 223.04309 63515; 223.07716 79130; 223.36235 67746; 223.36338 5961; 223.41039 21689; 223.63925 4197700; 224.13771 6929; 224.17123 3120698; 224.28727 863; 224.42589 23750; 224.63196 1747; 224.70693 4454152; 225.69217 6284; 225.83034 25173; 225.949 45219; 226.09406 3770; 226.21572 7308928; 226.43184 6063; 226.43508 592619; 226.45265 9106; 226.59937 1883043; 226.75362 1555889; 226.98712 194288; 226.9938 4420; 227.04459 1380282; 227.16194 4721716; 227.50125 1219; 227.86048 183268; 228.17495 24707963; 228.29266 80908; 228.32649 3196026; 228.38399 6863454; 228.38889 8623; 228.59997 2060480; 228.70362 3902214; 228.86529 20044; 228.9472 168590; 229.05985 37112; 229.34557 1475158; 229.41217 29720; 229.52147 17698; 229.70967 3935626; 229.79584 5543; 230.00208 7342; 230.02547 923788; 230.1944 47783; 230.42309 65827; 230.5866 196094; 230.61267 1597894; 230.704 904161; 230.82306 1453184; 230.93077 848211; 230.95765 183954; 231.06964 71493; 231.43323 1477998; 231.44909 29989; 231.61755 65828; 231.85419 4649287; 231.87046 996466; 231.95519 24022259; 232.1278 3515061; 232.24571 107907; 232.2887 8105; 232.31559 5048; 232.32933 60460; 232.53745 430575; 232.58436 38990; 232.70401 2152; 232.72549 3290656; 232.85987 801954; 233.28443 1360; 233.35728 32462; 233.43833 34221; 233.54068 47707; 233.65838 2672; 233.76248 743600; 234.11088 36359; 234.23248 1732649; 234.4956 60065; 234.49955 211; 234.59986 50339; 234.69768 22291; 234.70349 337; 234.82099 3925; 234.90336 37715; 234.98846 51953; 235.28499 7568; 235.62068 1680197; 235.67968 25140022; 235.74171 3649943; 235.97591 2450997; 236.06433 15446; 236.49236 46720; 236.85413 30012; 237.09091 793486; 237.40358 46421; 237.48714 700263; 237.99212 6116; 238.14981 240611; 238.16284 7320652; 238.46679 6367385; 238.52651 4381676; 238.91187 3549; 239.19741 41165; 239.26544 4963954; 239.28217 9264225; 239.55009 7280003; 239.85465 44490; 240.02715 62372; 240.32962 412569; 240.42992 7150; 240.87873 48863; 240.98963 62724; 241.14715 24295960; 241.39851 9940608; 241.45638 45844; 241.49097 433; 241.5845 2707; 241.71258 7587; 241.71772 24282; 241.89091 1063082; 242.15534 7963759; 242.57158 8365305; 242.62094 62858; 242.89454 999802; 242.98378 15076; 243.39873 5061; 243.43036 21440; 243.52254 7379; 244.00071 23599984; 244.10893 992757; 244.25328 9682; 244.29016 1026363; 244.33299 1866598; 244.38826 79882; 244.48287 96693; 244.69711 10001; 244.76807 1581870; 244.90549 520729; 244.95798 166781; 245.04599 91773; 245.24495 3000097; 245.41367 1841786; 245.65716 3426951; 245.88429 53753; 246.02515 642292; 246.16157 1336; 246.31048 1722; 246.31534 1130470; 246.60752 3788686; 246.76263 28964; 247.00587 8810982; 247.2716 2942; 247.34294 3721; 247.401 54029; 247.61419 28426; 248.16295 21631; 248.18854 25681; 248.24199 1467373; 248.26001 3642878; 248.27823 63652; 248.29643 18290; 248.32581 2636139; 248.40225 636714; 248.48489 112; 248.72824 28715; 248.85793 33862; 248.97427 3877288; 249.09149 41644; 249.1616 1747; 249.40778 583389; 249.8247 1312; 250.24652 70025; 250.44083 73092; 250.49807 5505233; 250.72101 46337; 251.26698 62458; 251.3162 3457194; 251.37962 1472660; 251.42152 4563841; 251.42884 66738; 251.87977 1877056; 252.54717 23911; 252.63577 1860822; 252.68102 92978; 252.93305 24280; 252.9965 1033398; 253.04294 25603; 253.32119 63832; 253.35787 708151; 253.51515 3954560; 253.69448 5416555; 253.88907 355; 253.91316 4360; 254.07566 1021759; 254.13074 5694551; 254.76434 1796616; 254.88988 74643; 255.29014 1166303; 255.52502 73565; 255.6065 849612; 255.77191 63590; 255.78378 35436; 256.05341 42302; 256.0543 53017; 256.21423 1353438; 256.43026 4744618; 256.48996 40794; 256.7502 2962823; 257.13711 404218; 257.16148 41298; 257.30614 23784738; 257.46115 8367; 257.8003 4320; 257.81197 28103; 258.015 40673; 258.08925 7686; 258.13754 26056; 258.1897 64837; 258.31348 6696; 258.40167 36651; 258.50492 1209735; 258.95696 199911; 258.98997 4800794; 259.05712 3373141; 259.15837 48542; 259.27207 67990; 259.56741 50235; 259.58915 192216; 259.60013 8738; 260.25428 59069; 260.31078 526370; 260.41054 37090; 260.73588 38721; 260.89601 42804; 261.19287 4702; 261.34852 75324; 261.48077 4844485; 261.54482 128793; 261.59409 7925; 261.65183 25373; 261.75784 40001; 261.79087 630269; 261.80779 429034; 261.86806 3707; 262.01369 192226; 262.02542 28492; 262.19125 16474; 262.34985 9214; 262.57838 32187; 262.62172 49796; 262.80493 1783296; 262.96005 52568; 263.02656 7928642; 263.03113 906257; 263.08954 71963; 263.19537 25786; 263.22919 29066; 263.4519 10673; 263.93918 17751; 264.37863 1986403; 264.55869 1752655; 264.66267 26068; 264.70001 8992790; 264.89844 10069; 265.42043 2559566; 265.4238 75678; 265.73891 749287; 265.77469 984623; 266.04659 93820; 266.0857 1952655; 266.08907 64103; 266.16943 152871; 266.58906 145060; 266.59802 3755313; 266.74543 1624903; 267.23379 1526433; 267.24861 1207643; 267.63499 131276; 267.68641 13957; 267.83061 22353; 268.04799 67524; 268.06848 5749237; 268.1264 63201; 268.36281 77900; 268.36831 2047512; 268.3855 7154; 268.64681 9557326; 268.70078 3714; 268.85987 8657; 268.97119 616017; 269.00345 78113; 269.27475 37771; 269.48342 43212; 270.17927 57580; 270.21982 942534; 270.30164 1836091; 271.28651 20609; 271.32839 76770; 271.37544 64682; 271.43533 44725; 271.5721 47713; 271.83549 35837; 271.86509 571912; 272.00204 71550; 272.11325 76932; 272.30681 152771; 272.39865 35047; 272.61087 2600374; 273.09621 70186; 273.4242 1217; 273.74363 69669; 273.818 639362; 273.9378 11951642; 273.98805 74505; 274.40896 25917; 274.43837 37252; 274.50736 3687392; 274.98127 1040268; 275.27214 1001491; 275.36754 1054; 275.67131 55836; 275.77706 34921; 275.99095 18487; 276.00677 2490149; 276.13187 27956; 276.52174 32501; 276.52559 584227; 276.52587 4558; 276.59428 336815; 276.71745 35165; 276.74543 7108; 277.06744 21573213; 277.16119 39586; 277.30241 142411; 277.40269 3290574; 277.5448 780270; 277.5503 35614; 278.03292 14902; 278.34599 92894; 278.38704 4296151; 278.64387 41271; 278.7283 59515; 278.9523 3832883; 278.96475 29660; 279.53795 774378; 279.86107 4051911; 280.18243 68189; 280.62333 8508; 280.69646 6160; 281.14522 56701; 281.31525 8069; 281.4236 6286; 281.51421 150356; 281.68042 12917; 282.01956 194061; 282.29387 14636; 282.78531 27235; 282.88164 1545797; 283.26319 6323; 283.50794 62933; 283.73102 8157; 284.02054 19421; 284.46898 7573231; 284.51124 2687584; 284.90812 5872; 285.34373 1548943; 285.43446 6000166; 285.54876 3949117; 285.72472 200052; 285.84808 74914; 285.99524 21202; 286.08869 7829; 286.25495 3742348; 286.59761 942636; 286.65302 608043; 286.8035 1998609; 286.8131 6502980; 286.83011 23432; 286.89042 1611055; 287.32281 77713; 287.34465 57408; 287.39255 49995; 287.41327 15506; 287.45568 562634; 287.5126 2425887; 287.6128 8949393; 287.70028 24827; 287.7639 7537; 287.97565 105038; 287.98248 221260; 288.02529 195656; 288.30869 620; 288.35165 721286; 288.41393 78937; 288.44739 6449; 288.55806 16250; 288.57654 72203; 288.62693 37369; 288.71034 4788; 288.79459 741746; 288.97594 22091; 289.56888 3188233; 289.57067 14436; 289.68611 1978346; 290.05959 1555341; 290.10052 18678319; 290.11668 2656844; 290.44755 24475; 290.64102 14682; 291.10015 36991; 291.13298 1057490; 291.18005 9619185; 291.32252 2197367; 291.53899 2629584; 291.69926 129633; 291.75663 25493; 292.20874 53278; 292.27236 21085; 292.42447 71706; 292.88358 10520; 293.02144 676032; 293.11065 165926; 293.2442 1308857; 293.42084 3104304; 293.45528 20054; 293.61507 75083; 293.99735 25320; 294.20928 735041; 294.22159 17713; 294.73059 1858636; 295.13984 6730209; 295.15888 52290; 295.25276 15571; 295.81206 7050573; 295.89748 5442; 295.9815 74486; 296.21439 82062; 296.26048 30214; 296.46272 328467; 296.51475 6281; 296.63965 2664; 297.072 48969; 297.39619 4756808; 297.46156 68429; 297.49754 3207; 297.65598 33592; 297.95154 2972479; 298.13863 2470359; 298.14203 7627958; 298.24147 40634; 298.4682 12591; 298.59628 48793; 298.66524 8876; 298.97885 4260; 299.03367 331540; 299.05176 23262; 299.06015 855102; 299.07116 39742; 299.17203 1251; 299.40101 49183; 299.71836 763115; 299.78764 1925386; 299.87105 2601464; 299.95362 3973429; 300.2613 22807; 300.7535 22648; 300.78196 35618; 301.14962 1578156; 301.40436 3334401; 301.47061 4585906; 301.59615 64032; 301.65464 39844; 301.71715 12336089; 302.13699 5718; 302.15525 4345604; 302.32932 27974; 302.33799 5589239; 302.43689 4249; 303.04759 28190; 303.19501 26564; 303.29995 696445; 303.49522 1155515; 303.7449 448500; 303.81435 23948; 304.05511 55150; 304.32821 6465; 304.42711 17954987; 304.47176 43108; 304.53851 9759; 304.57374 48110; 304.68052 1109397; 304.69131 62612; 304.77755 10757; 304.79241 143743; 304.79347 2215870; 304.84063 1036094; 305.03912 6722; 305.12047 5154; 305.12656 3674296; 305.14805 197023; 305.24123 3680302; 305.68625 29319; 305.6901 963156; 305.75825 4349263; 305.98175 35179; 305.99659 6433; 306.16123 33332; 306.20327 45427; 306.26227 26775; 306.64824 473380; 306.70918 27802138; 306.74005 950159; 306.95755 12951; 307.14318 1436149; 307.21463 7306; 307.23163 49437; 307.43474 74489; 307.47443 52642; 307.59247 27871378; 307.72903 5235444; 307.77594 23263; 307.90842 161528; 307.97175 30386; 308.01319 182969; 308.08572 35411; 308.6591 7; 308.70998 34311; 308.91639 71124; 309.48475 24148; 309.71243 7759; 310.07427 55492; 310.23001 9837; 310.29021 35473; 310.50818 1495220; 310.6901 1500422; 310.92098 5573473; 311.4784 5395; 311.71889 33978; 312.40445 121452; 312.64626 40979; 312.71885 2005063; 312.83842 149101; 312.85558 7880; 313.00715 2923562; 313.15276 29787; 313.30752 301712; 313.3523 10459; 313.36925 8783; 313.38897 12352; 313.42066 8383610; 313.52458 1899744; 313.58443 28210; 313.85474 19041; 314.22549 3413014; 314.38107 1697433; 314.6673 30277; 314.7293 55681; 314.84712 35256; 314.8707 459350; 315.36295 71259; 315.73618 36252; 315.76882 4395; 315.88987 1933035; 315.89605 25763247; 315.94454 79630; 316.01343 108526; 316.02395 6498; 316.42644 35497; 316.46378 14946; 316.64294 2101413; 316.74086 28887; 316.8065 6580; 317.02135 153602; 317.09978 8190232; 317.26074 2164; 317.31126 1118; 317.49338 4048; 317.56284 392485; 317.94856 51937; 317.97842 32762; 318.14142 9152052; 318.1839 4266606; 318.29911 66724; 318.31128 42559; 318.40293 40824; 318.42532 841411; 318.48319 71267; 318.58089 79232; 318.73451 3153; 319.02436 91040; 319.10291 1944766; 319.13795 1255038; 319.28367 23929; 319.31626 25622; 319.32493 6327; 319.43286 46793; 319.59306 5393; 319.87819 3865335; 320.15707 2675; 320.21499 40259; 320.34533 2520722; 320.52346 3396988; 320.62023 3604245; 321.26508 37665; 321.35988 2263; 321.83534 26530; 321.9859 226784; 321.99734 40808; 322.10538 5865; 322.30193 4788; 322.32554 8298; 322.42193 5998; 322.50403 26916104; 322.59187 1916071; 322.74867 1136255; 323.11 61; 323.24329 501188; 323.27545 4146110; 323.32289 6965473; 323.62232 39091; 323.66181 29864; 323.71497 10172; 323.75994 9372402; 323.8552 55556; 323.99015 57046; 324.08774 9246124; 324.52001 72656; 324.56427 3410; 325.66104 2444310; 325.84259 69549; 325.91745 74616; 326.41363 1236669; 326.48745 4191440; 326.53372 1162476; 326.73956 1267699; 326.7806 4694677; 326.84758 8642; 327.11843 9199; 327.40946 4034; 327.61824 29631965; 327.91737 176823; 328.0225 5635; 328.02521 260462; 328.36407 50707; 328.73699 7917336; 328.79708 27330; 328.88564 316582; 329.04106 28052; 329.17151 67096; 329.20847 3415; 329.39093 50122; 329.46695 56615; 329.47596 48260; 329.66863 1281072; 329.71309 17362; 329.98053 2014; 330.02029 7687705; 330.05392 5989; 330.8899 896305; 330.93279 1461163; 331.07199 2787; 331.18436 3578356; 331.19914 1980409; 331.25999 3709327; 331.61407 61122; 331.65779 28814; 332.18779 555177; 332.19092 40404; 332.31085 27746; 333.16276 10273; 333.54852 25076; 333.93004 2811167; 333.9455 4777890; 334.36042 4373768; 334.37795 3227287; 334.58271 4996172; 334.62471 24835; 335.00039 632144; 335.09067 1252492; 335.59082 68503; 335.76 6329109; 335.80703 22107; 336.04475 59078; 336.09774 44615; 336.13422 18202; 336.46353 370467; 337.05064 18084; 337.94651 1028366; 338.0121 43516; 338.02934 190855; 338.15171 53605; 338.3087 26346; 338.91169 40629; 339.16651 6214161; 339.24498 6694; 339.36121 4944032; 339.54525 59702; 339.61288 51541; 339.75403 1401114; 339.89825 272531; 340.07911 8824791; 340.10209 560559; 340.11789 21039451; 340.45926 27494; 340.7737 369403; 340.93396 32710; 340.95044 9956; 341.01647 70032; 341.14839 501; 341.29241 70115; 341.41071 3705806; 341.41876 74549; 341.89807 166045; 341.94268 6860545; 342.3653 47860; 342.41191 58567; 343.00231 4649117; 343.42648 5946853; 343.72795 5553; 344.06494 44531; 344.07373 31934; 344.31222 28224; 344.39989 1428745; 344.42889 5921413; 344.6589 169740; 344.84829 292495; 345.42434 353490; 345.62781 1451402; 345.82538 88873; 345.91041 428323; 345.9734 24211; 346.07778 1232983; 346.16616 246852; 346.55812 89541; 346.82929 24897; 347.13066 25772; 347.13594 8023; 347.21843 3710009; 347.53337 48234; 347.99788 3288453; 348.26935 33479; 348.27133 30872; 348.66857 757610; 348.89405 6551464; 349.01049 5149; 349.03742 25671; 349.06859 29939; 349.0755 503378; 349.15988 17127262; 349.23033 4809; 349.27373 544882; 349.45458 65606; 349.59487 154140; 349.80249 16991635; 349.89012 18334879; 350.02298 43613; 350.03033 45564; 350.14267 216787; 350.19977 791390; 350.2678 3488; 350.33428 4684321; 350.54603 12770; 350.58947 737759; 350.60046 924623; 350.80769 46875; 350.80885 42961; 351.12347 1069090; 351.22856 26181; 351.76324 621524; 352.08215 26494; 352.10088 26441; 352.22524 1569568; 352.23768 5333441; 352.45456 181622; 352.58532 477; 352.84269 4360760; 353.08418 82616; 353.49364 5696111; 353.52671 1699347; 353.73878 1961626; 353.82077 628901; 353.86482 12398810; 354.00881 3090614; 354.10426 6564; 354.23927 965213; 354.49587 14186; 354.56047 3453; 354.6628 23205; 354.69092 205165; 355.16185 576025; 355.30467 3216; 355.32369 1168015; 355.33887 10079; 355.37384 5576; 355.39436 971658; 355.52967 176155; 355.54403 9629995; 355.56458 1755933; 355.71894 5029674; 355.89671 68565; 355.90301 252123; 355.97003 25316; 356.01584 21259; 356.05427 1332533; 356.13601 520437; 356.42533 42361; 356.57918 1387835; 356.91957 9243; 357.15789 98721; 357.79976 2859517; 357.8693 41773; 358.23124 8117286; 358.43671 5099483; 358.56185 166256; 358.58797 203645; 358.61249 451203; 358.85453 3537; 359.03247 43842; 359.25641 563453; 359.82345 22267; 360.01418 28264; 360.21957 9691330; 360.24456 39247; 360.51081 41539; 360.54457 9684; 360.63228 60940; 360.7751 17360; 360.85125 20771; 361.93321 14199; 362.07325 25197; 362.19654 28240; 362.39869 54382; 362.79371 17681; 362.8314 49126; 362.92012 94247; 363.12624 1023370; 363.61884 7349093; 363.64139 6646; 363.69251 60183; 363.70288 62634; 363.72086 42883; 363.81838 1496818; 363.82664 53800; 363.98176 55505; 364.02983 231; 364.33226 60587; 364.38689 18277; 364.51542 1889883; 364.62072 6225; 364.62406 64740; 364.80172 46104; 364.91566 58934; 365.20601 8779901; 365.54077 22768; 365.56383 25346068; 365.64134 2595; 366.03926 101794; 366.14027 64348; 366.34301 19828590; 366.38129 28169; 366.77219 69909; 366.94154 1293341; 367.00401 52022; 367.48269 1101333; 367.56997 2992; 367.69088 1845; 367.8726 79862; 368.00258 7090; 368.00655 196178; 368.15465 57712; 368.20605 36412; 368.62804 2357; 368.65156 2165341; 368.98755 36711; 369.09748 23992; 369.29891 27119; 369.32466 137917; 369.45682 5492075; 369.47968 15978; 369.96866 177553; 370.06657 126003; 370.07588 2268206; 370.3311 572790; 370.38652 20368; 370.54103 191509; 370.68648 37537; 371.09593 26585; 371.2862 24770; 371.36096 3446643; 371.52013 72687; 371.59034 13732762; 371.6385 27424; 372.01069 466568; 372.22501 89033; 372.25007 9492; 372.34744 63389; 372.38409 7483; 372.61602 160302; 372.69014 3725; 372.76067 1517802; 372.93381 857395; 373.11486 6104; 373.17528 236004; 373.31184 8123586; 373.44262 6543; 373.69916 7539; 373.73635 7619426; 374.00695 9913; 374.01985 19462; 374.44775 215; 374.51862 1330265; 374.5642 28825889; 374.5662 632055; 374.62516 56762; 374.91111 51654; 374.99285 1963903; 375.02305 47609; 375.22024 1342349; 375.36346 1726308; 375.52918 11063002; 375.54703 20277796; 375.69453 18172; 375.91408 3825; 375.92118 719507; 376.20933 22925; 376.44493 11986070; 376.46065 9678576; 376.68757 9076; 376.70031 717009; 377.24745 4427893; 377.83955 28091; 378.16215 32183; 378.59065 72539; 378.92335 28736; 378.98725 556024; 379.23925 22036; 379.39445 76302; 379.64861 28860; 379.6796 458; 380.51922 59232; 380.56758 169505; 380.65212 73371; 380.82817 342; 380.98981 26939; 381.01422 99149; 381.81057 23781; 381.97792 66777; 382.23362 6786122; 382.28947 3898501; 382.318 1369414; 382.37005 9056286; 382.40925 1057; 382.42407 25111; 382.4511 3513; 382.46828 55170; 382.52135 6417312; 382.70823 3652500; 382.85662 61673; 383.32251 45272; 383.69518 15410; 384.06778 41264; 384.20869 9846624; 384.29461 10210; 384.29926 24193; 384.43067 48034; 384.5401 1946237; 384.6889 13447; 385.15721 69038; 385.20171 1884206; 385.47567 1560; 385.52992 1290177; 385.60028 8610842; 385.74507 43161; 385.82868 77474; 385.83689 2766708; 386.03834 29066247; 386.22615 3530767; 386.33941 4312858; 386.67646 73492; 386.71511 65732; 386.99875 101814; 387.15428 1593091; 387.25621 8413; 387.32885 6952; 387.54525 1863122; 387.65264 1982478; 387.85317 22750; 387.85796 42553; 387.93148 2922644; 388.13301 213096; 388.36518 5060324; 388.51345 30624; 388.52294 30023; 388.80336 153655; 389.18076 56395; 389.34711 13054; 389.40676 4954129; 389.55793 1362046; 389.63599 4135062; 390.13936 164448; 390.35896 58983; 390.41497 345426; 390.59896 4333839; 390.60459 198464; 391.0322 39432; 391.06985 20293; 391.38876 52142; 391.80757 9844221; 391.81713 50699; 391.93362 51353; 391.94174 24252; 392.01973 832354; 392.02403 67728; 392.46764 60413; 392.53403 3055337; 392.79181 7638282; 392.8709 54636; 392.98984 1338057; 393.17631 771; 393.23583 120754; 393.37752 6759070; 393.48877 5337; 393.54554 79964; 393.72527 144204; 394.02636 23075; 394.84368 692380; 394.97018 32956; 395.23148 1079906; 395.52482 42584; 395.65784 220392; 395.84989 2078; 396.42615 8431; 396.47355 30021; 396.52526 909357; 396.84411 3943; 396.96103 2368436; 397.38228 66400; 397.85082 55806; 398.11774 789162; 398.13347 4809480; 398.15568 7957; 398.24908 858134; 398.52868 27655; 398.98624 48109; 399.03699 154211; 399.04531 26451; 399.15031 5028739; 399.44507 2942915; 400.0986 55072; 400.27392 4887193; 400.31484 53609; 400.60399 6491747; 400.76894 69790; 401.06942 16384; 401.42114 678331; 401.44399 1699; 401.65769 5304769; 401.6811 114787; 401.70952 1271053; 401.71032 1077836; 401.76126 69146; 401.90669 22032; 402.01194 41579; 402.34251 132222; 402.34452 1140517; 402.88027 42229; 402.96444 149209; 403.28046 8347; 404.03675 67244; 404.3411 74663; 404.92324 9746254; 405.42304 54438; 405.61075 1477491; 405.65168 19753; 405.87673 49599; 405.91463 1408258; 406.08632 29535; 406.17319 14162999; 406.25292 1425949; 406.37349 56753; 406.90968 48209; 406.94695 26687; 407.58575 1153761; 407.63675 379471; 407.8198 64739; 407.99015 9528; 408.07243 1585885; 408.13147 6229523; 408.54386 29868; 408.64361 2387343; 408.88156 9795256; 408.96218 1584628; 409.12071 655475; 409.14336 33133; 409.26749 3879706; 409.47688 6848127; 409.49673 21813; 410.03643 2801566; 410.05628 595577; 410.44414 1521238; 410.5796 1906299; 410.58432 66186; 410.64671 3544402; 410.84766 90121; 410.93728 12160; 410.96942 5605; 411.19421 470148; 411.21496 2309767; 411.33795 2426618; 411.45238 33951; 411.55165 2114492; 411.58121 23847; 411.81165 40375; 411.99244 4630301; 412.48789 25706; 412.64059 141910; 412.64707 349; 412.70688 60816; 412.74252 23598; 412.75599 43952; 412.83022 873962; 413.05638 9770; 413.0756 843119; 413.17804 7862; 413.41902 9834658; 413.54888 138231; 413.58918 198164; 413.62035 10575; 413.87656 21752; 414.01021 1307949; 414.01624 1927716; 414.07855 76224; 414.15263 2438344; 414.2881 4518; 414.31874 51208; 414.63864 33689; 414.79902 201821; 414.91921 883373; 414.92193 10818930; 415.38639 445615; 415.44938 29212; 415.77715 443434; 415.80439 65200; 415.82256 51028; 415.85622 51206; 415.88053 78879; 415.97821 1127638; 416.75283 23084; 417.23276 29136; 417.41815 1038; 417.54077 405635; 417.8524 40779; 418.0118 62739; 418.02035 72930; 418.10358 33836; 418.16959 52443; 418.54681 4076; 418.57069 72895; 418.82205 1707834; 418.88657 412697; 418.91592 25756; 418.98489 24280; 419.01502 55919; 419.01576 40406; 419.06385 818838; 419.1719 62218; 419.22092 13104; 419.35867 2769328; 419.63199 1672543; 419.69412 3859; 419.71616 212947; 419.77557 455720; 419.8704 33747; 419.95426 55649; 419.9945 72; 420.03556 194849; 420.34453 3303; 420.70425 4634491; 420.8117 51863; 421.0694 15220880; 421.27608 79562; 421.45868 4996252; 421.62063 83503; 421.87044 22562; 421.92335 72300; 422.10966 48489; 422.13771 142627; 422.22796 489662; 422.44787 823684; 422.57191 3681743; 422.78123 1675325; 422.81114 43498; 422.92383 4437033; 423.19817 3515; 423.30089 742365; 423.72285 1053546; 423.78814 802076; 423.84601 4049714; 423.92244 63254; 424.1899 1426063; 424.19861 9870; 424.25574 4230769; 424.4666 419443; 424.79463 28229303; 425.3008 5723186; 425.46734 29463; 425.64934 1972677; 425.77533 829960; 425.83571 374064; 425.95144 681568; 426.05795 1491879; 426.06098 29543; 426.17465 1492335; 426.3286 288199; 426.33194 6036134; 426.51669 4067; 426.7214 52347; 426.78904 2112151; 426.83041 61836; 426.89924 281; 426.90488 1657040; 427.01518 26177842; 427.05062 46030; 427.40874 621381; 427.50361 68843; 427.68423 3732; 427.69814 775461; 427.95765 43014; 428.35945 34545; 428.42003 4513616; 428.58692 1534613; 429.11862 42426; 429.2324 17535; 429.4127 3622505; 429.55549 4211; 429.73344 24249; 429.79517 1561542; 429.87225 36105; 429.95368 162137; 429.98974 19317; 430.05071 8967; 430.06857 6971; 430.1085 65002; 430.74248 199190; 431.14867 7071; 431.3732 27984; 431.6867 5314785; 431.9914 28012; 432.18359 1087630; 432.33066 1707471; 432.61713 1350523; 432.77481 3499148; 432.86581 5157023; 432.87157 3859717; 432.99253 8536769; 433.27794 27018; 433.67592 69332; 433.77219 55173; 433.79478 45028; 433.91682 627008; 433.99495 27970; 434.13314 8987618; 434.14097 45897; 434.5014 3543116; 434.65864 2221233; 434.85541 413753; 435.08712 64898; 435.53283 3511240; 435.65806 51736; 435.7223 1611111; 435.8076 5777; 435.9031 43150; 436.23312 3215491; 436.49881 4666; 436.54761 530426; 436.79463 317023; 437.03167 23771; 437.16087 3889; 437.2389 1093382; 437.34986 467155; 437.50364 4076481; 437.98755 7232049; 438.02401 639401; 438.18104 8708; 438.23311 2449641; 438.3317 24321; 438.55437 356496; 438.60515 1795939; 438.63625 1846505; 438.87048 77; 439.09382 42030; 439.13905 1297684; 439.18308 3399059; 439.45631 7975; 439.50705 100368; 439.86234 7335971; 439.97905 10522; 440.13868 20027; 440.24088 5390; 440.34862 1816144; 440.44892 5800794; 440.59282 4264033; 440.93624 4861105; 441.03171 199577; 441.16053 59775; 441.2173 34901; 441.64543 2249454; 441.77027 52723; 441.85954 49362; 442.61049 27706; 443.38683 2011; 443.64371 44267; 443.8002 1512; 443.80559 5745916; 443.82139 232859; 443.92588 763172; 443.92697 59626; 443.96572 1385462; 444.14472 3719719; 444.6474 1400878; 444.87337 165788; 445.47832 23327; 446.21871 4969; 446.25351 1957506; 446.53618 631641; 446.56272 1235173; 446.66698 1800692; 446.69669 71133; 446.83479 56807; 447.21054 47544; 447.5956 342889; 447.84133 19536; 448.39285 2381432; 448.42839 27023; 448.77283 2214314; 448.80614 1141573; 448.96171 3324772; 449.1078 6208535; 449.10895 79889; 449.14879 20038; 449.19973 9344692; 449.23459 7627; 449.42698 4578347; 449.64972 1922214; 449.71284 24642; 449.71665 156204; 449.97918 1977312; 450.17197 1052054; 450.21677 1343592; 450.57996 36430; 450.63121 2195932; 450.64105 730312; 450.75699 349050; 450.94999 54751; 451.19604 78898; 451.22127 18669719; 451.44744 21252; 451.77563 1209041; 451.7871 1827561; 451.7894 577684; 451.92928 49173; 452.12947 41051; 452.314 623202; 452.53399 3210297; 452.82371 32354; 452.93533 4290318; 453.11815 231123; 453.14582 102629; 453.18168 2595815; 453.3833 1867725; 453.40808 59910; 453.99766 323399; 454.4457 6519494; 454.44983 54058; 454.46597 6227; 454.76469 198451; 454.93702 439053; 454.94609 92949; 454.99296 33703; 455.01663 24884700; 455.90516 66845; 456.15318 3577342; 456.60316 1407208; 456.63083 37777; 456.77277 6381804; 456.89271 1501218; 456.98931 139428; 457.12687 9852; 457.57503 20796; 457.63273 53885; 457.64199 2486332; 457.84061 66368; 457.85016 54175; 457.88194 69021; 457.96843 819748; 458.2186 31382; 458.76486 38939; 458.79366 1355; 458.92698 50205; 458.94349 21749; 459.51698 45592; 459.60487 31776; 459.6664 1902899; 459.71302 2394498; 460.80537 4420953; 461.12707 323723; 461.1638 58483; 461.68662 1621538; 462.29343 24768; 462.31472 178354; 462.47833 22581392; 462.73578 58172; 462.8284 108106; 463.03422 8336026; 463.05563 4005323; 463.42528 1164; 463.9787 15252; 464.20475 8437805; 464.46553 2109; 464.57363 30845; 464.59672 6056; 464.62581 47175; 464.64247 212028; 465.00579 39264; 465.03833 15212; 465.04973 183823; 465.11761 152762; 465.35949 1837; 465.4289 4349; 465.55849 71874; 465.84674 4937375; 465.87077 8864506; 466.1447 1173818; 466.21192 23581; 466.22521 5075963; 466.41132 366898; 466.57858 8315297; 466.6625 412773; 466.76131 37671; 467.20321 1785080; 467.27937 205204; 467.47584 78608; 467.50088 77641; 467.91163 1382473; 467.99357 29173; 468.48882 62791; 468.49903 30905; 468.84249 7861; 468.86448 3977; 469.13554 2952821; 469.17544 6539; 469.29791 26529; 469.32455 232251; 469.37475 65632; 469.74883 65091; 469.86471 1869567; 470.00237 22783; 470.12284 77855; 470.12529 3005854; 470.52147 24050; 471.01291 84742; 471.32866 3511; 471.4298 48924; 471.68399 27664; 471.75434 733143; 471.89364 17555550; 472.03586 4733837; 472.269 55466; 472.57425 1690903; 472.6781 937202; 473.1426 9194231; 473.37783 1715561; 473.39769 74880; 473.47581 1165081; 473.91215 19561; 474.32625 79195; 474.39063 8537; 474.59159 57238; 474.90428 4294; 475.28242 39099; 475.37855 28347; 475.46714 24299; 475.66835 8613771; 475.70397 45141; 475.82678 20058; 475.90959 2801; 475.95992 3021; 476.16436 31885; 476.47741 49094; 476.6448 4723993; 477.02448 29609; 477.10983 1928362; 477.1714 68765; 477.3488 75420; 477.48844 1608397; 477.54998 6029559; 477.95755 206408; 477.97135 19886; 478.5278 106751; 478.5303 719263; 478.63775 101062; 478.98318 4970808; 479.39405 4420148; 479.41343 415208; 479.54079 48253; 479.59661 9098; 480.09239 1103765; 480.65163 115725; 480.81921 525502; 480.99695 5918; 481.26593 23891; 481.27047 10105; 481.31999 1576043; 481.35911 1612098; 481.41803 4587213; 481.65476 28850; 482.11703 65234; 482.38372 303152; 482.41706 21733820; 482.67822 1698831; 482.69121 6604; 482.77185 10832; 482.80958 3376; 483.22681 18363; 483.2757 38240; 483.35241 5721; 483.47329 11685; 483.75316 46; 483.86954 8489464; 483.87931 30395; 484.03416 8078232; 484.18852 1988965; 484.22285 72904; 484.44318 10610; 484.48475 11725; 484.77224 7158614; 484.77864 36413; 484.92579 3185391; 485.41936 78248; 485.70248 21016; 485.85888 5251; 487.23222 5898; 487.47711 756999; 487.51511 72486; 487.55233 1123; 487.68994 28220; 487.86442 181037; 488.03047 86552; 488.27072 6907052; 488.2836 9089; 488.34551 3164756; 488.37993 3605184; 488.77919 32289; 488.8953 48432; 489.17713 1031540; 489.21358 69878; 489.21479 21689216; 489.28078 174057; 489.31232 1000952; 489.54904 112402; 489.63588 25938; 490.01179 13618; 490.28279 4419892; 490.80194 128842; 490.88806 4932; 491.18018 16669798; 491.43053 20281237; 492.3282 105197; 492.55427 1260; 493.04307 1975987; 493.14462 4800249; 493.33802 108; 493.53231 988; 493.69122 12329; 494.04573 24519; 494.29123 56882; 494.32962 8962; 494.62837 856; 494.63032 673573; 494.64089 6281872; 494.67381 3175677; 494.79397 68924; 494.82306 6059949; 494.9125 9563; 495.04575 4459180; 495.05118 622096; 495.06492 7923314; 495.42692 4154; 495.511 43704; 495.57733 69845; 495.59606 1391; 495.69114 73585; 495.69349 361151; 495.80233 7988; 495.91367 64150; 496.40756 6977; 496.51693 2671838; 496.66044 31557; 497.21515 4778488; 497.51221 36406; 497.53515 3931568; 497.54175 4002; 497.54817 49313; 497.66697 15641; 497.68696 1236; 497.72535 23562; 497.80846 32455; 497.97469 397073; 498.10161 54909; 498.24009 100232; 498.55484 11690; 498.6193 33532; 498.63241 590950; 498.77453 6795001; 498.94511 30225; 499.1229 982232; 499.21761 660459; 499.35303 2329084; 499.38449 20622; 499.95753 5242; 499.98596 18924113 diff --git a/traffic/traffic_5e9_3.txt b/traffic/traffic_5e9_3.txt new file mode 100644 index 0000000..948455d --- /dev/null +++ b/traffic/traffic_5e9_3.txt @@ -0,0 +1,7 @@ +<3, 0>: 0.0417 21038; 0.06804 739283; 0.18153 431854; 0.58771 51162; 0.64773 26720; 0.68454 5023; 0.85571 88414; 0.88836 8833978; 0.96857 1137; 1.00685 7368; 1.0276 28085; 1.05547 26376; 1.39964 82561; 1.50531 4447018; 1.82045 8424; 1.87584 1682; 1.92735 7663; 2.71754 18808; 2.82087 4030615; 2.85442 911192; 2.92649 2608; 3.04312 1169750; 3.15405 855625; 3.2941 16439; 3.31157 22567; 3.50193 45203; 3.74446 8844; 4.15975 28361; 4.70216 18174; 4.99773 25422; 5.06072 293722; 5.12999 20739; 5.19968 21187175; 5.38376 2814; 5.41262 26333; 5.56256 26283; 5.67495 8061; 5.70523 1729278; 5.90708 30237; 6.01457 30768; 6.05503 1083869; 6.41586 2977884; 6.59309 6783249; 6.77661 20182; 6.81291 127746; 6.98912 86359; 7.05898 81493; 7.07461 9892; 7.14341 33316; 7.157 72366; 7.26471 60644; 7.36517 1023351; 7.40303 152459; 7.9122 292712; 7.92058 9620400; 7.9787 2268301; 8.11777 24950; 8.62432 23917; 8.87091 42852; 8.99216 1347151; 9.39578 21572; 9.70043 2058557; 10.23786 4077640; 10.94145 26383; 11.11142 4116606; 11.30024 1875; 11.83523 6821; 11.8908 4945698; 12.01018 4555; 13.14072 13377; 13.3989 712204; 13.54588 4377; 13.92269 37404; 14.10517 45433; 14.76137 30472; 14.93536 20847554; 14.94603 504907; 15.05596 432699; 15.05801 39413; 15.12102 7483193; 15.43964 403337; 15.49166 9580; 15.51859 5451676; 15.68435 1020668; 15.95771 2236724; 16.00457 61241; 16.12779 18849; 16.45181 133533; 16.82165 53633; 16.98242 65021; 17.39806 927777; 17.64904 149620; 17.67658 25201; 17.95449 577855; 18.05581 49447; 18.11963 1409737; 18.14457 6296647; 18.35725 4932; 18.50018 66418; 18.6588 8190; 18.89812 998460; 19.23161 15117889; 19.35232 1020690; 19.44909 76536; 19.75416 1964919; 20.11078 58388; 20.39819 24747; 20.57745 189135; 20.64787 357217; 20.76245 11878; 20.83531 4803; 21.08757 122058; 21.46337 280951; 21.64836 3309879; 21.99809 1904764; 22.03923 284420; 22.3635 78095; 22.4141 1373448; 22.54635 3851256; 22.79806 713339; 22.96845 7127; 22.98245 3346; 22.99343 3334; 23.16828 3923245; 23.24137 49237; 23.3273 320958; 23.37531 1551076; 23.56461 6361; 23.75143 43882; 23.82444 4132; 23.86428 182529; 23.98935 934038; 24.07995 1739904; 24.61456 2736; 24.63425 6970334; 24.69588 22746; 24.96416 1195230; 25.32526 149162; 25.38834 67301; 25.60369 69037; 25.8625 1658030; 26.04364 27972; 26.40353 89712; 26.48475 21156; 26.62507 84064; 26.91727 114553; 27.06812 1050745; 27.16664 6935; 27.16779 20761; 27.47121 39926; 28.00046 4134081; 28.50484 27391; 28.59766 9401; 28.80404 11990; 28.80979 1641; 28.94538 2368463; 28.95527 54415; 29.07673 24444; 29.0998 2235; 29.12594 28173; 29.37992 9577; 29.41278 36817; 29.43297 3311597; 29.48912 369; 29.57751 8391; 29.8468 24654; 30.21302 78498; 30.23283 7590395; 30.33489 8640; 30.55623 66767; 30.68372 75824; 30.74293 1154227; 31.02331 150337; 31.18091 3697; 31.50451 3592291; 31.55685 784021; 31.69367 1269943; 31.75878 1105254; 31.98755 14510; 32.11789 3485957; 32.15353 880146; 32.20908 1302999; 32.39801 2401; 32.40082 41418; 32.89619 40542; 33.05016 1950191; 33.07548 1180214; 33.6348 75135; 34.12815 4393311; 34.15357 27472; 34.43739 194564; 34.44758 116532; 34.81727 4918; 34.96204 20501; 35.19181 6073993; 35.55831 40300; 35.88807 4410116; 36.03666 5154; 36.72596 46991; 36.73516 11515; 36.79461 361648; 37.06686 1400405; 37.2189 23041; 37.25319 1601692; 37.70626 49588; 37.78421 74040; 38.02303 8993; 38.11214 70516; 38.18995 50671; 38.26827 405108; 38.29303 40847; 38.41887 69548; 38.73252 2007331; 38.77453 47998; 38.82371 28893; 39.20769 1074373; 39.29028 6426067; 39.75982 1855936; 39.90971 35008; 40.03285 6415; 40.06468 25582; 40.33363 970; 40.86198 8070328; 41.19493 315240; 41.86333 5180; 42.02784 13657282; 42.07985 29478; 42.36737 54850; 42.36912 6459519; 42.63742 4807858; 42.77883 70313; 42.80116 68563; 43.26735 761729; 43.57846 20526; 43.60743 11508; 43.67669 72611; 43.67697 4004379; 44.01125 25860; 44.09645 7991; 44.33947 489970; 44.41437 5583079; 44.60604 6740073; 44.66867 31282; 45.07759 18509; 45.18823 21020; 45.24919 2989377; 45.26818 3226100; 45.41251 1175021; 45.73135 5815; 45.86005 17530; 46.01152 43140; 46.33432 991237; 46.40464 26811945; 46.50816 6852720; 46.81803 80648; 46.9719 81430; 47.17519 25000; 47.49098 528703; 47.52665 39448; 47.64235 9249; 48.63841 45873; 49.13977 1352264; 49.17149 2999; 49.39293 131816; 49.59378 21616; 50.01881 1658197; 50.31164 2214114; 50.55214 27953; 50.55552 3618014; 50.70465 24782; 50.86134 148528; 51.75311 111648; 51.78291 3024; 51.84267 2185563; 51.94907 57640; 52.01509 25130; 52.13458 7207918; 52.1973 59858; 52.4566 74235; 52.53445 20518; 52.73033 2061; 52.82543 63967; 53.00406 9646842; 53.20721 97348; 53.617 1017; 53.61895 3920147; 53.73274 3869937; 53.87201 66725; 53.94938 195766; 54.06616 5228; 54.36451 18397; 54.62083 324699; 54.72719 25638; 55.48853 7526792; 55.57647 2297; 55.84937 1434580; 55.87001 19580; 55.93686 2358045; 56.10811 417642; 56.20539 116113; 56.23988 8959; 56.3008 16190; 56.40946 7559261; 56.62668 33807; 56.83629 3758884; 56.86979 4331798; 56.87947 134868; 56.98845 44569; 57.2169 9575038; 57.39851 166274; 57.53611 56569; 57.58296 207778; 57.69632 1343489; 57.91476 1967502; 57.94978 34388; 58.13194 1211259; 58.19573 1946773; 58.20359 1843459; 58.35157 134; 58.49508 167110; 58.8266 1515974; 59.24619 2647; 59.60611 23833; 59.74479 4589087; 59.87122 18079; 60.14345 61484; 60.33852 197; 60.38896 37212; 60.74594 1215329; 60.81816 166977; 61.32594 22812; 61.48207 22044; 61.83857 23193; 61.95124 5298; 62.02816 6154; 62.22979 191880; 62.25592 6522; 62.3483 2159112; 62.38549 47612; 62.48016 52397; 62.53014 4807323; 62.85634 123946; 62.96056 2574587; 63.26968 902588; 63.46643 8731; 63.52877 1531005; 63.8129 107339; 63.83256 55204; 64.128 4244705; 64.30285 449841; 64.33416 2876; 64.43276 164449; 64.86583 50595; 65.01164 9899; 65.03855 9805458; 65.04186 5502; 65.55054 367542; 65.79653 21119; 65.81739 4156850; 65.87808 13266; 66.23166 13659; 66.24592 3972; 66.61627 41061; 66.66078 1686573; 66.84282 2286136; 67.05412 2460; 67.12832 27977; 67.2695 232; 67.31362 2029290; 67.45138 64890; 67.59587 4957; 67.63885 21079208; 67.6939 31984; 67.79339 33709; 67.95039 8643; 67.96017 5958; 68.17049 5837; 68.51298 68079; 68.5301 8032514; 68.75177 31102; 68.77934 8095211; 68.90156 76550; 69.04862 1854319; 69.60958 43668; 70.07991 82549; 70.37918 8951548; 70.49291 16158; 70.54583 126306; 70.92131 42322; 71.07243 72731; 71.18164 71908; 71.18626 52825; 71.18841 25048370; 71.43378 1104724; 71.57196 10973258; 71.59668 4587686; 71.69509 2076; 71.79553 57085; 71.80459 4975; 72.01038 1797715; 72.54388 2474938; 72.65594 17581; 72.76072 210656; 72.87152 55389; 73.02767 3749; 73.14325 685; 73.16037 186796; 73.55865 183470; 73.57498 3512; 73.67539 3950538; 73.68148 208420; 73.73389 7585466; 74.29045 60250; 74.30993 4939347; 74.64192 6783; 74.75559 1504857; 74.87169 1045675; 75.0416 20543; 75.47584 54111; 75.60909 18130; 75.63511 500652; 75.85416 71760; 76.34166 11344; 76.39526 1705677; 76.48719 5881033; 76.5117 1853290; 77.18085 65544; 77.22635 55964; 77.27664 22326; 77.50998 53433; 77.52673 75884; 77.68413 58881; 77.71063 69661; 77.92896 1712371; 77.9877 36112; 78.11156 8491686; 78.2257 38480; 78.31369 7468581; 78.75396 48540; 78.94997 71393; 79.00413 146959; 79.33859 1807036; 79.63588 326860; 79.80485 581846; 79.83652 784508; 80.1031 7671403; 80.25389 7734; 80.54598 20852; 80.5759 6681196; 80.70824 6299; 80.78863 23443; 80.96062 4108464; 81.09061 19627; 81.10984 9304850; 81.1761 2420; 81.20515 135834; 81.24141 61109; 81.68903 37999; 81.99521 258; 82.31059 4751; 82.62327 673900; 82.91553 572748; 82.93716 85232; 83.21098 613309; 83.43719 4150689; 83.67062 9098286; 83.7506 20943; 83.84181 59615; 83.89265 13375322; 83.96672 729880; 84.2995 3744430; 84.33084 70165; 84.40422 41512; 84.45939 22530; 84.64108 3092792; 84.67832 68944; 84.77103 8116181; 84.81124 40900; 84.82522 138510; 84.85889 1439500; 85.62396 22436168; 85.72047 3326062; 85.85869 25733; 86.32453 55384; 86.59817 154197; 87.32802 29773; 87.67851 51717; 87.90043 749922; 87.91621 27293; 87.91672 34072; 88.09878 60285; 88.33122 66915; 88.61761 24454562; 89.10568 1760932; 90.10503 904904; 90.13481 969250; 90.18226 19556380; 90.44452 3196; 90.49406 3615437; 90.59444 1522596; 90.65248 316117; 91.42874 4582; 91.44895 60795; 91.79976 1548551; 92.30605 17155040; 92.33826 1220; 92.44393 854495; 92.57344 6830; 92.77893 61397; 92.84685 1003; 93.01736 229137; 93.17253 7835104; 93.38584 46070; 93.44831 38499; 94.09378 229041; 94.09995 9270999; 94.24781 68578; 94.28658 8835; 94.35246 7292; 94.51955 181043; 94.62702 54118; 95.47266 1213465; 95.79637 4869; 95.9576 825685; 96.56793 39874; 96.68323 41158; 96.85338 40282; 97.21089 25408; 97.51993 86242; 97.6476 32624; 97.79858 50231; 97.83855 2872277; 98.10759 41062; 98.16254 338875; 98.17699 169530; 98.36698 5005; 98.46193 498597; 98.51816 1294; 98.55545 26985; 98.85016 34487; 99.03514 59609; 99.41964 5698; 99.61719 732568; 99.69073 25145; 99.69661 546164; 99.75146 35537; 99.83319 1554262; 99.9279 116874; 100.16146 2384893; 100.20338 48416; 100.93287 8821135; 101.15262 4710429; 101.32881 717559; 102.06503 3909; 102.13606 48256; 102.32111 79208; 102.33334 4172993; 102.66497 64034; 102.77364 519138; 103.51168 465899; 103.54613 36909; 103.92517 63929; 103.99682 2267; 104.23813 4046343; 104.32513 3919; 104.45846 8354; 104.63434 8033292; 104.65927 49969; 104.74041 22960; 104.91745 21228; 105.42398 7663110; 105.43279 6524799; 105.61138 39451; 105.78757 706505; 106.22385 26933; 106.32921 15522; 106.4141 989028; 106.66169 5217; 106.90454 56632; 107.12764 1869; 107.24894 22789; 107.28935 25464366; 107.3641 6876335; 107.43631 153968; 107.55538 2542; 107.99508 2103; 108.30208 6714098; 109.21977 12417; 109.26265 20031; 109.40418 1027185; 109.45124 4417100; 109.4556 110338; 109.51444 2890471; 109.58139 29878; 109.67097 66687; 109.82932 49039; 109.91599 5880; 110.05765 7929348; 110.24189 6787596; 110.4633 1650850; 110.48017 8983111; 110.5729 4711; 110.67552 26287; 110.76954 23251; 110.8367 72395; 111.0902 354187; 111.66207 964392; 111.67084 32639; 111.69539 24952; 111.73262 57812; 112.05285 35601; 112.66425 27863; 112.72065 1437737; 113.19022 6233171; 113.47668 18563; 113.86216 17296; 114.23845 1834813; 114.33301 184373; 114.5753 2383014; 114.76356 2389556; 114.79247 178715; 115.12526 1354; 115.19052 75261; 115.53103 7291; 115.56424 40041; 115.63711 1617122; 115.71202 4408030; 115.99281 34536; 116.1113 59246; 116.94803 13738; 117.62325 66623; 117.69459 29317; 117.76497 25959; 117.84559 7284; 118.25243 1571; 118.46148 484635; 118.74607 4255493; 118.89586 28757; 119.2727 788644; 119.33027 386538; 119.34981 69453; 119.67853 3178; 119.70341 7050257; 119.80183 22112; 119.84392 27930; 119.93537 24628; 120.24311 51089; 120.28458 2941; 120.46174 26736; 120.49197 51182; 120.64184 132340; 120.68816 523; 120.82588 26042130; 120.94609 146590; 121.1232 28098; 121.15091 628565; 121.1854 252200; 121.26929 2728607; 121.38084 68056; 121.81763 23061; 121.94561 4756526; 121.94626 7303976; 121.97126 3872; 122.49937 31745; 122.72594 181154; 122.78138 52176; 122.84144 64576; 123.22217 42829; 123.61119 22571; 124.51572 958990; 124.54674 432086; 124.87636 452481; 124.88191 3278; 125.24012 57148; 125.48141 29682; 125.59672 4030133; 125.62368 696431; 125.815 2814; 125.85142 32347; 125.88243 9935259; 125.99722 98517; 126.14475 1399915; 126.33248 650462; 126.48906 62088; 126.75341 1977148; 127.00215 21814; 127.05655 13793; 127.16529 1847289; 127.18188 78245; 127.4318 79493; 127.49286 1660298; 127.60653 146828; 128.00511 23096; 128.39567 64041; 128.42384 8157; 128.48774 26158; 128.52193 4778; 128.68929 523326; 128.83368 248; 128.83569 2719712; 129.37446 4715244; 129.65051 1066526; 129.66893 20765438; 129.82762 79976; 129.88498 1594714; 129.92413 27831; 130.10226 4398; 130.21648 1007395; 130.46374 460015; 130.54051 2119892; 130.5463 30751; 130.68278 996861; 130.77965 71856; 130.9224 671343; 131.12101 2873899; 131.1989 64075; 131.83828 63230; 131.99594 408011; 132.00952 29954; 132.25268 21093; 132.39043 24905; 132.39974 9797177; 132.56263 1662445; 132.57062 1412250; 132.70556 54276; 132.79265 60093; 132.90854 33803; 132.93373 41127; 133.33819 10569233; 133.33821 33198; 133.63849 4249342; 133.73009 5204; 133.96925 162943; 133.98791 349696; 134.1698 1433119; 134.36088 1129932; 135.02063 678162; 135.14735 1443; 135.28041 1029996; 135.36544 3482926; 135.51275 151; 135.5985 9158325; 135.7352 3606; 135.78341 35680; 135.89333 57849; 136.06433 3695701; 136.31619 12154; 136.7124 1418559; 136.80396 740994; 136.93285 46879; 137.21174 4213; 137.54386 41669; 137.59349 147924; 137.65856 66245; 137.68808 4946052; 137.75625 29197; 137.83688 8423883; 137.96742 20600; 138.13937 1269; 138.19896 2532517; 138.27828 5162266; 138.29141 369151; 138.32281 1799388; 138.63395 8286761; 139.21944 954171; 139.38943 59403; 139.40822 43075; 139.50991 69668; 139.79594 79734; 140.10852 28778; 140.12199 2582423; 141.11151 36211; 141.65118 1158; 141.84395 411563; 141.95639 57599; 142.09673 8673; 142.40781 56501; 142.46317 8329; 142.59457 27162; 142.8765 35597; 142.93332 44402; 143.21309 655669; 143.21502 42059; 143.62608 25086; 143.72005 66916; 143.8877 6238; 143.9481 30403; 144.12683 27031; 144.1422 3861505; 144.21322 187581; 144.2487 3187334; 144.77903 6833696; 144.96071 4249634; 145.12965 34609; 145.14649 16178; 145.16885 18701; 145.21715 4507; 145.22154 6018; 145.2291 8596; 145.50583 8046632; 145.50602 8663790; 145.56232 70698; 145.63301 17855; 145.71851 20672; 145.86131 6981; 145.97428 14499; 146.05422 3158785; 146.08476 1977; 146.48731 78230; 146.75934 4932202; 146.87584 15628; 147.43309 31219; 147.78849 41046; 147.80297 52643; 147.8635 142444; 147.97051 8338; 148.05627 1501171; 148.12076 48309; 148.17569 1186; 148.22573 25100; 148.58351 281324; 148.85664 6464999; 148.92142 19379; 149.02532 2492678; 149.33275 5866; 149.44456 1482420; 149.6027 1925165; 149.95226 1452422; 150.02241 13307561; 150.20514 8768492; 150.98633 15962; 151.24673 3426562; 151.64657 133589; 151.7106 8087171; 152.21184 407817; 152.28914 6700699; 152.48304 3454619; 152.84503 58993; 152.87397 1186167; 153.01127 1826366; 153.11463 1411129; 153.12122 1527128; 153.24474 4909; 153.53608 24326; 154.55437 1866481; 154.56509 57778; 155.05975 45942; 155.11144 28129565; 155.29997 31388; 155.41456 57394; 155.83789 64749; 155.90036 1443643; 156.17597 1277; 156.32537 15855; 156.34374 177275; 156.45445 8500; 156.48497 858859; 156.49701 6229; 156.57414 28424; 156.64415 879000; 156.85783 3282885; 156.97797 19205; 157.28414 21620119; 157.37805 87681; 157.74685 2536487; 157.75375 65674; 157.95642 56932; 158.34086 22573; 158.56874 2090154; 158.57882 5438167; 158.62683 4456623; 158.68281 73078; 158.98601 1726; 159.12609 1244191; 159.36224 6674; 159.46628 56522; 159.51107 33034; 159.53071 33996; 159.58525 1493911; 159.60684 190624; 159.70876 1952115; 159.84633 195075; 159.88775 62166; 160.03989 70832; 160.31052 177155; 160.61638 179020; 160.68823 14343; 161.19396 2982473; 161.19496 6912218; 161.37392 16422; 161.50566 925505; 161.55549 8874; 161.68802 1267226; 161.71665 3539876; 161.8924 764157; 162.14754 27424; 162.3246 6311; 162.60843 3623539; 162.81018 80565; 162.92494 3161377; 162.99908 4429; 163.03498 4030331; 163.0934 59422; 163.30671 20145; 163.77834 38692; 163.85469 10369; 163.94271 56329; 164.15338 1793124; 164.69652 45955; 164.86899 213945; 164.87247 2632958; 164.96843 3003; 164.99054 35160; 165.34966 64555; 165.82949 598766; 165.93657 6385; 166.08502 6873365; 166.79354 38236; 167.13117 7091; 167.13305 35294; 167.37165 145734; 167.45613 43427; 167.52653 7225625; 167.71131 3747041; 168.19824 2457; 168.24422 62573; 168.53867 9633; 168.60663 7399967; 168.90258 162427; 168.917 165892; 169.29019 135041; 169.5679 23048; 169.64585 14113; 169.85718 26705; 169.97657 2666927; 170.09251 22194126; 170.17835 3028716; 170.36622 1750195; 170.53514 67533; 170.57817 56276; 170.70686 72534; 170.75579 98470; 170.87382 57525; 170.94092 654969; 170.95298 1946; 171.08569 3958; 171.77758 1797717; 171.90921 1030006; 172.16778 10702; 172.28268 21443; 172.36514 2906421; 172.58819 43046; 172.75864 45006; 172.99116 955031; 173.0009 1567440; 173.14029 21354; 173.23449 14468176; 173.79014 54845; 173.91132 49955; 174.64345 13040579; 175.06593 86308; 175.31407 7838794; 175.37246 11176; 175.52309 1051535; 175.79257 1814428; 176.00122 57360; 176.15861 16494; 176.70549 1290898; 176.81109 1026354; 176.81733 2560557; 177.01513 1810; 177.11195 75534; 177.15441 3021; 177.1707 33092; 177.30319 79107; 177.42007 8764; 177.50965 23298; 178.04722 1582924; 178.34008 6155; 178.34763 25363; 178.57193 7663; 178.69937 8744; 178.71776 120885; 178.92928 34800; 179.03999 1576; 179.14373 8533113; 179.21306 2587001; 180.89722 1357959; 181.01733 79148; 181.04083 2985; 181.25234 1157972; 181.33406 31285; 181.40412 71836; 181.69293 24727125; 181.77214 4484529; 181.83989 54688; 181.92556 5274; 182.10197 3741677; 182.19333 6636; 182.45021 57400; 182.45899 43934; 182.9989 39590; 183.55531 964314; 183.89225 1571810; 184.21806 36072; 184.25601 100; 184.31467 164197; 184.44852 994391; 185.13909 20613; 185.2757 6075; 185.39334 393048; 185.39376 3768807; 185.54118 893425; 185.71649 18813; 186.17364 26076562; 186.2145 7982798; 186.21521 466575; 186.46799 1200966; 186.5341 72601; 186.64323 2403; 186.82541 36490; 186.83171 42393; 187.06677 68193; 187.10745 1866817; 187.11748 1980901; 187.78995 884220; 188.10824 6381; 188.34911 7228; 188.38473 77310; 188.39518 29213325; 188.43086 176515; 188.53749 5005; 188.82983 70825; 189.09116 3522809; 189.41975 11183400; 189.4787 1944; 189.84643 59921; 189.90684 9140; 190.03128 758125; 190.3033 3438791; 190.46386 2584724; 190.77576 29544; 190.8276 2268; 191.11844 21638; 191.12152 3819353; 191.13247 569032; 192.4409 72334; 192.57926 67013; 192.88272 3276732; 193.18938 523; 193.25809 1155552; 193.45726 1728749; 193.5092 10; 193.72699 6801216; 193.89119 3901060; 193.89579 1720; 193.90693 7803; 194.02197 680739; 194.05672 88134; 194.19016 861413; 194.34038 2148; 194.41112 8294; 194.63385 5556; 194.81732 1930084; 194.91452 203478; 195.06116 28273; 195.0737 8414470; 195.08808 3344774; 195.68983 52490; 195.76701 15777; 195.99965 3926077; 196.0796 8667; 196.15428 114731; 196.24897 29090598; 196.39916 22466; 196.58228 26435413; 197.0063 1616790; 197.16195 3377978; 197.18047 6721991; 197.22987 67602; 197.31291 4382755; 197.32955 7464; 198.02585 1539624; 198.2218 4510; 198.2472 2290; 198.33433 14509; 198.89869 1195452; 199.07276 55732; 199.14386 39573; 199.37518 1050824; 199.68037 8710; 200.16144 35967; 200.18446 48112; 200.22972 28592; 200.37011 24342; 200.50564 63891; 200.91961 12991; 200.98563 20148; 201.08995 1672711; 201.96282 5825385; 202.02192 1197991; 202.05777 997369; 202.13557 13855; 202.30979 7873; 202.37495 23453; 202.52876 7687; 202.54377 4061600; 202.90459 123791; 203.06933 55967; 203.18192 17157; 203.40763 48742; 203.58379 8126968; 203.84963 15490; 203.87319 4435502; 203.88552 195861; 204.16422 6900930; 204.45049 2521918; 204.65978 780354; 205.07948 14547; 205.48748 75718; 205.50623 1189339; 205.78856 114521; 205.79856 4821703; 206.74516 153234; 206.83715 45051; 206.84774 29700; 207.14822 706120; 207.21081 23742; 207.2277 1884258; 207.36987 26194; 207.44642 69696; 207.70273 6761875; 207.85936 730462; 208.06326 63655; 208.15573 23020394; 208.17982 58519; 208.2531 304855; 208.45913 729639; 209.03798 8882960; 209.13608 108229; 209.25765 47378; 209.37872 29739912; 209.70885 57635; 209.77405 6696676; 209.80376 116918; 209.81513 23775; 209.87563 4510; 210.18348 24306; 210.2038 7127; 210.23582 805504; 210.43415 73897; 210.71818 57378; 210.80241 3112459; 211.13388 48131; 211.15303 8128799; 211.84417 1909416; 211.85878 584434; 212.11241 24496; 212.41433 5646; 212.43889 21213; 212.77893 13986; 212.81144 9874843; 212.82843 1857636; 213.08223 78766; 213.17123 28594; 213.25816 24430; 213.49379 9989; 213.84862 53253; 213.85792 54238; 214.25906 3063; 214.59307 6044; 214.75887 65355; 215.24597 4181913; 215.33687 4686; 215.69589 1765890; 215.79366 22485; 215.82279 8432; 216.06541 5158474; 216.24984 57317; 216.66203 1546; 216.73826 1839658; 216.76162 48420; 216.85034 6168; 217.04156 1032435; 217.12343 1824638; 217.54679 2093929; 217.58933 27060; 217.75986 56340; 218.28183 1051433; 218.28602 2135442; 218.28981 389163; 218.33171 160727; 218.35356 1382767; 218.56726 7260; 218.59813 75386; 218.78832 6232152; 218.97713 157697; 219.01415 39435; 219.02002 4029; 219.04865 8692; 219.06169 562681; 219.52394 1435135; 219.72756 1281129; 219.81994 33114; 220.06273 24113; 220.14282 4128667; 220.40295 6086; 220.55623 4381; 220.57914 10990; 220.61301 686876; 220.68458 1875588; 220.75597 14008477; 221.37029 5737; 221.60995 2458331; 221.62375 20868; 221.65036 1504; 221.66091 3645981; 221.76212 4373; 221.76593 3210274; 221.77221 188637; 221.80977 5841561; 222.02051 2206870; 222.06203 5124; 222.302 36825; 222.4582 19323641; 222.66617 6724; 222.86443 8852; 222.92431 11646680; 223.05671 2868245; 223.17254 33653; 223.66807 49803; 224.08115 1084806; 224.14885 109504; 224.15505 26003; 224.2445 8509; 224.27061 5018913; 224.48264 55607; 224.59862 79472; 224.63013 1809570; 224.66054 13446; 224.87696 1061488; 224.92849 54423; 225.06368 1166272; 225.08647 1177; 225.29009 14612094; 225.352 73625; 225.36087 372134; 225.52133 23976658; 225.61808 40260; 225.68907 15610; 225.71252 17879211; 225.83588 6607; 225.91874 48264; 226.06744 1900320; 226.15329 11402; 226.36012 1722848; 226.73614 14960; 226.98834 8387; 227.26773 77013; 227.29058 550604; 227.32803 1023843; 227.64307 2900004; 227.67289 62352; 227.80373 53608; 227.82102 75447; 228.07523 179713; 228.15788 3526180; 228.83243 8551520; 228.88833 948160; 228.98821 1546491; 229.1118 73552; 229.40019 35628; 229.62075 94160; 229.7112 2719; 230.22338 7035; 230.30795 2797235; 230.38192 693627; 230.75426 36331; 230.83925 41726; 230.90935 25421; 230.9135 10382363; 231.20079 1562917; 231.24007 235550; 231.24302 3800873; 231.30387 3126; 231.41137 1992151; 231.50009 7643891; 231.53315 16668; 231.64083 634280; 231.74879 1995514; 232.08645 171027; 232.26695 1817820; 232.73174 6229553; 232.74344 44025; 232.75324 1429; 232.78533 33775; 232.96051 23209; 233.00105 977929; 233.02098 410382; 233.1886 44977; 233.19569 144461; 233.2591 6515; 233.28516 3925; 233.40447 5375; 233.5259 6675731; 233.70795 1186512; 233.77367 37902; 233.87465 5675; 233.88618 46737; 234.12573 829861; 234.29821 3528455; 234.43552 3982402; 234.45594 1025057; 234.83598 20943723; 235.37061 29064; 235.4442 8718878; 235.53106 53922; 236.04896 2424; 236.33702 1250822; 236.54725 8130; 236.57535 43026; 236.58625 38217; 236.61275 1983758; 236.80142 8727620; 236.86594 14829; 236.90639 3265313; 236.99269 80636; 237.24732 764; 237.25434 59812; 237.27474 4383212; 237.29346 1975584; 237.63339 4979351; 237.6561 6198; 237.68343 20362; 237.78278 73948; 237.91153 3927063; 238.6238 4996847; 238.80208 2920577; 238.84934 422884; 238.88913 5835695; 238.89876 8725297; 239.11833 11659; 239.21299 1165641; 239.43189 4207625; 239.56299 20580; 239.62725 2031; 239.68094 43348; 239.92501 4636753; 240.26429 2402073; 240.48705 484529; 240.61659 9580; 240.65444 177263; 240.89493 67692; 240.90488 26773; 241.05157 41559; 241.14843 28822; 241.24901 1432194; 241.6654 39473; 241.88073 346032; 241.88841 8415; 242.11485 186011; 242.17345 188919; 242.22899 718164; 242.37284 198631; 242.48644 446; 242.53789 398; 242.53812 5582804; 242.61432 21233; 242.81448 29708; 243.01479 22940; 243.32911 28048; 243.45442 101820; 243.49185 12038; 243.58803 19056; 244.07928 27804; 244.12619 3202; 244.41606 38930; 244.63971 1730143; 244.66886 1804; 244.68854 6784; 244.80464 59032; 244.89406 317362; 245.02759 27572; 245.15978 20817; 245.18175 4179033; 245.40738 3234419; 245.5351 2220324; 245.63321 890521; 245.63907 1770063; 246.10318 2932; 246.3344 59606; 246.35375 41344; 246.44783 273674; 246.57535 36956; 246.82385 30653; 246.87226 72418; 247.25778 20638; 247.29043 8967; 247.31101 27419; 247.49243 28083695; 247.71653 54170; 248.08176 2665; 248.28385 694926; 248.30633 71753; 248.41925 1240192; 248.79787 4278; 248.82486 187502; 249.0182 1639353; 249.02354 76469; 249.2939 153050; 249.30679 8964954; 249.45988 2179874; 249.48073 4185; 249.52896 1256308; 249.83687 1443727; 249.8636 162057; 249.98145 29615373; 250.01245 4829812; 250.12291 3628742; 250.22846 804831; 250.28682 3000713; 250.38649 5601; 250.4552 9243; 250.46738 42376; 250.61052 21977; 250.76562 2611721; 250.786 15802; 250.91744 42175; 251.44846 2467803; 251.50799 4036; 252.04211 1235; 252.06834 608527; 252.34536 6612269; 252.34753 5475; 252.38885 25305; 252.48889 10410410; 252.54329 1177321; 252.57145 38470; 252.58784 4889; 252.6396 20452; 252.65587 26171; 253.01323 419669; 253.01746 1483134; 253.09022 72327; 253.49137 26974; 253.52432 7612; 253.6594 45674; 253.70371 3042; 253.82974 1543847; 253.90108 1612355; 254.33271 29999; 254.39375 28999; 254.66558 56214; 254.68227 52602; 254.80648 18583; 254.88625 52008; 254.91233 55463; 254.98519 3042182; 255.15165 7138488; 255.4611 9139656; 255.72743 131522; 255.73755 3769533; 255.90955 33159; 256.03109 438679; 256.05243 49514; 256.15706 425; 256.42685 70729; 256.44902 18212; 256.57446 13616; 256.57862 66029; 256.92657 30177; 256.9727 1529836; 257.07702 1706005; 257.19071 20996; 257.27992 21512; 257.88157 8743344; 257.8952 2441652; 257.96327 24617; 258.05514 3009206; 258.17042 9745; 258.26261 634936; 258.40139 35799; 258.46186 67067; 258.53555 8829; 258.67011 46184; 258.73415 3769435; 258.76404 6227369; 258.78386 7127040; 258.78443 1916121; 259.10425 4565712; 259.65778 60259; 259.67394 5564; 259.80576 2527783; 259.87619 40415; 259.95618 3076731; 260.1105 9809; 260.49789 227909; 260.53844 27056; 260.89104 903077; 260.95002 1293684; 261.45801 24709; 261.46117 804744; 261.57324 34553; 261.91289 191154; 261.94985 110099; 261.95073 459460; 261.99706 20646; 262.84677 6299; 262.9222 8336; 262.94668 62225; 263.0513 6432665; 263.20522 1846618; 263.32151 21511; 263.66172 23495; 263.77778 193258; 264.91588 53626; 264.93978 14301; 265.11316 1805482; 265.97173 1210472; 267.00301 31331; 267.08883 3930781; 267.31643 66919; 267.51733 7447; 267.54906 1579199; 268.19997 68707; 268.25986 3107; 268.51631 26524; 268.62354 1046338; 268.90231 28183; 269.16376 5978; 269.64967 4866074; 269.71408 6875021; 269.73665 24960; 269.88285 106848; 269.9907 78940; 270.17649 15032; 270.28139 13751; 270.28998 3554649; 270.29181 69497; 270.46932 1101544; 270.83846 28104; 271.44898 92373; 271.68182 2265; 271.68869 59755; 271.71038 24854; 271.8054 8010; 271.89331 428717; 271.94891 1706630; 271.95492 17652; 272.14003 979470; 272.14556 33801; 272.35251 1486808; 272.36901 209986; 272.41675 369857; 272.54006 6098; 272.78917 69215; 272.92386 18308; 273.36651 9894910; 273.37466 72330; 273.3758 4486; 273.59726 2361; 273.8453 145455; 273.95028 2848115; 274.38837 26178; 274.49287 1669688; 274.87301 2295; 275.12292 1985170; 275.27699 3847637; 275.46179 8293919; 275.54882 834501; 275.55258 10928629; 275.66731 40611; 275.80364 23615647; 275.99391 28786; 276.14466 18427; 276.15787 9203310; 276.26743 73964; 276.32391 9628256; 276.42602 3512; 276.46041 39511; 276.55703 1154095; 276.62772 69195; 277.10594 8191731; 277.1765 79989; 277.26105 1961531; 277.26385 5372; 277.33793 28609432; 277.75988 911702; 277.81689 35159; 278.41817 27460090; 278.45561 75649; 278.63673 2499; 278.82689 2503248; 278.84914 414404; 278.8703 1043729; 278.89426 55343; 279.1207 63230; 279.24915 3592715; 279.31959 36321; 279.38756 7254; 279.41659 26843; 279.92853 26172; 280.32614 274690; 280.79961 22000256; 281.32907 1386086; 281.38985 116242; 281.44768 152806; 282.03365 262778; 282.39665 36086; 282.40269 153437; 282.50843 8108; 282.51251 1633841; 282.53828 887583; 282.62701 1887038; 282.65001 34762; 282.8713 165226; 283.04657 4804309; 283.36585 72419; 283.61001 28904765; 283.78312 42315; 284.0324 1895220; 284.19637 16807; 284.4523 1952338; 284.54636 2824098; 284.98313 9722; 285.14242 5299; 285.4367 33230; 285.71192 62091; 285.77963 2087; 286.2361 146008; 286.41805 3936; 286.74603 42924; 286.89478 1070564; 286.95722 27883; 287.03482 71450; 287.09495 3472; 287.17929 681672; 287.32162 1752941; 287.36325 14592; 287.68065 25617; 287.71461 4485742; 287.86462 15340569; 288.63472 580378; 288.82918 260998; 289.14344 15866; 289.41347 7406135; 289.66251 18518; 289.73269 29392; 290.44868 1898462; 290.55919 3542796; 290.56369 4754768; 290.6644 428; 290.69248 130815; 291.07753 4471; 291.37896 137591; 291.46985 7407002; 291.5813 195843; 291.96337 7209; 292.08884 76942; 292.09737 1347701; 292.26908 51708; 292.70696 1838952; 292.73662 455162; 292.89776 55028; 292.90404 25628; 293.06613 7196; 293.27462 2234205; 293.37118 44366; 293.40126 1000366; 293.45382 815531; 293.49412 38509; 293.73189 1719585; 293.74427 1588217; 294.03281 191945; 294.10764 4462; 294.10894 22798; 294.47413 3965760; 294.67688 41004; 294.77709 30152; 294.79886 1385346; 294.8777 46921; 294.92809 108270; 294.98636 104163; 294.99352 6031; 295.29854 1279227; 295.3739 56954; 295.44575 12395; 295.70988 21100; 295.94602 2601633; 296.02345 7937; 296.29758 3492; 296.31024 30146; 296.41415 9237; 296.42871 38579; 296.95337 22477; 297.05448 605944; 297.06928 24311292; 297.15163 5873303; 297.33719 1042870; 297.4952 823081; 297.69221 161690; 297.76413 69416; 297.8061 1906710; 297.9565 2271471; 298.14209 11937; 298.43671 6212; 298.57681 3899609; 298.66023 61561; 298.69669 899459; 298.74098 77440; 298.81588 163437; 298.94174 129955; 299.34004 1003539; 299.52859 46296; 299.90668 21551; 300.09634 14499; 300.11476 7222455; 300.26008 4285180; 300.48246 471703; 300.5833 7400; 300.74489 20554; 301.19077 1097697; 301.26877 67734; 301.27718 1065587; 301.33881 48380; 301.5573 6790; 301.57828 27704; 301.84071 28806; 301.94855 2427595; 302.18232 151984; 302.35324 3763693; 302.65472 2632582; 302.87805 4421; 303.33571 946748; 303.54955 30464; 303.55146 510; 304.05281 3682; 304.12117 72608; 304.18971 57425; 304.53681 52194; 304.7612 46442; 304.93744 1697179; 304.97587 5566; 305.03238 3028; 305.04608 64643; 305.08802 29351957; 305.30513 36783; 305.50862 678911; 305.56113 120065; 305.68668 1864845; 305.76306 1113014; 305.81693 5458; 306.07065 1652758; 306.08832 210106; 306.16569 67596; 306.37737 27670; 306.47214 38885; 306.79682 22884; 306.9007 29695; 307.01974 71194; 307.40857 882; 307.91191 36862; 308.02009 1184687; 308.3707 4534567; 308.59495 76578; 308.60695 36390; 308.65 69740; 308.65034 1482825; 308.96905 20327342; 309.10474 84167; 309.16399 713566; 309.92445 4648146; 310.04204 34296; 310.06723 22947; 310.09239 594; 310.19878 4691; 310.40219 1015585; 310.40686 9031328; 310.49929 2227169; 310.54842 9480; 310.59274 187412; 310.92312 69245; 310.94415 1158050; 311.03546 8190; 311.05245 50755; 311.33905 41525; 311.53333 2332619; 311.67793 37993; 312.01844 63373; 312.03115 4181821; 312.16851 54835; 312.38653 71170; 312.60212 18797; 312.60551 2921; 312.71951 1416434; 313.04821 1828307; 313.21749 158266; 313.4883 9840746; 313.57331 7291289; 313.71178 6463545; 313.7509 76367; 314.00352 171728; 314.00455 4329579; 314.10216 8740; 314.1638 1935; 314.42444 6967418; 314.44574 48514; 314.79672 64923; 315.02814 507060; 315.57183 25133; 315.57614 1501675; 315.90468 79503; 316.00676 7262; 316.20977 4002; 316.5713 555057; 316.59282 144394; 316.63913 583929; 316.95344 46561; 316.97441 36544; 316.97988 3669860; 317.14191 7630205; 317.14383 4125504; 317.52709 21605; 317.53259 2640780; 317.7201 880386; 317.77758 3463974; 317.79913 1645978; 317.92038 64787; 318.33897 1658912; 318.5178 17265; 318.69716 49853; 319.01029 24807; 319.41188 29976; 319.92294 6078299; 320.16475 6847368; 320.59271 61370; 320.80067 1820505; 321.11557 45623; 321.1636 28087; 321.49114 5579; 322.08233 25527; 322.43062 31775; 322.70952 28760; 323.39497 76656; 323.93261 163595; 323.95497 10220269; 324.06475 70455; 324.62031 3193951; 324.68144 7651904; 324.6944 250494; 324.92371 28257; 325.08858 71614; 325.09768 1749; 325.26692 2619; 325.58106 22769; 325.8116 1886022; 325.8682 1914145; 326.19198 733117; 326.25041 22168; 326.31485 1349120; 326.52404 70771; 326.65765 5993; 326.843 4022889; 327.04273 58433; 327.1413 1953; 327.18958 2461028; 327.37265 32051; 327.48613 34850; 327.80993 494912; 327.98165 3304; 328.22535 25438; 328.24235 2853698; 328.67715 26982; 328.77121 4166213; 328.7773 12089; 328.95198 1337018; 329.57721 833316; 329.69935 52512; 329.71056 33536; 329.88754 2754; 330.19677 32456; 330.4053 22168; 330.46159 11582; 330.48949 13154; 330.60637 598695; 330.65302 4972701; 330.69166 4088280; 330.94928 19351255; 331.02121 53093; 331.09396 173160; 331.24346 1931450; 331.94146 53063; 331.98805 482644; 332.07449 9551; 332.14447 12891; 332.27701 1195; 332.41306 8915; 332.7138 23129; 332.77743 2079832; 332.85661 57122; 333.17185 95320; 333.19248 3299; 333.52729 1520547; 333.54401 17299; 333.62083 1876568; 333.73659 472241; 333.8259 1978673; 334.09837 4251801; 334.22759 1830675; 334.37154 115843; 334.51527 21211; 334.59286 60688; 334.76134 12776749; 334.76977 28937067; 335.03504 8210; 335.06611 111899; 335.30247 42; 335.33681 61154; 335.75606 1156127; 335.81745 408; 336.14376 118141; 336.27059 63900; 336.31538 62209; 336.40306 8152756; 336.57015 36701; 337.00415 26659; 337.31125 13548115; 337.37275 36439; 337.51453 3436692; 337.89382 79943; 338.07676 35662; 338.19898 19056; 338.59344 1434116; 339.17166 39072; 339.52309 23750; 339.6047 1349037; 339.6104 975290; 339.77912 1064; 340.02982 27971; 340.12176 168196; 340.29175 9918; 340.3848 13627; 340.48756 3809975; 340.59999 10769; 340.76876 9767; 340.87834 1510335; 341.19173 149102; 341.40089 60168; 341.73279 1066937; 341.74498 35946; 341.77286 30516; 341.84072 49474; 341.86168 29223; 341.94691 40542; 342.00784 52127; 342.02519 12775; 342.06097 824758; 342.10337 701968; 342.37241 4800; 342.44204 9984; 342.44818 1861058; 342.61831 7482066; 343.06536 41087; 343.06664 15851; 343.44492 255387; 343.45434 143468; 343.79193 16168; 343.8073 133247; 344.00408 65484; 344.04373 9940906; 344.52962 3832; 344.54238 180174; 344.78086 181439; 344.98276 199; 345.01985 25601; 345.248 1473572; 345.41115 1956; 345.64405 7808; 345.78677 65238; 345.87631 19455; 345.92893 2131767; 346.07523 2159; 346.15604 1392051; 346.18206 29467; 346.26313 2558; 346.35586 1192988; 346.40928 7955630; 346.54963 57523; 346.66579 29616; 346.74806 15552; 346.85797 20274; 346.90235 9748249; 347.04166 30603; 347.05065 176270; 347.06269 9603989; 347.23238 1426437; 347.31464 25693; 347.33899 9245; 347.57844 1163588; 347.66583 547; 347.74359 55150; 347.86047 9320604; 348.01752 28260042; 348.03924 1009645; 348.13123 4695627; 348.41931 4843; 348.4701 27155; 348.52244 9026705; 348.67875 21617; 348.9338 31773; 349.38531 4284; 349.52656 4917170; 349.90418 1419962; 349.95026 71169; 349.9666 628377; 350.13535 270672; 350.21454 35269; 350.28256 3783; 350.4995 71373; 350.5026 5631085; 350.56994 3112; 350.78081 50977; 350.93177 16789; 351.12199 82383; 351.28674 2411; 351.33327 615522; 351.51939 327233; 352.09267 2815; 352.16977 1531178; 352.43016 3860681; 352.44887 51721; 352.55379 7131; 352.68197 3762; 352.70223 4946768; 352.92378 2702625; 353.05994 2363; 353.15932 9171543; 353.20033 2630; 353.31496 43815; 353.42987 673803; 353.46664 9179; 353.54755 22223; 353.55584 224981; 353.69866 9824875; 353.8153 17968; 353.89471 1634718; 353.94766 8859; 353.97256 5123; 354.12302 25758; 354.30234 189519; 354.56382 32430; 354.56865 9167; 354.59553 236052; 355.11329 28951; 355.17816 7640066; 355.49972 23929; 355.56317 672598; 355.73918 36760; 356.0949 3314321; 356.1724 6526668; 356.3154 35620; 356.39753 649385; 356.53111 71211; 357.00106 3072353; 357.01171 160294; 357.17465 7826; 357.26997 12442; 357.52253 18566061; 357.77128 18907; 357.86952 51708; 357.98182 46868; 357.99162 35025; 358.03386 40639; 358.39659 37785; 358.58705 7773; 359.13695 68548; 359.20745 16150; 360.03009 886271; 360.19197 723245; 360.33642 2119336; 360.36064 609343; 360.41389 60455; 360.64634 121825; 360.78091 112593; 360.80289 99518; 360.86913 4934831; 361.30079 8267; 361.38545 1951748; 361.56275 58757; 361.64543 67307; 361.71464 25966; 361.84021 34937; 361.9062 7778533; 361.9117 786259; 362.49432 29794; 362.64463 1171181; 362.83718 10721455; 362.97814 3222301; 363.02031 107685; 363.23114 1345384; 363.49909 27332; 363.5293 460312; 363.54018 8888; 363.78616 33899; 363.95568 77544; 363.97527 29608; 364.0166 58426; 364.01755 30174; 364.07167 1463611; 364.13143 6746439; 364.29922 8414; 364.55303 25340; 365.01654 22858; 365.04883 1836854; 365.15583 396292; 365.40237 24124; 365.91951 26370; 366.12362 4022583; 367.00029 1097639; 367.31018 54581; 367.47254 10307; 367.63898 21899; 368.24419 9236; 368.35819 96825; 368.38171 20716; 368.40857 23785; 368.47732 32340; 368.50213 2646740; 368.69065 28370; 368.76295 6558179; 368.96342 87106; 368.97721 18600; 369.06286 2615; 369.43339 2806; 369.83816 6840; 369.87215 27811; 370.06635 573818; 370.38136 24446; 370.48123 26907; 370.48989 1148966; 370.81527 103264; 370.84807 30578; 370.90871 75966; 370.92108 25899; 371.32516 45601; 371.3642 1085109; 371.50816 40438; 371.53037 2239998; 371.62301 29645; 371.67051 21129; 371.8214 7522127; 371.91682 695884; 372.11336 4489; 372.32147 72385; 372.54038 4611; 372.63141 645574; 372.92699 3983; 373.14113 161471; 373.60574 423749; 373.62697 63107; 373.72152 1592349; 373.7838 7936; 373.84227 46271; 373.89735 26596; 374.82341 1736403; 374.84852 581181; 374.87633 627214; 374.91008 2899577; 374.96027 18589; 374.97896 172517; 374.98947 20177; 375.00713 119045; 375.20301 28957; 375.56528 62353; 375.57511 1605202; 375.73087 17687; 375.77686 78859; 376.01138 15362; 376.02814 719687; 376.37852 186967; 376.43433 53040; 376.4954 117303; 376.61615 67618; 376.69285 519985; 376.8091 20307; 376.8673 35803; 377.41529 158408; 377.42811 5898097; 377.4907 1857455; 377.63959 41272; 377.88439 108344; 377.9421 3250157; 377.94794 1177696; 378.16944 2093; 378.2455 882195; 378.37849 61768; 378.48328 51421; 378.54331 7458671; 378.68772 25370; 378.69378 38654; 378.90142 44637; 378.97469 488613; 379.08099 1396257; 379.18323 72073; 379.23063 61243; 379.57926 932845; 379.61593 50042; 379.86132 1587538; 379.89804 3087; 379.96804 1685; 380.03586 54053; 380.23764 3099406; 380.37098 11895; 380.54239 132389; 380.6298 74564; 381.10101 85312; 381.71598 4778881; 382.05265 2264249; 382.28104 40254; 382.29073 3724059; 382.35285 2333; 382.52508 871655; 382.57094 840; 382.67251 44267; 382.68997 70183; 382.81938 9528; 382.93104 4586719; 382.93319 828122; 383.01776 16775; 383.13019 25261511; 383.20166 668724; 383.21501 13802; 383.38848 8813234; 383.56992 23445; 383.76329 995159; 384.14258 8807857; 384.19082 21694; 384.23666 10248; 384.28083 17412121; 384.60156 69401; 384.87344 1148760; 385.29205 190894; 385.32377 56397; 385.63602 583056; 385.87709 134186; 385.92113 24001; 386.00677 23486; 386.08563 15540; 386.31219 52347; 386.88735 68026; 387.51216 8637; 387.81962 20721; 387.84762 79154; 388.06468 69800; 388.09585 97028; 388.12619 550862; 388.27785 47898; 388.31467 56998; 388.35921 11767; 388.44454 15242; 388.73519 23115; 388.86015 746250; 389.00489 1593; 389.63926 135485; 390.05202 4568891; 390.29678 1457650; 390.30443 67278; 390.33556 21857; 390.81367 28273; 390.90456 464766; 391.15983 2053082; 391.32484 1279481; 391.41281 6116; 391.89686 9563; 392.02935 855853; 392.22851 7125; 392.30137 1917591; 392.5331 8835; 392.88412 9493; 393.06338 1076360; 393.15346 35143; 393.15647 23565; 393.44617 75205; 393.5793 6878972; 393.65387 22502; 393.86285 8672; 393.96417 6512688; 394.04877 8314; 394.25842 57194; 394.34582 6940; 394.53915 7479; 394.78065 9640213; 394.82244 990700; 394.98336 505504; 395.34232 2669090; 395.38483 4653; 395.47063 12409949; 395.50342 5672652; 395.59406 1227671; 395.73113 6321621; 395.84352 438077; 396.06166 97394; 396.17592 7579; 396.27512 4883932; 396.29033 4025; 396.30124 1725443; 396.46979 383; 396.57742 979; 396.75591 62703; 397.00884 2385; 397.06261 1049701; 397.16222 19616; 398.21168 7052658; 398.21452 4217901; 398.40516 1870170; 398.41984 28204; 398.42006 7524490; 398.46614 22476; 398.4733 2293022; 398.6518 505404; 398.69227 46966; 398.85801 1365449; 399.31956 2027116; 399.3207 15665; 399.48907 67307; 399.49654 120172; 399.69187 12049; 399.80209 45049; 399.856 69877; 399.9646 72783; 400.12407 1720779; 400.3578 37642; 400.36648 32086; 400.3904 1431789; 400.69092 1126276; 400.70155 372758; 400.91597 1420791; 401.12335 3405; 401.33605 133040; 401.7514 37610; 401.87175 673; 402.56277 7341681; 403.04464 32957; 403.04965 5344293; 403.17383 36633; 403.21651 233790; 403.26383 645239; 403.35975 7364492; 403.37352 35855; 403.48287 14605; 403.48551 42111; 403.51379 6315; 403.70148 712; 404.19758 5866919; 404.20514 104829; 404.35545 8978071; 404.44864 35466; 404.52046 2596587; 404.62628 810621; 404.68056 72353; 404.71244 1394832; 404.80193 196914; 404.88988 79049; 404.94042 27557115; 405.03421 185684; 405.07007 28681; 405.0907 4038759; 405.10819 1232242; 405.35928 49684; 406.32382 2786856; 406.52262 28677; 406.59498 5354405; 406.71827 26981609; 407.20729 1069929; 407.31574 5256; 407.39136 308718; 407.59842 346014; 407.74977 12612; 407.99104 2501274; 408.25587 23822; 408.39151 148670; 408.73618 11018; 409.26343 18237; 409.65371 585327; 409.82941 5045143; 409.86733 44772; 409.96112 34962; 410.213 500180; 410.60144 1524482; 410.68094 45770; 411.19879 2633260; 411.4174 534051; 411.50609 206449; 412.02526 74811; 412.04239 37982; 412.10058 35418; 412.43568 144866; 412.599 36643; 412.61152 4435; 412.84371 15108; 413.36924 74964; 413.40685 15848; 413.54432 79851; 413.59481 29819; 414.01203 2417054; 414.0749 11346971; 414.16416 110217; 414.28027 1327562; 414.43258 29131; 414.48538 47544; 414.50986 8119; 415.0499 4828; 415.08207 1083064; 415.1455 198006; 415.32664 9538399; 415.38148 2096; 415.43296 27658; 415.51336 43943; 415.74446 1278322; 415.866 3458322; 416.12381 10935921; 416.12751 53155; 416.16846 28324; 416.43405 45607; 416.45218 71722; 416.49815 5110; 416.52642 6343; 416.55136 11773; 416.72958 19894; 416.80279 28887654; 416.8606 4705; 416.99813 30690; 417.00913 7580069; 417.37556 1728; 417.42372 44407; 417.47687 21582; 417.49391 386626; 417.58001 67969; 417.73465 3451; 417.9094 76518; 418.2083 1106; 418.29398 7604; 418.31983 8723; 418.59936 1059; 418.83066 315134; 418.85389 1973808; 419.03388 18066; 419.19961 7425260; 419.22176 40951; 419.29217 16316; 419.3826 522311; 419.39149 32421; 419.42267 9333729; 419.44013 26021; 419.58364 53185; 420.23753 13114031; 420.33984 69587; 420.45764 8310; 420.92612 669529; 420.93509 4498625; 420.99487 8611948; 421.07535 28964; 421.34505 67459; 421.46695 36738; 421.59908 69053; 421.82015 4194347; 421.9368 62215; 422.11407 180226; 422.13652 3766334; 422.17291 833492; 422.39488 76823; 422.66957 18701; 422.67178 6835777; 422.74015 20431; 423.01741 42083; 423.11485 28644; 423.2767 13158; 423.53671 71293; 424.33845 3013692; 424.38318 28360; 424.43496 6682; 424.65683 61307; 424.68983 35745; 424.70832 53719; 424.79373 12075379; 424.90863 20764; 424.97072 856970; 425.24163 23886; 425.34957 2531; 425.73354 1310653; 425.91113 1608953; 426.15279 3647193; 426.1881 22298; 426.59466 58009; 427.01538 4315602; 427.08004 223385; 427.39013 9078; 427.63664 3945; 427.74584 1256333; 427.86648 1084096; 427.95078 21377; 428.93539 157117; 428.93637 51965; 429.00763 7951; 429.08336 2315906; 429.4281 13626; 429.62704 7755109; 430.21528 180720; 430.46507 23963; 430.47167 58677; 430.67064 3795176; 430.77151 1903237; 430.8026 41513; 430.92679 76634; 431.6111 1115398; 431.70867 91929; 431.86444 34884; 431.91184 69831; 432.13503 4057893; 432.24542 31748; 432.38246 4743; 432.70564 46727; 432.73888 52353; 432.97674 6610191; 433.0594 20571; 433.32105 1021920; 433.3321 21664; 433.47632 1723; 433.68384 102993; 433.88165 30821; 434.05879 5033; 434.45709 1517376; 434.48062 50436; 434.50868 43325; 434.5972 5676; 434.71844 60465; 435.04304 51469; 435.17919 41368; 435.19464 3845864; 435.27333 10840691; 435.32147 8781557; 435.46411 2736851; 435.49996 676938; 435.59314 5581238; 435.65816 3283; 436.04311 9336; 436.20731 5634216; 436.34221 26496435; 436.57121 4639928; 436.7279 52783; 437.04585 47737; 437.09271 25169; 437.83749 1566089; 438.9351 1012; 439.05884 40866; 439.69487 46807; 440.23591 928692; 440.24772 781759; 440.46335 28146; 440.5909 39811; 440.60165 15000; 440.9646 1300667; 441.13525 6224400; 441.31841 23174; 441.36592 38319; 441.37131 1381825; 441.4541 4757844; 441.53378 7875014; 441.5605 32929; 441.62644 55790; 441.95853 4248280; 441.98432 100670; 442.12257 364366; 442.29795 1411307; 442.42598 37612; 443.27423 1071026; 443.36677 298107; 443.90353 69844; 444.54885 45483; 444.72335 987125; 444.82203 383654; 445.23021 6268116; 445.32347 41891; 445.4246 1052542; 445.54469 6434092; 445.55444 6564685; 445.62394 3233295; 445.64154 28827; 445.73725 28849; 445.81551 116537; 445.87924 4461802; 445.95152 3544052; 446.281 3453824; 446.30145 983359; 447.05399 1543663; 447.68298 55283; 447.96098 55174; 448.06963 1094335; 448.53666 31999; 448.80411 7532699; 448.84984 81531; 449.04769 738332; 449.21766 25490; 449.77445 1245964; 450.23352 812545; 450.41866 1197; 450.44537 6964; 450.60129 29565024; 450.71448 31798; 450.74008 48725; 450.89135 130532; 451.04131 2861670; 451.11873 802873; 451.18532 335120; 451.24643 1690843; 451.32471 13061820; 451.50442 26278; 451.91298 33143; 452.03879 6615335; 452.11488 37509; 452.29193 22124; 452.30669 16260; 452.33937 98589; 452.34233 1495996; 452.41335 9468; 452.70337 17012; 452.71173 15182; 453.32694 26845; 453.36401 1037886; 453.46361 23053; 453.62415 26710; 453.71402 4009797; 453.79082 5795; 454.02666 1019701; 454.14561 27147; 454.28864 1690930; 454.31652 11772; 454.43769 46667; 454.50919 5828306; 454.71784 29607; 454.87358 55696; 455.0529 6428075; 455.26501 1014; 455.9442 5693457; 456.05732 4005333; 456.21805 1436463; 456.31013 6240116; 456.3816 123039; 456.71334 46217; 457.3151 541161; 457.33661 102519; 457.44611 1010672; 457.64992 52260; 457.71085 7493; 457.73961 9882338; 457.82735 29768; 457.83145 21618; 457.93689 983072; 458.00211 24779; 458.12048 26502; 458.30083 1991393; 458.48723 2414849; 458.81404 1967838; 459.37588 3123684; 459.46046 88922; 459.52885 54559; 459.65274 297062; 459.91255 4970947; 459.97859 1955671; 460.01139 37745; 460.46301 47345; 460.81988 16462; 460.83297 59009; 460.90123 4775888; 460.9496 205686; 461.07097 395441; 461.15291 15102; 461.34831 1976007; 461.45547 5394; 462.27964 24535; 462.30159 69611; 462.43982 1630428; 463.32786 17722; 463.63256 60797; 463.63925 9290995; 463.82454 68957; 463.82512 2462454; 464.02467 494689; 464.09976 8628345; 464.19074 5923274; 464.3697 34264; 465.27429 1410218; 465.6369 5366; 465.68048 38632; 465.70977 29552; 465.8538 56256; 466.01094 942888; 466.18688 1402247; 466.20679 36867; 466.42413 51814; 466.43853 495384; 467.07892 1293825; 467.22247 666640; 467.36324 35787; 467.51956 187; 467.64645 4552247; 467.79196 24556; 467.87649 123; 468.05687 302064; 468.05849 180801; 468.28765 44511; 468.35066 336961; 468.60544 176010; 468.81313 74584; 468.94545 6300; 469.03025 13104; 469.07386 435599; 469.38506 2490; 469.84604 3945021; 469.85343 163652; 469.99932 41250; 470.32535 8024356; 470.36997 134093; 470.40008 20710; 470.95862 101776; 471.143 48966; 471.23535 111507; 471.27286 9208; 471.28463 25579; 472.05215 902; 472.27206 727773; 472.27847 4004238; 472.40164 8220; 472.41154 198823; 472.62336 943820; 472.73663 3863787; 472.76835 32164; 472.91715 2133783; 472.99857 24206047; 473.10515 346; 473.32172 1847708; 473.96118 3238292; 474.22517 233003; 474.41014 41531; 474.5531 746712; 474.74596 24468627; 474.97244 633654; 475.01643 8859868; 475.05723 572195; 475.05816 43345; 475.10249 26444; 475.1674 4806941; 475.24585 21090; 475.30531 4618726; 475.97906 788082; 476.2919 10999311; 476.50196 4588770; 476.50937 48776; 476.67236 1077609; 477.03779 2734959; 477.10801 38734; 477.18451 110328; 477.31896 3409090; 477.42121 61726; 477.45894 716769; 477.57941 32331; 477.82838 5703620; 478.30852 4944106; 478.38587 4744; 478.45343 699031; 478.55398 2313236; 478.6797 903283; 479.21797 19428; 479.59171 1800614; 479.65885 24325; 479.71811 64621; 479.75707 1176337; 480.25158 2723124; 481.001 83103; 481.60088 362; 481.68173 33787; 481.86706 26478745; 482.32143 751746; 482.50685 4992967; 483.09855 49839; 483.12784 3157; 483.42079 163995; 483.44462 69898; 483.45604 2165828; 483.57905 835257; 483.62613 7961056; 483.73309 55092; 483.77057 6977; 483.89693 55150; 483.92817 3994330; 484.24727 34838; 484.36172 6763; 484.42531 3379587; 484.55419 15080; 484.78817 24466; 485.12149 932542; 485.31916 50194; 485.53005 20139; 485.8636 38270; 485.88326 530723; 485.89977 3620; 486.08657 22179815; 486.09048 54065; 486.25928 73859; 486.40454 156105; 486.43717 50318; 487.37951 158041; 487.45367 562515; 487.5294 165470; 487.54002 26808; 487.58537 76675; 487.65139 24247575; 487.71444 2029887; 487.80107 488334; 487.86556 7799375; 487.93463 42543; 488.31362 19541; 488.89809 14880; 489.09408 29272; 489.41077 28075; 489.43109 11445; 489.48428 8331676; 489.66173 1881589; 489.8396 18507; 490.08029 67336; 490.13499 41660; 490.24469 3703285; 490.31433 1176297; 490.4308 43441; 490.53195 118663; 490.56677 3697228; 490.6549 181118; 490.85535 28338; 490.93968 2006345; 491.01768 1550412; 491.06179 1944097; 491.20209 1328996; 491.29406 72463; 491.41682 2798765; 491.48171 1829932; 491.60725 4662; 492.25403 3166; 492.73554 22558; 492.81126 37338; 493.32893 26167; 493.94174 4380406; 494.10561 73133; 494.10894 4586; 494.20399 1485; 494.36471 58984; 494.79506 62836; 495.05469 112245; 495.39863 70065; 495.44666 111913; 495.66892 26712; 495.72416 1414556; 495.8178 24750; 496.02707 72595; 496.43178 29894; 496.78725 61273; 496.86973 24203; 497.09527 4737059; 497.36405 22420; 497.68687 82299; 497.73071 39778; 497.74137 12680; 497.84476 48326; 497.90263 99834; 497.92133 54169; 498.08012 5822218; 498.18349 1514780; 498.21697 39015; 498.27924 17987; 498.30122 137179; 498.3119 45498; 498.61653 34869; 498.68986 1109592; 498.71434 10914; 498.9585 11043324; 499.25853 939615; 499.65559 20597 +<3, 1>: 0.16209 91278; 0.30863 4461242; 0.44214 51553; 0.61985 48513; 0.88949 180524; 1.03148 48463; 1.08914 2745; 1.34608 1090508; 1.35038 3069381; 1.40386 41890; 1.60457 68820; 1.73786 20960; 1.7782 63389; 1.8559 41821; 1.96041 13148824; 2.18633 2989654; 2.3874 82752; 2.67091 1932593; 2.7606 36385; 2.86698 436946; 2.89657 3989; 3.1214 115; 3.30604 28779; 3.31165 30237; 3.34565 64463; 3.53529 43898; 3.65335 11021; 3.77001 75639; 3.82991 3415; 3.91708 145804; 4.01731 143283; 4.27381 36566; 4.29389 3535; 4.34327 536841; 4.35683 6135493; 4.51945 90736; 4.62609 9185221; 4.65414 20849; 4.78868 68652; 4.83667 71880; 5.04 27617; 5.35352 91; 5.38012 397842; 5.42299 28534; 5.90689 26721377; 5.91482 7023792; 6.16818 17743; 6.45929 1901083; 6.52705 100300; 6.95202 2680536; 7.01882 8194; 7.04623 4026; 7.06633 3669943; 7.22621 180953; 7.39698 1707543; 7.40981 3358995; 7.43968 1080390; 7.52979 141824; 7.54846 198309; 7.63229 145; 7.67049 71575; 7.72379 7211966; 7.76254 82073; 8.38291 33295; 8.74289 8261; 8.81502 1553428; 9.15316 10089; 9.16186 62807; 9.26198 53888; 9.33949 3261070; 9.8321 23654; 9.96747 70500; 10.14527 2372797; 10.36428 15388; 10.44402 17273; 10.6782 1413600; 10.82663 2255; 10.9272 3958; 11.16784 52343; 11.18507 6227038; 11.20487 8254; 11.30736 23714; 11.32436 3970; 11.61196 2686415; 11.71396 67809; 12.09006 4302; 12.22984 3067; 12.42329 8904; 12.53354 24795; 12.75047 1898389; 13.49437 46453; 13.50577 11256; 13.81089 13592; 14.06366 3189951; 14.40205 14791; 14.40963 919; 14.41538 1596907; 14.67 28518650; 14.69069 20184; 14.79243 939079; 14.82616 962151; 15.15408 158292; 15.31653 4015748; 15.50117 5500826; 15.60101 49885; 15.67885 23727; 15.77106 53039; 15.93064 9242124; 16.52588 38359; 16.54732 53832; 16.84562 19291; 16.98557 59504; 17.11375 9406215; 17.1568 1097117; 17.17814 2363; 17.56873 778493; 17.95374 9196672; 18.20208 2218748; 18.30591 5750186; 18.3169 26297; 18.41635 7509; 18.65161 17068; 18.75094 3472274; 18.75953 54528; 19.15144 812377; 19.26938 4336155; 19.30671 60531; 19.54319 54521; 19.58365 73772; 19.74696 17687; 19.81038 1975416; 19.85299 44835; 20.06606 1279916; 20.63361 27401; 20.68617 27825; 21.1495 29855; 21.45562 1726945; 21.50812 42229; 21.81638 19321420; 21.82741 55194; 21.95351 61520; 22.21991 45135; 22.35107 1767724; 22.54258 7873639; 22.71232 13137; 22.82261 25619; 23.00385 5538; 23.02372 33242; 23.15229 7040; 23.2881 8878; 23.36448 1920225; 23.42603 35514; 23.49438 554670; 24.17175 366395; 24.37548 40141; 24.47007 56650; 24.53808 10776; 25.05796 1283259; 25.46444 1171552; 25.58362 3125; 25.76031 1046641; 25.79147 15274866; 25.809 1461505; 26.61006 8180; 27.21934 616991; 27.3561 15909; 27.56408 54412; 27.56783 27445; 27.6124 1559608; 27.73392 25378155; 27.99714 787730; 28.13954 5282; 28.3679 23135; 28.55733 309684; 28.74254 4904; 28.82166 2790232; 28.93954 6326; 29.38041 8510102; 29.38768 1795584; 29.39176 61582; 29.97308 5518; 30.03857 41820; 30.10824 78450; 30.1828 73218; 30.25022 50979; 30.37274 28833; 30.82415 4075307; 30.98516 481; 31.27986 8362964; 31.30952 50975; 31.33383 397; 31.91269 52921; 32.18096 114964; 32.26568 377146; 32.53377 2313088; 32.63296 37723; 32.67307 215; 33.34609 4389794; 33.8179 23323; 33.81795 224141; 33.83702 42384; 34.22805 53321; 34.47414 9554; 34.53953 24031; 34.56179 1077365; 34.69891 6293422; 34.81121 184468; 34.86933 404406; 35.12267 168307; 35.43792 311034; 35.54233 27437; 35.76092 9993; 35.78714 163406; 36.20432 26861; 36.43255 49127; 36.43941 21995; 36.57415 989578; 36.58109 1969705; 37.30859 24344; 37.40342 6161420; 37.46022 3766110; 37.76869 4883758; 38.07627 32883; 38.09219 68662; 38.12104 6306; 38.31391 1524174; 38.36086 157; 38.45275 27580; 38.46255 62691; 38.53168 8000545; 38.53505 3259423; 38.89638 6455; 38.93206 1609503; 38.94834 3802867; 38.9852 63150; 38.9982 835090; 39.03673 1718; 39.1333 9853; 39.38868 454018; 39.65812 5551; 39.83439 8651970; 39.8841 7895310; 39.99893 31036; 40.14189 32060; 40.41187 1570464; 40.7276 200; 40.74613 515; 40.8234 3821; 40.88067 43031; 41.04733 25237; 41.34905 9066; 41.44827 162756; 41.49731 1058; 41.67163 1059566; 41.82432 7792; 42.01142 435932; 42.30758 529; 42.35572 29977; 42.40827 46794; 42.57888 4032457; 42.58259 26858; 42.63088 21802; 43.2482 27036; 43.28866 68294; 43.33685 39653; 43.53857 5008; 43.59471 27391; 43.731 68310; 43.9926 61217; 44.07996 73759; 44.30789 35938; 44.37999 6782; 44.50604 8861609; 44.62336 64911; 45.04749 1050828; 45.49225 2608; 45.54036 2231582; 45.87757 73688; 45.91301 22065; 45.99404 73605; 46.13408 252657; 46.1825 5524; 46.25556 36629; 46.26225 5968166; 46.50764 33844; 46.72699 4897; 47.45583 1400; 47.47548 58636; 47.99792 71540; 48.03671 12767250; 48.7257 273153; 48.81496 22630; 49.25491 27016; 49.41643 371586; 49.42786 59778; 49.51221 102602; 49.54631 20461; 49.63532 8967; 49.72241 1875458; 49.99919 4041516; 50.25812 135877; 50.53634 4878705; 50.75311 5934; 50.89941 15415; 50.9325 32391; 51.1606 58417; 51.21199 31663; 51.38111 2699203; 51.47086 7670423; 51.64481 52142; 51.74809 39026; 52.238 1885755; 52.43332 2872835; 52.44271 24561; 52.49038 49415; 52.54179 17445; 52.67557 456811; 52.86022 51832; 53.09569 209042; 53.27299 181388; 53.74541 826971; 53.89495 256313; 53.97537 51734; 54.15839 63977; 54.18231 164806; 54.27733 1478009; 54.37008 40685; 54.66321 27107; 54.90978 1536416; 54.92032 1713524; 55.0062 125227; 55.06465 4870204; 55.15361 1031348; 55.23499 4030650; 55.32109 137642; 55.64166 984858; 55.9003 2084960; 56.0167 2931060; 56.04372 103315; 56.06535 6458686; 56.10181 169649; 56.44355 50706; 56.48795 50237; 56.75508 1327208; 56.80423 28497; 57.3561 8837090; 57.52659 1020344; 57.85581 60440; 57.91063 3612597; 58.01544 56274; 58.16026 1821513; 58.70108 9117; 58.79444 149795; 59.3476 18468; 59.54397 44974; 59.73991 398863; 59.999 99855; 60.08085 9105786; 60.71841 48734; 61.21652 3073393; 61.29555 9589; 61.29926 53059; 61.37352 11881670; 61.43217 8328; 61.82888 11956; 62.17003 1482627; 62.60208 29436; 62.65432 1192068; 63.08277 27503; 63.14628 29965; 63.14824 53776; 63.22672 29841954; 63.43965 811793; 63.771 21108; 63.77543 7295; 63.95085 18668; 64.08584 22779810; 64.43221 1023659; 64.54133 2743865; 64.58309 171832; 64.73603 9538; 64.96991 2552012; 65.25396 19360896; 65.26103 11485; 65.3308 2800331; 65.42428 3126; 65.55574 414930; 65.9852 4942668; 66.06132 5066; 66.0648 18553; 66.09115 1125936; 66.12428 56214; 66.22816 730164; 66.60666 147124; 67.05666 115618; 67.25775 38131; 67.28929 26530; 67.3118 9771555; 67.45405 110245; 68.10864 4061494; 69.02205 1716669; 69.1598 16333843; 69.30366 28469; 69.31262 256471; 69.39507 9691843; 69.42397 397060; 69.47794 400038; 69.56083 4721; 69.60484 10279; 69.64687 27862; 69.70554 41908; 69.94999 70347; 70.41752 79122; 70.7384 88171; 70.79043 21666; 71.37361 14147883; 71.49493 36603; 71.57554 1821874; 71.76737 3267258; 71.91699 1221799; 72.50919 28820; 72.66104 28180; 72.79686 1648185; 73.25361 9100; 73.52165 18688; 73.53281 15293; 73.69417 690058; 73.79918 20970; 73.80624 159130; 73.99698 2580281; 74.0181 8265583; 74.08576 20945; 74.09898 8776; 74.14015 43861; 74.1878 1009514; 74.33506 65764; 74.43793 195468; 74.47795 1714182; 74.48137 24935; 74.54294 45306; 74.67257 2457554; 74.82097 56032; 75.0827 73434; 75.21321 28966; 75.27651 794818; 75.27784 398303; 75.37784 320607; 75.68474 1616647; 75.834 38083; 75.8735 214; 75.8773 29706850; 75.92361 90381; 76.00152 3679182; 76.02375 29222; 76.26221 2087590; 76.46148 1548850; 77.1005 13152182; 77.23968 16957; 77.35618 776284; 77.4217 3346524; 77.43661 77009; 77.45528 65385; 77.62156 48539; 78.17977 36271; 78.1987 6884045; 78.51767 6881; 78.66178 1164261; 78.68048 11473982; 78.70372 2897; 78.94992 76342; 79.14847 73591; 79.18587 402; 79.60027 62313; 79.64734 24285; 79.79234 493880; 79.9175 463990; 80.05167 78614; 80.17694 17380; 80.21112 5461821; 80.26384 4440294; 80.37089 6575; 80.43925 577777; 80.47989 180060; 81.32207 3694826; 81.50356 124937; 81.59101 38110; 82.21346 6451; 82.77008 3998; 82.83083 79361; 82.94724 72260; 83.09383 26752; 83.12923 920308; 83.2775 937051; 83.36195 34136; 83.40446 1811; 83.48367 79386; 83.67739 31564; 83.84756 22965; 83.89153 16062; 84.00107 20956; 84.38915 2803180; 84.48972 942; 84.83907 4121394; 84.88244 3029844; 84.90734 1177685; 84.98187 2952421; 85.16863 21822; 85.21798 2436449; 85.45565 3123700; 85.47522 5976; 85.68586 154792; 85.69742 5388; 85.91987 1258; 86.12262 35610; 86.28899 54961; 86.31395 533993; 86.56794 14550; 86.71548 6896686; 87.36001 73331; 87.42033 47322; 87.4351 8778934; 87.68319 510239; 87.85722 47170; 87.94512 22690; 88.16084 4601150; 88.36654 76099; 88.36833 74708; 88.63784 75659; 89.1753 20959; 89.34311 1615838; 89.48155 1225; 89.53878 7568167; 89.81458 8941; 89.98387 8813; 90.0502 166128; 90.09585 99321; 90.29279 3468871; 90.37637 9815; 90.43082 15662; 90.43511 71660; 90.60717 80740; 91.1858 62178; 91.28602 9427807; 91.42543 22106; 91.4682 160601; 91.58174 43413; 91.59727 20734; 91.60646 33746; 91.61953 9841; 91.73326 8269079; 91.84752 6611444; 91.98562 7415202; 92.00081 8242612; 92.43807 7322054; 92.46836 43965; 92.50606 38500; 92.65147 45754; 92.79758 32586; 93.05605 707556; 93.14506 3069449; 93.24995 755281; 93.25465 19913; 93.45405 14098; 93.67648 1970636; 93.77837 2218946; 94.0395 8323094; 94.30236 27800328; 94.5418 22577515; 94.64832 20660; 94.72096 66282; 94.72521 22275788; 94.80314 973839; 94.94484 4334271; 94.97253 12988; 95.82716 2783743; 96.15964 99192; 96.3021 4713652; 96.3906 2808224; 96.464 36501; 96.59654 3340761; 96.62668 744639; 96.70007 34133; 96.91181 36829; 96.95509 42410; 97.23186 30835; 97.34353 1496249; 97.78072 53818; 97.94153 26172; 98.10566 2861567; 98.20181 12108; 98.71407 38288; 98.7338 2013485; 98.82859 31594; 98.84855 29742621; 99.10334 24710598; 99.17378 45555; 99.35212 41127; 99.36261 1741651; 99.47568 29874; 99.62111 5222; 99.69666 65332; 99.84644 130555; 99.89515 436700; 100.02482 1950289; 100.22874 1946321; 100.26892 83496; 100.75722 5181; 100.853 17684; 100.91802 3887; 100.99682 24615; 101.19337 1039276; 101.27689 7194717; 101.35417 1681662; 101.41494 8347; 102.05022 7063; 102.24007 56817; 102.537 59725; 102.59596 19649; 102.64605 70389; 102.7656 36371; 102.82043 21209; 102.85199 171111; 103.0528 570320; 103.14076 15394584; 103.41684 1983554; 103.45483 14409; 103.5059 71481; 104.00781 2618296; 104.01145 8745339; 104.03682 38997; 104.04627 43247; 104.13817 3850; 104.45868 1195326; 104.49896 7958; 104.73505 71682; 105.04006 21489; 105.32263 15367; 105.47141 839768; 105.63319 1836812; 105.94953 62038; 106.34666 60029; 106.36948 15542; 106.81625 5694954; 106.85639 6937; 106.86584 20963; 106.97035 1298255; 107.04057 1483180; 107.10869 3037569; 107.1385 4596639; 107.60057 4730236; 107.87941 4784157; 107.99361 1302442; 108.32091 1124108; 108.33021 1947598; 108.36604 35395; 108.53962 8646686; 108.99926 1976188; 109.18512 5997473; 109.55633 750496; 109.70006 1147147; 109.72231 51809; 109.83862 26551; 110.62765 157812; 111.15986 63006; 111.18015 47758; 111.74117 342309; 111.84161 1804; 111.89291 141037; 111.94125 3563196; 111.96421 10783; 112.07385 1821; 112.45481 689431; 112.59115 1239145; 112.94291 1675411; 113.11342 10303; 113.21428 3908107; 113.23825 25416; 113.32988 47792; 113.39426 7250; 113.50065 23218; 113.59605 36149; 113.90889 4802; 113.98552 160834; 113.99684 6065; 114.01569 4578; 114.10892 9453646; 114.14101 6596385; 114.19811 541973; 114.71122 3226; 115.28747 454835; 115.4185 123; 115.46459 18281106; 115.60556 819138; 115.88767 36310; 116.15783 6016; 116.41454 43340; 116.42433 28207; 116.43388 3750546; 116.49409 48402; 116.52783 5301; 116.55366 167910; 116.67375 2176; 116.76738 22674; 117.02017 1996134; 117.13674 28268; 117.14246 1015; 117.23229 7324; 117.44207 549083; 117.63326 4638; 117.74858 56759; 117.75045 162842; 118.10702 8863; 118.54244 3418918; 118.86648 61348; 119.1741 69284; 119.43601 1448294; 119.51515 2302; 119.68385 6055554; 119.86649 55877; 120.13211 1383; 120.17857 8633; 120.58977 36442; 120.70106 1142580; 121.11075 129422; 121.19557 7782082; 121.2147 2788609; 121.30851 8356998; 121.60541 37275; 121.85096 11509; 121.90582 4379119; 121.96855 36929; 122.24942 24345; 122.33183 2589782; 122.89713 4255425; 123.33442 4940; 123.51282 2162519; 123.83817 696390; 123.86879 14476; 123.88723 26262; 124.07366 8299664; 124.21789 1964849; 124.48436 34882; 124.81719 20084; 124.8402 68895; 124.95962 23189; 125.00465 72555; 125.09908 1346576; 125.43985 197025; 125.62516 43541; 125.67753 65646; 126.40555 166608; 126.46407 52337; 126.64027 4189299; 127.19429 4311755; 127.32124 2582; 127.57665 6457632; 127.57761 4021369; 127.72859 1851179; 127.91167 99446; 128.09751 48055; 128.44508 67103; 128.5007 70495; 128.76737 8531553; 128.82962 4978479; 128.89163 207108; 129.21339 1827039; 129.53759 7768526; 129.77628 713412; 129.86794 26579; 130.66006 4591641; 130.68169 57565; 131.03833 7606094; 131.2188 666; 131.28265 39127; 131.30816 355769; 131.39631 116893; 131.42904 62188; 131.55219 36409; 131.56391 8724; 131.67337 1721420; 131.90642 111214; 132.01346 59622; 132.11794 3953; 132.1408 69509; 132.33615 3757756; 132.39146 5872; 132.43326 6247; 132.81949 1689598; 133.09742 76676; 133.14096 7085591; 133.28491 6483660; 133.33884 4649399; 133.41144 5394; 133.57226 1957924; 134.22224 4608; 134.28038 1435042; 134.53357 9605793; 134.5665 67217; 134.75688 30020; 134.98947 1042797; 135.15352 77217; 135.38641 566037; 135.49598 33568; 136.12023 11864; 136.16898 57951; 136.22029 67216; 136.24749 130788; 136.28824 2034369; 136.3919 5321662; 136.48506 1283640; 136.57499 7691265; 136.72239 15242; 136.86083 5320; 136.88955 2038; 137.05629 3425799; 137.08958 55574; 137.09479 15633613; 137.49734 434486; 137.51356 103530; 137.58854 66409; 137.60236 22384998; 137.74337 35143; 137.74347 24125; 137.80363 36890; 138.1446 26549414; 138.18816 1052; 138.19299 750318; 138.49505 3214511; 138.66774 185216; 139.16337 84989; 139.19206 124434; 139.21043 2025; 139.59391 174129; 139.85388 19701; 140.07377 8702; 140.24913 13404; 140.72861 65676; 140.93683 77789; 140.97744 8297; 141.01619 851927; 141.25557 4211554; 141.32181 131431; 141.39368 41402; 141.49998 53543; 141.6891 440558; 141.74039 60695; 141.81504 126294; 141.84655 8460888; 142.16173 747820; 142.21913 4445383; 142.32959 1573797; 142.6972 67087; 142.73631 235987; 142.88273 2285080; 143.14519 1500277; 143.32852 28121; 143.39336 80900; 143.70643 72318; 143.76819 16753700; 144.14017 5255; 144.18696 34238; 144.49884 64121; 144.93711 40385; 145.04667 6910301; 145.303 3602; 145.72702 534427; 145.82137 2056220; 145.85324 1432018; 145.93513 69863; 145.95561 71243; 146.05632 7414530; 146.23383 5571; 146.3524 71721; 146.50913 131868; 146.52987 22048; 146.61802 4005074; 147.02412 4781200; 147.03109 12950; 147.11887 339276; 147.50376 46462; 147.6143 1082445; 147.75021 28131; 148.16426 1605868; 148.24975 37659; 148.5103 118033; 148.58606 51524; 149.48056 1535599; 149.83728 69056; 149.89466 426457; 150.13032 63758; 150.54646 9222874; 150.66581 19242; 150.93577 42334; 151.52582 69970; 151.8397 3661444; 151.92473 1718981; 152.08892 9259; 152.17233 1176264; 152.41412 1147972; 152.46963 9092; 152.63648 1529680; 152.81549 4616664; 153.01747 5819; 153.75011 26676; 153.85419 24206; 154.07944 2301; 154.33349 190486; 154.4155 8696296; 154.4972 29937; 154.68221 9365680; 154.99623 387531; 155.3535 4316219; 155.59188 19997; 155.81781 8608; 156.53563 4704535; 156.56191 75804; 156.66286 3982088; 156.93343 33256; 156.98151 27587970; 157.02904 143397; 157.26698 51588; 157.39591 1092630; 157.40674 28834; 157.63699 27382; 157.67601 4477; 157.85972 43235; 158.0424 44383; 158.29265 97786; 158.4659 5490358; 158.59154 24100; 158.5979 3289; 158.6779 1630579; 158.72329 7319909; 159.11359 243; 159.35559 20636; 159.50835 8698503; 159.87457 39690; 159.87537 4030747; 159.94413 54181; 160.1726 2687865; 160.50061 56526; 160.53531 1937; 160.90881 21771; 161.06712 2956; 161.15313 55178; 161.30565 43880; 161.37117 2751482; 161.40419 107915; 161.41649 168395; 161.65599 25650; 161.69438 14115; 162.19668 1459; 162.28243 787530; 162.42974 45274; 162.50762 9187; 162.55797 25485; 162.58077 6704; 162.60299 129481; 162.68887 921349; 162.69106 20852; 162.96536 73442; 163.21187 23100; 163.60336 19083; 163.60709 35142; 163.69808 24938; 163.90914 18253; 164.08788 62535; 164.30537 3813025; 164.43659 13067773; 164.48498 3016929; 164.54771 2126939; 164.67965 4988; 164.80294 45568; 165.15687 93472; 165.66154 4758776; 165.7007 3286876; 165.79101 129428; 165.85814 73323; 166.14984 178487; 166.42296 23258; 166.56055 20764; 167.07548 7374; 167.3317 20151077; 167.69363 18694; 167.81198 2110839; 167.83057 649941; 167.9355 12380; 167.95216 1577571; 168.01853 47223; 168.14573 3722; 168.18662 8789810; 168.22267 30555; 168.31052 5752107; 168.53164 689; 168.61212 6229; 168.64169 1543084; 169.17475 110777; 169.35893 19381; 169.5004 5273481; 169.53194 20595; 169.74208 4040882; 169.7925 575264; 169.8715 1793405; 170.33801 16337; 170.57598 1961830; 170.96428 22925; 171.18872 6370; 171.28484 22882; 171.38201 1666670; 171.40452 23536; 171.45809 327021; 171.70235 3317; 171.96676 23145; 172.00361 5366; 172.21704 917645; 172.36872 61310; 172.39988 31873; 172.64247 9546; 172.68011 3802; 172.97935 67791; 173.05209 10596; 173.38168 10940; 173.7548 447802; 173.89712 16887533; 174.00987 16858; 174.40044 3363; 174.84486 14617; 174.91397 3705930; 175.19187 4931371; 175.25701 16631; 175.41688 82474; 175.5763 3933; 175.73825 16867402; 175.80446 608754; 175.97057 70573; 175.98005 181014; 175.98852 53627; 176.36743 7350; 176.78684 14783038; 176.95607 7881700; 177.10616 2857751; 177.4885 285406; 177.62389 33918; 177.78822 35744; 178.02474 8276; 178.08258 8637005; 178.66827 524; 178.74408 712098; 179.00252 38734; 179.23019 23871; 179.41755 54388; 179.50007 627667; 179.91489 28238001; 179.97504 499866; 180.00646 5404711; 180.15272 198789; 180.43452 65237; 180.45526 11905; 180.57314 68399; 180.75321 191518; 180.84567 38830; 180.84668 57351; 181.04587 1912033; 181.12594 29999341; 181.36116 75996; 181.40915 58220; 181.43634 5275398; 181.98535 38952; 182.0592 49745; 182.462 6321; 182.52548 847812; 182.69074 57758; 182.78021 61480; 182.86067 143095; 183.35549 1642477; 183.49717 8332; 183.59135 4005223; 183.7665 43411; 183.97624 1465586; 184.01522 75575; 184.48202 27221; 184.52765 897427; 184.59302 119709; 184.73172 60026; 184.94743 13609; 185.14766 597026; 185.49223 7821; 185.84955 64035; 185.90188 5858; 185.93267 40190; 186.3621 339290; 186.40682 42500; 186.56195 809864; 186.57506 29048; 186.61892 5245; 186.99354 3356409; 186.99401 53934; 187.06843 23078; 187.26884 54678; 187.39141 67596; 187.44614 1771082; 187.45537 39655; 187.66957 170444; 187.86712 11711; 188.10418 2868; 188.11242 6355; 188.33889 4572022; 188.41371 4382748; 188.63604 18544309; 188.66221 9660404; 188.7522 3560; 189.19688 467798; 189.61369 1167698; 189.63 11170; 189.75481 4824224; 189.87069 52529; 190.04261 18651193; 190.15526 9657914; 190.17266 7574494; 190.49422 1765; 190.51311 9251; 190.60335 39243; 190.81347 4779346; 190.92126 8126075; 191.16429 1654369; 191.2036 1487898; 191.5734 26751; 191.64032 2419; 192.55523 23647; 192.55982 2465; 192.68752 5789; 192.98848 6655; 193.09663 4145637; 193.24343 123918; 193.30353 44430; 193.31311 63723; 193.67385 1419724; 193.9847 410492; 194.02394 19947836; 194.03377 78685; 194.06172 7472367; 194.0695 1879785; 194.59191 24459; 194.81722 1087016; 195.10769 1036056; 195.19213 1347063; 195.2014 2132; 195.63529 2268820; 195.72861 26464; 195.77201 16105157; 195.8887 59672; 196.29633 4417579; 196.78699 9906514; 196.91383 23934; 196.98846 8741247; 197.64528 6018442; 197.90115 28141; 198.14299 36466; 198.2867 1155314; 198.42195 1232335; 198.55995 73812; 198.67882 15488; 198.69606 63144; 198.77126 188201; 198.92451 3019353; 199.02445 49416; 199.07546 50718; 199.09682 3667432; 199.19226 9763040; 199.20574 52336; 199.34377 4717714; 199.39917 7261; 199.48374 1064237; 199.50413 36017; 199.86387 19901; 199.87698 312389; 199.97863 2651209; 200.11003 22337; 200.20646 4600495; 200.22549 16580881; 200.31803 2060985; 200.38952 1641233; 200.54165 17345; 200.55934 49434; 200.93891 1276370; 201.18224 1683232; 201.24761 6982; 201.32352 4679621; 201.44177 850153; 201.51997 408807; 201.5308 57431; 201.91858 9586; 202.043 22416; 202.29779 50742; 202.52496 22501; 202.58331 8880204; 202.99267 1828929; 203.07138 253052; 203.17846 3579; 203.39848 85699; 203.57968 43510; 203.69691 420560; 203.7756 6659; 204.13934 125768; 204.21248 33701; 204.21535 11862; 204.21941 60460; 204.25726 509571; 204.28266 4289866; 204.47306 5058903; 204.5394 599199; 205.0061 199486; 205.04015 6870974; 205.07116 727365; 205.46486 17387; 205.62242 98559; 205.67472 1750879; 205.99864 64686; 206.03267 24138; 206.1598 4022105; 206.40694 30992; 206.49805 37125; 206.64611 21499; 207.23172 65237; 207.23594 510269; 207.26446 35969; 207.34762 1582157; 207.95108 52038; 207.98718 91113; 208.42376 5669472; 208.69344 886754; 208.70401 78241; 208.89125 100840; 208.95969 3482; 208.97092 41137; 209.68616 36148; 209.8477 230978; 210.27854 28650; 210.40333 27526; 210.66183 21918; 210.77473 1803911; 210.85444 948010; 210.90968 6154; 210.93283 54140; 211.05439 54261; 211.07738 24561; 211.16447 25651; 211.40875 8538971; 211.49302 2303; 211.55916 9129428; 211.65489 9711; 211.68956 1313; 212.07046 55580; 212.33296 526597; 212.4947 73664; 212.58738 132239; 213.0995 7912105; 213.23533 805174; 213.23692 523875; 213.7758 3906; 213.79199 8275; 213.82556 53189; 213.9866 28357; 214.45672 982; 214.73562 7021; 214.7453 18764; 214.94993 61008; 215.08254 31855; 215.12116 28097164; 215.18008 4753261; 215.19929 737609; 215.27579 1723281; 215.32444 9567; 215.36211 1096292; 215.47025 1867430; 215.49761 2818; 215.75531 102758; 216.2276 208311; 216.27885 14059; 216.4349 3123585; 216.80889 78772; 216.89789 7431611; 216.93112 564880; 217.52143 5898626; 217.52835 555498; 217.83177 18003; 218.00782 24962; 218.01923 1117385; 218.3465 37311; 218.45277 8590; 218.56612 21090519; 218.79137 72088; 218.86367 2421766; 219.45131 43432; 219.55346 9380145; 219.71246 4960525; 219.71933 45693; 219.73549 4909; 219.93888 4436303; 220.03638 1425247; 220.09758 26221; 220.99789 149939; 221.48482 8267; 221.53647 5704; 221.62784 1404823; 221.73688 1064829; 221.91 53524; 222.37863 76133; 222.38061 7636; 222.39409 30802; 222.44339 83678; 222.61509 1447386; 222.84774 9590; 223.04776 9690; 223.41861 77209; 223.42576 6998831; 223.43792 6803; 223.44196 8585; 223.62037 523238; 223.65254 52313; 223.70171 16501; 223.7863 182582; 223.80771 237031; 223.9475 38599; 223.95966 79927; 224.09117 143649; 224.34115 125623; 224.43114 25077; 224.44065 9609965; 224.80717 1656899; 224.80949 71423; 224.83531 613810; 224.85506 7214294; 224.86726 1374456; 225.06522 4321; 225.07054 193666; 225.21857 3981373; 225.25753 5268243; 225.28271 101722; 225.35499 29886; 225.42787 151555; 225.5304 43831; 225.63047 4221529; 225.70748 1062084; 225.97799 3725; 225.9889 59545; 226.03331 139004; 226.03661 172966; 226.07575 7538; 226.14332 6142; 226.17631 302450; 226.46073 1215416; 226.54209 708502; 226.97569 3546; 227.08522 5536; 227.30662 3765; 227.59715 657008; 228.30771 50258; 228.33405 855604; 228.60723 3190794; 228.79057 34265; 228.9491 214257; 229.05411 6675293; 229.12389 840167; 229.22252 32074; 229.62979 94; 229.88921 29269; 230.0261 40915; 230.03764 441079; 230.20627 32531; 230.59889 25761394; 230.62766 139353; 230.76441 7689; 230.94215 197601; 231.03468 10778; 231.28633 76056; 231.7261 259072; 231.92337 195041; 231.92374 1634202; 232.23605 4227158; 232.46077 64713; 232.63048 20693; 233.097 25584; 233.40149 2484; 233.59478 4784; 233.95935 10367; 234.06404 20016012; 234.25041 23096; 234.2642 2219164; 234.48152 4592; 234.50567 1961499; 234.53733 660079; 234.68553 2796911; 234.71588 697701; 234.85791 27107; 235.33839 4216; 235.43789 103492; 235.56244 7573; 235.95361 188988; 236.6196 1525286; 236.6647 2239426; 236.93231 23172; 237.12933 8413204; 237.27206 346665; 237.60531 3250499; 237.74371 22755; 238.00338 1010154; 238.06641 2476; 238.15425 110975; 238.29215 27655; 238.3426 3847; 238.41996 348065; 239.12313 5093655; 239.87429 111949; 239.90222 72471; 240.13961 442945; 240.23527 10440; 240.48033 25558; 240.98499 65940; 241.01297 3947750; 241.61833 15639; 241.7042 9763; 241.80939 4115740; 241.84036 42164; 241.89654 73996; 241.93656 157684; 242.10837 20233; 242.15208 4506480; 242.48904 67625; 242.77805 699218; 242.80747 5667635; 242.87888 32527; 243.03111 4203084; 243.50207 11610; 244.08887 15075314; 244.106 3344893; 244.52008 29561; 244.55514 3742355; 244.65082 2007214; 244.75604 32497; 244.77845 4952714; 244.78118 22136; 244.85376 691876; 244.85535 12045; 245.05564 28946; 245.21116 27479; 245.65376 437594; 245.84708 48441; 245.85677 25818; 246.0861 163604; 246.84866 4367048; 247.18617 8561; 247.37707 27064; 247.3821 9602; 247.41356 671606; 247.43004 39047; 247.68907 66366; 247.70156 2553689; 247.79685 1218939; 247.80134 9542; 247.90818 5479; 248.0717 29060; 248.39629 6897; 248.46932 845998; 249.088 68406; 249.15277 5719; 249.1993 1375; 249.29756 10200; 249.35674 4159; 249.40966 560724; 249.44549 179955; 249.76232 29541; 249.90061 15618530; 250.07192 26514744; 250.52754 325589; 250.61882 773; 250.72904 53923; 251.25148 413621; 251.25978 4358765; 251.2623 7194; 251.38362 13050317; 251.53335 4251554; 251.71955 72213; 251.82139 2515208; 251.97376 6667551; 252.11378 3239; 252.17909 25345; 252.23387 353005; 252.30581 2016971; 252.60082 4399819; 252.74109 22167; 252.74534 1727; 252.81703 4328004; 253.18141 68917; 253.37128 32921; 253.45463 712193; 253.55766 1681880; 253.57454 18186874; 253.6039 10172; 253.69706 8866562; 253.69728 58186; 253.8261 3854715; 253.83343 78200; 253.85727 4139866; 253.9864 508487; 254.39384 27770; 254.696 35574; 254.81083 164950; 254.90908 33032; 255.10555 1576450; 255.15525 28013; 255.20064 722332; 255.20107 1183849; 255.31939 376452; 255.39408 20880; 255.74091 28714; 255.87122 486252; 255.89329 3223; 256.00124 811530; 256.09207 411553; 256.447 13741; 256.45153 13790; 256.56229 4706276; 256.65162 78447; 256.76246 18496; 256.81087 74521; 256.87458 54013; 257.05771 1437; 257.38713 61440; 257.42822 8733206; 257.53539 4140; 257.69755 545038; 257.72425 47610; 258.1276 4247; 258.13423 1520286; 258.34056 77085; 259.22494 44517; 259.32297 4957544; 259.37943 61500; 259.55938 4519542; 259.63832 269; 259.86591 21189; 259.96574 1493344; 260.07725 8354; 260.21462 579997; 260.35585 4068113; 260.62733 6988; 260.63876 19007; 261.53011 7673; 261.60406 13552; 261.62678 6466; 261.73285 1903394; 261.99003 127791; 262.59009 7272720; 262.69253 999306; 262.76919 2920715; 262.99563 58614; 263.18597 76428; 263.27151 1139283; 263.69769 636462; 263.69939 57659; 263.74085 252585; 263.91692 50401; 264.04723 1900566; 264.23425 29195; 264.29861 74484; 264.32942 3948394; 264.47001 3069; 264.55158 3015356; 264.6766 1880004; 264.69622 27191; 264.78008 35431; 264.84158 156213; 265.17322 26740; 265.40071 14422079; 265.45789 69790; 265.73648 1141623; 265.81286 6470931; 266.20472 24563; 266.45201 27411; 266.81169 4269302; 267.01256 9557649; 267.04503 68496; 267.06097 22024304; 267.1396 77411; 267.46815 514; 267.59416 5864199; 267.60078 4363516; 267.62496 338957; 267.82858 5923; 267.88515 1358422; 268.06526 2563606; 268.21408 25438; 268.28472 30642; 268.5236 9514; 268.61964 196429; 268.9583 44774; 268.95888 42281; 269.27181 26955; 269.4495 4584; 269.49161 53202; 269.87204 219974; 270.0769 1379; 270.11212 3567; 270.78339 15732; 270.89071 76262; 270.91901 6624991; 271.08831 6319046; 271.27253 1632017; 271.33413 36398; 272.1466 2924; 272.19602 46346; 272.21963 564844; 272.30612 24798; 272.50228 50538; 272.77473 1276104; 272.82579 393606; 273.22621 20101; 273.25608 5215534; 273.26112 505444; 273.44287 25810; 273.5075 865376; 273.58207 7453275; 274.28312 611770; 274.29797 45968; 274.60514 4478; 274.89154 419424; 274.91048 9859; 275.10454 2582460; 275.25982 1871066; 275.66806 1781; 275.76868 2106398; 275.8818 990769; 275.91905 9164; 276.18063 28739; 276.18965 115652; 276.2947 5939300; 276.31703 49672; 276.65894 138067; 276.70588 1790452; 276.73495 9005808; 276.79321 5650105; 277.02548 63836; 277.2259 6444178; 277.39511 8682354; 277.79849 8019320; 277.94138 58361; 278.02296 10936390; 278.30662 2839370; 278.51385 812799; 278.53018 66234; 278.77558 189; 278.87277 3437712; 278.995 4024; 279.01781 59850; 279.12341 79149; 279.20563 26174; 279.26389 8925; 279.62423 7015; 279.74153 8932; 279.82852 909082; 280.47503 1602929; 280.48772 1851031; 280.70039 23813; 280.72618 1635836; 280.88569 1316184; 280.92386 1220854; 281.29316 38330; 281.69514 2036100; 282.27091 38456; 282.32577 38116; 282.32663 4792875; 282.43133 27065; 282.64755 43665; 283.18754 4257987; 283.47892 20883; 283.60765 16737; 283.71515 60930; 283.92043 27965; 284.13427 227844; 284.88007 53235; 285.08086 78973; 285.09031 1553315; 285.24161 1123; 285.29761 2847; 285.30713 6556784; 285.38176 61547; 285.56934 2847652; 285.75779 1064307; 286.0662 50272; 286.38436 2426901; 286.5643 73532; 286.70752 359831; 286.71426 9963356; 286.76107 961329; 286.77843 139863; 286.82106 24294; 287.00879 9319952; 287.14599 18461; 287.14715 26433; 287.2197 1353107; 287.6856 2174861; 287.7058 25471; 287.74066 76872; 287.79148 27187; 287.82018 898928; 287.88897 1235816; 288.36521 21190974; 288.50462 5871999; 288.60686 2439578; 289.4763 11644; 289.49664 14638445; 289.68378 1719775; 289.7388 2855; 289.79793 49648; 289.98945 29872; 290.01909 8283; 290.0686 2745364; 290.19836 54810; 290.44266 502391; 290.91183 124883; 291.31336 31236; 291.31809 19234; 291.49957 160150; 291.61438 72214; 291.62852 9905; 291.63806 70885; 291.65423 5069; 292.71257 194119; 292.782 3216750; 293.01815 21244585; 293.075 38723; 293.30859 3781; 293.46763 8836063; 293.87762 106435; 293.91503 23588; 293.96994 103298; 294.00628 42778; 294.04914 9652; 294.14863 27146; 294.16012 8397409; 294.30908 199623; 294.51811 58590; 294.71039 67876; 294.92986 29642530; 295.06435 11274; 295.06488 100972; 295.16655 1515; 295.20859 63873; 295.28604 7793; 295.41923 7098589; 295.45233 2174266; 295.453 23407; 295.69216 24262; 295.73209 14918; 295.85461 57182; 295.94713 60999; 296.3846 34318; 296.46756 4806; 296.46958 42353; 296.56901 784745; 296.60334 17967; 296.72117 1054968; 296.73877 176344; 297.01013 2932; 297.08333 33370; 297.54438 73966; 297.55572 3069; 297.75215 464279; 298.48192 195202; 298.57292 6699708; 298.58558 4166241; 298.59653 226348; 298.61557 59409; 298.63738 20336; 298.79588 34404; 298.91324 120985; 298.94172 1357141; 299.56368 4905517; 299.66007 21007; 299.73155 9126; 299.78872 28910; 299.95749 6658; 300.0653 24409; 300.3244 33873; 300.4006 985167; 300.96057 6971; 301.18683 28553; 301.36023 131254; 302.44781 1051010; 302.54861 3909400; 302.71704 495897; 302.77491 6917333; 302.7759 23098; 302.80601 71345; 302.81978 64066; 302.88859 22457; 302.96891 1926; 303.00278 118192; 303.44969 4811992; 303.51948 508193; 303.55811 611242; 303.66066 143271; 303.6991 861003; 304.00034 80995; 304.22959 28417; 304.29599 1861780; 304.38019 1266943; 304.57177 40494; 304.6607 26533; 304.69115 641173; 304.7372 1928325; 304.82166 4112; 305.18562 34649; 305.54138 1059500; 305.62609 1024743; 305.67549 18317; 306.07792 17345132; 306.14861 82962; 306.28262 1238021; 306.4231 3284495; 306.4614 377989; 306.47515 39355; 306.56245 68607; 306.61504 861211; 306.77563 984734; 306.79283 1797684; 306.84181 6785407; 307.06523 1938400; 307.4941 26800; 307.77149 4563; 308.31455 99391; 309.09529 6587736; 309.10042 4642160; 309.14628 44882; 309.26403 30897; 309.31003 505632; 310.03577 1178028; 310.27579 18814; 310.33047 405178; 310.3424 48843; 310.40981 4618498; 310.46638 165; 310.57753 177604; 310.61394 12799876; 310.66524 5381846; 310.77772 2297571; 310.90553 3965; 311.06272 2532; 311.18233 4020; 311.23392 529475; 311.27864 236291; 311.37782 595443; 311.42666 303658; 311.61834 7820; 311.70418 5595203; 311.87016 2391; 312.02043 53896; 312.08512 49083; 312.24165 9812876; 312.3567 42537; 312.36717 493628; 312.39809 43702; 312.50385 24854; 313.12718 1532; 313.36981 6977; 313.48408 8139558; 313.53728 55147; 313.63075 20730184; 313.73228 4620; 313.85569 344631; 314.08011 79443; 314.3337 8831; 314.36843 795344; 314.43056 14608; 314.54789 3235356; 314.60117 7522; 314.92592 906350; 315.0834 2732894; 315.33582 13360; 315.47966 450143; 315.65114 1730; 316.06865 3576223; 316.74028 43944; 316.92253 3754755; 317.5039 307263; 317.58341 14379; 317.84806 2510043; 318.03219 866491; 318.75122 20194; 318.99811 976779; 319.15493 453558; 319.17316 884496; 319.3244 1346784; 319.36812 4768; 319.86341 66406; 320.23404 51700; 320.73259 47697; 320.84947 416203; 320.94459 2666; 321.68379 5986423; 321.96958 11727592; 321.97571 1851682; 322.00745 833; 322.22113 1341547; 322.31014 13882081; 322.34334 22338981; 322.7263 380308; 322.91888 74636; 323.4447 540; 323.66208 59582; 323.7483 78218; 323.7874 1154219; 323.84098 9476723; 324.2516 61865; 324.35065 680300; 324.58618 50721; 325.00254 56178; 325.01054 27721; 325.09699 65387; 325.1593 56901; 325.24209 76859; 325.43282 755441; 325.74636 57107; 325.78074 192803; 325.85692 55610; 325.99321 68181; 326.15528 8834; 326.19391 15470443; 326.67445 73607; 327.10404 64758; 327.15429 1955783; 327.17614 9486; 327.23428 59469; 327.33666 2797598; 327.47342 23688; 327.68777 77015; 327.71266 11946065; 328.14646 269042; 328.33273 39956; 328.39332 19810; 328.82572 6198959; 328.90518 14660; 329.25901 58002; 329.26252 8880870; 329.26778 61339; 329.30658 5508; 329.51827 9861; 329.69814 719041; 329.97682 198746; 330.52963 45933; 330.69784 26180623; 330.94144 1487; 330.99478 199376; 331.36067 643834; 331.42701 7495959; 331.66496 60877; 331.70844 3876; 332.06375 5594218; 332.29597 2647952; 332.34825 2604; 332.34842 40006; 332.51271 39508; 332.71801 3209; 332.8045 3751; 332.86071 831430; 333.04536 1824487; 333.2368 24579; 333.33163 1381; 333.34149 3740280; 333.47855 4669; 333.48846 1571665; 334.12294 39214; 334.12799 24028; 334.21933 76357; 334.25403 8590; 334.43567 1321880; 334.89201 1593842; 334.9971 29966; 335.40883 2604; 335.48028 612461; 335.52458 76315; 335.62605 1184224; 335.64028 2178748; 335.94254 107006; 335.9516 8059200; 336.03688 8212; 336.59712 3515089; 336.65194 817643; 337.1468 1004; 337.15955 1983189; 337.26425 750495; 337.40836 114896; 337.76129 20386; 337.8391 7766433; 337.93855 3680693; 338.06824 70759; 338.29828 177914; 338.32179 9419; 338.41676 9108; 338.74232 24061; 338.74755 60215; 338.9191 5910; 339.53832 28076; 339.55733 51423; 339.79223 774; 339.84495 12493; 339.95293 6969925; 340.10372 2342; 340.38272 1689122; 340.4154 3294; 340.83116 128401; 340.91447 705543; 340.9588 364306; 341.37253 5555; 341.48087 24701; 341.64662 48319; 341.67525 59304; 341.87494 2077; 341.98386 264411; 342.07159 3669164; 342.42677 1909; 342.65241 5076578; 342.86855 28670299; 343.1425 1635031; 343.24572 33749; 343.25607 23568; 343.37929 155669; 343.43726 493; 343.65269 910111; 343.82152 26322; 343.92753 29441; 344.09183 600; 344.30376 28731363; 344.31588 8852748; 344.37795 2671385; 344.47284 70607; 344.66986 15608492; 344.82855 6665885; 344.92706 6741; 345.11929 657092; 345.27628 22002; 345.5688 4028034; 345.59752 2991; 345.89619 450827; 346.22889 15777; 346.25197 2511888; 346.54614 104848; 346.55387 1729; 346.60339 66066; 346.60637 785813; 346.97199 187969; 347.11913 74846; 347.27609 16717; 347.51979 5363; 347.78087 47670; 348.76975 20695; 349.25169 40337; 349.25997 786580; 349.50078 16179384; 349.5176 154152; 349.7214 39595; 349.81811 8934499; 349.92248 4598967; 350.18301 39840; 350.39176 69799; 350.95725 101512; 351.13035 39160; 351.28528 1513365; 351.41821 2028342; 351.58852 30569; 351.69581 4533182; 351.76106 9892; 351.87948 27363; 351.99414 26129395; 352.02784 13599; 352.0312 9694239; 352.04598 7063844; 352.40264 818197; 352.54305 28690; 352.6032 73374; 352.95212 3411976; 352.96323 139562; 352.99842 7308799; 353.05276 25781; 353.42157 1184986; 353.58407 39939; 353.65442 13093; 353.81334 8723835; 354.14095 56104; 354.28136 3996; 354.72331 53271; 354.90645 49017; 355.82687 7386250; 355.97 102760; 356.0352 17763194; 356.03776 5436; 356.11644 55971; 356.59704 5909; 356.67772 4360921; 357.01452 27363; 357.03687 4103465; 357.21455 721459; 357.39417 568402; 357.40513 56470; 357.73934 1324674; 357.74414 11985; 357.7877 20955603; 358.78652 59090; 358.84561 1094782; 358.94626 10384; 359.04846 30559; 359.10368 9487800; 359.15526 36301; 359.38279 1605; 359.65653 918720; 359.74868 7254; 360.13617 79924; 360.1427 1414264; 360.21612 6592; 360.27061 1057; 360.54588 38697; 360.65325 4138280; 360.92273 4303813; 361.00797 7988; 361.13771 4271412; 361.20046 28343808; 361.43337 74338; 361.63266 3132619; 361.63464 53305; 361.92523 69232; 362.14397 6656713; 362.50831 934236; 362.51331 4047757; 362.54612 1363354; 362.60492 3870982; 362.81587 263551; 363.07723 20272; 363.93438 29770; 364.24665 1995534; 364.69774 26643; 365.06199 1904355; 365.34405 305846; 365.46278 132501; 365.63636 728810; 365.64383 21748794; 365.7934 44152; 365.99578 13319; 366.03484 8341; 366.05676 1290333; 366.0585 65291; 366.27438 663023; 366.34999 78110; 366.49053 3194292; 366.5383 920; 366.64646 28490; 366.75721 2315552; 367.40728 3054; 367.6821 1882793; 368.20151 185288; 368.25558 22562; 368.44682 180607; 368.49059 20940; 368.79125 28674; 368.91611 6596; 368.99395 6344456; 369.0621 79184; 369.26126 8443638; 369.36443 29302; 369.37485 15384; 369.59845 7043; 369.85954 120665; 369.88406 176334; 370.06795 29684366; 370.20967 29431; 370.47016 49000; 370.56306 766286; 370.57418 63865; 370.57442 1542491; 370.61744 567038; 370.66676 1312973; 371.09643 4262227; 371.17586 28596; 371.27907 57046; 371.38484 29700; 371.6648 3080206; 371.78882 37188; 372.11589 278322; 372.33587 59209; 372.35182 183204; 372.60638 221329; 372.66503 7511848; 373.28587 29486; 373.4099 2984908; 373.4867 46; 373.57639 3028; 374.1785 957225; 374.21865 18067; 374.22367 629351; 374.51502 25299; 374.58255 34593; 374.74537 8973; 374.80393 16179; 374.89502 19913; 374.97504 26835; 375.2986 2796; 375.5218 7251883; 375.55124 5937; 375.62651 42977; 375.76071 1496260; 375.86687 71626; 376.13352 543694; 376.43321 3101; 376.50699 8641611; 376.51486 59891; 376.61559 7269; 376.62787 22698; 376.66291 9879; 377.0689 29169; 377.27411 1326825; 377.37165 5510178; 377.41772 9117540; 377.4566 63641; 377.51168 77649; 377.52029 4632; 377.7372 52293; 377.93865 3383612; 377.9919 5525; 378.14552 77847; 378.15539 9346428; 378.2425 32782; 378.38609 51188; 378.76588 45291; 379.09023 2795533; 379.1455 18250; 379.16631 31296; 379.62076 40008; 379.63159 776247; 379.70836 69404; 379.74709 47957; 379.78475 15147; 379.79098 48646; 379.79964 27161; 379.83542 17670; 380.03787 2583975; 380.05356 63461; 380.72356 601847; 380.83006 44869; 381.27206 7291377; 381.37304 7315; 381.40048 809; 381.44053 1322; 381.50303 27079; 381.82523 49711; 382.19541 73514; 382.40734 968132; 382.42319 73558; 382.48889 12206; 382.94385 1462; 382.95873 1309348; 383.10495 3420047; 383.15494 5767521; 383.25406 4543; 383.43575 11770; 383.46838 67005; 383.76901 1005806; 383.86952 15557; 383.93762 1715414; 384.08676 1063; 384.17103 5501; 384.55632 1499592; 384.60679 4043805; 384.66041 37726; 384.66388 21255345; 384.69058 28439679; 384.87139 15377; 384.92371 29828; 384.98541 957814; 385.07862 3551905; 385.21711 5373; 385.38898 37645; 385.5003 2828312; 385.63939 32751; 385.84941 3819; 386.05697 8208; 386.11804 2416810; 386.15862 1167; 386.2647 105121; 386.34263 4727; 386.47002 77398; 386.8902 140174; 387.1413 455334; 387.91241 26564; 387.94893 618055; 387.96971 165731; 388.46595 9180783; 388.97901 4261444; 388.98123 27410680; 389.0267 2466974; 389.14539 1976755; 389.24424 68452; 389.30491 9872275; 389.48352 160837; 389.67957 35839; 389.94578 305788; 390.07386 3450769; 390.3677 69486; 390.45896 1115638; 390.60206 9529; 390.8206 4660; 391.35445 7742; 391.3988 7839; 392.08758 161368; 392.18768 133832; 392.51111 42649; 392.71985 9683; 392.79917 1161229; 392.94815 2347267; 393.49421 5934860; 393.58792 6364; 393.61511 26041; 394.16939 429470; 394.26886 3230068; 394.38209 22509; 394.51273 724835; 394.5162 167837; 394.81625 53968; 395.0612 2696557; 395.09505 27567; 395.15338 789518; 395.29446 12347; 395.4504 2516; 395.65509 140517; 395.85544 116616; 395.98378 3501; 396.1015 22983; 396.25412 23065; 396.309 73333; 396.53029 5241; 396.54178 643672; 396.6626 19794; 396.81969 728233; 397.55402 39238; 397.59009 1167641; 397.61109 106358; 397.82555 7007; 397.90227 656234; 398.01353 32228; 398.09792 1970025; 398.30752 908832; 398.32209 66667; 398.40054 7833; 398.59208 4919; 398.63801 1742842; 398.75933 27844; 399.03177 74683; 399.25328 68863; 399.25672 772951; 399.39413 77689; 399.45063 9090; 399.98051 13793; 400.18248 146878; 400.23461 41058; 400.29927 740383; 400.36815 22196; 400.43234 114272; 400.51106 46003; 400.73188 344772; 401.16507 27541; 401.19618 187; 401.63026 320107; 401.7621 124905; 401.8183 13928; 401.92905 23589; 402.05955 8366159; 402.06122 174653; 402.20035 6849; 402.21678 9350815; 402.31579 19102942; 402.35482 47018; 402.39917 50267; 402.43345 917917; 402.50887 59542; 402.97567 1691250; 403.00511 49180; 404.41041 2026445; 404.62017 18924856; 405.01678 68389; 405.11838 91278; 405.3306 20858; 405.72843 3000841; 406.18938 7360177; 406.96595 12320; 407.1203 1390962; 407.47663 7079; 408.04771 4394; 408.05026 6925; 408.08676 1790199; 408.43912 40126; 408.56532 13952; 408.68305 4217698; 408.70638 1397405; 408.84537 1856; 409.1803 713376; 409.31308 1161013; 409.9808 22676; 410.43311 9193; 410.91376 51330; 411.05579 18034475; 411.29218 24113; 411.36947 48252; 411.41633 126513; 411.4458 1356; 411.46518 61276; 411.60671 1341251; 411.62483 12968; 411.84982 10425; 412.37598 1320012; 412.39904 21979; 412.56294 27943; 412.64835 7174; 412.65751 1161687; 412.8821 2774; 413.08724 594405; 413.10915 4508771; 413.15522 24828; 413.51027 203143; 413.56293 392243; 413.64237 2182; 414.15676 9705; 414.60595 3794158; 414.72773 1618598; 415.20901 1557620; 415.21032 892900; 415.23625 53; 415.23722 3695; 415.52416 53900; 416.03761 118101; 416.06438 43202; 416.17771 5164814; 416.1944 4262717; 416.24328 73581; 416.2482 4091970; 416.69897 56609; 416.76735 132007; 416.98795 119001; 417.41387 38856; 417.72103 4035; 418.01631 234691; 418.91059 24768; 419.0324 18108; 419.32407 2427621; 419.52578 911824; 419.84025 27456; 419.95227 99752; 419.97553 48327; 420.03182 473302; 420.27147 137354; 420.2754 6447; 420.35455 24981; 420.49891 31174; 420.54677 2805450; 420.5991 1966948; 420.69147 9510815; 421.2116 23378; 421.39682 40851; 421.69718 6103; 421.70706 19132; 421.82565 69222; 421.90209 2584; 421.97919 2929824; 421.98887 46281; 422.20009 76954; 422.26886 3616; 422.45064 24120; 422.68487 152203; 423.17951 1298651; 423.35052 6185672; 423.40282 35330; 423.60698 14607; 423.6534 32679; 423.69179 2816; 423.97504 47059; 423.9933 6349; 424.08978 28935; 424.28984 20808; 424.64171 36657; 424.84314 867176; 424.98548 8745209; 424.98597 1240334; 425.04461 2284101; 425.0811 8063985; 425.12844 874050; 425.3356 161211; 425.37909 78636; 425.422 160448; 425.42415 1938822; 425.49657 1899287; 425.49769 43506; 425.85924 944099; 426.24688 711642; 426.66067 29332492; 426.67938 19476; 427.65656 15140; 427.75522 1688261; 428.08824 5585969; 428.15085 137555; 428.15152 737025; 428.40231 76281; 428.52693 1920611; 429.06956 2338; 429.28112 59341; 429.47985 136657; 429.8745 2354; 430.03863 1950862; 430.15901 2628838; 430.36621 7573; 430.58449 6870946; 430.6355 1615303; 430.63769 138692; 430.98435 35308; 431.06407 22494; 431.12939 79377; 431.13298 5766227; 431.21694 1868186; 431.25066 29635; 431.93652 4097; 431.96864 994; 432.27058 3952796; 432.34156 21987; 432.43159 19700; 432.93885 67197; 433.04203 18764; 433.18711 175181; 433.21732 24922; 433.24237 9882086; 433.81002 733754; 433.88082 72083; 433.91284 2144; 434.05704 36224; 434.09051 968; 434.53253 9269113; 435.44687 8120297; 435.6979 4454075; 435.71935 18634; 436.30739 1889; 436.35249 3160489; 436.40086 710917; 436.43483 8009784; 436.50988 35788; 436.58742 9894; 436.82175 6236; 437.07779 825; 437.27578 11943183; 437.43528 1445316; 437.92657 46336; 437.93166 59203; 438.22025 2386593; 438.41789 62029; 438.87954 2856066; 438.90024 22652; 439.09944 1542266; 439.33555 2369; 439.52573 1806361; 439.90426 54355; 439.99544 1615852; 440.06029 55452; 440.09369 4269872; 440.51417 9765; 440.5751 21937; 440.78243 128451; 440.84003 15838; 440.90182 6364229; 441.1385 4792772; 441.1619 9861797; 441.23473 31047; 441.41996 4142; 441.60596 551284; 441.69861 675091; 441.73556 2278; 441.8803 30369; 441.97642 3847996; 442.2151 177076; 442.3523 2982; 442.47395 30365; 442.5335 2031; 442.71161 3426776; 442.95573 10039; 443.20303 6960072; 443.50389 36477; 443.55957 4371560; 443.62869 30585; 443.65358 4906229; 443.69341 4058693; 444.1892 1775870; 444.31514 21902; 444.45333 1574181; 444.54876 413569; 444.75775 70729; 445.03549 69818; 445.04547 2904136; 445.27219 24165; 445.29814 1037272; 445.30084 806323; 445.35091 58496; 445.4814 480511; 445.62232 7808; 445.66024 9680498; 445.66785 854; 445.77172 67899; 445.88271 31530; 445.97194 1260784; 446.06752 1298; 446.40189 2481046; 446.46163 1467955; 446.59008 8192; 446.78002 7967; 446.98878 7112; 447.26342 5254812; 447.53578 76091; 447.56921 109433; 447.74152 128147; 447.74227 39427; 447.95245 44549; 448.10446 1995926; 448.39476 77725; 448.53472 808240; 448.7106 1412323; 448.76638 30542; 448.89938 3595; 449.01177 6750; 449.36966 19983; 449.57202 57994; 449.72347 115482; 449.91843 472; 449.97528 43056; 450.12371 835970; 450.48337 486560; 450.64873 6870123; 450.81139 49910; 451.12535 4262614; 451.21559 8216; 451.28274 5905447; 451.47064 601340; 451.71842 29333; 451.95861 59502; 452.54726 7078786; 452.77838 341943; 452.8031 6012076; 452.92391 73742; 452.98434 21377806; 453.00231 27351; 453.12992 14080; 453.13465 2624169; 453.20745 40014; 453.31293 155207; 453.50068 615574; 453.52384 9141; 453.55492 59075; 453.59044 8695; 453.75531 73815; 453.84856 65456; 453.86513 17574327; 453.9466 1394378; 454.07541 45769; 454.14012 7514; 454.16104 179211; 454.683 11218124; 454.83064 69615; 454.87975 12372; 455.07577 18635; 455.49269 11761; 455.62444 23633; 455.99097 1940204; 456.15531 4528833; 456.29086 11716; 456.31803 1959; 456.53722 4324; 456.6042 1165812; 456.64964 43379; 456.75765 285820; 457.16094 53223; 457.51688 27910; 457.53362 56175; 457.82507 26791; 457.9516 9511242; 457.96915 694039; 457.97893 1023; 458.21544 8001; 458.4348 23213; 458.4527 1260188; 458.87171 78774; 459.14167 2014478; 459.15673 41265; 459.17664 729865; 459.26172 169798; 459.31251 2949655; 459.32144 41183; 459.35569 2528; 459.46033 1376; 459.49159 45261; 459.89047 738; 459.90462 70828; 460.09615 1784111; 460.29655 801328; 460.30452 22090; 460.57327 31616; 460.92628 45751; 461.38577 4403303; 461.4601 1220; 462.08798 71788; 462.15647 62382; 462.20146 1065208; 462.26339 659; 462.46274 9734; 462.72828 25410674; 462.8882 1585317; 463.06676 120074; 463.33443 117870; 463.52583 32901; 463.81685 39575; 463.82435 42186; 464.41116 982944; 464.64694 25406; 465.07851 101177; 465.08567 28579; 465.22593 3132203; 465.33255 219294; 465.48035 34692; 465.54848 134655; 465.55191 1139857; 465.67827 3470351; 465.69634 3938459; 465.9383 3977959; 466.04377 8004; 466.4545 34345; 466.55651 8211578; 466.6928 40041; 466.69439 4283015; 466.78084 194920; 467.20976 62966; 467.23212 1508628; 467.32688 41382; 467.48461 23781; 468.30141 2558481; 468.36191 2688; 468.50646 75807; 468.54037 31816; 468.63277 61921; 468.68514 5127; 468.75146 58767; 468.76285 59320; 468.9495 7617854; 469.04188 195926; 469.2725 78194; 469.3602 3931709; 469.49036 2443738; 469.60278 156260; 469.70355 93250; 469.72068 1606055; 469.77122 72965; 470.02278 33187; 470.13234 7507; 470.73113 33242; 470.73643 26871; 470.82369 545874; 471.03513 26211; 471.11703 4985575; 471.5732 1344679; 471.65855 862964; 471.68037 132094; 471.72701 778921; 471.93984 1780912; 472.01555 1407955; 472.01699 99620; 472.05762 76012; 472.27967 144133; 472.74554 197805; 472.96273 14321; 473.32917 1386; 473.56432 43664; 474.11632 18546; 474.12566 17833531; 474.38607 26952; 474.39424 61603; 474.53121 58744; 474.55151 12396; 474.5742 5064210; 474.82821 41761; 475.18745 98948; 475.2787 197472; 475.57184 773584; 475.60452 7913; 475.70093 3361; 475.96022 1995826; 476.23436 1501993; 476.40006 11591; 476.55497 27827; 476.56386 8251112; 476.63763 40039; 476.70533 9755960; 477.04294 6480; 477.1143 1331463; 477.69689 153109; 478.01703 25704; 478.25884 56494; 478.33544 2461012; 478.35545 7049973; 478.4858 3984785; 478.67854 1901318; 478.88009 4481532; 479.02924 62611; 479.30779 50839; 479.42117 2844131; 480.16594 620340; 480.47518 51073; 480.66931 12074; 480.86552 152758; 480.93335 1279312; 480.96929 1686669; 481.26381 19593; 481.45407 2978835; 481.98374 64840; 482.25547 4189152; 482.48249 3198080; 482.59734 358; 482.77767 519800; 482.99351 1774700; 483.14411 4422; 483.39313 74968; 483.44076 25944; 483.49252 1355531; 483.77106 71674; 484.02384 24843983; 484.1444 4345; 484.2365 40987; 484.37223 150232; 484.62185 9193553; 484.63209 188931; 484.7492 5056097; 484.93868 2421425; 485.21235 3754; 485.40724 847401; 485.70053 3863718; 486.01631 1064; 486.0795 4313092; 486.21732 4915443; 486.52561 25537; 486.56544 4921; 487.25393 57039; 487.40204 1514852; 487.4749 71578; 487.72197 501023; 487.95364 38442; 488.11375 965149; 488.54573 1274087; 488.72337 176126; 488.91961 16473; 489.0499 1751137; 489.07027 168464; 489.21165 7719441; 489.26402 3873466; 489.33862 89660; 489.39975 62202; 489.40805 199113; 489.64605 2318; 489.92379 64248; 490.05082 65336; 490.12812 8699158; 490.13805 4636149; 490.4569 10482; 490.53378 7169; 490.63384 8710685; 490.68912 26363; 490.74428 5617; 490.91478 948319; 491.04734 28806; 491.17158 80918; 491.41548 50752; 491.62678 23930; 491.88305 49828; 492.20989 754731; 492.57866 61135; 492.8677 24967; 493.07306 25122; 493.31325 8890; 493.94063 503858; 494.22961 21504; 494.42005 50725; 494.70536 42619; 494.75551 49856; 494.77896 3112366; 494.89556 416472; 495.03584 9606; 495.36006 3549285; 495.54408 31726; 495.55487 2373505; 495.6071 22425; 495.63304 23684; 495.94361 653004; 496.15749 56825; 496.17342 5652; 496.36356 7952109; 496.44124 41033; 496.46166 9485; 496.64418 7486941; 496.81331 71171; 496.94507 90376; 497.15082 598348; 497.37242 2401; 497.47998 68785; 497.5003 1925786; 497.61404 58892; 497.61576 15195; 497.84558 1562146; 498.11094 1989361; 498.30413 23396; 498.86803 48421; 498.89166 1562774; 499.07299 29086; 499.17284 1230; 499.61372 9911; 499.87912 32578 +<3, 2>: 0.04575 65302; 0.19946 77277; 0.30146 77423; 0.30602 851140; 0.45623 1103368; 0.4575 80920; 0.86816 71314; 1.16583 41819; 1.19155 4013436; 1.3836 34294; 1.59795 10968; 1.60312 2241480; 1.71363 20196; 2.18219 166139; 2.22452 43223; 2.40645 167421; 2.62064 5320359; 2.72641 26646; 2.78891 520; 2.99025 765679; 3.03772 14614; 3.08156 1873648; 3.8487 51278; 4.04699 9398; 4.1266 2016335; 4.42623 26939; 4.48653 3400; 4.55917 1589688; 4.93232 39592; 4.97303 9638437; 5.01252 7378482; 5.22298 292387; 5.22512 10617839; 5.30362 859215; 5.3413 193475; 5.34761 2533; 5.44444 5543897; 5.58089 1929; 5.6473 10471; 5.71176 30613; 6.28411 56; 6.43245 1360321; 6.47274 56670; 6.59021 259659; 6.78155 144400; 6.99144 2193; 7.24436 678; 7.26426 2490; 7.41904 8466; 7.54578 170879; 7.88743 834591; 8.1441 5048410; 8.21259 7473; 8.38286 59937; 8.48362 56388; 8.63326 54473; 8.7808 26130; 8.79799 882944; 9.16863 1876976; 9.38527 254529; 9.70248 41391; 9.76656 21880; 9.77946 7621364; 9.80994 73293; 9.85546 406170; 10.10849 12583952; 10.18707 3134056; 10.35832 6636; 10.39529 75089; 10.5019 6013; 10.61365 3589; 10.72117 3210512; 10.80664 6877380; 10.82565 7463498; 11.01612 2013; 11.01853 15322; 11.12098 9584; 11.26943 43107; 11.28544 23254; 11.77449 119058; 11.86622 1688971; 11.98204 13705; 12.41658 1299474; 13.09078 26113; 13.09869 55563; 13.7858 6708399; 14.09678 27589; 14.19533 4988; 14.20699 29746; 14.46821 1378171; 14.46855 1224149; 14.85192 4387734; 14.86008 1915472; 15.0739 951823; 15.17101 29168; 15.38885 152005; 15.3936 33075; 15.61273 77741; 16.10727 71838; 16.35329 6815; 16.41298 1622; 16.59992 48977; 16.68417 7161; 16.97191 7457659; 17.00324 43217; 17.09398 921687; 17.24625 16502; 17.39657 31241; 17.44945 1286662; 17.49085 744200; 17.54769 8587; 17.88651 3910914; 17.89003 7767; 17.93192 46923; 18.10366 62688; 18.2887 2144243; 18.3049 23977; 18.62563 30327; 18.79223 2766; 18.86051 292932; 18.96652 1773503; 19.01499 1785259; 19.07797 13060; 19.14797 840488; 19.3026 43648; 19.43238 4531; 19.66428 3769414; 20.05861 8429; 20.10333 10445; 20.35484 50186; 20.49691 3692; 20.81901 50851; 20.82185 12461; 21.13806 9081; 21.26465 24232; 21.44949 2505056; 21.49348 77899; 21.67362 192469; 21.7323 105784; 21.75376 42754; 22.10316 8513771; 22.29227 373324; 22.29453 73014; 22.31021 1387929; 23.24164 25057; 23.53507 103730; 23.9325 6781; 24.23006 7881; 24.39753 3593151; 24.55279 2878013; 24.5892 1151014; 24.59616 3343; 24.90613 3921; 25.01646 23482; 25.04175 77897; 25.74118 854972; 25.75323 64767; 26.02313 561722; 26.07908 6166268; 26.39642 1892300; 26.77389 158501; 27.0206 39940; 27.21502 7084; 27.29174 1599752; 27.55478 10628698; 27.70086 1252; 27.75147 34363; 27.8076 102636; 27.87308 1082803; 28.52303 1022586; 28.57283 50101; 28.72934 7627; 29.00681 71609; 29.03365 64883; 29.06011 1458923; 29.10837 3645782; 29.17456 170053; 29.34014 33157; 29.39106 4310640; 29.77809 764448; 29.86063 32170; 29.90767 1363600; 29.95257 195217; 30.49755 1476452; 30.52586 2605205; 30.58838 2665; 30.79751 135912; 31.02057 32526; 31.05592 3198636; 31.12135 30923; 31.38103 248854; 31.77051 25086; 32.32713 1340059; 32.3962 20198; 32.6191 66325; 33.23788 29723; 33.57718 6381; 33.64428 3532603; 33.69274 86150; 33.82063 6547106; 34.04767 50352; 34.05436 74130; 34.13761 1638905; 34.24199 36174; 34.29218 67052; 34.305 37955; 34.38197 79137; 34.63355 71569; 34.77198 17833; 34.78154 5066094; 34.78166 874896; 34.80553 3768574; 35.18102 10645; 35.33449 23863; 35.36701 37054; 35.51826 4764765; 35.60296 91243; 35.60475 2153037; 36.00064 53927; 36.48955 8820; 36.4986 45381; 36.64341 21418; 36.74214 40288; 36.79837 18; 37.20035 5887; 37.5084 23548; 37.62251 4032; 37.84776 150830; 37.9414 1906045; 38.11738 1652488; 38.19017 6645850; 38.39694 79316; 38.42816 1429546; 38.87686 1742262; 39.05907 3225054; 39.79403 1582580; 39.79937 67032; 39.82783 3513629; 40.41492 9886725; 40.45744 77177; 40.45752 1498520; 40.50062 1564; 40.83824 1169233; 41.00252 8586517; 41.38115 3277861; 41.55339 70241; 41.70967 29417; 41.75797 8971; 41.87383 20088; 42.12035 40948; 42.27611 24545; 42.45787 971881; 42.46692 7064544; 42.51091 1407539; 42.62374 111471; 42.65277 125677; 42.71521 7087; 42.77823 1610385; 43.33392 37943; 43.6139 1452763; 43.72878 7631; 43.81963 72483; 43.87579 1786774; 43.91179 2132; 43.94532 6443864; 43.97398 1656111; 44.06415 35714; 44.1855 8919; 44.37347 1711202; 44.66325 1905; 44.6936 23999; 44.69392 1245986; 44.73687 5008886; 44.76119 11522; 44.80608 10267; 45.175 42901; 45.27667 27641; 45.28679 3488725; 45.65966 71924; 45.92117 26164128; 45.94696 7462865; 46.10172 198598; 46.5092 2398; 47.04457 235; 47.17604 55354; 47.28168 8680; 47.29641 1508235; 47.37345 49784; 47.53355 1550951; 47.63403 22724; 47.64664 29557; 47.7654 26902; 47.77675 26122; 48.04097 5376; 48.3041 67830; 49.12258 47018; 49.13735 44848; 49.25983 24625; 49.37867 72662; 49.42399 126333; 49.45107 3578179; 49.61432 11778; 49.67849 233166; 49.93254 18623; 49.95385 16171; 50.51314 4725; 50.60677 18272; 50.66224 4914; 50.76367 24939; 50.84518 657; 50.93225 48008; 50.94801 3932; 51.06169 43947; 51.07787 962952; 51.14673 9008; 51.28652 318792; 51.54477 68586; 51.56929 1941853; 51.69522 7175; 51.72168 51893; 51.81869 440150; 51.8504 3878202; 51.9673 23338; 52.33593 8493; 52.34105 22131; 52.34258 67830; 52.51311 408822; 52.53023 55448; 52.64661 15023; 52.88122 16457; 53.34815 15556; 53.35807 3348; 53.62971 34491; 53.63192 71586; 53.83813 33212; 53.83935 60875; 53.96129 38484; 54.03719 45907; 54.19466 167241; 54.35517 5637690; 54.44041 2334525; 54.48602 2021382; 54.60562 7837; 55.0516 66090; 55.07809 57938; 55.17783 23051034; 55.28091 38089; 55.48938 38105; 55.82014 47918; 55.82428 852586; 55.97837 29739; 56.00624 2046; 56.16072 32762; 56.19071 1444678; 56.62423 7933; 56.74517 63228; 56.98602 1968849; 57.26108 9378351; 57.45222 26079; 57.49116 57344; 57.66114 3969642; 57.7438 68876; 57.81833 2269093; 57.92151 3242926; 57.98268 1104856; 58.22204 4555; 58.39523 7741; 58.68631 2704715; 58.71727 23955; 58.8154 7657; 58.82858 146753; 59.08983 28439; 59.16678 39472; 59.29803 78499; 59.49022 22893; 59.71846 7013; 59.95273 6380144; 60.02113 28567018; 60.2807 17824; 60.3936 6533; 60.9159 27820; 60.94223 3376; 60.94634 24855; 61.12024 19548; 61.24762 1006; 61.28005 64988; 61.58018 8614; 61.65749 58085; 62.36549 9088; 62.39879 2208; 62.99029 46148; 63.16326 4210760; 63.28289 327; 63.35037 1614712; 63.44713 33474; 63.52504 20279; 63.80339 74022; 63.88071 1235586; 63.94711 5853418; 64.00618 1933315; 64.24111 8723; 64.29005 5285; 64.44428 40777; 64.53704 2094; 64.59384 5259; 64.82953 9421881; 64.83182 61632; 65.01347 6205; 65.10536 28853; 65.69893 39055; 65.74653 24709582; 65.77724 55837; 66.14431 1570828; 66.16729 8765; 66.30728 1780966; 66.32963 213034; 66.33737 112930; 66.38794 603820; 66.4961 26487; 66.50566 73298; 66.60798 27769; 66.64967 3872411; 66.65935 9692; 67.1473 9749890; 67.29315 1149445; 67.34181 40317; 67.36857 7545148; 67.8993 23498; 68.05313 11013; 68.37196 16698358; 68.47372 3180; 68.53856 69119; 68.79483 31789; 69.01174 2596687; 69.19484 7413695; 69.31363 69811; 69.38277 28669; 69.50885 45584; 69.61562 8027; 69.88195 195509; 69.88938 63247; 70.12721 17728; 70.18173 36123; 70.23754 4545038; 70.43225 182643; 70.44406 49086; 70.45908 7074693; 70.89049 1916033; 71.26442 13309; 71.42184 7608494; 71.74747 69499; 71.76219 24090; 71.92796 63820; 72.01088 671558; 72.03747 8079; 72.04056 50456; 72.12628 1476676; 72.1857 2608178; 72.31416 7748; 72.50107 22575232; 72.65092 69100; 72.72273 1954425; 72.89026 1990656; 73.17153 8657002; 73.1979 3121526; 73.2093 8116; 73.50262 791594; 73.55033 1049; 73.81017 497910; 74.16604 6339; 74.61349 88955; 74.63151 26996; 74.74245 1583890; 74.76403 1899411; 74.81484 69219; 74.8554 965042; 75.03717 5799131; 75.17146 5173793; 75.19705 3874448; 75.30183 63766; 75.50528 58586; 75.69527 4597457; 76.07552 75654; 76.15292 4910565; 76.56848 18540; 77.24052 47559; 77.24988 1261701; 77.61558 17469; 78.49019 5064417; 78.59068 337836; 78.78062 29396; 78.964 172877; 79.16064 9668; 79.20667 103529; 79.37587 604; 79.64406 8957904; 79.82732 43267; 79.99326 15350; 80.03178 8303841; 80.06066 424332; 80.40251 59174; 80.41973 16916; 80.44764 93984; 80.5611 2526; 80.64061 7631; 80.81359 78913; 80.94395 63413; 80.98909 7810; 81.1043 39687; 81.2696 58700; 81.27795 474787; 81.49229 7258; 81.63646 8171792; 82.35131 23698; 82.37501 794607; 83.03618 65009; 83.15033 6726933; 83.16208 7313098; 83.45577 6604449; 83.83117 2948547; 83.84484 645310; 83.94446 172385; 84.23009 5598; 84.75641 689720; 85.64796 79667; 85.67552 158814; 85.99113 3781121; 86.14092 222558; 86.20462 5735990; 86.23011 7874746; 86.30305 162919; 86.86693 1273014; 86.9779 59358; 87.03974 21323; 87.04315 6425; 87.06581 117380; 87.07875 1948546; 87.14516 3365201; 87.59399 30236; 88.25062 69401; 88.40286 10696; 88.44009 1390982; 88.53159 52948; 89.04863 1015748; 89.09916 175905; 89.32663 4890926; 89.68094 57816; 89.73081 898083; 90.31568 267438; 90.55234 193436; 90.64458 571404; 90.69429 6656; 90.83051 45670; 90.86113 11430; 90.86641 107016; 91.11885 64485; 91.19729 42651; 91.33696 4672; 91.53947 13074; 91.5667 5955517; 91.66152 769969; 91.76986 20401; 92.08334 1715362; 92.20194 62728; 92.67188 14341882; 92.98469 7662; 93.41227 120928; 93.57664 27790; 93.71041 13231; 94.13537 74334; 94.19932 7715041; 94.27954 279178; 94.38881 927106; 94.58324 2892; 94.66176 32471; 94.87254 186786; 95.01434 40432; 95.04604 9271548; 95.21371 15811; 95.23004 6676931; 95.31036 5797; 95.44908 4043871; 95.70529 3998463; 95.95801 24304; 96.02384 188102; 96.3785 7595; 96.53761 1118897; 96.72654 5168230; 96.81959 4478640; 97.06871 16565; 97.13254 828901; 97.15969 924685; 97.18322 23708; 97.45032 4144333; 97.59747 27393; 97.66791 27667; 97.78066 999165; 97.80291 1810348; 97.82872 8006; 97.91371 21675; 98.19148 9655; 98.24048 72185; 98.50517 286498; 98.57244 937662; 98.92259 925683; 98.96283 2531; 99.38664 1835499; 99.44623 165471; 99.74943 3669166; 99.81623 152958; 99.82764 75021; 99.90992 27988; 99.91698 1194007; 100.11614 30111; 100.19041 439357; 100.27353 3064586; 100.31997 3464427; 100.40901 45087; 100.71064 48723; 100.76221 77014; 100.97506 576606; 101.07677 713093; 101.09677 192271; 101.17241 8313; 101.7331 15543; 101.79117 2001554; 102.16542 32646; 102.3256 16636159; 102.47223 6567034; 102.57105 73733; 102.72989 22627; 102.84139 17783; 103.19523 6662962; 103.26319 2039877; 103.29691 1608673; 103.40828 8772105; 103.52375 66799; 103.53512 868032; 103.61492 4383568; 104.1395 78900; 104.16774 26240; 104.29457 75427; 104.35453 906049; 104.43432 39196; 104.44113 3453543; 104.52671 8746267; 104.56047 34168; 104.65138 66291; 104.73088 5463024; 104.99593 70497; 105.32024 1222130; 105.4545 11218; 105.54003 4394127; 105.72241 5129367; 105.76488 10145; 105.82118 3550300; 105.85175 10056; 105.95225 65730; 106.35415 21788; 106.4621 29332; 106.47117 5837803; 106.89383 4271; 107.08592 8158; 107.16941 1437077; 107.28436 1010329; 107.29383 177573; 107.41885 24394; 107.43588 160963; 107.51012 1857297; 107.65948 27995; 107.74854 41055; 107.87354 61801; 107.98211 77660; 107.99732 3458; 108.0593 24301; 108.11202 4974; 108.36023 1686484; 108.37376 21932; 108.39777 67819; 108.62025 9585; 108.81141 58361; 108.82806 2250091; 108.9428 13874; 109.12779 103069; 109.32889 9154; 109.51615 18953260; 109.67852 2825878; 109.77674 3326001; 109.96597 44783; 110.08531 1500; 110.34401 57964; 110.35217 665275; 110.43354 2720516; 110.82498 1741621; 110.82922 8674822; 110.9297 164141; 111.18675 16176; 111.23873 40981; 111.50092 9825; 111.60199 54832; 111.87756 139311; 112.13888 530418; 112.37807 9841; 112.63614 1141924; 112.64038 23539; 112.7579 53561; 112.80557 76194; 113.01486 940099; 113.03237 178064; 113.06739 5555; 113.42975 50446; 113.80023 7505621; 113.91957 1887508; 113.92221 9837; 114.266 95949; 114.34802 43174; 114.70781 34108; 114.82115 4796222; 114.95543 29809716; 115.00957 1205990; 115.10076 23214; 115.27711 17833; 115.69519 8053234; 116.14837 2835213; 116.36028 38356; 116.57974 238388; 116.62182 1546004; 116.67764 148534; 116.76705 6970122; 117.1954 3530046; 117.47438 1355728; 117.7545 123838; 117.85027 7593; 118.07359 1987227; 118.08241 57626; 118.44266 775142; 118.45723 58638; 118.71843 134810; 118.94861 30614; 119.0336 35461; 119.10556 32117; 119.2639 1071447; 119.66165 857; 120.19681 78122; 120.30387 180634; 120.42637 94859; 120.67221 27438; 120.8067 1357320; 120.81889 74124; 121.16968 9633; 121.36505 195335; 121.51848 1824649; 121.52269 4513872; 121.61451 26246687; 121.73693 564363; 121.82338 1197037; 121.82717 36292; 121.89396 2904808; 121.97799 1094891; 122.00561 2673496; 122.30142 39673; 122.52035 2719487; 122.84123 1828576; 123.28275 58668; 123.44012 165513; 123.45567 11565; 123.99897 1518238; 124.14237 34244; 124.49834 57046; 125.0705 7060; 125.15063 1888983; 125.59993 1880; 125.6462 62330; 126.17147 28286; 126.18564 3435116; 126.39337 1897019; 126.57894 176091; 126.79786 73929; 126.9047 2098937; 126.99896 42028; 127.54742 3609; 127.61342 12287; 127.65233 79379; 127.8257 17879; 127.8621 904714; 128.02423 14791; 128.07483 167497; 128.11959 1178593; 128.22216 123836; 128.22624 681820; 128.28273 6248; 128.34932 6504496; 128.36784 76294; 128.4208 4655592; 128.64254 2926926; 128.82188 20833977; 128.82907 67564; 128.84048 1805622; 128.92307 25292; 129.06139 69184; 129.349 1121; 129.75538 64463; 129.85112 37187; 129.99528 5398786; 130.10649 148556; 130.24197 58273; 130.2738 5061; 130.2952 1218024; 130.30705 24774; 130.31065 6551; 130.4195 9322564; 130.64186 33449; 130.84942 5515080; 130.89468 57058; 131.05767 3011; 131.39128 1363321; 131.48502 4184; 131.50106 8725; 131.9735 24544; 132.01256 26902; 132.2265 9696023; 132.25306 29219; 132.51718 62339; 132.88515 9936; 133.00017 71534; 133.03053 1594727; 133.11629 46861; 133.33661 1664786; 133.446 26826879; 133.54087 9665; 133.58072 157941; 134.42704 6047129; 134.9697 92471; 134.97527 4009; 135.03718 45541; 135.16393 31182; 135.59743 7084; 135.61906 187137; 135.93316 11838; 135.93835 7473; 136.03127 2132642; 136.52858 5765944; 136.61732 7253; 136.65737 27589; 136.70126 58110; 136.81702 3441; 136.92347 330486; 137.0573 9404758; 137.08769 1085022; 137.29916 2668249; 137.49542 48621; 137.59594 26024; 137.77 2851160; 137.96101 1190334; 138.21255 1100874; 138.57656 2411957; 138.6513 38230; 138.68277 53774; 138.98565 6522487; 139.04182 3563102; 139.55075 1777549; 139.56706 49166; 139.58567 264224; 139.91516 60029; 140.11209 109476; 140.80337 25363; 140.95691 2619145; 141.09049 62650; 141.21139 5130; 141.62964 16011; 141.72345 65699; 141.80984 3562; 141.81734 151964; 141.91058 2075854; 141.93802 55380; 142.01521 1708286; 142.19199 2869; 142.30507 73006; 142.53738 54874; 142.82476 8487; 143.27353 3470713; 143.27752 820523; 143.30297 27665; 143.83839 76445; 143.87064 24987; 143.94903 439809; 144.1141 55626; 144.37416 6137; 144.39302 1588856; 144.43344 1330670; 144.57022 73593; 144.67911 1982402; 144.9308 1904195; 145.30954 4317166; 146.03262 4342; 146.10246 4393696; 146.2462 427; 146.30932 25445301; 146.36375 20737; 146.47832 1085; 146.56777 49347; 146.79668 59046; 147.13444 1173687; 147.20097 2655464; 147.59314 31174; 147.88736 63820; 147.98329 2925898; 148.15756 24904789; 148.46669 3488; 148.53964 25282; 148.56469 67451; 148.61682 822; 149.15776 14004; 149.31458 16134; 149.92926 2012634; 150.00309 3262837; 150.17827 455858; 150.21669 1586225; 150.69576 1070245; 150.90978 1199515; 150.99152 51154; 151.15847 155311; 151.53197 9528129; 151.72976 37972; 151.79556 1161852; 151.81128 1068113; 151.87492 147294; 151.91998 5005186; 151.97024 6505; 152.15023 1843961; 152.95213 19634; 153.16559 34741; 153.22707 42604; 153.48943 35713; 153.52272 24478369; 153.76506 62194; 153.82167 73814; 154.08629 4365763; 154.10326 65904; 154.33718 6386859; 154.39005 333; 154.40414 1266489; 154.45405 115008; 154.46272 24933903; 154.98437 1614226; 155.19489 4759006; 155.19725 608894; 155.27475 122900; 155.36255 269; 155.74455 3279835; 155.8191 11528; 156.21064 8826215; 156.37706 810543; 156.45061 78993; 156.53779 2845535; 156.9527 22581760; 157.3221 18103605; 157.34205 149167; 157.34786 5340392; 157.46027 1245; 157.71941 23433900; 157.77536 569337; 158.02013 41417; 158.24094 52671; 158.30366 164473; 158.38168 4183817; 158.38377 33356; 158.86295 17429; 158.90456 15999; 158.99166 4583111; 159.04045 3449564; 159.13423 9317; 159.14184 42932; 159.32771 1164871; 159.41781 43413; 159.51438 44049; 159.59813 7284809; 159.66814 18931; 159.67497 78285; 160.05738 6431486; 160.35612 676149; 160.59571 67536; 160.80771 4738; 160.83709 7730; 161.10562 1951450; 161.11615 489062; 161.29958 339030; 161.40341 20323; 161.57046 1875181; 161.633 4065; 161.96141 14179513; 162.05849 20026; 162.06308 19885; 162.10649 43827; 162.30794 20577; 162.3586 9628; 162.41707 4578710; 162.85699 862; 162.86019 11509; 162.92383 1820987; 162.97732 1518514; 163.13271 63294; 163.99358 739778; 164.20936 34115; 164.38221 16186; 164.41981 890444; 164.45474 3553; 164.53607 53243; 164.63471 1076174; 165.02416 46953; 165.6738 1495936; 165.72057 195740; 166.05358 5368; 166.11896 45688; 166.41338 13371129; 166.85966 1638150; 166.9688 4232587; 167.55176 1087; 167.76491 27786; 167.81322 54364; 167.85209 579119; 167.89256 5347473; 168.42783 870670; 168.90863 2426022; 169.26591 239232; 169.38433 61356; 169.68241 1420; 169.95932 2134494; 170.00434 2605; 170.25545 850002; 170.31424 6547; 170.38531 26433; 170.75795 4083; 170.77137 15137174; 170.92689 9060844; 171.01488 4170; 171.59773 2312162; 171.89241 4477253; 172.04331 5143979; 172.22247 35861; 172.481 3164259; 172.56094 655117; 172.56209 8473665; 172.73125 52815; 173.04831 2423995; 173.06292 1226144; 173.14958 76476; 173.75644 30511; 173.8468 20130010; 174.43432 65110; 174.61207 3727955; 174.61337 20484; 174.81103 8248; 174.96996 5498; 174.97871 8933; 175.044 23295; 175.0601 334739; 175.23518 679725; 175.41774 152214; 175.7481 1131228; 175.97692 54593; 175.9838 28006; 176.11793 38766; 176.19636 14064; 176.67903 3993; 176.7388 1401943; 176.92971 460015; 177.00657 1356181; 177.35694 9342132; 177.5294 1042443; 178.05965 13785; 178.41792 8172; 178.60177 1969817; 178.74445 20165726; 178.88816 21346; 178.95518 1832761; 179.13997 722911; 179.9262 1723158; 180.28331 20346; 180.43052 4520542; 180.47636 5665; 181.06413 63983; 181.35246 38892; 181.75897 3358116; 181.80484 50579; 182.24412 23391; 182.28953 15931; 182.42895 1643952; 182.48922 23324; 182.94274 2918618; 183.194 67995; 183.32045 9042683; 183.33414 22527; 183.42576 44302; 183.72427 66543; 183.83651 870788; 183.87906 338981; 183.92331 29300; 184.03555 36813; 184.52251 1529125; 184.54811 1894552; 184.7635 17582958; 184.88712 7867; 185.04359 4146911; 185.47003 8661970; 185.48852 51; 186.12658 949329; 186.26408 68296; 186.34007 6692032; 186.38601 911418; 186.44514 140232; 186.80566 1763684; 187.04896 1910322; 187.1318 15924568; 187.23972 28932; 187.48123 18643; 187.72347 6770; 187.81739 6435553; 187.82876 3763829; 188.01622 15336; 188.50383 2860; 188.76586 198471; 188.97584 57763; 189.41062 3939; 189.6833 15363; 190.14033 6180; 190.47611 617203; 190.63529 5514; 190.76799 20005; 190.85 8210685; 191.04045 67893; 191.0878 9867; 191.32157 11795; 191.37608 6787; 191.47985 3574219; 191.56297 1086546; 191.64148 31006; 191.67237 3224057; 191.67412 2117; 192.0796 1247062; 192.59012 38699; 192.68271 4293494; 192.81779 9007; 193.41452 73095; 193.43632 47824; 193.56419 118895; 193.60128 20006; 193.7311 6262763; 193.74397 3022; 194.06863 3231; 194.45747 2675810; 195.05433 21619; 195.09594 16222; 195.1577 3794425; 195.23344 7598; 195.33011 656576; 195.37018 3346705; 195.4396 560772; 195.62944 173; 196.05051 3327366; 196.46883 2092; 196.52552 27220; 196.75753 9463582; 196.76582 154; 196.80829 59119; 196.88965 29226; 197.14783 24939; 197.2129 16077548; 197.26202 2592478; 197.52559 16056; 197.59751 8689443; 197.95254 4150628; 198.5785 8657876; 198.58152 2321; 198.70187 1032380; 198.76851 69278; 198.81129 22207; 198.95865 30109; 199.22702 306445; 199.58663 3043; 199.69418 8063; 199.70267 65028; 199.71538 48718; 199.87489 750893; 199.96206 146; 200.02416 2825; 200.32605 5954; 200.41123 16723; 200.74006 6718646; 201.57619 24291; 201.8131 1426; 201.97699 4795196; 202.09379 62151; 202.24427 407; 202.31022 65145; 202.73843 7569; 203.0256 61417; 203.07398 73233; 203.3264 8700259; 203.38656 7666; 203.39905 50150; 203.56216 618682; 203.63652 18829; 203.69182 1738465; 203.82173 6995; 203.83274 48621; 204.00647 21021; 204.02637 1068477; 204.35174 61547; 204.72454 2089295; 204.72866 405; 204.78333 4245207; 204.79644 1408; 205.27417 26150; 205.29103 11622; 205.35568 69962; 205.58164 26270404; 205.79114 32533; 206.00256 1006255; 206.08907 1832213; 206.2121 47296; 206.304 4008355; 206.33388 396961; 206.66401 129099; 206.66794 2934100; 206.80765 71597; 206.90141 797725; 207.29793 3578410; 207.38352 3865; 207.46881 304641; 207.47761 961809; 207.65156 20743; 207.76234 32239; 208.26667 483442; 208.4749 43565; 208.55798 79556; 208.68036 6628148; 208.94375 34800; 209.12846 45741; 209.32352 48954; 209.38546 12990; 209.4083 77627; 209.56222 3507; 209.92866 1019417; 210.03135 3444267; 210.43301 65359; 210.45651 102864; 210.45799 815175; 210.4839 79893; 210.68054 21245; 210.75624 3069310; 211.10217 141172; 211.2037 395966; 211.30479 46301; 211.44619 32074; 211.55767 5259134; 211.67112 9464; 211.70926 1868640; 211.78167 8707849; 211.78272 3874258; 211.82703 5172; 211.95977 42073; 212.2551 9428; 212.33929 1159; 212.86061 33620; 213.11677 8157; 213.22905 1322819; 213.27587 136743; 213.30788 143842; 213.31904 24743; 213.51932 63956; 213.94938 45232; 214.11208 4944; 214.23308 41299; 214.46726 637669; 214.56328 938027; 214.6147 8503; 214.63988 3665177; 214.68037 2392145; 214.96448 130187; 215.03462 1106303; 215.04648 36794; 215.14677 287905; 215.34338 38293; 215.48724 11369; 215.64867 1844207; 215.71881 4160302; 215.75167 9773; 215.87953 232198; 215.9547 49242; 215.98217 4500744; 216.01904 71756; 216.04708 5979208; 216.13102 1582681; 216.27359 375097; 216.40822 149493; 217.26237 11797; 217.32717 1281174; 218.07027 9749956; 218.36067 2355204; 218.47644 79360; 218.86916 4064297; 219.40443 1675448; 219.42742 5814097; 219.63149 4245440; 220.1782 6228448; 220.2741 3217272; 220.469 2655064; 220.48417 10979230; 220.77331 50399; 220.83114 559247; 220.91198 567412; 221.54599 27377; 221.58586 385; 221.60015 37951; 221.74486 8044494; 221.77137 172419; 221.7856 9458556; 221.82407 113850; 222.02863 45969; 222.05467 91542; 222.10502 29925; 222.21587 411358; 222.54939 19964; 222.61408 10439; 222.7225 15196567; 222.84254 164184; 223.02627 29089; 223.08373 470958; 223.08618 8657; 223.09403 49770; 223.40676 171608; 223.68123 9352; 223.84987 265; 223.85956 3183460; 223.92436 11453570; 224.73965 5522527; 224.81804 9185; 224.93264 1013135; 225.01353 1162; 225.04201 139789; 225.16923 7246; 225.20391 1964873; 225.64629 15611; 225.69773 1686; 225.92823 10832; 226.20278 74934; 226.20355 3962427; 226.47121 46555; 226.59431 26026; 226.67707 1935778; 226.73357 1068825; 226.76822 189188; 226.84262 21270; 226.95885 4495; 226.96818 9542; 227.15687 71272; 227.17168 4445; 227.81047 1548405; 227.87725 592278; 228.08458 68047; 228.25287 49004; 228.66685 18300510; 228.96023 197009; 229.06615 67215; 229.18568 4501020; 229.69461 1426181; 230.18488 7744; 230.58107 40787; 230.67446 1901508; 230.74192 9215177; 230.86313 296566; 230.88359 49786; 231.18043 24233; 231.75327 14897; 231.80589 439087; 231.82282 1916548; 232.041 33521; 232.17533 72918; 232.26147 8238647; 232.75556 74122; 232.85456 23603; 232.85805 60540; 232.92507 826031; 233.30498 65177; 233.337 8573646; 233.42558 7650; 233.4563 368302; 233.51838 6866578; 233.67021 40052; 233.70926 1240940; 233.97367 71429; 234.08622 40839; 234.10742 639592; 234.22135 12686; 234.33179 4292769; 234.44661 3474; 234.58972 608564; 234.78768 42228; 234.84698 23758; 234.94544 4630896; 235.03166 20120; 235.05519 2514569; 235.23185 732740; 235.35044 971055; 235.43501 687; 235.69434 32231; 235.80396 52121; 236.19516 4728240; 236.29012 960784; 236.48612 10981; 236.53436 60663; 236.56331 3487147; 236.74046 12050; 237.03867 2705499; 237.34059 414642; 237.371 937887; 237.88925 397330; 238.24689 5075; 238.26743 3099693; 238.42562 27763; 238.60378 1387694; 238.61817 17050; 238.80421 37341; 239.44971 24787; 239.49427 52430; 239.61115 273501; 239.93135 634811; 240.0925 77568; 240.25511 41485; 240.55382 65502; 240.59229 4484; 240.72074 25116; 240.79436 8261665; 240.90526 5721; 241.08764 9947; 241.35644 59458; 241.43764 55987; 241.47302 182360; 242.10114 818983; 242.20065 6614516; 242.20293 13776; 242.49671 539990; 242.49962 27143; 242.67832 67461; 242.89631 144617; 242.92461 55424; 242.95329 193785; 242.95725 17248641; 242.96073 451934; 243.12764 18881; 243.36286 1064850; 243.36304 67424; 243.78338 76069; 244.03957 5901050; 244.31216 926906; 244.33176 636530; 244.36359 10838; 244.39623 134668; 244.4934 1198454; 245.51158 2004; 245.52759 65806; 245.68442 22517; 246.00848 476654; 246.2344 14063; 246.43648 34117; 246.72503 13523; 246.97369 5719; 247.04496 25787; 247.19626 534; 247.33221 5355135; 247.72869 89829; 247.91496 21870389; 248.1224 113501; 248.15085 2744604; 248.38754 4725605; 248.94571 78159; 248.96697 1997122; 249.10099 2467; 249.23061 89753; 249.24501 3803103; 249.26074 59962; 249.26207 19958; 249.33729 22758; 250.13828 5411048; 250.34746 1468; 250.47531 1416312; 250.52399 994305; 250.89591 1946193; 250.99423 27316; 251.39718 3650903; 251.53182 3879768; 251.67875 5241; 251.95519 2306; 253.36751 11275751; 253.37006 145766; 253.73517 95266; 253.74937 254855; 253.78307 1531607; 254.02723 5241696; 254.07479 4773442; 254.11581 26380092; 254.2171 39273; 254.32251 71; 254.35102 28741; 254.71032 6315; 254.77777 23210; 255.02502 9897753; 255.07569 373815; 255.20117 28914; 255.25805 1140; 255.25963 26783; 255.42286 230; 255.67594 2689487; 255.69451 73305; 255.83878 12971; 255.85838 57968; 255.96341 1229101; 256.00072 4315465; 256.02941 5633; 256.11029 1654366; 256.62853 71628; 256.734 12636; 256.77792 30491; 257.06746 1610885; 257.10514 464013; 257.11844 34248; 257.18008 68149; 257.77248 6640; 258.05511 1799912; 258.09593 1158254; 258.12904 16154; 258.28651 29167; 258.80866 70109; 258.87277 5419206; 259.14895 24795; 259.21941 5452095; 259.254 66236; 259.36405 1420516; 259.65876 4470; 259.76286 9254; 259.89015 31536; 260.24042 8571; 260.26815 1290426; 260.4795 7817; 260.51327 110808; 260.67492 7573635; 261.51917 2139; 261.54462 27713; 261.74971 15335; 261.88509 21954; 262.1897 4411; 262.23776 9443322; 262.36766 25098; 262.54568 27181; 262.78245 3478; 263.03577 1375732; 263.13194 9788; 263.18154 43146; 263.19024 2554; 263.54113 1582212; 263.67103 38128; 263.72237 17587; 264.01246 26416; 264.06576 76226; 264.09281 1223079; 264.12372 1257070; 264.33358 9557; 265.64873 75017; 265.92952 2419282; 266.01839 382913; 266.2663 33075; 266.91065 4319; 267.59666 27789; 268.77704 3158; 268.80704 6103; 268.88259 20797; 269.00525 981315; 269.07826 27382; 269.61605 1290151; 269.74665 1787848; 269.89943 25644; 270.18846 7177154; 270.21415 54704; 270.36216 6537387; 270.80344 6756555; 270.81081 58012; 271.36545 745794; 271.64811 3797235; 271.65651 6567563; 271.70912 4512; 271.8107 16456; 271.82216 30798; 272.03802 46765; 272.06871 3629; 272.11337 41377; 272.25833 3592; 272.39592 121375; 272.46367 16352; 272.66548 6148; 272.71983 15878; 272.84281 1694242; 272.90315 24596; 272.97928 1421959; 273.10925 38423; 273.25686 64922; 273.30557 6148; 273.38507 35159; 273.39851 27427976; 273.41546 643347; 273.5041 6269; 273.5904 4391806; 273.74762 128420; 273.97503 12560; 274.03119 2653290; 274.06516 904120; 274.08856 556585; 274.19287 817460; 274.40188 416518; 274.8927 20819750; 275.12422 192749; 275.17716 4561; 275.18431 2529781; 275.24583 747944; 275.40636 1596639; 275.5358 5369; 275.73637 55669; 275.88094 700658; 275.95294 33770; 276.03958 3631; 276.30198 57543; 276.42396 62633; 277.16422 28381; 277.17246 1018329; 277.31179 112056; 277.39178 3259; 277.46517 811805; 277.48143 18526; 277.60353 24531464; 277.76808 4628072; 278.10171 6261552; 278.15915 6781341; 278.26085 6541445; 278.27329 7333597; 278.9323 6869340; 278.97341 827314; 278.97645 8145; 279.0075 7329; 279.07492 9780; 279.13022 148108; 279.20363 9244736; 279.27423 5105; 279.48875 54589; 279.90588 2839478; 280.10457 52545; 280.49858 1948; 280.51799 74945; 280.59971 2653252; 280.73818 7850600; 280.769 74687; 280.86457 5375; 280.8808 60402; 280.91977 22051; 280.98378 70358; 281.07862 2998; 281.13194 4473565; 281.61506 2394717; 281.625 1985360; 281.85836 7361; 282.18137 18288097; 282.31222 29829; 282.64406 1708076; 282.64738 14711; 282.68239 8803869; 282.93623 6045919; 282.99616 68431; 283.06153 4840050; 283.82852 125224; 284.02916 41771; 284.03801 66950; 284.21357 25267; 284.56272 51913; 284.95864 162916; 285.35383 176531; 285.54625 4686240; 285.57246 4619475; 285.76971 4733; 286.27844 6171828; 286.28033 76629; 286.33631 601752; 286.65635 8209758; 286.6907 12765414; 287.14632 1458757; 287.20228 3538; 287.66424 166868; 287.68382 149714; 287.73931 1562451; 287.84363 27792; 288.12259 3622098; 288.12896 44603; 288.48432 25012; 288.8009 1954983; 288.91131 819399; 288.91143 736681; 288.91675 40604; 289.56623 988111; 289.6926 718; 289.76968 33115; 290.01397 5820462; 290.2043 161426; 290.26455 66612; 290.49055 76248; 290.50113 5427057; 290.56207 3307760; 290.59295 68787; 290.94943 1701; 291.46677 2635625; 291.49216 606769; 291.53014 1935282; 291.54521 1025; 291.55226 16248; 291.67425 17829153; 292.00616 8178; 292.38311 1771402; 292.56492 9985; 293.03581 9905; 293.2243 169023; 293.34102 971355; 293.48204 359969; 293.58168 1496239; 293.93566 30768; 293.99894 8635187; 294.45617 848824; 294.7163 24249; 294.92456 51595; 295.13647 166910; 295.25757 3110; 295.38025 60355; 295.40441 47917; 295.41653 5379; 295.57862 7294; 295.90248 5474; 296.63471 4760231; 297.12599 2471146; 297.38742 37780; 297.64255 68502; 297.70163 871771; 297.94571 63313; 298.22639 4660; 298.59198 27198; 298.79 21205; 298.85639 1428173; 298.88393 67731; 299.02947 21053855; 299.43576 658561; 299.59902 39477; 299.93297 9526; 300.73271 42115; 301.63126 234; 301.95559 49422; 302.05456 65961; 302.39217 62605; 302.47665 37783; 302.66754 15474180; 303.225 9722; 303.4933 4821043; 303.51268 4025; 303.59402 591223; 303.63274 9893; 304.26009 4887070; 304.46059 598441; 304.57205 142819; 304.93848 74180; 304.94987 188679; 305.73118 494948; 305.96314 836129; 306.3634 16147; 306.68984 7626395; 306.93779 3915455; 307.07133 64547; 307.0837 2781; 307.18424 23319; 307.23431 7131; 307.35921 1697168; 307.44569 34391; 307.4485 89459; 307.82396 5027; 307.84599 28929325; 308.0557 2258612; 308.14485 6211048; 308.1589 209609; 308.19357 62122; 308.38377 15724778; 309.0771 23552; 309.19442 17378; 309.29752 151762; 309.73986 5161; 309.81837 8420462; 309.83367 649929; 309.8691 970149; 310.13395 231713; 310.57888 3512; 310.72443 40930; 310.74372 1938563; 310.91449 78795; 310.92847 805053; 310.96774 28483; 311.23302 888; 311.30063 216332; 311.80566 28146175; 312.77833 57965; 312.93547 2827881; 313.05112 8567; 313.23425 181750; 313.6826 51023; 313.77735 2777319; 313.82872 4714670; 314.49701 2935777; 314.5296 55715; 314.90947 4908; 314.98963 23355; 315.05589 2085596; 315.15704 43433; 315.61755 58640; 315.73926 70291; 315.82844 92316; 315.86531 3293528; 315.89426 345882; 316.07616 1465; 316.58239 205734; 316.67899 38074; 317.30959 116030; 317.48695 2886539; 317.69845 172944; 318.0894 31876; 318.35971 19836846; 318.55692 12903; 318.64593 610073; 318.72691 65954; 318.80958 5397437; 319.15033 4463063; 319.61443 4357251; 319.7508 41386; 319.79423 53609; 319.82033 2083509; 319.89364 60602; 320.05568 4524; 320.18503 307843; 320.19848 16228; 320.5721 2758; 320.64141 2164893; 320.67998 2699300; 320.8082 5657; 320.90853 44165; 320.94644 77611; 321.05815 293532; 321.56729 396589; 321.58852 556488; 321.97859 9031964; 321.99939 3902111; 322.26846 2241175; 322.32583 800203; 322.67581 37843; 322.82629 643249; 322.84278 46115; 322.96058 123844; 323.01568 5860; 323.04974 1180; 323.06464 1107271; 323.41297 51738; 323.57766 1757805; 323.69626 8194; 323.70481 2781; 323.89641 67713; 324.27724 42925; 324.45353 61656; 324.8435 8152; 324.90009 31852; 325.05635 32989; 325.1066 61128; 325.29361 45720; 325.46779 119991; 325.53623 43126; 325.71067 932475; 326.03085 26729; 326.18326 73931; 326.5751 114865; 326.6039 73284; 326.73278 656367; 326.8493 57924; 327.1458 10900; 327.26455 167669; 327.30425 1421345; 327.35858 2609841; 327.95593 74762; 327.96851 813450; 328.00629 8356668; 328.09603 72584; 328.33182 6816881; 328.43921 1739449; 328.90244 1586; 328.92303 135532; 328.96473 1502909; 329.17773 39971; 329.50845 6714; 329.94725 378403; 330.10353 68964; 330.1229 2921; 330.13399 9161020; 330.1421 4259721; 330.69608 4273; 330.69886 2940001; 331.53011 73909; 331.58569 3957929; 331.61028 9646491; 331.67062 10784; 332.14987 5130; 332.57441 21015344; 332.82993 65933; 333.1943 2216; 333.23873 37848; 333.56381 1651580; 333.62522 21668; 333.73131 36012; 333.74522 69392; 334.04666 5343119; 334.59737 7157539; 334.69231 1516; 334.98903 1253433; 335.1893 1747447; 335.19538 45454; 335.22641 51201; 335.25969 177154; 335.64518 2095; 335.79216 57036; 336.24975 3841072; 336.27811 2465; 336.73283 4506886; 336.78982 21944; 336.92616 8692983; 336.95038 3821418; 337.42281 4294780; 337.75639 63482; 338.05394 326356; 338.27036 4950489; 338.49003 17361; 338.61151 204489; 339.07937 98672; 339.12222 149623; 339.1815 8716928; 339.24282 2316; 339.43296 54249; 339.53356 14487; 339.83895 6885; 340.03613 7903320; 340.05934 9068850; 340.24722 9293; 340.40615 1342381; 340.56574 104944; 340.62366 5784973; 340.66398 15655; 340.73607 2381059; 340.93041 58368; 341.04807 1745; 341.47265 20547; 341.6897 25946; 341.77469 12216152; 341.79561 8142108; 341.80504 5529; 341.95817 21028; 342.00245 76220; 342.27244 2280425; 342.5619 22055; 343.14445 8853; 343.40572 6333; 343.42046 55289; 343.53943 23817; 343.83784 15903; 344.02353 723968; 344.12592 64225; 344.43247 13788; 344.43353 295706; 344.46749 2713690; 345.18263 1943628; 345.25412 589913; 345.30142 142380; 345.83802 2375023; 346.10835 148409; 346.25923 196028; 346.39768 15626; 346.58342 67251; 346.99799 13285; 347.05692 61106; 347.16224 4980662; 347.22323 57675; 347.40211 47935; 347.5672 5258880; 347.58362 3283506; 347.6462 126157; 347.75791 3403538; 347.92742 61031; 348.42193 5597587; 348.49853 597194; 348.6156 1772474; 348.79342 26373; 348.88525 35878; 348.90834 15427; 349.16764 45330; 349.42561 2313973; 349.58525 1355893; 349.6475 4248; 349.65911 3588358; 349.67169 23988; 350.18702 1061394; 350.21255 22023; 350.6358 3753; 350.64829 21755; 350.84715 6687255; 351.05009 1982; 351.58238 3907947; 351.70223 44176; 351.76118 3108; 351.88902 3538; 351.9051 75300; 351.96339 1827832; 352.05027 26439; 352.33578 1710390; 352.5338 25889666; 352.72192 7066; 353.35962 698881; 353.46986 5361; 353.49966 29836605; 353.68422 40935; 353.68626 65324; 353.74696 1754; 353.85329 673; 354.12685 2893; 354.24759 297622; 354.31811 256069; 354.45007 1147262; 354.54955 35752; 354.7518 795851; 354.93129 12540084; 355.13633 5169; 355.26454 3358; 355.65014 1912584; 356.33919 25580; 356.49239 1145623; 356.61677 512166; 356.9268 26547; 356.95259 45134; 357.07767 28777; 357.15191 155664; 357.22288 183587; 357.87187 56745; 357.91175 6237501; 357.93289 9407275; 357.98053 3819; 358.08191 30243; 358.13186 4278; 358.13262 1748460; 358.19387 3002054; 358.2601 13869; 358.41035 3107354; 358.4318 402936; 358.5521 28984; 358.64551 29138516; 358.72218 20902; 358.78918 3133; 358.85206 9593099; 358.90559 25152; 358.91672 13994; 359.06336 53757; 359.06457 3958561; 359.35098 20853; 359.3956 462559; 360.03 8862788; 360.4736 526809; 360.47932 6894286; 360.71327 5778; 360.73387 1624818; 360.79104 29750; 361.31275 7364313; 361.41467 2641340; 361.48825 3925; 361.62066 3820139; 361.62783 8040584; 361.96562 59522; 362.1437 5016; 362.36417 1481736; 362.53293 20089; 362.63594 1433081; 362.77704 12708; 362.80973 151766; 363.15828 163572; 363.22758 74676; 363.31088 1195134; 363.90191 3833796; 363.93886 39614; 364.32847 648302; 364.34073 44155; 364.58065 4811691; 364.63897 3101162; 364.73435 1802859; 365.06866 728552; 365.25313 364325; 365.31639 686125; 365.48415 56261; 365.70189 18931; 365.8529 5978; 365.99965 16494; 366.23577 7239; 366.2405 54814; 366.28599 66895; 366.54324 9094522; 366.62274 459473; 366.62588 6303; 366.83886 2110930; 366.96867 28951; 367.09252 2843975; 367.34659 17118; 367.42369 590225; 367.70701 1215131; 367.75899 304432; 368.09987 33928; 368.26362 63891; 368.28644 79722; 368.31117 4090881; 368.58378 49099; 369.32327 4698191; 369.59735 643460; 369.66349 6639; 369.70456 8948455; 369.87369 112544; 369.94629 19969; 370.01647 30323; 370.02301 16733399; 370.25026 2849547; 370.34208 9156218; 370.59291 701475; 370.64063 24216; 371.19012 2195158; 371.39574 154980; 371.49817 27942; 371.66823 967942; 371.70629 6903; 371.72865 33088; 371.75563 6783; 372.16028 46479; 372.69025 28422128; 372.74792 537698; 372.93998 4251151; 373.10381 2224340; 373.1108 8343; 373.3711 50688; 373.61532 407934; 373.7366 8681961; 373.99445 16289695; 374.6404 28936; 374.65125 54552; 374.81306 3037; 375.00805 58512; 375.28619 2120679; 375.31291 65377; 375.375 87157; 375.63145 8739; 375.67181 10076769; 375.69765 1928830; 375.76069 41538; 375.78266 3474439; 375.87374 857357; 376.50393 4140; 376.75208 1488657; 376.82752 261675; 376.85194 4292; 377.02159 3678473; 377.08776 63827; 377.09824 1695805; 377.13153 54909; 377.21763 927115; 377.96935 18807; 377.97785 43137; 378.09994 54398; 378.27847 9632; 378.31691 6297; 378.5275 64824; 378.76263 1150471; 379.18317 24783; 379.22325 1174823; 379.41527 10799; 379.43499 6678342; 379.53111 770; 379.61908 2180; 379.87791 846730; 380.20828 122399; 380.60079 28640985; 380.69491 29901; 381.61752 41461; 381.74778 19990; 381.90955 343926; 381.99978 19023; 382.00597 1478008; 382.0525 4538973; 382.23797 23633; 382.29865 1771; 382.4166 27582; 382.50274 2841624; 382.74469 32353; 383.19015 49952; 383.20679 87847; 383.46775 69186; 383.86749 2430478; 384.29269 4692601; 384.50351 5670857; 385.01771 9506; 385.17756 47943; 385.32392 171224; 385.35089 5174866; 385.44771 22375; 385.61607 4249844; 385.64814 917476; 385.71452 4696789; 385.77509 86198; 386.04218 3782066; 386.27488 2047; 386.30478 59336; 386.76725 48910; 386.91837 29786; 387.08545 7244; 387.19129 26614; 387.25169 286837; 387.34816 1049346; 387.94862 525815; 388.48016 16492662; 388.48642 1616219; 388.62498 1035049; 388.63807 7998780; 388.67516 21190; 388.70542 193922; 388.86938 6777645; 388.96889 159975; 389.02472 252178; 389.0515 2785; 389.45478 1839; 389.53807 18907; 389.53941 249827; 389.65649 3147; 390.55768 172315; 390.56958 8947; 390.6418 1545212; 390.83978 7361905; 390.9698 75996; 391.59447 30492; 391.964 2831252; 392.11326 17057; 392.16322 141919; 392.22472 51288; 392.25404 1169393; 392.27222 24376; 392.38941 1972062; 392.9633 77; 393.33232 4807881; 393.38597 74646; 393.38901 797446; 393.44365 20807; 393.56154 6525; 393.88856 43557; 394.18507 73877; 394.34064 766373; 394.37298 652578; 394.42246 6321396; 394.42669 59423; 394.65261 1020525; 394.74719 123736; 394.88626 65396; 394.95068 1060; 394.98234 7235; 395.07584 8002235; 395.65983 45116; 395.74813 274; 395.94358 24425; 396.24915 22880; 396.61112 24295; 396.86074 8707746; 396.91896 4619528; 397.22886 6793; 397.27835 71155; 397.58206 29100; 397.60932 99790; 397.76087 29863; 397.8587 18447; 398.60384 57096; 399.03487 16387; 399.51674 7136205; 399.70868 7849910; 399.72931 22062; 399.79657 220347; 400.66065 1096017; 400.9025 51484; 401.00632 18447; 401.12128 2876904; 401.28198 33099; 401.47668 49406; 401.71423 1146; 401.72644 195244; 401.81416 29004; 401.93738 5683700; 402.40187 47873; 402.65551 179543; 402.81658 26353; 403.07576 4075466; 403.11189 23224; 403.39239 118601; 403.54007 9455; 403.83135 2379; 403.97663 3248344; 404.00125 14781; 404.15066 43192; 404.21496 6931800; 404.30367 3105; 404.32124 1434373; 404.41015 1754; 404.52382 1057076; 404.75675 24962; 404.79411 2122; 405.26208 5189832; 405.78589 21446; 405.844 4058658; 406.0153 1412839; 406.3765 1037722; 406.91958 358906; 407.17457 22804; 407.26339 4217; 407.57561 78635; 407.58067 4917446; 407.68076 21775; 407.86649 1979841; 407.96233 387157; 408.07006 66514; 408.12028 31293; 408.47725 20829355; 408.78364 2555388; 409.11403 5720; 409.14518 1283637; 409.18796 31369; 409.35859 58715; 409.6268 29566; 409.91109 29597; 410.0905 1651; 410.34455 4532104; 410.34885 1040313; 410.41416 62559; 410.42838 66370; 410.47322 19741; 410.57561 450226; 411.10887 1875545; 411.14583 35569; 411.27643 44717; 411.85922 19823; 411.90116 53109; 411.98024 7737; 412.96924 828002; 413.20591 19247; 413.22669 10999879; 413.24943 1867632; 413.26629 29858; 413.38373 20875; 413.56097 458396; 414.31666 4526783; 414.36168 11231; 414.38312 484587; 414.43042 1881347; 414.59092 1921; 414.60369 3783; 415.19659 15910421; 415.6753 6371108; 415.73174 1091270; 416.23009 66456; 416.59843 26407; 416.69428 134621; 416.77699 557312; 416.7956 4217401; 416.90871 49546; 417.06441 6516; 417.20191 5021; 417.28704 55266; 417.35208 148473; 417.48072 1710; 417.49687 853301; 417.52004 1754017; 417.63674 43865; 417.84154 2726; 418.24113 1894664; 418.33873 4301; 419.05913 894; 419.06895 1059870; 419.32716 22979; 419.49168 884028; 419.61496 1325216; 420.02212 2462686; 420.04732 6617; 420.05419 29920; 420.05595 8456644; 420.14364 4893; 420.2931 28303; 420.54387 28128; 420.75658 9623326; 421.05319 29641; 421.16806 23360; 421.32526 35720; 421.43416 37048; 421.49136 1103965; 421.68946 77780; 421.85418 160212; 421.85496 1513297; 422.34484 63163; 422.43186 4917029; 422.54673 77262; 422.67963 1012959; 422.822 7449; 422.98765 59684; 423.15569 63876; 423.34099 131369; 423.46846 55898; 423.87506 56425; 424.01752 21519; 424.34401 1552467; 424.52213 277257; 424.66397 68295; 424.83976 6862; 424.89904 1425583; 425.40629 21149; 425.50879 1617357; 425.78639 623105; 425.81503 433397; 425.8836 21185; 426.22182 3520; 426.27659 79834; 426.53636 18513; 426.60845 1343130; 426.72271 7431675; 426.73145 7970; 426.84132 1372789; 426.85167 3058213; 426.99481 1357003; 427.31158 9598; 427.33704 1636748; 427.48908 62036; 427.7748 12247748; 428.00869 242202; 428.09819 2015397; 428.37456 2670590; 428.63739 4738; 428.70086 1864666; 429.1639 49630; 429.22956 48132; 429.2748 450761; 429.59742 1602030; 429.83367 41724; 429.8515 53387; 429.89206 122820; 430.19274 6649988; 430.26949 28624; 430.39597 4946276; 430.42853 78259; 430.4559 3861647; 430.53973 46329; 430.70571 704975; 430.76866 48170; 430.95426 26921; 431.25311 6569706; 431.39117 422305; 431.40708 28711353; 431.4903 67557; 431.80106 264455; 431.80656 54000; 431.92251 148974; 432.32135 66818; 432.40745 837631; 432.99327 7620; 433.11543 371; 433.28663 4285; 433.4448 8113; 433.50893 5858; 433.58624 1780589; 433.64698 32658; 433.80563 9327; 433.98187 1868052; 434.15361 65277; 434.25145 796159; 434.35757 548679; 434.385 63473; 434.44792 3898; 434.55827 70480; 434.6267 3404584; 434.68535 253424; 434.77911 841269; 434.91774 131363; 435.061 32630; 435.31545 1183; 435.59507 54076; 435.6127 118172; 435.6236 29598; 435.70476 27937; 435.91527 9233; 436.12148 9919; 436.1461 6161; 436.191 39983; 436.19468 2422536; 436.21139 24529; 436.36633 27892; 436.603 20871; 436.6702 117889; 436.87638 9878; 436.89114 9174728; 437.28376 40009; 437.28883 61901; 437.38639 4625396; 437.39298 47628; 437.56199 3117; 437.68894 66571; 438.13542 1510093; 438.1514 788495; 438.15598 3238258; 438.18429 251759; 438.27726 192918; 438.36028 1600137; 438.49415 61420; 438.49963 26505; 438.84993 7014937; 438.87343 1592553; 438.90938 1257199; 439.35869 118182; 439.4373 3456; 439.57567 203504; 439.6162 364461; 439.88318 42054; 439.89718 21125; 439.89784 105180; 440.12047 2357354; 440.73056 37638; 440.77236 8553129; 440.83381 21284; 441.21336 5320; 441.26592 106315; 441.58199 9174682; 441.59465 4218841; 441.9112 23541; 441.94771 954317; 441.99301 22633; 442.05175 2394078; 443.30717 25888685; 443.38556 161699; 443.4017 6786958; 443.49782 270; 444.22068 2459339; 444.26332 25835353; 444.32015 4370; 444.39678 27019; 444.51088 5665; 444.56042 93976; 444.5637 514425; 444.66725 22823209; 444.95985 6559284; 445.12741 25191; 445.20884 1918337; 445.46331 186201; 445.55186 643937; 445.60462 938998; 446.05868 669; 446.41818 1098175; 446.41898 289706; 446.48892 17365360; 446.60956 1133127; 446.91946 1675248; 447.02273 768566; 447.02411 429865; 447.02822 120969; 447.11685 1316473; 447.17157 9932; 447.23103 35694; 448.53534 1047; 448.62854 27981; 448.78042 30519; 448.92721 970211; 448.99877 3497674; 449.11158 3224013; 449.34086 138387; 449.50141 1326964; 449.52652 2385200; 449.7822 46884; 449.8921 1808179; 449.92932 7418; 450.19719 2297210; 450.30763 188191; 450.45873 674649; 450.51964 1671316; 450.53249 33748; 450.60284 52782; 451.06265 25018; 451.21908 19516876; 451.35324 3566; 451.39111 580449; 451.41308 57865; 451.50385 59994; 451.61149 24139; 451.98757 3417291; 452.08746 54073; 452.25219 4969775; 452.42339 93; 452.74939 7857; 452.75717 46230; 453.04434 1369304; 453.31406 49317; 453.86365 9395; 453.97792 1243224; 454.07818 15802; 454.26788 17411; 454.38123 3079; 454.58796 6864; 454.79264 10576; 454.83532 46942; 455.65529 26705; 455.95159 13678; 455.99006 1489124; 456.15759 76822; 456.18571 22335; 456.1901 771294; 456.2485 2595264; 456.60738 155852; 456.67625 178956; 456.68191 1478455; 456.77126 420803; 457.53856 99133; 457.56988 3167540; 457.97977 7690375; 458.19688 1354823; 458.31255 6213; 458.9192 15214; 458.96699 3690; 459.06098 24783; 459.22414 6716570; 459.28322 7150550; 459.88544 24340309; 460.09274 128604; 460.42687 137184; 460.79498 1385580; 461.15891 4150572; 461.18778 323228; 461.72843 1145429; 461.91233 1697525; 462.19847 24216; 462.2738 6063875; 462.53279 11658179; 462.65341 61366; 462.68401 70677; 463.01529 3016130; 463.62324 3749585; 463.66841 966; 463.7358 3429111; 463.74099 63012; 464.05848 13428; 464.25342 905687; 464.43164 136547; 464.55487 3256799; 464.89024 1462516; 464.8937 921657; 465.12814 28755; 465.31061 8496145; 465.53342 4741259; 465.54868 12469234; 465.62321 48498; 465.69506 5510444; 465.69896 661550; 465.79109 29301; 465.993 5568; 466.01936 20376; 466.24259 55524; 466.25743 13304739; 466.30661 11487; 466.31394 1821217; 466.5075 1021; 466.82021 43941; 467.30593 9672007; 467.34474 6062; 467.46269 3960649; 467.54951 17071; 468.19908 144392; 469.31051 20742; 469.37522 5564443; 469.52103 4897154; 469.60337 75132; 469.64153 9933668; 469.69669 111917; 469.76724 52531; 469.97496 50595; 470.75773 68533; 471.22615 1047550; 471.30472 53155; 472.14329 47346; 472.23826 792; 472.45518 19105658; 473.56077 4706; 473.61519 3288878; 473.71731 712643; 473.76944 74887; 473.82957 136351; 474.367 23894; 474.89491 47855; 475.06231 21329; 475.10096 64647; 475.47252 34324; 475.52647 17614; 475.97372 6230133; 476.07457 833234; 476.49157 14042; 476.63387 4432; 477.01445 33705; 477.23648 3473; 477.4978 2093; 477.53701 8533; 477.55276 51452; 477.60597 9675899; 477.85717 7663936; 477.96909 21728; 478.33124 7657665; 478.4812 13081; 478.6301 5332; 478.66887 5614; 478.81449 3808; 478.90019 8986408; 479.68602 3154964; 479.69204 64381; 479.75786 395532; 480.37807 4570138; 480.48528 1062925; 480.53101 47993; 480.58044 457813; 480.96726 127484; 481.09962 9958558; 481.43067 73622; 481.78118 1227; 482.07838 3914; 482.32054 9127; 482.76124 65251; 482.88213 51474; 483.18908 1295969; 483.28555 4178868; 483.72406 26752; 483.84665 7336; 483.85523 3423; 483.92616 41924; 484.32893 924637; 484.48399 28357; 484.58145 61553; 484.59875 49901; 484.94434 753801; 484.96517 906027; 485.01414 5669829; 485.06688 77673; 485.20571 9821; 485.24649 6360165; 485.35864 26315; 485.61772 40282; 485.75923 72404; 485.80977 1118127; 486.0583 41975; 486.12104 4735; 486.12216 8280; 486.24896 22968; 486.29674 75629; 486.42119 1609; 486.62507 3626765; 486.66203 41514; 486.79072 61098; 486.94701 1475517; 487.01258 1207; 487.03442 1454939; 487.04409 91817; 487.30652 8970368; 487.51522 47159; 487.57212 2838411; 487.60703 107060; 487.65746 23863; 487.66127 40366; 487.77691 451742; 487.91146 50913; 488.60939 24628273; 488.62697 5074; 489.02926 535871; 489.0537 11980; 489.05745 6217715; 489.10653 3819049; 489.15101 73765; 489.43188 9997902; 489.63546 76926; 489.67488 113015; 489.71813 4858678; 489.77388 183532; 490.18592 38803; 490.29256 27763299; 490.54585 74137; 490.60172 6917432; 490.88252 22191; 491.15075 28593; 491.38537 49918; 491.48253 77143; 491.49843 1802536; 491.64413 9786119; 491.66676 7852595; 491.80931 8171; 491.96468 8176; 491.98478 29697; 492.11311 28089; 492.3272 6191; 492.35551 52091; 492.43284 735085; 492.45764 9755093; 492.55587 8574; 492.6522 1277; 492.69763 9979033; 492.75672 58447; 492.80182 22001; 493.35525 1298709; 493.45222 6651942; 493.47103 47043; 493.64245 7960; 493.71513 95813; 493.93579 824663; 494.56845 1063; 494.59558 37897; 494.67752 198839; 494.7775 18109; 495.13924 61596; 495.49469 127352; 495.81463 158616; 495.91232 25558877; 496.07278 355575; 496.19734 45268; 496.57664 723754; 496.65604 4685961; 497.05706 42163; 497.24679 1203965; 497.55018 1990517; 497.61853 1603; 497.74096 44932; 497.94991 21612; 498.03928 9466; 498.04815 151865; 498.08453 882125; 498.52986 60134; 498.628 2515333; 498.80719 2331915; 498.81905 4638562; 498.91476 25290; 498.97668 75637; 499.29097 22609; 499.87398 4216 +<3, 4>: 0.39905 27243; 0.44507 78839; 0.47413 4608823; 0.60781 19919; 0.74358 4671798; 0.78641 36894; 1.12213 20362; 1.18389 1423; 1.39043 3860; 1.53597 9323028; 1.59117 76638; 1.60563 56137; 2.35945 46006; 2.48745 1925551; 2.5034 3357139; 2.54861 616102; 3.47359 12445; 3.72267 426599; 4.08814 1490364; 4.13132 619430; 4.25367 151741; 4.31967 2189; 4.34415 93287; 4.43156 30872; 4.51365 72927; 4.94968 1354714; 4.9577 23701155; 5.1757 85324; 5.33313 57123; 5.43923 80503; 5.57683 5158225; 5.62535 869740; 5.65597 4056; 5.84735 364058; 6.12093 4315; 6.38382 1159946; 6.61168 4618274; 6.91918 29401184; 6.92159 1189489; 6.99279 11249; 7.17862 5794; 7.20931 5290; 7.3658 97416; 7.52736 5552014; 7.63783 3688673; 7.69473 54856; 7.85518 638660; 8.13393 59320; 8.16939 4279339; 8.27729 3336190; 8.59566 44407; 8.73388 1845544; 9.20238 1482679; 9.59447 7298; 9.74766 26131; 9.86671 27098; 10.03521 77569; 10.22267 8634; 10.59469 650384; 10.72248 4353697; 10.97952 173557; 11.09912 3471624; 11.17502 92469; 11.25336 68431; 11.33698 41717; 11.57857 2537399; 12.50874 1139; 12.56309 31305; 12.63361 1608106; 13.07377 7163; 13.10418 2174820; 13.13992 3587; 13.21152 120; 13.23112 190199; 13.26065 305196; 13.6451 19051; 13.71636 36856; 13.74964 1078186; 14.43758 3984951; 14.6828 27380; 14.68645 1808858; 14.81273 1134666; 15.03316 6631; 15.51823 553370; 15.69428 25871; 15.84415 7154; 15.86498 155610; 15.89971 4168; 16.2388 3823; 16.42608 45973; 16.65364 43557; 16.7225 27337; 16.92179 4529331; 16.92914 22929; 17.00087 23838; 17.20381 6145; 17.25859 23037; 17.92608 14095; 18.07632 40632; 18.36209 87903; 18.41953 8992123; 18.48969 225518; 18.78136 1398963; 18.81887 586558; 18.98624 31292; 19.71052 57914; 19.86259 956842; 20.02882 2239; 20.04947 86751; 20.20436 366037; 20.4406 70921; 20.50969 1802478; 20.5566 139088; 20.69024 950365; 20.81023 72868; 20.92334 54557; 20.92478 1364725; 21.01574 25087; 21.05097 1786095; 21.28686 1065163; 21.32696 6566; 21.62766 33502; 21.63326 1179942; 21.90445 6917; 22.01552 1695420; 22.1563 1405485; 22.274 16658; 22.28222 3989; 22.32868 22719; 22.33825 32437; 22.64292 2398762; 22.66313 4965; 22.69659 9826; 22.95436 177472; 22.95805 50161; 23.14515 5921; 23.14833 42763; 23.33053 1209; 23.3611 2985273; 23.38747 108563; 23.62011 74616; 23.69248 7716; 23.97623 31305; 23.99407 361098; 23.99539 597464; 24.74186 8411; 24.78658 44923; 24.88886 6986; 25.25073 2953538; 25.39383 6679; 25.43023 5634; 25.46558 1947398; 25.58806 3686923; 26.04844 26038; 26.22475 2557313; 26.2253 65463; 26.25777 8909110; 26.26366 91736; 26.28478 11305; 26.33316 25797; 26.44597 81; 26.76304 75995; 26.8531 8769867; 27.0898 1663; 27.42291 3730; 27.49665 178355; 27.61373 143; 27.71947 13703; 27.91149 22846; 28.02424 8569; 28.03964 177301; 28.1446 83357; 28.46558 21427; 28.5343 8795402; 28.88377 503039; 29.2125 105162; 29.50197 8746833; 29.66561 78938; 29.85996 6452; 30.1064 2406; 30.25013 2119; 30.64228 13105; 30.69331 9077; 30.84479 80255; 30.91798 2130167; 30.93761 35814; 31.29031 461977; 31.47997 8954925; 31.59938 568306; 31.66244 7449512; 32.36705 6795; 32.66851 750; 33.35141 351693; 33.40882 18079; 33.41117 9445126; 33.41992 184856; 33.65228 1070979; 34.01526 1877267; 34.10323 4025472; 34.40387 25357; 34.58391 18921968; 34.61863 29159; 34.68822 283426; 34.72466 368577; 34.94325 3797; 35.26008 1627941; 35.51972 22724; 35.54787 655492; 35.71317 52177; 35.784 23199092; 36.17705 317868; 36.24273 2660; 36.57064 74078; 36.73258 2484169; 36.73931 69297; 37.19747 3581093; 37.2093 1105605; 37.2222 2753618; 37.41155 3572; 37.87617 45172; 37.96877 57336; 37.97523 1390913; 38.16278 3659099; 38.28417 187483; 38.29233 1944251; 38.52151 488; 38.72597 1600764; 38.79048 5932; 38.80032 2728827; 38.84159 73571; 39.26721 53748; 39.28527 790613; 39.36807 6092; 39.41013 35050; 39.58033 1007750; 39.86457 78279; 39.91198 63352; 40.16769 39670; 40.42533 1701719; 40.7703 6560; 40.99696 1470135; 41.02844 6783030; 41.28254 3381566; 41.35312 59533; 41.53186 4871479; 41.58325 5900307; 41.79778 736; 42.31112 1504713; 42.35974 1632; 42.48463 3129895; 42.63111 66796; 42.70028 1228376; 42.83006 31668; 42.85426 13826; 42.8916 5326102; 42.90067 15084; 43.33839 2282342; 43.43559 259010; 43.44449 22985; 43.45699 4557677; 43.79374 23177358; 44.07415 6808; 44.20687 1235460; 44.30522 11363300; 44.42161 26463501; 44.77898 1617864; 44.89963 18601; 45.1288 12864; 45.19276 51923; 45.59552 588156; 45.67493 2369580; 45.87505 506; 45.89771 17636; 45.92688 207; 45.94918 8477298; 46.31202 445806; 46.6129 68252; 46.84599 1111284; 47.0048 1642975; 47.11187 192309; 47.4647 965081; 47.48143 37921; 47.54248 29398; 47.56603 8022; 47.59959 1814795; 47.63035 1493771; 47.69072 5824963; 48.18533 85322; 48.28007 62405; 49.01794 21043; 49.02115 226295; 49.14923 1970456; 49.39962 35521; 49.80214 71449; 49.87889 77136; 50.04052 28872; 50.26405 24004; 50.53498 8637; 51.04244 8451; 51.45244 6545; 51.70167 3460504; 51.80346 39451; 52.28812 26589; 52.36787 2730751; 52.5453 357; 53.24551 44347; 53.42052 3290930; 53.94163 4927354; 54.08358 2261848; 54.43779 23028; 54.45268 3746260; 54.46498 5936; 54.487 63443; 54.66177 16800; 54.70207 838605; 54.71807 45164; 54.91513 34091; 55.0059 1158852; 55.08021 79981; 55.12012 26464; 55.14284 3525149; 55.54938 1739850; 55.60822 82270; 55.65935 71154; 55.92607 72630; 56.07578 477105; 56.25734 3967589; 56.782 1649238; 56.89172 1998809; 57.213 64873; 57.48016 23241; 58.14216 67060; 58.15603 1631598; 58.36977 685803; 58.3843 265472; 58.58305 930545; 58.67608 58328; 58.75492 182098; 59.04617 2151; 59.225 730079; 59.38747 2166; 59.3881 233; 59.54772 3023; 59.85028 6413; 60.00117 193195; 60.51164 1466767; 61.20408 23523; 61.29739 55953; 61.95243 73510; 62.02821 62854; 62.04047 1596830; 62.26571 5706081; 62.38298 34759; 62.49959 39929; 63.07794 790603; 63.52683 26124; 63.55397 67705; 64.22953 9618; 64.91449 21887; 65.02316 1278; 65.13648 72606; 65.20106 4242; 65.39733 2449; 65.5905 1699422; 65.96685 1294105; 65.96863 887662; 66.32711 7140; 66.42499 76286; 66.64078 9603375; 66.82363 33106; 66.99944 6839029; 67.14632 2941; 67.27224 2365700; 67.45188 26961471; 67.49932 5527; 67.73463 4098526; 68.01292 3454737; 68.31547 2919; 68.37358 3550; 68.59265 12334839; 68.704 12764; 68.91343 23547; 68.99602 8042751; 69.1252 27844; 69.14496 492863; 69.45607 1757997; 69.76538 2655973; 69.78923 6673; 69.81162 17982671; 70.02113 79116; 70.12481 53472; 70.32705 8610554; 70.95521 407880; 70.95845 2215783; 71.11465 171398; 71.78705 470842; 72.1931 70661; 72.45434 120797; 72.50203 27622; 72.57955 4960000; 72.59259 5974; 72.61097 52065; 72.8109 2409584; 73.02876 39590; 73.17144 1949928; 73.38821 23448; 73.42944 5520; 73.60238 3949; 73.61036 1177924; 74.29112 8287864; 74.7637 4181481; 74.97338 5410; 75.08133 54748; 75.25997 408; 75.34682 4757973; 75.37934 31985; 75.42493 77011; 75.58763 2140262; 75.64843 23571; 75.65059 16059630; 75.75091 6413801; 75.77251 8685591; 75.88256 42143; 76.00608 2915; 76.16483 67; 76.3611 27954290; 76.43895 38456; 76.67891 49523; 76.7152 13922; 76.88465 47848; 77.15045 29260; 77.31382 41876; 77.39356 72170; 77.95524 3640571; 78.0144 8238746; 78.11249 7432; 78.15723 801404; 78.19933 35414; 78.38583 3254; 78.82144 307475; 79.39378 107524; 79.45034 3500; 79.74975 58718; 79.82032 766310; 79.9398 20830253; 79.94985 28086639; 80.10367 6060200; 80.12714 5015; 80.37786 3744; 80.38378 4572; 80.64602 18308; 80.69188 72345; 81.50728 171052; 81.71437 2409332; 82.12743 1266513; 82.27176 57743; 82.37823 4514583; 82.60557 56865; 82.83168 49133; 82.846 8887; 82.97416 2794946; 83.20257 8901937; 83.23254 78968; 83.23385 11952907; 83.39547 27374; 83.55201 746205; 83.85092 7916; 84.14447 1605668; 84.17739 61914; 84.58362 24881; 84.72134 2241285; 84.73527 5965; 84.78631 791348; 85.10522 57529; 85.37991 1806483; 85.47927 63201; 85.59947 37769; 85.70532 73364; 86.13808 21287; 86.37387 118326; 86.42643 1550110; 86.49436 1188369; 86.50348 1657; 86.621 182449; 86.66443 3089748; 87.62079 110884; 87.73141 5371803; 87.94336 630479; 88.27394 723776; 88.39461 1581047; 88.63786 25745; 88.85826 2687; 88.92856 60971; 89.45768 106769; 89.50951 3854698; 89.55842 12995250; 89.58228 4833; 89.61777 7245; 89.65431 119628; 89.91733 119023; 90.09169 105414; 90.20404 96774; 90.28738 151368; 90.43612 827682; 90.52105 985701; 90.59261 53027; 90.63163 188272; 90.79232 9982; 90.8034 160866; 90.82127 2298553; 90.83839 4835; 91.33295 9062; 91.4108 95810; 91.46625 975372; 91.48679 772; 91.55214 169850; 91.57022 9302; 91.64937 9522868; 91.81171 73262; 92.26818 178795; 92.50306 6337; 92.54488 672283; 92.90221 7061; 92.92966 9752; 93.89581 24398; 94.34131 4713623; 94.43933 28007; 95.07392 7132; 95.14437 4494542; 95.15566 6875320; 96.5435 52986; 96.87412 1216695; 97.04113 28691; 97.06084 14989; 97.28663 3384629; 97.41156 5286416; 97.50361 33738; 97.81695 1134045; 97.87022 18758; 97.93197 17246; 98.28836 42352; 98.79155 9439944; 98.87902 5851168; 99.30907 969604; 99.38772 687437; 99.48738 272274; 99.64193 43475; 99.66847 4765487; 99.67883 10864; 100.0688 4089272; 100.17973 3074696; 100.30462 3569902; 101.05175 1231241; 101.05354 5103; 101.51875 5007; 101.79887 4908; 101.96068 29876; 101.9656 456391; 101.98974 795855; 102.16063 170528; 102.48197 33040; 102.49784 7909356; 102.94229 6338545; 103.01131 72786; 103.11316 9413407; 103.16129 127162; 103.16721 54622; 103.44023 364297; 103.46423 2038; 104.05674 1262; 104.17453 71800; 104.19286 7979; 104.23651 1728296; 104.23947 1994751; 104.4988 249902; 104.84467 225341; 105.05157 21705; 105.1083 36416; 105.1638 2165436; 105.19649 8298; 105.35017 1866465; 105.71408 43018; 105.87087 13817; 105.95593 142900; 106.10229 9137963; 106.1174 55061; 106.27585 4847865; 106.29504 4980624; 106.31244 25897; 106.43834 53648; 106.84655 8164; 106.89447 78918; 107.48729 191064; 107.52913 2427; 107.57007 8629; 107.85662 6320177; 108.09208 3760446; 108.36689 23629; 108.80052 14736; 108.80056 1617849; 108.81189 9839; 109.05529 1975155; 109.25626 30563; 109.29954 814; 109.30535 581648; 109.50583 3674882; 109.58031 8960613; 109.5975 3105097; 109.85759 64420; 109.94481 45387; 110.07739 42729; 110.11923 377816; 110.20915 3873311; 110.2243 6828937; 110.31273 24019133; 110.43388 25437; 110.52754 64586; 110.57666 1938387; 110.6187 87740; 110.68167 11305114; 110.70083 411670; 110.86918 333; 110.92683 39521; 111.09796 2741; 111.49474 24633; 111.49601 24513; 111.54919 39745; 111.71104 47543; 111.91937 6671; 111.96607 20825; 112.41137 7987006; 112.52267 4170; 113.20461 3669695; 113.22904 61593; 113.27898 8343668; 113.96973 36194; 114.00224 50787; 114.01796 6883; 114.498 4681979; 114.60963 33730; 115.02106 1463; 115.11411 5002426; 115.27886 57411; 115.31066 5848; 115.41274 4836959; 115.65934 27981; 115.67632 32520; 115.82496 3664543; 116.13652 568530; 116.20722 1398567; 116.65107 930901; 116.65992 1871331; 116.96572 24590; 117.40416 16436; 117.61603 1063598; 117.62749 60536; 117.74759 4396479; 117.77476 1384; 118.02071 1147235; 118.13442 1358730; 118.60804 13746; 118.6167 16073368; 118.96248 29824; 119.09842 160872; 119.21161 2635945; 119.2968 1075263; 119.33411 3496676; 119.34765 46862; 120.09908 69556; 120.12097 21096; 120.21487 9368260; 120.6878 69719; 120.76742 4961; 120.95099 576233; 121.11801 140981; 121.30734 59638; 121.46525 2293297; 121.74721 25765; 122.20493 1732060; 122.28405 901597; 122.40791 1990; 122.46857 22358; 122.65631 66500; 123.05398 47411; 123.52549 8446; 123.94985 11529; 124.52428 523352; 124.57204 1410848; 124.87671 3925837; 124.88387 118620; 124.97727 8251826; 125.27672 1291793; 125.30467 124722; 125.41761 3754811; 125.59257 9765710; 125.6461 2618707; 125.79164 25075; 125.8283 67420; 125.87758 2099; 126.01563 5653; 126.34613 184289; 126.75641 16413; 126.96223 57316; 126.97964 7505196; 127.30506 2716384; 127.5878 713413; 127.77453 66118; 127.8382 33712; 128.10766 1713679; 128.32966 1517061; 128.81382 7573; 129.02204 75252; 129.55428 9919; 129.64266 181243; 129.66675 11472; 129.67991 83638; 130.08358 4379; 130.10105 3176331; 130.37955 27015; 130.42838 214573; 130.62891 759; 130.62985 70987; 130.68445 18895; 130.84181 59590; 130.95597 3880; 131.05753 34809; 131.18978 77494; 131.42842 1760437; 131.64267 1542859; 131.64649 146614; 131.69918 13367; 131.73768 43231; 131.97202 35280; 132.05457 61352; 132.27035 10375; 132.38498 76751; 132.54196 6644; 132.61285 1826913; 132.67341 54922; 133.12168 17450; 133.32204 2915371; 133.35081 7641116; 133.71567 23889; 133.85808 33072; 133.87942 121834; 133.93545 17196; 134.39123 364057; 134.4487 98069; 134.75377 42597; 134.89626 694589; 135.56176 549218; 135.64319 23606; 135.7829 45617; 135.82926 8665; 135.91855 59221; 136.05983 1911029; 136.43197 17842; 136.48583 3384504; 136.5752 8279824; 136.8291 1854782; 136.92248 7955155; 136.94423 692661; 136.97673 5858511; 137.50686 20277; 137.68123 74752; 138.14234 62037; 138.24197 2488932; 138.61511 28680; 138.8357 1917944; 139.37346 76668; 139.5609 1401589; 139.62199 29168434; 139.62774 1507635; 139.88394 109919; 139.92181 4351209; 140.0219 4957433; 140.05027 827505; 140.57661 1994067; 140.82897 1009963; 141.23207 41740; 141.31041 82512; 141.3925 3003772; 141.42755 25743; 141.45928 21997; 141.49187 1953705; 141.57439 51145; 141.67093 6109254; 141.94192 16055; 142.08914 59424; 142.18378 363161; 142.44159 484348; 142.82957 23040; 142.85338 71691; 142.95148 51259; 142.95738 22525; 142.98977 5096343; 143.10535 3150040; 143.19874 59801; 144.06297 24095; 144.10889 468310; 144.43211 60167; 144.43916 1321175; 144.68794 1088595; 144.90732 4567982; 145.38048 1830443; 145.93256 40486; 146.22378 62617; 146.25906 479909; 146.36538 4280527; 146.58816 905309; 146.89007 161557; 146.93782 7666799; 147.178 943840; 147.2604 74244; 147.6019 25962; 147.61058 2387871; 147.68125 6104; 147.72976 322183; 147.78049 9707; 147.82561 169119; 147.87667 47129; 147.99392 17704; 148.04178 2592; 148.27514 15324; 148.29689 34468; 148.467 23236840; 149.08231 24135; 149.09603 37624; 149.16314 1384878; 149.25818 2554; 149.32242 195890; 149.52638 4380633; 149.64767 23263; 149.85839 883957; 149.8859 194022; 150.28341 1887; 150.32992 12916; 150.37273 3287889; 150.53818 1524986; 150.56906 8184; 150.88558 2116314; 150.88691 12056; 151.60213 126278; 151.60955 237; 151.73412 75059; 151.98341 29290; 152.59828 4845871; 152.81177 15028435; 153.07387 46795; 153.10057 23852; 153.21315 760356; 153.25108 905545; 153.42105 4022703; 153.50944 28776; 153.68982 3352208; 153.79999 80890; 153.91961 1702736; 154.08741 434576; 154.25433 49621; 154.26229 2322042; 154.2919 48755; 154.62212 4602; 155.39103 5449; 155.46419 20396; 156.21449 1180071; 156.49348 1602286; 156.69109 32749; 156.69644 4677; 156.84015 991380; 156.92237 1937551; 156.98301 42203; 157.18669 6446935; 157.45337 31353; 157.52997 64243; 157.67595 62332; 157.88653 38922; 157.92019 4513496; 158.01318 24619; 158.24863 37908; 158.29561 9199; 158.55605 24713; 158.70289 24864; 158.72767 73860; 158.84536 40143; 158.94763 16106; 159.17784 968079; 159.19059 69478; 159.22962 29115; 159.25906 40144; 159.3073 1183859; 159.44509 372397; 159.56431 165518; 159.57196 64954; 159.69381 5288959; 159.83553 995880; 160.11032 5308; 160.16077 2684449; 160.27459 5904828; 160.7281 679611; 160.76122 8158627; 160.92135 129104; 160.97273 28359309; 161.03949 15991; 161.26117 844; 161.38056 8872121; 161.43175 22633; 161.47521 198277; 161.61103 20777; 161.61812 9577262; 161.69975 995819; 162.09707 222030; 162.77653 539296; 162.8426 7633; 162.93902 2262698; 162.94746 19892783; 163.15404 654606; 163.49972 8569; 163.57319 13947; 163.65614 48284; 163.83847 43176; 163.94658 1019552; 164.02179 53083; 164.05524 32632; 164.17353 26245; 164.55087 100770; 164.87473 1697559; 165.01812 1750266; 165.15705 6268; 165.62718 40940; 165.63964 77278; 165.778 698; 165.91779 659236; 166.08507 67140; 166.25673 75970; 166.54345 189119; 166.57329 28140; 166.67094 3496821; 166.88058 75739; 166.92832 5057; 166.97022 959086; 167.13272 566455; 167.22654 5291028; 167.42186 8736; 167.71238 4243; 167.76052 6959164; 167.81073 3878309; 168.13835 24100298; 168.16107 1415556; 168.48424 3437703; 168.59073 7369; 168.80475 2363; 169.26704 164441; 169.35106 11275; 169.37963 898202; 169.54826 22889; 169.66588 225881; 169.94786 15988; 170.23455 73240; 170.25 144548; 170.85338 39447; 170.98856 3125; 171.14503 15634; 171.18645 396712; 171.31722 23560; 171.54433 342446; 171.57404 19542004; 171.75588 487855; 171.9874 8709811; 172.11889 753115; 172.54535 92796; 172.61435 2965; 172.63509 1227605; 172.70469 22252; 173.02352 1478; 173.11652 251824; 173.72603 5311; 173.91546 29984; 174.00109 9591021; 174.08838 48738; 174.23842 2152; 174.28895 15151529; 174.78836 13879; 174.86679 780138; 175.15193 26927; 175.40021 9246457; 175.68123 1934262; 176.10411 8453; 176.36835 3803540; 176.40103 73440; 176.61958 230710; 176.91388 1947125; 176.96019 3286024; 177.47901 70581; 177.73408 9962366; 177.85622 14506; 178.16621 436170; 178.765 70813; 178.86027 65045; 179.03184 9391652; 179.07361 73317; 179.17566 8792; 179.27054 2352; 179.90729 23812; 180.12584 801134; 180.53511 27754; 180.62439 27819; 181.09044 36043; 181.16331 6409; 181.2144 6481; 181.39447 16837; 181.65907 28215; 181.76825 976368; 182.30313 15172; 182.3291 50430; 182.45214 662216; 182.67063 2225124; 182.67154 78530; 182.75955 25363; 182.76278 161856; 182.91896 5766; 182.98008 48614; 183.05679 1853411; 183.28472 82936; 183.32745 243378; 183.56919 70870; 184.06588 45061; 184.14542 7062451; 184.44944 3970120; 184.56866 134584; 184.76986 464269; 184.98566 64312; 184.99025 127345; 185.12329 2548; 185.25449 20989; 185.29562 2842500; 185.34671 7289760; 185.4187 1357; 185.5302 5822; 185.56786 1005921; 185.85363 4236; 185.89988 575816; 185.97306 9352; 185.99312 22221; 186.01667 1353891; 186.37225 573887; 186.56657 623998; 186.63166 7597219; 186.67596 1206700; 187.04988 6539; 187.16036 1187906; 187.265 2482463; 187.36354 22123; 187.98816 45022; 188.18962 137926; 188.90039 38191; 188.908 1870151; 188.98063 1860352; 189.15236 47382; 189.20681 54288; 189.8367 7055; 189.84097 45151; 189.89969 163886; 189.90655 1021544; 190.05525 73700; 190.16404 169478; 190.19853 24516360; 190.22723 1549; 190.57679 350030; 190.6152 1651; 191.04488 41243; 191.14054 69266; 191.23378 20358; 191.43751 183530; 191.69633 568816; 191.7445 9033894; 192.25189 46976; 192.89125 107302; 192.91767 22039; 192.93985 812074; 193.15998 4124; 193.18823 29941; 193.25698 2932458; 193.52981 26839; 193.72436 4951; 193.77387 765154; 193.90067 727326; 194.44272 163230; 194.48562 2345695; 194.53527 1926511; 195.07756 16657; 195.19777 60248; 195.24741 5589783; 195.61463 22987; 195.89294 941722; 195.95673 240013; 196.06553 701162; 196.18852 13924; 196.19242 5262; 196.27526 71802; 196.39073 77337; 196.4247 23674485; 196.51377 4109466; 196.75728 42951; 197.18251 627506; 197.27737 6811205; 197.30834 29695; 197.46759 214002; 197.75282 15455023; 197.90242 469903; 198.02123 17234; 198.04418 52387; 198.28923 54749; 198.41114 108467; 198.5728 27960; 198.76409 169969; 198.85018 5645088; 199.18335 31321; 199.21916 506606; 199.31285 1536517; 199.55118 1735325; 199.64107 20761; 199.72902 43348; 199.84865 389163; 199.92918 25621; 200.02786 10522373; 200.04354 3666820; 200.14465 305822; 200.26491 3082967; 200.35397 1253845; 200.55628 2786; 200.60395 73308; 200.70932 46112; 200.86288 22077; 201.1387 14826630; 201.21754 345201; 202.56267 1121698; 202.59568 56707; 202.87544 1242306; 202.92107 7359748; 203.08714 11083; 203.26586 124371; 203.27459 90458; 203.82313 4243582; 203.9733 9953; 204.18972 3550552; 204.37671 866641; 204.68786 18482462; 204.77146 1736913; 205.16077 45117; 205.16296 27563; 205.28024 115523; 205.32455 17610; 205.35726 47733; 205.3928 14058; 205.8603 109966; 206.28091 5197917; 206.43855 14881; 206.45022 24254; 206.64657 612964; 206.65131 63407; 206.69387 70990; 206.91533 26830; 206.92742 970; 206.98441 152570; 207.48233 1700713; 207.60225 24866; 208.10376 4872; 208.29415 29002; 208.57226 1368092; 208.92981 3361883; 208.98218 1435850; 209.02033 21089; 209.43973 2742; 209.89267 1741652; 209.89803 191956; 210.09687 20217253; 210.10422 5312427; 210.52855 993444; 210.58051 8341626; 210.63386 26952; 210.68842 2830087; 210.77989 3336; 210.86733 30495; 210.92871 818374; 211.17967 66820; 211.2803 2352; 211.47047 74148; 211.49457 251222; 211.59763 30390; 212.07042 6950; 212.16539 194551; 212.41442 1981; 212.62536 60058; 212.90221 66933; 213.35752 26610; 213.38655 1168161; 213.75487 3118; 213.86564 27071; 213.907 40518; 213.9471 1908405; 213.97331 74034; 214.0317 8165585; 214.12451 9200; 214.34777 898595; 214.36429 1571218; 214.37763 56848; 214.4432 8279; 214.68412 8995; 214.90027 8336; 215.09255 976036; 215.44563 75934; 215.59216 71786; 215.87428 11703392; 216.25552 5757; 216.34183 2793771; 217.11816 2479342; 217.1391 4466194; 217.18594 59668; 217.30446 1297779; 217.36064 155564; 217.40238 7884; 217.46483 3168568; 217.4957 5687; 217.5876 3350; 217.64093 9915702; 217.69587 53642; 217.90549 3997; 218.07108 116869; 218.18015 5054942; 218.1908 3955864; 218.26729 813026; 218.27907 19621; 218.43118 17707377; 218.5505 17157502; 218.57991 2118828; 218.63085 656336; 218.73144 562481; 218.80293 7679027; 219.06277 22816; 219.10202 4300715; 219.25517 6468877; 219.55992 426; 219.73592 62599; 219.83932 1446182; 219.95882 28925167; 219.96751 45994; 220.15867 9105936; 220.35351 34102; 220.57009 4589175; 220.63426 23948296; 220.94287 22048; 221.46545 128; 221.51783 1418103; 221.66034 5848; 221.95702 1185967; 222.02294 20505; 222.15263 1230567; 222.18952 700117; 222.58916 172; 222.6371 42665; 222.8112 190798; 222.86268 9545971; 223.14269 2251199; 223.35825 1661550; 223.41433 2578; 223.54337 24672; 223.83704 252698; 223.84045 5854100; 223.87236 312878; 224.18721 62390; 224.20452 1325; 224.44179 179787; 224.70366 72735; 224.86847 79274; 225.15356 4482; 225.27599 212138; 225.4571 453; 225.51853 111571; 225.63777 66143; 225.671 70119; 225.777 23246; 225.90626 32235; 225.96698 6960046; 226.213 1423540; 226.24742 51704; 226.29511 1241458; 226.39125 93790; 226.48723 24572; 226.73832 1897285; 226.93321 2898; 227.22662 17648; 227.47458 50545; 227.59895 78333; 227.71927 21580; 228.73763 54286; 228.90055 1668372; 229.10107 863374; 229.14444 4663026; 229.2518 2015336; 229.3611 66874; 229.9222 179930; 229.96047 194947; 230.05102 1097; 230.33203 412070; 230.39046 275; 230.40074 27690; 230.4275 16026624; 230.47272 53988; 230.49827 4126274; 230.58623 29784; 230.62468 182067; 230.74443 27723; 230.90554 1113793; 231.72291 1057859; 232.18254 23670; 232.40614 4159930; 232.47236 476809; 232.49564 43724; 232.52647 6927; 232.53774 982709; 232.57336 29977; 232.67076 32321; 232.67361 1155815; 232.85944 24317; 232.88515 7410; 232.95374 19096384; 232.99245 2023; 233.05263 9374196; 233.69414 6233066; 233.95763 88704; 234.00941 13111373; 234.24051 799844; 234.25272 53943; 234.41 98397; 234.48234 64919; 234.76531 56524; 234.98317 6386; 235.33423 8346; 235.35549 22887; 235.3994 35182; 235.68409 914222; 235.72533 714085; 235.99991 32099; 236.47925 29286; 236.65379 17653; 236.94906 187554; 236.96907 1189420; 237.37423 2981288; 237.5207 461171; 237.5911 1094763; 237.66471 12039; 238.31743 432450; 238.35367 67546; 238.72944 51014; 238.7467 6043; 238.80326 176735; 238.84747 70738; 239.15034 1172534; 239.3737 4202520; 239.63528 10857; 239.72871 1884195; 239.81577 650163; 239.90811 2209460; 239.98851 31704; 240.21935 160706; 240.31429 72085; 240.70923 76559; 240.76144 11790; 240.78279 24223; 241.02346 728810; 241.03085 1790422; 241.20723 3401069; 241.52484 93906; 241.91051 70602; 242.12782 2713772; 242.12988 5198871; 242.13513 176803; 242.1521 4325005; 242.36054 14745; 242.52544 60519; 242.6689 103904; 242.74509 444671; 242.9839 19211; 243.09023 15291715; 243.09898 912796; 243.25703 19153788; 243.26187 17132; 243.29148 26088; 243.30436 1447398; 243.30864 8587194; 243.38064 4116081; 243.4605 20419; 243.54078 2718; 243.71689 1236626; 243.88502 68993; 244.01432 3604641; 244.09315 79367; 244.17361 3338954; 244.26637 79216; 244.40841 506; 244.4231 1049327; 244.46852 1326224; 244.53983 24049; 244.63456 803127; 244.85704 28436; 244.98153 4887020; 245.02585 12321; 245.44771 3300961; 245.55007 8153; 245.55441 9084156; 245.7044 1736; 245.82392 6370706; 245.87099 30420; 246.22828 552691; 246.41395 2362; 246.41635 3417176; 246.73406 38371; 246.81827 24066; 247.07467 2547054; 247.36638 32306; 247.60616 79300; 247.90771 7762294; 247.97339 406704; 248.02103 680891; 248.36648 64186; 248.66074 302264; 248.87744 10630; 249.80852 59723; 249.81254 1947063; 249.90765 41611; 250.17929 191058; 250.18768 1308171; 250.19167 2860561; 250.53985 75312; 250.60669 508113; 250.8649 551747; 251.18241 11162609; 251.21985 7518; 251.78478 5953210; 251.87468 9426; 251.88021 25647; 252.01036 121565; 252.05015 66819; 252.23928 15138; 252.24632 41806; 252.24999 24786; 252.41404 17658; 252.48869 775090; 252.68986 1394449; 252.84694 77426; 252.86767 1832979; 252.95987 8921; 253.20538 68248; 253.22765 706892; 253.80702 17269; 254.23689 24588; 254.61059 23621; 254.87473 9204883; 254.93944 124995; 254.96988 1386067; 255.32457 2661234; 255.59221 105948; 255.69008 24456; 256.11401 1977; 256.52717 3620; 256.60823 48739; 256.79574 21980; 257.314 1708702; 257.39855 53580; 257.804 961084; 257.84749 20196; 257.88518 94266; 258.14936 434268; 258.16419 2657354; 258.47119 342449; 258.49211 5051; 258.61293 28515834; 258.71789 42314; 259.13668 1723486; 259.20595 71596; 259.36301 196; 259.36489 3889168; 259.43035 7505; 259.48457 55918; 259.64596 68263; 259.68764 6590; 259.7433 168148; 259.78258 14419; 259.90326 9656; 259.96197 462350; 260.28074 19939; 260.48882 69240; 260.52886 41297; 260.64493 2587852; 260.65032 3358; 260.79403 8244909; 260.80464 56410; 261.06214 192426; 261.36656 3904; 261.56569 170340; 261.64797 4148; 261.7004 400691; 261.7666 21600; 261.89975 2168945; 262.05819 75222; 262.22623 519323; 262.61942 57685; 262.63682 42422; 262.75215 69326; 263.06527 4131; 263.27262 26112; 263.66242 33860; 263.76794 12059124; 264.33065 107318; 264.38168 10094; 264.81361 477; 265.01449 19728; 265.05918 2648; 265.66836 27050; 265.69958 2561; 265.72026 27316; 265.83558 9008; 266.07905 2169; 266.71767 2404; 266.77724 25691; 266.92549 8420638; 266.97371 32068; 267.0619 28810; 267.06943 76099; 267.21389 1870188; 267.4234 70592; 267.61117 3700337; 267.75837 22564; 268.11216 22118; 268.77707 24513; 268.90523 3545888; 268.98762 3359899; 269.11294 44152; 269.30549 9559; 269.42323 7778583; 269.59732 25156; 269.67735 30087; 269.74619 77497; 269.78431 72478; 269.82324 9636; 270.01603 21923; 270.06922 14051; 270.07865 39497; 270.09388 44366; 270.34306 432; 270.35023 30979; 270.36447 903907; 270.37792 804331; 270.64775 11911; 271.07268 18994; 271.10273 47826; 271.18251 6826; 271.30282 520392; 271.30753 29030; 271.76944 35131; 271.90069 9746115; 272.03459 75524; 272.14019 21531; 272.21996 65662; 272.29009 44359; 272.35918 12084; 272.37754 3943; 272.3849 51842; 272.49561 51389; 272.56536 5100; 272.57385 1430028; 272.70266 40643; 272.71353 205741; 272.7994 55393; 272.87639 19950353; 273.11082 2508; 273.2855 18658; 273.29383 2229857; 273.2972 913894; 273.44757 5130855; 273.5096 1687858; 273.78582 78705; 274.01035 166793; 274.04898 389909; 274.07891 27244; 274.63474 147; 274.70457 23536; 274.76343 62748; 275.00499 1686216; 275.20869 7469; 275.21422 105367; 275.2332 14183; 275.27763 24346356; 275.32375 51621; 275.59127 79286; 275.61534 1628453; 275.63429 2075; 275.80311 427832; 276.03553 47623; 276.16866 211866; 276.74711 5462; 277.05773 66853; 277.12925 78076; 277.35633 2901721; 277.46387 582089; 277.62671 1710218; 277.65929 2302894; 278.11367 4451799; 278.14361 4419902; 278.39087 46064; 278.49556 23990; 278.73644 6323; 278.90004 383525; 279.02516 8228619; 279.15666 4648073; 279.18564 79774; 279.29218 334; 279.31917 1926473; 279.46076 22600; 279.82316 29290; 279.99618 5847; 280.05043 9338; 280.17277 5239682; 280.27596 232752; 280.39446 4923154; 280.89798 197232; 281.05023 55168; 281.33033 67202; 281.60224 45406; 281.62792 111912; 281.69243 4876020; 282.12436 2823275; 282.27038 109145; 282.62278 2759268; 282.86687 77207; 283.02742 47564; 283.18559 28302; 283.39685 11477; 283.66155 1036039; 283.67621 217095; 283.94092 8619; 283.95133 35655; 283.96051 922777; 284.90957 75760; 285.32337 7814113; 285.40423 61278; 285.43121 173999; 285.66193 75912; 285.69115 2186371; 285.75027 16534; 286.03281 3762547; 286.04999 143154; 286.05422 3353147; 286.12 79370; 286.48028 14132065; 286.60069 948016; 286.62995 2226206; 286.77691 65336; 287.63644 2269767; 287.95036 2678; 288.10424 51758; 288.2076 79853; 288.24997 27980968; 288.56902 797758; 288.57077 747065; 288.60794 71077; 288.7814 7979; 288.83445 298387; 289.23203 14115; 289.80613 3490289; 289.81246 8368; 289.92376 38879; 289.93985 25948; 290.23295 3608165; 290.27715 5885; 290.43708 8903974; 290.77563 8785036; 290.81405 660672; 290.96078 70862; 291.32945 4583737; 291.88252 21715; 292.20916 12627435; 292.68246 14718; 292.8625 53899; 292.95993 28259; 293.76639 72783; 293.97438 23463; 294.05105 1384376; 294.57367 7029291; 294.58832 127277; 294.74689 1581537; 294.8609 50024; 294.87211 52402; 294.93835 52577; 295.00194 15256; 295.26872 870; 295.32556 77112; 295.34023 6816434; 295.57132 14818388; 295.74348 40411; 295.79826 1421595; 295.97973 39603; 296.30771 1569; 296.31965 55414; 296.50726 21088; 296.64326 198609; 296.83531 1979; 296.86901 37612; 296.87857 843673; 297.31307 1173401; 297.40268 6720; 297.40347 440027; 297.40983 57324; 297.68806 27494; 297.77819 3275551; 297.85027 2478321; 298.18924 4759544; 298.44631 54973; 298.62005 324051; 299.1389 10558487; 299.36652 9102; 299.43862 7667284; 299.58447 9591; 299.83747 1535728; 300.30254 1346071; 300.40545 5581; 300.43911 761035; 300.442 809444; 300.44779 57375; 300.52234 4783; 300.52551 9972; 300.57602 179125; 300.93888 45459; 300.9695 2467471; 301.24255 47348; 301.38082 88777; 301.53057 57651; 301.60018 3933424; 301.82177 50730; 301.96224 26248; 302.22133 1741904; 302.39956 416521; 302.66669 4183351; 303.03089 1938617; 303.08251 512764; 303.8726 26541; 304.3121 27235184; 304.65991 1602741; 304.85978 9684771; 305.16799 279557; 305.32767 3554398; 305.49398 23318; 305.52735 3476517; 305.60022 936; 305.69984 1415659; 305.73715 1133802; 305.83608 73771; 305.88417 2072430; 305.9825 5488; 306.1099 1287771; 306.19799 96771; 306.41667 623056; 306.50766 20066; 306.78913 36484; 307.01203 69708; 307.74001 6735807; 308.11509 1621817; 308.35914 1958220; 308.3717 540213; 308.47376 7435980; 308.53146 910151; 308.87776 22208; 308.88189 1084765; 309.01018 70951; 309.04539 1253205; 309.19299 8418; 309.19407 781690; 309.52683 5259903; 309.83478 32564; 309.922 21392; 310.79133 1384659; 311.04152 3925051; 311.25846 9110578; 311.47387 16614; 311.77372 539025; 311.807 1829660; 311.98098 48773; 311.99904 15113442; 312.0046 11022213; 312.54145 4123820; 312.54738 99801; 312.62622 66784; 312.74162 38789; 312.85137 12086; 313.00085 9896905; 313.00769 22904101; 313.36177 4308; 313.67888 1684831; 314.14742 47364; 314.28892 139024; 314.57088 9732671; 314.60506 9757020; 314.61018 76742; 315.16021 4392; 315.37347 483601; 315.39709 1790605; 315.54377 35052; 316.04776 39547; 316.09354 78567; 316.09876 4282996; 316.17119 26252; 316.36209 1254281; 316.43461 6133407; 316.46084 75095; 316.65711 2201692; 316.70369 41490; 316.72007 3972157; 317.3356 1082847; 318.10175 813155; 318.38089 156531; 318.71147 3116300; 318.74799 638616; 318.91491 9333; 319.39738 34997; 319.63211 1432225; 319.69294 57433; 319.73787 95; 319.77811 7994419; 319.87965 307561; 320.24254 188566; 320.68804 1998806; 320.70479 22031; 320.86384 191560; 321.0175 3718961; 321.17225 554281; 321.17982 21769; 321.40724 2580; 321.70414 185743; 321.89171 63337; 321.93874 26927; 321.955 23804; 321.98415 29796; 322.07922 5885; 322.38655 8841; 322.39396 21812; 322.50608 1266279; 323.10481 1841141; 323.25914 44644; 323.38275 1718491; 323.56641 1021291; 323.93071 2432796; 323.99515 25440; 324.05243 17876; 324.53126 49272; 324.62947 33583; 324.70694 1218527; 324.74744 21715; 325.21122 1494236; 325.29854 89284; 325.33866 7489; 325.73699 62985; 325.73989 40725; 325.82587 3640059; 326.13275 26675; 326.99265 24053; 327.41317 39098; 327.61274 7348012; 327.81142 11449; 327.84425 8053; 327.99804 7509; 328.03007 12293; 328.04364 140869; 328.05158 23363; 328.36739 3759; 328.48143 2269726; 328.68622 110314; 328.72102 2803470; 328.85112 8861304; 328.93241 22083; 329.31268 4689335; 329.48686 5786789; 329.79183 125628; 329.80492 507750; 330.05232 186394; 330.22185 7879; 330.39115 25631; 330.49776 14245; 330.63752 17005123; 330.79475 1894501; 330.82138 22321; 331.16165 4491743; 331.23828 4080; 331.25837 50572; 331.29765 2373002; 331.63088 929146; 331.66514 29503; 331.82117 45044; 331.86288 108061; 332.11261 1760695; 332.11419 136575; 332.25905 23445; 332.64443 4833935; 332.67024 988813; 332.76521 25239; 332.80731 3091; 333.00528 30899; 333.11923 317910; 333.53498 857300; 333.97524 4280483; 333.98427 28632; 334.07604 68479; 334.09843 891952; 334.12352 182332; 334.13816 450079; 334.36098 2905; 334.5719 7216; 334.59186 1603403; 334.72858 6246019; 334.99708 1484911; 335.07737 29377828; 335.35896 15023708; 335.45934 72890; 335.86395 21059; 336.05984 5395; 336.16328 879256; 336.31118 29714; 336.39221 47257; 336.48437 28539574; 336.70457 75117; 337.2231 33712; 337.65052 941878; 337.81815 31450; 337.89763 4135253; 337.96569 58777; 338.13298 38919; 338.23454 82167; 338.2371 973; 338.45513 14880; 338.63187 38675; 338.89991 4768901; 339.05073 3269330; 339.16691 8474210; 339.17645 659978; 339.21494 2422249; 339.42172 17526; 339.52807 765673; 339.55491 50539; 339.62306 9223; 339.62668 654999; 339.67764 74005; 339.95584 110164; 340.02635 657147; 340.2435 46441; 340.35174 6936544; 340.6499 3828; 341.09732 20870; 341.19741 865672; 341.27819 14665645; 341.34271 2437; 341.58075 4253; 341.88556 12605; 341.93924 364846; 342.04281 47839; 342.29434 51984; 342.29605 6762; 342.48939 8244628; 342.54814 2035; 342.8141 1307054; 343.02547 1574252; 343.27631 1753225; 343.34068 13510; 343.5353 5368; 343.56191 9114070; 344.01788 56971; 344.05451 26905; 344.1937 7073; 344.34781 46322; 344.42661 386248; 344.81924 966447; 344.87634 1795026; 345.12481 12757; 345.36863 844149; 345.50343 59528; 345.70529 78244; 345.97079 167725; 346.01456 6391825; 346.27672 22099; 346.44543 10545678; 346.45003 6497426; 346.66398 47876; 346.77706 15049; 347.07643 78415; 347.08159 52155; 347.09729 5350; 347.1275 37902; 347.27018 2954514; 347.56808 9310; 347.62232 1985793; 347.79321 19877717; 347.79649 9719; 348.19184 671158; 348.4491 23280; 348.54296 30233; 348.57316 55113; 348.59016 47560; 348.72022 35473; 348.98324 28977; 349.10017 7577720; 349.34679 9911; 349.60973 1225; 349.81838 441070; 349.88786 195801; 349.95404 37058; 350.04999 127061; 350.15714 5506; 350.26932 1492632; 350.55971 2709635; 350.62371 1218; 350.63014 1892174; 350.66923 1031813; 350.76656 8834; 351.03632 175215; 351.04026 9515; 351.05018 65710; 351.18339 35605; 351.28888 4187003; 351.84776 4197542; 351.9727 54575; 352.07684 15416315; 352.10329 10832; 352.21384 26916; 352.28039 67107; 352.41562 116599; 352.44624 7615; 352.57687 1918023; 352.58997 483152; 352.72427 1839; 352.88164 26072; 352.9919 46953; 353.14115 704852; 353.31181 57393; 353.42312 43577; 353.43022 73797; 353.74448 6100373; 353.90699 110414; 353.93488 1893458; 353.94134 476058; 353.95489 3267363; 354.03739 26442; 354.11076 2660; 354.3039 1806532; 354.30488 63350; 354.34815 53660; 354.38105 14119; 354.65298 776617; 354.65807 8556; 354.68068 25827; 354.84923 6352; 355.0478 1591702; 355.162 1485496; 355.32619 63756; 356.05223 116233; 356.19921 197314; 356.33803 29320; 356.51096 3743636; 356.53474 4354385; 356.77939 7912035; 356.80911 3149016; 356.84093 69251; 356.84864 581; 356.87271 11978; 356.96325 69330; 356.99809 1501718; 357.08445 4114208; 357.66464 95808; 357.88774 1475898; 358.04998 62654; 358.13419 1288751; 358.35981 906990; 358.49158 67385; 358.65282 858393; 358.96586 6016; 359.7685 117933; 359.84452 468734; 359.93951 8358583; 360.4156 26221; 360.43912 2009604; 360.56073 24066643; 360.89368 78065; 361.59098 3660027; 361.64141 269774; 361.9905 8074513; 362.16732 824; 362.18948 21029; 362.19609 22198; 362.24009 5132610; 362.28705 30927; 362.28757 9874412; 362.3542 31099; 362.42913 45933; 362.43965 1557335; 362.54673 50910; 362.65339 71280; 362.65843 196526; 362.77147 123111; 362.78016 2032563; 363.23683 1256007; 363.31216 16197448; 363.71891 41101; 363.75237 318758; 363.99082 1621108; 364.04253 78107; 364.5617 161603; 364.81176 71735; 365.26504 606505; 365.29905 165447; 366.33473 79394; 366.34338 720399; 366.59627 65285; 366.6435 2982; 366.67087 2943274; 366.69891 1920680; 366.81649 1219998; 366.85816 2918177; 366.94371 2211525; 367.11069 514279; 367.27363 7251; 368.03461 9203116; 368.08247 4435; 368.27053 9121769; 368.32695 488438; 368.43801 798574; 368.54676 1277512; 368.627 71549; 368.69307 4374815; 368.82911 5123033; 368.86303 2698862; 368.93316 102534; 369.26747 29925; 369.30691 1284; 369.71051 1427361; 369.91792 9628141; 371.11187 92720; 371.16657 54000; 371.53283 22133; 371.97042 53114; 372.34339 9777; 372.64196 1146221; 372.79485 3760168; 373.45192 7062828; 373.59225 1032451; 373.78248 1956542; 373.80663 15637; 374.03788 49246; 374.4735 55655; 374.57248 64643; 374.82807 25370; 374.97552 65089; 375.37102 3315538; 375.53186 1165; 375.5562 1148817; 376.26818 109699; 376.37684 24383; 376.39429 149095; 376.77785 9032; 376.89945 9423; 377.06807 27256; 377.11075 25704; 377.15087 457679; 377.92452 106324; 377.95978 937612; 378.08675 29600; 378.14606 66046; 378.17494 50695; 378.30986 24572286; 378.44807 1050662; 378.50715 29469; 378.51077 1322755; 378.56075 4162492; 378.69707 5413524; 378.75482 60062; 378.81931 16864; 378.87968 24360; 378.9161 3959181; 379.03391 1920613; 379.14628 73062; 379.21964 21741; 380.12059 17944; 380.17134 53762; 380.4937 4744605; 380.51391 31302; 380.59187 27177; 380.9714 1724117; 381.28426 44339; 381.32202 34703; 381.40772 27624; 381.50254 1892960; 381.53945 37607; 381.72342 22699; 381.79411 3549608; 382.52967 23466312; 382.74689 1172659; 382.98526 4163; 383.05312 4890164; 383.36156 1565962; 383.42582 740543; 383.48616 24067; 383.62538 26792; 383.75314 20129; 383.83805 8485; 383.89679 6548; 383.92876 46666; 384.21452 23515; 384.41186 3945058; 384.48814 52112; 384.60881 443668; 384.66561 27181; 385.04344 1950203; 385.12312 6191805; 385.20198 5756; 385.25983 37223; 385.43926 782968; 385.44498 46562; 385.48491 463232; 385.60993 3878322; 385.77906 1051161; 385.96221 386318; 386.53241 17580; 387.38091 3392; 387.61397 2221150; 387.65816 33730; 387.88516 11228318; 387.98773 3562399; 388.33167 3573293; 388.48676 796650; 388.98449 9228; 389.08551 6689; 389.14277 2932942; 389.33979 7607; 389.37947 29813; 389.61961 78035; 389.72012 2654629; 389.76748 6464732; 389.78287 1010204; 389.84465 39837; 389.85962 6624; 389.8786 2832037; 390.45063 19237938; 390.46303 153778; 390.56266 38214; 390.61068 24034; 390.86072 56069; 391.00291 22951; 391.48447 6634; 391.59291 5544655; 391.6194 1440756; 391.71207 67718; 391.79031 44560; 391.94859 1588520; 392.46671 43435; 392.52 3680412; 392.60546 5762324; 392.67467 114430; 392.75178 54257; 393.02102 7859183; 393.15512 3344277; 393.47751 18972; 394.74654 893273; 395.30977 3988; 395.70196 294067; 395.83782 882803; 395.88234 61959; 396.05723 4727308; 396.37434 6454; 396.39382 1953633; 396.44061 786934; 397.2939 29601; 397.38662 201015; 397.44953 1194013; 397.55057 37290; 397.97221 982396; 398.0405 29429; 398.24146 3511497; 398.76782 25318; 398.93081 76402; 399.47643 17441; 399.52184 884252; 399.66644 4864335; 399.75929 24701; 399.7647 1858674; 400.21645 1152983; 400.32596 1875645; 400.37857 62599; 400.41359 454652; 400.56592 107573; 400.81478 30068; 401.45032 2308447; 402.28192 71293; 402.47925 23455; 403.17176 14691; 403.48503 9120; 403.7643 4597598; 403.92987 217911; 404.12279 5978332; 404.16276 6777; 404.20573 9013720; 404.60017 45859; 404.82635 55251; 405.02797 1641280; 405.03828 161363; 405.07845 51817; 405.08799 432147; 405.45048 7602474; 405.63127 75735; 405.73302 1210635; 405.7377 6074; 406.01049 1870054; 406.79848 22165; 406.84837 1346873; 406.87292 1916128; 407.11409 121813; 407.14013 36703; 407.44424 719637; 407.52183 67886; 407.66111 26065; 407.69149 75766; 407.85689 71211; 408.0278 9726; 408.09712 28626; 408.21114 79261; 408.37228 69530; 409.06298 69378; 409.3342 23619; 409.64701 204; 409.66444 17097; 409.72587 37260; 409.7806 21690; 409.82852 805015; 410.06764 25989; 410.24674 9141; 410.29911 1142886; 410.32179 9650054; 410.34762 67658; 410.44348 4122623; 410.70978 28563; 410.7548 34736; 410.8129 7811683; 410.86654 19331; 410.94572 172408; 411.19939 1406418; 411.21973 3370; 411.44532 450184; 411.51098 1625641; 411.64167 8355018; 411.94014 931020; 411.96932 5229; 412.06699 8660; 412.40307 58479; 412.42034 5572850; 412.43448 3794606; 412.63419 11329; 412.79186 9828; 412.84424 3179; 412.89854 6956606; 413.02646 6922; 413.35212 4890202; 413.78616 49133; 413.90142 879494; 414.13059 107942; 414.16706 194601; 414.32741 22542; 414.95747 130401; 415.21867 5657437; 415.25154 14765; 415.34887 2211998; 415.36484 4710678; 415.4078 925630; 415.4376 971998; 415.7266 9017752; 415.8383 77353; 416.22483 55510; 416.25897 7635554; 416.28215 15122977; 416.88942 10258; 416.99207 833804; 417.25883 60381; 417.4039 29361025; 417.65518 60787; 417.84164 24577; 417.88948 157; 417.98433 178251; 418.23148 620546; 418.32569 4044953; 419.22904 2903; 419.72676 2896442; 419.88759 5464; 420.2352 2255804; 420.25978 38779; 420.44497 544275; 420.56097 174027; 420.64666 3905650; 420.97019 121053; 421.1846 7300352; 421.22542 478912; 421.58611 28643647; 421.61853 831368; 421.81335 9337847; 421.89652 53458; 421.90999 1527307; 422.16124 6008019; 422.41664 25111; 422.61767 64707; 422.62374 29763; 423.02001 3093312; 423.12094 1547122; 423.4973 31909; 423.50675 21493; 423.74031 3600811; 423.80761 489711; 424.02278 1869523; 424.3246 48456; 424.63717 9091; 424.67507 25149; 424.95561 44690; 425.03587 53194; 425.2527 20468; 425.32651 43064; 425.52756 3033748; 425.74266 46485; 425.77307 50672; 426.39948 2120218; 426.4487 64365; 426.53845 61684; 426.55202 2058; 426.63486 56974; 426.70387 1924493; 426.72431 161347; 426.84994 14720; 426.91921 8841417; 427.10004 932252; 427.35075 37184; 427.36389 2109533; 427.54234 524558; 427.60308 3066922; 427.8117 31242; 428.28844 36242; 428.6158 26245; 428.69284 9902; 428.78496 26987; 428.89899 45937; 428.98166 22142; 429.00155 108985; 429.0184 3486479; 429.25328 1845860; 429.29404 2444144; 429.42982 97999; 429.75956 3756635; 429.81964 697703; 429.83968 3862964; 429.99542 154327; 430.20184 20239; 430.51042 55070; 430.5656 669592; 430.64134 1832; 430.65351 542641; 430.96073 2826; 431.01608 29756; 431.61404 668980; 431.85712 174458; 432.16787 78207; 432.20365 176875; 432.2998 4791388; 432.69583 4920; 433.02621 17429372; 433.2304 860459; 433.539 3604; 433.55111 3233685; 433.57899 680324; 433.78978 246074; 434.10278 9608354; 434.17693 50823; 434.31974 1837924; 434.33451 21531; 434.42477 1476934; 434.52416 39490; 434.61074 5913174; 434.62941 61639; 434.68995 50866; 434.73338 6080; 434.92419 6679137; 435.0481 54333; 435.15781 1232898; 435.16671 50396; 435.34228 8654; 435.46005 5281; 435.51336 73908; 435.82062 45933; 436.36292 166423; 436.63392 181803; 436.92793 127515; 437.0448 100609; 437.17361 43500; 437.38946 23917; 437.64969 30736; 437.77006 178165; 437.77829 19870; 437.81009 1984; 437.99197 49718; 438.17217 8413; 438.56086 22760; 439.01972 88231; 439.22934 646757; 439.28061 30372; 439.30182 21493; 439.52318 43048; 439.60492 63743; 439.99487 59627; 440.11243 24270; 440.78106 27780; 441.11194 8076; 441.55137 21611; 441.55747 58320; 441.60489 19648; 441.92046 144576; 442.16082 5423463; 442.36791 3910823; 442.59849 5806083; 442.79663 6034397; 442.90794 47941; 443.03544 1852374; 443.19633 172553; 443.20683 8809197; 443.22526 5306120; 443.38082 4870; 443.68779 5303; 443.75634 9718; 443.94418 872673; 444.04832 1332848; 444.06061 6035; 444.16014 198032; 444.46113 780771; 444.7659 27813; 444.83819 246485; 444.85571 9886; 444.89659 158261; 444.92282 3640; 445.35091 15312; 445.71849 15206; 446.68093 2525442; 446.78833 41601; 446.82093 166103; 446.88223 39426; 446.99749 64968; 447.2619 18460540; 447.52241 371911; 447.63074 155239; 447.66577 5234; 447.71067 24628; 447.8144 25025; 448.0648 1234128; 448.15327 76392; 448.19321 2546; 448.45499 479361; 448.56521 17024522; 448.58734 20026059; 449.15506 69921; 449.45921 5438444; 449.53971 1294770; 449.6078 112840; 450.08179 23253; 450.1436 28875987; 450.24881 12810; 450.43902 44889; 450.66978 1189337; 450.93465 9839; 450.95738 53311; 451.33339 3352459; 451.4043 18715; 451.47082 6053; 451.51805 796040; 451.62366 44429; 451.8376 24197; 451.90697 435302; 452.00553 60195; 452.03362 64935; 452.39301 13548; 452.44779 20936; 452.64158 55985; 452.78249 485047; 453.13558 65476; 453.17194 2203986; 453.30432 126080; 453.50229 528033; 453.54124 2850; 453.58884 59165; 453.62256 156709; 453.66426 62717; 453.74749 25069549; 453.7842 41739; 453.81127 1926300; 453.82047 3460176; 454.02423 109152; 454.02836 2913945; 454.17612 6110806; 454.22708 58971; 454.77296 26772; 454.83996 59156; 454.8413 4581; 455.02531 4891408; 455.65327 374593; 455.65532 24597; 455.66191 3011855; 455.69715 983303; 455.79329 521288; 455.92435 3194; 456.34945 20236; 456.72464 55590; 456.98871 5210; 457.16437 52484; 457.56378 77883; 457.70189 2709; 457.70799 5945; 457.80847 1003177; 458.00281 1914; 458.02464 32032; 458.0556 794088; 458.73082 33744; 459.20236 141743; 459.52267 12328; 459.53076 8853298; 459.91466 68086; 460.33073 16786698; 460.43136 4466309; 460.6858 68074; 460.83522 467619; 460.83739 57867; 460.8465 182088; 460.86296 21757; 460.87146 5026266; 461.12383 1414; 461.18971 105136; 461.26331 22914; 461.27853 9816; 461.35912 7388; 461.38621 5546666; 461.49132 745052; 461.51694 295948; 461.52495 1995956; 461.77868 1211639; 461.81591 184411; 461.88507 7372132; 462.04419 106861; 462.15716 1700122; 462.23758 71687; 462.38663 163888; 462.49103 121587; 462.52432 1683; 462.59097 31859; 462.6748 84520; 462.77902 60012; 463.11141 1116691; 463.25002 16856857; 463.40706 51067; 463.5957 26988; 463.63199 56833; 463.92032 384206; 463.92425 23930; 463.93966 599316; 463.9686 27102; 463.97603 29747; 464.17691 27120; 464.26759 25648; 464.67332 154120; 464.73456 44585; 464.79384 1595613; 465.0398 4561; 465.04102 56158; 465.04132 360879; 465.24518 997663; 465.24907 855075; 465.52672 4602; 465.96767 26256530; 466.06209 3708331; 466.51594 4270988; 466.63027 26893; 467.07012 995574; 467.10656 4542299; 467.29062 35389; 467.34625 121562; 467.41934 127943; 467.43843 5003; 467.77198 1101200; 467.77574 3055360; 467.83961 22637; 468.36596 7095797; 468.41965 5378655; 468.65863 542072; 468.74383 907462; 468.7653 75303; 469.67884 45633; 469.88986 29550; 470.33517 1435617; 470.70192 38136; 470.75359 7413; 471.24914 7287888; 471.62801 7250; 471.80435 25292; 472.102 54521; 472.30458 1744232; 472.44084 44190; 472.49281 2269662; 472.75209 3802; 472.84264 587; 473.0139 1205011; 473.39732 183686; 473.47147 25545; 473.66401 315793; 474.0106 1679722; 474.1851 8596; 474.36743 820044; 474.43516 1844406; 474.46973 4291470; 474.52167 2911266; 474.83762 2305745; 474.95602 47533; 475.21624 105638; 475.52837 1688338; 475.55639 324019; 475.64126 50581; 475.81477 14672967; 476.03893 9060881; 476.29844 8284850; 476.32847 4944623; 476.58462 1056550; 476.6435 39950; 476.67157 1006293; 477.59723 24255; 478.53393 52103; 478.84785 1736256; 479.00711 7603478; 479.11365 31372; 479.15863 8369; 479.21994 550249; 479.33098 35916; 479.44852 3541857; 479.77393 6784; 479.83552 32510; 479.86617 155580; 479.87414 143430; 479.88256 172670; 479.9741 9363; 480.32078 2229598; 480.52409 28113341; 480.95837 25019; 481.01635 3548947; 481.26527 2348764; 481.40484 78069; 481.45602 7441378; 481.60673 4599; 481.68891 6012; 481.76305 1860104; 482.115 806068; 482.242 32860; 482.57026 17285; 482.60065 71276; 482.85406 709489; 482.90783 5641753; 482.95347 20885; 482.98312 16204; 483.06027 8669693; 483.29821 5266106; 483.31652 121737; 483.47303 43692; 483.62046 32332; 483.64123 8328; 483.8235 1870973; 484.0642 871477; 484.33298 29736; 484.46831 3695; 484.50881 4723891; 484.51827 35530; 484.68672 54636; 485.00832 6650; 485.7245 4032623; 485.90624 1444; 486.1641 114294; 486.30308 55846; 486.39287 4090928; 486.44909 6903819; 486.59589 42328; 486.84476 8862900; 486.84752 98115; 486.84967 72614; 487.01268 366491; 487.17164 36712; 487.19546 18584578; 487.41791 2204; 487.43744 334296; 487.55643 1521711; 487.58662 62360; 487.63138 2507906; 487.68095 6527102; 488.06789 34089; 488.16362 21263213; 488.28436 1663621; 488.43258 3445899; 489.17069 22901; 489.34733 2765632; 489.86437 35197; 490.14621 72600; 490.45233 3852719; 490.48066 130410; 490.4956 6177; 490.49562 139057; 490.69042 32086; 490.86633 1446; 491.29951 175046; 491.37052 425581; 491.42589 14290; 491.50113 9086645; 491.61387 49262; 491.68546 19773; 491.89236 77133; 492.12168 43760; 492.25908 70087; 492.40154 27771; 492.9568 19033; 493.03567 24137; 493.29242 31583; 493.49346 30703; 493.49359 30908; 493.54365 3805298; 493.61781 32776; 494.71505 48189; 494.78736 171045; 494.96858 771314; 495.26008 514404; 495.64597 1902322; 496.26887 17959; 496.38406 7560; 496.78447 25231; 496.85583 1989595; 497.12408 10918; 497.15435 18301002; 497.2329 5152; 498.25435 1486488; 498.26442 17252; 499.07646 8739651; 499.26214 3485257; 499.34166 1277168; 499.86145 3395380 +<3, 5>: 0.00976 1347; 0.11839 1142412; 0.17667 46692; 0.47643 6596284; 0.57368 63167; 0.60464 5687; 0.68485 145515; 0.72681 11829; 0.81466 67443; 0.99123 59547; 0.99788 118710; 1.13865 147349; 1.46693 3419230; 1.49648 1137177; 1.87421 11893; 1.96813 741070; 2.00118 64744; 2.0701 503748; 2.88348 30006; 3.1653 4595154; 3.44476 73843; 3.60344 48830; 4.01676 170978; 4.13367 1047; 4.17927 65768; 4.31666 6725859; 4.56008 25515; 4.62778 1629273; 4.68638 110946; 4.96808 4559584; 5.11197 9633160; 5.21707 49939; 5.38447 884296; 5.40666 33404; 5.56576 2390202; 5.91823 42557; 6.35056 4037548; 6.82948 56715; 6.85439 48042; 6.91936 24282207; 6.93663 1616533; 7.34813 45135; 7.62911 103095; 8.03911 7058122; 8.1113 23355; 8.33144 1040; 8.49681 12759; 9.55002 27801118; 9.58022 264552; 9.61894 158899; 9.80449 6702; 9.98212 2113; 9.99616 123396; 10.03122 2295; 10.12412 39984; 10.12624 147674; 10.20468 12657; 10.21513 633098; 10.46567 20573198; 10.50673 1797; 10.58857 576997; 10.70934 7507; 11.06426 29129; 11.1215 8297; 11.2803 29988; 11.33301 2072532; 11.36455 190820; 11.38811 34157; 11.39778 22; 11.48666 4272044; 11.5225 972665; 11.82575 22592; 12.00897 98978; 12.0533 1363360; 12.09178 3887; 12.27818 197652; 12.30422 3255879; 12.55254 763548; 12.65696 21246; 12.98847 448659; 13.07475 69826; 13.184 8504; 13.30711 18212; 13.46922 47047; 13.71317 24784; 13.73844 21042; 13.89586 24270286; 13.93434 199348; 14.41843 48477; 14.52843 6665105; 14.61422 1821073; 14.65921 53295; 14.86413 5618; 15.1212 29491; 15.33568 6798918; 15.36806 9708; 15.49724 42687; 15.61961 89882; 15.908 100776; 16.07154 44274; 16.10057 27407; 16.29813 26464; 16.84752 29615; 16.92071 3411575; 16.9481 50154; 17.02099 23519396; 17.09283 75830; 17.17078 29455; 17.62083 31094; 17.6353 17388114; 17.85683 7423; 17.8782 512120; 18.50856 23171; 18.63287 1306904; 18.89165 41446; 19.29624 12663; 19.51485 370; 19.60525 8585489; 19.71696 20919; 19.87674 127440; 19.94676 29368; 20.15772 43878; 20.2416 23606; 20.57724 113048; 20.9811 57375; 21.18167 45308; 21.43811 574699; 21.71695 78035; 21.72693 62334; 22.0717 69076; 22.18235 2184; 22.29464 2989890; 22.60187 21593; 22.77776 30303; 22.7908 28848775; 22.80861 1049012; 22.9597 86175; 23.01428 70186; 23.03944 23746; 23.05062 38819; 23.10337 1208844; 23.20588 161589; 23.32423 218584; 23.37506 656078; 23.41521 59348; 23.49003 36583; 23.49155 79213; 23.9404 97414; 24.01429 7660511; 24.16295 24741; 24.17507 6252; 24.23528 79629; 24.3184 2865534; 24.57556 1026061; 24.93424 2670; 25.43797 9467; 25.43904 56364; 25.5488 1109071; 25.60368 79289; 25.83186 8829852; 25.90978 7563; 26.27314 1540634; 26.32005 82715; 26.42062 9912768; 26.69972 713881; 26.72063 72521; 26.86933 70616; 27.26176 39118; 27.47611 18179; 27.65566 22055; 27.87674 53079; 28.06875 1567617; 28.383 530229; 28.99438 38113; 29.01804 713868; 29.03178 40781; 29.17484 1833855; 29.21939 9356257; 29.67281 4503760; 29.82351 833982; 29.82663 9073522; 29.87324 65937; 29.89738 3858506; 30.04665 67479; 30.0755 68979; 30.24405 156107; 30.29803 29266; 30.32137 4486770; 30.6605 62885; 30.67202 68673; 30.8229 48101; 30.89241 29088; 31.37337 1585418; 31.40231 1312731; 31.83137 7600; 31.99059 566611; 32.02591 3573; 32.09094 3338066; 32.3873 92568; 32.54654 97645; 32.67152 51926; 32.97394 403543; 33.27226 914236; 33.36594 5356; 33.37231 7261; 33.48938 2955787; 33.54579 3643; 33.97899 7441903; 34.00194 121363; 34.28845 1489497; 34.71357 4950; 35.05174 8988753; 35.22686 72101; 35.26711 170721; 35.52185 48973; 35.52275 25610; 35.94003 14082; 36.14598 48865; 36.17845 3810041; 36.72631 20728; 36.74933 7976; 37.07981 5303; 37.34288 4713; 37.52208 26571; 37.82438 4359; 38.10415 12377; 38.11301 592750; 38.33481 1450; 38.46336 7934165; 38.46563 3645469; 38.47337 46291; 38.85603 75435; 39.6468 187822; 39.9703 5520658; 40.00074 419674; 40.0778 25636; 40.31181 18303; 40.66839 78715; 40.68032 22963; 40.75022 609415; 41.00166 17143; 41.12996 4536933; 41.35783 3359811; 41.36798 35661; 41.41764 13528; 41.57608 912730; 41.63303 6590; 42.41491 1576401; 42.81101 19273; 42.86442 689207; 42.94391 152874; 42.95772 60805; 43.13069 41901; 43.25626 63926; 43.29822 9154606; 43.54114 2460061; 43.67579 465239; 43.68433 13544; 44.03873 16768982; 44.11682 6727878; 44.31803 96144; 44.48965 9403; 44.60241 8961860; 44.62324 338675; 44.74009 254731; 44.9321 9566; 45.02812 67825; 45.33138 31150; 45.50951 26375; 45.68596 3727988; 45.79477 876567; 46.32711 55766; 46.39488 9531; 46.52295 4770229; 46.98164 7172; 47.03061 3707066; 47.12373 9564; 47.16006 3712; 47.22892 336823; 47.59486 79920; 47.656 3104523; 47.67941 4026; 47.87689 59797; 48.26339 4640827; 48.34725 98170; 48.53291 61311; 48.97055 24129; 49.06462 150019; 49.07855 25625; 49.25619 22734; 49.26526 34315; 49.69871 834; 49.75584 132531; 49.86553 1967478; 49.90279 377655; 50.11962 616259; 50.17519 9657115; 50.25015 48005; 50.36574 3170157; 50.63361 19345; 51.17959 3628; 51.27346 98236; 51.29139 9960; 51.34985 28147; 52.01558 123905; 52.14358 74536; 52.18242 343214; 52.21276 262045; 52.35446 6479; 52.4023 9103832; 52.45712 34323; 52.75108 13900070; 52.83084 36053; 53.14227 1237656; 53.40052 2193; 53.50163 21687; 53.57136 13530; 53.69457 372515; 53.9719 54834; 54.10942 25120; 54.3762 4497414; 54.4222 107678; 54.61207 13589676; 55.03183 2384983; 55.12012 117; 55.14957 21928; 55.82161 48175; 55.89358 20328; 56.29538 9200; 56.84268 1037; 57.0682 5441040; 57.08931 5744; 57.2117 1578; 57.4427 2847281; 57.6237 43108; 57.7231 1890; 57.9684 425877; 58.19294 16973; 58.45984 8455; 58.46369 101432; 58.82064 20888; 58.86331 1877; 58.87379 1083085; 59.0961 14276; 59.25344 50433; 59.42741 8312155; 59.64475 9296736; 60.1044 37383; 60.15739 1284666; 60.16879 1594127; 60.47292 6490; 60.8767 29723; 61.34968 4441; 61.56665 3103184; 61.70967 6835348; 61.81563 133343; 61.81791 33797; 62.08657 7640936; 62.19928 9233526; 62.20166 18481784; 62.42184 82149; 62.61603 538813; 62.64382 68264; 62.95907 9184985; 62.993 1098872; 63.46784 154567; 63.65355 4946; 63.73185 8172470; 63.74132 5650207; 63.75609 189685; 63.79579 79791; 63.9244 1316681; 64.62154 29827; 64.85868 39858; 64.93788 5581384; 64.95092 157425; 65.05087 536165; 65.12184 69297; 65.18029 9144376; 65.20437 3625180; 65.27711 53792; 65.51583 59571; 65.59374 6148133; 65.74138 79152; 65.76536 8801; 65.95983 4233565; 66.01602 6841552; 66.22871 20846; 66.54665 59561; 66.60287 20221; 66.64251 37361; 66.76825 126275; 67.28919 1411399; 67.47177 581191; 67.58484 1259; 67.67935 5975; 67.73953 17519899; 67.9572 16709; 68.02678 822370; 68.2582 5928741; 68.29488 3242; 68.38739 49460; 68.54391 28833980; 68.61671 19601; 68.70279 3237746; 68.71658 138469; 68.75092 34570; 68.95538 522399; 69.28283 5277771; 69.28287 6731; 69.3687 3789348; 69.38364 48922; 69.4009 956057; 69.47195 1285909; 69.51588 969408; 69.60447 4735776; 69.73108 9213; 70.13249 2910489; 70.15281 15171; 70.28273 1092; 70.3494 46633; 70.56055 1916; 70.79226 1820307; 70.79422 675179; 70.7943 166070; 70.81572 76426; 70.84513 2919; 70.85718 598667; 71.144 72294; 71.41065 31866; 71.61578 28020; 71.72544 24372; 71.96603 1296502; 72.08606 21563; 72.19599 2916193; 72.4218 147792; 72.4483 1767081; 72.46129 708; 72.497 27721; 72.75735 5723138; 72.85059 1653313; 72.9279 15253; 73.19853 37717; 73.36695 21159; 73.40027 292393; 73.5579 20900942; 73.66316 9697049; 73.69113 1884117; 73.78565 179270; 73.89731 3431511; 74.03809 1341523; 74.5082 71785; 74.80149 15881725; 74.94875 793879; 75.00909 8702; 75.16505 26405; 75.65311 1493288; 76.03693 33328; 76.10355 17937; 76.16861 9709; 76.42329 1458320; 76.77005 9520773; 76.8878 328628; 76.88813 564858; 76.92503 29869; 77.4141 7308112; 77.51369 7349324; 77.52221 1768838; 77.64879 17805; 77.66172 62428; 77.75626 1758801; 77.82689 3792270; 77.9871 67719; 78.05697 35744; 78.16077 4623; 78.2052 165285; 78.46223 42262; 78.4974 9827975; 78.53674 3244684; 78.84605 79193; 78.93089 68360; 79.08278 43928; 79.18295 294; 79.18551 4823336; 79.31148 2276; 79.57132 17943; 79.84186 95186; 79.88622 28373; 80.07863 23136; 80.11319 171402; 80.33546 167546; 80.77984 1883712; 81.46254 8190018; 81.61486 4600983; 81.64346 15419; 82.00256 2231591; 82.02738 1120550; 82.19906 8841; 82.66587 385168; 82.95262 1521570; 82.96687 710424; 82.98982 894428; 83.54737 8879; 83.85543 15719; 84.11271 263539; 84.33125 20979043; 84.36768 36160; 84.37069 24302; 84.43367 4565; 84.6463 5868; 84.66081 2370; 84.7474 652619; 84.77616 38660; 85.02198 23813; 85.29402 1986102; 85.64793 3887861; 85.96548 72579; 85.98223 1700662; 85.99776 25341297; 86.05215 20587; 86.1184 30479; 86.9234 27816; 87.03918 45699; 87.08007 70859; 88.10978 26192; 88.19457 316; 88.33858 150288; 88.55796 56456; 88.70972 29061; 88.75215 45913; 89.18294 5884; 89.50639 8417; 89.91395 1840785; 90.22858 24834; 90.27706 33612; 90.7081 26623; 90.71711 251798; 90.76853 18724; 90.80997 30375; 90.83458 25074; 90.961 4773; 91.38889 24068; 91.3889 53118; 91.41289 11305; 91.48327 1044; 91.64838 6210015; 91.9346 25420; 92.05665 40573; 92.19214 1698060; 92.24788 6927; 92.38836 942128; 92.49808 78916; 92.68136 3783197; 92.89238 3174352; 93.05334 23980385; 93.20547 23265; 93.26814 35196; 93.2869 19526; 93.44614 4261114; 93.55253 24119; 93.60463 33224; 93.67722 8939582; 93.79243 2599674; 93.92513 19306103; 94.03671 186726; 94.11897 118600; 94.24051 32260; 95.13012 2493490; 95.13503 8981; 95.23256 4389030; 95.56055 751; 95.68661 156348; 95.7062 732020; 96.18028 3190405; 96.2854 7816705; 96.29143 4779638; 96.86919 1591845; 96.91741 6968; 97.03361 32501; 97.49824 5523332; 97.52291 178463; 97.67441 9818860; 97.94181 49275; 98.11887 6807; 98.36768 14893440; 98.61443 155569; 98.62522 8392593; 98.88625 68080; 98.95576 194104; 99.09374 16048; 99.59411 8486; 99.7574 9743; 99.90832 4329939; 99.93961 381683; 100.02398 76783; 100.09671 18146; 100.64904 45172; 100.6768 51665; 100.71133 130678; 100.94323 130202; 101.00349 3852025; 101.26845 2441; 101.65046 55814; 101.85356 228; 101.92659 1903214; 102.12212 3749; 102.21581 27271; 102.59892 211742; 102.67873 74216; 102.78884 9932; 102.96 74496; 103.26246 43890; 103.41813 5744; 103.75328 19575422; 103.81596 1401724; 103.90185 2889; 103.91943 2829006; 104.2627 27074; 104.30809 3627094; 104.3217 835297; 104.43745 556946; 104.52485 14029; 104.64158 47236; 104.80021 458814; 104.82126 868761; 104.94322 9335949; 105.23935 368868; 105.30555 22813; 105.51156 18975; 105.53642 49008; 106.16877 7159750; 106.31977 8441; 106.35107 1261387; 106.4935 45680; 106.54925 10841; 106.84457 91893; 107.10574 20903; 107.35483 1609553; 107.50274 8311; 107.66054 17974; 107.67793 2175; 108.00677 74952; 108.05655 20812; 108.32719 1193515; 108.42211 17218; 108.50483 21464; 108.64817 547012; 108.72229 7885635; 108.82124 28999; 109.06382 515084; 109.08117 132077; 109.18014 139064; 109.22627 20124; 109.26175 6762; 109.7269 1242090; 109.73613 44697; 109.78061 104354; 109.79004 2525; 109.82554 1864822; 110.05605 1316256; 110.52972 8096; 110.58228 1962792; 110.75299 8526947; 110.84913 10144730; 111.32422 45625; 111.77221 1689539; 111.9792 18808; 112.47795 7639; 112.57866 4733451; 112.63624 3103458; 112.75707 2337585; 112.78482 62185; 113.01877 2965; 113.74183 60689; 114.15401 1957562; 114.27292 20555; 114.27343 404667; 114.27931 30232; 114.30511 8879; 114.32443 3275060; 114.58941 44205; 114.64861 33825; 115.784 63595; 115.83414 188014; 115.93465 1612079; 116.183 3884188; 116.46141 63595; 116.76089 572772; 116.76215 5613336; 116.82027 1831949; 117.36341 29898; 117.50859 3135; 117.95804 9711846; 118.02711 7633704; 118.22103 58745; 118.57543 7618; 118.60703 4671547; 118.89113 1995980; 119.13655 7832637; 119.76615 645377; 119.78341 14217; 119.88269 113104; 119.94617 9200; 120.11726 62786; 120.22763 28263; 120.83594 138102; 120.97158 1355; 121.00882 6845; 121.08029 4785; 121.19633 1062; 121.22041 1017980; 121.26127 13698; 121.53504 196065; 121.70234 1968055; 121.92549 6742302; 121.99696 1443528; 122.00894 8842; 122.16136 23008; 122.20383 51462; 122.41985 287713; 122.5939 74341; 123.42447 9918430; 123.5352 2896; 123.71092 14804; 124.04626 8701; 124.21028 1200044; 124.31175 6886; 124.42439 1188432; 124.42711 27899; 124.46646 3408744; 124.73481 1626316; 124.86379 362103; 124.92029 66117; 125.00638 3171187; 125.10773 571226; 125.31942 478383; 126.03943 65863; 126.14826 7132; 126.36025 3618698; 126.4009 5054639; 126.47502 11001; 126.54079 5119444; 126.86041 69016; 127.07055 26963; 127.0713 19282; 127.39353 1012495; 128.45254 27157; 128.9944 61271; 128.99589 23443993; 129.01274 5516083; 129.04222 21890; 129.12459 85563; 129.17268 9941; 129.55643 27295; 129.5946 17647477; 129.88634 1227246; 129.9993 6642952; 130.01187 1644067; 130.09926 2865390; 130.36835 6658; 130.44537 733695; 130.65345 3387530; 130.71295 762533; 130.75595 29396; 131.17694 9302488; 131.27486 1941029; 131.3489 1434996; 131.44572 23349; 131.46353 9298229; 131.6668 40177; 131.69426 66371; 132.11877 78177; 132.36088 112895; 132.56184 38361; 132.59744 44098; 132.66719 37504; 132.89995 75230; 133.00893 6846161; 133.07448 29935; 133.6481 890362; 133.67257 2239257; 133.73602 7323; 133.95193 9198985; 134.14422 503679; 134.21036 24014; 134.3817 622719; 134.64386 20016; 134.66741 2323; 134.70663 2329; 134.83517 2165308; 134.95876 1971289; 135.00595 169657; 135.35178 2513409; 135.40669 10774; 135.79206 14435; 135.81224 3231539; 135.89534 63793; 136.02727 52196; 136.03864 50397; 136.16938 49441; 136.2175 55845; 136.28557 3456; 136.31892 62177; 136.93559 705040; 136.98548 9061181; 137.04488 445184; 137.14405 3585287; 137.2831 44652; 137.46898 46595; 137.5259 3938511; 137.72968 15679; 137.80274 4562; 137.96843 108275; 138.03406 65444; 138.06682 1552136; 138.23804 4803510; 138.28159 914744; 138.37867 2677; 138.41589 38276; 138.80563 50764; 138.8248 14763; 139.00056 4040; 139.08744 1132661; 139.17756 42240; 139.75432 15424548; 139.87164 4532702; 140.10059 79903; 140.23303 1156044; 140.23923 12408511; 140.51927 58219; 140.55039 24473; 140.63841 23790; 140.94063 12070; 141.13629 48127; 141.20214 2816065; 141.37418 7304; 141.54439 5350134; 141.85779 399376; 142.25443 4385541; 142.60165 50461; 142.90718 70190; 142.92483 69878; 142.98073 7044; 143.20676 46491; 143.37534 10395; 143.43341 2523239; 143.58501 680544; 143.67701 1547989; 143.86045 1134641; 143.86079 35375; 143.88259 140583; 143.98457 2108; 144.14073 175712; 144.33966 37920; 145.03941 1273; 145.08852 25774230; 145.3475 23025; 145.45329 16859; 145.56496 44854; 145.70377 22783; 145.72626 59537; 145.95842 77972; 145.97811 26785; 146.17243 7541566; 146.45828 34607; 146.66874 22101; 147.04915 1909175; 147.07001 57868; 147.54727 7843151; 147.77111 20986; 147.90174 3540; 148.52484 73078; 148.6812 162637; 148.93288 22576; 149.02101 24351; 149.4433 183433; 149.4916 55474; 149.65178 11727; 149.82685 3812041; 150.13285 17234337; 150.39945 543514; 150.61175 24293; 150.61497 291963; 150.69878 1167327; 151.05329 37292; 151.13505 20891; 151.30044 5368502; 151.45613 2332291; 151.55102 112084; 151.77982 26910; 152.13051 3760361; 152.39082 26388; 152.43194 731798; 152.43804 8656340; 152.59612 40613; 152.66059 1177; 152.69591 131617; 152.83092 28272854; 152.83584 17995; 152.97994 26460459; 153.02359 212155; 153.24153 599; 153.71631 1143473; 153.80289 6941; 153.81536 41744; 154.07983 19022601; 154.35132 2093138; 154.47248 2862906; 154.5017 4584; 154.61386 623142; 154.67973 29439732; 154.728 10649; 154.82439 8595246; 154.82457 859630; 155.00092 939; 155.15211 3867; 155.22457 30275; 155.31798 29552; 155.44546 1108399; 155.497 4617036; 155.55024 457438; 155.69879 339023; 155.71131 1940899; 155.7448 5109; 155.85953 39226; 155.91999 1058187; 156.44222 2700140; 156.75151 9174634; 156.81542 9700; 156.89212 55343; 157.0659 1268341; 157.18062 866591; 157.23037 63358; 157.31722 2948077; 157.48858 36967; 157.61679 1150940; 157.71766 57266; 157.7967 181508; 157.87304 16445; 157.90875 792359; 157.95923 25731; 158.29772 25005; 158.46879 1002189; 158.70764 75035; 158.88863 1583603; 159.39024 107942; 159.40392 61497; 159.60095 9659536; 159.60839 42957; 159.64233 922344; 159.99894 7041871; 160.05184 523642; 160.24447 19615; 160.25328 5994; 160.31544 43562; 160.34319 20058762; 160.47767 43515; 160.82989 46856; 161.27936 116282; 161.2836 25967; 161.34921 43671; 161.50257 802440; 161.70014 1719766; 162.15059 602832; 162.23879 175591; 162.34665 21150; 162.43122 595; 162.47383 3354936; 162.62708 1560284; 162.63785 1355960; 162.66243 689876; 162.69469 26968; 162.80516 3531334; 163.02258 20162; 163.33114 25201; 163.39215 4439528; 163.81526 941976; 163.91111 25530; 164.01951 1250533; 164.13168 149; 164.18425 62825; 164.45235 538904; 164.52488 3093281; 164.59206 1752182; 164.69308 9919222; 164.89423 49397; 165.04308 3969843; 165.10466 39006; 165.25165 3413966; 165.28917 6998; 165.46329 293214; 165.74403 29862; 165.97582 802391; 166.04959 1093305; 166.31185 4303686; 166.32338 2399676; 166.56319 21657; 166.78206 60423; 166.81451 38171; 166.86269 8761506; 166.89131 8587813; 167.41672 24241; 167.53579 34406; 167.59701 28305; 167.78357 1093472; 167.85834 1233307; 167.86596 37118; 168.36487 69106; 168.38426 2346441; 168.46784 39871; 168.60649 28244; 168.67656 457236; 168.99872 46993; 169.00492 962946; 169.31268 4148681; 169.55851 59176; 169.57251 4515279; 169.64825 4318014; 169.67783 755500; 169.8128 23199; 170.15347 51499; 170.18017 10802; 170.20956 9004508; 170.28998 128402; 170.3775 138000; 170.40322 67369; 170.47711 24244; 170.57582 2907391; 170.67422 6095820; 170.93627 1377; 170.97326 2634384; 171.06175 88820; 171.20725 228391; 171.56681 1501971; 171.65979 18621; 171.97999 6628; 172.23843 9937512; 172.50903 4941070; 172.60439 49086; 172.84301 78063; 173.00968 2709771; 173.02668 11926; 173.12336 56221; 173.13206 60159; 173.21342 57242; 173.26452 36697; 173.63804 40726; 173.82436 1445160; 173.98801 69316; 174.00162 2387; 174.03667 43970; 174.08274 20395; 174.12817 18462419; 174.17773 21810; 174.41962 419107; 174.70683 4109098; 174.90329 23716; 175.07404 4141919; 175.44526 25497; 175.52197 1172643; 175.57072 1184717; 175.6303 2583671; 175.63834 24331; 175.85915 139586; 175.934 3096250; 176.5065 1409479; 176.55423 5106795; 176.88051 9162552; 177.00932 2798356; 177.08226 1291052; 177.13428 21675; 177.27517 59567; 177.95831 26758; 178.17473 1963705; 178.65377 1434668; 179.35824 25058; 179.45885 14930; 179.92943 28875; 180.06558 1480713; 180.82013 9112; 180.86515 46954; 180.9271 13713; 181.09853 36120; 181.36108 11207; 181.4875 43124; 181.64434 34220; 181.66656 4563833; 181.67688 9740123; 181.73395 40586; 181.96715 26751; 181.97434 2056675; 181.99621 79831; 182.0197 1313490; 182.07704 147465; 182.13712 60346; 182.18444 8868242; 182.32927 24444; 182.52572 47608; 182.66251 2522; 182.73689 23933; 182.9419 33784; 183.04246 3645218; 183.72478 72198; 183.85093 28281; 183.94445 10387; 184.16681 3729430; 184.27631 22950; 184.30177 149300; 184.43201 2519852; 184.59119 1588155; 184.61922 2497; 184.75198 3099449; 184.78877 33369; 185.17125 53634; 185.56142 5555; 186.24792 42781; 186.29861 6092586; 186.67106 71530; 187.0895 2725245; 187.38443 4482; 187.71334 20785; 187.98316 9690688; 187.99764 46189; 188.08833 36939; 188.28667 102; 188.41342 46428; 188.41641 678304; 188.79612 121480; 188.9868 2010461; 189.08355 29906758; 189.43031 1801204; 189.67949 4668343; 190.07516 4874359; 190.66576 15815458; 190.75167 9242378; 191.03782 7758521; 191.04175 25132; 191.48217 9792; 191.62622 39537; 191.70607 32593; 191.73154 1033452; 192.14464 3280; 192.41065 220788; 192.4646 25103; 192.52643 26651; 193.26625 18540; 193.30152 8835; 193.39395 6663518; 193.42439 64426; 193.46212 11332133; 193.55665 8362; 193.78435 8500; 194.11327 78852; 194.22877 15575; 194.29339 26268; 194.54091 153926; 194.56994 3277269; 195.01303 32119; 195.10263 8425; 195.30262 54256; 195.63112 19690574; 195.79155 44605; 195.88974 151396; 196.26203 1319661; 196.31804 1928268; 196.38719 21194; 196.76604 9892; 196.87658 72822; 196.97439 27273; 197.0613 2989556; 197.09714 66302; 197.11256 23674; 197.40265 1865712; 197.58582 15510; 197.60232 1155305; 197.63481 11532; 197.75843 62847; 198.27208 31385; 198.29725 9478; 198.40493 148390; 198.61596 26484; 198.8408 2691529; 198.91626 9872359; 199.2669 1388239; 199.3159 2059624; 199.34433 24566; 199.75598 5762; 199.82546 3347712; 199.93651 55706; 200.23559 1853192; 200.69512 70079; 200.69732 4660314; 200.82601 14557; 201.0332 4901992; 201.04772 6562481; 201.10874 47235; 201.30333 8934; 201.39318 87171; 201.78342 32495; 201.93168 50227; 202.11899 27043; 202.5869 2538493; 202.69945 577; 202.72782 1256934; 202.80328 3026674; 202.81038 71847; 203.06804 43074; 203.15909 8016936; 203.19099 3203570; 203.23027 45501; 203.38929 26567545; 203.73979 71207; 203.7781 2005599; 203.77924 66723; 204.10749 66465; 204.1514 74606; 204.1828 71374; 204.37014 1539270; 204.40388 9067193; 204.48796 76346; 204.60435 6921; 204.62567 4174783; 204.69462 1884019; 204.71096 5628; 205.13303 8434151; 205.42324 1072094; 205.50853 379768; 205.54404 816278; 205.66594 8455; 206.17729 1573402; 206.19221 915151; 206.38117 1451406; 206.54059 17168; 206.94148 91622; 206.94918 4419; 206.96571 6042; 206.98581 55365; 207.06189 2959077; 207.15652 59128; 207.33961 35258; 207.43017 79498; 207.44768 1761421; 207.46161 41404; 207.50654 61580; 208.08348 12639; 208.1313 27181678; 208.64629 1175567; 208.71939 29949; 208.78294 26515048; 208.81004 4112750; 209.23412 21784; 209.78252 2821478; 209.98656 2163501; 210.49321 59769; 210.72306 31447; 210.98611 3138; 211.61035 20040; 211.75858 57997; 211.88142 8633136; 212.02442 830929; 212.03169 122196; 212.2638 1482099; 212.5973 6543480; 212.82027 385547; 212.87736 24332; 213.03489 4141695; 213.26836 38106; 213.28639 74309; 213.34449 30058; 213.67486 5446; 214.55908 700444; 214.64427 3890694; 215.01829 59109; 215.78209 56535; 215.88726 4152088; 215.93773 166187; 216.07367 27557; 216.11299 2548138; 216.30086 46120; 216.54493 4956050; 216.59903 70507; 216.75974 1366045; 217.07741 60751; 217.12414 108461; 217.70783 99522; 217.85463 9933131; 217.90093 8076264; 217.94782 82261; 218.12952 118; 218.91698 128885; 218.99233 25495; 219.21993 45459; 219.51555 1488370; 219.53542 75273; 219.54802 16190; 219.62781 2805; 220.06242 504730; 220.24043 46802; 220.25849 58153; 220.82951 41995; 220.87765 9810; 220.94177 30963; 221.11916 8094; 221.22908 9578420; 221.38153 14114; 221.41633 4098; 221.86604 163167; 221.96679 64737; 222.00175 149236; 222.41614 2041411; 222.52116 9426; 222.63686 1573206; 222.66326 3326; 222.70612 5373950; 223.0128 24603; 223.0544 71166; 223.6362 38248; 224.32941 26551; 224.34649 17285966; 224.44485 4922200; 224.61599 1645349; 224.86088 70611; 225.03855 71816; 225.073 22990; 225.45792 22841; 225.51675 1696; 225.93792 9274; 226.09772 1466400; 226.14681 31621; 226.21812 1308888; 226.30855 1388159; 226.52708 59750; 226.69719 166138; 226.72031 2593299; 226.77913 23468; 227.26361 1586581; 227.43068 24762; 227.46311 994670; 227.50393 1912382; 227.53248 3835315; 227.78631 43173; 228.03803 786184; 228.33268 1603; 228.4738 102323; 228.55168 1345; 228.89822 970280; 229.00127 138012; 229.05283 6084319; 229.32937 20337; 229.45297 3427467; 229.57113 30151; 229.72206 295400; 229.8223 2272394; 229.86839 81699; 229.96813 28592; 230.04309 1288634; 230.13539 10282; 230.13701 22949020; 230.22399 4841108; 230.42925 2999812; 230.48559 187038; 230.57268 172944; 230.61957 7363077; 230.74296 32317; 231.15448 21116; 231.15733 2855694; 231.30757 41637; 231.33578 1123185; 231.379 41685; 231.61024 2703; 231.64076 29134; 231.7783 1413335; 231.88189 26235; 232.06595 1050352; 232.17655 1640210; 232.41688 597177; 232.42627 2303; 232.55386 164239; 232.7217 19017; 233.03131 21282; 233.1384 980894; 233.14397 9140; 233.19394 5616; 233.39837 631072; 233.49993 3472; 233.51243 2812238; 233.77738 1852600; 234.16247 838; 234.29989 20551; 234.87891 4852304; 234.96577 3070470; 235.26438 27557; 235.2843 1181; 235.41142 5700; 235.48483 2879394; 235.51504 2175; 235.58727 65273; 235.59952 37078; 236.05184 305281; 236.27814 114218; 236.52164 5631; 237.01845 20768; 237.20999 172335; 237.30621 132546; 237.78152 4300510; 237.83146 29843; 238.19697 42689; 238.22879 6048; 238.37563 328323; 238.42476 1711663; 238.86597 88081; 238.95044 79387; 239.08402 1462401; 239.12722 38524; 239.13934 1265065; 239.25435 19089; 239.53303 886463; 239.63705 28499; 239.66086 5707828; 239.7176 17565500; 239.88249 52778; 240.19966 21664; 240.26646 308884; 240.85899 1359953; 240.94907 60832; 241.12904 33254; 241.39561 939337; 241.43869 16208; 241.61971 23505; 241.77327 240; 241.80025 822; 241.88904 77209; 241.90698 26872; 241.99132 3051; 242.00986 820; 242.02416 360; 242.07091 1641898; 242.35886 3203061; 242.49005 1588154; 242.603 27408; 242.62516 1899275; 242.7098 37837; 242.71829 68451; 242.96553 6097; 243.04078 61726; 243.14845 35429; 243.18459 8949932; 243.19444 27168; 243.37915 23350; 243.53437 716239; 243.91068 7493; 244.09677 41936; 244.31055 204753; 244.40938 55078; 244.45573 806098; 244.77991 1735262; 244.93139 3582952; 245.42457 6065; 245.84691 150726; 246.1879 30891; 246.42307 1097648; 246.82854 172747; 246.9403 27183; 247.22573 14377; 247.2538 776496; 247.33176 1693561; 247.36499 2834729; 247.48858 26579; 247.69902 79530; 247.83801 3756104; 247.99313 5085; 248.57889 31626; 248.87178 859747; 249.08482 5486; 249.24291 297117; 249.25363 14193; 249.29522 49253; 249.55065 2190; 249.62519 58967; 249.63657 4045695; 250.45669 70069; 250.96332 76757; 251.01984 3860369; 251.04216 159303; 251.04815 1496656; 251.18568 2933; 251.44775 63286; 251.54936 18018461; 251.79028 698769; 252.04285 5632616; 252.36131 40889; 252.46245 2280543; 252.86471 26910; 253.18546 5846; 253.18773 72759; 253.34767 7435; 253.87581 3502; 253.93475 755373; 253.97924 1263401; 254.22465 79285; 254.41454 462915; 254.46777 4686213; 254.53488 47196; 254.54066 2485749; 254.85171 1156506; 254.86831 5264; 254.94223 24299; 255.01685 56109; 255.04624 67328; 255.08548 64282; 255.34613 9753; 255.37949 706; 255.64695 1498; 255.68194 23475; 255.68751 1606017; 255.72567 1323361; 256.76321 8761571; 256.7707 941525; 256.81478 3167; 257.10159 51438; 257.28658 53570; 257.39791 142436; 257.65541 7623; 258.0219 193933; 258.08583 20161410; 258.15412 2817089; 258.2568 8187; 258.60744 3860; 258.93132 46406; 259.25529 419262; 259.37445 26990; 259.46113 32698; 259.80378 94148; 259.94315 2052006; 259.95735 5601134; 260.14099 3877; 260.16263 31565; 260.39229 56570; 260.45131 26065; 260.80189 5452451; 260.93989 99209; 260.9871 5076493; 261.07731 35904; 261.43595 3230; 261.55119 72098; 261.58234 189897; 261.68783 2642292; 261.77276 65375; 261.80746 705; 261.82932 9226973; 261.94789 53995; 261.95577 3168386; 262.06139 722949; 262.13514 1862874; 262.1674 1990728; 262.43099 2654845; 262.46349 20700; 262.64333 1040350; 262.72333 55558; 262.88388 9159; 262.98606 20254; 263.2598 53811; 263.42602 9064; 263.5159 56765; 263.59461 1435151; 263.62656 907784; 263.84797 69962; 264.05288 1807325; 264.06829 2277051; 264.3547 213302; 264.85897 6920; 264.94367 44880; 264.97203 1912706; 265.1834 1128622; 265.30328 96855; 265.38038 4607980; 265.46654 5241; 265.70567 74658; 265.74417 60576; 265.76285 366493; 265.89588 4695; 265.94977 886756; 266.17605 1466026; 266.48227 68192; 266.56474 39580; 266.67801 8295; 266.73943 80169; 266.75586 904352; 266.96104 44020; 267.04089 729816; 267.39241 1162987; 267.9576 2780131; 268.17345 17859512; 268.22241 7073; 268.40332 38787; 268.41784 73692; 268.43987 23636; 268.52254 13166; 268.78796 8055; 268.92469 7220360; 269.23858 40511; 269.28303 78095; 269.30952 1207157; 269.3877 10441; 269.4406 450207; 269.62075 9689232; 269.72308 1415926; 269.88465 3316433; 269.91409 29508; 270.01764 52636; 270.0278 1480109; 270.10953 1331; 270.4617 5044; 270.69418 5978739; 270.82746 29535; 270.84499 2277; 271.02267 353449; 271.17963 5244711; 271.58143 27378; 271.60033 2072; 271.69861 62369; 271.78254 2687218; 271.83039 1234; 271.88831 55764; 272.03042 18261; 272.22854 66974; 272.23538 6386788; 272.31079 29829; 272.4415 53221; 272.49217 62079; 272.74975 5203063; 273.01595 8737685; 273.05167 73338; 273.75306 9262; 274.07662 385699; 274.1096 1240; 274.16294 3096106; 274.63406 1491627; 274.64594 296979; 274.92619 2987038; 274.93315 4135; 274.93718 4317461; 274.99531 16062; 275.22523 41912; 275.46559 26441; 275.76579 62133; 275.78139 1630800; 276.04343 7266793; 276.51827 35605; 276.56208 15620; 276.57272 477055; 276.69647 8670165; 276.76826 75621; 276.97558 28463; 277.13282 166216; 277.18959 1175984; 277.26725 26410; 277.30764 1298478; 277.34737 1644; 277.60233 63767; 277.63296 679267; 277.67052 14927; 277.7354 38617; 278.23557 26238; 278.40661 269542; 278.44214 9621423; 278.56142 7818; 278.58643 8649629; 278.62211 183760; 278.65538 4680171; 278.72225 58279; 279.55975 6260939; 279.57326 25070; 280.1141 677543; 280.28017 891497; 280.56894 7840766; 280.61189 3762051; 280.65336 2432126; 280.70443 3770023; 280.7935 16936; 280.84818 195948; 281.05067 4092040; 281.15241 29467; 281.34834 26456606; 281.47235 480344; 281.54802 79427; 281.56896 1079; 281.6939 34298; 281.7937 424758; 281.80001 25793; 281.81787 2513061; 282.18657 19380; 282.66876 46097; 282.88845 2495059; 283.07878 7600; 283.18651 6690; 283.67248 9301393; 283.94647 2919957; 284.12872 50121; 284.18375 44264; 285.01303 1381610; 285.09435 37712; 285.1421 22561; 285.45518 50562; 285.68696 9058549; 285.75808 42501; 285.98613 3758119; 286.14287 1956127; 286.40466 20400; 286.60665 42769; 286.73004 4042863; 286.81159 94557; 287.02937 33885; 287.27381 108432; 287.43509 7647; 287.63248 1317627; 287.63967 1002376; 287.64929 3401721; 287.69035 1138859; 288.03995 143465; 288.11835 1546; 288.3008 3344837; 288.68481 60546; 289.01292 66215; 289.20379 6151; 289.32688 62344; 289.368 135353; 289.43871 68654; 289.96876 27673; 290.06183 1318640; 290.26456 1127510; 290.32078 26867; 290.38124 29926; 290.50391 4348326; 290.51849 1568; 290.64097 4940546; 290.66151 27444734; 291.01251 51725; 291.03571 10194; 291.32768 21825; 291.66853 21832; 291.78028 69958; 291.88674 9438230; 292.0158 38394; 292.19833 27973; 292.83503 473538; 293.10641 46214; 293.15621 72694; 293.34587 23954639; 293.68607 179659; 293.69583 27380; 293.97173 983; 294.11528 858831; 294.38635 51659; 294.62092 79492; 294.67937 4638; 294.70524 2586445; 294.91854 41577; 295.26385 21773; 295.3451 2191861; 295.47279 71415; 295.78951 63310; 295.87668 17514; 295.91535 22395; 296.01944 436174; 296.28806 1199298; 296.32819 62009; 296.47143 59764; 296.50322 23272; 296.74902 66314; 297.11164 2129; 297.29513 8915475; 297.34703 1616993; 297.34729 13616; 297.4205 14404554; 297.503 1182913; 297.56184 24153; 297.76796 1093427; 297.90098 17357; 298.19219 51704; 298.44976 3237429; 298.49909 6557; 298.61494 35482; 298.78252 10941; 298.81559 11167; 298.87264 1872796; 299.16475 28172614; 299.52626 4079668; 299.56387 20133; 299.94132 9483660; 299.95561 7275; 300.05716 7030; 300.18268 79074; 300.46995 8310; 300.52085 62409; 301.34143 43471; 301.52892 66146; 301.69431 42339; 302.37469 12522; 303.21497 86410; 303.29376 25640; 303.39082 26722364; 303.5083 12263; 303.80744 39500; 303.9095 76058; 304.2464 7706; 304.29156 24549; 304.31541 4776; 304.51792 848883; 304.5661 8936731; 304.63011 1081888; 304.69582 4148710; 304.84841 22148; 305.045 4162549; 305.15602 20584; 305.16155 8355; 305.26022 645625; 305.56836 3193615; 305.58628 1277989; 305.63793 5191; 305.68768 48032; 305.75022 4153073; 306.0245 1863854; 306.14499 65624; 306.23314 37584; 306.35279 20464; 306.40033 7067; 306.41694 1963895; 306.50426 48677; 306.52074 2649; 306.58257 54740; 306.83147 802989; 306.83939 1327589; 307.68184 1481211; 307.79265 57840; 307.912 4195710; 308.13039 21019; 308.42663 587270; 308.68557 198907; 308.69743 139192; 308.72641 3542680; 308.77886 3965898; 309.1274 8056; 309.17913 10457; 309.21958 3696; 309.43562 106456; 309.61767 1697321; 310.1618 42081; 310.54961 1145177; 311.60446 197973; 311.67485 7600439; 311.9471 5941; 312.24128 1526033; 312.79362 25669; 312.83992 984104; 312.88303 27100; 313.26998 1661782; 313.64113 64725; 313.72909 1100722; 314.00377 1464; 314.31663 6069454; 314.32562 52078; 314.36294 1287709; 314.41463 980384; 314.58966 73654; 315.0394 18666; 315.04186 3221; 315.06479 547126; 315.18712 35475; 315.43079 2955; 315.5143 79416; 315.86154 2149544; 315.9149 8545108; 315.91558 4931; 315.93193 4565; 315.93302 5391844; 316.33538 1022699; 316.41459 28630; 316.42792 335794; 316.43077 22917495; 316.72765 9728; 317.18658 46214; 318.08088 38007; 318.12935 820258; 318.18637 1358; 318.21164 55288; 318.31104 23316; 318.68037 2745245; 319.34043 57564; 319.62552 14153; 319.65798 6419; 319.88706 1176675; 319.93557 92771; 320.01235 4958992; 320.15384 8668497; 320.34461 27376; 320.35761 1464521; 320.52347 17652; 320.75797 402320; 320.80676 67139; 320.83635 29100; 321.13828 20620; 321.26475 14183186; 321.66506 29307786; 321.74327 55743; 321.86897 162370; 322.59204 41545; 322.60461 6551307; 322.90321 20091; 322.94132 430881; 323.20871 1431; 323.32288 4715517; 323.48799 74080; 323.53871 54086; 323.88704 1239; 324.10208 7220; 324.3051 3332274; 324.35871 4592623; 324.39406 175984; 324.44255 139154; 324.68225 9144; 324.97287 6542; 324.97699 1736; 325.22169 71275; 325.44927 803718; 325.51894 5757; 325.7432 42515; 326.01859 6707187; 326.04199 41382; 326.24336 97527; 326.27279 31867; 326.4036 10336; 326.47474 1071939; 326.5263 33835; 326.61951 718996; 326.64248 65517; 326.66141 106871; 327.03202 4533814; 327.05879 8211; 327.25385 1855231; 327.29532 85897; 327.29834 2644; 327.52869 2896700; 327.80219 9392266; 327.91237 25627; 328.06793 155636; 328.11538 1479680; 328.2647 2979; 328.6388 1301731; 328.95326 82940; 328.97737 29616; 329.13463 1088187; 329.7276 1363839; 329.80687 484673; 329.81765 838426; 329.83952 3449620; 330.10552 5880; 330.21854 655034; 330.24502 7035; 330.26444 3632; 330.33867 7761; 331.45833 60937; 331.51486 1908663; 331.68094 57607; 331.72216 78299; 332.03844 23859; 332.29507 5213; 333.42272 78981; 333.53601 1456; 333.61303 22433; 334.01072 2233935; 334.06419 21271; 334.11308 330485; 334.34777 719246; 334.36261 67343; 334.65177 3214; 336.1729 49894; 336.7279 38669; 336.8079 4364159; 337.69119 8654; 337.8089 1824927; 337.85304 29281; 338.21479 34940; 338.75669 52303; 339.08165 650712; 339.15634 1033168; 339.28282 1312681; 339.57524 3097; 339.98475 9331322; 340.25113 104736; 340.79181 15724768; 340.82694 27361; 340.85934 4413866; 340.89125 28958; 341.12879 11019; 341.15032 715634; 341.37216 162546; 342.01978 15472; 342.27008 4283; 342.36255 49906; 342.46717 20223; 342.64899 5813762; 342.81097 9694697; 342.91091 43053; 343.33171 178933; 343.80444 198036; 343.98995 3127108; 344.17286 29502519; 344.23368 1411663; 344.49963 4760; 344.69234 67236; 345.0117 17138; 345.08031 8558080; 345.16519 3100254; 345.52151 77112; 345.93848 8954055; 346.22597 5346456; 346.40333 951; 346.42523 673582; 346.49235 24204; 346.54236 11675747; 346.77322 3578605; 347.16213 2562042; 347.20342 392; 347.27744 4853; 347.39806 10953; 347.48757 3958; 347.51231 44422; 347.62168 1152; 347.73997 49281; 347.9276 1975950; 348.07217 6818131; 348.63031 44481; 348.68876 294466; 348.732 1997542; 348.73483 1101312; 348.8903 55774; 349.19995 22762; 349.30121 156397; 349.72267 18000; 349.86627 49487; 350.02559 3380561; 350.12377 1165493; 350.46539 778106; 350.54964 21136; 350.93284 2798435; 351.03189 34597; 351.13042 75838; 351.3517 80827; 351.78244 842088; 351.88377 14181; 352.21589 4082363; 352.35072 48383; 352.65664 1982; 353.01691 52512; 353.26685 147218; 353.52664 24068; 353.56703 63837; 354.17265 11131401; 354.21133 49713; 354.31563 65767; 354.48043 4705774; 354.67383 2376; 354.96612 179311; 355.08603 5031; 355.17151 14008; 355.51549 20177; 355.55565 40919; 355.5738 1289693; 355.61193 9067367; 355.67639 43687; 355.95106 1082993; 356.88792 71490; 356.91212 5296220; 357.13807 2107048; 357.23067 7207; 357.53409 10173304; 357.59543 39701; 357.60208 6142810; 357.65128 1039; 357.66211 14039; 357.77701 76299; 357.8516 1221; 358.02485 2236; 358.07249 31410; 358.10705 732747; 358.27168 3861326; 358.40783 27918; 358.5074 6091; 358.53188 6266666; 358.59971 1059044; 358.92978 109083; 359.20058 24867; 359.40518 1887923; 359.44317 25148; 359.57196 1357762; 359.66697 1466028; 359.9454 54160; 360.04836 28654; 360.14476 50732; 360.15196 5708868; 360.32691 1417817; 360.33212 961864; 360.37417 124648; 360.66758 20204; 360.68442 8243695; 360.69233 2556501; 360.97817 3134931; 361.19411 1235806; 361.41886 77042; 361.61277 239409; 361.63578 9287; 362.18745 36596; 362.29286 234909; 362.29347 2446386; 362.66847 5829; 362.83876 984662; 362.98895 55099; 363.11901 885702; 363.53866 78998; 363.76247 33950; 363.78258 34815; 363.82964 25371; 364.18288 1163573; 364.24291 1327072; 364.36601 25150; 364.66215 3028; 364.91611 9622142; 364.92704 40165; 364.94448 2617; 365.03453 3386004; 365.13275 625889; 365.15565 36445; 365.16517 39525; 365.40739 31760; 365.51748 811; 365.60112 1519984; 365.76842 7385507; 365.96877 24991; 366.02616 20766; 366.13343 78856; 367.29535 135713; 367.67301 19205; 367.75045 2; 368.1019 65784; 368.25609 1050122; 368.27797 6487881; 368.3219 8421427; 368.32885 495259; 368.61765 877432; 368.74799 5665198; 368.83931 80803; 368.90805 37376; 369.17216 9358; 369.29959 85639; 369.57708 1505; 369.63165 4284640; 369.64621 18837; 369.68508 20732814; 369.71601 26530; 369.88218 1247; 370.27566 23630643; 370.35627 44165; 370.40559 4992268; 370.64522 8979; 370.79084 2642023; 370.85986 1623; 370.91255 1366466; 370.97398 31819; 371.30615 3241782; 371.51189 180332; 371.70594 2048047; 371.77534 25287; 371.89354 2785326; 372.21598 6928342; 372.72651 51587; 372.89354 8342; 372.92238 614949; 373.85859 8179; 373.85862 5513030; 373.88893 61487; 373.98479 28195; 374.05525 49689; 374.26437 11758; 374.33413 1963; 374.39814 54529; 374.46168 1051112; 374.80211 5660; 374.82883 63614; 374.85483 25600; 374.92078 2526172; 375.07082 6093971; 375.21384 2446644; 375.36132 195690; 375.58488 1052944; 375.92699 11424; 376.23459 10645; 376.25446 684; 376.35271 45666; 376.39734 1619529; 376.61994 1439046; 377.01524 41183; 377.1532 20174; 377.21999 136236; 377.22072 60263; 377.39571 76265; 377.52981 3312; 377.57863 3607415; 377.61586 9492; 377.75709 98738; 377.78091 1658208; 378.12414 23363; 378.24075 1070547; 378.27783 40604; 378.30291 414246; 378.64797 3690746; 378.69824 8013; 378.74502 78134; 378.82337 6232; 379.14959 26124790; 379.16934 55784; 379.19415 411510; 379.27262 19156407; 379.53902 26268; 379.74172 70419; 380.03612 21464; 380.57382 6569443; 380.5864 59283; 380.64234 65663; 380.86036 26023; 381.53314 21346; 381.89363 4438; 382.0833 31207; 382.44872 14990; 382.57391 9060380; 382.95993 26420; 383.51146 4840; 383.52399 94969; 383.52734 2936660; 383.8591 8339373; 383.86776 25012; 384.0463 61054; 384.05303 55017; 384.1315 131854; 384.29927 142459; 384.63484 34558; 384.72362 67154; 384.77229 27718; 384.84356 70278; 385.0379 4377301; 385.35283 3584; 385.58121 2048; 385.59326 5171060; 385.84234 29161; 386.46598 40; 386.5338 4552764; 386.54836 34008; 386.55538 2199610; 386.70795 2361474; 386.76544 6474; 386.7671 1150587; 386.8053 6512; 387.01248 59110; 387.02958 453929; 387.07156 21819; 387.8215 63360; 387.83055 61451; 387.96286 23045501; 388.00695 20335; 388.18365 7675; 388.22577 1091; 388.56947 2746; 388.84085 28037; 389.12954 6730; 389.38603 2321130; 389.47898 34369; 389.50143 7195183; 389.56854 1358756; 390.01594 10579; 390.13703 42863; 390.18362 7057; 390.4865 3095272; 390.67299 3387; 390.74666 41328; 391.29943 50140; 391.32588 9229935; 391.47922 5092189; 391.48326 67818; 391.70522 9435514; 391.90687 55598; 392.05368 40096; 392.17749 78301; 392.95699 593440; 393.38551 452; 393.3902 6935; 393.53338 9183053; 393.61364 5722561; 393.64511 7720; 393.6613 55105; 394.46611 3994382; 394.5186 8819; 394.85586 5983; 394.8857 54427; 395.11903 1984011; 395.15812 57228; 395.32534 8973329; 395.51428 1870887; 395.99138 29182; 396.57378 7753402; 396.5834 42620; 396.82579 147231; 396.89291 2882; 397.09089 1317; 397.16389 1260444; 397.17367 28013; 397.21297 26837147; 397.48986 24745046; 397.61059 16452; 398.01986 4052; 398.05559 1059257; 398.24746 8246316; 398.40296 2542541; 398.49659 477; 398.50261 390776; 398.51332 15740; 398.51747 39801; 398.58653 152018; 398.7241 5834; 398.82169 218967; 398.83439 25000; 398.8417 7001; 398.85318 61510; 399.05628 73488; 399.18577 6114; 399.26118 3844266; 399.69142 25465; 399.99061 2082; 400.06592 67257; 400.28737 2294272; 400.28804 64955; 400.33687 14097; 400.62413 22983591; 401.06517 307133; 401.32518 4447; 401.47466 6338917; 401.67628 1503887; 401.73946 48437; 401.78743 194060; 402.46751 55407; 402.54486 63094; 402.79309 1963348; 403.16128 57340; 403.33623 45186; 403.53855 5671126; 403.60477 748; 403.62727 27049; 403.68183 22464; 403.73501 16576; 404.37038 72347; 404.61126 1205069; 404.64845 8966948; 404.75629 3660437; 404.8083 38609; 405.01448 4687719; 405.10161 159228; 405.17418 22063; 405.78473 128447; 405.83771 909639; 406.09637 1958812; 406.09668 2437; 406.48726 2844328; 406.62132 7118; 407.40389 9403; 407.40463 4842728; 407.43365 2766859; 407.70722 78444; 408.04211 2783516; 408.16692 21046; 408.33858 1077149; 408.35258 10716; 408.37817 4096554; 408.39049 3471; 408.50976 21994; 408.62073 38305; 408.71829 4792549; 409.1784 147076; 409.85536 31917; 409.90243 1601; 410.33415 1334352; 410.46555 48097; 410.53921 1411592; 411.04431 33928; 411.16169 2364339; 411.16465 140838; 411.53444 1723; 411.69935 315775; 411.78855 7871; 411.83192 67940; 411.83747 3015017; 411.93769 4546831; 411.9621 67032; 412.03188 3511; 412.04786 46862; 412.22534 44143; 412.3419 3902662; 412.63941 290059; 412.74428 3979; 412.96709 96896; 413.10266 1200914; 413.59913 4370; 413.67535 47626; 413.92934 1338691; 414.24237 1185317; 414.82936 157353; 415.07399 32936; 415.18162 68771; 415.2159 42522; 415.86961 1049198; 415.92149 4038; 415.96338 6864; 416.04834 36043; 416.07604 67321; 416.08804 22784; 416.17913 93765; 416.51325 3443597; 416.55522 118333; 416.6135 190421; 416.68666 1438899; 417.10772 146704; 417.50898 67335; 417.66761 8097603; 417.75112 67695; 417.75733 61648; 417.86116 199418; 418.14121 7005035; 418.33906 77868; 418.39458 416079; 418.40934 22587; 418.57464 78096; 418.84736 4630572; 418.92573 28377049; 418.99017 25365; 418.99187 90816; 419.06657 4384; 419.21598 746414; 419.50338 2313; 420.15 195121; 420.17591 319403; 420.43886 1984611; 420.76442 29198; 420.80338 751705; 421.07187 1258900; 421.14027 24451; 421.2456 1879988; 421.45716 478710; 421.60583 3693956; 421.66191 61799; 421.8762 7232; 422.21724 8685; 422.22354 1018519; 422.29648 7176814; 422.4571 65157; 422.58973 13795; 422.96749 1645; 422.9801 46233; 423.01318 7125; 423.2438 63811; 423.33527 3300347; 423.55225 1199428; 423.60254 1254943; 423.76342 70685; 423.8044 6604006; 423.97236 30933; 424.06139 6402426; 424.10921 191769; 424.77345 1003; 424.81422 1215923; 424.81798 1361148; 424.85588 90234; 425.01254 1037540; 425.0761 6335215; 425.53518 3378; 425.63053 27840; 425.63955 422330; 425.8831 1982950; 425.95109 56151; 426.1056 6133; 426.13908 1340012; 426.25597 20430; 426.53533 9706274; 426.8571 78723; 427.10355 1017384; 427.19214 54313; 427.32097 2309050; 427.51181 654948; 427.65526 2902775; 427.73728 61797; 428.22033 24836; 428.22248 32924; 428.30801 29251; 428.39267 19398; 428.48098 2987062; 428.83127 5424; 428.98146 53348; 429.00819 5403; 429.01117 1827969; 429.51672 29863; 429.51755 20378; 429.53723 40792; 429.59192 1146424; 429.70663 415195; 429.85918 20989; 429.96181 4409119; 429.97892 122831; 430.1528 78465; 430.37565 52506; 430.41299 931; 431.34152 1542821; 431.53797 660507; 431.80579 34007; 432.03361 1409621; 432.18166 1570596; 432.19862 17977; 432.21569 20566; 432.45152 29569; 432.8168 1986077; 432.90083 985563; 432.94832 24148; 433.03173 3993478; 433.16193 217735; 433.23981 24582; 433.39642 73457; 433.78806 21755; 434.00232 25085; 434.42651 17721; 434.53853 126215; 434.72085 5700; 434.95599 10633987; 435.25244 32053; 435.34239 2946417; 435.47796 178035; 435.52649 38375; 435.58101 1409851; 435.60917 5470; 435.64689 4967446; 435.76829 623138; 436.17788 33997; 436.51882 373218; 436.69272 3953650; 436.96226 123170; 437.31928 6453; 437.48771 77059; 437.67015 49099; 437.74778 7894; 438.01334 41135; 438.18217 1395; 438.28291 70475; 438.33908 4330405; 438.69738 69959; 438.92749 9972; 439.30349 61612; 439.3257 3048; 439.32765 79849; 439.58854 157226; 439.71653 5869; 439.75061 5719185; 440.58007 574032; 440.60293 3381889; 440.60637 9145750; 441.18459 79697; 441.5473 19561; 442.03523 3328784; 442.15188 76535; 442.16457 1976524; 442.22565 1781798; 442.24956 1130138; 442.37637 9108471; 442.60304 7229; 442.76568 15222368; 442.97429 73777; 443.02004 996584; 443.03425 27555; 443.77812 2695607; 443.83032 6859639; 444.05385 26764; 444.1735 38007; 444.7426 152581; 445.1104 6196; 445.22784 75570; 445.47282 178413; 445.66151 19801; 445.74093 38124; 445.90642 100883; 445.93367 30008; 446.21611 753199; 446.23446 8551; 446.55155 966789; 447.07666 54663; 447.24315 71406; 447.41032 2219; 447.46075 12436; 447.78622 2293; 447.97554 71456; 448.32399 23181; 448.52299 9344; 448.7657 947315; 449.00424 16383107; 449.19808 8656231; 449.4192 456367; 449.45513 5679; 449.4683 39377; 449.77842 20665927; 449.83806 75390; 449.87696 77600; 449.98484 42528; 449.99827 46645; 450.38071 2827627; 450.56961 24180990; 450.77872 74113; 450.89927 5203684; 450.91284 1378329; 451.00756 7101165; 451.15385 7254; 451.3406 24172; 451.39371 3191; 451.425 1888246; 451.65868 519286; 451.83268 1835062; 452.09226 1124867; 452.58423 246197; 452.71612 5076; 452.88483 24447; 453.24335 223232; 453.31756 1348389; 453.5707 79039; 454.20194 53857; 454.48052 3105; 454.64662 2254609; 454.88454 2870542; 454.93797 44214; 455.05802 1265813; 455.46069 3302447; 455.55592 68793; 455.57582 13731294; 456.0741 48734; 456.41785 19570269; 456.63008 4343; 456.84998 2137239; 457.33069 6401125; 457.58304 77966; 457.62903 44833; 457.88509 23872; 457.96165 16417; 458.22144 5604; 458.25241 53547; 458.31041 402662; 458.45152 1519662; 458.53824 304692; 458.72309 5786217; 458.72955 6536; 458.74625 77014; 458.84393 1697141; 459.08255 1555232; 459.60521 5926394; 459.63453 54823; 459.78244 41980; 459.96309 11072; 460.4042 5915; 460.82309 40137; 461.1584 2309742; 461.30384 777712; 461.37805 41948; 461.50307 25362; 461.68805 7185095; 461.7986 7936765; 462.01667 23314; 462.09176 34552; 462.16052 18835; 462.2812 22121; 463.05173 6025893; 463.18436 18638254; 463.21375 3117334; 463.76657 751; 463.87987 4301; 464.61772 2294207; 464.82124 169113; 464.85794 15771870; 465.20734 6486; 465.60382 552491; 465.81985 9571; 466.0535 16841; 466.18552 8434255; 466.198 2005852; 466.20987 6007; 466.50497 4072883; 466.52561 1441140; 466.89851 153506; 466.95655 61536; 467.12308 27266; 467.70706 6175; 468.20964 31246; 468.43752 1439705; 468.46237 7382; 468.87876 602635; 468.88029 29461; 468.99313 54873; 469.10391 69572; 469.30831 24198; 469.41114 506765; 469.42681 8084; 469.81811 250162; 470.04529 55162; 470.13717 6209266; 470.32017 8279; 470.52687 1311042; 470.62506 4786; 470.62596 1977831; 470.74354 76383; 471.01414 34492; 471.16742 21259; 471.53586 20715; 471.60912 11694; 471.89585 24783; 471.94403 1275935; 471.9559 5791065; 472.11325 8094; 472.18449 3096893; 472.45079 71089; 472.60581 60288; 472.76686 71406; 472.92348 191184; 473.19782 38046; 473.34452 198; 473.50989 61246; 473.58338 21559; 473.68291 38979; 473.87205 219372; 473.9088 2902745; 474.2158 4013326; 474.77122 7781415; 474.92379 1945750; 475.07089 1160; 475.08002 9262; 475.35542 42252; 475.41476 1636737; 475.49915 3583087; 475.76702 144761; 475.82251 52068; 475.99104 1215818; 476.27216 105586; 476.4279 3553963; 476.86842 77024; 477.09163 37076; 477.09675 8816247; 477.43371 15431; 477.63991 3604282; 477.65045 182236; 477.7239 20167; 477.78922 8535611; 477.8007 24490; 477.91209 708171; 478.02545 4616; 478.07391 6939351; 478.10414 314; 478.18292 25836; 478.24762 9358321; 478.4284 888046; 478.61863 43232; 478.97652 50461; 479.06476 9266; 479.07153 68412; 479.17766 1281542; 479.28137 41633; 479.4744 11161; 479.86995 10040; 480.06829 24451; 480.29732 5427; 480.70634 59999; 480.7498 54832; 480.93328 272540; 481.14193 8443; 481.45642 6446; 481.54684 1345; 481.76192 21896; 481.7633 17779; 481.82624 28369; 482.02774 6166; 482.06466 28754; 482.16492 9268; 482.17208 3607; 482.59572 3754514; 482.6366 2933266; 482.67746 26187; 482.70796 195812; 482.72528 52416; 482.94512 21946; 483.2193 755035; 483.22091 1895139; 483.27558 891187; 483.28536 134434; 483.4758 6827622; 483.48123 62816; 483.61623 4733991; 484.30998 1755914; 484.39584 3476621; 484.88736 67450; 484.95616 8773969; 485.07788 21752; 485.29446 5875; 485.34615 1646359; 485.49457 7682007; 485.68369 8654257; 485.94245 3448018; 486.5629 12329; 486.65578 5237; 486.68674 8899; 486.87563 1688476; 487.04833 2296476; 487.22428 9194289; 487.82974 1659; 487.89578 4548168; 487.98516 74409; 488.0607 46851; 488.3805 3462; 488.45193 1871801; 488.51697 103565; 488.626 1974470; 488.68287 863052; 488.85533 15038; 488.99991 4980528; 489.0824 26423911; 489.53932 110633; 489.54844 40913; 489.62006 2244406; 489.73897 4782406; 489.96866 938; 490.20313 33893; 490.51183 15850205; 490.51774 70671; 490.59145 1916968; 490.63236 45747; 490.89879 22612; 490.91267 4563; 490.9666 3197069; 491.12336 24169; 491.28717 67742; 491.38646 39706; 491.47058 2235; 491.61587 28985; 491.91307 4468; 491.98951 1768330; 492.2106 79592; 492.39206 2529485; 492.45071 66426; 492.66608 51147; 492.86909 1600497; 492.90341 116639; 493.06219 1128913; 493.11259 28319; 493.15188 44726; 493.17093 122073; 493.59881 4780496; 493.71287 9140; 493.9364 848101; 494.0307 34219; 494.21163 34242; 494.29105 687126; 494.54674 1285242; 494.8397 37908; 494.88514 40915; 494.95851 1421737; 494.96986 17056; 495.20526 7600716; 495.21626 708576; 495.45032 62052; 495.45533 3465; 495.76732 323201; 495.90906 8155; 496.00162 7761; 496.11718 4375; 496.12308 73961; 496.25755 9893; 496.31011 3345; 496.47631 27396; 496.64323 5427; 496.75019 3623432; 496.90261 21235; 497.03459 2134; 497.12925 39616; 497.22238 34246; 497.33676 378; 497.48867 2669; 498.1487 45007; 498.1696 4336868; 498.44088 9873096; 498.66275 5264698; 498.91385 5168; 499.03032 67332; 499.03321 5091; 499.12258 1701318; 499.48491 43295; 499.58512 53082; 499.65271 1131175; 499.90023 2411628 +<3, 6>: 0.03866 4015; 0.06672 26538; 0.07148 28940; 0.07391 822532; 0.12144 8254; 0.12614 979430; 0.20992 16655; 0.4987 12046; 0.68733 7835; 1.20661 1691555; 1.42853 1100583; 1.91787 13182948; 1.93553 77330; 2.0215 1289476; 2.33613 12197; 2.47861 6883; 2.55361 1850663; 2.69754 9973104; 2.83302 8559; 2.91684 1362608; 3.03353 3148594; 3.30302 1736776; 3.52861 780037; 3.64522 809120; 3.95683 57592; 4.10982 52362; 4.37459 18970; 4.40011 38033; 4.6247 23545; 5.16001 61067; 5.26388 163671; 5.26416 60049; 5.55779 369434; 6.1126 65470; 6.23639 9959445; 6.27912 15043; 6.36853 2042; 6.58131 157950; 6.68162 731990; 6.71211 2750993; 6.85791 70011; 6.88143 33032; 6.88222 12958; 7.1123 1601594; 7.17635 849000; 7.28067 41507; 7.32337 77847; 7.44513 77194; 7.69228 29217; 7.77362 56495; 7.80067 3197184; 8.07113 41292; 8.12998 43337; 8.31249 4658; 8.34703 35186; 8.43589 5248; 8.78337 7428; 8.80901 1611507; 9.01724 18389; 9.03784 1388182; 9.57599 4681611; 9.7886 2448; 9.92257 1504297; 10.36539 28494; 10.37959 127521; 10.49605 8520; 10.49607 1417014; 10.62458 4051195; 10.67953 46414; 10.71985 1134; 10.72716 39046; 10.95567 23066; 10.95593 23671; 11.23203 892825; 11.28221 2784; 11.7785 9010; 11.85362 63293; 11.93811 3698802; 12.01478 1938126; 12.0848 29161; 12.1023 4595667; 12.28815 6949840; 12.47147 72188; 12.5336 47457; 12.65864 124590; 12.89599 41272; 12.91498 3473710; 12.97471 79911; 13.15546 1343396; 13.18996 72510; 13.58549 114866; 13.99716 56166; 14.26692 70850; 14.34089 1808895; 14.52567 21859; 14.56351 487554; 14.6254 34128; 14.83833 53399; 15.20721 1259804; 15.41313 741110; 15.42038 14666; 15.57733 135854; 15.93939 4655305; 16.08109 14418; 16.60701 152709; 16.84328 4605585; 16.95438 25631; 17.00881 2366; 17.27365 43391; 17.40424 4990; 18.30469 983208; 18.31367 53214; 18.50447 38780; 18.54289 4823191; 18.61409 32523; 19.09063 75161; 19.34194 13804; 19.5753 29965; 19.65962 6043055; 19.66667 2994649; 19.72035 38477; 19.88226 1002; 19.9234 28534; 20.22202 74875; 20.56254 68767; 21.21879 4039517; 21.30971 26366; 21.4178 1845979; 21.54716 365344; 21.64767 4530224; 22.05711 60653; 22.21453 82770; 22.24698 7551; 22.76987 5670; 23.05057 25847; 23.22132 3188000; 23.2479 28592; 23.26728 5854947; 23.78386 1702302; 23.85144 3205235; 24.05716 11646754; 24.18567 12816; 24.2606 1222612; 24.45033 118332; 24.63562 2411137; 24.79818 20362; 25.00191 27041; 25.15163 22457; 25.55381 26203; 25.60843 1254193; 25.63785 6860; 25.73976 246846; 26.0814 6372; 26.36686 35163; 26.41142 4913; 27.27454 358377; 27.3661 32354; 27.56599 28188; 27.69665 33856; 27.82439 24843; 27.88292 41995; 27.89788 62812; 28.13402 1255601; 28.37771 114156; 28.4352 8148838; 28.44073 8585116; 28.8919 69486; 29.04117 35621; 29.28119 925287; 29.53913 919619; 29.55089 9215112; 29.74193 40901; 29.81616 5422; 29.83715 7524023; 30.1239 311171; 30.30562 20192; 30.74556 29774344; 30.78561 6189625; 30.83466 33322; 30.84396 3867580; 31.54768 771667; 31.60359 3192; 31.81463 21110; 32.03306 69871; 32.25416 48650; 32.41948 54900; 32.43581 114756; 32.47221 39313; 32.64644 6508; 32.67126 6967; 32.7347 143522; 32.77963 179664; 32.79094 29234; 33.04101 5056094; 33.11556 328868; 33.37509 7262; 33.54684 5729352; 33.6044 415297; 33.74515 5045543; 33.8534 48735; 34.14166 1551; 34.23821 1016544; 34.5212 683820; 34.76428 59764; 34.94431 79116; 35.28345 22719; 35.75006 137171; 35.75427 55161; 35.7954 356970; 35.89591 6698; 36.02088 29899; 36.16747 3339911; 36.17458 1218549; 36.55074 2511; 36.63892 27469928; 36.94163 6029060; 36.97868 9160; 37.01456 48906; 37.19459 259; 37.20052 4326; 37.22946 31437; 37.23261 1863112; 37.23881 678517; 37.36395 58398; 37.40343 61433; 37.59228 931915; 38.01909 1664518; 38.25092 776429; 38.44764 5809; 38.79863 21035; 38.90435 1343074; 39.31854 4417; 39.43814 79042; 39.75025 37468; 40.17444 9385104; 40.36031 1052136; 40.38055 1037675; 40.5204 8314033; 40.79247 40848; 40.81288 25528; 40.91599 503318; 40.95293 2739596; 40.98329 3590193; 41.05304 190208; 41.4705 1590767; 41.55995 142248; 41.88698 63253; 42.0922 454250; 42.185 610679; 42.20452 79501; 42.41463 1235821; 42.56727 37992; 42.88688 3332; 43.08828 25070; 43.29789 1708666; 43.31003 130359; 43.34974 72324; 43.89124 67956; 44.1551 12500961; 44.57823 2741; 44.67619 196479; 44.67848 43090; 44.76471 70769; 45.1168 75561; 45.64389 47775; 45.71997 9039628; 45.77231 1884251; 46.02567 9555536; 46.06229 30827; 46.06802 137532; 46.07245 8733; 46.18002 93868; 46.21918 6292; 46.39843 8718; 46.8498 2708; 46.85093 153068; 47.08493 5671032; 47.1371 182660; 47.14157 598779; 47.20457 20596; 47.2174 780386; 47.23414 198102; 47.23634 166354; 47.26389 25091; 47.28731 1364604; 47.37676 12254; 47.43355 11564; 47.54484 59269; 47.554 1148251; 47.89522 77354; 47.91059 23771100; 48.07488 614976; 48.36804 4996923; 48.42566 8021793; 48.50738 65875; 48.62059 7557; 48.71651 18244; 48.98524 25293; 49.02094 1194435; 49.10252 6136458; 49.24237 19365; 49.27049 28028; 49.28859 5652; 49.34139 5320; 49.67574 4021633; 49.76857 1834776; 49.78979 1888561; 49.99171 922687; 50.21658 55377; 50.24409 26299; 50.69957 3588579; 50.78245 97074; 51.14166 431831; 51.19179 271747; 51.29652 11182224; 51.29729 53767; 51.72335 2678; 51.77905 28016021; 51.86814 1562442; 51.92525 53717; 51.93832 4830; 52.31671 769254; 52.44873 59550; 52.52221 23516; 52.6054 27059; 52.98994 7771; 53.16809 67947; 53.21438 26845; 53.37517 2860319; 53.74032 25719; 53.76791 12454111; 53.77664 29232; 53.87007 1596042; 53.89433 9120259; 53.9475 50949; 54.07162 461136; 54.26622 71668; 54.34029 45411; 54.93955 75444; 55.25502 544829; 55.5815 37766; 55.63105 6752; 55.65097 715728; 55.67834 2352242; 55.90085 31367; 56.21686 6665; 56.27862 9796; 56.6842 1169; 56.78756 121549; 56.87003 16688; 56.99243 59387; 57.22696 507799; 57.45294 3925; 57.71937 17576; 57.85483 1091408; 57.91004 5114; 58.15609 134599; 58.22179 13603; 58.62454 4854651; 58.78858 27729; 58.95972 7216382; 59.22086 55411; 59.47473 7289915; 59.64637 15778; 60.05736 65334; 60.11376 72107; 60.20289 53036; 60.25991 1715947; 60.59452 989797; 61.13902 4299; 61.16897 63363; 61.19642 29557; 61.40939 4042367; 61.43866 2622554; 61.44993 224777; 61.71279 29385; 61.79138 18310803; 61.8933 445478; 61.95497 496661; 62.15686 23413; 62.43647 3002; 62.50256 71494; 62.58403 5542; 62.60635 59080; 62.63417 30957; 62.71347 571026; 62.88467 65232; 63.31682 25207; 63.61885 71017; 63.73811 19431455; 64.31751 63194; 64.49221 549; 64.64694 752145; 64.68738 18920; 64.83925 1339182; 64.84368 26699; 65.29624 39633; 65.42923 3380097; 65.4627 8276817; 65.4731 13553; 65.69808 2136134; 65.77446 2689083; 65.87441 40388; 66.09748 6823136; 66.222 3663732; 66.31088 29200; 66.70001 44230; 66.71814 25220; 66.78647 1708630; 66.92611 64882; 67.04615 32529; 67.06593 4738; 67.09167 347956; 67.22476 642; 67.3313 149112; 67.82971 107555; 68.06658 345648; 68.13153 11787228; 68.22366 496; 68.47056 18419; 68.47064 8806788; 68.71107 1967459; 69.02946 141940; 69.24305 987022; 69.4563 20346; 69.47899 528041; 69.5163 140027; 69.68377 1592203; 69.89281 123951; 69.94204 5736294; 70.24156 3982; 70.39197 8864; 70.46597 546; 70.55392 1038650; 70.59049 85983; 70.65376 29682849; 70.68427 650299; 70.82466 40549; 71.03107 21666; 71.05211 17191; 71.12616 649482; 71.49286 23034; 71.58003 5556632; 71.64492 1431537; 72.1023 26716; 72.4918 3642; 72.86678 31490; 73.2657 22842; 73.33291 59162; 73.37003 28213; 73.44998 898637; 73.71957 56556; 73.83475 4404; 73.9701 24498; 73.97237 66482; 74.05918 54033; 74.46826 1840525; 74.47787 5663; 74.69277 1146491; 74.76714 41202; 74.96044 1014; 75.17606 170414; 75.19335 27443; 75.20087 4001; 75.45923 1282218; 75.50628 1785302; 75.53008 23579; 75.61423 3296353; 75.74199 504237; 75.86738 20277; 76.26194 16309; 76.271 5637; 76.30414 35811; 76.37369 6008; 76.76691 128403; 76.83868 9112918; 77.00342 9195; 77.30486 78255; 77.60267 892; 77.88268 5579; 78.21177 25401404; 78.56163 114641; 78.72889 182766; 78.78484 3445; 78.99723 61382; 79.18652 1016969; 79.24711 1753095; 79.88763 4127342; 79.89703 61918; 80.11991 8944; 80.17707 64904; 80.5049 3177445; 80.68955 8593; 80.69509 34236; 80.77846 15571; 81.05665 41121; 81.28067 1747009; 82.01342 9289; 82.04246 10466; 82.05076 79656; 82.23069 257260; 82.30897 6082276; 82.40018 26661; 82.40915 1032; 82.43278 1106108; 82.50192 7537263; 82.61771 3439; 82.62829 222368; 82.89844 20843; 83.49903 111103; 83.70382 20612; 83.77427 23905; 83.99971 1584; 84.23135 4949204; 84.31539 523651; 84.48162 995000; 84.56931 30313; 84.62937 1100; 85.06192 39690; 85.13694 32975; 85.31938 80115; 85.41506 335351; 85.53305 11948999; 85.91394 5005364; 86.4057 9807; 86.44117 20538; 86.67843 198574; 86.77668 1840; 87.43271 120641; 87.58105 509333; 87.63301 22484; 87.69439 22658; 87.75247 1363470; 87.87965 29226; 87.92938 1978597; 88.06776 396102; 88.0965 46456; 88.14575 78187; 88.32299 583508; 88.86918 13686; 89.87898 6951; 89.88116 3258694; 89.96703 71255; 89.97156 2209276; 90.24703 6201731; 90.26145 69491; 90.34419 66285; 90.75547 42818; 90.78342 145765; 90.85101 644070; 90.93997 109683; 90.9857 104868; 90.98676 33391; 91.05991 75171; 91.38943 31996; 91.41504 4087717; 91.51836 16063316; 91.87623 73967; 91.88154 2983; 92.36344 53870; 92.41239 1284230; 92.42797 57936; 92.53064 1838335; 93.02372 6005; 93.22971 23027; 93.37218 14047; 93.56584 8585956; 94.17405 1662062; 94.40365 1108222; 94.56651 767766; 94.93285 177801; 95.14766 58804; 95.3528 7022204; 96.06535 3829863; 96.24291 194983; 96.45402 692486; 96.82471 21271; 96.89921 29495; 96.92847 2404328; 97.273 197989; 97.41046 7398; 97.41489 9417533; 97.4211 1346745; 97.44215 70130; 97.50642 24426; 97.54298 803490; 97.73343 243567; 97.84519 3354556; 98.11588 3519400; 98.14846 3223; 98.61095 1315759; 98.62832 4372; 99.12736 93832; 99.2027 170329; 99.22761 1368714; 99.31802 31558; 99.84829 31492; 100.08236 802840; 100.17178 64815; 100.39154 651157; 100.47041 398; 100.52743 56091; 100.5528 7656414; 100.70578 1547805; 101.16464 17809; 101.38748 312605; 101.40957 37791; 101.73208 39410; 101.73688 46029; 101.80693 8560; 101.83962 1113; 102.16771 26127; 102.31388 1095917; 102.52667 179005; 102.65769 8889683; 102.74344 4968197; 103.01734 4128243; 103.07951 38665; 103.53178 57706; 103.72845 61251; 104.23354 1813377; 104.2857 5045397; 104.32246 176411; 104.46407 7406; 104.63372 3937401; 104.66301 3848463; 104.6675 1078757; 104.97986 70660; 105.70139 34140; 105.85201 27899; 105.90512 27820; 105.90514 1010906; 106.08192 1085310; 106.14674 13790; 106.19134 6725; 106.29166 73698; 106.48488 4956552; 106.51111 22686; 106.58446 270298; 106.68563 10904473; 106.73035 4273642; 106.88201 45112; 107.06934 1126938; 107.46276 44795; 107.47055 7416087; 107.51232 169; 107.7006 1552118; 107.82436 140411; 107.86137 26223; 107.99657 72924; 108.2356 4853; 108.28517 2289; 108.31546 47292; 108.65988 41213; 109.15624 1185869; 109.67584 28311; 109.85058 4332282; 110.05811 180684; 110.41948 20754124; 110.43027 6088; 110.45163 3908; 110.63944 259855; 110.67502 24694; 110.74398 918167; 111.36859 75149; 111.45011 4612; 111.69382 28415834; 111.70358 2026154; 111.79748 1408684; 112.10457 22817284; 112.27455 1061421; 112.67116 1095690; 113.00024 1904235; 113.23373 1764671; 113.31484 53447; 113.41448 53740; 113.50295 22210; 113.7167 540243; 113.77127 1875680; 113.78355 1460368; 113.87893 27737; 114.07652 4693273; 114.25451 8872; 114.72469 414006; 114.74259 77266; 114.77938 833921; 114.95581 2088880; 114.96875 1299055; 115.28552 78464; 115.79522 51041; 116.00523 548885; 116.02287 1230; 116.14212 4680045; 116.17285 4691; 116.32386 2085; 116.55406 42526; 116.71702 4478106; 116.72343 277157; 116.73019 1506437; 116.85255 634791; 116.98456 21467; 117.0744 1682395; 117.33182 6550177; 117.35835 794428; 117.40892 9556; 117.4717 7784; 117.93072 3542468; 118.07088 37674; 118.1119 96024; 118.36275 1926681; 118.47254 662858; 118.50292 2113571; 118.50929 4578830; 118.57013 52545; 118.61446 55204; 118.7117 26667; 118.91705 37675; 118.98636 1039709; 119.00798 48011; 120.25983 1952898; 120.50444 26577; 120.84772 47758; 120.86096 48279; 121.11801 1831884; 121.30135 2407; 121.48231 431347; 121.97224 2702; 122.31667 41080; 123.16303 897988; 123.31951 25527; 123.53113 37735; 123.65659 59031; 123.77211 28667409; 123.83232 1229450; 123.87613 21207; 124.20271 720208; 124.21902 177302; 124.22584 30796; 124.28986 9657; 124.34693 1856803; 124.38324 1586389; 124.57926 53166; 124.73172 502141; 124.84285 17783; 125.04003 29286532; 125.04823 1368228; 125.082 4306046; 125.08893 1365109; 125.37746 6010; 125.55158 1667733; 125.64605 6934; 125.78869 8459630; 125.81541 25419; 125.85897 58641; 126.01677 12632; 126.11901 3659; 126.22646 3002456; 126.5632 28090; 126.60702 9427; 126.62979 75250; 127.18053 581858; 127.18504 74015; 127.57123 15146; 127.75036 23923; 128.03192 1623413; 128.07266 76933; 128.13371 9623226; 128.75556 7492551; 128.82142 148341; 128.92221 28609; 128.93187 44577; 128.95596 4501; 129.2335 1861268; 129.65171 6678; 129.66898 53563; 129.86692 51661; 129.88623 28293; 130.10037 82558; 130.13773 39407; 130.33133 806749; 130.39176 35062; 130.70083 88920; 130.94942 48119; 131.2409 4356198; 131.25607 63555; 131.60968 7282; 131.80508 607743; 131.83559 5959108; 132.2415 1245887; 132.69538 88758; 132.91811 64553; 133.05718 521247; 133.50868 5813466; 133.54848 73821; 134.16647 76050; 134.26758 29058; 134.46083 1740129; 134.49194 226059; 134.54021 13464; 134.70392 13792; 134.83509 31445; 135.1068 9231876; 135.24298 54778; 135.37666 1052; 135.41799 14998; 135.46799 6609; 135.49063 28462; 136.26624 1272904; 136.49667 63790; 136.54661 63228; 136.65201 2235; 137.05549 152721; 137.16392 23848; 137.53457 3081904; 137.66892 26726; 137.92823 938083; 138.06896 49737; 138.16753 1572285; 138.55882 16113; 138.64564 11536859; 138.70537 10055366; 139.56265 546114; 139.57666 65195; 139.69925 31082; 139.71472 136065; 139.94298 20852; 140.45195 13871699; 140.5322 169033; 140.88323 3450189; 141.05614 75253; 141.1007 165339; 141.55889 9100986; 141.98345 1268229; 142.16995 1935; 142.27133 7347227; 142.41689 54134; 142.60029 60132; 142.61604 15294; 142.86251 5074801; 143.01362 40045; 143.05073 712720; 143.26693 26887; 143.28209 12676; 143.31178 939807; 143.35713 57048; 143.46443 36093; 143.67071 7365; 143.77952 50521; 144.43885 1942091; 144.68153 1877369; 144.92195 35189; 144.93066 1867; 145.32055 459811; 145.34642 30925; 145.50334 9403206; 145.72872 3785881; 145.84519 6219225; 146.05342 1471774; 146.28448 26331345; 146.35406 1849598; 146.40585 27806; 146.4177 7595424; 146.90562 3964042; 147.17119 46475; 147.37394 53521; 147.42467 3255; 147.49575 595; 147.50578 1440196; 147.56745 150416; 147.57528 130493; 147.74892 15181; 148.4973 42011; 148.58761 26635080; 148.68013 5688981; 148.7049 4420556; 148.78975 26971; 149.06455 158587; 149.17537 65705; 149.31707 25961; 149.4794 2976644; 149.53021 76722; 150.04432 518421; 150.18214 2522889; 150.23153 21383; 150.33478 65957; 150.35322 5868709; 150.43264 3598983; 150.45126 894636; 150.46224 74669; 150.67502 120334; 150.74721 54521; 151.10418 66495; 151.15823 1825253; 151.44061 28813; 151.45512 236381; 151.60071 4177996; 151.83526 60697; 152.09989 868499; 152.32991 9590; 152.37515 23017; 152.81657 20280; 152.92947 14842; 153.21528 41585; 153.32021 463330; 153.41005 458842; 153.45469 440207; 153.63945 861186; 153.82867 75376; 154.34354 683658; 154.41264 961459; 154.56671 21730822; 154.6057 81033; 154.65457 62141; 154.75955 1040557; 154.77274 2973; 154.88404 12659; 155.09135 75337; 155.13507 1257928; 155.2332 8926; 155.29733 3534900; 155.3203 503271; 155.36721 3366682; 155.47699 56207; 155.53883 2162409; 155.79115 4074492; 156.02952 4909003; 156.16766 24408; 156.19454 162173; 156.54575 43443; 156.67275 4101863; 156.68757 8887662; 156.70131 34799; 156.91825 727264; 156.93383 1493253; 157.03484 97570; 157.03612 79570; 157.12104 46888; 157.22129 1636196; 157.33602 7493; 157.39882 70199; 157.5124 5068119; 157.53551 5764; 157.85334 74413; 157.88472 2381; 158.20729 5279820; 158.27905 1614681; 158.29092 3204916; 158.39185 3552473; 158.45836 106630; 158.49587 44608; 158.85931 21147; 159.01887 3101; 159.04569 1893; 159.1024 31039; 159.3104 2480897; 159.69129 74574; 159.74615 12707; 159.87662 711; 159.90379 20419933; 159.91787 552654; 159.92441 910319; 160.31834 30691; 160.35073 2471486; 160.529 7177; 160.69376 53750; 160.9014 53501; 161.08358 3789754; 161.56679 22833; 161.66222 182525; 161.84026 1573010; 162.10948 5934045; 162.31175 1219508; 162.48924 1095285; 162.56922 140338; 162.97117 394717; 163.24061 21059197; 164.03801 15431; 164.12025 357967; 164.21384 4920; 164.36601 197721; 164.5762 18326; 164.68234 1364166; 164.93268 9865283; 164.97885 6435; 165.20205 330391; 165.34417 24238; 165.38053 5351; 165.53751 147199; 165.60069 5691687; 165.61832 58296; 165.72579 4804945; 165.81617 665495; 166.09853 4851082; 166.58864 49920; 167.02049 59244; 167.21014 8137568; 167.28702 9337648; 167.33652 70217; 167.38795 54818; 167.56098 1698799; 167.64305 511530; 167.6725 4249; 167.78252 28502; 167.97855 79612; 168.15753 3379090; 168.17501 15960849; 168.4781 24894; 168.71709 2841238; 168.9069 195131; 169.48195 30991; 169.48828 8288694; 170.11802 1452252; 170.25469 164175; 170.29484 5706442; 170.29767 6544; 170.72566 1884455; 171.11548 6457; 171.30391 30480; 171.49468 5623310; 171.53261 2184; 171.68997 637; 171.83203 1023; 171.86822 20258666; 172.15549 47484; 172.18534 46250; 172.42637 33365; 172.74696 1890292; 172.91497 66868; 172.98291 19678582; 173.1152 21706; 173.29794 5119; 173.47832 3939521; 173.77784 2830983; 174.04959 62726; 174.44297 5097; 174.47161 26312; 175.05906 1792018; 175.48558 910459; 175.50446 2240309; 175.52882 8245; 175.5456 63899; 175.59748 3397319; 175.77041 42760; 175.80504 4490429; 175.85983 18343261; 175.88121 2550677; 175.96634 24489; 176.03136 21235; 176.15938 77565; 176.19417 19829; 177.03414 24107; 177.11249 4323; 177.48294 8621146; 177.7142 787762; 177.83327 6818; 178.15803 19388; 178.39682 286392; 178.42307 29124; 178.62969 44976; 178.68303 10471270; 178.70826 21780; 178.71708 944490; 178.73577 5872059; 178.8787 95784; 178.94553 1497954; 179.09624 1198356; 179.09794 63581; 179.15827 1990953; 179.23919 1475689; 179.82551 4327; 180.19372 7440398; 180.39391 71594; 180.48157 1213235; 180.53219 47154; 180.64054 27413; 181.239 41279; 181.31073 820803; 181.46312 879107; 181.60396 1040734; 181.63512 22813; 181.6526 55106; 181.83147 294; 181.91326 1856509; 182.05674 9865; 182.06534 34930; 182.50302 2362097; 182.65352 62639; 182.67546 1799166; 182.71761 20927; 182.93262 736875; 183.18314 52906; 183.22164 3777327; 183.3598 122508; 183.3819 49386; 183.51616 3327523; 183.5211 60247; 184.18327 2830599; 184.22789 1962331; 184.51858 13056110; 184.74782 43520; 184.80977 3590265; 184.8294 4748074; 184.96787 78288; 185.44556 1386968; 185.51756 1028357; 185.59945 23923; 185.74308 1794031; 186.22365 18983; 186.50087 26839; 186.52221 7938; 186.65749 124093; 186.66489 7624021; 186.88788 69732; 187.00989 12979; 187.12295 707179; 187.31455 2374891; 187.3624 47376; 187.38356 1746191; 187.55297 28080; 187.57813 1184223; 187.89106 254116; 188.05118 3709508; 188.07314 12763; 188.14195 603; 188.41369 2247798; 188.48944 10203; 188.55485 8117; 188.57916 508683; 188.62887 24515; 189.22616 70950; 189.34058 1052950; 189.51979 1043966; 189.82819 2773186; 190.47009 20086; 190.76299 37531; 190.78612 603067; 190.93516 7658; 191.30808 11265; 191.36954 28666; 191.56304 195631; 191.58313 34037; 191.83163 54404; 191.85228 25085; 192.40462 153721; 192.57572 28044; 192.64042 28321; 193.18656 471311; 193.5846 620; 193.62656 34105; 193.90912 3962; 194.02114 9288495; 194.13063 46765; 194.24557 23136; 194.32187 46656; 194.62408 15136; 194.87936 6019; 195.08285 421661; 195.32087 1233; 195.36736 46216; 195.59233 21564; 196.19329 627007; 196.34544 4270; 196.39679 171245; 196.61616 3072012; 196.8298 18284; 196.83685 15901; 197.02005 53220; 197.07185 21939209; 197.21176 329788; 197.54853 1821871; 198.12931 161502; 198.19848 1171867; 198.72719 1634841; 198.79924 151867; 198.83906 9274; 198.96274 14964; 199.28211 93026; 199.35069 28257; 199.53967 1961910; 199.836 1796116; 200.1057 46332; 200.28012 202201; 200.29143 20600; 200.37126 3628159; 200.50126 2682467; 200.56776 2913493; 200.68259 995055; 200.69656 1139062; 200.76874 49377; 200.97162 25978; 201.1203 15924; 201.35882 989446; 201.38112 2554482; 201.60124 2731; 201.72853 49142; 201.89541 1199; 202.10135 21297; 202.12934 8384; 202.55561 1004050; 202.64479 25088; 202.71758 2451442; 202.92117 34212; 202.99523 36978; 203.08006 74427; 203.15694 5529; 203.30471 24065; 203.4494 5012690; 204.3633 5442; 204.48408 60312; 204.65049 57844; 204.67543 65884; 204.71568 8319252; 204.77907 726804; 205.11088 32253; 205.27668 1633373; 205.41661 11148430; 205.44703 75507; 205.54007 56705; 206.33902 29203; 206.39876 39014; 206.45554 1295; 206.46462 1958361; 206.58793 18631; 206.60387 3171; 206.63838 74868; 206.78867 4882; 207.0189 9410; 207.01901 94826; 207.59568 206435; 207.87798 3750830; 207.97747 1845272; 208.51627 103811; 208.78843 3652; 209.13857 57042; 209.53829 79918; 209.57731 42800; 209.67296 189527; 209.67312 1495143; 209.7673 3495; 209.85527 27099; 210.71908 45174; 210.8251 54378; 210.89927 53301; 210.92703 1832; 210.93378 8851; 210.97259 23019; 211.09046 213230; 211.13912 1124; 211.31204 2681776; 211.37909 39605; 211.47214 13411768; 211.82777 26691; 211.86938 6248; 211.99429 21191; 212.26318 3678737; 212.39436 30590; 212.39735 1061728; 212.58178 2884; 212.64649 25920; 212.80802 3668204; 212.85358 30822; 212.94301 3275825; 212.96021 4596; 213.01459 1077683; 213.05802 95065; 213.12415 1922; 213.15396 2927102; 213.41035 194848; 213.42943 6315995; 213.45881 6389; 213.85643 3982242; 213.88546 26298; 214.18542 179348; 214.45033 75395; 214.78896 27163; 214.79364 2925595; 214.85511 50991; 215.00458 49050; 215.07652 19520; 215.18223 757484; 215.79972 4111; 216.57343 7305; 216.75722 523; 217.05378 1025565; 217.14447 458911; 217.27501 155441; 217.56116 25598; 217.56614 188732; 217.77431 141101; 217.78182 46438; 217.92218 3240640; 218.02749 1872719; 218.03287 27297; 218.15175 724884; 218.20958 51420; 218.49618 7543132; 218.58326 9549240; 218.59937 3059; 218.82964 52261; 218.88219 42754; 219.05204 20604; 219.16811 1321434; 219.20901 28083; 219.27894 5503; 219.27964 512096; 219.51595 10156; 219.56147 5491020; 219.80028 341; 219.97584 31257; 220.13012 31502; 220.19249 4312631; 220.56638 25939; 220.64297 3046525; 220.90055 10493047; 220.90708 1104; 220.92776 1749975; 221.27179 1979174; 221.48572 2525005; 221.59113 11218; 221.64445 15539; 221.68618 24279; 221.75502 131918; 221.7777 4703265; 221.87157 59210; 222.2938 11703; 222.54279 46371; 222.6532 206724; 222.67817 17343; 222.86337 75455; 222.94875 32552; 223.0482 5899; 223.60382 4533826; 223.69019 8791; 223.98225 55049; 224.14043 4742; 224.15839 14091; 224.27731 25564277; 224.27901 27370; 224.53246 57590; 225.06932 1830161; 225.21644 70942; 225.27911 162353; 225.3903 41249; 225.40476 897915; 225.49216 24502; 225.84403 141122; 226.95528 10052054; 226.98013 3076550; 227.06954 49946; 227.12624 18121; 227.15574 29132; 227.82121 19929; 227.82203 4368823; 227.99956 1961; 228.26663 21522; 228.29131 31946; 228.53503 46832; 228.53876 1450901; 228.62515 890057; 228.63099 24257677; 228.67184 3906824; 229.16191 13001; 229.42528 78201; 229.60995 193730; 229.67666 7098; 229.87343 70226; 229.9018 1673730; 230.31272 741; 230.4911 4588; 230.53115 173959; 230.55688 76942; 230.67014 1742186; 231.23016 14996; 231.36357 5664; 231.39707 53390; 231.67711 389596; 232.03139 20328; 232.09107 75379; 232.31333 1414; 232.41438 1702075; 232.56704 1762135; 232.68476 52334; 232.83821 14891; 232.97312 23537; 233.08921 4575985; 233.38844 348715; 233.55987 55060; 233.56912 32242; 233.63651 1641; 233.66885 6216; 233.80342 3016077; 234.2747 14799; 234.30321 66095; 234.33785 71971; 234.38311 684868; 234.58137 887383; 235.1318 47579; 235.57916 2713; 235.61959 69443; 235.70097 29558; 235.70839 313878; 235.72587 28437; 236.15068 519947; 236.26476 24163; 236.78468 56417; 236.9148 9852795; 236.95098 46678; 237.60687 1414068; 237.87632 12030; 238.25956 663269; 238.6149 6012452; 238.9459 22062; 239.28797 18499; 239.38301 22301; 239.39694 7121042; 239.77239 11269; 240.1375 14681; 240.69246 38434; 240.71345 69075; 241.09784 24890; 241.26004 38184; 241.26336 3806; 241.74914 39728; 241.78448 22045; 241.97232 9356485; 241.97527 65678; 242.06784 1940635; 242.08241 5735050; 242.33903 1491873; 242.37158 28301; 242.42992 33140; 242.44833 28551; 243.19401 42425; 243.41534 244573; 243.82263 1925301; 244.03472 27185; 244.09926 8681; 244.33326 21148; 244.41378 473177; 244.43079 128629; 244.47967 72624; 244.93645 3162395; 245.08601 93825; 245.23881 1303236; 245.32574 6402; 245.39362 6878851; 245.51874 61865; 245.62938 77279; 245.64072 5326; 245.84602 1863443; 245.86767 9584; 245.96597 27855; 245.97548 282286; 246.03004 27035; 246.16712 22385; 246.29062 2235488; 246.46303 2532; 246.73631 9797; 246.74815 76885; 247.07772 60382; 247.13973 5651597; 247.46507 1455964; 247.57299 2358; 247.73066 154260; 248.10089 7966045; 248.18899 198043; 248.29226 6310; 248.36177 72541; 249.03419 3552119; 249.15162 4387139; 249.16541 1133047; 249.27739 1755627; 249.99396 41522; 250.10082 5252; 250.18907 62617; 250.2888 17526; 250.34012 51000; 250.69874 77360; 250.82248 9378719; 251.08438 9715; 251.13118 51964; 251.24879 1743574; 251.83674 43028; 252.14766 5308477; 252.92199 53358; 253.11866 2153874; 253.24181 28893; 253.44047 25859100; 253.46357 1195521; 253.52693 2186; 253.75594 21750; 253.92622 12500; 254.26082 62371; 254.43254 62266; 254.83291 834362; 254.9859 287713; 255.09137 84144; 255.36449 20484; 255.47044 48399; 255.91342 15109; 255.92081 1944433; 255.95575 70022; 256.20033 67260; 256.29284 37604; 256.39705 1214124; 256.4015 1955; 256.61266 26930; 256.77687 48863; 256.95519 42301; 257.13171 67838; 257.46188 35914; 257.79972 19203; 258.06061 8597457; 258.57443 2686975; 258.67415 100501; 258.85949 70497; 258.86086 7679534; 259.07276 1790260; 259.3163 154246; 259.59004 40950; 259.94915 4575; 259.95939 63058; 260.2936 3437402; 260.62002 817323; 260.89967 51877; 260.93366 5001; 260.96279 273755; 261.03481 913390; 261.43714 9780279; 261.46776 6402; 261.73257 6273; 261.83146 37217; 261.99669 644806; 262.13723 764408; 262.64035 73748; 262.65009 8354742; 262.70391 17107192; 262.79379 3670380; 262.80879 1623; 262.84638 4462582; 263.39246 22996; 263.54694 12688; 263.58786 945213; 263.67917 509127; 263.6995 1924968; 263.86916 160979; 263.9834 17863; 263.99647 902998; 264.10812 71144; 264.14758 3678; 264.378 2901398; 264.46397 59234; 264.46868 700418; 264.66116 14078; 264.68055 67484; 264.68882 26167935; 264.84686 5943498; 264.89259 71653; 265.04298 53884; 265.38031 1462; 265.40342 3778; 265.48866 43487; 265.62003 27010; 265.71348 28434; 265.97245 11662; 266.28008 814; 266.3681 158643; 266.39023 6031317; 266.64463 58027; 266.7865 25824; 267.05456 2963443; 267.21367 25792; 267.30172 39511; 267.37593 4384700; 267.42626 27463; 267.4754 10020; 267.50013 9759844; 267.69859 179891; 267.80752 1086206; 267.95203 72099; 268.00621 26331560; 268.20178 63177; 268.20195 262686; 268.223 12836; 268.89387 1924080; 269.29475 10381; 269.29798 1731523; 269.31752 4113; 269.55267 134552; 269.91809 27250101; 270.01724 63080; 270.1592 1139181; 270.17418 1154234; 270.3391 145060; 270.5691 9458591; 270.64259 28880; 271.05262 26031; 271.0886 20734; 271.51123 29820; 271.83527 1341056; 271.92813 12822; 272.00831 68463; 272.1075 12777; 272.15756 170247; 272.58669 147406; 272.63072 3599; 272.84522 1436152; 273.67197 3621967; 273.72837 14024; 273.75968 1250198; 273.93577 5437; 274.01128 10236; 274.11987 24136; 274.19478 35520; 274.24351 14836; 274.28606 46712; 274.31888 31518; 274.40204 50801; 274.7235 32058; 275.01691 7751; 275.13123 617620; 275.16309 59278; 275.20779 23514; 275.44246 9787; 275.84184 2524989; 275.85165 29; 276.00908 688296; 276.04323 925595; 276.24691 337672; 276.72175 117818; 276.75299 28600; 276.75339 28035; 277.08481 4731; 277.1076 5559; 277.24474 26136; 277.29009 79910; 277.29384 168812; 277.37857 1649601; 277.52204 30949; 277.55142 13172; 277.80143 5601; 277.88687 361483; 278.43705 7621005; 278.70397 557143; 279.21646 472488; 279.39714 5895093; 279.54866 37513; 279.55596 29071; 280.47162 569614; 280.53798 25907; 280.5655 9194388; 280.57337 6009090; 280.83367 4723570; 280.84358 42253; 280.89404 1873681; 280.97392 946915; 281.04043 17353; 281.35901 985; 281.41819 9069945; 281.45287 72976; 281.55069 30566; 281.86068 48506; 282.02155 7965; 282.25923 2287107; 282.50238 58524; 282.65565 69237; 282.7324 1721167; 282.73432 15301171; 283.02914 78154; 283.05942 308720; 283.0814 59977; 283.22154 6867; 283.47869 13888379; 283.49549 17990; 283.58301 902938; 284.07213 13446; 284.22704 1450106; 284.42976 3339630; 284.59771 3; 284.84458 18036; 285.27439 1377934; 285.3205 20777; 285.37415 4613558; 285.53112 192824; 285.89428 10883625; 285.98049 6022; 287.11838 1918480; 287.35779 1233414; 287.45755 1427067; 287.47477 9739531; 287.62163 7567; 287.74198 61832; 287.88697 8519537; 287.89323 1406529; 288.04708 11596; 288.16685 1369967; 288.23725 859; 288.26943 5475; 288.54137 2570897; 288.70407 9622; 288.71235 3925478; 289.20856 4035220; 289.293 28313856; 289.3425 5305802; 289.38748 12414; 289.45349 8002; 289.61676 60602; 289.68231 51468; 289.97762 61131; 290.07282 79389; 290.37621 29700546; 290.85483 8874957; 290.8895 3979945; 290.93797 25870; 291.03438 4764756; 291.28063 135196; 291.5243 46552; 291.9848 106127; 293.87615 2683344; 294.32364 37796; 294.44623 65822; 294.49064 19222; 294.49113 58787; 294.49744 368453; 294.50571 21554031; 294.81043 1913362; 294.91822 4562; 294.96975 68325; 295.32712 31466; 295.38356 119873; 295.59366 25846247; 295.66016 645990; 296.34072 1660583; 296.61567 381572; 296.71489 563517; 296.95423 29356; 297.09874 2830; 297.38773 58865; 297.51633 57512; 297.94009 478310; 298.31889 4195945; 298.42685 5345; 298.51135 20502598; 298.53566 9274; 298.66276 4188; 298.85198 1936325; 299.14787 13556643; 299.4179 28102; 299.46284 18740; 299.60368 7912035; 299.72791 14433; 299.78564 1920228; 299.88738 729; 300.01302 29736; 300.05037 56402; 300.05604 150385; 300.47291 6552774; 300.73116 1393431; 300.9306 2960812; 300.97142 16716; 301.22652 2651; 301.30843 6384; 301.5106 922; 301.56462 8752141; 301.8733 61823; 302.13694 65862; 302.52651 6325037; 302.83255 20538; 303.31201 1260612; 303.35395 8764; 304.25247 953079; 304.91553 741250; 305.27027 17648; 305.29067 7856643; 305.49821 21269; 305.58331 1726663; 305.62464 13236; 306.01487 52148; 306.02397 16341; 306.02658 22006; 306.0334 8023177; 306.28988 20170; 306.40998 53703; 306.59969 5253737; 306.71814 3298418; 306.72921 191105; 306.76778 3532; 306.80626 63285; 306.89304 2013; 306.99583 16247; 307.23977 1143550; 307.40149 55387; 307.48433 3905; 307.51382 7830; 307.76211 9728; 307.84778 462714; 308.68911 3346; 309.10173 15160; 309.16057 9015; 309.28032 2994; 309.35676 21586; 309.60292 717409; 309.6859 505012; 310.32518 433097; 310.51363 23308; 310.56194 7581; 310.58417 26574; 310.99189 213; 311.43272 1754637; 311.72928 2115031; 311.79861 5905199; 312.02907 41303; 312.10821 36932; 312.22278 8344966; 312.28524 27236486; 312.59782 10912709; 312.6617 45059; 312.93165 1084640; 313.1546 29366; 313.64329 2660049; 313.71622 3987; 314.07332 4361964; 314.46919 64478; 314.59064 4059386; 314.86855 28898; 314.88115 128170; 315.10567 135180; 315.10664 2431; 315.11602 608006; 315.24203 1903449; 315.34168 43425; 315.4236 5333; 315.45233 78070; 315.75876 38445; 315.97589 61912; 315.97784 1626664; 316.05994 50826; 316.06731 1422111; 316.0739 9600117; 316.12519 3718; 316.31215 28285; 316.35886 188340; 316.48434 39607; 316.58376 7783876; 316.66946 14759; 316.70153 1331066; 316.93303 1142; 317.16115 65367; 317.33903 5966; 317.36433 33294; 317.38416 8400; 317.3983 30275; 317.81574 44493; 317.99817 71864; 318.48658 1419801; 318.68502 1157193; 319.17669 1501570; 319.34067 28980; 319.36775 138177; 319.5281 21690; 319.54002 76198; 319.667 4312902; 319.72228 17352; 320.27773 4307673; 320.6943 62520; 320.71529 4005; 320.89862 39811; 320.97197 471858; 320.99023 30135; 321.10101 1115665; 321.12605 78110; 321.13927 66706; 321.36847 44188; 321.46564 396146; 321.55867 34979; 321.60135 19070; 321.69581 15547; 321.77516 5457; 321.83211 7347998; 321.93645 11256; 321.93931 4034; 321.97638 129676; 322.0318 442181; 322.16749 900946; 322.61572 21089256; 322.7439 24756; 322.8066 46379; 322.84597 9964123; 322.90823 74622; 322.9935 72637; 323.04392 38831; 323.51092 68416; 323.60588 1927503; 323.85136 22155; 323.86673 273425; 324.0631 74322; 324.49771 73; 324.53261 7616; 324.68195 1232115; 325.0176 1240446; 325.16259 21140889; 325.17181 3817161; 325.34091 364; 325.34693 51897; 325.52881 69845; 325.54985 2542; 325.70077 5327; 326.24264 60206; 326.24376 4819667; 326.44641 1577128; 326.49991 482629; 326.88976 162187; 326.9452 121645; 327.1223 9658; 327.21789 490545; 327.22209 2347; 327.23157 932900; 327.67159 9508680; 327.67318 2785; 327.85842 5498298; 327.95116 35290; 328.03389 959535; 328.12518 2087; 328.21939 282894; 328.82464 467; 328.8605 1514424; 328.98615 1079; 329.12612 40374; 329.43256 38956; 330.5668 33470; 330.63809 512333; 330.74409 755174; 330.86288 620581; 330.9869 7512; 331.35065 11435; 331.80328 4744420; 331.91485 1012180; 331.91715 61753; 332.29258 647063; 332.57716 43261; 333.19723 4248837; 333.29491 76866; 333.31663 26847; 333.40507 57470; 333.46179 10194; 333.60291 17207568; 333.70333 27848; 333.92866 27862; 334.43088 1306053; 334.69339 174279; 334.71434 154776; 334.7152 44035; 335.12342 161714; 335.56209 2115049; 335.87633 39958; 335.89987 899587; 335.94881 19362962; 335.99678 3683628; 336.17411 67589; 336.46008 12390; 336.8595 21098; 336.92083 7049; 337.30743 5264; 337.32331 6820; 337.34855 199945; 337.5938 8834443; 337.60382 1964640; 337.60691 30450; 337.74892 4823; 338.33282 7845; 338.65473 4718; 338.95857 24396; 339.17495 26392; 339.48438 13543; 339.53724 3095345; 339.73108 680086; 339.81848 2992; 340.17922 21586; 340.21204 4534883; 340.44217 127281; 340.58639 27722445; 340.66464 2314062; 341.58613 57068; 341.76212 2224698; 342.00024 41035; 342.02941 4036924; 342.07758 97083; 342.12504 816664; 342.19274 50208; 342.63161 34891; 342.68692 29812; 342.98645 14039; 342.99136 79050; 343.087 4314724; 343.09842 688373; 343.21233 74497; 343.27375 55574; 343.32528 1075987; 343.39071 12093; 343.45585 2899902; 343.56827 4930197; 343.56997 25570; 343.76897 672829; 343.78572 1095975; 343.79084 43765; 343.94031 36840; 344.03765 6729820; 344.52707 7270; 344.55941 7471; 344.59787 419707; 344.82725 4467510; 344.87697 75874; 344.94733 973529; 345.0738 4446; 345.08042 2428591; 345.29501 42198; 345.62333 50870; 345.89399 64181; 346.22281 58369; 346.2356 20391; 346.26908 70974; 346.63872 6162546; 346.74145 710365; 346.90081 3351; 346.93875 57436; 347.60972 27497; 347.82113 764749; 347.85022 9966507; 347.85151 4066902; 348.48066 1669495; 348.50198 74072; 348.71237 13393; 348.76077 69079; 349.08813 34250; 349.26475 17399; 349.53475 100937; 349.66653 1842387; 349.89339 7704076; 350.11412 4103; 350.17985 29998; 350.22004 53776; 350.64755 112799; 351.16613 45643; 351.68649 148312; 351.80465 63; 352.19407 8254380; 352.30872 1013; 352.32383 1327961; 352.75833 54764; 353.14652 3839718; 353.16924 57667; 353.20046 1849455; 353.20634 596390; 353.30702 39921; 353.62615 4345182; 353.68957 16158; 354.12428 2796725; 354.20205 4869; 354.65969 907; 354.88759 12771; 355.04643 1948523; 355.22869 58926; 355.32263 199894; 355.32296 45109; 355.36253 10275939; 355.9369 57816; 356.06274 4812528; 356.36011 4659385; 356.5103 8624026; 356.51516 1924681; 357.01447 286003; 357.35286 3884; 357.42618 4360498; 357.48899 3701192; 357.54339 44060; 357.69669 46389; 357.83142 13052; 357.84448 22955; 358.02277 1438395; 358.03827 706; 358.17042 6510; 358.20715 117214; 358.27194 1074201; 358.73682 7938; 358.98233 9347518; 358.98722 23711; 359.08357 3450057; 359.08675 54296; 359.22365 57788; 359.57804 3573892; 359.61281 4140058; 359.7031 1740893; 359.73257 373767; 359.76385 1017072; 359.90545 1447; 359.90771 29453; 359.94557 4492710; 359.99195 29389; 360.0963 2700805; 360.10855 31038; 360.49615 20136; 360.52175 85943; 360.53425 4858692; 360.76454 1349274; 360.91026 74925; 361.0094 4064901; 361.38994 1950461; 361.78405 49539; 361.85702 1778593; 362.09254 53486; 362.13164 4092; 362.2755 4859458; 362.99983 4377; 363.15309 3614793; 363.37089 525047; 363.40698 63473; 363.44068 79018; 364.47358 7730; 364.48113 20564; 364.57708 1907679; 364.61318 430; 364.65187 2690; 364.77648 29453; 364.82543 698260; 365.08464 5703152; 365.17439 27066; 365.17995 41721; 365.2172 21632; 365.36705 672566; 365.72999 24071; 365.75899 58556; 365.84199 9839182; 366.02374 5432; 366.14071 91046; 366.20374 7097; 366.47577 139753; 366.69965 5375; 366.75117 5012795; 367.04741 92136; 367.11058 1071847; 367.2663 19194; 367.43831 59622; 368.34698 160011; 368.36169 1306736; 368.3784 1926002; 368.75518 8540199; 368.87378 43237; 368.89553 39623; 368.91863 9130825; 369.03941 3343172; 369.35506 3315325; 369.43642 602452; 369.98101 22498; 370.03003 11669186; 370.64498 442830; 370.73035 452121; 370.77349 36705; 370.77414 11139; 370.95346 21976; 371.19452 4949738; 371.21096 6321; 371.29582 175221; 371.71884 73395; 371.91984 65985; 372.10331 21113; 372.77445 4265363; 372.93441 79; 373.30252 1289129; 373.64789 2894263; 373.65525 3833790; 373.75233 73745; 373.84793 38322; 374.46076 422772; 374.78098 11751; 374.81776 26262042; 374.983 44570; 375.09104 1121286; 375.5906 6355; 375.66645 1321532; 376.2848 33378; 376.29952 646562; 376.79516 472450; 376.84096 511541; 376.96319 190851; 377.08739 13120; 377.11983 9338726; 377.131 11168; 377.9543 289066; 378.11784 57208; 378.25222 3626; 378.28552 4314195; 378.66184 730150; 378.73211 320195; 378.82082 2360341; 378.98592 16172; 379.1173 31910; 379.13917 4669; 379.42537 97617; 379.5008 3493296; 379.89424 166089; 379.93818 19103; 380.29251 48048; 380.32311 74830; 380.6865 8236057; 380.70834 39751; 380.98804 264; 381.21876 8995; 381.305 1455616; 381.31554 23172; 381.56527 64295; 381.89632 58499; 381.94206 27276; 381.96821 6413140; 382.13756 189005; 382.20933 55947; 382.45115 1709990; 382.70581 31716; 382.87834 315506; 383.16858 190143; 383.1935 1859604; 383.66272 1166262; 383.86417 3545892; 383.8707 95944; 383.96657 724680; 384.05842 28912; 384.09657 72342; 384.12072 573346; 384.23318 49303; 384.23856 5904570; 384.3901 977532; 384.61203 3280730; 384.69278 309440; 384.85953 44671; 384.9238 3993; 385.14009 20423; 385.46173 6395; 385.77351 1677961; 385.80474 67935; 385.94881 29508; 386.08199 51746; 386.2781 13584; 386.30077 921783; 386.4064 67447; 386.42678 1800058; 386.80724 147600; 387.04655 22622; 387.12423 176635; 387.13163 1655768; 387.276 28526612; 387.3163 2435701; 387.89308 1977; 388.36335 70753; 388.37874 687858; 388.4044 138377; 388.46499 538339; 388.50068 3496718; 388.58045 16072; 388.58985 5640; 388.60715 2227371; 388.6163 473441; 388.69505 1422; 389.08264 2185535; 389.09534 14818; 389.22575 2544285; 389.4602 3536558; 389.84234 1799717; 390.02401 27843386; 390.12955 2995; 390.37958 164036; 390.42387 22353; 390.92338 1029210; 391.13955 15735282; 391.31657 14473554; 391.62176 43366; 391.62828 43731; 391.99843 806446; 392.06211 2058577; 392.06663 478466; 392.21093 3022; 392.24211 9463688; 392.34538 215124; 392.38092 74115; 392.56427 271758; 392.69414 934304; 392.80922 1144709; 393.03618 11437163; 393.20712 235029; 393.29032 3574218; 393.4225 3933; 393.53189 86144; 393.55687 102038; 393.57405 25309; 393.70909 54035; 393.89979 16861911; 394.11493 85260; 394.30894 182920; 394.35696 51635; 394.40646 14686436; 394.51012 1048444; 394.84363 62145; 395.08672 24808; 395.26175 8495; 395.85653 966491; 396.41658 1450030; 396.59817 22415; 396.67356 13086649; 396.68811 243312; 396.7464 6310; 396.77046 71334; 397.10122 4216; 397.22252 19325; 397.55747 32917; 398.51811 39115; 398.56913 3573; 399.06585 7465; 399.29946 48482; 399.50678 46868; 399.57933 736644; 399.61337 6398; 399.75294 943542; 399.86702 335517; 399.89558 4321; 400.38031 24357; 400.6452 982101; 401.01174 1420734; 401.03949 10074; 401.0558 5497; 401.08287 4511838; 401.31328 2397597; 401.507 41464; 401.65183 3420; 401.6542 2813; 401.90557 3958; 401.99524 4365146; 402.02124 48597; 402.0947 9058; 402.30866 77405; 402.49446 4520140; 402.58199 54206; 402.60283 168370; 402.69796 566333; 402.79805 73528; 402.8244 722800; 402.88962 45065; 402.95178 32215; 402.9592 194547; 403.32267 6262; 403.32845 3720622; 403.45273 4489040; 403.5999 5953; 403.75603 47630; 403.82476 1312856; 403.89934 1404648; 404.05028 3263; 404.07093 892783; 404.33372 21930; 404.36059 2302; 404.51786 36843; 404.52653 6051; 405.01775 4548167; 405.28645 70756; 405.30741 19437; 405.35936 26634247; 405.37163 32558; 405.4315 2814112; 405.62064 11319999; 405.63066 679670; 405.72695 368581; 406.08065 4058775; 406.34738 584154; 406.58861 684302; 406.77814 4900713; 406.93049 717; 407.11456 13937; 407.40134 378456; 407.48308 8005; 407.56499 6108; 407.98442 75205; 408.05956 33632; 408.13348 4525296; 408.21044 38124; 408.74598 196170; 408.7515 70435; 408.89422 17382; 409.04341 30502; 409.17185 40437; 409.3632 2620; 409.41567 33440; 409.85734 59112; 410.03392 2700044; 410.45907 58711; 410.58559 2546189; 410.64324 60514; 410.64866 21925; 410.97045 74848; 411.42357 4457282; 411.4428 510406; 411.6344 1784620; 411.65901 14516; 411.70248 73403; 411.71807 600868; 411.91979 5240387; 412.0971 14043053; 412.48903 166455; 412.73491 13079; 412.9706 3795; 413.45293 1563992; 413.56864 25202; 413.6096 54858; 413.62718 647327; 413.64105 14016; 413.70907 103765; 413.98962 2532172; 414.0078 73690; 414.05101 56579; 414.11307 54550; 414.18563 26965872; 414.18894 352908; 414.53728 831576; 414.56645 815; 414.60985 2976231; 414.73064 19835; 414.78366 19355; 415.24966 959403; 415.77427 8088; 415.81068 1357858; 415.89525 70190; 415.91807 55647; 416.03197 928845; 416.24738 1060832; 416.27737 5078; 416.3807 9809; 416.44275 18298960; 416.48779 36338; 417.1265 62914; 417.35056 117381; 417.39066 4510; 417.5336 33954; 417.70989 1979775; 417.76304 1886997; 417.80941 93500; 417.81363 1973224; 418.17699 1203193; 418.19279 49010; 418.4248 20652; 418.43902 62767; 418.45805 1988720; 418.49518 21730; 418.5684 14938; 418.91657 16765; 420.02942 1859631; 420.04391 15701; 420.41136 3262912; 420.45133 30132; 420.55439 2644190; 420.61048 2519966; 420.72514 170628; 420.78412 26576233; 420.90286 148861; 421.03121 62128; 421.16902 1051706; 421.29705 27874094; 422.07821 2175; 422.19059 1411306; 422.22128 2156974; 422.2291 6177; 422.34247 1467961; 422.42658 82964; 422.44007 2200; 422.44604 8858; 422.61377 2563576; 422.9512 744152; 422.98536 15396026; 423.077 143105; 423.10246 8670001; 423.10374 167627; 423.12492 33466; 423.14615 57949; 423.40492 66209; 423.41739 25532; 423.42142 74124; 423.45918 7291; 423.56889 152051; 423.59144 4298657; 423.62851 1531803; 423.7414 8577711; 424.0235 1720984; 424.13189 54592; 424.21706 887891; 424.83965 1736381; 424.97852 1750752; 424.98347 1657; 425.46549 7041; 425.47692 232210; 425.63099 4990; 425.90318 49626; 426.07967 870995; 426.51311 684080; 427.6782 16853; 427.73106 2134543; 427.82986 9267; 428.29282 9133; 428.36262 1991040; 428.3644 13445; 428.64492 5547719; 428.89712 126889; 428.98705 9417; 429.0268 35305; 429.14908 3780; 429.14951 62945; 429.17759 172600; 429.23569 70287; 429.30933 103347; 429.39864 1349609; 429.49236 51368; 429.56033 11754; 429.84795 20054; 430.05262 115838; 430.27524 26507872; 430.36192 2315677; 430.42078 4243; 430.43685 4743584; 430.44267 6635; 430.47133 14146; 430.78868 2812800; 430.8711 9900347; 431.00213 69906; 431.37166 27235; 431.63812 6356821; 431.70977 3797911; 431.88616 7566; 431.94546 1252549; 431.97622 3674; 432.02785 40211; 432.66517 518; 433.21769 1910477; 433.53205 156900; 434.0214 26724; 434.15934 5332637; 434.26657 4300; 434.71173 1250363; 434.75349 3880181; 434.76314 13014; 434.95797 26699330; 435.28668 29579; 435.29084 53661; 435.32671 273892; 435.59942 53617; 435.76128 8422763; 436.02485 23006; 436.10771 618032; 436.24869 28378; 436.62025 27657; 436.64304 20943; 436.84578 4271326; 437.1224 96258; 437.17329 3190; 437.25761 3673395; 437.48624 1596366; 437.52828 1640833; 437.64517 425534; 437.76081 18668; 437.81805 686; 437.82395 6509648; 437.98413 24106; 438.13209 2865; 438.36644 2517197; 438.37896 2910; 438.54578 2507; 438.86027 584895; 438.93971 26699; 438.96559 201052; 438.97358 32337; 438.99676 13869; 439.11528 196715; 439.15879 108376; 439.52001 51294; 439.5763 45120; 439.64431 96479; 439.92178 29772; 440.01928 424; 440.07699 58993; 440.1351 98600; 440.37462 28606; 440.45118 352; 440.46007 8115414; 440.56177 49214; 440.77843 2135601; 440.85903 38081; 440.91644 1450729; 440.97674 13044406; 441.03668 29595; 441.19728 131907; 441.42395 58832; 441.42814 73762; 441.58025 1299301; 441.59152 20934; 441.66667 27815; 441.68772 11440357; 441.95043 4360279; 442.02109 18893; 442.10802 178279; 442.10894 303; 442.18243 30796; 442.29758 23694; 442.4616 808358; 442.6942 38424; 442.71133 172066; 442.99464 74785; 443.32131 43686; 443.44814 27963; 443.77929 15592; 443.98896 6865; 444.00485 3041061; 444.09955 3284; 444.15511 839380; 444.2182 824276; 444.40716 75091; 444.47466 9754; 444.56482 49891; 444.9944 445796; 445.32108 6586; 445.33236 993763; 445.474 112656; 445.58308 1614731; 445.89404 378406; 446.10508 64144; 446.10889 28620; 446.27623 398836; 446.33552 1327963; 446.42205 43291; 446.77664 46067; 446.84517 25197; 446.86923 23879; 446.94705 10561; 447.10936 44356; 447.20489 653452; 447.28922 3951; 447.59418 6463; 447.69381 780679; 447.71909 8503; 447.78167 6226803; 447.83693 9037; 448.03707 4377286; 448.15819 11029; 448.50452 739964; 448.59317 101156; 448.59395 25751; 448.72041 79641; 448.75217 19121; 448.90461 1265714; 449.09691 1342709; 449.11029 57617; 449.138 1913364; 449.35957 13826; 449.46743 25904; 449.55664 13987; 449.62195 58605; 449.71107 25344; 449.77048 14361791; 449.98327 9619; 450.16911 646264; 450.17842 26463; 450.66577 403518; 450.80859 36939; 450.83418 1799719; 451.26944 15098; 451.30951 53703; 451.47183 8958; 451.83205 13723; 451.95631 441620; 452.06881 1418126; 452.20813 30729; 452.39755 45506; 453.02894 756951; 453.11218 31569; 453.5045 69390; 453.55791 45966; 453.75001 7080; 453.82694 65754; 453.93203 2505090; 454.02993 56555; 454.09188 1090764; 454.27899 5040; 454.34193 8650170; 454.73572 8500; 455.27918 47544; 455.45268 1357489; 455.665 43769; 455.86184 9555; 456.27116 67038; 456.50773 27975; 456.94267 134977; 457.16672 15429123; 457.19051 20897; 457.22448 25281139; 457.23068 77579; 457.24728 4342464; 457.67554 31744; 457.85875 403622; 458.01785 3627223; 458.4309 8057; 458.73654 891268; 459.07377 26515; 459.30632 65540; 459.41809 80924; 459.41893 7940837; 459.73413 175738; 459.74807 55064; 459.98592 35549; 460.0695 22429; 460.20809 27110; 460.31502 17462; 460.52444 1855799; 460.59764 581529; 460.77072 6434; 460.78044 2543272; 460.82689 7976197; 460.82744 26186; 461.0567 636221; 461.0855 4004130; 461.15883 1623; 461.25131 9746371; 461.37412 146993; 461.51434 20231; 461.64343 27107; 461.64674 94196; 461.72338 274147; 461.89055 124363; 462.01826 9961; 462.0312 124511; 462.03646 42659; 462.05972 29007; 462.28325 21127; 462.71319 28223; 462.76314 4318; 463.32553 2090385; 463.44127 12831; 463.44393 1492647; 463.63097 74410; 463.84241 25264; 463.91772 286437; 463.92185 5556711; 464.29765 5617837; 464.42283 623363; 464.43151 351496; 464.60013 451567; 464.76215 3450286; 465.04563 165776; 465.44553 56205; 465.52136 185086; 465.66225 9381744; 466.04118 21061; 466.30328 2762; 466.79638 21641; 467.08684 2682098; 467.0957 4191920; 467.58388 33767; 467.79235 17607; 468.8405 6093; 468.85488 79192; 469.16001 75185; 469.42029 794773; 469.48299 3597245; 469.63578 1210036; 469.86634 18468242; 469.90527 333729; 470.16268 52055; 470.18234 35277; 470.29184 2697408; 470.36343 19338; 470.40755 25309; 470.50941 19816213; 470.52337 635042; 470.65491 23490; 470.68224 51028; 470.87621 45515; 471.21182 4924683; 471.50441 19718; 471.67696 1075845; 471.81426 3111; 471.98382 7372969; 472.23401 26143; 472.50282 14319; 473.03179 1863251; 473.06151 3499296; 473.07007 689410; 473.17032 68981; 473.28841 4534740; 473.55657 9729904; 473.9622 3209; 474.04842 1225439; 474.20581 794363; 474.30869 932745; 474.49598 27178792; 474.55225 7542; 474.77837 65326; 474.83091 22567; 474.98287 16375923; 475.21486 3976814; 475.23969 43612; 475.28121 646315; 475.31989 1687261; 475.43063 4441445; 475.67343 29056120; 476.23964 1468515; 476.30243 6406977; 476.43965 1557608; 476.54763 2714075; 476.63878 26064; 477.25341 35210; 477.38321 187642; 477.40892 55850; 477.58332 2314994; 477.59331 16349; 477.74112 9911; 477.89873 152529; 478.3249 14136; 478.44236 14641; 478.46802 772133; 478.50652 509301; 478.62075 5034; 478.92036 461056; 478.96349 1283790; 479.01221 7091737; 479.23579 4314113; 479.47017 7881927; 479.49823 63083; 479.67444 5804797; 479.82632 7481324; 479.86659 42590; 479.98579 50519; 480.06827 1189357; 480.29436 5160776; 480.34117 33015; 480.39134 107136; 480.50574 1061112; 480.50705 6985347; 480.53039 4845033; 480.6444 1420235; 480.7096 2688704; 480.89261 398047; 481.065 26766634; 481.11687 3025713; 481.2309 6718; 481.48424 24000; 482.23036 58438; 482.26047 150147; 482.57554 165695; 482.95194 4777; 482.97582 375879; 482.98081 26877; 483.31631 4037690; 483.51151 281188; 483.56839 92764; 483.7686 78031; 483.80661 23636; 483.95178 756185; 484.04847 58924; 484.06022 54140; 484.40864 390472; 484.77721 57623; 484.89159 37802; 484.99007 36573; 485.12649 57768; 485.28855 23662; 485.40299 78814; 485.64424 22672; 485.70525 68551; 486.18688 22382322; 486.26055 1492665; 486.38764 2816173; 486.60338 4812; 486.69295 5413; 486.79949 43844; 487.12321 19365224; 487.29109 341335; 487.39829 4635; 487.42612 145543; 487.62309 39800; 488.1492 2628827; 488.4161 853159; 488.5088 2789586; 488.85142 29722; 488.95478 47698; 489.05373 23094; 489.25863 139986; 489.27287 51747; 489.58013 1653874; 489.62153 23387; 489.71038 1020707; 489.8815 74077; 490.05889 63527; 490.0875 1839834; 490.19091 37447; 490.41143 2181047; 490.42416 58578; 490.96699 2189328; 491.11738 39807; 491.29877 2492244; 491.30704 1765552; 491.4418 1315389; 491.48762 4850886; 491.51291 9670244; 491.70338 9907245; 491.77652 8973589; 492.17167 1028364; 492.25548 88789; 492.27999 34366; 492.29941 337585; 492.35376 5277; 492.38578 390732; 492.56043 44341; 492.65167 755312; 492.84725 22126; 492.85747 70136; 492.85757 696218; 492.8937 20070; 493.02818 7229292; 493.19627 78185; 493.41241 968022; 493.55854 831601; 493.61742 815090; 493.97583 7971402; 494.02132 617119; 494.29423 40046; 494.29585 25888; 494.47162 45625; 494.77077 4368413; 494.79633 1794804; 495.26142 1686441; 495.5156 64976; 495.753 904; 495.85511 76609; 496.12829 46044; 496.22788 248673; 496.30931 143168; 496.39869 11527; 496.54366 74244; 496.76309 6838991; 497.38193 2836290; 497.39463 1930; 497.54848 6407456; 497.64005 20832; 497.77339 1446991; 497.7933 21111; 497.86085 4707; 497.86101 3709056; 497.91299 1988865; 498.35682 1612321; 498.39617 1290125; 498.54839 13535; 498.57874 1847044; 499.30276 5323719; 499.44238 52158; 499.4707 24892900; 499.66238 47252; 499.68671 35797; 499.71517 1518331; 499.83095 2934 +<3, 7>: 0.12595 147029; 0.28278 51671; 0.34209 25319; 0.39321 3890; 0.45891 377848; 0.54445 1730835; 0.70282 1090354; 1.1484 42768; 1.25113 50103; 1.25859 1811928; 2.05801 174373; 2.10462 24842; 2.11822 47513; 2.22785 4654; 2.3758 1568327; 3.20085 7575644; 3.24228 594154; 3.31904 65043; 3.61041 4372; 3.68972 300672; 3.73119 106059; 4.07424 73256; 4.09738 1692256; 4.15678 21377; 4.17938 817624; 4.30796 4925261; 4.35623 76147; 4.47637 71569; 4.59027 22038; 4.74734 110641; 5.50243 1115572; 5.61981 38052; 5.76505 2218723; 6.60482 69335; 6.72982 157495; 7.2495 12170827; 7.43007 29844; 7.57106 53333; 7.59409 8472; 7.85349 524031; 8.05944 53917; 8.11162 457127; 8.64926 6316; 8.75147 36785; 8.86181 29059; 8.99603 1194983; 9.39381 27378; 9.44465 1287; 9.53255 595188; 10.22808 419; 10.3656 22601; 10.5268 68407; 10.65932 5168530; 10.76505 1014920; 11.03125 8064948; 11.12112 26951; 11.12431 46006; 11.15215 751242; 11.43025 51948; 11.88975 77121; 11.89542 164; 12.58063 169994; 12.59792 31331; 13.24506 8406; 13.54416 12507; 13.62047 978690; 13.81371 4105754; 13.98803 16812; 14.09646 3320681; 14.12171 21746; 14.18022 26050; 14.35317 161512; 14.41257 4965610; 14.48245 5275; 14.61714 76858; 14.72435 41731; 15.09695 4315; 15.27906 114413; 15.74111 23228; 16.16508 160322; 16.23578 23781262; 16.2663 1177148; 16.29493 1778778; 16.33648 57653; 16.64635 28601; 16.69827 7363; 16.77512 8667; 16.88164 54300; 16.96408 3128766; 16.97363 51334; 17.22578 1877432; 17.43653 63479; 17.56657 155182; 17.78201 740052; 18.68971 38943; 18.81186 8318123; 18.93723 48756; 19.18221 4445792; 19.2517 73759; 19.30163 8021426; 19.7421 3209; 19.79135 4866199; 19.83404 67848; 20.00261 981263; 20.04826 21322; 20.10816 736468; 20.34185 5624224; 20.36157 5857551; 20.44584 5596866; 20.51161 15975809; 20.59324 6957775; 20.65748 22157; 21.14711 27011; 21.2813 39205; 21.47212 239598; 21.6021 2863615; 21.68113 3199998; 21.8594 25382; 22.18567 4049104; 22.32546 4598355; 22.3656 28228; 22.37099 8994304; 22.5598 7436281; 22.57837 2798357; 22.88573 987087; 23.1428 928528; 23.6472 5232195; 23.7356 1765; 23.76872 350645; 24.0155 4341; 24.13708 1210416; 24.14083 650915; 24.15847 2120606; 24.28465 29268427; 24.28493 7396; 24.33476 2196309; 24.76037 146417; 24.78861 820300; 25.12232 26000; 25.17252 10268; 25.54065 16378; 25.62129 65288; 25.66547 23819; 25.72099 51738; 25.8386 27398; 26.07852 6823063; 26.32086 2387406; 26.5582 71138; 26.71682 1922102; 26.82707 7161; 27.14854 9286788; 27.74591 704219; 27.85114 8254730; 27.98028 4188123; 27.99786 57871; 28.21069 1565436; 28.31908 25319; 28.41828 22902; 28.5264 42835; 28.75427 1243360; 29.02159 1598382; 29.2046 9996; 29.26179 61628; 29.2779 1212392; 29.3778 633121; 29.55519 40224; 29.71602 26743; 30.04586 8628392; 30.07233 32552; 30.24254 1553661; 30.32412 99590; 30.51293 9545; 30.51348 173629; 30.57478 171419; 31.07342 500999; 31.53524 54625; 31.54062 633333; 31.6016 50186; 31.71026 1295946; 31.75445 28426; 31.77027 57205; 31.88907 476530; 32.16965 2704653; 32.18571 2918221; 32.65075 3859; 32.7692 7033764; 32.80978 50129; 32.84318 563919; 32.9573 1559; 32.97119 9593122; 32.97698 1363; 33.13184 1026693; 33.41578 25660; 33.57027 14946865; 33.65767 3754529; 33.76826 312378; 33.81629 78167; 33.86457 964364; 33.88231 1554455; 34.06834 64426; 34.31825 1695312; 34.43921 44094; 34.44392 7899901; 34.46086 12949; 34.54076 78743; 34.60608 9511; 34.805 7210646; 35.15211 8205350; 35.46578 26217; 35.54398 7763; 35.64695 63000; 35.87914 43526; 35.96568 609195; 36.13063 3383393; 36.28647 629195; 36.5467 23290; 36.93376 484772; 37.32132 111441; 37.65272 14857; 37.9498 37802; 37.95616 2515; 37.98617 54944; 38.02324 1568874; 38.09902 1954486; 38.27263 8625836; 38.39603 2490587; 38.53625 179792; 38.58922 1110097; 38.69602 48226; 38.72511 5812; 39.22774 213784; 39.29055 25498789; 40.0315 1935922; 40.35902 1765; 40.42112 9576; 40.52084 131879; 40.60967 3916; 40.91115 31581; 40.95652 4260536; 40.98024 1131228; 41.57816 478; 41.77929 5084921; 42.18314 26102; 42.44373 5817893; 42.62991 41723; 42.71309 44532; 42.7814 52162; 42.82721 28259; 42.99379 8210860; 42.99424 9765082; 43.01228 43317; 43.04416 89680; 43.0936 1165643; 43.09556 5395881; 43.5329 8920; 44.0056 1602; 44.66086 2489145; 44.68318 1605286; 44.71242 1524472; 45.01633 29188; 45.06951 8044; 45.6575 2029444; 45.68679 28237; 46.20172 34352; 46.30469 9339; 46.45339 18201; 46.49575 1762300; 46.91075 51510; 47.0755 15477; 47.16838 1788079; 47.32798 40945; 47.7908 78696; 47.88596 14064; 47.99613 9809; 48.00703 11382; 48.57971 1942227; 48.729 173074; 48.87873 7887; 48.97064 1786836; 49.06679 32856; 49.1356 1733919; 49.37452 2925347; 50.47296 87849; 50.52148 51364; 50.59159 2726787; 50.81937 23832; 51.04394 7779; 51.09725 2841834; 51.43637 805; 51.70259 5568; 51.73166 66768; 51.75396 24923; 51.88501 52950; 52.03623 1269618; 52.30083 10235; 52.623 6261; 52.70473 166636; 52.95247 673; 53.47634 429566; 53.591 1378; 53.84857 43928; 53.87519 130691; 54.09858 667841; 54.38586 171200; 54.72468 1211796; 55.13733 5215803; 55.24361 146092; 55.28153 1792414; 55.53079 44571; 55.61436 3730025; 55.61571 4691066; 55.62162 1307067; 55.64339 4528038; 55.68278 76868; 55.8566 64128; 55.96307 33537; 56.27523 1286802; 56.33628 2269415; 56.42299 8414; 56.736 22518; 56.82047 5006; 56.84405 6647358; 56.88747 4908; 56.96222 405133; 57.23773 93384; 57.3004 45583; 57.41179 7932406; 57.57237 360516; 57.87278 6242462; 58.4013 18229; 58.61968 25956; 58.73731 24000791; 58.94206 661834; 59.11063 4464733; 59.12321 2930; 59.27941 7662; 59.34007 3003518; 59.93109 49477; 60.06046 12545; 60.50269 2836; 60.59877 40884; 60.62781 69865; 60.92147 1179677; 60.98899 5889584; 61.23452 64835; 61.57143 1544599; 61.81132 929436; 62.1267 3393934; 62.27032 1212362; 62.44225 1119704; 62.51309 72422; 62.75723 1990575; 62.81892 3727886; 62.96377 348485; 63.16383 4959; 63.52211 62966; 64.20177 256309; 64.20186 102835; 64.30109 29696; 64.41362 24804; 64.63127 36306; 65.45923 6030; 65.48148 75391; 65.66076 54246; 65.69817 34552; 65.70169 4458764; 65.87688 421671; 66.06522 14142; 66.06945 57235; 66.40191 2297514; 66.41224 5770410; 66.57563 54485; 66.62978 1607277; 66.63559 155046; 66.67513 41343; 67.15049 1625151; 67.19558 14085860; 67.22221 73759; 67.46001 225181; 67.48758 32358; 67.58855 2556333; 68.00736 75422; 68.04162 27488; 68.11538 27477; 68.18463 341747; 68.93682 67590; 69.35248 166444; 69.40307 170031; 69.553 2198; 69.56394 5844607; 69.62485 28579; 69.64679 834518; 69.87929 67685; 69.90941 9264; 69.94889 38295; 70.26243 1530575; 70.43466 372981; 70.43576 45438; 70.43929 503314; 70.59113 38154; 70.60343 115672; 70.68156 21221; 70.79218 190; 71.04989 4340; 72.0033 14141; 72.22086 40546; 72.2596 128681; 72.57028 2136584; 72.74066 9744; 72.87548 57291; 73.08209 74978; 73.42092 399; 73.53213 154332; 73.58861 44190; 73.94703 240265; 74.42512 59424; 74.43225 79480; 74.43407 1988608; 74.43895 2974987; 74.56258 732445; 74.60494 42895; 74.70629 1136838; 74.77445 23186; 74.8339 313291; 74.89669 1823847; 75.40043 59114; 75.40166 4625; 75.41137 1476966; 75.44106 3262; 75.6724 3961711; 75.76924 60228; 75.94713 50; 76.03939 6914; 76.28974 180901; 76.61762 16531; 76.77084 1214351; 76.80218 46718; 76.86024 1603; 77.22383 24276; 77.31751 2162171; 77.46436 252213; 77.56124 18723640; 77.99989 8052; 78.34008 938771; 78.64378 158586; 78.85023 9059884; 78.93995 62777; 79.07288 54676; 79.19629 7161; 79.35203 16864140; 79.57409 2903; 79.57861 38183; 79.59683 2380067; 79.88804 71798; 79.93934 15120; 79.99682 820; 80.00747 27776; 80.6719 32856; 80.71867 4821425; 81.18908 5641857; 81.36374 653239; 81.43958 81292; 82.38362 51141; 82.59983 141151; 83.07781 28199; 83.15581 16240; 83.35123 4663786; 83.44071 37844; 83.47332 317; 83.5089 156559; 83.87648 61479; 84.02669 884211; 84.12205 309922; 84.31975 58596; 84.35143 7108607; 84.50616 1962776; 84.53162 19861; 84.68581 3291550; 84.69803 5086; 84.71113 39221; 84.76573 8595358; 84.77611 51041; 84.7834 70116; 84.78934 75479; 84.79796 6272; 84.8261 133083; 85.2174 64206; 85.36858 17162; 85.41655 787680; 85.78327 28625; 85.90596 8985; 86.01271 67712; 86.1171 17486; 86.19092 3176635; 86.27962 23096; 86.44865 21385; 86.56357 1662671; 86.71325 4109851; 86.79289 2651; 87.01439 133966; 87.03763 48292; 87.06816 6590674; 87.09114 5889; 87.15519 1233300; 87.44434 599376; 87.81458 1101471; 87.90078 23386; 87.94189 1955100; 88.02528 5081811; 88.42053 169760; 88.69634 8283422; 88.71292 6253807; 88.74547 1702273; 88.75907 952112; 89.10592 8077953; 89.1462 10811; 89.21471 134546; 89.22261 8039; 89.23821 8028; 89.26365 29593; 89.38125 47095; 89.80168 2626; 89.97823 553426; 90.01122 4939; 90.1844 1303; 90.22681 32870; 90.45823 171818; 90.61848 2983; 90.93585 44594; 90.94284 72682; 90.98208 24496; 91.07878 1985596; 91.4604 8180137; 91.54086 1605326; 91.57482 60683; 91.73909 1546559; 91.83048 1146982; 92.39997 8772702; 92.48246 5240; 92.52468 19773; 92.67629 836509; 92.8112 4081; 92.85564 23166; 93.01591 3094264; 93.21865 1746025; 93.52451 3269084; 93.69998 301461; 93.93703 792631; 93.94355 47000; 94.12809 21190; 94.56184 53209; 94.64995 28905; 94.86346 4416151; 94.94414 25284; 95.02144 4125996; 95.40551 44476; 95.56515 9402858; 95.66858 6723; 95.70678 4518863; 95.70976 71883; 95.85448 17530; 96.029 5694232; 96.03326 61895; 96.28153 12118; 96.49543 9931744; 96.57222 1450885; 96.78761 1034396; 96.80471 44110; 96.8845 11318; 96.96824 3055056; 97.0779 4127; 97.72989 8284; 97.79845 2363793; 97.85422 5213; 97.92081 16992; 98.15417 12920460; 98.24241 894335; 98.25045 4992908; 98.30033 3056485; 98.61064 14415391; 98.65 1974705; 98.65497 3918; 99.17635 100141; 99.3209 9554; 99.55035 336997; 99.84982 601; 99.94092 3521024; 100.24617 116320; 101.21533 829307; 101.22705 9549126; 101.39037 6557; 101.52029 5859390; 101.67945 56829; 101.8219 27857; 101.93889 3871; 102.02768 7472983; 102.21761 313175; 102.33706 1786513; 102.71661 5905000; 103.18797 22023; 103.26978 546800; 103.51375 20491; 103.72177 1070835; 103.72608 641323; 104.24357 1906820; 104.30976 64434; 104.35676 90409; 104.92946 1751; 104.96261 4785515; 105.39558 4449040; 105.42469 27151536; 105.47302 14493; 106.01117 6495128; 106.40367 60906; 106.49711 6636; 106.50537 9353631; 106.50622 29553; 106.58529 195405; 106.66956 36991; 107.20829 19436; 107.21901 3952047; 107.80289 76349; 107.81901 91928; 107.8479 64476; 108.08329 26300; 108.24504 4047; 108.32816 13054; 108.52774 2478; 108.68197 18364; 108.75561 345323; 109.00805 24362; 109.432 1250; 109.49038 3164; 109.54481 3071139; 109.55997 277123; 109.81957 38854; 109.85833 49658; 110.02963 58025; 110.0358 212166; 110.12294 42978; 110.21137 112650; 110.34813 38948; 110.62519 70312; 110.89636 27332; 111.33526 10995; 112.24073 3941461; 112.96175 64766; 113.08947 144391; 113.28983 28093; 113.32183 504507; 113.38394 8448020; 113.52655 43657; 114.12397 9360830; 114.38096 135415; 114.41314 832; 114.42481 95268; 114.64889 25984; 114.74872 4652; 114.94274 5814; 115.10858 385325; 115.22799 195152; 115.3142 24574; 115.41008 58906; 115.56011 21081; 115.95142 18784808; 116.04458 23882; 116.08309 5723276; 116.105 1930725; 116.15148 650718; 116.36877 109623; 116.6532 4715; 116.70859 34050; 116.79964 1813366; 116.8318 7542; 116.90451 1911540; 116.94906 2916; 117.39798 27857; 117.56012 1576891; 117.66097 3573253; 117.89751 8540; 118.12068 20862; 118.15166 11769457; 118.29084 1995889; 118.30509 2170380; 118.35491 60686; 118.48017 165633; 118.93076 16598372; 118.96914 8766570; 119.18402 5956155; 119.36752 75252; 119.3734 2215; 119.41454 29863; 119.50338 64637; 119.68225 3983; 119.73291 143825; 119.7375 15238; 119.83286 119428; 119.8807 50795; 119.91596 306209; 120.06213 57834; 120.10326 10040; 120.24467 54486; 120.34776 158817; 120.37104 320288; 120.52016 4126; 120.69418 50461; 120.70422 2045173; 120.80074 183278; 120.86639 83941; 120.91146 7864231; 121.10408 117485; 121.51544 6486776; 121.6249 18064; 121.68895 121082; 121.85503 28064; 122.45903 83145; 122.59994 79999; 122.92742 67314; 123.07378 4947; 123.35238 16710; 123.80629 147176; 123.95013 5071058; 124.27124 71160; 124.456 376884; 124.52334 1757; 124.61543 890041; 124.84639 62450; 124.86331 3916473; 124.95319 22175; 125.10351 7447971; 125.84289 16338; 126.32622 1152057; 126.38093 54080; 126.49874 48283; 127.12868 189592; 127.21349 8440229; 127.31589 27660; 127.35129 30144; 127.48859 158087; 127.81403 71689; 127.95295 27408; 127.95437 567467; 128.06952 7954820; 128.13208 3445852; 128.15941 36013; 128.30799 24968; 128.42278 3609; 128.70292 48301; 128.79529 48462; 128.90995 187646; 129.37014 74698; 129.41541 8154; 129.50919 35983; 129.57509 583411; 129.61911 4817; 129.8312 55853; 129.87024 25452; 130.15205 1164498; 130.30478 4186; 130.55161 9848635; 130.95328 2878540; 131.06594 43751; 131.12733 41140; 131.26227 25394; 131.36041 3291487; 131.5603 794; 131.6733 1836; 131.727 7105; 131.89167 72814; 131.98317 205424; 132.16436 833; 132.6083 695963; 132.80276 382054; 132.87973 734511; 132.99482 11517152; 133.02622 1688675; 133.03178 15009; 133.0782 49166; 133.37832 778366; 133.41038 405336; 133.49719 6280; 133.54454 47932; 133.6827 100154; 133.70665 181992; 133.74074 29096; 133.87469 76628; 133.89708 21880; 134.06739 6256; 134.18338 1203863; 134.2692 62117; 134.38113 5219; 134.48056 2155; 134.77584 687694; 134.86392 5211211; 135.12824 251689; 135.32398 1940144; 135.3977 24767; 135.54146 2987408; 135.58763 186414; 136.25805 72647; 136.30008 2447619; 136.65149 2636; 136.80248 86754; 136.87337 50157; 137.04786 1293; 137.09485 8200861; 137.14321 258410; 137.3346 4683; 137.58688 1183; 137.75498 3017464; 137.88612 395263; 137.92026 493; 138.12096 399577; 138.40798 1693; 138.48403 7490; 138.77707 1634478; 138.81578 554; 138.91387 938723; 139.46893 278056; 139.47907 6136; 139.49116 40995; 139.51979 1283149; 139.55026 866538; 140.37293 57285; 140.44061 60944; 140.9468 853653; 141.05941 19377; 141.3593 17269707; 141.60965 992486; 141.7715 76435; 142.64284 24415; 142.8941 13699; 142.99427 5136; 143.00141 47338; 143.00701 3327315; 143.16511 69366; 143.19554 493488; 143.20712 31948; 143.26031 65319; 143.64289 16033; 143.65596 30266; 144.14936 1625131; 144.42544 19266; 144.92783 1886884; 144.93828 2090184; 145.99461 2505; 146.19296 414507; 146.22363 13784; 146.58387 173314; 146.80694 4942353; 146.81366 1390975; 147.21683 21372; 148.35052 1147589; 148.57575 71500; 148.76128 1540107; 149.26638 3396336; 149.64351 2288785; 150.00096 213453; 150.08276 400443; 150.20532 887706; 150.24077 27372; 150.3029 1599364; 150.34317 1204590; 150.77712 16167; 150.88631 46936; 151.07718 464587; 151.13638 21238030; 151.31113 4165872; 151.32803 1123307; 151.38588 27511202; 151.39485 1608093; 151.66287 98316; 151.88683 1468517; 152.15274 5205501; 152.15513 916; 152.53775 6799384; 152.74438 46114; 153.20855 22455; 153.24599 1606637; 153.3962 4562407; 153.61205 37151; 153.63727 3443078; 153.8882 27285; 153.97761 50720; 153.99454 2863371; 154.08433 307925; 154.43593 923178; 154.67292 66211; 154.85556 129448; 154.99539 1831169; 155.42906 74843; 155.46146 8716374; 155.69333 71674; 156.23031 56730; 156.24603 976008; 156.31498 6563; 156.31766 1609698; 156.48939 28372; 157.08806 76903; 157.5212 123454; 157.73259 8649; 158.21159 4015245; 158.54469 298319; 159.0233 7696786; 159.04826 1329859; 159.29609 21839; 159.37863 24813737; 159.48582 76834; 159.49082 8378424; 159.59344 457901; 160.05572 19965; 160.29912 20163; 160.32381 66065; 160.45597 1416914; 160.49352 17885; 160.52329 25150; 160.55924 28838269; 160.70772 1218932; 160.80182 26110; 161.16461 1278816; 161.27271 2417164; 161.78317 1924097; 161.94869 42565; 162.11017 29621; 162.26449 3599; 162.58037 30888; 162.58763 1710; 163.18991 15129; 163.27095 9583; 164.02935 2959628; 164.85305 29447; 164.8964 910811; 164.94518 305324; 165.1593 1613582; 165.16311 4552; 165.19361 1404007; 165.2477 881134; 165.29075 1001927; 165.40584 352313; 165.43418 2121797; 165.70024 51678; 165.88598 682; 166.00508 646; 166.52658 25320; 166.9883 7362340; 167.13408 1362341; 167.17744 28441; 167.28662 369126; 167.57236 8329; 167.60868 27078; 167.84887 1763578; 168.12132 248782; 168.22992 13737; 168.32795 22440; 168.41588 3463061; 168.59217 67658; 168.65858 98570; 168.67781 36335; 168.91794 645955; 169.01834 74805; 169.04335 1806019; 169.14634 804; 169.43837 72290; 169.61884 2499098; 169.90005 49553; 169.97192 1375642; 170.22722 113679; 170.31971 36715; 170.85478 45189; 170.99549 50669; 170.99896 37495; 171.02683 772641; 171.32884 20610679; 171.33433 97875; 172.08716 1798804; 172.31749 108454; 172.51957 348045; 172.67514 640922; 172.70044 7921915; 172.7843 26137768; 172.80011 2880; 172.87473 2004439; 173.08558 7154; 173.1881 65540; 173.22128 75405; 173.23198 1164843; 173.36854 65696; 173.42223 63367; 173.54537 1258419; 173.65755 26249; 174.06025 2919; 174.13207 23427; 174.14121 384925; 174.22173 58935; 174.23856 101879; 174.3351 55619; 174.35826 3415936; 174.45584 107602; 174.45819 152817; 174.47237 1597353; 174.64106 510687; 175.09832 63763; 175.18413 527090; 175.79717 60598; 175.99773 1143351; 176.06985 1545906; 176.37604 4316831; 176.65908 2905729; 177.03632 908555; 177.05571 24463; 177.2456 1878836; 177.40022 61717; 177.40559 1328782; 177.44387 56392; 177.59336 1555615; 177.60675 561578; 177.813 7910253; 177.89664 30739; 178.33293 4483; 178.442 1646167; 178.44791 2418879; 178.83185 6293; 178.88434 33607; 178.89953 41615; 178.95118 7327358; 179.04426 3657101; 179.48839 13545; 179.96485 20299; 180.01895 3408; 180.05773 5603; 180.30899 6637; 180.34026 78627; 180.45859 42185; 180.45874 40645; 180.46154 1945; 180.60589 60110; 180.70397 3503382; 181.14887 79166; 181.14963 40940; 181.34194 99992; 181.54164 21980; 182.08755 24655; 182.58823 1014580; 182.85991 19377718; 182.93377 129; 182.99129 2117638; 183.03381 58286; 183.12643 8383925; 183.21361 28329; 183.26072 2210; 183.83197 26742; 184.10818 6656; 184.28769 54609; 184.48649 28532610; 184.74206 1838210; 184.83538 18034; 184.95337 1154315; 185.0148 367427; 185.15181 2228; 185.23369 292030; 185.29443 365; 185.39897 26255215; 185.40034 5443; 185.44586 1601190; 186.18623 183913; 186.70333 984647; 186.78846 661254; 186.93926 1407999; 187.16938 923381; 187.2535 10915; 187.34242 1752573; 187.51914 193983; 187.58651 370917; 187.78474 43459; 187.88657 7450603; 188.02974 9676; 188.38431 2923960; 188.79987 24564; 189.18487 4962199; 189.65591 154700; 189.76181 31101; 189.77865 19809057; 189.80429 34043; 189.9071 8102880; 190.0062 1894; 190.06067 1248158; 190.23186 16967879; 190.29991 13242171; 190.56114 1756; 190.74259 11413; 191.3714 3343121; 191.46542 174053; 191.79724 4656056; 192.10387 900580; 192.38256 83292; 192.63996 2752219; 192.6971 4619135; 192.7142 49508; 192.72897 4964487; 192.73461 7518888; 192.82083 61414; 193.02069 2024; 193.60754 23053; 194.06681 8060; 194.1654 5080391; 194.42501 68114; 194.62616 45756; 194.709 58659; 195.21276 49954; 195.21429 659373; 195.65603 39331; 195.67045 38523; 195.74529 3458; 195.91709 23239; 196.08216 28261; 196.21157 20774128; 196.22805 1564528; 196.29176 66063; 196.32982 58109; 196.40339 5982109; 196.4471 50562; 196.54736 796832; 197.40267 72394; 197.64601 25289; 197.75489 15503; 198.56229 29159; 198.65153 1103590; 198.73007 6377; 199.36809 1738974; 199.46311 1216588; 199.47992 4048770; 199.48704 13138; 199.86276 8880; 200.16768 628984; 200.60238 596764; 200.63664 149176; 201.03314 4594383; 201.17458 31304; 201.52163 167699; 201.68415 4863794; 202.36219 6569; 202.39698 8040; 202.4846 58101; 202.53013 39062; 202.61857 3754; 202.66369 102389; 202.72561 26911; 202.84594 49730; 203.32833 10262; 203.45524 646; 203.49969 2625999; 203.88507 199302; 203.91339 165035; 204.09583 6544714; 204.3231 199767; 204.37217 21901; 204.40439 30727; 204.55901 5313; 204.73834 1993499; 204.89135 46516; 205.46814 26596; 205.4927 808711; 205.84693 77721; 205.99618 149770; 206.00397 96679; 206.04812 68686; 206.16065 74642; 206.27444 4154; 206.35731 56706; 206.36002 20114955; 206.54275 1801553; 206.86075 654823; 206.97499 71268; 206.98382 732835; 207.0779 6859; 207.30223 723635; 207.43721 1582820; 207.65596 11707281; 208.00944 1608176; 208.08592 5560; 208.19106 37016; 208.30483 54165; 208.34634 47090; 208.36055 24548; 208.6515 60326; 208.76676 29366; 208.88012 5997567; 209.73851 9999; 209.85613 5893; 209.99271 24078; 210.0706 159951; 210.07673 44943; 210.22333 29243; 210.33534 367079; 210.37924 58174; 210.45532 6211122; 210.69804 31309; 211.03098 1137; 211.06265 29760; 211.16762 57175; 211.19657 970691; 211.24358 6659; 211.50913 56644; 211.52133 8305619; 211.63125 9363; 211.65005 54939; 212.05534 3289369; 212.24017 16157; 212.39267 353620; 212.39768 157950; 212.45744 141248; 212.47062 4240; 212.49023 19168; 212.4948 1118203; 212.79723 48337; 213.50539 1343367; 213.5526 45648; 213.65483 552092; 213.75057 26790; 213.75813 9862; 213.75939 905013; 213.79982 49261; 214.64473 18496; 214.86964 773865; 215.00989 2392343; 215.0999 63529; 215.299 1758236; 215.85402 62938; 216.13594 25115; 216.25478 13092; 216.32567 6304905; 216.52248 1486906; 217.36002 29770; 217.57002 9367; 217.61233 1085; 217.67156 260561; 217.75865 4431562; 217.98228 20896; 218.02525 3609; 218.2032 875476; 218.39593 1752290; 218.40443 2825242; 218.54226 47973; 219.011 9100; 219.09811 9242382; 219.14581 61379; 219.15679 14567; 219.32739 6622; 219.42271 21644182; 219.57933 4978183; 219.67237 63522; 219.92372 6622; 219.9745 60650; 220.01254 1842078; 220.07116 49964; 220.22633 1467; 220.24836 59861; 220.43622 7443622; 220.52655 53565; 220.74806 3550000; 220.8383 17750; 220.85149 1548943; 220.87943 23574; 220.89574 57663; 220.94202 1339989; 220.99782 7436; 221.11183 259576; 221.15454 1836036; 221.22164 3636224; 221.23492 664; 221.35841 47609; 221.43741 50798; 221.50002 5087; 222.27034 38563; 222.63431 1336080; 222.74192 2516752; 222.90286 155058; 223.01098 165901; 223.02901 1586149; 223.15829 29197; 223.18326 1071609; 223.45829 6824154; 223.51697 2506843; 223.58858 1862411; 223.63879 3388282; 223.6577 764053; 223.67326 27511; 223.8269 57054; 224.17223 2590537; 224.20468 300; 224.36188 6239; 224.53366 148076; 224.85617 37557; 225.27019 5007; 225.5725 7171; 225.80499 43514; 225.88714 3410816; 226.19856 1174831; 226.2225 23688; 226.31416 4988; 226.36421 56693; 226.37641 71734; 226.51687 18308; 226.85086 29555; 226.86602 343238; 226.88066 7858930; 226.92315 23955; 227.0256 6712; 227.35306 1151026; 227.44556 4786; 228.10164 91938; 228.60829 1452770; 228.64655 221206; 228.74975 3464143; 228.77417 6049; 228.93147 2749143; 229.09084 7322; 229.14055 4183688; 229.23158 31498; 229.268 469811; 229.31441 5368; 229.3274 8049704; 229.33697 1609467; 229.69027 11845; 229.76684 3024968; 229.83101 44163; 229.86915 4432026; 229.93128 1900386; 230.0875 8581; 230.1931 51227; 230.53517 11645332; 230.55249 1503465; 230.73902 4976946; 231.26822 20398; 231.37872 1804; 231.44932 23583; 231.75387 8721; 231.87003 49306; 231.89205 72187; 232.0626 594381; 232.4451 40253; 232.46204 24750; 232.70784 29810; 232.74801 78801; 232.78143 5804; 233.09793 5439137; 233.10192 73029; 233.31045 5965085; 233.53257 1253421; 233.54159 37309; 233.89677 1422013; 233.8994 59084; 234.0495 1571484; 234.12577 75531; 234.2108 5402030; 234.52831 5078; 234.55112 74908; 234.73928 7577; 234.81659 10142; 234.88362 4748944; 234.98851 65617; 235.00806 47320; 235.0418 187630; 235.23961 7076; 235.54713 3352616; 236.34206 68412; 236.37219 77722; 236.77324 68809; 237.37602 126713; 237.4047 5297185; 237.66833 52856; 237.86298 3469128; 237.96242 3825621; 238.16789 62059; 238.74163 20254; 238.85375 23022652; 238.87357 17842; 239.07905 1340; 239.08745 14046961; 239.34738 6315; 239.44045 797594; 239.65819 7496620; 240.0583 71483; 240.06207 898462; 240.44277 36362; 240.64435 21623; 240.74252 345043; 240.79331 24809; 240.86007 12721; 240.9665 5934; 241.05343 23202; 241.29833 4801046; 241.5125 1636; 241.52912 743694; 241.7991 95408; 241.90026 506404; 242.07443 34848; 242.27374 261767; 242.49786 596134; 242.50753 218467; 242.61882 2792912; 242.78402 4890423; 242.88707 4899606; 242.89649 1326931; 242.91947 54153; 242.99427 18580; 243.41904 8385; 243.46615 49601; 243.75037 7933604; 243.7669 2790623; 244.07531 156357; 244.10866 35933; 244.22978 1384917; 244.23698 44277; 244.38651 29957; 244.48502 3417981; 244.66511 1843446; 244.75611 935; 244.91806 1932094; 245.28107 9691; 246.60931 32; 247.00372 2550184; 247.02475 5464; 247.08148 6581982; 247.29141 926; 247.51894 480932; 247.57348 59924; 247.76215 7050; 247.81551 20468; 247.99947 9292; 248.76228 584741; 248.93688 106013; 249.04529 1266290; 249.20208 2122519; 249.23958 67423; 249.50115 96374; 249.50528 310; 249.64519 4269507; 250.154 21031; 250.19747 4183; 250.46218 115175; 250.48691 1505; 250.94739 28515; 251.13254 1776253; 251.22144 304781; 251.28617 35616; 251.53129 46806; 251.67873 17959; 251.73127 131; 251.84297 4346924; 252.16596 3190662; 252.2814 31050; 252.30894 12073764; 252.55989 7812; 252.75943 15592; 252.91663 473621; 252.94998 1958994; 253.47885 6205460; 253.78701 129225; 253.92083 3072071; 254.23364 29726880; 254.48463 72523; 254.48572 26920130; 254.61799 25192; 254.77559 29706; 254.89515 14642; 255.07407 89720; 255.18087 2569209; 255.22268 4835; 255.24979 51950; 255.43515 972547; 255.85742 1888326; 255.93515 10117; 255.99847 74396; 256.18803 50767; 256.42645 23817; 256.59018 49745; 257.21563 3447485; 257.49682 64562; 257.56877 1751; 257.59389 71584; 257.73364 26094172; 257.79304 977693; 257.7987 56670; 257.85769 1533902; 257.92771 1561255; 258.05316 27656; 258.07076 4759; 258.14527 44111; 258.46266 6262; 258.5246 189647; 258.67841 8929; 258.76352 1652920; 258.84057 25288868; 259.9051 23369; 259.96492 22201; 260.14424 14242; 260.14681 2903390; 260.20332 28481; 260.30535 185773; 260.56128 37733; 261.37261 51251; 261.52854 696764; 262.22141 104144; 262.32399 5494585; 262.58135 9128; 262.60102 354606; 262.66778 503319; 262.8359 438454; 262.89585 36862; 262.93331 47552; 262.93926 50495; 263.12286 2528973; 263.18652 36549; 263.5263 29609; 263.56108 179156; 263.63509 56512; 263.93722 912049; 264.00874 733917; 264.09513 2228; 264.59541 3324729; 264.76431 827511; 265.35244 2941722; 265.51779 8727; 265.62217 1231935; 266.04055 1231537; 266.06341 28834373; 266.28097 172915; 266.61853 25972; 266.88367 7048; 266.88988 24084; 266.97998 53304; 267.02456 33865; 267.62832 51846; 267.72385 5792693; 267.79661 222306; 268.11406 9312915; 268.12826 43820; 268.14799 72181; 268.19444 169149; 268.46449 6835514; 268.47586 38687; 268.56622 3699110; 268.66235 3193645; 268.6845 1640642; 268.6996 446320; 269.13662 58745; 269.15776 1510404; 269.32577 28923; 269.38816 75618; 269.85484 1040976; 269.9441 2391218; 269.98013 4892633; 269.99824 49277; 270.1383 18780; 270.45176 1902968; 270.47781 4684871; 270.49154 786171; 270.58249 6396; 270.61017 29121; 270.71669 89390; 270.88571 9699853; 271.05137 125915; 271.06125 1859961; 271.55817 64296; 271.57115 5998288; 271.63216 751728; 272.0215 6450; 272.14686 37618; 272.43675 9481605; 272.48522 178870; 272.61172 3571910; 272.819 4905276; 272.90458 8761; 273.06174 1524193; 273.14218 72840; 273.30893 8782; 273.33558 161043; 273.39698 1200733; 273.53445 24738; 273.56135 19604; 273.79562 39041; 274.03871 24593194; 274.10318 4408; 274.26194 71903; 274.49915 110683; 274.67508 19748511; 274.69752 14414; 274.72979 1311148; 274.78815 8032676; 275.23263 66897; 275.53586 23008; 275.56053 145938; 275.59547 20625; 275.66311 3211; 275.90786 1618284; 276.09502 4186389; 276.11502 46340; 276.31507 3775628; 276.528 12228; 276.57944 11064; 276.97816 1320604; 277.08477 1710317; 277.13324 8554535; 277.21995 7375119; 277.49088 20322; 277.56735 972448; 277.61655 3474932; 278.01149 72104; 278.02192 61367; 278.52506 1928497; 279.17077 1965011; 279.27753 22900; 279.83739 1906692; 280.11974 37255; 280.4565 21742; 280.82199 34529; 281.04228 70861; 281.09812 9144518; 281.16722 4300832; 281.215 4217785; 281.3391 254052; 281.38865 52282; 281.77182 1203326; 281.90607 8086; 282.1022 74110; 282.10224 9484267; 282.22636 867906; 282.41794 124351; 282.61496 1820407; 282.65038 6336; 283.40743 71074; 283.55223 3874; 284.10304 1090736; 284.1833 29995; 284.29332 52467; 284.49788 847965; 284.60448 69770; 284.65204 10989; 284.78306 136195; 284.84595 897937; 284.87957 26853; 284.88071 510417; 285.04754 4156; 285.08755 7693; 285.41763 25439; 285.50432 4010297; 285.60711 1145; 285.66629 24377; 285.80409 19045; 285.86049 50237; 286.0222 74075; 286.25829 3264827; 286.38011 26712; 286.87286 22098; 287.23314 264916; 287.28267 47300; 287.41978 1126427; 287.42481 435; 287.54243 8509617; 287.60234 2876; 287.66458 71031; 287.84947 90960; 288.21836 79658; 288.23436 1124743; 288.24394 6086; 288.27837 5954; 288.46942 7950; 288.63397 15516; 288.77394 8000; 288.84707 1777800; 289.08465 31241; 289.13311 29069; 289.26546 771; 289.82221 166812; 289.93886 41100; 290.02423 61637; 290.09487 3074088; 290.11514 3635787; 290.15126 1806; 290.18017 5195888; 290.18547 70789; 290.28203 76657; 290.30279 31058; 290.41402 14113; 290.44462 5052155; 290.75642 2287602; 290.93495 28476; 290.97378 57332; 291.00869 10144345; 291.10415 77782; 291.10615 108470; 291.16699 4909711; 291.37121 73682; 291.8703 2800903; 291.9311 70435; 291.94349 5374; 292.36714 26818; 292.4018 10240; 292.69638 1260306; 292.76572 50117; 292.85557 20443; 293.05356 22071; 293.05684 30921; 293.28855 25672; 293.47174 1175273; 293.69409 7157; 293.91247 28485285; 293.99106 8136573; 294.03633 1564004; 294.07506 15302; 294.20714 47002; 294.29157 20845; 294.73603 42219; 294.74894 4403645; 294.78791 4145965; 294.85497 275109; 294.94563 8293; 294.95721 8724819; 294.98969 11858; 295.08302 3765913; 295.25394 1391067; 295.28356 20569041; 295.35528 1514208; 295.57701 28047; 295.61466 1185734; 295.73343 18380; 295.78719 34344; 295.91254 22749; 296.19512 22747; 296.21596 4493857; 296.33393 4757; 296.65648 2708472; 296.66017 1311647; 296.70806 23549; 296.75265 46166; 296.78511 4292499; 296.80463 42749; 296.91843 2736; 296.91864 539267; 296.97109 1860299; 297.06067 1236662; 297.11406 3212; 297.45831 9491336; 297.46134 36528; 297.50911 60084; 297.65114 3576427; 298.54318 134826; 298.56063 20682; 298.84198 167647; 298.98534 4833; 299.02839 5909; 299.40495 26314; 299.42795 568234; 299.56677 25011; 299.68058 10665; 299.68792 117153; 299.71524 44676; 299.88325 2633471; 299.99308 30965; 300.11428 1395; 300.17578 9039328; 300.32851 41009; 300.34775 77682; 300.42756 44724; 300.48676 20337369; 300.65986 12427; 301.00795 1972935; 301.06662 13329471; 301.12379 142786; 301.38852 20680; 301.41668 69228; 302.21897 1120456; 302.23483 179938; 302.37676 8464; 302.58682 44687; 302.84237 49734; 303.40893 8439959; 303.60203 3502683; 303.83991 993; 303.88231 21296; 304.33588 52444; 304.39078 23003; 304.60627 2157075; 304.66735 1714309; 304.71665 409078; 305.06701 1421007; 305.19361 77519; 305.23459 26413539; 305.28297 54110; 305.44781 7624255; 305.84334 1879889; 305.9902 35575; 306.06519 21651; 306.22849 23099; 306.71409 45939; 306.8495 46645; 306.96007 16532; 307.28932 7419926; 307.91438 1962955; 308.02921 18201554; 308.05918 105909; 308.1411 34518; 308.20459 281468; 308.96648 57665; 309.39249 49786; 309.87925 700727; 309.9868 4282; 310.06415 1860523; 310.14195 10450; 310.31017 3684446; 310.38705 28106; 310.91146 1990206; 311.12462 1837500; 311.1886 21885304; 311.53438 1104; 311.74075 42376; 311.83548 75949; 311.89697 4729699; 312.08471 7483119; 312.11777 9993846; 312.11912 936; 312.35137 943722; 312.61975 27002; 312.76681 25916; 312.90782 4814482; 313.04261 151152; 313.31916 9085822; 313.49294 6291392; 313.4979 16777301; 313.54971 27828476; 313.68637 27055; 313.76967 11297881; 314.19655 4223; 314.52784 7661; 314.63059 28652992; 314.71644 3391; 314.84355 180682; 314.89473 1369316; 315.01815 12971; 315.05906 5898178; 315.06422 158036; 315.20693 178515; 315.41854 27776; 315.7358 189456; 315.90218 2965817; 316.02354 343808; 316.45161 9396446; 316.45487 1963009; 316.53374 591229; 316.57535 1587; 316.85397 2654902; 316.92162 901049; 316.93438 604325; 317.41714 4799; 317.62242 15948; 318.03492 35036; 318.75028 39496; 319.01138 28917629; 319.3297 335774; 319.4443 1755376; 319.87929 37863; 319.91556 11533; 319.9799 305735; 320.30083 76335; 320.88689 2438087; 321.18917 79028; 321.34765 840; 321.71188 1114595; 321.752 54988; 321.93541 9985; 322.48008 59587; 322.53639 5776539; 322.67758 45208; 322.85777 5316035; 323.17709 39488; 323.22776 14675; 323.35914 155539; 323.74727 2240012; 324.07698 156765; 324.37162 4897302; 324.47518 46932; 324.58888 76390; 324.59259 1553788; 325.11733 44024; 325.16975 1301; 325.17479 26977; 325.71518 2113884; 326.2506 3729580; 326.39212 4075270; 326.59715 1871855; 326.59872 67253; 326.78169 42550; 326.83898 964476; 326.91052 79642; 327.75222 75058; 327.93398 31093; 327.98403 1243; 328.2297 42376; 328.46188 34949; 328.58361 153045; 328.68703 3455537; 328.79403 19390; 328.83564 9771; 328.93954 9858371; 329.26897 194496; 329.27451 21375; 329.77266 832019; 329.78556 31103; 329.86125 479653; 329.90446 8500; 330.23602 102313; 330.39497 39423; 330.90217 356056; 330.981 71982; 331.2329 166353; 331.35496 4205; 331.40847 34086; 331.5578 7454; 331.64236 62919; 331.93633 33011; 332.14462 6520; 332.2762 2253570; 332.32346 56801; 332.5151 52041; 332.53706 1441683; 332.54789 3042710; 332.6326 29600; 332.69916 1257162; 332.75458 42828; 332.75477 2927894; 332.94986 729179; 333.07197 714306; 333.19847 36253; 333.29727 27756; 333.64609 96072; 333.6924 689713; 333.82213 868820; 333.83176 29901; 333.84076 26213; 333.99703 108429; 334.07121 40498; 334.17432 67902; 334.25736 1520095; 334.32959 1139; 334.45255 156329; 334.48434 1718654; 334.54677 41157; 334.8413 70760; 334.8613 7468056; 335.19156 7315; 335.49458 399691; 335.5971 4860085; 336.03192 60015; 336.106 64485; 336.1757 3048650; 336.72143 4443970; 336.73562 126341; 336.86304 171963; 336.9205 66598; 336.93847 51092; 336.9781 8814019; 337.03184 21022; 337.09275 9854; 337.12684 782400; 337.39326 2303699; 337.76118 4542343; 337.98362 442140; 338.19454 2898056; 339.00353 5333; 339.15842 448939; 339.19319 44401; 339.20833 2814425; 339.35847 75194; 339.55478 68128; 339.55524 10391; 339.56371 50634; 339.595 125515; 339.72105 922038; 339.75178 70951; 339.77008 1721709; 339.82893 150674; 340.10516 194420; 340.49734 1933042; 340.52584 4681; 340.57112 492800; 340.58892 36502; 340.9426 316895; 341.15608 1624380; 341.25881 847769; 341.83387 4143119; 341.88873 3943; 341.93812 23685; 341.94792 35043; 342.00205 1091845; 342.08603 8120; 342.29015 2687952; 342.92581 9322343; 342.97814 283534; 343.07127 4459; 343.16992 71905; 343.21414 1721172; 343.22742 613766; 343.26496 9786529; 343.69401 6502; 343.79592 21554; 343.86741 504152; 344.29074 25358; 344.36338 8497; 344.60501 150684; 344.72314 890779; 344.74812 28596; 344.81545 5055; 344.90668 47899; 344.98833 1542693; 345.04174 27326; 345.20813 188339; 345.44787 4858114; 345.70405 45439; 345.92053 61596; 345.96843 1309133; 346.16449 26938; 346.39986 2777; 346.55455 4292900; 346.61019 40601; 346.95242 503269; 347.59818 23733; 347.61385 816691; 347.63256 21444; 348.19535 16182; 348.34225 1653468; 348.75186 1126928; 349.10015 69725; 349.2271 161933; 349.34441 53146; 349.96091 8758; 350.59712 16247; 350.70773 4957833; 350.86484 8255452; 350.87496 22402; 350.97134 65744; 351.06599 269095; 351.1708 193044; 351.30386 32584; 351.38841 614549; 351.41859 69263; 351.90339 3255; 352.09254 72631; 352.14856 35165; 352.25442 71808; 352.5065 3036458; 352.56095 115429; 352.73833 2365953; 352.74271 8080; 352.77133 63050; 352.77974 79289; 353.04254 7426; 353.94574 30897; 354.31465 43933; 354.52411 34277; 355.12998 53860; 355.2929 257649; 355.37784 8497; 355.71594 20731; 355.78053 1991024; 355.91128 834692; 356.49496 9815930; 356.52735 1561862; 356.56025 143935; 356.80376 166770; 356.80399 29756415; 356.8372 28519; 356.88526 70365; 356.91793 2024; 356.97772 262840; 357.19978 10994; 357.3528 5178; 357.46776 57287; 357.62131 6685; 357.7136 6139; 357.76463 3878819; 357.93357 5560; 358.07122 7827339; 358.10341 55894; 358.19383 758297; 358.44171 4760348; 358.46758 6254; 358.76083 730208; 358.82536 117766; 358.97972 37038; 359.11965 70437; 359.19149 75576; 359.2244 7682994; 359.4218 1356411; 359.63589 2731; 359.68528 39446; 359.7821 49185; 359.80484 708; 359.89838 21505; 359.91846 4205665; 359.95033 33251; 360.30086 1011292; 360.44812 23384; 360.4753 43606; 360.50478 421031; 360.59685 8710; 361.45235 34966; 361.72931 4269044; 361.81968 7334; 361.84648 33168; 361.93536 74658; 361.98279 9264; 362.10701 963523; 362.54467 21424066; 362.59179 15688500; 362.64791 10814706; 362.8837 627654; 363.04242 25723; 363.21188 8309; 363.35456 1182; 363.37711 7245; 363.5413 18176; 363.58826 1819337; 363.67525 3236692; 363.92972 1922305; 364.0729 67655; 364.10262 1938919; 364.11998 137527; 364.26403 35265; 364.26585 27328; 364.38038 5808; 364.99562 181003; 365.35599 30628; 366.22306 17265891; 366.42769 2776272; 366.5009 67203; 366.55273 808; 366.63532 968359; 366.68193 73303; 366.99552 78442; 367.18527 1079160; 367.27182 46873; 367.67826 10235; 367.85913 40985; 367.92868 32840; 368.12884 74647; 368.17321 124874; 368.32527 8134; 369.03417 924; 369.20442 64419; 369.3104 70083; 369.67157 4008850; 369.73064 1756014; 370.02782 6; 370.25132 4993031; 370.28933 6956; 370.31114 5673; 370.33286 24809; 371.13482 9477760; 371.35178 1552315; 371.48686 1443714; 371.94195 21238; 372.11937 3859648; 372.33011 107906; 372.38285 3011738; 372.40982 1925240; 372.42463 27516; 372.47142 299747; 372.71112 122382; 372.781 12519; 372.92014 49177; 373.15717 7081; 373.47435 5917; 373.76134 47437; 373.76858 1937678; 373.77925 996436; 373.83615 4725259; 373.93646 60150; 374.00549 424091; 374.07686 66481; 374.1161 28713; 374.32677 3514622; 374.45965 167439; 374.59251 43823; 374.65496 26761; 374.69698 7679379; 374.84011 85241; 374.85311 8150; 374.96308 6561; 375.14318 8554; 375.65308 58212; 375.87183 62468; 376.05023 1327828; 376.48389 2278262; 376.5561 1269077; 376.62333 27551; 376.64483 882091; 376.66403 50180; 376.73086 106538; 376.80483 507002; 377.10751 6022; 377.12817 20129; 377.22663 76937; 377.30809 76509; 377.3689 59272; 377.40157 19479650; 377.54613 23527; 377.61528 280073; 377.86501 4271016; 377.89336 6195252; 378.04538 1845747; 378.17599 3542889; 378.37022 1340977; 378.59166 61376; 378.68045 55738; 379.25131 57098; 379.44517 20729244; 379.50388 77237; 379.54624 8295964; 379.75014 8896719; 379.97563 560114; 380.07578 841; 380.11231 2272379; 380.19904 70243; 380.60876 1621892; 380.71072 4697; 380.74801 28621; 381.31499 1742507; 381.66122 26402592; 381.69501 64055; 381.81813 56719; 381.90013 4483540; 381.96464 52594; 382.15591 2227843; 382.55949 61467; 382.637 856106; 382.81144 434067; 382.99502 899618; 383.20108 2068382; 383.32364 67460; 383.71775 843660; 383.79057 7912; 383.84727 7197; 383.93903 3169645; 384.24964 2472637; 384.34815 22580; 384.65154 3394; 384.70757 8610; 384.74468 9800565; 384.99881 117091; 385.16886 26059; 385.3313 7638; 385.33944 3377845; 385.46954 841672; 385.62886 1097649; 386.03066 4523; 386.03325 43344; 386.08704 29287; 386.10306 17218; 386.19454 18288042; 386.4528 32350; 386.6141 26688404; 387.4257 871; 387.77655 602418; 388.20755 35524; 388.75081 7326033; 389.4112 30796; 389.44433 21935; 389.46759 430; 389.6902 38373; 389.88795 551155; 389.90431 2794401; 390.07248 3155; 390.13584 13776; 390.20448 14607; 390.22163 3592302; 390.37454 17347; 390.46997 48703; 390.68595 141989; 390.78 15726; 390.90193 57175; 391.10505 183000; 391.44217 29277; 391.48695 3271166; 391.76602 21335051; 391.93431 1610; 392.12151 114; 392.1238 4425; 392.31047 6050584; 392.34886 8920; 393.49351 1516935; 393.78797 25604; 393.79033 57653; 393.89662 110800; 394.09129 26265; 394.28734 1675; 394.36917 11795600; 394.9068 28562; 394.99275 472686; 395.08444 53376; 395.40136 42631; 395.51933 26343; 395.83705 24296; 396.38277 789971; 396.4997 1812405; 396.70544 45572; 396.81983 63428; 396.99566 6375238; 397.06971 12966007; 397.27044 568815; 397.35556 49488; 397.53935 34172; 398.07869 37441; 398.09586 17553207; 398.16901 72698; 398.3241 47405; 398.52019 1109070; 398.65906 39203; 398.93056 28294; 399.04143 56137; 399.19129 67756; 399.69915 318553; 399.82752 121712; 400.56966 1850; 400.6134 21485; 400.84325 2413; 400.9449 17723; 401.15177 637186; 401.34723 18660; 401.83289 3024166; 402.07697 66025; 402.63442 8858867; 402.86251 308900; 403.38035 1402176; 403.81179 35719; 403.87264 26985341; 404.08829 67038; 404.29338 56609; 404.53318 3880943; 404.67333 3815989; 404.78537 7270807; 404.85748 23286; 404.92154 64673; 404.94142 8447879; 404.98286 660448; 404.99951 10570207; 405.07212 2694322; 405.19731 42310; 405.24051 55167; 405.39789 104206; 405.44612 9130754; 405.58766 25599; 405.68941 27244; 405.74279 7027; 405.91349 595276; 405.97824 22226; 406.03643 1369872; 406.07522 6386; 407.11566 114357; 407.41926 145163; 407.73919 8543; 407.80424 19946; 407.91788 5058; 407.99776 92267; 408.10088 24549; 408.14083 9193480; 408.16922 16038; 408.21275 1868; 408.28752 1401650; 408.32104 3569602; 408.41553 27030; 408.42849 571722; 408.85815 48158; 408.93712 37241; 408.97408 3003; 409.06823 106625; 409.0781 73571; 409.28189 2315322; 409.496 4544; 409.71467 45891; 409.75052 77560; 409.99768 149596; 410.24633 50824; 410.27171 66838; 410.32329 6496347; 410.53451 810199; 410.58522 72041; 410.85545 7328870; 411.4328 8264; 412.0505 4667391; 412.34818 2813631; 412.63559 1092541; 412.85307 7117; 413.1573 62496; 413.29393 23371; 413.4037 21400; 413.82682 307095; 413.90029 13191420; 413.92522 37618; 414.25716 49530; 414.48334 69718; 414.87845 4636181; 414.95273 1364243; 415.03699 765261; 415.11853 4123; 415.32315 2021; 415.8378 993; 416.06289 37620; 416.14311 50341; 416.42488 1916; 416.56441 9359; 416.9382 11418; 417.09485 841; 417.14957 40448; 417.30399 6538; 417.33508 167436; 417.40216 24050; 417.84915 28168080; 418.23281 2169932; 418.4407 3720013; 418.44308 823591; 418.56953 948418; 418.73453 19823; 418.82377 1249066; 418.91511 1446224; 419.11888 725783; 419.13133 12864057; 419.18578 65070; 419.75691 73362; 419.82353 9023264; 419.91311 305904; 420.29657 6872155; 420.56883 44180; 420.69674 62672; 420.74984 10369; 420.88554 8263398; 421.27397 4185933; 421.40659 19122; 421.63083 2897; 421.91704 1338013; 422.39696 3987451; 422.55527 4368874; 422.63617 53325; 422.66964 3817098; 422.72427 30114; 422.7591 14007; 422.90424 6123301; 422.90899 113497; 422.98394 3931191; 423.13495 3023330; 423.18303 7731287; 423.22656 62082; 423.2593 22239; 423.35701 1232436; 423.41887 66048; 423.55257 1662431; 423.99115 46614; 424.24755 18244142; 424.61981 56102; 424.65653 53805; 424.7381 2456013; 424.74453 29439; 425.13359 52676; 425.14297 9544; 425.40085 1236002; 425.64679 2479528; 425.78716 1462446; 426.01335 12051; 426.06558 66782; 426.11642 28147; 426.24436 701396; 426.26545 243534; 426.86584 396; 426.96756 76454; 427.22781 624353; 427.3993 1562; 427.4189 6308; 427.44039 14775971; 427.63768 362126; 427.93311 4859709; 428.03219 4605376; 428.19691 4430927; 428.30798 3610117; 428.67371 3536140; 428.75339 48522; 428.7784 48580; 429.18149 78697; 429.50217 8759; 429.66847 1341631; 429.72122 1793470; 429.76475 380; 429.85594 23118070; 429.86673 42463; 429.94601 75189; 429.96649 1850930; 430.0756 1319443; 430.12168 1534304; 430.20239 449513; 430.38567 26884; 430.40278 24417540; 430.47581 5048; 430.50583 4845287; 430.5746 457979; 430.68973 3436963; 430.7023 216065; 430.70301 5151; 430.86791 6420116; 430.9766 93434; 431.28484 26452; 431.36088 66644; 431.47249 257426; 431.55742 9086; 431.67378 34908; 431.74373 215242; 432.26129 127536; 432.36137 140345; 432.47921 23966; 432.76015 155108; 433.6678 2091; 433.75885 212460; 433.86234 56349; 434.26804 56784; 434.2706 36965; 434.72614 1936077; 434.95978 67772; 435.18509 79959; 435.20046 28817; 435.24393 22430; 435.84345 1539742; 435.9839 761687; 436.00472 1529; 436.14864 6778758; 436.19684 17484; 436.27214 512665; 436.3317 2879; 436.44646 350483; 436.53629 963837; 436.562 3392416; 436.74713 621755; 437.28907 1996158; 437.38974 9778153; 437.40383 28811; 437.48148 1722630; 437.54265 133110; 437.62165 1564727; 437.76471 1157790; 438.06522 39767; 438.09168 145016; 438.11742 372197; 438.27378 2306; 438.29695 6088; 438.3569 476120; 438.36153 2412961; 438.66021 186338; 438.68476 3843790; 439.03734 1626856; 439.06795 35237; 439.31682 19952; 439.44517 7891504; 439.45251 284895; 439.51431 48659; 439.79068 71388; 440.05472 3561134; 440.43126 60441; 440.57439 657380; 440.59289 166309; 440.85505 47504; 441.43873 593134; 441.53184 188548; 441.61156 71161; 441.62457 274855; 441.64446 3981813; 441.74811 1792650; 442.05379 5248999; 442.13651 86857; 442.84427 1877153; 442.98595 4280841; 443.28031 170705; 443.36727 40756; 443.54331 38647; 443.8012 254297; 443.80791 2024; 444.11203 284358; 444.22791 364911; 444.62656 12516; 444.70529 46134; 444.85155 54482; 444.85268 85612; 445.24977 8800; 445.33839 496629; 445.96756 25819; 446.0657 333243; 446.31723 310144; 446.46509 4114; 446.91051 8085080; 447.11114 389963; 447.38406 1934412; 447.5551 13162; 447.836 8345; 447.85087 393239; 448.06358 1257351; 448.14304 45462; 448.23108 21506; 448.30603 190870; 448.49205 7995100; 448.61349 3058587; 448.68184 97; 448.7499 64345; 448.92382 18132306; 448.93111 47357; 449.30134 79465; 449.92556 115547; 450.37863 1535020; 450.40704 7615; 450.41534 4424022; 450.6641 31470; 451.03526 499157; 451.04249 31358; 451.13657 55333; 451.28256 27250; 451.42807 52878; 451.47236 459087; 451.63288 993466; 451.77823 62854; 451.80534 907912; 451.82561 74126; 451.94621 44040; 451.98355 68592; 452.03363 3681; 452.18576 961928; 452.19958 4790319; 452.4203 26716; 452.46761 52455; 452.66677 9010190; 452.67282 814926; 452.8161 57602; 452.8962 23884; 453.07488 3191052; 453.12235 2016457; 453.21685 1442095; 453.34138 269769; 453.48883 602652; 453.50926 4752161; 453.83411 282971; 453.91555 27092; 454.14502 1292725; 454.63229 6107643; 454.7028 3078349; 455.44934 1547709; 455.82831 3144152; 456.00484 4746233; 456.07218 23252; 456.15236 80322; 456.19078 20085319; 456.34522 56375; 456.60772 2009238; 456.67317 2713259; 456.75857 926568; 456.97652 4523; 457.00878 64418; 457.32746 684; 457.33261 55904; 457.47216 4424749; 457.65907 6969; 458.23672 9686066; 458.24042 1575660; 458.41051 7847; 458.67882 1811829; 458.71231 24677; 458.81616 43991; 458.86896 2668658; 459.0224 3798684; 459.06114 47210; 459.08262 32927; 459.2374 843051; 459.49251 7813; 459.53025 4705314; 459.54475 63208; 459.55076 230; 459.94156 87246; 460.24273 4884027; 460.4509 156858; 461.25401 3643233; 461.47582 902152; 461.5111 29834; 461.61576 28133717; 461.81242 83096; 461.89856 4501089; 461.92176 58007; 462.76506 6266; 462.7709 71872; 462.77981 40231; 462.86171 4167; 463.10696 1171642; 463.1104 21748; 463.14977 187014; 463.22739 84920; 463.24016 71389; 463.50215 72894; 463.65894 188324; 463.7388 3467673; 463.99789 1607196; 464.33546 43260; 464.51959 4243109; 464.64512 68988; 464.71958 907473; 464.85753 189118; 464.8929 75046; 464.9076 6377667; 464.98016 2187710; 465.23311 3133; 465.42812 49765; 465.50425 7106; 465.51597 2343815; 465.91344 7043553; 465.93363 18629782; 466.20229 7536; 466.3911 103477; 466.42943 35630; 466.54544 16265; 467.23474 1467711; 467.23932 548934; 467.5645 26350; 467.59343 1023; 467.644 25546; 467.70235 13937; 467.83658 5105; 467.92531 9411989; 467.97669 875; 468.1339 8685808; 468.14073 45189; 468.28751 68933; 468.4028 67090; 468.66943 56; 468.73511 29532371; 468.91651 3284741; 468.92694 612593; 469.11447 464192; 469.39152 79753; 470.02885 3760; 470.26655 20287; 470.55242 4040; 470.5827 81647; 470.9499 77791; 470.95706 8614740; 470.98378 9090; 471.03289 41754; 471.47012 9694476; 471.5925 1998217; 471.70315 21722; 471.70527 9318; 471.7338 112215; 471.74815 123992; 471.98291 33997; 472.00352 63553; 472.07981 3759236; 472.14921 960; 472.18543 4447781; 472.62802 3767; 473.19083 1484577; 473.33222 34278; 473.50176 1144798; 473.51895 3229139; 473.7179 26834366; 473.8367 2903244; 474.38671 126482; 474.3968 198506; 474.45889 1166959; 474.46883 39189; 474.62602 173948; 474.66645 32067; 474.99506 53571; 475.03025 26612; 475.17636 179231; 475.18206 54249; 475.36612 4220462; 475.37704 41316; 475.60335 10458; 475.68894 7228110; 475.99298 153192; 476.64974 925357; 476.65424 95488; 476.65686 21740163; 476.95918 2902723; 477.11396 79408; 477.27877 76172; 477.39119 30207; 477.6536 1885700; 477.84819 31468; 478.27377 2133804; 478.33725 1130093; 478.59284 197310; 478.87414 66505; 478.94663 1404093; 479.20221 74580; 480.14748 502415; 480.60917 2478660; 480.65973 25173; 480.73938 67861; 480.74884 3455447; 480.97178 2414544; 481.09421 4134441; 481.28422 871647; 481.31155 386621; 481.34497 4679093; 481.52916 180565; 481.81477 4185311; 481.82998 34596; 481.97631 31008; 481.99774 32818; 482.16515 9718; 482.18681 1965; 482.40762 3015; 482.44055 109613; 482.53656 2837; 482.76591 10788; 482.82379 49226; 482.89258 25086; 483.03192 9230; 483.19585 1972577; 483.99135 25611; 484.18284 804770; 484.23349 54529; 484.25011 40747; 484.25192 2704330; 484.3531 728109; 484.42635 6727; 484.606 7159; 485.52291 129012; 485.72817 5590; 485.78823 12567785; 486.13383 1302598; 486.17418 180010; 486.8491 8533; 487.12902 11659033; 487.26077 131176; 487.32253 79527; 487.62646 49889; 487.63287 1756968; 487.74828 21146; 488.46219 863246; 488.57662 20197; 488.7196 13460; 489.29315 6522; 489.32031 19000; 489.33023 1000499; 489.63479 53332; 490.45147 9253106; 490.46077 830094; 490.46091 247982; 490.48316 625715; 490.48866 61130; 490.52731 1229586; 490.63312 12996; 490.83428 50470; 491.38225 900091; 491.5077 9755; 491.52906 63158; 491.80387 229298; 492.05062 9136054; 492.5654 502496; 492.70181 54700; 492.70227 8126; 492.79014 15977583; 492.83069 4305; 492.93161 2551660; 492.96416 4116; 494.11437 16999; 494.44094 952038; 494.68454 9025; 495.01346 2133743; 495.11037 15619; 495.13259 5745; 495.19137 740689; 495.19735 7445399; 496.02792 92789; 496.72683 2452; 496.87925 2151145; 496.90483 841324; 497.08418 15351; 497.18156 26401; 497.21851 48990; 497.26315 28948; 497.30584 62673; 497.33664 949282; 497.35744 6001; 497.38712 6155; 497.44359 16463; 497.50928 74473; 497.78756 508916; 497.87773 69686; 498.0554 1268932; 498.08419 9394; 498.10448 47765; 498.21091 6388; 498.25046 450239; 498.33059 6553; 498.37832 1943; 498.44568 815609; 498.45067 3991521; 498.53689 3609372; 498.71633 1831952; 498.94471 8113357; 499.1529 3899724; 499.50005 3086514 diff --git a/traffic/traffic_5e9_4.txt b/traffic/traffic_5e9_4.txt new file mode 100644 index 0000000..4d8350d --- /dev/null +++ b/traffic/traffic_5e9_4.txt @@ -0,0 +1,7 @@ +<4, 0>: 0.10287 155986; 0.13867 19999; 0.49218 4589139; 0.88873 52680; 0.89834 1782761; 1.28912 73629; 1.29195 38971; 1.33438 4542944; 1.64879 1716028; 1.75586 7868; 1.78942 28648; 2.15417 5111629; 2.16076 87597; 2.47609 87124; 2.57647 787667; 2.58787 65486; 2.59972 2106358; 2.79017 60267; 2.92208 52616; 2.92517 25287; 2.98223 63448; 3.00997 7783206; 3.0459 7045892; 3.10947 9993644; 3.25031 2320890; 3.28878 6049592; 3.36554 181354; 3.50218 143210; 3.55022 796383; 3.64174 37392; 3.67165 4; 3.6778 1582558; 4.50667 21124; 4.57734 4048411; 4.73935 1974719; 4.75432 61988; 4.82531 165928; 4.84132 2139143; 5.14196 207512; 5.22452 1655; 5.36186 2463554; 5.82768 712; 6.04796 153; 6.05719 4193933; 6.45141 51867; 6.53284 2963; 6.77587 35254; 7.02599 2533539; 7.06935 7373424; 7.2856 384737; 7.3515 115391; 7.48025 2982; 7.72076 58172; 8.07489 146885; 8.11252 58422; 8.1258 901988; 8.48692 6982; 8.83527 4921808; 9.75427 321326; 9.84708 5468579; 9.91875 3293940; 9.93118 93105; 10.52777 6188061; 10.55561 21937; 10.90727 804392; 11.09766 6939; 11.34099 63864; 11.42135 57538; 11.47884 21521; 11.67991 2028945; 11.81885 3268652; 11.98184 5040; 12.11724 2581874; 12.18782 429456; 12.22527 66982; 12.27175 24828; 12.33069 150; 12.41133 289160; 12.67307 970100; 13.01227 44074; 13.10205 12463; 13.38805 132840; 14.05878 144670; 14.20121 62411; 14.48233 1295754; 14.75069 2645025; 15.27209 9734242; 15.28335 30681; 15.43388 3886716; 15.43413 29135; 15.67761 3423; 15.8506 13229; 15.95672 27710; 16.29254 54450; 16.7389 14496; 16.74446 1334340; 16.93341 48915; 16.94682 85209; 17.21936 1959088; 17.2462 58599; 17.38026 7624; 17.4235 1449435; 17.46237 2660; 17.47373 28775; 17.57261 23346331; 17.69107 1131197; 17.70837 1431577; 17.73967 62000; 17.83458 11090; 17.88962 78033; 17.97913 1937797; 18.64321 187484; 18.75927 79132; 19.0768 28077; 19.1657 3303; 19.17264 6202611; 19.43342 83482; 19.44126 288006; 19.54772 387385; 19.65934 8432475; 19.88917 55102; 20.05688 6275; 20.06569 25130028; 20.24319 30843; 20.34532 24929945; 20.58467 1786420; 20.99843 28524; 21.26502 9481; 21.40064 28650; 21.43758 16327130; 21.51909 22608; 21.60469 33354; 21.64667 46421; 21.65479 52180; 21.81269 517725; 21.89563 9803782; 22.02069 3798047; 22.04522 15607; 22.29817 21099950; 22.39049 887324; 22.44339 121512; 22.50783 3757394; 22.6112 2299428; 23.06334 6177; 23.20478 108210; 23.47236 7928223; 23.62322 40095; 23.96381 1093769; 24.41512 981334; 24.46793 2410885; 24.52922 24009; 24.62769 1097689; 25.15824 60619; 25.44786 42257; 25.59503 23811; 25.60201 1890053; 25.80396 5540; 25.81659 67501; 25.8804 1908234; 25.98423 11366; 26.03605 332826; 26.19249 22601; 26.39558 3298874; 26.5211 119340; 26.60326 157585; 26.63936 4988511; 26.82303 75980; 26.94665 25400; 27.35345 806055; 27.42784 2990063; 27.69745 1613; 28.64463 26572; 28.80022 2982492; 29.0844 40928; 29.24283 9232; 29.43915 618026; 29.57146 1875230; 29.66557 11428; 29.83975 8665770; 29.8419 21780; 29.96524 1069089; 30.32347 5708693; 30.38034 950175; 30.7313 20814; 30.86253 6367; 30.87708 40234; 31.00976 51974; 31.01267 27654; 31.1429 54113; 31.51045 835746; 31.54228 17227; 31.62762 135543; 31.65056 2932249; 31.67752 47775; 31.77226 30244; 31.87966 1428922; 31.92998 144963; 32.29942 529; 32.67661 10282099; 32.68822 99139; 32.69478 67001; 32.8166 47877; 32.85742 999272; 32.85955 109204; 32.93509 7329; 33.12456 617824; 33.50685 671673; 33.63559 407; 33.99016 2703026; 34.04315 3196896; 34.86321 760945; 35.05983 1229561; 35.11008 1973486; 35.37184 1821836; 35.59187 74034; 35.70851 602028; 36.07001 40970; 36.11987 30525; 36.54836 665309; 36.59963 17727025; 36.60505 1443798; 36.91862 425125; 37.05207 1910602; 37.25618 4752; 37.56876 24434414; 37.66816 3646311; 38.28567 6905; 38.53448 419; 38.54941 6843; 38.59178 111338; 39.10952 6438045; 39.15384 73824; 39.53126 2776; 39.54168 70123; 39.83068 124108; 40.0175 68061; 40.08913 121406; 40.47673 58430; 40.81057 27338; 40.85559 77131; 41.10788 72365; 41.15348 152404; 41.31106 35408; 41.52688 84739; 41.5342 452191; 41.74672 3250; 42.01208 183980; 42.15465 24906; 42.28202 24141; 42.31083 9450042; 42.37176 71110; 42.44151 1021918; 42.47747 81945; 42.61901 215385; 42.82196 9616; 42.86699 9214; 43.12128 50407; 43.42369 959977; 43.42662 2378475; 43.58946 33536; 43.75651 558837; 43.9082 1538844; 43.92261 2192773; 44.29846 78660; 44.82521 4370788; 44.90524 52325; 44.93514 6859; 45.10714 55690; 45.3296 22967; 45.74877 119602; 45.86672 71588; 45.87426 106672; 46.16837 24654; 46.23485 26081; 46.3391 4476620; 46.37562 5327; 46.66591 1248028; 46.73661 20138; 46.78293 29236734; 46.99267 7057404; 47.17204 770923; 47.47042 424817; 47.48656 10145; 47.65389 8128; 47.88733 5658791; 48.32356 25063; 48.37093 16926437; 48.42645 33960; 48.52851 281959; 48.78772 57401; 48.82011 5654; 49.01999 67068; 49.10458 37538; 49.60097 61160; 49.8244 20378; 50.15504 158758; 50.20147 52416; 50.3904 6837; 50.44279 776009; 50.49711 5798209; 50.58598 42953; 50.8217 9376556; 50.83356 20235; 50.93257 118121; 51.20876 2596633; 51.46606 5321527; 51.48411 25804; 51.49564 6880; 51.73458 15925674; 51.99078 33941; 51.99492 3521731; 52.06995 1508; 52.21814 194486; 52.27498 6326; 52.30145 50215; 52.30863 4212192; 52.31545 112203; 52.79683 4200; 53.03677 5480; 53.03788 1235998; 53.07404 28847; 53.28128 75789; 53.34108 595552; 53.45835 48567; 53.59981 793803; 53.80007 1172104; 54.16886 28826; 54.39032 4335; 54.40204 11518; 54.40223 62925; 54.49543 24678; 54.5286 156752; 54.68027 66855; 54.79055 8548432; 54.99476 1716427; 55.0742 45954; 55.24578 48816; 55.40367 1346364; 55.42795 4340334; 55.44961 4544119; 55.46218 27380; 55.53736 58710; 55.85272 678961; 55.86228 7897228; 56.39973 32794; 56.5824 3002834; 56.99331 1917; 57.19507 24327; 57.2505 3833019; 57.25065 40097; 57.39401 52895; 57.40903 1979049; 57.93963 61434; 58.20304 15638; 58.56746 9616825; 58.59701 8280428; 58.67577 135240; 58.76361 29233; 58.80712 726917; 59.04889 11021836; 59.10593 982840; 59.35743 3886463; 59.37284 21066; 59.42475 145835; 59.6192 6384927; 59.6949 5589766; 59.80524 396468; 60.0315 8343; 60.45608 17577; 60.89548 21426; 60.92703 32388; 61.02454 30773; 62.04567 13354; 62.65904 487177; 62.80554 55418; 62.81144 50864; 63.14754 3434255; 63.51498 71515; 63.51585 64247; 63.52472 67178; 63.87738 4248452; 64.13231 38064; 64.28698 15381; 64.51157 1203870; 64.62368 21479; 64.63431 50471; 64.67171 36350; 64.88297 126593; 65.29729 221832; 65.44764 139708; 65.49709 64903; 65.81531 2251279; 65.88248 1602; 66.17092 2040508; 67.05701 24912; 67.26861 65922; 67.38224 9986; 67.48954 536595; 67.91056 48298; 68.07765 2409; 68.39319 4029235; 68.47883 19121130; 68.60391 1646515; 69.2225 2912263; 69.25776 51912; 69.33115 54641; 69.52532 8929; 69.56722 48930; 69.62984 21291; 69.75662 1058614; 69.7847 46015; 69.81388 9895050; 69.88001 1806889; 69.91942 1911062; 70.13729 486700; 70.21211 20005; 70.7379 21765; 70.86741 380353; 70.98268 317521; 71.00167 146367; 71.04704 29575; 71.29836 2727; 71.57013 631853; 71.58954 58447; 71.72047 2397208; 71.82989 1451366; 72.29234 8580; 72.32481 8397392; 72.71854 29044; 72.89861 77889; 73.31207 50356; 73.40858 22283; 73.41433 24829495; 73.57793 718529; 73.98637 45879; 74.06351 229062; 74.0653 44413; 74.69512 294274; 74.8263 1617021; 74.98133 9545; 75.77334 1050539; 75.9694 3985947; 76.11048 130577; 76.46938 4948; 76.5358 9923; 76.57819 71408; 76.89326 842034; 76.8966 54945; 76.9242 138910; 77.1187 4211623; 77.44588 30972; 77.45002 8754; 77.68501 3341796; 77.73559 30796; 77.82627 149244; 77.8845 24336; 77.99221 42034; 78.18493 1791685; 78.43564 76812; 78.53196 410702; 78.56245 833286; 78.61508 182748; 78.94415 2801; 78.98834 75293; 79.37336 1859289; 79.37425 44056; 79.46796 361360; 79.66159 21851; 79.74967 8359615; 79.83801 155186; 80.06303 3606489; 80.09338 68113; 80.15763 44173; 80.17136 15669454; 80.24406 70513; 80.66165 1770420; 81.12335 46839; 81.42212 53216; 81.63043 22358; 81.73393 14599827; 82.18624 45213; 82.65664 5815027; 82.66387 159237; 82.79027 8144385; 82.80507 3250; 82.81881 33725; 82.93761 35277; 83.01812 985266; 83.16997 9518; 83.49732 149736; 83.53306 166009; 83.66646 8426; 83.8858 1475801; 84.13966 2419; 84.16677 9190582; 84.33381 4806; 84.40859 1411598; 84.45694 953693; 84.51888 174937; 84.87699 2111776; 84.9249 33408; 84.96707 989722; 85.27393 20158; 85.33827 8668085; 85.40133 516746; 85.78315 27464; 85.88841 8629; 86.11485 1166225; 86.22487 46547; 86.29261 52946; 86.49738 28685; 86.57825 3663955; 86.58821 76965; 86.65228 189030; 86.72796 2298650; 86.73157 628; 87.08272 33259; 87.13103 9585; 87.38886 33400; 87.42911 2653; 87.4987 37201; 87.73989 7393; 87.8088 33484; 88.32177 42280; 88.78578 1194136; 88.83826 831885; 88.87857 72336; 88.88036 147245; 89.52971 4639549; 89.56025 233862; 89.63487 23733; 89.73099 2941; 89.99662 21283; 90.35076 6607; 90.40217 3056939; 90.7104 77382; 90.98052 3068; 91.22824 22359; 91.35214 10512; 91.4962 3386; 91.66776 6572; 91.67611 14794172; 91.82971 697405; 91.84234 177911; 91.8491 4251; 91.94636 360; 92.15709 7913601; 92.31333 7776792; 92.52033 2383041; 92.52997 9765; 92.83133 523096; 93.23789 62045; 93.26873 6097033; 93.55159 322008; 93.66841 4530678; 93.91068 11445; 94.05894 74408; 94.0721 8604409; 94.18802 332813; 94.22801 7188596; 94.29673 29499; 94.35804 17683977; 94.42828 1060725; 94.50109 7655; 94.55158 15391; 94.56402 41231; 94.70268 571510; 95.22061 29129; 95.38398 160405; 95.39686 7209; 95.48683 2170; 95.62209 2497145; 95.88383 1903133; 96.11722 74939; 96.28948 9654; 96.32267 9274; 96.64909 34618; 96.6917 9495; 96.79833 6880007; 96.79973 166334; 97.08469 3317380; 97.19402 6964637; 97.33371 1955411; 97.4231 13569; 97.65857 297975; 97.69045 553963; 97.783 525; 97.87308 52909; 98.30489 4595; 98.42257 17827; 98.51051 21839; 98.76417 3624967; 98.99883 20607; 99.06255 5832; 99.33828 3986895; 99.44074 204167; 100.40488 364690; 100.63307 52163; 100.73332 3857041; 101.38368 79260; 101.70948 22837; 102.05718 182766; 102.17088 63128; 102.25397 21090; 102.26318 31393; 102.44172 16660843; 102.67918 2472930; 102.97646 25552; 103.09141 1981686; 103.29091 69400; 103.31338 24943; 103.51639 877383; 103.68146 1535082; 103.6852 169723; 103.87996 24140; 104.29226 2806957; 104.41551 2362; 104.45696 2037021; 104.48038 4104; 104.60583 1179981; 104.70005 3976982; 104.76129 498026; 104.77846 1692264; 105.17543 1508967; 105.17927 4635; 105.23731 739659; 105.63262 78765; 105.70215 153957; 105.74046 3766; 105.80095 17791665; 105.81304 281447; 106.01012 1703744; 106.12436 2725; 106.32628 69751; 106.4918 434634; 106.74616 3529389; 106.82995 5032; 106.93346 76378; 107.04968 121234; 107.25527 22158; 107.42795 2091114; 107.59436 5331619; 107.62679 420577; 107.95448 1510688; 108.07241 1250763; 108.17838 54880; 108.2989 2054155; 108.68679 846605; 108.93757 53777; 108.96862 20857; 108.98709 7690208; 109.05041 53075; 109.19417 78492; 109.58452 413875; 109.80614 6300; 110.13268 808; 110.25746 3123; 110.28818 788780; 110.32484 774; 110.35233 22485; 110.35691 58849; 110.64602 967897; 110.94808 29112302; 111.09503 380774; 111.12133 1302934; 111.14328 3791106; 111.37375 43187; 111.48797 21415; 111.60541 2579491; 111.62958 61186; 111.85621 49119; 112.36382 3209982; 112.40425 434968; 112.73755 66486; 112.85527 1386853; 112.88335 4735981; 112.95615 1446760; 113.19836 6399929; 113.24987 8532; 113.33866 4193223; 113.3514 91155; 113.44675 72356; 113.51679 58234; 113.6861 2342; 113.70836 11985; 113.777 927225; 113.87662 3054101; 114.00045 4403906; 114.05106 2667059; 114.18119 175264; 114.20614 1597953; 114.28562 769851; 114.57884 54728; 114.88078 8949138; 114.98342 1291; 115.10271 25355; 115.3039 71866; 115.71909 1670068; 115.9331 666457; 116.0165 44423; 116.23632 6932; 116.4071 77340; 116.64943 108088; 116.95197 1870238; 117.02656 1517; 117.21097 2713461; 117.5579 8921; 117.69109 45217; 118.59537 1180050; 118.72575 5026442; 118.77044 1805576; 119.06783 20223; 119.23801 42558; 119.26485 114366; 119.62242 27395321; 119.75278 8816522; 119.93832 20920; 119.99688 9260021; 120.01909 2524342; 120.11953 40426; 120.2495 89343; 120.56298 290571; 120.99146 24381; 121.81659 7532; 121.81977 951061; 122.01828 1953; 122.25696 75427; 122.33288 1903498; 122.33646 26701; 122.34829 1907778; 122.37721 1807820; 122.39609 117510; 122.45031 1718339; 122.49679 21441; 122.60178 558472; 122.89297 7569; 122.99317 352251; 123.32865 3629291; 123.99588 7512; 124.08955 26518; 124.10096 2982401; 124.12603 1624935; 124.47588 985916; 124.48287 43244; 124.52538 145320; 124.53146 471336; 124.77163 22868; 124.90917 1261805; 124.9183 8874; 125.38634 31593; 125.56125 145993; 125.74378 131381; 125.75395 1929661; 125.76675 34857; 125.84983 136832; 126.24854 272539; 126.35834 163789; 126.43851 545452; 126.53126 59975; 126.81331 29353; 126.88035 1065802; 126.88544 24569; 126.96569 870513; 127.02393 5617183; 127.37791 56628; 127.45488 19423; 127.50076 98053; 127.70964 40609; 127.96943 827945; 128.18233 58760; 128.30027 85985; 128.45057 6977; 128.47574 29377; 128.50018 2636572; 128.66872 67056; 128.70719 14700; 128.81858 1532556; 130.03624 3815254; 130.04162 21869; 130.11511 1734506; 130.20797 1458684; 130.24365 50729; 130.29129 6797431; 131.0604 577586; 131.82988 3194960; 132.11858 319682; 132.14445 169931; 132.86798 1528224; 132.91821 1921950; 132.99586 2103321; 133.88656 73122; 133.92912 25735; 134.07772 44808; 134.58395 121944; 134.64342 9438234; 135.0697 792161; 135.42605 22595; 135.56862 953794; 135.69976 6044756; 135.71293 4777; 135.84598 29643; 135.86268 26560477; 136.05177 429834; 136.11784 1411; 136.36963 964503; 136.40487 25990295; 136.42959 75174; 136.82375 5520657; 137.40435 194; 137.68439 5355; 137.69397 28061; 138.18404 1850; 138.32601 7377302; 138.64844 54777; 138.72396 5257; 138.75128 459822; 138.98108 1390680; 139.01815 14248330; 139.03557 15721; 139.30707 155491; 139.42082 111804; 139.44749 76816; 139.58104 9365827; 139.69666 72279; 139.81351 720036; 139.82828 24344; 139.89463 88568; 140.67655 38274; 140.82311 16394; 140.86432 8765234; 140.86838 529954; 140.93691 13660; 140.99781 78940; 141.02425 630432; 141.19681 25190532; 141.3297 49398; 141.43899 27791; 141.66296 1259761; 141.81404 29470532; 141.86353 8158; 141.89454 1681886; 142.19715 196396; 142.36643 3442; 142.57371 437168; 142.66027 312907; 142.67988 39496; 142.95116 388698; 143.14558 1135850; 143.33415 13297; 143.74895 745732; 143.81885 3022; 143.89804 7153800; 144.02933 20528; 144.4929 3958537; 144.64581 5697315; 144.73864 9097305; 144.98218 19283; 145.02673 20914; 145.03444 256753; 145.34694 1827804; 145.4188 1956265; 145.45143 3596; 145.55525 9417; 145.61132 4996096; 146.04067 40526; 146.16696 9281012; 146.19102 72134; 146.37142 4935771; 146.38411 60014; 146.64522 34384; 146.81547 3325088; 146.85066 61898; 146.8725 5053602; 147.3011 4768; 147.30317 56643; 147.44272 14487556; 147.46764 21028; 147.89402 1089635; 148.32031 1114900; 148.38009 48994; 148.61523 31328; 148.64756 1146977; 148.89683 28337705; 148.92211 595799; 149.27588 261; 149.41734 8859; 149.72812 51659; 150.02711 44882; 150.16949 4998140; 150.38781 19312; 150.65306 3483121; 150.65815 5867251; 150.85295 8567370; 150.8883 1031; 150.91665 26200; 150.95884 29871; 151.08789 1193719; 151.1709 350527; 151.19267 298871; 151.21376 146764; 151.42202 1318810; 151.4553 64358; 151.63582 6048; 151.69961 41570; 151.96678 25507012; 152.38082 5527337; 152.53542 4332; 152.70854 7454; 153.03166 12124; 153.31579 626442; 153.38357 305; 153.44986 92; 153.73325 572536; 153.83807 1135300; 153.84895 1969714; 153.90303 4405161; 154.05384 9136007; 154.13251 14627; 154.18654 29726; 154.34772 37456; 154.35858 8041; 154.69137 61612; 154.85564 198925; 154.99202 2158832; 155.03093 2937462; 155.06895 29299; 155.27308 110787; 155.35493 1345536; 155.64974 54100; 156.15174 13421; 156.30654 24550; 156.3489 2551; 156.3536 8033349; 156.4445 68015; 156.55912 5421; 157.22115 7612114; 157.26586 817732; 157.33807 41841; 157.60151 2795330; 157.6035 382743; 157.88591 252; 158.19646 90384; 158.4535 351788; 158.60481 25789; 158.71388 4337; 158.72531 1907444; 158.99024 58999; 159.0088 20840; 159.40502 25317; 159.49663 5478192; 159.50624 78589; 159.53834 23065; 159.73574 57777; 159.77319 77687; 159.78463 8038871; 159.83857 4274; 160.57736 3033; 160.9695 373762; 160.9953 29280752; 161.12433 10457; 161.16694 3952336; 161.43182 44734; 161.43232 372749; 161.84977 1363058; 161.93337 900385; 162.12109 26564; 162.13353 57733; 162.19773 501163; 162.31474 95118; 162.65569 5391552; 162.77795 3396388; 163.16099 14449716; 163.28531 2382; 163.37499 3838558; 163.37773 24897; 163.44667 57679; 163.64724 4257; 163.65193 31453; 163.93882 438684; 164.05548 70132; 164.06713 18984075; 164.19002 25864; 164.20474 823097; 164.23752 8949; 164.30295 2453628; 164.43854 7589; 164.55493 777; 164.63876 8868; 164.67305 71452; 164.69104 5635949; 164.80901 49954; 165.02088 2776594; 166.25255 9301201; 166.26207 52829; 166.2979 20902; 166.4786 2583272; 166.65257 2508425; 166.65393 28020684; 166.699 43665; 166.9186 71420; 167.00117 78059; 167.09336 9245204; 167.46456 66714; 167.53736 8587718; 168.02429 1464; 168.08226 40022; 168.15372 56180; 168.16179 55459; 168.38316 10886389; 168.62586 60630; 168.63241 5735058; 169.1192 26904; 169.19942 29537; 169.44152 1651791; 169.66118 340682; 169.71071 27690233; 169.9813 28039; 170.01152 57819; 170.54133 5385007; 170.54794 6518; 170.99811 731349; 171.14917 28613; 171.55635 481529; 171.62701 6388; 171.97987 127552; 172.17174 25886; 172.19454 559066; 172.51286 6816; 172.55445 9748195; 172.63647 43541; 172.64565 64066; 173.09141 1539728; 173.25974 11031; 173.40842 44224; 173.43123 1638221; 173.48368 6348994; 173.56509 25599; 173.62055 3415791; 173.68395 31; 173.70098 787311; 173.77413 371463; 173.90945 3216; 174.24893 1526117; 174.29564 3296637; 174.46055 521666; 174.49973 537669; 174.53923 1928058; 174.64737 112365; 174.75521 75357; 174.77435 711541; 175.07034 3250848; 175.07178 229241; 175.19235 306660; 175.36656 6000470; 175.39855 289301; 175.56626 25381; 175.57379 41619; 175.62834 63215; 175.75101 53409; 175.92152 4455800; 176.00889 50566; 176.05766 66827; 176.41475 11726141; 176.4303 50758; 176.46005 78202; 176.54404 2320401; 176.94876 26399; 177.03074 10944108; 177.17275 1336682; 177.51114 43387; 177.60903 3268708; 177.90348 62982; 177.93793 75527; 178.0837 8324860; 178.14007 31384; 178.14547 1710; 178.23024 7103591; 178.27826 9348; 178.37722 15299; 178.38128 10400; 178.77309 55504; 179.10923 75962; 179.30365 9770; 179.34349 649054; 180.40451 21630341; 180.49888 756557; 180.58049 7356076; 180.647 55160; 180.80242 814197; 181.44511 386738; 181.54477 50273; 181.6049 56497; 181.93761 2708904; 182.22129 231; 182.23674 1451478; 182.45398 52449; 182.50286 675448; 182.67587 24313; 182.79038 11393; 182.84151 1174222; 182.90676 3379769; 183.4905 4211083; 183.78288 2024613; 183.82779 22997; 183.84687 105129; 184.15611 19552261; 184.21092 35987; 184.34925 43169; 184.49065 3418732; 184.66861 187354; 184.70622 65987; 184.93691 133728; 184.96964 411889; 185.04981 23778; 185.19394 940880; 185.19495 4486872; 185.31652 1979; 185.51004 1167862; 185.72195 25909; 185.85123 663680; 185.9404 17176; 185.97339 36211; 186.23666 9852; 186.54831 1030988; 186.69673 4271579; 186.70019 3972; 186.82653 11910; 186.90785 2713358; 187.16394 79950; 187.19016 164911; 187.2129 24208; 187.43221 22249; 187.46615 954307; 187.48787 4311; 187.58321 573882; 187.99701 20500; 188.03411 4005704; 188.05698 34178; 188.12156 5369581; 188.3996 12591; 188.56862 18926; 188.73906 9702; 188.76862 6577; 188.78143 3541847; 188.79441 2730; 188.83852 1708067; 188.85172 5934; 189.02032 182673; 189.02676 48865; 189.29979 28415; 189.38288 1740541; 189.7478 41113; 189.86559 28379; 190.20535 9191; 190.21119 6570564; 190.24357 79469; 190.41282 975843; 190.51895 824235; 190.93213 9599084; 191.14029 103568; 191.21408 728863; 191.30242 1020811; 191.43983 771521; 191.457 18922776; 191.49576 7797; 191.54013 49694; 191.54991 146843; 191.67062 54967; 192.08043 9708; 192.33029 79036; 192.3412 477999; 192.44953 9608; 192.53052 24205; 192.55591 929855; 192.68901 74854; 192.75612 26833; 193.21224 3213015; 193.8339 79221; 193.90435 2900250; 193.95425 948992; 194.02673 4837; 194.23071 74312; 194.37134 26028; 194.39323 9255; 194.39885 25200; 194.67633 3139446; 194.7667 18764; 195.3027 1864863; 195.30928 1420112; 195.31746 31855; 195.45276 190260; 195.47177 1186095; 196.07465 9957536; 196.30843 21422; 196.53125 1474340; 196.84928 1549337; 197.12212 482246; 197.14498 7477940; 197.28364 1807955; 197.50366 29695459; 197.67931 1355; 197.70135 4744; 197.77915 24607; 198.10258 524419; 198.17065 8327; 198.17437 12067; 198.20809 540960; 198.38445 1614491; 198.78558 1164874; 198.89475 61817; 199.05724 1054504; 199.11973 41869; 199.36913 3423998; 199.38924 12980; 199.39722 1632496; 199.61525 441585; 200.33195 505195; 200.64315 131654; 201.26426 6934; 201.34279 5103164; 201.50553 123591; 201.58923 20474; 201.64852 99842; 202.01562 84463; 202.17533 4546567; 202.34016 7358525; 202.87607 8263; 202.8816 1932120; 203.19273 58015; 203.31597 7541; 203.44996 1808905; 203.57538 4809; 203.94279 47266; 204.04462 4095; 204.37465 874444; 204.40884 29393; 204.46931 3424423; 204.52133 56456; 204.88699 2070; 204.95186 161958; 205.14008 26000; 205.62786 9838; 205.9988 1250590; 206.03339 50011; 206.0786 9083176; 206.13711 76360; 206.28603 64702; 206.50886 112618; 206.58386 74447; 206.62957 75864; 207.0028 2939; 207.8644 2708034; 208.06604 4120; 208.11775 41679; 208.24663 42716; 208.27221 181868; 208.34471 549403; 208.39783 1471238; 208.4103 1455481; 208.75263 5250195; 209.48175 4758448; 209.49513 518894; 209.65389 10805; 209.70462 8335; 209.803 1976277; 210.01242 1728037; 210.06821 2954482; 210.42269 44989; 210.59504 63615; 210.61359 47292; 210.6267 23909; 211.02816 22881; 211.04838 568224; 211.20575 47579; 211.32972 1325; 211.67654 35352; 211.70722 41345; 211.71537 2435426; 211.85417 5559; 212.02429 1435936; 212.03908 792062; 212.04731 33322; 212.87773 415002; 212.96318 27249; 213.19576 22642; 213.23708 52957; 213.33011 152; 213.35246 1637674; 213.40765 33232; 213.44123 1907660; 213.50165 3914511; 213.52729 28186; 213.90152 4070020; 214.37858 609582; 214.67233 79642; 214.68515 672154; 214.73353 28399; 214.85467 146316; 214.86254 2496713; 215.31521 6652867; 215.46419 2348040; 215.47996 8836; 215.48531 647252; 215.59747 89928; 215.61842 18858; 216.19576 1102858; 216.22413 1841; 216.30471 145825; 216.48 157260; 216.62171 7017; 216.73334 168929; 217.18214 47482; 217.24881 22896473; 217.34537 3521; 217.42142 100490; 217.52896 3047; 217.59843 6656713; 217.65159 1045556; 217.66516 38716; 217.83443 23921; 218.95246 4170600; 219.20666 3664861; 219.24084 8201031; 219.37773 44532; 219.71462 52253; 219.84449 23168; 219.95951 2557; 220.02274 25173; 220.05982 26662; 220.70755 850182; 220.75639 3047; 220.98093 36098; 221.18033 558395; 221.34747 58892; 221.55635 9318; 221.56577 739144; 221.60218 1024892; 222.17354 1776159; 222.31863 822770; 223.368 6129; 223.57965 806485; 223.64626 788; 223.70765 1257964; 224.0753 9774; 224.14579 17480; 224.74543 57705; 224.78191 1787752; 225.58573 4723446; 225.68924 826386; 225.97589 4190534; 226.14346 9507593; 226.34978 7978; 226.44455 79702; 226.67982 5844; 226.8233 847085; 226.96156 14013; 226.99326 635528; 227.08807 12568209; 227.13388 46668; 227.30399 7702965; 227.34289 829; 227.63553 137937; 228.22834 8384702; 228.45128 1418; 228.47516 25932; 228.81646 15304; 229.01997 6483649; 229.17528 49709; 229.77947 26706; 229.908 18924202; 230.05164 3032; 230.32408 21920; 230.38872 10902; 230.55859 7919; 230.77217 26333; 230.98839 8973; 231.09965 5356550; 231.19031 26574; 231.25713 33849; 231.25793 1435706; 231.40864 36684; 231.69075 22251; 231.71883 185523; 231.72692 1281541; 231.73398 400621; 231.95308 62966; 231.95912 58929; 231.97326 8359; 232.03413 8772731; 232.04145 8345487; 232.17576 1509312; 232.57644 17454; 232.7605 2597728; 233.22219 35249; 233.30034 8283; 233.41309 394; 233.5611 197318; 233.65203 28525; 233.68764 46614; 233.94686 29043; 234.1859 6789; 234.22255 37893; 234.23471 26515; 234.3423 6479205; 234.44359 8345; 234.48118 9277; 234.74403 96668; 234.78511 47809; 234.80882 42231; 235.02335 8893; 235.10052 929175; 235.35186 164335; 235.36142 1885499; 235.48214 758059; 235.74646 189423; 236.16773 21504155; 236.52267 17234; 236.62133 7670; 236.77602 60571; 237.10161 4588043; 237.1158 43755; 237.31093 2871; 237.38145 365658; 237.49445 1528888; 237.68691 13446; 237.74068 47266; 237.90253 44955; 237.92276 5600; 238.12853 1335936; 238.24957 1479111; 238.74232 5512440; 238.92633 13900; 239.08493 91381; 239.13288 8436; 239.27961 8681; 239.37281 2647197; 239.64309 3804; 239.79834 8804860; 239.80945 5056177; 240.02858 2323137; 240.1608 7641713; 240.16276 27696; 240.24356 13284233; 240.66895 31236; 241.09492 4707022; 241.24141 6113359; 241.25654 3535080; 241.26506 3955719; 241.33729 8495; 241.47609 1752149; 241.63609 1421416; 241.69762 8705; 241.74722 1353101; 241.8351 36558; 241.86638 3880; 242.35423 7716829; 242.64016 53032; 242.79577 1745670; 242.89051 396; 243.14902 3057; 243.89449 59594; 243.91311 68972; 243.92283 1748173; 244.12604 27284; 244.15887 19336495; 244.27689 3018546; 244.39116 6911; 244.39851 29570; 244.54729 23654; 244.61111 523076; 244.62333 79477; 245.38541 1136767; 245.72396 23745; 245.74624 1740; 246.05641 78400; 246.76515 1355422; 247.33055 310185; 247.35706 23952; 247.53428 33748; 247.65248 24352; 247.68012 6006; 248.32193 58622; 248.39045 9784542; 248.80193 6822; 248.94945 30604; 249.16992 505785; 249.30987 25278735; 249.48705 3508886; 249.60546 2145965; 249.95978 31042; 250.05596 6813447; 250.1742 25129191; 250.18842 33275; 250.79951 4422889; 250.84233 66160; 251.40223 7302; 251.43062 50119; 251.51656 26126; 251.58356 54145; 251.60753 447413; 251.87776 1556576; 251.89523 18398; 251.9325 26692; 252.33771 8280497; 252.37014 18681; 252.66759 6208967; 252.87807 31878; 253.11717 16905191; 253.30571 21165; 253.73289 5247; 253.75157 29307; 253.99393 39252; 254.05768 1812827; 254.25027 712047; 254.31147 64055; 255.03735 1267454; 255.1792 73444; 255.19527 25557; 255.2022 759; 255.23912 8117; 255.47418 339680; 255.57236 24865; 256.04588 9106; 256.07578 1254802; 256.07672 23068; 256.22498 1190387; 256.29251 1025612; 256.50382 17016; 256.57253 25515; 256.58224 42199; 256.5923 681075; 256.71084 9488237; 257.00827 27209; 257.15962 2538338; 257.67279 66670; 257.99255 420131; 258.00636 28802; 258.19843 376697; 258.26546 8105; 258.30079 27758143; 258.64021 25593; 258.83562 12486; 258.92712 137980; 259.17254 18595485; 259.18753 60808; 259.28923 2504600; 259.39304 5665; 259.57827 79487; 259.69886 1933371; 259.96687 14915; 260.00785 1658936; 260.07625 35542; 260.21084 22899; 260.28673 64022; 260.42832 75455; 260.57808 123417; 260.68981 7906243; 260.86598 72534; 261.97557 14590; 262.05208 31810; 262.39039 45688; 262.43856 47423; 262.49394 3734912; 262.64795 3115081; 262.80044 11465; 263.33018 7619; 263.33785 1873669; 263.62595 1210221; 263.72813 68270; 264.15461 1801360; 264.20386 259396; 264.21368 73686; 264.32379 4383902; 264.69801 32269; 264.82676 3975662; 264.98245 9675; 265.13781 1771151; 265.46744 69752; 265.56662 1595170; 265.57811 3160661; 266.17402 182810; 266.19093 797151; 266.23762 34911; 266.28786 1101362; 266.52712 9613; 266.63872 42853; 266.78862 62850; 267.05817 63415; 267.14573 6071; 267.1912 1632823; 267.5285 43071; 267.8783 9820; 267.97491 42638; 268.38254 662897; 268.51146 216204; 268.56081 52103; 268.87011 62244; 268.94327 22296; 269.14722 187849; 269.19455 2569205; 269.4693 1475329; 270.15772 4309821; 270.31122 183121; 270.45084 1861727; 270.63214 4589624; 270.89753 3103390; 271.07814 635; 271.12572 64417; 271.24635 3384289; 271.32562 2700029; 271.35962 27965; 271.36808 16420; 271.59017 27108; 271.67199 26430; 271.95049 1709446; 272.17343 58020; 272.23462 5065296; 272.49112 129579; 272.97236 4382141; 272.99419 2991557; 273.40808 2659062; 273.70625 658332; 273.82284 54812; 273.83658 540404; 274.67379 11060; 274.97566 650237; 274.97574 7564532; 275.05274 5231450; 275.36821 56164; 275.3808 2312; 275.4457 58668; 275.5117 93626; 275.55428 8091227; 275.7571 74195; 276.27513 45747; 276.46135 76278; 276.51487 51876; 276.59536 38151; 276.68255 41654; 276.78402 20783; 276.99513 13168; 277.08022 16158; 277.46992 2800784; 277.52276 1568971; 277.88564 1042207; 277.96944 2324558; 278.19388 11450329; 278.26638 8243; 278.29081 138334; 278.37046 1652913; 278.96019 7517; 279.08428 8683614; 279.5755 6179; 280.00926 33267; 280.25786 41617; 280.37951 11860; 280.58438 1971823; 280.72405 1296; 281.01773 1063; 281.19808 4707181; 281.39777 1530977; 281.44444 322066; 281.90897 64580; 281.99293 105011; 282.14948 1106940; 282.15372 4591; 282.39595 5840726; 282.92133 32604; 282.92265 1538095; 282.93435 448144; 282.97898 9685; 283.23981 77500; 283.37317 864417; 283.55101 41898; 283.83793 1191144; 284.10936 24626; 284.28391 67408; 284.69228 1441780; 284.73517 166637; 284.77249 7917; 284.89406 172728; 284.90196 9315; 285.08118 236799; 285.15475 25172200; 285.22885 10926; 285.33406 59205; 285.52082 4370; 285.71279 22576; 286.04639 65398; 286.05952 10717; 286.06644 37247; 286.17459 9648; 286.32826 2987; 287.179 9822457; 287.56751 26860; 287.66122 1398828; 287.69291 32128; 287.77089 142195; 288.00367 27578; 288.04022 4067837; 288.11495 43847; 288.32494 6309829; 288.78663 3780; 288.86838 13285857; 289.48335 2649214; 289.7571 37677; 289.81287 71576; 289.86714 767; 290.0451 9484; 290.08992 1317919; 290.11507 60601; 290.34196 5414; 290.58515 2197124; 290.78061 992; 290.87669 656; 290.92962 9806894; 291.00705 5600; 291.06832 1198571; 291.07546 1954522; 291.15824 23834; 291.34041 66368; 291.50429 601758; 291.77818 3720; 292.56508 1122615; 292.58048 73472; 292.69094 30354; 292.70162 4609349; 292.80493 6384674; 293.05191 3895; 293.11836 7247; 293.20572 9473; 293.23103 113; 293.2529 1183020; 293.30908 42806; 293.36607 300910; 293.37647 55917; 293.41789 3078401; 293.93542 2250; 294.01181 1892641; 294.05278 53085; 294.89571 1023235; 295.19605 36518; 295.4505 26996; 295.45203 43164; 295.66823 5546; 295.70108 20014; 295.98623 1948037; 296.11235 4973; 296.33665 1860841; 296.40724 3946; 296.41321 4398525; 296.67656 6891461; 296.74614 2421897; 296.82326 1966086; 296.98868 20662; 297.09873 6964; 297.29301 6795122; 297.69423 12075714; 297.8771 39212; 297.91436 707802; 297.92945 49027; 297.97469 2529605; 298.0185 1076182; 298.02565 739080; 298.1067 8688369; 298.24198 1288627; 298.26972 653493; 298.37058 5993385; 298.5203 131464; 298.83079 2882132; 298.84109 3024241; 298.88012 181639; 299.02309 2145701; 299.14883 37409; 299.39768 33944; 299.54659 8727547; 299.81793 186635; 299.84866 52165; 300.50777 41181; 300.74073 4527; 300.74231 44259; 300.75634 69313; 300.84711 5851; 300.98371 233; 301.08734 1299533; 301.33018 5148233; 301.85843 3636188; 301.86195 894718; 302.32208 285930; 302.32589 3821915; 302.46976 24038; 302.50762 8412; 302.51889 127729; 302.52588 11545; 302.58942 20560; 302.75294 1329696; 303.21276 5665817; 303.67707 27316; 303.71685 7401785; 303.93119 6337560; 304.14163 393212; 304.52022 22545; 304.55053 60037; 304.64248 3894; 304.68336 77994; 304.71876 63916; 304.78175 879294; 304.9581 24815670; 304.99812 13115; 305.62231 34499; 305.70474 2837168; 305.78131 27152; 305.80217 20799; 305.90988 8657537; 305.92531 24024; 306.34843 4446607; 306.35012 29589; 306.98629 1903584; 307.10822 1922395; 307.16127 196883; 307.28533 5233467; 307.39961 6624; 307.7413 3520; 307.94748 129437; 308.06124 3613410; 308.0878 695513; 308.15507 2826825; 308.1771 13483; 308.32185 3579; 308.40478 136304; 309.19946 17375798; 309.47116 61387; 309.5899 46110; 309.96445 8060301; 310.05258 51096; 310.05603 35950; 310.08151 1035732; 310.32095 1922205; 310.45272 6661; 310.54388 11349; 310.55285 57013; 310.60226 7232; 310.68428 20285; 310.69233 84822; 310.77155 4977; 310.81351 76744; 310.82445 3999273; 311.38367 6321; 311.64353 185186; 312.10456 71094; 312.15479 117807; 312.33154 36386; 312.34072 6552; 312.38464 23006; 312.53229 115222; 312.56671 32957; 313.17686 1153; 313.22133 46308; 313.47967 129648; 313.83045 76606; 314.03297 3184533; 314.17663 34203; 314.2612 6034; 314.42779 1987496; 314.56834 30881; 314.61107 1251531; 314.72848 76141; 314.77928 45588; 314.97305 178036; 315.2852 3827949; 315.41232 74406; 315.56898 72014; 315.59414 2827110; 315.74979 47476; 315.76412 771360; 315.97542 653074; 316.07234 8288017; 316.25221 8955; 316.31575 1847530; 316.3314 4473485; 316.38019 18507; 316.51503 2733; 316.53326 426068; 316.55429 8723644; 318.02305 4478; 318.06285 27266; 318.07062 27759; 318.19699 3252811; 318.26448 1776623; 318.66242 23846; 318.71187 1342832; 318.80288 38209; 318.86827 27886; 319.07732 4880340; 319.38284 7325807; 319.77892 8562; 320.03806 3411798; 320.33204 54807; 320.5664 26848; 320.79512 20654; 320.80918 31945; 321.57204 7563; 321.85 25795; 321.99184 13584; 322.33811 3807474; 323.15485 176192; 323.1857 1248869; 323.39689 3713; 323.42142 62625; 323.84268 28113; 323.84554 2582867; 324.00212 69516; 324.04189 179600; 324.31889 3430; 324.86864 3649; 325.22822 70152; 325.2558 44859; 325.50565 53605; 325.8635 456; 325.95417 8521; 325.97729 1675863; 326.27544 1760; 326.68451 26504; 326.82248 527158; 326.90577 931096; 326.94106 7115; 327.09463 1940; 327.23723 54158; 327.3097 13969; 327.48327 1809676; 327.54147 31067; 327.65652 167074; 327.8101 29727; 328.04766 7824; 328.26527 2312; 328.41939 52228; 328.61811 64009; 328.69547 33658; 328.80631 5780235; 328.84418 30133; 328.85446 983696; 329.2772 63745; 329.29922 1408342; 329.35107 573517; 329.9219 7479413; 329.95692 151640; 330.08506 23100; 330.34689 716108; 330.54451 353058; 330.55091 8205; 330.55883 853050; 330.56793 16103; 330.82583 4529552; 331.06246 144363; 331.16929 8423852; 331.32444 1946967; 331.34439 14550; 331.81109 43631; 331.81496 86696; 332.01847 32682; 332.02107 20703; 332.27213 918550; 332.49352 2695; 332.57923 12883; 332.67293 1151186; 332.99295 194016; 333.06903 124916; 333.18909 9861946; 333.26623 323908; 333.28996 3823983; 333.2935 11160; 333.45033 595844; 333.45238 22542; 333.87215 1825542; 334.00596 876740; 334.02921 7957; 334.1719 436737; 334.31917 9667; 334.37746 21252; 334.51954 37477; 334.56102 24091; 334.92087 196120; 335.07346 5974; 335.19249 36505; 335.37102 1454144; 335.45392 2987; 335.52503 598279; 335.54955 24996; 335.56816 67200; 335.64223 12041; 335.7741 49635; 335.79232 174661; 335.94619 75771; 336.29269 50062; 336.31744 4214894; 336.35596 3776; 336.42534 106786; 336.60272 3712678; 336.88991 77509; 337.08349 5062; 337.0959 62578; 337.56265 62605; 337.74108 19522648; 337.89177 9027; 338.07985 3277041; 338.31887 14169; 338.32412 51992; 339.19093 75938; 339.31758 1203761; 339.40631 261835; 339.50124 8105; 339.57566 46465; 339.85038 2567691; 339.98135 5658995; 340.03651 3026924; 340.12032 3056; 340.22851 187067; 340.31162 807013; 340.32201 74094; 340.43042 100851; 340.52246 25928; 340.7228 4570; 340.79302 73723; 341.25558 3319827; 341.34446 4844; 342.00029 1891779; 342.04891 25706; 342.2721 691124; 342.3589 127057; 342.91781 5643; 342.94419 9587597; 343.455 30158; 343.51028 11632; 343.87256 3800; 344.22242 1147; 344.24893 4248812; 344.25546 40707; 344.55848 73986; 344.65669 92992; 344.71601 2104; 344.72506 78937; 344.82512 8421; 344.84762 397227; 344.89743 27517; 344.98846 1444072; 345.3254 66945; 345.65598 4626; 345.96191 3103176; 346.56193 24579; 346.60764 176793; 346.88723 37325; 346.89211 72600; 347.23285 1379671; 347.40808 36736; 347.46029 21576320; 347.52712 19617409; 347.53393 54005; 347.57442 8039119; 347.59478 33521; 347.60095 72564; 348.09102 2483; 348.2138 77717; 348.85503 114288; 348.86908 62754; 349.40014 51903; 349.89633 137054; 350.03066 73737; 350.13068 6485; 350.25933 8339; 350.32227 32479; 350.41464 15074; 350.51053 7808762; 350.58446 54542; 350.59122 74512; 350.91755 26350; 350.98644 36844; 351.17638 43904; 351.20461 1039717; 351.33702 30468; 351.60456 8600; 351.69482 6126108; 351.73127 4990719; 351.89053 81913; 351.97368 79279; 352.04604 20567; 352.11245 908; 352.44256 26384; 352.51357 1412708; 352.63245 6882; 352.6503 6452; 352.67213 389936; 352.76652 1346450; 352.8448 63205; 353.38647 13476; 353.49257 2182; 353.50995 29223; 353.59788 7114553; 353.60433 27097; 353.88379 72168; 353.9843 17682985; 354.05813 60081; 354.14719 37367; 354.23641 4192648; 354.26221 9536282; 354.32784 2796; 354.33242 425503; 354.43473 62325; 354.59691 1279; 354.68985 9368264; 354.74651 5053082; 354.9781 14784124; 355.25295 1396910; 355.27466 33046; 355.7103 46749; 355.72512 40228; 355.79999 57253; 355.95979 24620; 356.09825 4107200; 356.62666 71865; 356.76498 228230; 356.86711 3740821; 356.89171 7115; 357.06509 8365783; 357.77397 1091652; 357.83537 1348; 357.98938 1360680; 358.1008 3122650; 358.35029 4348; 358.42281 57538; 358.69873 1569372; 359.01325 1390475; 359.197 4228100; 359.37335 796505; 359.37874 3727899; 359.38616 2903; 359.57024 681743; 359.80673 2206556; 359.92328 56037; 360.57205 1114; 361.04865 1665; 361.18742 3671543; 361.20758 28415; 361.45594 16882980; 361.49303 263341; 361.60333 362611; 361.60765 5659091; 361.97188 21378; 362.23074 32307; 362.29664 2753; 362.30069 65960; 362.3844 320782; 362.5139 123188; 362.77936 180376; 362.88355 1682984; 363.03704 24288; 363.43163 162459; 363.48887 1703654; 363.76685 62156; 363.78823 7107; 363.88875 22329; 363.99776 24197; 364.14088 9120; 364.14481 40593; 364.33396 32021; 364.35036 6988; 364.52807 27117129; 364.7405 6133; 364.81958 21975; 364.97724 158; 365.00779 35528; 365.08345 26416; 365.34997 52438; 365.41336 7848548; 365.44777 22169; 365.913 1824771; 366.22138 661256; 366.24088 384432; 366.36126 79779; 366.47099 15237053; 366.67641 65772; 366.77456 1769789; 366.84613 5920937; 366.92764 69914; 367.29257 6358484; 367.33323 4163604; 367.36926 46127; 367.40706 2081266; 367.60902 29915; 368.02829 167312; 368.09274 113113; 368.19183 25266; 368.22338 46483; 368.57894 7031; 368.7477 675163; 369.00431 489793; 369.02491 45263; 369.05662 1504464; 369.54538 2508; 369.55318 2422; 369.59686 22991; 369.6048 53153; 369.75056 53197; 369.79615 28516; 370.1441 19000; 370.25361 585997; 370.38868 18566493; 370.51605 856493; 370.59911 578414; 370.66544 794001; 370.7199 1455810; 371.06376 18286769; 371.58321 6903; 371.7763 25924; 371.8587 9299459; 371.908 83722; 372.24509 67961; 372.44407 28550; 372.72179 171695; 372.80427 9849; 372.91172 24284; 373.01624 59457; 373.03167 1757613; 373.33784 48612; 373.67593 2231605; 373.94688 7018; 374.13653 5499907; 374.52851 11595; 374.9938 31861; 375.31106 519557; 375.53981 8862547; 375.66654 3654; 375.75332 328234; 376.03167 8285589; 376.34814 39501; 376.3801 3808438; 376.537 67181; 376.69195 224942; 376.84843 34216; 376.94496 43525; 376.97778 1013; 376.97863 953406; 377.21591 23608; 377.7673 3322128; 377.7827 39300; 378.01395 8506; 378.13117 9601; 378.55905 2747; 378.5873 3918455; 378.60013 7811; 378.71391 2062699; 378.79701 1504; 379.18889 179055; 379.4124 2555647; 379.49887 2460083; 379.74134 43115; 380.12454 1329304; 380.18268 14081; 380.22005 119957; 380.39716 3048071; 380.42861 58378; 380.48514 2689; 380.84978 63641; 381.14419 29856; 381.16771 1491; 381.30362 12634; 381.42144 41116; 381.4451 605074; 381.49044 2803008; 381.60865 308678; 381.78708 54190; 381.79312 1054623; 382.64146 11082022; 382.73743 19907067; 383.61172 64344; 383.79566 29383; 383.84677 633112; 383.94929 477721; 384.33252 19851; 384.39284 259596; 385.03459 43550; 385.50741 183836; 385.90147 44248; 385.92804 2197543; 386.17777 2497; 386.29833 691; 386.45612 32493; 386.50734 762874; 386.60535 752839; 386.83096 1302914; 387.04276 6376895; 387.156 7074736; 387.27891 1984899; 387.53218 4074210; 387.77291 6688868; 387.9902 4173584; 388.2272 56605; 388.25754 2682627; 388.39219 5939077; 388.48444 17987321; 388.55164 7929; 388.59362 45; 388.68501 20654; 388.70426 8231; 389.15724 8030; 389.3768 5876; 389.6994 6009337; 389.89191 95470; 389.93749 76695; 390.03776 7546662; 390.15897 193442; 390.63125 5070858; 390.68438 60655; 390.85658 1867364; 391.00997 83844; 391.04225 1055243; 391.06751 7655883; 391.06941 31373; 391.47165 30860; 391.80481 7689; 391.82035 5278; 392.03922 47196; 392.41258 9537; 392.4781 31845; 392.4909 75863; 393.5489 33683; 393.60579 970701; 393.67869 3115318; 393.69412 15611; 393.88097 30943; 394.05768 2846989; 394.15664 70124; 394.2326 1411320; 394.4803 3872486; 394.72113 24036; 395.35177 836190; 395.68937 229960; 395.6902 367; 396.0023 1733065; 396.03851 4039476; 396.05156 28430; 396.21325 185887; 396.42347 29382; 396.70973 927249; 397.0247 81989; 397.58432 1041993; 397.99754 26639; 398.0094 1022607; 398.77256 4221450; 399.26211 38756; 399.47936 5942461; 399.97098 4054156; 399.97768 65762; 399.9812 12945; 400.07241 26279; 400.13081 61175; 400.55588 439903; 400.59679 2231914; 400.73805 52955; 400.79908 50864; 401.39564 28606; 401.40581 881; 401.41032 9786; 401.4142 9690; 401.59222 1357; 401.62534 3548677; 401.80714 57102; 402.55902 39534; 402.7663 1217765; 402.76982 18979; 403.06617 5309900; 403.24796 26117346; 403.4247 75319; 403.80553 8753357; 403.85631 313; 404.42564 22296; 404.62331 7098758; 404.68595 155561; 404.89151 27749; 404.99087 9465; 405.06735 22454; 405.28447 6477; 405.33986 57395; 405.37317 131; 405.51742 545; 406.12615 1938529; 406.22052 25367; 406.24479 48912; 406.53743 9992; 406.7045 82480; 407.21463 75690; 407.21975 78436; 407.81048 396523; 407.8615 56211; 408.02805 18386; 408.16101 33690; 408.31248 80500; 408.53626 1362; 408.5902 5814; 408.72611 58926; 409.34617 5084; 409.56906 30637; 409.60107 62096; 409.71446 476410; 409.71643 25590; 409.98229 1614431; 410.01301 1372131; 410.09428 88659; 410.10493 90376; 410.33923 2387805; 410.695 1956661; 410.72157 6425490; 410.94638 4040618; 411.0514 8960116; 411.31853 826092; 411.3723 129134; 411.38369 1911090; 411.44129 9733; 411.47727 748225; 411.70206 1098924; 411.70616 25099; 411.71237 1979287; 411.7803 34175; 411.7946 2201; 412.18197 21814; 412.29684 2805933; 412.31099 2450181; 412.60779 28669; 413.31718 13181; 413.43755 35445; 414.03977 5898659; 414.55141 1661; 414.83934 10515644; 415.09131 27779; 415.10012 7340; 415.19624 79550; 415.30874 690870; 415.5291 69917; 415.58001 1136499; 415.8413 2902; 415.8498 160545; 416.32688 4022; 416.65449 2826; 416.68258 1598598; 416.73466 3961738; 416.83019 1568617; 416.89049 3463; 417.78642 274289; 417.80013 5696; 418.4409 5296; 418.44103 154622; 418.60055 3305146; 418.65016 68839; 419.07578 4093955; 419.20545 147540; 419.31986 464834; 419.32583 9555531; 419.65862 29519; 419.77056 5502247; 419.78476 1434; 419.89914 1244; 420.39165 701565; 420.63037 381095; 420.69579 9872; 420.81403 258100; 420.81778 29167; 420.871 8140; 421.02919 56601; 421.38278 966772; 421.47894 4781; 421.48588 8375; 421.67286 1095247; 421.71018 9192; 421.91444 1823427; 422.0656 197526; 422.10571 27242972; 422.19793 1388; 422.44808 5111; 422.68164 20656; 422.80566 78286; 423.46657 1305235; 423.52505 40480; 423.79266 148933; 424.13722 6077737; 424.33716 66412; 424.3884 1083425; 424.55765 8808572; 424.78574 41053; 424.97406 23134; 425.02154 14633; 425.07214 68776; 425.50066 23995; 425.58613 5406464; 425.73726 22547; 425.75169 6396190; 425.86055 1781158; 426.54549 1656785; 426.96189 1869134; 426.97078 1076382; 427.21928 35215; 427.44172 8425; 427.59696 784191; 427.75073 1247789; 427.97559 9357671; 428.45139 3507674; 428.46473 9872; 428.47383 64940; 428.62772 6807; 428.70593 523298; 428.71446 129704; 428.74466 9656440; 428.76604 7261; 429.27667 25024; 429.39173 1447126; 429.44589 26920; 429.58591 443582; 429.82307 1218782; 429.83874 243720; 429.94713 2632544; 430.11834 49697; 430.41451 1002480; 430.87387 29812343; 431.14978 9206; 431.25832 4234907; 431.26228 12643; 431.52267 194880; 432.00385 6101; 432.2605 4765988; 432.33897 1855; 432.39446 3590246; 432.40174 4564326; 432.48979 5193; 432.73025 5103217; 433.01675 20155; 433.14234 21113; 433.16503 5091; 433.29062 26611; 433.30792 1361683; 433.56427 43277; 433.63147 2611416; 433.90986 32184; 433.92016 46256; 434.4424 932090; 434.46491 27335714; 434.70513 27277; 435.03178 2404096; 435.1758 3367; 435.46934 4531900; 435.72634 20739; 436.158 48912; 436.31546 8900964; 436.38384 79741; 436.5022 27502; 436.64004 4068333; 436.72048 2240; 437.20259 959400; 437.27725 2995; 437.89079 9278; 437.90311 182879; 437.92751 15797; 437.95473 10865; 438.11984 176029; 438.41203 1027574; 438.62556 126865; 438.65117 90424; 438.9279 4383686; 439.00166 160245; 439.26636 30912; 439.49176 1648436; 440.19355 79698; 440.2719 4434435; 440.31029 12318; 440.34928 14943; 440.35831 61976; 440.47243 8838820; 440.69009 1340266; 440.85478 8978922; 440.94806 9956987; 440.96174 1872; 441.45135 2898261; 441.79069 70542; 442.00575 9082224; 443.19 750978; 443.35849 60918; 443.57575 944364; 443.65297 1363951; 443.78018 173918; 443.8227 25934; 443.95185 932528; 444.11416 61671; 444.17041 603586; 444.29661 1488; 444.45241 8643; 444.88415 74756; 444.96775 6999; 445.02553 4481; 445.13618 25457; 445.22326 64164; 445.54008 63838; 445.73363 7224748; 445.98695 50011; 446.3367 128451; 446.36808 1316883; 446.3761 1702720; 446.63167 659501; 446.78413 987755; 446.86365 6282264; 447.31894 15991; 447.3367 32735; 447.50245 2106546; 448.15342 831616; 448.45262 28777; 448.80748 1298373; 448.95075 29749; 449.03288 4668; 449.21369 10409; 449.22095 946188; 449.43041 1489130; 449.77149 218352; 450.0536 46565; 450.6568 9891465; 450.79205 329613; 451.20787 65545; 451.3113 5889; 451.73105 1424503; 452.28622 8137784; 452.60786 867044; 452.75735 47559; 452.94573 5254842; 453.47222 1430378; 453.56789 23910902; 453.58375 8925420; 453.61506 22990; 453.62604 8503016; 453.68436 8769039; 454.39018 1051642; 454.44152 9565083; 454.44493 1800687; 454.4874 2973868; 454.54299 641270; 454.64972 40359; 454.85504 27424816; 454.9275 6970; 455.03222 4084; 455.06932 629061; 455.2326 53880; 455.40791 3405617; 455.48423 705347; 455.77117 40660; 455.93175 2586; 455.96607 8102396; 456.0586 53441; 456.13135 39425; 456.17827 97705; 456.26099 31880; 456.64903 23571; 456.70113 21893113; 456.85017 34258; 456.98926 1411124; 457.18583 1291; 457.64482 2260; 457.71017 9282; 457.71819 159738; 458.06684 65041; 458.09358 2562; 458.34054 758498; 458.43008 2674368; 458.65027 131723; 459.24631 273582; 459.27955 549327; 459.40153 3406557; 459.70513 1641061; 459.7283 42020; 459.77846 8254; 460.05259 72471; 460.58646 165506; 460.92628 30560; 460.9838 28661; 461.06424 3208355; 461.29884 7332; 461.32153 18990; 461.38521 29128; 461.72843 7805; 462.16268 56084; 462.49409 9497; 462.87806 2693927; 463.02672 34388; 463.14662 30293; 463.49761 56408; 463.56845 6197; 463.67108 2980326; 463.81757 14842; 464.00304 2379002; 464.32159 27812; 464.44375 1563342; 464.52981 11475; 464.56122 57259; 464.59954 4404189; 464.92462 391352; 465.19793 58759; 465.76655 41344; 465.79181 918940; 465.88549 80795; 466.2674 46252; 466.31737 107163; 466.88798 3357; 467.21881 23148; 467.54929 5170273; 467.61482 4378; 467.93305 28803934; 468.17547 24166; 468.38572 3439; 468.41449 2685387; 468.9345 848041; 469.37145 65761; 469.38545 63079; 469.60736 29207; 469.73352 3904; 469.75121 10986; 470.08858 23758; 470.26384 4008239; 470.2882 1480829; 470.34428 3608; 470.37228 1674495; 470.60547 73863; 470.92026 1195297; 471.30817 7025590; 471.36892 24890; 471.41154 1953383; 471.68649 185662; 471.92757 89608; 472.01898 59851; 472.04915 8695; 472.07734 6262; 472.33228 53397; 472.46352 49439; 473.02881 4645478; 473.03453 40543; 473.3282 40545; 473.93681 47042; 473.99502 63658; 474.21091 19395; 474.29031 26850; 474.63702 1289924; 474.86339 483555; 475.06284 4981146; 475.10912 4885440; 475.38639 395450; 475.49864 67227; 475.81301 6619213; 476.05574 7905049; 476.55435 4549025; 477.31483 12108; 477.40644 91780; 477.89023 17443; 478.30171 41436; 478.3603 23078; 478.37773 1583618; 478.55135 1557959; 478.70783 10589; 478.86437 2919000; 479.25895 6072904; 479.71783 25544; 479.76672 3997361; 479.76763 1306030; 480.01709 7427; 480.12211 1149483; 480.13955 49306; 480.34974 61458; 480.41341 63203; 480.75085 4526781; 480.85219 896774; 480.91974 4664; 480.96604 2979549; 481.08433 195379; 481.10122 4256073; 481.26854 51500; 481.30786 69486; 481.32227 40470; 481.33807 1318641; 482.22557 277783; 482.36898 1761298; 482.50779 49270; 482.83936 244; 483.03908 94241; 483.30253 1692932; 483.34214 680849; 483.40389 2803061; 483.4339 43292; 483.5721 4240523; 483.6024 79723; 483.73283 27302; 483.83598 21217; 484.17204 10357017; 484.53259 39764; 484.74713 2072264; 484.83265 168780; 484.88467 41428; 484.95631 65608; 485.20332 1428259; 485.48361 59011; 485.66112 64606; 485.69007 5768; 485.73326 32555; 485.79478 29779; 486.15973 9396; 486.16981 1598260; 486.87774 36130; 487.33004 36061; 487.34483 4764704; 487.35193 5492; 487.41672 6586; 487.5127 1092293; 488.01427 8305862; 488.17431 1912; 488.25945 7000; 488.41098 173310; 489.05914 39939; 489.09526 137498; 489.18247 96967; 489.23347 7359; 489.28109 2935; 489.33483 217998; 489.4417 1185188; 489.69645 23736; 489.69911 1482735; 489.83689 221; 489.94201 3965864; 490.72789 95353; 491.13736 223797; 491.28348 74107; 491.29728 1584; 491.47709 26085; 491.72252 3473963; 491.79361 28822; 491.95461 29737; 492.04877 62129; 492.08688 1780254; 492.39552 4242591; 492.72976 52890; 492.80021 25223; 493.17481 692527; 493.19173 3472; 493.26739 108790; 493.52094 68649; 493.6187 175275; 494.1387 3993542; 495.02141 5033; 495.44459 8319322; 495.77294 16924; 495.77424 15655; 496.72496 4732197; 496.80283 35460; 497.09255 22179; 497.32105 4555640; 498.00941 5528791; 498.20001 40984; 498.25143 23169; 498.56549 694755; 498.68961 3583; 499.21712 1929212; 499.44307 6228; 499.78056 2602; 500.00062 28875 +<4, 1>: 0.43377 4861576; 0.57334 3902; 0.77024 1275469; 0.77375 1708727; 0.82022 9358; 1.28178 8145176; 1.44823 3876777; 1.73951 3956343; 1.87753 1262432; 2.26707 17242; 3.03595 192575; 3.38979 43844; 3.41736 18230; 3.43644 64264; 3.47845 120964; 3.7759 39942; 4.12121 7634229; 4.41573 62542; 4.44428 2154473; 4.47619 30942; 4.99036 3834980; 5.00306 33278; 5.04221 26343; 5.16927 28826; 5.1774 9217499; 5.22121 1119; 5.42854 179274; 5.47971 1489298; 5.58855 5694; 5.70769 3905; 5.71041 27168; 5.85992 614210; 5.97714 489724; 6.06788 1172595; 6.07162 6427; 6.23846 32344; 6.75387 186676; 6.88089 41744; 7.01045 7628263; 7.16195 4297477; 7.64987 12175995; 7.98217 495442; 8.09033 156843; 8.19136 11434; 8.29777 33058; 8.5475 8827; 8.70423 172967; 9.00173 3594754; 9.12712 8920170; 9.15406 12753706; 9.49901 1001210; 9.50346 8266; 10.07343 51583; 10.24476 10408; 10.33403 5440; 10.33946 549507; 10.50982 24094; 10.57002 69060; 10.58942 25806; 11.04863 56214; 11.08808 24695649; 11.29442 1638109; 11.36753 1102; 11.52856 237699; 11.60575 6377; 11.63413 1923812; 11.72415 7312992; 11.73621 4824492; 12.07766 9102; 12.4983 58239; 12.70369 999; 14.01293 1899984; 14.48764 8856; 14.59443 88901; 14.65582 8690943; 14.85842 2873; 14.93576 25194; 14.98368 15012; 15.26538 2992; 15.52217 27606; 15.61806 104009; 15.9458 152549; 16.15307 15240; 16.42695 20276671; 16.66353 624769; 16.66575 9425; 16.88923 22852; 16.96083 257927; 17.38026 1321733; 17.40564 2086643; 17.77337 2812573; 17.98504 33351; 18.12321 255; 18.89717 57592; 19.09381 28326; 19.13923 9727506; 19.39984 7931606; 19.39999 7514; 19.79533 495345; 19.87373 34848; 19.984 9843; 20.08387 2855; 20.17572 3935; 20.34553 8966; 20.47349 3636476; 20.6936 2099707; 20.91197 132701; 21.02704 79958; 21.18066 202; 21.25835 5826; 21.30977 69474; 21.34047 7147102; 21.48211 70306; 21.62551 23640; 21.8313 41996; 22.14598 78043; 22.2907 720372; 22.44359 2319; 22.96177 1429545; 23.01801 5443; 23.18575 39231; 23.53629 26485; 23.98952 3999056; 24.06142 23074; 24.48355 4649136; 24.82353 34446; 24.85472 3031; 25.20243 2127527; 25.58713 4076; 25.71872 76404; 25.79601 64146; 25.81852 9699776; 26.03286 34977; 26.49726 6435573; 26.60906 17743; 26.67691 20742; 26.68778 9551360; 26.72646 6946455; 26.90532 200042; 27.07986 72232; 27.22229 4369714; 27.72683 29040; 27.77139 50627; 27.77394 5252; 28.05732 9092542; 28.16771 37778; 28.59083 28909; 28.7053 3003; 28.95597 734099; 29.69773 104361; 30.02151 632; 30.2063 2701383; 30.58635 24640; 30.60957 54978; 30.61739 41009; 31.0204 9612498; 31.43269 5992; 31.51964 22068; 31.80802 2101974; 32.18534 6868; 32.37806 450176; 32.58638 10208; 32.72454 1410695; 32.8437 970001; 32.8826 1981745; 32.98096 9563201; 33.14405 34692; 33.64197 1389544; 33.77887 1873953; 33.83769 187402; 34.13101 146955; 34.17692 44095; 34.29724 138645; 34.58231 3171; 35.19849 60061; 35.22079 627205; 35.56447 1176944; 35.89787 45099; 36.21426 55783; 36.36381 1339; 36.43081 9320; 36.46481 9583; 36.47094 998637; 36.75613 647082; 36.90323 24532; 37.01777 491936; 37.3564 5878; 37.6053 24104; 37.6121 546440; 37.8501 24964883; 38.2934 20963; 38.35667 53019; 38.63266 74303; 38.71276 5298227; 38.74269 113492; 38.76559 55665; 39.45254 56777; 39.74328 57243; 40.21373 185022; 40.50212 95021; 40.72942 4140542; 40.89866 37417; 41.03388 969; 41.35936 51107; 41.36958 10053; 41.49094 943541; 41.78493 78103; 41.85542 49178; 41.99952 20196; 42.23961 60871; 42.27081 5761; 42.62623 6821562; 42.65094 175777; 42.66666 25453; 43.00688 21558; 43.06184 826983; 43.3243 8016598; 43.33467 1382292; 43.62171 66095; 43.63325 24504; 43.8869 12036; 44.00618 7793; 44.09163 95326; 44.3034 155127; 44.68667 2281694; 44.79535 1776254; 44.87141 63595; 44.97788 7740666; 45.25814 5279674; 45.61789 7025116; 45.73811 4542900; 46.07477 7965; 46.09761 21707; 46.20339 65008; 46.35642 43522; 46.5388 8852506; 46.66066 413711; 47.05468 6924; 47.36656 24192; 47.74479 1268656; 48.2767 5601; 48.37697 4669; 48.63901 39741; 48.93591 31675; 48.97154 25604; 49.24269 571526; 49.3107 24682; 49.44996 1088628; 49.74032 42312; 49.76268 9460621; 49.80495 60678; 49.95661 7165; 50.21944 22026; 50.45629 2867706; 50.57885 1088053; 50.72083 10459; 50.7368 24557; 50.7679 242164; 51.14369 192326; 51.33754 19055288; 51.49176 5323; 51.64588 58593; 51.6903 1231250; 51.69987 24512420; 51.89489 53780; 51.9022 28163; 52.01632 961313; 52.20127 1924306; 52.32614 333; 52.3591 846715; 52.4729 1931370; 52.50766 186876; 52.57284 109454; 52.60484 6554; 52.78847 28957; 53.10381 28571; 53.27488 7834465; 53.34232 6576; 53.52564 159661; 53.54142 2563776; 54.05274 731883; 54.35325 28303; 54.43544 191507; 54.77377 621761; 54.80941 32470; 55.33598 1308133; 55.49047 7788; 55.51571 75651; 55.57901 97803; 55.7899 182176; 56.01179 1839074; 56.01891 9241198; 56.41526 173714; 56.45813 9823; 56.70844 195193; 57.54841 14864; 58.04092 11190806; 58.11173 4765; 58.42732 46314; 58.46383 46051; 58.51526 5029; 58.90064 1796169; 58.92979 2767182; 59.17868 9898822; 59.87454 46951; 60.04422 32300; 60.16254 55444; 60.17344 48019; 60.18279 54591; 60.1944 22947; 60.77607 1790707; 61.10276 46978; 61.16059 3723042; 61.20123 5692; 61.49526 66687; 61.54884 33252; 61.85403 5498483; 61.91121 37250; 61.98719 112980; 62.03129 1545345; 62.1831 35625; 62.37047 1077697; 62.69206 771451; 63.13149 43208; 63.43144 5945; 63.47781 20616; 63.52872 94625; 63.57096 2219715; 63.66692 8659; 64.02556 9110308; 64.12842 53119; 64.51213 1821508; 64.92248 7780; 65.31231 2942539; 65.47457 16297; 65.66778 954382; 65.70571 1889021; 65.85327 190228; 65.86216 3470; 65.99835 9503966; 66.02551 18760; 66.28818 1596102; 66.37916 1061457; 66.38807 69949; 66.57356 20001; 66.78112 64655; 67.02282 8828; 67.11063 5824; 67.12154 1958828; 67.51401 67915; 67.63015 8630; 67.7178 8260564; 67.80354 2073516; 67.8147 918; 68.06166 1339; 68.69982 5463; 68.96386 8079299; 69.22402 1604498; 69.53295 38070; 69.5412 38219; 69.56668 7025; 69.62575 1123797; 69.67922 35340; 69.73003 3326; 69.75355 67761; 69.83242 1865042; 70.04514 72038; 70.52004 193225; 70.53309 1584551; 70.57172 270034; 70.61232 8856; 70.93625 75040; 70.99911 2798; 71.21542 67146; 71.2916 19026; 71.71404 27080; 72.01335 67789; 72.09045 3565; 72.1383 4865; 72.36709 6616202; 72.40914 185696; 72.42313 32987; 72.4845 74022; 72.60619 5230379; 72.6447 31464; 72.8077 78591; 72.88473 46879; 73.27235 26174; 73.4585 169671; 73.93022 5236; 74.09408 3126455; 74.13496 24238348; 74.13643 146777; 74.51309 5753698; 74.57349 2427; 74.76994 8670660; 75.24132 3059553; 75.37762 2902775; 75.38868 5367; 75.437 6793; 75.51269 1401; 75.57895 3099; 76.03711 9046; 76.32783 55650; 76.56729 24575; 76.64758 75606; 76.80999 28128; 76.96494 8752; 77.11237 141729; 77.34204 3066637; 77.35444 60630; 77.53963 51428; 78.06102 830256; 78.15425 7318902; 78.17337 23550606; 78.24721 39791; 78.39358 69068; 78.44482 136338; 79.09559 53020; 79.60201 1773362; 79.68473 8305; 79.91835 24921; 80.32109 8827485; 80.50607 6624; 80.69891 20833711; 80.86286 986552; 81.07841 127408; 81.15637 74322; 81.21228 54841; 81.58568 1474118; 81.61665 3241; 81.983 25316; 82.00605 37721; 82.13043 28089; 82.20036 538; 82.22651 453569; 82.28873 7677; 82.31787 1311; 82.44442 576073; 83.42774 8006; 83.90899 118986; 83.92123 12434; 84.01247 33159; 84.08366 6414; 84.2266 4132768; 84.3331 4005; 84.62948 966863; 85.00168 50899; 85.22498 40444; 85.77834 5691; 86.20059 2580042; 86.40608 1308290; 86.4161 42240; 86.65109 23885; 86.71197 15545; 86.73799 3393; 86.77763 140535; 87.02834 9690; 87.0933 4452; 87.16282 30180; 87.17713 71591; 87.5187 521009; 87.64483 9283; 87.8484 5217; 88.08546 43957; 88.15159 4430734; 88.22516 1587944; 88.48489 1795029; 88.54252 22568; 89.34366 86606; 89.6652 7684; 89.767 341734; 90.00001 7392; 90.01544 1901726; 90.46527 59659; 90.46915 2653; 90.66243 38005; 90.70456 19374; 90.73554 90403; 90.93893 121235; 90.97264 2157; 91.1678 72467; 91.36436 1904850; 91.38727 47931; 91.49216 1968850; 91.7486 7219; 91.80322 16328; 92.0245 665; 92.118 190531; 92.48434 9465; 92.59156 5388546; 92.67136 75415; 92.7017 990901; 93.58363 7368; 93.68579 1054940; 93.78432 25681; 93.96698 6326; 94.78732 19916; 95.16486 5034; 95.27575 2239; 95.53006 1160; 95.64475 47305; 95.85743 62639; 95.86864 475; 96.0138 556773; 96.01838 42736; 96.28236 35511; 96.32992 181246; 96.6392 14376; 96.70124 3046420; 96.79879 3320297; 96.80894 550082; 96.82306 216364; 96.84185 23673; 96.84549 23900; 96.88948 29246; 97.07714 3138; 97.12235 720968; 97.78742 4423995; 97.96443 635273; 98.21873 67003; 98.38455 4766319; 98.43491 1072475; 98.45763 6993; 98.49654 2462309; 98.94403 337421; 98.94877 831203; 99.21657 8840; 99.46676 3099169; 99.58622 1734; 99.84533 8038; 100.31277 192656; 100.43429 880929; 100.58469 3818719; 100.6203 1186638; 100.71321 3427266; 100.97328 337034; 100.98416 36471; 101.15478 931045; 101.29416 2752029; 101.48303 46479; 101.68963 1709131; 101.83942 7407963; 101.93707 72814; 102.11651 4898619; 102.13621 40926; 102.4125 4390402; 102.82677 262507; 103.07486 6311; 103.30778 7223; 104.01676 104205; 104.04849 2487; 104.14985 1628587; 104.43555 41510; 104.53786 26916920; 104.83207 2589678; 104.88107 2386115; 104.90445 1178342; 105.15359 23895219; 105.5868 18702660; 105.65109 2581162; 105.6761 184648; 105.8359 63497; 105.91186 18002; 105.94868 6047269; 106.09687 7226294; 106.32592 8669693; 106.36091 4322685; 106.44429 14526340; 106.46555 3900758; 106.57709 2647579; 106.86684 6592; 107.17034 25005; 107.48611 58632; 107.56067 27299; 107.81038 37254; 108.05692 591383; 108.25037 9572687; 108.2908 63737; 108.48127 2839641; 108.61259 197474; 108.70747 70535; 108.98608 56400; 109.30537 13913; 109.93892 43941; 109.95014 2093; 110.77178 51070; 111.2693 48893; 111.45422 5235107; 111.61597 4712; 112.09932 38503; 112.16854 64015; 112.26514 2902834; 112.37705 7983219; 112.39482 4300; 112.48241 7685; 112.52256 1941978; 112.74987 84531; 112.75497 75234; 113.08866 20609; 113.49651 88429; 114.06012 9298083; 114.21078 21003; 114.32742 8508847; 114.78721 977343; 115.02049 1315605; 115.15762 577156; 115.1584 66071; 115.26519 20161; 115.28275 1960746; 115.33026 2414762; 115.54444 554644; 115.82806 6748; 115.95859 132449; 116.06454 30830; 116.25951 22716; 116.4852 82153; 116.5656 128308; 116.90446 4308; 117.30027 8125; 117.3448 1626109; 117.40751 16256; 117.71009 10779364; 117.82941 183372; 117.84962 6317; 118.09737 2652217; 118.30889 19160; 118.34234 6998; 118.66098 47445; 118.90425 26730; 119.02776 1655875; 119.47776 1181341; 119.77347 28687; 119.97523 24010; 119.98015 710981; 120.18851 805651; 120.43517 1602846; 120.52533 4036079; 120.78485 2224788; 120.8107 35868; 120.85643 4210431; 121.10347 897565; 121.15741 35527; 121.3514 67804; 121.49374 4727; 121.66064 8390; 121.6693 18321; 121.69178 27165; 121.9202 324825; 122.21323 58393; 122.70458 57522; 123.23793 92792; 123.47324 418796; 123.47875 452103; 123.61641 9581; 123.62486 7450; 123.6908 1528299; 123.93552 2776903; 124.37924 45134; 124.43476 6874; 124.47026 7561; 124.65097 16335; 124.8245 21497; 125.0836 1473674; 125.84435 15329; 125.97801 44914; 126.02025 40902; 126.04361 126591; 126.19758 872881; 126.88659 25245566; 126.93433 2504764; 127.01791 687251; 127.10509 275931; 127.29123 23338; 127.33199 24710; 127.35041 9197; 127.80526 74152; 127.86817 770254; 128.07869 10592; 128.40733 3656512; 128.4453 1129231; 128.80698 27660; 128.87228 43651; 129.54813 4054; 129.67066 3753903; 129.84508 16194; 130.10644 778075; 130.15445 28855; 130.94736 125697; 130.98605 8721302; 131.20872 9564; 131.56035 27250; 131.6102 15284955; 131.70664 1632068; 131.72615 439; 131.78143 3321470; 132.21779 9434570; 132.38126 6800796; 132.50778 19805; 132.6015 1557932; 132.61393 2715; 132.64276 37176; 132.76001 966045; 133.04706 6776496; 133.06779 25280876; 133.12159 24125; 133.15631 9495620; 133.26156 71221; 133.35848 9326; 133.54532 21556957; 133.69326 5152780; 133.73479 1505974; 133.80053 8148; 133.82871 8370497; 133.83637 37580; 133.88686 6956; 134.33292 16000; 134.49408 54316; 134.81647 63615; 135.35163 2493596; 135.37092 26391; 135.73159 185256; 135.73528 37463; 135.96444 3491560; 136.06646 506524; 136.31246 25984; 136.65925 32015; 136.94818 3862432; 137.05617 1824514; 137.14936 3064430; 137.30688 66609; 137.85316 28320; 137.86948 125957; 137.95516 72040; 137.96509 79916; 138.16506 1010311; 138.18318 9298; 138.27815 65863; 138.34003 2349; 138.77091 499689; 138.80052 69266; 138.92066 6745051; 139.08477 1838481; 139.23369 1984159; 139.25621 1852344; 139.38522 2237850; 139.43243 52466; 139.44658 4080; 139.48346 827505; 139.71746 1243123; 139.79303 9897047; 139.86726 24085; 140.09993 246613; 140.18031 26502; 140.18934 52089; 140.47326 3004696; 140.71096 3750638; 141.13777 44862; 141.14804 38422; 141.34121 13506; 141.38172 148352; 141.69529 1038066; 141.79287 608925; 141.89609 36871; 142.25592 22338; 142.31599 4309; 142.35729 56544; 142.36688 48595; 142.71585 271689; 142.72539 1899233; 142.86788 982011; 143.03403 42321; 143.32388 4949318; 143.34319 376511; 143.76216 30817; 143.83886 3486378; 143.91569 76442; 143.97741 5580539; 144.0078 521555; 144.01557 443854; 144.03256 61077; 144.13012 23495; 144.21969 23639; 144.64073 53899; 145.19118 13635; 145.75438 3474178; 145.91896 29691; 145.9896 8937; 146.07715 66682; 146.7639 3424; 147.09188 36275; 147.32053 39967; 147.40695 1636803; 147.61147 79568; 147.62073 1688278; 147.63235 6463; 147.79575 8087; 148.08909 9686; 148.19705 83513; 148.41955 28990; 148.6497 220618; 148.67774 188955; 148.8417 4135507; 148.85963 7748226; 148.91026 262609; 148.98369 6849579; 149.42646 4418; 149.46696 3621756; 149.51581 83431; 149.7825 6966765; 149.96586 1830734; 150.14843 25818; 150.30211 50500; 150.71192 63591; 150.76379 5298967; 150.79321 630787; 150.87307 15073; 151.19714 111028; 151.43652 29973; 151.53408 4959773; 151.54022 402; 151.56808 25004; 151.62596 3578934; 151.65733 143158; 152.03422 66148; 152.34979 58511; 152.42964 324918; 152.50995 1095999; 152.70031 3866368; 152.77684 2097495; 152.968 14929; 153.13376 16589091; 153.41901 6058391; 153.91264 4455; 154.12703 174491; 154.13548 1490; 154.1709 4609711; 154.37275 29059980; 154.78332 71525; 154.93461 65582; 154.99623 50896; 155.11067 133275; 155.137 70079; 155.5277 9968695; 155.63221 32520; 155.67469 1496519; 155.72183 47874; 155.86004 1075455; 156.39101 34691; 157.09662 171689; 157.18922 24937; 157.26249 31036; 157.65208 1609664; 157.70448 29584; 158.40666 57059; 158.85685 143825; 158.86974 57818; 159.3263 3321; 159.83362 32660; 159.93721 1306; 160.03889 31869; 160.24623 19722; 160.27768 5437011; 160.31125 1380858; 160.34533 19358; 160.35885 614519; 160.36681 3682274; 160.53067 49253; 160.68449 1258634; 161.1289 39238; 161.56452 21782; 161.6665 271; 161.69402 1722587; 161.74494 9844430; 161.91572 57865; 161.98088 4468524; 162.11081 441619; 162.13338 4618696; 162.37764 4788190; 162.38119 6604210; 162.50225 53729; 162.61043 6444897; 162.80992 1530930; 162.97892 271707; 163.20569 3370979; 163.28936 3701; 163.34659 793837; 163.78194 369080; 163.92689 185722; 163.94585 6038; 164.04364 5628125; 164.3176 911958; 164.5246 4676; 164.55897 22889115; 165.24381 908707; 165.37642 29659; 165.40673 2676885; 165.49954 18363; 165.65236 706353; 165.66521 75007; 165.69355 3202491; 165.89141 123149; 166.18957 420530; 166.30981 29946; 166.36173 8295869; 166.52291 52003; 166.64058 77942; 166.76069 81625; 166.89175 99841; 167.04534 1646; 167.09533 160508; 167.11269 1440490; 167.40295 1586; 167.41217 1513; 167.41323 22443; 167.57978 26484; 167.6324 22669; 167.75432 29496; 167.75447 360; 167.96181 76063; 168.17011 33070; 168.4292 38158; 168.48994 780697; 168.5363 8474014; 168.66031 8230428; 168.68927 268; 169.23658 52004; 169.52813 66057; 170.30696 25393; 170.77701 37567; 170.79007 1958105; 170.9389 134217; 171.03777 3318; 171.15611 1690; 171.21898 1228; 171.3081 4205623; 172.03117 76483; 172.10369 1763266; 172.34764 4387; 172.53099 18936656; 172.81911 24074; 173.29215 3144629; 173.29528 49617; 173.29773 210133; 173.32126 53361; 173.35255 4952731; 173.40112 5015; 173.93174 1741170; 173.94401 11285; 174.04058 39099; 174.08591 61497; 174.28211 8797; 174.43147 76274; 174.50682 47786; 174.55336 8640; 174.74867 32442; 174.89215 6754; 175.00299 3250302; 175.46638 1263922; 175.48579 1807071; 175.55744 1996502; 175.58315 9959; 175.78379 73536; 175.79184 59973; 175.83822 30414; 176.19153 18239; 176.55523 2939; 176.81915 55040; 176.86418 11360; 176.91384 196227; 176.9837 54791; 177.02505 23544; 177.10102 5761; 177.14174 49398; 177.21254 1835952; 177.31484 2389548; 177.47057 4039802; 177.79007 355244; 177.88596 48405; 177.92888 53247; 178.08195 37948; 178.13001 1391478; 178.85672 46591; 178.92641 4100066; 179.04309 25323; 179.42445 863977; 179.5213 1328062; 179.68091 1787822; 180.28365 548050; 180.46126 965892; 180.64729 6276995; 180.67221 2677165; 180.91539 633971; 181.27677 60925; 181.39814 2343376; 181.46687 2338950; 181.51787 148301; 181.74081 4899; 181.75021 1186662; 181.75988 9841259; 182.13332 5632; 182.65174 1211828; 182.66946 20341; 183.38284 173311; 183.47828 7954139; 183.5165 6690307; 183.99394 237528; 184.0509 843403; 184.54699 2546159; 184.66985 41607; 184.80765 709529; 184.82847 38283; 184.87315 107487; 185.11174 1660758; 185.16783 76935; 185.2281 12418; 185.56899 186371; 185.71826 5804; 185.86155 63163; 186.47855 161438; 186.52837 1154213; 186.53213 41409; 186.57402 9311718; 186.72766 2890772; 186.73051 108832; 186.73697 592537; 186.9872 4275020; 187.28642 56849; 187.30425 51018; 187.86499 23787; 188.03373 165712; 188.0354 36868; 188.23129 6252740; 188.32934 41367; 188.75645 787; 188.8345 13209; 188.96026 58077; 188.97663 7614635; 189.04372 33218; 189.09508 9905; 189.10956 362805; 189.48257 40521; 189.54533 1267; 189.66638 24751; 189.72629 1864456; 189.73563 61501; 189.74141 2353505; 189.7906 511407; 190.2053 29686; 190.22536 10869; 190.83522 6783741; 190.99464 4118079; 191.07406 22784; 191.11635 622557; 191.19421 21858; 191.30011 63162; 191.41339 12720; 191.57434 40894; 191.69144 3584594; 191.76516 1226755; 191.89933 15014; 191.94083 4805760; 192.6527 21614; 193.02975 3749936; 193.08512 2123618; 193.1143 43911; 193.37886 8858; 193.54059 3703693; 193.87858 1058891; 193.8942 21218; 193.89718 154983; 194.07815 38297; 194.14667 34952; 194.23518 65014; 194.36405 74275; 194.51038 29631; 194.63702 1374275; 194.63747 17092631; 194.74698 28024; 194.96482 20950; 195.29636 56251; 195.38021 13607913; 195.44147 35610; 195.48161 590137; 195.59038 154332; 195.90668 8497; 195.97428 1871192; 196.0154 55206; 196.29785 3110814; 196.62822 61201; 196.80015 947965; 196.82227 8813103; 197.07294 1092336; 197.63442 1710056; 197.80797 1980147; 197.85583 3102; 198.04166 2339; 198.09212 11809271; 198.38107 4938597; 198.69602 2976; 198.81977 33404; 198.8773 4783313; 199.09365 21990; 199.30121 39824; 199.33551 1975447; 199.34938 1015803; 199.49876 553639; 199.56368 4680257; 199.83072 7795481; 200.27817 39137; 200.70863 3757522; 200.81652 15936; 201.07747 56597; 201.43474 345768; 201.48123 27834; 201.55731 59984; 202.03929 9842743; 202.05705 4019; 202.29589 51751; 202.48753 1453303; 202.60549 23446; 202.81839 2452; 202.97875 94356; 203.0958 136047; 203.21233 1212838; 203.22573 9529957; 203.44837 1417558; 203.52451 14758; 203.68584 1785004; 203.73867 50429; 204.4385 4963484; 204.71284 49640; 204.71934 5505934; 204.94527 1821448; 205.23989 2627118; 205.24414 29191; 205.40317 3511353; 206.39472 3025683; 206.49006 7910; 206.58184 21562; 206.65794 352960; 206.83801 33122; 206.91108 40682; 206.92676 30212; 207.46838 48177; 207.56925 1338147; 207.62131 70081; 208.00161 884636; 208.00458 148546; 208.53605 4272947; 208.669 1983880; 208.68777 683097; 208.74991 23498; 208.84105 933913; 209.10856 13887; 209.25759 43929; 209.52647 25785; 210.00988 31417; 210.35329 4710880; 210.4405 29881102; 210.65217 34985; 210.80777 23929; 211.0449 75514; 211.49835 38486; 211.68193 1268365; 211.70812 47794; 211.76068 735178; 211.77577 111033; 211.92333 2141; 212.15308 13644; 212.25703 28853; 212.36726 524794; 212.6662 8782902; 212.73968 6133; 212.89544 5093; 212.97044 4794342; 213.16166 399427; 213.2545 24476; 213.38066 117361; 213.57787 38148; 213.79022 12352; 213.85452 16687; 213.89344 4904362; 214.66303 23402; 214.7339 35704; 214.98791 3184210; 215.20742 939; 215.21678 2461; 215.35559 13745217; 216.03597 78402; 216.30186 46182; 216.52154 1006914; 216.64305 16569; 216.79318 2801517; 216.80621 65133; 216.98377 42363; 217.20941 426641; 217.36859 3711841; 217.7304 2580338; 218.35286 554162; 218.53411 2026593; 218.60573 9925; 218.66916 343; 218.8411 25015; 218.85981 59957; 218.93411 27981; 218.97791 1553427; 219.03866 75707; 219.09437 51979; 219.25822 4668; 219.30257 2799; 219.34877 61503; 219.57249 15468; 219.58163 28567; 220.46679 4817580; 221.08231 99462; 221.11607 976588; 221.47413 64751; 221.79888 2325488; 222.19432 4635197; 222.90105 22411; 222.9783 876760; 223.27153 43379; 223.4998 25980; 223.73592 56625; 223.79634 3667328; 224.16648 3011; 224.45286 149112; 224.58662 1533030; 224.73013 29636136; 224.74683 432232; 224.82813 4288; 224.83504 5458540; 224.84774 2597336; 225.04998 6014; 225.17932 1798962; 225.64365 1096404; 225.87042 14156; 225.87741 15891; 225.96647 4883; 226.00219 23784; 226.15131 48268; 226.25232 19870721; 226.30669 167783; 226.34042 24076; 226.36969 624665; 226.48214 20947; 226.88645 79230; 226.90445 9385; 226.92025 24595; 227.33246 8563100; 227.45415 1058059; 227.53665 79482; 227.79401 13004; 227.98853 6549; 228.4741 4955; 228.85751 1832661; 229.03633 477264; 229.0834 45322; 229.16183 70067; 229.25751 12926; 229.3788 3442839; 229.68989 31937; 230.02393 129105; 230.03375 20617; 230.1578 9284380; 230.47724 16368; 231.14325 8943; 231.14564 23878; 231.27129 9146639; 231.54263 39313; 231.5646 1535455; 231.5964 4437326; 231.73007 88776; 232.21997 27662; 232.34599 98; 232.41148 8954389; 232.43716 8404348; 232.44438 1509532; 232.5024 3204473; 232.6751 728107; 232.76774 6143; 232.88146 14642; 233.14861 22294911; 233.52174 25978; 233.61644 7921794; 233.63768 29368; 233.74791 1996718; 233.78734 23313; 234.13558 63591; 234.2268 3521; 234.31391 810398; 234.31704 31575; 234.45633 26249; 235.04726 2827; 235.13327 1913656; 235.33114 20948; 235.49807 410129; 235.55123 425302; 235.60968 150680; 236.13277 102123; 236.31005 14098; 236.31402 24; 236.51769 6218; 236.88373 52518; 236.90153 23588532; 236.90434 22348; 237.1104 1396; 237.22714 3882930; 237.24933 73586; 237.29738 3081466; 237.30444 3761868; 237.77151 74354; 237.83478 4297740; 238.18996 59590; 238.24068 1843198; 238.28433 20143; 238.40638 51339; 238.63488 4394; 238.72645 27577; 239.10562 3615864; 239.13831 33343; 239.14639 29108; 239.22599 1959445; 239.45343 33833; 239.68697 6707; 239.76772 20752875; 239.97522 33586; 240.07217 6772265; 240.58793 66658; 240.84758 8199; 240.88543 192411; 241.11609 149825; 241.12337 1315679; 241.32097 245562; 241.60143 1647912; 241.79155 70937; 241.80217 72272; 242.11041 65178; 242.17509 2886985; 242.49555 56195; 242.66429 19643098; 242.68629 20861; 242.71963 19374629; 243.12654 11165; 243.18643 58418; 243.28028 39454; 243.47192 62860; 243.50855 8547394; 243.52114 6216; 243.55001 76461; 243.79568 4389; 243.80138 4083104; 244.0358 1231674; 244.27929 6954; 244.43489 3777561; 244.43776 404094; 244.59421 578243; 244.67698 10733; 244.96581 1657241; 244.96597 3754; 245.69476 70555; 245.82908 3681; 245.88431 4204665; 245.93711 8332327; 246.00358 59327; 246.28032 2648547; 246.52368 13579; 246.63459 35205; 246.79593 26327; 247.0146 15731; 247.11954 3660810; 247.69104 4236132; 247.82915 22766592; 248.12702 7061; 248.63295 12163; 248.69962 4537; 248.80558 29625; 249.04571 25413; 249.49195 43762; 249.50282 1013474; 249.5487 1116432; 249.59442 127992; 249.91897 72685; 250.01475 1467929; 250.29918 53920; 250.40655 207; 250.83785 20065; 250.94462 972647; 251.08284 154666; 251.244 5837; 251.49711 78620; 251.69991 1758134; 252.09107 72981; 252.13634 826404; 252.14127 67245; 252.24643 2747702; 252.29697 4144; 252.65196 3630; 252.73405 4823431; 253.23038 578227; 253.71693 382194; 253.8624 42405; 253.98675 1902828; 254.50901 9733666; 254.5544 987871; 255.00672 1199; 255.24475 9361646; 255.5473 45123; 255.64578 2766; 255.66789 180944; 255.70779 116060; 255.91225 1569668; 255.9364 2686400; 256.6764 37392; 256.69669 1575519; 256.80167 252881; 257.07232 1812775; 257.20436 83994; 257.45015 29787; 257.61596 82440; 257.75097 964919; 257.99853 1909; 258.17182 72198; 258.26055 7417815; 258.40597 7496830; 258.57575 4359779; 258.72216 20086; 258.72358 13626; 258.76101 3880168; 258.77476 768179; 258.8439 4386709; 259.01484 8974; 259.20263 1026844; 259.24053 42276; 259.53498 4482; 259.63359 37576; 260.07913 24057; 260.36302 3227885; 260.56267 280373; 260.85799 20982; 261.00644 3218; 261.01419 6003939; 261.27531 8955736; 261.38479 61158; 261.681 4414452; 261.81011 2734063; 262.05546 6666; 262.1361 5226677; 262.20155 2025; 262.38643 1972632; 262.42414 202902; 262.43277 66391; 262.43841 879032; 262.57633 7264; 262.78482 894741; 262.96539 51213; 263.06092 156668; 263.19366 557745; 263.29591 25171; 263.44124 56980; 263.49145 2335082; 263.54758 9210033; 263.61405 50818; 263.96585 1889207; 264.16141 5894142; 264.48097 3343613; 265.14136 21111573; 265.16052 21494; 265.30267 337; 265.36166 1584751; 265.47368 59512; 265.48827 14157; 265.50351 6934; 265.57204 6727; 265.65223 7440904; 265.75524 138213; 265.76323 68452; 266.02211 1469; 266.17054 137551; 266.23573 21533; 266.33058 1412812; 266.62031 252949; 266.64576 1015296; 266.88108 6450900; 266.90329 455212; 267.34584 9751; 267.40954 882050; 267.4854 6010443; 267.72358 64676; 267.82886 18171; 267.87699 112589; 267.8872 1444328; 268.05688 465378; 268.75381 55863; 268.76543 10646; 268.84394 29561; 269.2071 75349; 269.27422 44751; 269.41272 12561518; 269.51376 1070615; 269.55103 13269; 269.59851 875181; 269.65842 14490; 269.86302 4895; 269.99503 256666; 270.46933 9771; 270.564 467690; 271.05746 73155; 271.06224 7292; 271.191 19216; 271.63132 21176; 271.73863 233894; 271.92514 54660; 272.0419 1277415; 272.63981 46808; 272.67037 3592; 272.83571 899434; 272.92337 18342; 273.05911 3122168; 273.15122 18483803; 273.18081 6023962; 273.70386 155155; 273.96234 2442852; 273.9906 25765; 274.7709 650204; 274.87918 1402482; 275.06463 18833; 275.11385 902420; 275.73001 75939; 276.38524 2882521; 276.53196 1523726; 276.72753 44673; 276.76405 832494; 276.76879 25572292; 276.99205 91468; 277.08019 177028; 277.29233 67151; 277.65072 3802189; 277.87753 6244788; 278.24711 46925; 278.2642 198; 278.38812 318051; 278.50906 1843548; 278.53352 8171; 278.79948 609823; 278.82312 6583531; 279.26571 1348549; 280.06542 5050296; 280.22776 1317920; 280.2377 4378550; 280.28075 98186; 280.51436 8421496; 280.92648 42527; 281.01502 10378534; 281.05426 10667; 281.32716 77656; 281.75051 55938; 282.01784 32261; 282.95855 60933; 283.22393 1252242; 283.35554 47741; 284.4067 254; 284.54774 47783; 284.62569 3605; 284.75076 22419; 284.80321 515455; 284.89095 24373; 285.01217 37553; 285.09106 27178; 285.19962 649758; 285.30229 94392; 285.43174 8732834; 285.46826 118015; 285.57097 1555248; 286.05519 768051; 286.44358 5468; 286.462 7195785; 286.48645 5665054; 286.49966 4380; 286.63236 38665; 286.83705 7298293; 286.98011 700973; 287.11361 20318; 287.25197 4470; 287.39436 161485; 287.39764 5237; 287.42404 1910343; 287.74277 1925495; 287.90082 997801; 287.92869 3930; 288.31099 161331; 288.40222 2268613; 288.4279 75337; 288.53999 5140941; 288.83108 3868223; 288.97326 21697; 289.03045 7817; 289.1361 140995; 289.16516 109712; 289.25597 319; 289.25675 25747; 289.47019 11560; 289.68741 75858; 289.90472 142118; 290.11504 4193777; 290.46186 1038; 290.5131 16707; 290.66844 2350651; 291.16293 25188; 291.19946 79003; 292.01294 6501; 292.28819 75355; 292.96215 29849; 292.97377 54096; 293.25297 5755; 293.3571 5927; 293.50856 840943; 293.55548 50880; 293.62789 8730; 293.70466 8438; 293.73637 2983779; 293.9442 843338; 294.09654 1516346; 294.79022 8370077; 295.26946 4133841; 295.2962 3334; 295.31084 33041; 295.42837 1613428; 295.49175 61710; 295.60999 47975; 295.75098 682076; 295.93378 716658; 296.04227 9023237; 296.04394 27432; 296.36906 2876; 296.44853 61998; 296.47006 29911; 296.63131 9096; 296.72835 3118; 296.76546 2770590; 297.07713 18080071; 297.41139 14858163; 297.46768 37685; 297.78914 242795; 297.96674 637815; 298.04143 121392; 298.08747 3244501; 298.52193 29768208; 298.52286 14485; 298.67101 73080; 298.70495 2019445; 298.85283 1801; 299.10058 51409; 299.13473 1340; 299.26264 7160; 299.27824 3147775; 299.47905 7008032; 299.48752 178876; 299.49631 25346; 299.58695 4041862; 299.8222 412468; 299.85739 5324; 299.94427 2002; 300.08317 3840564; 300.43861 1883165; 300.61396 21174; 300.73844 8717; 300.81122 1604104; 300.91783 35243; 301.08064 65941; 301.18916 3800824; 301.24631 10542; 301.31508 844347; 301.38827 1803808; 301.53501 27650; 301.71968 1878339; 301.74491 1354138; 301.92518 44390; 301.97617 24123; 302.18046 7011569; 302.5211 6984; 302.56499 20509; 302.58957 1619003; 302.76579 269262; 302.902 1397202; 303.0533 1946835; 303.12411 2750595; 303.28527 51940; 303.48766 3403833; 303.5854 897825; 303.63639 79815; 303.74237 627931; 303.82148 269; 304.24076 2198844; 304.273 2837923; 304.41217 4699851; 304.58625 34596; 304.79439 269535; 304.96266 73070; 305.08583 67746; 305.49321 330818; 305.6872 3852; 305.80371 136562; 305.86404 22563616; 306.52456 10947; 306.53107 33648; 306.68926 1226869; 306.86125 6958; 306.88806 4936680; 306.89234 23859; 307.07564 145697; 307.33511 5050; 307.34634 7010; 307.6111 856116; 307.96139 65883; 308.01803 1600868; 308.02299 175082; 308.15534 20574; 308.22182 3992367; 308.69834 842878; 308.79435 3502738; 309.05664 144909; 309.23856 23229; 309.75324 61229; 310.09744 68872; 310.37305 23836; 310.57795 8629; 310.61867 183543; 310.70022 9482211; 310.84604 405936; 310.8519 329780; 310.92652 50569; 311.29765 8525; 311.47709 312593; 311.58278 13049; 311.65749 2330125; 311.68775 1888997; 311.72107 648243; 311.77739 6889172; 312.02332 7489; 312.05196 8127; 312.10721 70686; 312.3634 69517; 312.62637 373119; 312.63521 4739022; 312.8392 1254466; 312.90913 21215; 312.96304 869796; 313.03271 25770; 313.11815 3539; 313.30342 33271; 313.3133 730913; 313.35438 653048; 313.41906 1464454; 313.87263 5174149; 314.29391 873; 314.39945 21777; 314.84687 3168704; 315.00538 38552; 315.28166 27208; 315.79772 22828; 315.82435 5625; 315.84926 45816; 315.89021 46814; 316.1914 23041; 316.9269 18200753; 316.93042 2806762; 317.04543 59747; 317.17089 8013; 317.58816 40688; 317.71192 72384; 318.29351 1158034; 318.41544 25465; 318.8435 2838243; 319.25972 183560; 319.42438 32458; 319.44231 78841; 319.53513 42691; 319.58084 206688; 319.67313 8525; 320.06675 1857088; 320.61029 1223048; 320.67141 60794; 320.71654 6054; 320.76311 62813; 320.78619 1832927; 320.82878 77633; 321.05645 2608437; 321.05762 690011; 321.33743 25411; 321.3662 1130644; 321.45466 1680; 321.49128 17491; 321.61894 36512; 321.66122 851491; 321.77341 5803164; 322.07318 1909585; 322.37096 133998; 322.44456 3214562; 322.67084 14428; 322.83674 45412; 322.9299 3182; 323.47192 5821; 323.50802 4819; 323.67732 16638; 323.75864 1466297; 323.81092 108298; 323.8627 1958964; 323.98259 7788; 324.45054 68912; 324.5919 254845; 324.60152 79497; 324.71978 1559718; 325.00255 968; 325.12718 4266; 325.38961 707065; 325.41807 548413; 325.45911 45682; 325.62347 35873; 325.62868 15185; 325.64355 30102; 325.65409 71325; 326.00495 70214; 326.07572 1705551; 326.10564 1056943; 326.14298 9536172; 326.37748 991186; 326.39312 413585; 326.4143 8945; 326.80778 7516; 326.81719 388931; 327.07663 3250560; 327.36854 15719457; 327.53716 2119; 327.57422 9613572; 327.73995 52274; 327.83074 2445; 328.08529 68466; 328.10802 49761; 328.19385 22937; 328.61256 591144; 328.61666 580694; 328.84329 8098; 328.84676 4894810; 329.15484 5599206; 329.31608 18459841; 329.35478 3832796; 329.50373 1668932; 329.97088 107158; 330.18715 46275; 330.27763 75607; 330.33832 1275346; 330.46574 28840; 330.65013 3886203; 330.92662 23943; 330.93736 3578499; 331.0455 19873; 331.13834 110514; 331.32144 15058; 331.42781 4247; 331.68053 3871380; 331.90615 478382; 332.0701 616325; 332.08355 1819592; 332.13898 18326859; 332.24046 65282; 332.3006 2335362; 332.35891 96553; 332.54926 15542943; 332.85087 59596; 332.97517 155054; 332.99209 210301; 333.01183 6967924; 333.08051 77141; 333.1511 3472230; 333.30798 91454; 333.67895 74007; 334.56202 500966; 334.60456 27225484; 334.66541 394496; 334.86336 44254; 334.96294 1067482; 335.80336 17279; 336.01136 314298; 336.0927 8394223; 336.37077 20985; 336.58284 7113782; 336.82152 4072036; 336.98531 61031; 337.04795 27866; 337.24055 5686; 337.33385 824; 337.4397 8252; 337.482 56844; 337.80018 1116787; 337.88 40104; 337.89003 1612577; 338.74065 669061; 338.82244 2177583; 338.98678 103547; 339.16425 339500; 339.28794 198451; 339.32344 21805; 339.4597 398245; 339.76779 7186510; 339.86741 2100889; 340.01541 804422; 340.12483 12130; 340.13449 26056; 340.26988 3733518; 340.3433 5402; 340.45171 2530; 340.62247 24888; 341.09482 167312; 341.28298 14215; 341.63602 61804; 341.675 26538; 342.04627 356049; 342.0772 154530; 342.08456 982902; 342.25841 5660; 342.57749 4598; 342.62779 5581078; 343.01036 75462; 343.05918 1879; 343.0629 3704879; 343.26909 3605147; 343.34028 11765; 343.72733 39883; 343.77307 8596314; 343.81962 9737; 344.09737 4792114; 344.30625 28028; 344.36135 55771; 345.27229 82893; 346.08855 68284; 346.49539 1278751; 346.50069 21340; 346.65318 61789; 346.95289 4304133; 347.14645 4446914; 347.27007 3586121; 347.3098 35032; 347.34566 1286493; 347.52927 45892; 347.90153 1050053; 347.96988 40990; 347.97727 1814; 348.00191 6049; 348.16775 31538; 348.31913 1531; 348.55614 24062; 348.71156 26725; 349.02433 1121675; 349.07631 181178; 349.16158 29683; 349.34143 32296; 349.37456 1439054; 349.74788 60945; 350.1636 583558; 350.42515 302756; 350.72541 20224; 350.87649 7181908; 350.96473 36668; 351.06422 66245; 351.21627 750215; 351.50819 1344231; 351.58739 154641; 351.84514 1139543; 351.90243 27469; 351.97438 885577; 352.06369 20442; 352.10442 60049; 352.74791 4916384; 352.74845 54725; 353.03035 23994; 353.1535 632756; 353.16674 3224129; 353.61874 819145; 353.66352 42934; 353.8047 183693; 353.97424 4201; 354.46298 124405; 354.46407 45068; 354.92874 1528061; 355.37378 66018; 355.5042 890764; 355.78328 74236; 355.89375 392547; 356.07954 220156; 356.32119 713255; 356.41125 4875065; 356.51031 41002; 356.94737 15237; 357.14092 69159; 357.73523 50372; 357.75073 4807230; 357.85582 198301; 357.91876 856316; 357.94912 12736; 358.16287 859; 358.42542 1959786; 358.73903 604883; 358.9422 22089; 359.11177 8723; 359.14125 248488; 359.16078 171765; 359.67398 7737; 359.69014 64548; 360.43824 2065336; 360.49962 55363; 360.52653 53106; 360.61543 16937; 361.00536 30377; 361.50848 6231; 361.55347 778; 361.64096 489; 361.71723 6190662; 361.78934 528583; 361.98139 21835; 361.99658 24607; 362.15362 4850479; 362.16607 3996450; 362.35249 41573; 362.35276 665643; 362.44974 29429; 362.76093 876780; 362.90637 18413644; 363.14618 3914416; 363.18123 9202; 363.22559 3891; 363.2327 7579581; 363.2595 252539; 363.34258 4143; 363.37853 4449270; 363.48435 28055074; 363.57524 3730; 363.74417 140648; 363.75206 7464625; 363.7944 58030; 363.99026 19331; 364.06196 944507; 364.2144 505723; 364.72675 16921999; 364.76748 3033; 364.88514 45596; 364.91233 2267; 364.92189 73823; 365.58822 626047; 365.61338 740288; 365.8783 958861; 365.96529 20582; 366.14165 196709; 366.16316 7533811; 366.23429 10873; 366.29533 1444; 366.35808 2809895; 366.75828 77955; 366.92771 16112; 368.14354 165596; 368.30461 28052; 368.40565 119083; 368.81462 217022; 368.89406 395226; 368.95191 42823; 369.02806 8433853; 369.04103 7063; 369.08335 8770275; 369.31436 9378359; 369.46068 71150; 369.55703 20223; 369.64727 2627; 369.65028 34174; 370.13616 1261061; 370.18906 70120; 370.44502 3123615; 370.58324 63150; 370.79442 6031221; 370.84078 40594; 370.86936 29847; 371.00219 4206; 371.21128 2873389; 371.39048 792803; 371.88941 649257; 372.2726 50432; 372.98779 973686; 373.72873 4343; 374.03188 25004; 374.16151 6166; 374.26885 7819505; 374.34147 1351855; 374.43216 1790502; 374.74722 962679; 374.77412 3590; 374.94121 18188; 375.0355 64967; 375.16042 5069531; 375.50386 13185; 375.80289 76338; 375.95996 27264; 376.02622 126615; 376.1127 87327; 376.17892 27335; 376.53789 45459; 376.55957 21669; 376.65476 174626; 376.68421 30704; 376.9941 47965; 377.07848 21461; 377.24545 28946297; 377.335 1935; 377.56549 6474795; 377.58228 70323; 378.29695 3067466; 378.32263 52747; 378.32684 3758; 378.72053 62840; 378.92132 150748; 378.9364 63172; 379.23056 73450; 379.42228 7603; 379.69954 7741; 379.78192 39569; 380.01221 1549746; 380.02306 9075; 380.05576 51981; 380.10659 1829449; 380.29476 3808550; 380.83805 1026957; 380.86622 1435; 381.09285 23725; 381.17873 9495850; 381.30467 36150; 381.50428 39156; 381.81385 43807; 381.83222 74133; 382.24419 190316; 382.41998 41790; 382.77441 7933; 382.93544 1646739; 382.9855 837285; 382.98675 190373; 383.30514 1287856; 383.35459 2761608; 383.46577 1278877; 383.83484 26588856; 383.98545 1364312; 385.15886 5197; 385.26741 53470; 385.39006 29623; 385.465 20251082; 385.69771 41019; 385.8876 46789; 385.9423 5161; 385.96958 4048168; 386.04246 3283658; 386.09032 482; 386.66787 69190; 387.6673 15028; 387.83099 458858; 387.93942 155704; 388.22893 25100; 388.88996 58733; 388.93447 60352; 389.34354 954268; 389.59185 28116; 389.65752 4600533; 389.70542 68386; 389.78196 70405; 389.78584 17432; 390.07663 1888403; 390.73293 17321; 390.89296 5493; 390.91794 946001; 390.94361 109044; 391.2323 72397; 391.35175 422569; 392.20726 2493742; 392.28731 160427; 392.51342 7561900; 392.59325 999251; 392.76477 2475506; 392.8588 9223; 392.93148 60069; 393.17599 20322; 393.34489 58001; 393.73442 831455; 393.83178 4362759; 394.08394 9810; 394.09144 153916; 394.29441 1514777; 394.64729 1347773; 395.25263 20249; 395.42363 29968; 395.44185 846; 395.80574 1964644; 396.16607 3151050; 396.5494 70053; 396.56016 8459482; 396.86262 672; 396.87763 51319; 397.11704 356247; 397.1957 9806; 397.19865 53869; 397.42554 471782; 397.61719 69886; 397.74854 35881; 397.75846 26984; 397.78514 53061; 397.83496 66662; 397.88633 15815; 397.91365 161906; 398.01143 45709; 398.26532 7145; 398.5861 7138; 398.75088 29349383; 399.07573 61907; 399.54858 79415; 400.03596 913354; 400.10243 3968; 400.19782 66129; 400.20795 9100; 400.32005 50576; 400.41642 1586502; 400.68175 57400; 400.73179 48253; 400.79965 759346; 400.86859 7025193; 401.01973 3371435; 401.31195 5742; 401.33837 1676165; 401.36559 369945; 401.43185 10963225; 401.50344 1822719; 401.5116 655803; 401.87742 25396; 401.92077 2266098; 401.97105 21928; 402.01044 48217; 402.07157 36308; 402.12811 1338550; 402.32137 44138; 402.465 1369825; 402.62914 1040053; 402.80645 1551; 402.8815 4761; 402.97455 4981; 403.00391 135211; 403.61596 5311; 403.85801 127651; 403.96957 1204375; 404.28167 1046118; 404.68683 9335558; 404.7053 1278; 405.01729 46704; 405.09254 72013; 405.18274 4633; 405.21265 7852; 405.25999 59285; 405.30425 1108055; 405.64408 9391; 405.71039 7248886; 405.7702 9477; 405.80442 43731; 405.94266 36927; 406.12381 79464; 406.24377 48608; 406.34343 1696459; 406.57654 1244234; 406.59285 4927074; 406.8863 1969029; 406.92916 165266; 407.04567 635714; 407.06501 7605; 407.15235 102834; 407.17235 77561; 407.40626 956179; 407.67683 1592030; 407.88234 482628; 407.92683 950045; 407.96363 1583929; 408.11478 25593; 408.64336 8919; 408.80786 109260; 408.84395 1674584; 409.01015 1301838; 409.07235 291094; 409.88736 3942807; 410.08926 6888; 410.5642 266080; 410.58294 1915; 410.69241 735; 410.85026 926190; 410.9494 3419; 411.07111 198377; 411.29904 25732; 411.30221 2701759; 411.35988 4513171; 411.38655 1132335; 411.51155 6108; 411.66455 8204; 411.78955 72837; 411.88528 2066071; 412.04876 29279; 412.31166 593272; 412.46175 8864; 412.49489 67550; 413.06755 2949897; 413.27958 30778; 413.52005 39303; 413.62166 589851; 413.69043 28787; 413.81986 43626; 413.85436 20874; 413.97831 8702455; 414.59837 903730; 414.75873 40437; 415.17048 7333456; 415.21947 649458; 415.42106 1488270; 415.44537 146125; 415.46258 464462; 415.77948 22169; 415.78481 32511; 415.87969 42939; 416.13591 44260; 416.44422 31882; 416.63003 19138; 416.67585 73009; 416.78329 1410673; 417.29298 994131; 417.33128 67463; 417.3652 281460; 417.45429 6895513; 417.51096 85; 417.51494 5391158; 417.65881 606080; 417.81604 39011; 418.21638 28320387; 418.33379 29223; 418.70266 3372; 419.04447 11547; 419.2151 45157; 419.36255 104633; 419.36412 9389; 419.66922 9683439; 419.67088 9449090; 419.81408 19664; 419.9138 71204; 420.17288 32210; 420.24418 299349; 420.41747 25171; 420.59253 27565; 420.70885 21513103; 420.92681 30925; 421.02215 9811305; 421.0476 1458657; 421.393 56933; 421.43933 28606; 421.55333 593; 421.56598 70540; 421.83791 2314117; 421.93885 3872020; 422.09211 7462579; 422.20706 3449779; 422.35086 3675983; 422.3975 4819340; 422.4989 6901135; 422.57521 78684; 422.65786 2635; 422.90385 25763020; 423.02973 5688; 423.17427 126549; 423.31774 6021; 423.87615 2846; 424.07176 25314; 424.21258 38204; 424.37316 43558; 424.41827 7437; 424.44755 35938; 424.90981 672152; 424.93148 4250; 425.07125 5493; 425.10566 5927513; 425.4767 4319760; 425.71328 24805; 425.72212 32259; 425.8083 59822; 425.94838 35061; 426.02069 23910; 426.11843 2443343; 426.56028 87263; 426.79056 49407; 426.96191 2413320; 426.99276 28793; 427.06371 5748879; 427.09798 556601; 427.11595 1963; 427.27438 3142209; 427.6002 53137; 427.7309 9292; 427.87615 9712; 427.88529 149218; 428.06623 7338; 428.40048 157743; 428.64074 634431; 428.94984 68889; 429.36656 56422; 429.49551 28709; 429.63954 529577; 429.65345 942766; 429.66914 41152; 429.95501 4851; 430.02565 3368; 430.14985 66767; 430.32318 7685029; 430.37098 68571; 430.5069 97602; 430.70953 812580; 430.7956 77276; 431.03474 5589; 431.06004 4518541; 432.13483 70060; 432.19277 1992175; 432.22355 47392; 432.4311 8407802; 432.4617 55488; 432.49714 5820496; 432.66658 4233; 432.77602 9904; 433.26839 3001; 433.70431 7738451; 434.21121 682557; 434.58515 3264526; 434.68827 7814; 434.83672 63454; 435.28952 32690; 435.46409 53719; 435.56931 62617; 435.60155 761; 435.98917 531483; 436.04371 6999; 436.27777 3838212; 436.65414 22141; 437.46282 20297; 437.6728 1688318; 438.06071 6013383; 438.32817 3237; 438.78564 58738; 438.93093 549126; 439.38643 13505; 439.49748 21109348; 439.62002 22910; 439.62811 50544; 439.71833 61584; 439.79432 3330261; 439.82311 26168; 439.91798 6035511; 439.98409 21169; 440.00708 6268; 440.16802 33841; 440.51699 552681; 440.67735 4733; 440.70598 4452890; 440.75452 1907270; 440.75837 4677521; 441.3432 54875; 441.39291 3372368; 441.82857 74449; 441.83682 161560; 441.85051 77934; 441.90476 27235; 441.94612 1269583; 442.12554 57612; 442.21971 5194; 442.31724 231550; 442.6751 1976346; 442.81739 313728; 443.45602 162448; 443.58327 68255; 444.0973 1096098; 444.09893 2614; 444.14474 78608; 444.43727 2795; 444.63513 3089311; 444.87453 15189; 444.88698 7556878; 445.04191 38295; 445.55046 8248; 445.58847 52358; 446.44092 657895; 446.6678 24954; 446.67929 1378; 446.78018 20475; 447.02256 1801424; 447.29507 55700; 447.45823 73815; 447.51067 1977995; 447.56999 1710283; 448.41971 8543; 448.45367 25168750; 448.58339 7484996; 448.73157 4617358; 448.79028 523605; 448.85722 9246; 449.06641 36961; 449.1923 738570; 449.34474 1294062; 449.52767 24990; 449.88674 1315693; 449.98948 3085478; 450.38815 6526240; 450.45311 7118477; 450.53624 891257; 450.83832 7985; 451.37336 9635; 451.66764 7742557; 451.72246 77536; 452.00722 1992898; 452.11078 320962; 452.11756 49807; 452.46372 193623; 452.65187 11237; 452.85881 5315; 453.28628 68465; 453.44308 52655; 453.88095 5453; 453.88929 126279; 454.0335 43412; 454.43408 42546; 454.5817 2356599; 454.67975 73608; 454.81736 25849; 455.42938 6708936; 455.47558 12659; 455.67381 149577; 455.6791 4534653; 455.9645 4214; 456.35683 28444; 456.36225 9045; 456.41222 60242; 456.43946 3592; 456.73487 65822; 457.24792 487965; 457.53386 9454690; 457.76093 29446; 457.85165 2000; 458.20418 1789787; 458.43248 28829641; 458.55552 10234; 459.03382 8754611; 459.04542 1870; 459.11702 302685; 459.4208 854090; 459.62741 19146538; 459.67861 3042918; 459.83443 78333; 459.83675 2568; 459.92443 28846392; 459.98771 1968957; 460.03696 1396739; 460.18266 45240; 460.18396 32715; 460.22691 22108; 460.23406 5018; 460.27238 7769; 460.42221 6407; 460.53013 120702; 460.58293 55317; 460.88702 41815; 460.98257 432564; 461.12681 1739541; 461.27587 747509; 461.52797 16626938; 461.71191 2142586; 461.92453 1848650; 461.98016 3579276; 461.98271 36021; 462.1435 3669500; 462.16181 2413117; 462.26193 1896; 462.26517 8015; 462.32135 61316; 462.41343 40897; 462.62861 1849142; 463.26419 352061; 463.77245 2907247; 463.80169 428; 463.95388 20796; 464.01049 883; 464.16701 29348196; 464.18008 802807; 464.4714 10018; 464.50341 44630; 464.55278 3029731; 464.64456 143485; 464.76739 11815; 464.95767 66582; 465.39234 6220933; 465.40491 48297; 465.5927 177626; 465.59323 138627; 465.91407 1132811; 466.28358 61445; 466.51011 4036; 466.87726 584545; 467.10707 5504; 467.13452 461178; 467.26594 3672921; 467.40639 438491; 467.41477 4883470; 467.61701 1323164; 467.62294 29128; 467.63742 65422; 467.66075 33944; 467.74068 3377409; 467.80741 20418; 468.05026 29418; 468.15524 21524; 468.23843 9741; 469.00177 46823; 469.0341 185310; 469.30353 1987320; 469.49972 262558; 469.5258 1777083; 469.71238 4073; 469.71883 1421077; 469.87363 1756362; 469.90292 692158; 469.95839 5060; 470.13928 2681; 470.19693 22503; 470.20218 76889; 470.3791 6773453; 470.46866 30028; 470.67058 10127; 470.71063 8246; 470.73627 1935706; 470.76744 9990; 470.78621 25023; 470.81234 22452; 471.09899 9472; 471.19473 14361; 471.37364 566937; 471.41452 1788246; 471.49078 592388; 471.54159 63028; 471.58422 52322; 471.66146 36194; 471.70231 552826; 471.79408 7221179; 471.80822 33167; 472.35027 45267; 472.36491 2621394; 472.4628 37168; 472.72611 251660; 472.73377 924036; 473.19003 9432; 473.25777 49533; 473.65296 9610; 473.85017 1421143; 473.94886 8041; 474.07497 47321; 474.51296 11106014; 474.5431 72550; 474.67646 48406; 474.68108 27532; 474.9771 567271; 475.411 48474; 475.44413 128714; 476.18562 36530; 476.20485 9375861; 476.33766 1798083; 476.4718 99963; 476.55012 1254839; 476.86093 555; 477.14657 60913; 477.25732 9505; 477.8466 61821; 478.01799 29727; 478.29324 117310; 478.36599 56107; 478.92169 4843240; 479.03302 22847; 479.18133 1429; 479.24576 9122881; 479.43306 4516; 479.50789 77462; 479.5641 9250760; 479.67347 2879; 479.74646 1041939; 480.05073 62707; 480.07313 646993; 480.13624 44889; 480.15461 152001; 480.21473 5772; 480.23167 149991; 480.45901 171404; 480.50829 3944942; 480.52458 1274675; 480.64249 117357; 480.79599 66893; 480.98243 7068; 481.06396 40296; 481.16837 1185778; 481.17258 7126; 481.30773 4684675; 481.48215 1286635; 481.5476 35004; 482.0453 128348; 482.2008 7746755; 482.48805 4665; 482.58526 64732; 482.65814 3153353; 482.95206 5378622; 483.22011 17553960; 483.42154 510326; 483.72233 2731436; 483.89419 4794038; 483.92477 2003; 484.09818 9037083; 484.18532 23841; 484.36829 1633567; 484.37846 6780976; 484.64349 39791; 484.76443 4325879; 484.79562 1376; 484.80789 5742; 484.88707 543284; 485.01871 70768; 485.08853 4263; 485.109 1641965; 485.18915 1142108; 485.38347 14603751; 485.95265 80587; 486.09609 8191; 486.39785 81751; 486.58819 22586; 486.71066 3873545; 486.87099 25962; 487.14661 1134555; 487.19436 1670543; 487.27837 41009; 487.68247 799951; 487.99151 75406; 488.01166 77385; 488.03544 2281795; 488.17575 7704679; 488.35142 26110; 488.35995 56127; 488.3806 74916; 488.61851 216352; 488.65392 2830913; 488.79823 52207; 489.28456 2513130; 489.32097 24254; 489.53762 1757420; 489.63338 158771; 489.8269 4258; 490.08818 1820; 490.19627 73155; 490.3399 823408; 490.41363 1595927; 490.7282 23113; 490.86986 1056162; 490.93892 2213983; 490.96152 140212; 491.15453 156077; 491.34898 29149; 491.42042 3253127; 491.51496 20826; 491.57785 114642; 491.60257 7363; 492.36315 110157; 492.37388 22956803; 492.79624 5719; 493.00446 37603; 493.17464 12705; 493.27521 5988830; 493.40073 42794; 493.53564 1495375; 493.71709 543460; 493.96232 6627430; 494.05771 29558; 494.19701 95; 494.29381 4705791; 494.36579 78512; 494.38932 24654; 494.54042 18325; 494.54956 137325; 494.60728 2320654; 494.81016 64152; 494.82248 4775; 494.83574 2688193; 495.20965 1038844; 495.75479 704226; 495.94162 4358198; 496.22884 49296; 496.32026 1669501; 496.44652 1296906; 496.45133 14230; 496.9587 25126; 497.07475 103585; 497.18713 408; 497.23944 1893191; 497.28878 189616; 497.60976 33672; 497.66955 154050; 497.92691 70921; 498.07905 30643; 498.09555 34596; 498.18071 66594; 498.21054 9595; 499.2314 1151652; 499.3403 45461; 499.40396 2684; 499.55494 4865; 499.57244 1222 +<4, 2>: 1.15727 949976; 1.2656 44257; 1.2842 21986; 1.3269 656349; 1.33956 28488; 1.43942 5589169; 1.48418 1203192; 1.64215 15640; 1.92864 145420; 2.14635 168594; 2.56482 1930286; 2.86354 28729; 3.28647 46925; 3.38546 9427; 3.82668 56140; 3.90912 152196; 4.34596 187499; 4.59435 24921057; 4.80966 56668; 4.94951 110; 5.06379 330571; 5.15801 3956180; 5.16535 27610; 5.2608 66766; 5.49451 27968; 5.54997 23703; 5.59164 350256; 5.64158 22485; 5.64173 169340; 5.77529 654247; 5.91306 29338; 6.11422 3013414; 7.03601 518633; 7.1676 75840; 7.78765 70175; 8.2907 597209; 8.50432 1440448; 8.76442 8959; 9.59077 599307; 9.68483 39782; 9.83618 1310356; 9.8663 44915; 10.46559 4825531; 10.55969 28550; 10.85415 8392304; 10.99079 6233133; 11.27829 5981; 11.52034 3898; 11.67875 1465783; 12.04182 48725; 12.05517 34994; 12.09461 72362; 12.2567 7889; 12.70245 6885; 12.81554 3496557; 13.12588 25682; 13.19347 1096732; 13.40947 147173; 13.46291 9566915; 14.26616 3962225; 14.36778 425683; 14.61707 1520508; 14.859 3688775; 15.09811 706121; 15.13222 27313; 15.59843 31110; 15.75242 137937; 15.82125 103906; 15.87563 9706869; 16.09861 9689; 16.37823 4527919; 16.41873 7382721; 16.5718 67690; 16.69502 1771294; 16.73467 24604; 16.95952 2773; 16.97829 732745; 17.128 107858; 17.20626 28121754; 17.33303 4832; 17.41921 79365; 17.44695 7819975; 17.82185 129884; 17.85906 598453; 17.99268 10745; 18.10779 66684; 18.27515 2468376; 18.42133 167699; 18.64609 1481615; 18.93766 9204321; 19.00855 13673; 19.01598 1089807; 19.29311 913269; 19.78975 1481061; 19.79605 1597734; 19.90113 15958; 19.98215 179071; 20.29025 192742; 20.45647 54538; 20.56753 1156495; 20.61576 17558; 20.64236 1201271; 20.64513 26012; 20.74104 62967; 20.95263 35309; 21.2484 2116317; 21.62229 47802; 21.73275 477146; 21.77871 55451; 21.97041 42726; 22.08578 142108; 22.18665 373255; 22.45082 9380; 22.56007 514551; 22.58768 65077; 22.72683 56785; 23.30795 1508; 23.50231 61189; 24.11398 27104; 24.14124 60208; 24.32192 56288; 24.47959 1607056; 24.65766 18573; 25.09288 6925; 25.22683 9500; 25.2991 3393441; 25.39875 1336; 25.44151 4041; 25.48898 3488512; 25.65082 60086; 25.70732 230463; 26.27394 2605; 26.57681 3976; 26.63041 843475; 26.85443 73445; 26.94519 9003563; 27.19672 59354; 27.39842 25720; 27.42195 1517687; 27.48351 25861; 27.81321 9575893; 27.90365 57208; 28.29516 1318725; 28.29778 1576424; 28.34941 879717; 28.55097 20827905; 28.56605 4221319; 28.82953 620213; 29.1819 634633; 29.32461 42153; 29.37204 29111; 29.41797 21584; 29.67834 40006; 29.74182 5438961; 29.86616 6752892; 30.13846 52470; 30.38678 825161; 30.61479 35166; 30.63211 12617155; 30.88544 30178; 30.98341 152432; 31.90265 94634; 32.09094 9729711; 32.39409 187906; 32.75544 1598781; 32.84437 1522301; 33.04953 139245; 33.1947 1183; 33.38076 20759; 33.47699 70702; 33.48894 28093; 33.62598 199911; 33.72681 2324678; 33.76762 2423532; 33.86835 677296; 33.88512 1878281; 33.94493 102098; 34.05419 7802; 34.24909 1907077; 34.31422 314973; 34.36056 8149; 34.92122 1041961; 35.2447 19808; 35.30262 39746; 35.47347 671037; 35.49926 24489; 35.53904 179222; 35.56932 5857389; 35.64685 454640; 35.66237 196482; 35.72966 5054454; 35.85156 12443; 36.13496 20873; 36.15043 34652; 36.29199 24908; 36.3431 2338; 36.78654 22788; 36.86736 8760969; 36.89519 6287758; 36.90951 72224; 37.16724 1247; 37.24366 1707418; 37.4637 988227; 37.57434 24989; 37.64295 620783; 38.0602 28441202; 38.08343 878649; 38.52152 1519745; 38.53531 50141; 38.7166 4538480; 38.86538 12770393; 38.91044 55313; 38.93412 1793142; 39.23494 685632; 39.44275 29368; 39.44813 59310; 39.45626 55687; 39.58237 36557; 39.83592 4204190; 40.02472 17429; 40.21198 31154; 40.33042 33471; 40.34164 3148115; 40.64045 2435525; 40.73456 46561; 40.87998 5426146; 41.02248 35065; 41.07757 6607; 41.24955 2694371; 41.43131 9015438; 41.67492 12547; 41.69584 77965; 41.76266 9594977; 41.96336 684295; 42.18871 60017; 42.28166 348567; 42.45769 22223; 42.52266 853970; 42.67257 9180169; 42.77087 376422; 42.80652 761839; 43.07496 70416; 43.43477 48423; 43.53764 27454429; 43.6056 2058545; 44.15792 767212; 44.55055 263652; 44.6701 348314; 44.69111 25238; 44.94543 59969; 45.1596 6383979; 45.41454 1828700; 45.63074 26058; 45.70583 1728; 45.70978 35997; 45.98184 3736932; 46.34793 1250668; 46.41697 74646; 46.79446 48549; 46.90823 7377; 46.92443 324760; 46.93734 288840; 47.11915 47546; 47.15666 21146; 47.26012 29820; 47.39284 65834; 47.42283 42945; 47.96255 408762; 48.00633 69933; 48.06677 6839869; 48.2309 7840; 48.62003 6201635; 48.90372 1290509; 48.95283 16911889; 49.09508 24499398; 49.56838 4473119; 49.71422 5977200; 49.75086 6663359; 49.94584 29528; 49.95514 13899; 50.04812 26512; 50.40271 4210; 50.61533 13505; 50.62237 17587; 50.71272 32082; 50.93358 1451572; 50.97153 32540; 50.99435 4550177; 51.18297 7794; 51.22979 8941800; 51.50363 28544; 51.52989 1656651; 51.71885 2417767; 52.08731 19262; 52.13993 43057; 52.33742 40892; 52.62602 932420; 52.74267 6972; 52.96186 7434; 53.00746 709909; 53.08808 25390; 53.32631 70724; 53.81009 139162; 53.84844 27454; 54.12011 2362; 54.23645 105805; 54.58367 3289; 54.63196 2118692; 54.7693 28427; 54.91733 186296; 54.93797 1183333; 54.95103 37596; 54.99104 2063929; 55.09209 7220; 55.21829 206205; 55.70022 46387; 55.85972 68092; 55.89697 41668; 55.92548 239950; 55.9523 58903; 56.21283 5368941; 56.39526 2849; 56.51533 43561; 56.5968 23595; 56.64502 7695; 56.78787 25543; 56.91176 16349; 57.05119 6427; 57.15789 1054001; 57.70115 5558660; 58.76368 4838; 58.98913 32976; 59.09234 9723104; 59.15559 42276; 59.30047 62692; 59.48528 133394; 59.62811 56080; 59.82871 63476; 60.07136 130460; 60.0879 17739; 60.30967 39146; 60.57951 2776495; 60.70367 26767; 60.95082 4554; 61.10915 2632; 61.30714 5051519; 61.31461 1626999; 61.42572 1599803; 61.50277 24467; 61.50382 21683; 61.6177 28601; 61.74514 1396661; 61.76907 756; 61.77769 25675; 62.3691 8656; 62.4948 22497; 63.04826 2489; 63.09414 3851073; 63.11946 107326; 63.38356 18561; 63.51012 1325; 63.87848 1999751; 64.20596 52918; 64.28041 1485127; 64.4018 25862; 64.46664 28536; 64.56054 12594; 64.77513 1690356; 64.83539 174709; 65.16594 16222; 65.30831 668567; 65.46018 7325784; 65.67729 37270; 65.74784 40002; 65.76584 351126; 65.97741 1975; 66.12627 19661807; 66.3721 25164; 66.37475 37560; 66.44097 197523; 66.55897 5611871; 66.95098 11464; 66.95902 794604; 67.28299 7096; 67.50748 1463187; 67.57788 7525366; 67.63915 109655; 67.94174 572864; 68.06953 14574; 68.08025 7408043; 68.5962 3136; 68.68463 25041591; 68.84171 66745; 69.13176 6057; 69.35457 7384651; 69.47366 22929; 69.50095 20784; 69.58539 176763; 69.88339 25661; 69.99563 482295; 70.47289 3856933; 70.61958 1337991; 70.65858 1459469; 70.8716 79513; 70.94473 2092441; 70.95683 41410; 71.15643 9917; 71.26151 6347230; 71.32315 23980; 71.37077 57252; 71.40755 8049213; 71.52609 574015; 71.74038 1972233; 71.74654 42604; 71.813 6617; 71.93144 7908586; 71.97835 4798; 71.99988 3931; 72.10125 8161; 72.1154 8752481; 72.17047 1192; 72.48011 25510949; 72.66807 54247; 72.74075 1720987; 72.87309 2822123; 73.27308 35020; 73.33413 9336; 73.33751 878190; 73.42271 581426; 73.56894 8643549; 73.62802 4925; 73.74983 59297; 74.13038 48352; 74.43188 76105; 74.63331 5549016; 74.64988 36722; 74.99606 8604758; 75.7886 35389; 75.88456 20316; 76.49354 51543; 76.63226 2953692; 76.80783 22699473; 77.08502 79668; 77.91054 29822; 78.14854 186860; 78.33784 1572372; 78.40111 13679; 78.61543 14570333; 78.69976 180190; 79.42789 7287; 79.46152 776212; 79.51854 41405; 79.82408 17707; 79.84889 37842; 80.90544 2438644; 80.96324 14731; 81.46781 1099828; 81.50844 290358; 81.72376 4783476; 81.80636 79999; 81.83974 18567440; 81.86872 9320785; 81.95965 3560; 82.0457 27091; 82.44458 3711512; 82.4729 17024; 82.51978 9328579; 83.00734 32085; 83.01259 3985243; 83.0176 15207; 83.20451 405533; 83.26817 33603; 83.29143 168924; 83.7291 2164; 84.14991 622807; 84.29451 27205; 84.48043 25169; 85.21778 51170; 85.31272 36053; 85.46706 72458; 85.59854 856520; 85.6726 2961; 85.96927 51925; 86.67449 1265323; 87.04944 19816; 87.30029 1045774; 87.43546 1708157; 87.67839 19595872; 87.75993 2801; 87.79697 133355; 87.81204 5230017; 87.8285 77949; 87.84059 8495412; 88.20858 7922417; 88.23174 18497; 88.48493 927174; 88.5512 658658; 88.6282 2276512; 88.93482 9018; 89.10568 1825912; 89.13517 3174911; 89.27525 59098; 89.42283 1433504; 89.50973 24501; 89.775 584141; 89.91985 3245952; 90.04709 18336; 90.21864 8418; 90.36898 4303179; 90.38272 7490; 90.46311 70968; 90.49217 46796; 90.77428 6753; 91.29031 36699; 91.79902 135388; 91.8412 6832611; 91.96342 7549; 91.96436 2204164; 91.99483 58028; 92.12379 3985; 92.12444 2078256; 92.15379 15695; 92.19571 22602; 92.24689 3770; 92.25612 3194536; 92.31981 42791; 92.48482 4432093; 92.49134 6635352; 93.02374 7726416; 93.65714 7316427; 93.85808 50937; 93.94412 56546; 93.96469 61418; 94.16073 515154; 94.18563 1480402; 94.45845 68549; 94.47973 26980; 94.68124 478870; 94.79922 3506975; 94.80205 3725; 95.09499 8922; 95.50583 1062785; 95.9112 146256; 95.91743 77213; 96.01719 429648; 96.27492 40536; 96.37146 4109626; 96.38779 25706; 96.40661 8647077; 96.44757 32126; 96.46935 5524; 96.60264 5684; 96.78274 73202; 96.79741 9815594; 97.03324 141849; 97.13091 388378; 97.19688 4675398; 97.21759 233578; 97.30222 54105; 97.67171 27765; 98.01411 66755; 98.05728 4677; 98.23617 77821; 98.45541 11280; 98.63264 65590; 98.80332 7661; 98.97434 2956094; 99.06865 3143439; 99.17018 881782; 99.36042 79132; 99.4541 95997; 99.5948 606804; 99.6819 193502; 99.96282 44017; 100.11381 8513303; 100.45155 1831406; 100.61342 102254; 100.7775 1189399; 100.84323 14319851; 100.89272 5752; 101.07049 45799; 101.32965 20059; 101.60946 27806; 101.82257 400267; 101.97758 8762137; 102.00078 109826; 102.09316 4924099; 102.60741 5825849; 102.69396 7485497; 103.10326 2401355; 103.31055 5388; 103.70946 75940; 103.795 1398934; 104.21511 77457; 104.37834 153838; 104.71095 966129; 104.95214 4573978; 105.30809 48677; 105.34345 31680; 105.47621 4641; 105.54144 32936; 106.12947 1499033; 106.23427 23956; 106.39943 44026; 106.55751 3366; 106.83871 4286449; 106.95233 1786274; 106.98013 1152321; 107.09833 6506932; 107.16368 4726704; 107.16607 40713; 107.27744 24145; 107.41269 70278; 107.46562 7547689; 107.53441 29819; 107.64134 6237; 107.65153 1351; 107.70353 40999; 107.74904 2363; 107.86266 79615; 108.41461 55513; 108.77781 24180734; 108.79215 3073780; 108.88103 7727259; 109.09756 29177; 109.17862 27507; 109.23488 49021; 109.4928 4280024; 110.08954 4217900; 110.26845 26128; 110.32247 60655; 110.40835 4615933; 110.52626 1578; 110.64091 414514; 110.64767 1833544; 110.75106 72404; 110.8141 62262; 111.20363 5598; 111.45365 4109012; 111.83556 9795429; 112.07343 177302; 112.71553 86072; 112.95438 8696; 113.01265 24199; 113.3893 4849927; 113.61368 8611441; 113.64693 4951502; 113.78944 2921515; 113.86659 4688775; 114.12573 76145; 114.23706 1935043; 114.4406 58503; 114.45247 6696877; 114.56881 7362466; 114.60513 32219; 115.1176 30463; 115.32429 1324; 115.54903 65428; 115.59102 1444359; 115.70929 107568; 115.71133 1287809; 115.91942 1219469; 116.22846 6941; 116.32195 1151190; 116.34456 11339; 116.43087 42993; 116.53688 40795; 116.63929 9877; 116.80053 732310; 116.98121 632275; 117.05291 173388; 117.07333 60664; 117.18124 107690; 117.37314 9554253; 117.37614 115400; 117.74671 27584; 117.89768 27978; 118.30653 6462723; 118.60327 9827; 118.81701 32303; 118.98189 26807; 119.39585 33718; 119.63612 9597; 120.00105 6933; 120.14183 184370; 120.40659 20138; 120.49849 2910708; 120.5357 79517; 120.64776 38108; 120.81344 35133; 120.93018 480067; 121.069 283177; 121.17601 1074945; 121.26936 50299; 121.53685 1762540; 121.545 20961; 121.6984 1963750; 122.01172 2132; 122.12246 4446766; 122.27998 11522843; 122.4785 4515; 123.03317 92403; 123.12296 21169; 123.16973 4367172; 123.40502 1285; 123.57121 68534; 123.67555 19149; 123.80672 2635472; 124.03244 9083937; 124.12109 3085608; 124.51598 8999476; 124.61097 29241; 124.80092 2241536; 124.99442 26876; 125.06522 1184751; 125.14466 22; 125.23717 25671; 125.34242 14214058; 125.40193 5055; 125.61023 90940; 125.96895 4323563; 126.19527 175679; 126.59455 9465; 126.61762 6123695; 126.93254 1215; 127.11739 487743; 127.15726 6491571; 127.27865 122234; 127.52117 1331; 127.66613 9981542; 127.67387 1213722; 127.69073 6451; 127.753 7732; 127.76979 98777; 128.2356 57268; 128.43092 37161; 128.76423 3478132; 128.99676 66039; 129.04232 6459; 129.07192 78253; 129.30136 2679350; 129.5018 46552; 129.64707 12991; 129.84353 115308; 130.16277 61062; 130.28292 2354812; 130.3314 1910; 130.69253 17701597; 131.22788 88653; 131.2784 4229; 131.36956 21429; 132.01453 5662799; 132.57723 972345; 132.6348 38223; 132.7445 738736; 132.79887 47654; 132.81166 428138; 133.34129 24960; 133.86413 3724656; 134.01334 4591263; 134.43107 56848; 134.50952 1492; 134.63317 17084; 134.73463 194417; 134.84257 78216; 135.02305 418235; 135.0393 1520203; 135.04023 15028; 135.08774 44356; 135.0932 25933; 135.16485 6578; 135.83856 33284; 136.06971 904621; 136.13414 33089; 136.38273 1822116; 136.73227 1953863; 136.73644 5791879; 137.09008 14299; 137.17801 23693; 137.39422 7258914; 137.50553 42844; 137.5755 1833383; 137.69929 51293; 137.75655 6655260; 137.81156 68894; 137.81274 4328046; 138.04463 78007; 138.4169 8340982; 138.51493 19070; 138.61954 15637044; 138.63428 25126; 138.65141 75855; 138.65949 1444; 138.78095 6879; 139.78927 27351298; 139.92113 32089; 140.19322 40662; 140.59604 153473; 140.86315 62562; 140.93835 24846; 141.0725 2953758; 141.28161 62261; 141.4607 12787; 141.48073 1392916; 141.61027 2526004; 142.01916 17134; 142.1457 5099; 142.28974 27509; 142.29603 819613; 142.82077 3809506; 142.88023 16382; 142.91604 25512; 142.96863 69026; 143.2035 36545; 143.26438 3992360; 143.28511 335835; 143.73484 519334; 143.92685 32309; 144.06306 6920; 144.08546 15883; 144.65169 1576494; 144.77274 2354957; 144.96544 373662; 145.24335 340572; 145.24879 78777; 145.49388 708222; 145.85594 41090; 145.95205 25206028; 146.19125 23945; 146.44648 1440801; 146.97759 1992; 147.15456 1671191; 147.58961 832142; 147.60723 4122; 147.77263 435803; 148.28728 17920675; 148.3071 165764; 148.34706 5536228; 148.58295 52756; 148.663 7843; 148.6716 173243; 148.7024 17661; 148.8659 4738177; 149.10635 5999; 149.26896 733031; 149.31278 28161; 149.40743 24158; 149.61133 55224; 149.75006 1312020; 150.29685 63733; 150.43537 7971; 150.70224 98640; 150.9146 27706; 151.10601 3355913; 151.12559 31122; 151.14309 8634038; 151.2432 64030; 151.40814 113238; 151.45302 88040; 151.65404 26577; 151.9523 48494; 152.06981 69321; 152.12783 8861; 152.15468 424545; 152.37447 34561; 153.18172 37091; 153.34108 9293; 153.34593 10212640; 153.37453 195388; 153.55879 11062235; 153.65075 12346112; 153.83959 114389; 153.88504 396923; 154.20496 5812; 154.38053 79377; 154.61624 9419937; 154.65604 133881; 154.69074 1778989; 154.86708 607643; 155.38884 29977; 155.58455 454442; 155.80462 51336; 155.84562 73764; 155.96114 7196; 155.99089 482914; 156.18947 51569; 156.20915 97670; 156.31014 55109; 156.38562 4623; 156.47791 1548748; 156.96123 8963664; 157.03058 489624; 157.28986 28032; 157.38908 25240459; 157.60036 7841485; 158.25284 8180786; 158.4218 21322; 158.51484 3943267; 158.63044 107838; 158.70122 117; 159.03425 37382; 159.07242 9342170; 159.08679 1466234; 159.35069 45203; 159.60637 74462; 159.78197 1851789; 159.90963 21439; 160.03036 1684889; 160.03338 5478685; 160.09527 2958; 160.10816 41643; 160.21203 1585503; 161.32116 25854; 161.46989 8534; 161.77703 1406768; 162.1133 48176; 162.45782 1706893; 162.62364 71667; 162.64564 53830; 162.71506 1036529; 162.77958 4024468; 162.99717 4468205; 163.26239 2137963; 163.27983 1430485; 163.47152 25814168; 163.56329 7011442; 163.63291 86364; 163.68345 35563; 163.89785 3980429; 163.99976 35980; 164.05183 5032443; 164.33648 25618; 165.06546 683911; 165.28432 27405; 165.30036 13114; 165.35088 718349; 165.42514 2133703; 165.48893 29104; 165.49994 6759; 165.58097 1675965; 165.94384 748927; 166.12583 437136; 166.9754 532216; 167.04843 1501150; 167.263 57409; 167.33851 583364; 167.61183 1051; 167.63518 66698; 167.65586 174913; 167.68903 630087; 167.69374 63684; 167.74058 15043; 168.03342 4107874; 168.04019 63066; 168.11095 841025; 168.20472 67160; 168.28991 28891; 168.30747 71136; 168.4037 7717019; 168.53546 24483; 168.67023 32307; 168.74583 2187270; 168.85432 24166; 168.95549 3893033; 168.98908 27087; 169.01195 136963; 169.03443 5872; 169.12441 5867; 169.16389 7003; 169.26746 44722; 169.30067 1097896; 169.43223 473892; 169.49992 52712; 169.79039 20107; 169.81372 6228753; 170.41008 72451; 170.54011 70428; 170.55941 367237; 170.57075 65154; 170.58931 4827; 170.88415 28969; 170.88665 192367; 171.02285 351762; 171.03689 8577817; 171.22713 17845; 171.35041 5614; 171.71071 20167; 171.73677 6899265; 172.15608 4753978; 172.18465 4791; 172.44043 16107; 172.72946 107078; 172.94932 21582; 173.00605 19114133; 173.21209 48278; 173.22937 1232179; 173.33422 7321117; 174.4919 6105; 174.99962 899976; 175.21104 64680; 175.242 10701; 175.40464 3158276; 175.5187 23751; 175.65188 2622138; 175.73103 5304755; 175.92141 6386788; 176.13156 7896910; 176.1663 13598; 176.31589 1600385; 176.41434 2275059; 176.84185 796446; 176.9578 24627005; 177.69982 10835; 178.01984 1794105; 178.10986 2308445; 178.16986 19576; 178.34138 1285786; 178.68789 44176; 179.08989 666149; 179.64303 66212; 179.65079 195832; 180.10095 2446717; 180.23711 131131; 180.62738 40867; 180.66886 8536; 180.79377 5944; 181.32543 3760798; 181.64351 9221120; 182.02061 58462; 182.4086 70610; 182.47209 54463; 182.49879 1524999; 182.51001 62803; 182.57306 1460551; 182.61764 34101; 182.86522 8307770; 183.14082 21246; 183.23187 744669; 183.43903 6618939; 183.66655 512897; 183.68297 1362431; 183.76204 37790; 183.913 24879361; 184.38874 341207; 184.3931 967271; 184.41837 6032552; 184.6117 7488; 184.68108 32251; 184.81323 16283474; 184.84278 10173796; 185.24075 23014; 185.32036 58676; 185.43885 275943; 185.44139 57116; 185.54162 36561; 185.624 9695871; 185.65319 4751; 185.70832 26784; 185.83256 47489; 186.01442 24691; 186.05045 6609; 186.0543 4944112; 186.05676 56769; 186.10943 16486; 186.39941 117837; 186.45924 2563178; 186.47871 62119; 186.483 3102653; 186.56224 52880; 186.94711 163416; 186.96208 64390; 186.99131 32931; 187.14969 46107; 187.33514 6774945; 187.63548 76435; 187.82208 119110; 187.94703 64886; 188.32754 9082426; 188.37876 16528; 188.56121 16147; 188.6492 1054564; 188.96065 36093; 189.17932 815738; 189.18287 4315257; 189.20436 2464; 189.26684 749775; 189.30423 4664560; 190.18368 50863; 190.25702 5365783; 190.25833 61617; 190.53392 25471; 190.77335 508490; 190.77477 27635; 191.06016 5292; 191.3652 1092677; 191.39462 45378; 191.39857 14591612; 191.64412 57352; 191.66033 16181; 191.85607 70253; 192.26173 13916676; 192.28496 9615; 192.48667 6989; 192.50264 232415; 192.69357 5918; 192.75506 80429; 193.33046 7531; 193.3471 1267575; 193.37759 6575547; 193.55485 924221; 193.65003 519164; 193.68561 8210; 193.83829 6418663; 193.97531 8027; 194.19306 6462; 194.47465 42720; 194.7819 37756; 195.08414 6739; 195.29033 8753; 195.30899 128609; 195.37467 71691; 195.52795 13132; 195.59056 670061; 195.92604 22954; 196.3054 19510; 196.72063 149666; 196.72121 1161729; 196.91159 25795; 197.26278 30501; 197.36558 354; 197.36904 39158; 197.453 6186494; 197.565 664870; 198.36365 26163; 198.46206 4761205; 198.62681 3866488; 198.71011 187683; 198.88715 5527267; 198.92775 3320; 199.05898 59644; 199.19895 4300; 199.44231 23836; 199.60103 68630; 199.8416 28567; 199.8994 38887; 200.09861 20436; 200.11525 685748; 200.49377 71567; 200.70705 56145; 200.71002 44009; 201.04514 71243; 201.31545 28359; 201.38437 17610; 201.43046 40281; 201.60018 3095; 201.80212 36321; 201.89172 277738; 201.89472 9429; 201.90538 19800684; 202.19394 79014; 203.04532 85353; 203.19565 46642; 203.1976 21657; 203.21001 27460; 203.41914 4729544; 203.91135 25348849; 203.98867 2290519; 204.02568 1866791; 204.1624 28348; 204.38799 30177; 204.58878 3520821; 204.75245 1256585; 204.80417 4806490; 204.89732 61991; 205.03013 37126; 205.06905 71994; 205.07251 22920; 205.32242 3243017; 205.33748 2216; 205.37276 531; 205.38369 4795; 205.50528 168161; 205.8127 2556962; 205.86542 15671; 206.00693 4391486; 206.24822 6067; 206.54311 6217; 206.80773 64668; 206.87688 4406978; 206.90669 193; 206.93753 56415; 207.07608 16176; 207.10167 3334789; 207.16941 4781809; 207.31319 29787643; 207.50172 33033; 207.52332 6435; 207.78508 1975345; 207.89292 25643; 208.4446 636048; 208.52001 40829; 208.52324 477; 208.56729 72743; 208.57173 3152; 208.65726 16088; 208.83566 348339; 209.0571 8081557; 209.55631 3785; 209.67059 807298; 209.85112 1125609; 210.16658 1899145; 210.32558 697348; 210.74125 4893; 210.84601 29062; 210.87561 5273238; 211.03098 11651; 211.18335 34260; 211.50945 441678; 211.51267 478342; 211.9106 41776; 211.94703 1762711; 211.94731 93602; 212.12207 249973; 212.34175 688145; 212.44794 49595; 212.92566 7129; 213.00423 36507; 213.157 775241; 213.16571 26356462; 213.31759 2524577; 213.60178 5125; 213.65642 29577; 213.70702 1014076; 213.73122 87944; 213.99221 32835; 214.15155 5046; 214.44965 8041000; 214.86945 523395; 215.16264 413; 215.56933 76168; 215.57002 1793257; 215.85495 35755; 215.85986 1441234; 216.23668 697179; 216.2909 1263; 216.44592 37054; 216.48198 32452; 216.77313 76840; 216.94082 4271723; 217.07155 26015; 217.4969 48750; 217.61066 25456; 217.99944 46728; 218.03314 21052; 218.28308 5863; 218.48418 17292; 218.56208 1870840; 218.62658 3788137; 218.67844 3450103; 218.72504 83529; 218.9262 34764; 218.95347 1660736; 219.11736 21982; 219.19652 21259; 219.45243 9162; 219.49863 54189; 219.97277 13263; 220.35666 35978; 220.72433 8677; 220.93595 3588499; 221.00599 6043; 221.07635 1464600; 221.18383 4680443; 221.68735 23815; 221.98359 50237; 222.1649 100815; 222.28239 28395; 222.49468 4455603; 222.90768 554619; 222.98612 1055784; 223.36335 75203; 223.36808 12109; 223.53025 36368; 223.53283 729705; 224.04685 2311; 224.08467 37598; 224.13744 14530; 224.39536 28802297; 224.72773 2506308; 224.74315 1350628; 224.83873 5254; 225.11174 162; 225.22344 186071; 225.24364 8063781; 225.29678 9788504; 225.46189 422714; 225.86288 76636; 226.06214 326521; 226.19126 473125; 226.38357 2685; 226.56722 28113; 226.64329 72512; 227.04599 11703; 227.16548 67841; 227.29139 49404; 227.37004 4487; 227.62219 725984; 227.74655 26871806; 227.75443 135250; 228.24555 73432; 228.59592 854053; 228.6687 8669003; 228.69077 29377228; 228.74554 58369; 228.74697 4472094; 228.95488 27595; 229.02306 332134; 229.11308 176; 229.26317 46344; 229.44744 9369405; 229.71541 190433; 229.75313 24134; 229.76966 78934; 229.91033 9444456; 229.96969 49048; 230.12383 17232; 230.25489 73140; 230.55541 78068; 230.60419 3621503; 230.63387 34249; 230.77683 29353; 230.90883 28852; 230.90972 25376; 231.02798 186979; 231.32028 63905; 231.37574 40851; 231.56364 38875; 231.64955 3480366; 231.77633 32704; 232.29993 134403; 232.60144 2744405; 232.70106 4235; 232.71424 58155; 232.72224 4768; 233.11725 459091; 233.20369 27010; 233.41576 946766; 233.73047 9000376; 233.98372 1678351; 233.9996 1076; 234.11085 33317; 234.19513 9367663; 234.5142 6161300; 234.76365 40341; 235.07095 176542; 235.15659 947909; 235.37225 60061; 235.44231 28675; 235.57487 176028; 236.20561 13150; 236.4967 4492468; 236.5448 59777; 236.57244 7095; 236.60526 17758596; 236.78656 20318; 237.1153 3581; 237.16216 1044; 237.28 8823; 237.41827 7955; 237.61542 3947225; 237.76027 4662; 238.03841 11201; 238.44089 98457; 238.6683 26489; 238.68456 97591; 238.84176 57781; 238.85852 1389862; 238.93534 6741989; 239.04677 438592; 239.27543 17762784; 239.27832 3055882; 239.32194 2138073; 239.63565 71650; 239.6708 20013; 240.12237 3417; 240.23516 2604410; 240.75253 7259; 240.88767 93800; 241.11907 4702261; 241.66011 486654; 241.70721 35542; 241.89805 2817789; 242.11734 1482704; 242.16656 38818; 242.23032 7832612; 242.32222 51089; 242.56836 4083; 242.60365 79439; 242.6767 225405; 242.85305 684167; 243.03785 39635; 243.06344 5315843; 243.13274 6909; 243.26544 2091910; 243.35836 24865; 243.42352 4002; 243.44975 24955; 243.65421 4914; 243.67673 7929; 243.78381 4701136; 244.18746 7253; 244.58301 106059; 244.81119 77745; 245.30819 1447287; 245.42719 3519364; 245.48065 64591; 245.72135 911893; 245.93809 69816; 245.9955 23085; 246.35635 7538; 246.36772 58363; 246.47598 40225; 247.09865 9064; 247.17403 10844; 247.22131 29407; 247.2773 76923; 247.43666 34719; 247.51611 1742784; 247.60485 42785; 247.74679 7643; 247.88145 22023; 248.10473 117447; 248.20195 27397; 248.23114 1628264; 248.62781 123004; 249.251 765193; 249.29387 4011888; 249.48862 75862; 249.53657 138586; 249.56461 2417858; 250.19061 93969; 250.527 5032706; 250.53479 4710018; 250.88568 1745315; 250.90494 8326; 251.13597 1818426; 251.30101 32384; 251.31433 2234518; 251.52911 30249; 251.54531 17973044; 251.85017 3278592; 251.93943 21328; 252.22638 48106; 252.85565 4875897; 253.10216 58579; 253.23577 129285; 253.3099 1214; 253.37627 8265414; 253.38682 10038; 253.70659 353236; 253.91011 6308252; 254.29467 7250; 254.67537 3255820; 254.79084 4738; 255.06818 2763575; 255.21388 37094; 255.38044 1682053; 255.41227 12173182; 255.43619 1827029; 255.45459 40826; 255.68586 70407; 255.80589 28568; 255.84128 9583; 256.21314 7520; 256.58804 21104; 257.36853 33910; 257.40124 1732; 257.46732 3155; 257.48645 66940; 257.68168 30056; 257.88571 22189; 257.94629 36248; 258.56319 17482; 258.57368 30014; 258.74726 1068729; 259.05001 1416463; 259.06066 1006; 259.21216 2646241; 259.35771 3749393; 259.435 120306; 259.47395 3583325; 259.68277 8622155; 259.84166 4874228; 260.02928 123751; 260.42281 8434671; 260.83842 3731612; 260.84201 48287; 260.93946 7392; 260.99182 28262; 261.10426 74612; 261.24632 9149121; 261.28849 48102; 261.29539 51814; 261.36387 17785758; 261.59131 4979043; 261.68469 32971; 261.85362 4680635; 261.9164 678701; 262.06906 15540948; 262.28649 69671; 262.51922 562480; 262.53461 2557776; 262.64981 447420; 262.66193 65971; 262.70986 370372; 262.96789 1829210; 263.26011 9708; 263.3431 62470; 263.35677 1318873; 263.50638 6224; 263.52031 40042; 263.56973 17350; 263.59785 1282821; 263.66949 1257674; 263.84383 14117; 263.85924 11821; 263.89922 411347; 264.04998 74193; 264.07047 30390; 264.13732 28529; 264.17985 3945673; 264.24554 19356; 264.39798 3751664; 264.57455 61331; 264.70176 20505; 265.26112 7005; 265.50108 37010; 265.66975 40944; 265.67363 45503; 265.70162 28868; 265.74007 10307333; 265.85772 253538; 265.89344 94496; 266.06553 36; 266.07369 54281; 267.61177 29868; 267.906 18754416; 268.06342 24058384; 268.09302 3438109; 268.32369 17236; 268.50661 555388; 268.75314 69954; 269.25812 13430; 269.34051 56086; 269.44604 66299; 269.5827 45475; 269.68495 9160850; 270.37202 870700; 270.49067 1557310; 270.55132 583421; 270.77327 36893; 270.86038 2533564; 271.19875 48711; 271.60625 25011; 271.61745 10729; 271.68718 2790920; 271.80009 3602; 271.99531 4287291; 272.17201 1340328; 272.19833 6157; 272.3992 9338629; 272.77689 6093370; 272.87153 1371675; 273.11621 138235; 273.47368 7614072; 273.50313 26817989; 273.74456 9029; 273.8508 62639; 273.95228 35563; 274.29065 1929072; 274.46961 805574; 274.56022 74832; 274.73346 33704; 274.95102 73984; 274.9867 12323; 275.1827 45770; 275.2445 21193; 275.36087 3855445; 275.53618 310; 275.65 29828; 275.83378 1370952; 275.99472 2567334; 276.35342 1639242; 277.42589 9335; 277.60467 4922577; 277.8279 2512387; 278.2369 74587; 278.81979 75536; 278.86322 32049; 278.89601 5294; 278.92345 7464; 278.92521 54209; 279.00106 77681; 279.13401 1707169; 279.14613 121903; 279.172 177345; 279.22667 22189; 279.43469 37742; 279.63152 15171; 279.69276 37232; 279.97399 22448; 280.15467 8489459; 280.23043 187290; 280.56974 64919; 280.94724 328377; 281.06026 21563; 281.28437 206110; 281.32829 46643; 281.53593 9419448; 281.83126 32910; 281.92309 55073; 282.42418 251518; 283.17256 62710; 283.37483 26628; 283.47897 29657; 283.5675 6788; 284.01771 27517; 284.06817 181789; 284.1017 607976; 284.11895 18448; 284.17608 159336; 284.32341 799267; 284.33914 17244; 284.38556 341794; 284.59036 593; 284.79308 1609614; 284.90342 56503; 284.95636 74228; 285.42373 35924; 285.59087 30814; 285.60005 26143; 285.67842 407648; 285.96109 2900313; 286.84514 3093; 287.0037 50212; 287.4044 26863; 287.86091 26570; 287.86658 47098; 288.45944 6930367; 288.56858 4951195; 288.6674 82229; 288.82206 26609; 289.15474 485741; 289.29403 36393; 289.42615 139870; 289.49617 175780; 289.62955 48516; 289.66239 228456; 289.75763 382052; 289.98756 2881; 290.00944 3958660; 290.04107 41519; 290.23476 8487271; 290.25708 52938; 290.25736 71077; 290.2745 23972; 290.41023 1416151; 290.64511 522150; 290.77023 474249; 290.808 1588527; 290.90478 479519; 291.24186 1381676; 292.09428 6034; 292.40995 317802; 292.49786 1199058; 292.56483 3106; 292.82668 3869942; 292.83168 224283; 293.04115 70024; 293.3374 180351; 293.65985 167925; 293.72672 512449; 293.76393 1521227; 293.77223 1096393; 293.83233 780613; 293.83281 25183; 294.07616 8647; 294.3112 3580895; 294.32848 4874; 294.43761 78217; 294.90271 24942; 295.18331 63110; 295.22371 1024994; 295.40209 43228; 295.48295 62429; 295.48826 55533; 295.60166 14089; 295.77611 4552133; 295.8164 155135; 296.45564 1373; 296.55413 1361786; 296.67758 50016; 296.7555 44429; 296.89633 3139920; 296.90556 76027; 297.17759 1396739; 297.48483 1148589; 297.82107 11812; 298.31121 235940; 298.38341 6693; 298.50646 34159; 298.60388 1894237; 298.74261 3166255; 298.90884 28028; 299.10323 12831; 299.16191 74279; 299.24365 3848797; 299.51946 37686; 299.74744 2623; 299.75766 29462; 299.89553 1617204; 299.98956 28072; 300.2891 2194; 300.40563 692208; 301.01988 5657728; 301.0667 44011; 301.10648 23427; 301.51055 48486; 301.52313 4882; 302.16847 9555; 302.21906 112535; 302.38518 4703970; 302.52636 190104; 302.7417 3344467; 302.87481 3111; 303.56515 6171; 303.57296 8012208; 303.9204 8851503; 303.96904 46569; 303.97217 29864; 304.3468 6699; 304.53734 51905; 304.53735 183342; 304.68743 1116993; 304.83105 36303; 304.86204 1097340; 304.96024 456056; 304.99898 439; 305.23575 6898346; 305.29399 175338; 305.50685 33740; 305.5552 73775; 305.84913 33723; 305.89228 32038; 306.19202 56647; 306.82991 5449715; 307.21343 21816369; 307.23401 6116444; 307.26566 36500; 307.30991 28916; 307.34965 37466; 307.452 1501761; 307.62369 3419758; 307.74571 7102; 307.75239 51744; 307.82918 25571; 308.1785 2085; 308.39604 23307; 308.92313 9187; 308.96642 4052079; 309.12786 7876914; 309.22667 118705; 309.32411 86436; 309.34411 162927; 309.44715 18267; 310.03118 10822286; 310.11968 96578; 310.22512 1792302; 310.6539 478230; 310.79787 4798; 311.46297 1112665; 311.57816 1023018; 312.09394 725766; 312.12067 115686; 312.19171 13450; 312.35405 283393; 312.39796 56752; 312.43288 39254; 312.57005 54712; 312.6876 10316103; 312.95625 41253; 313.33628 9332; 313.54956 23425801; 313.7477 9582094; 314.13245 10606344; 314.2216 24444; 314.27458 566607; 314.34213 4123564; 314.35324 74222; 314.44295 1273412; 314.45338 63322; 314.66149 74216; 315.54643 4328671; 315.76989 20509; 316.04138 170987; 316.07588 30343; 316.13185 9322591; 316.18779 70920; 316.43061 61386; 316.60709 989992; 316.72905 1847503; 316.75493 989488; 316.7795 3628919; 316.80659 38021; 317.04094 29276; 317.36229 11449; 317.85351 28539308; 318.03737 3832462; 318.21904 5337; 318.45011 4047552; 318.71385 41746; 318.75234 21437; 318.83894 46640; 318.88765 8359412; 319.03261 9429; 319.57122 66855; 319.6547 13456; 319.94004 4847329; 320.03503 18489; 320.04138 26758; 320.21185 2822; 320.37079 2818024; 320.4804 17356; 320.63823 11639; 320.71638 1220099; 320.78807 2370; 320.85539 40290; 321.01722 834292; 321.51856 86393; 322.16371 6612239; 322.35647 1732; 322.40722 780364; 322.69167 4011587; 322.70459 28925592; 322.73166 11164; 322.76858 863832; 322.87805 3398; 323.16582 159395; 323.20441 3620364; 323.21201 4463; 323.3759 6667986; 323.66904 4813747; 323.70534 55418; 323.74387 64787; 323.7544 24774291; 323.75505 66125; 323.9364 92786; 324.19953 4324; 324.28655 1866191; 324.48829 450762; 325.18642 1976; 325.31319 27055; 325.47515 747027; 325.54098 22416; 325.92883 216124; 325.98964 355585; 326.12168 36735; 326.76333 1427297; 326.93439 68098; 327.04598 391270; 327.17336 46399; 327.36244 21525; 327.4652 38704; 327.4694 866263; 327.49929 6290642; 327.52379 1376333; 327.55056 4281411; 327.58733 14049498; 327.67899 9644; 328.18742 20129; 328.42216 15039; 328.49659 3115801; 328.75917 70667; 328.81595 8581147; 329.07048 78772; 329.14955 184235; 329.70362 2957252; 329.77321 445313; 329.91685 1570960; 330.23218 34818; 330.72581 2175981; 330.98485 1181155; 331.08712 61596; 331.30092 375911; 331.42776 152227; 331.65345 13721091; 331.6843 56002; 331.81501 1091800; 332.31523 182338; 332.33813 3713; 332.62168 72256; 332.65501 4283716; 332.73742 9685670; 332.94367 3373447; 332.96745 64209; 333.04021 2137233; 333.31722 2408675; 333.3584 20429; 333.39963 728819; 333.58262 62650; 334.34661 7529; 334.54787 163222; 334.69103 2272673; 334.71812 40892; 334.78216 1348426; 334.83533 31398; 335.17434 6642; 335.45045 6415; 335.51263 38408; 335.52788 9574; 335.8239 144438; 335.95966 1735141; 336.05622 381374; 336.32319 78502; 336.51001 154; 336.76549 310845; 336.77716 29102; 336.84735 8023889; 336.99923 7580096; 337.00294 1151; 337.26447 47978; 337.33947 7415; 337.38878 5233; 337.62848 31339; 337.76959 485999; 337.8771 29630; 337.98407 125781; 338.23743 8179100; 338.45093 135142; 338.74204 7925; 338.94075 14319; 339.05476 5910; 339.11171 40589; 339.31657 48058; 339.46144 47950; 339.46788 21130; 339.47993 23540; 339.66569 10285; 340.1635 129430; 340.5021 3963; 340.6771 457766; 340.81553 1606672; 341.27778 50617; 341.42957 71554; 341.66791 21014714; 341.69894 241790; 341.85084 66656; 341.87987 9636265; 342.06015 716706; 342.83788 63208; 343.22217 5917; 343.29023 6130; 343.30844 4498940; 343.65589 28691; 343.759 58920; 344.46344 70693; 344.48941 704052; 344.55142 1387770; 344.70184 345; 344.9049 8115377; 345.03759 24911; 345.06088 4901621; 345.12019 5520; 346.08193 66603; 346.17472 3696622; 346.2482 449249; 346.25341 71204; 346.27023 73595; 346.55101 4289; 346.62327 60317; 346.74959 194016; 346.86787 76334; 346.98036 28; 347.03548 51485; 347.21423 48719; 347.54222 25957; 347.55121 929327; 347.62101 9104581; 347.62161 2312930; 347.93278 1805989; 348.00623 2098520; 348.05931 4721; 348.15156 634964; 348.5388 26274; 348.64034 4717774; 348.73055 42258; 349.12614 71213; 349.16604 28278; 349.17362 99458; 349.36155 22634; 349.49179 8027381; 349.96031 2530433; 350.11558 267541; 350.6852 22667826; 350.73262 28784; 350.80728 7404282; 350.87916 62332; 351.40655 763; 351.79141 1173621; 351.8628 73921; 352.26814 1013952; 352.42089 9290; 352.52539 15667; 352.9342 52641; 353.62331 929931; 353.67314 17222; 354.1964 21835; 354.34431 8373; 354.46252 630795; 354.57548 74893; 354.59583 135475; 355.03982 9882; 355.14832 1803051; 355.45409 1164; 355.63582 93536; 355.90091 41380; 356.01723 895648; 356.08814 15284; 356.18699 27459; 356.45189 4385; 356.74523 437; 356.76023 60188; 356.77576 5508982; 356.86735 65699; 356.91484 381; 356.94634 23273; 357.32096 43491; 357.40737 8442; 357.6965 26182; 358.63111 720411; 358.71271 246681; 358.84739 13481; 359.25209 1588487; 359.27343 797448; 359.57551 75751; 359.64439 733422; 359.68904 37808; 359.9456 49129; 360.4852 9040568; 360.52694 1127203; 360.62394 4587204; 360.75909 8926482; 361.30392 66743; 361.31648 8486621; 361.43945 20821820; 361.44969 12194534; 361.49094 49313; 361.56164 149928; 361.77282 2565956; 361.85495 13552502; 361.97579 74870; 362.04113 46206; 362.17232 53916; 362.23704 6492; 362.30901 313957; 362.38888 57019; 362.75552 78209; 362.76362 28905; 363.03632 5174; 363.21062 4689113; 363.26951 7147; 363.80597 22603; 363.84033 35716; 364.07102 45654; 364.13191 2899291; 364.19655 22592; 364.29276 4093619; 364.45311 1322309; 364.50846 43963; 364.51535 3745; 364.77704 35391; 364.81255 189675; 365.18687 6011; 365.77062 40605; 365.90854 252635; 365.99904 7295; 366.04454 40009; 366.0836 19858; 366.19623 75039; 366.33718 73414; 366.36722 6244706; 366.58126 19917575; 366.62026 1217085; 366.69762 1924129; 366.72704 46201; 367.03024 396366; 367.85429 32748; 367.86959 1094578; 368.03574 7339; 368.26783 1669367; 368.27553 12125; 368.32682 163520; 368.76528 843416; 368.83967 70101; 369.06938 16940; 369.13861 5319955; 369.5487 25813; 369.68019 5852468; 369.75027 5280480; 369.86277 6712004; 369.89771 1537193; 370.24782 15053233; 370.79731 62496; 370.9402 5934393; 371.4487 133056; 371.49413 13371535; 371.553 2846336; 371.61321 27212; 371.76911 29766039; 371.86476 20631; 372.11068 27466; 372.22333 2536469; 372.46001 25368; 372.67869 14545477; 372.75521 6770; 372.82919 6238085; 372.94275 3261179; 373.11382 1857344; 373.22081 2817719; 373.22343 265204; 373.59258 4665139; 373.73996 74840; 373.8887 181949; 373.98438 67557; 374.12783 23876; 374.14169 9445473; 374.21022 788268; 374.3038 736908; 374.535 282430; 374.55497 78514; 374.60619 9659; 374.60844 30245; 374.83806 3717939; 374.88021 171184; 374.89917 1368501; 374.99894 8045; 375.08104 1666567; 375.19702 1138766; 375.21278 8716760; 375.23952 31962; 375.45051 23820; 375.54654 67396; 375.54868 1251771; 375.55166 283595; 375.68337 483763; 375.81293 42787; 375.88613 699847; 376.00064 1256357; 376.49166 145286; 376.58048 7137; 377.08663 9569; 377.10113 28618; 377.12132 7797; 377.46627 51567; 377.50308 1339; 377.60235 1510360; 377.73536 28359; 377.77906 29081; 377.79806 263415; 378.36089 8747046; 378.77659 4973010; 378.93872 24817; 378.95565 2232; 379.34558 58892; 379.67571 2709992; 380.01748 2747448; 380.10883 4320342; 380.22222 8030; 380.3021 161883; 380.46932 5592415; 380.47652 483346; 380.47787 34673; 380.50111 24375; 380.92944 36397; 381.12407 12276; 381.35899 9766; 381.38603 389695; 381.39982 67299; 381.54892 79769; 381.73629 1839; 382.00668 53960; 382.26624 23327; 382.38817 1426153; 382.91447 27545; 383.0368 34333; 383.08627 5538; 383.16625 71873; 383.24065 77458; 383.29182 2458127; 383.45472 4172800; 383.65439 192296; 383.81639 185303; 383.98332 7595; 384.10192 14409; 384.17679 722385; 384.60068 3057489; 384.75795 9659561; 385.1138 43748; 385.33198 2313; 385.4653 74514; 385.637 64405; 385.9152 45552; 385.99281 35731; 386.64645 10060; 386.65866 142990; 386.71111 7899; 386.83357 70904; 386.96006 75950; 387.04799 667914; 387.06164 1926638; 387.41765 190601; 387.7068 3731307; 388.11921 8080; 388.13373 23802; 388.19794 8475; 388.29626 9960242; 388.3151 29300; 388.31515 76344; 388.43096 1620061; 388.43416 745185; 388.86382 1240586; 389.01745 73382; 389.12311 5930024; 389.13906 70991; 389.23005 7657810; 389.38946 2327; 389.45702 7961029; 389.76092 76227; 389.84227 6787805; 390.27839 178174; 390.66712 562; 390.80966 70255; 391.16945 10941; 391.38382 1272631; 391.87919 26720; 392.01706 20618; 392.23224 126869; 392.24516 73076; 392.48141 57645; 392.57285 8213148; 392.81274 15170; 392.98588 64095; 393.05258 1105260; 393.43345 93712; 393.60826 9952; 393.64488 7397; 393.65183 491117; 393.76933 21213; 393.95365 498675; 394.10758 74919; 394.12471 8064362; 394.13811 65852; 394.32006 1901277; 394.43552 125956; 394.47896 1888084; 394.84036 72012; 395.36014 30761; 395.64674 10983; 395.70078 57017; 396.0827 38170; 396.12774 11430; 396.26117 41954; 396.31122 21927944; 396.69547 24735; 396.72705 1287; 396.78856 615; 396.92381 500995; 397.27411 728312; 397.29702 2150; 397.53925 126874; 397.85971 914; 397.92107 28035; 398.20417 24342; 398.31745 246566; 398.38384 65189; 398.57273 4839400; 398.74259 610909; 398.75915 27488; 398.89586 76993; 399.00508 65534; 399.0703 70723; 399.13696 16521; 399.15374 66950; 399.25684 65455; 399.47209 158213; 399.71688 4572480; 399.91667 55212; 399.93893 23400; 400.15506 7112; 400.19551 31781; 400.20551 588868; 400.3484 75016; 400.36765 637377; 400.55539 45062; 400.65919 2186; 401.50059 7602; 401.53887 11415; 401.56663 1156020; 401.69823 36608; 402.46171 10340; 402.48 913; 402.50686 4833; 403.10573 11948; 403.6646 15978; 403.84122 2865784; 403.86356 158896; 403.97553 175560; 404.07009 1192377; 404.47513 2720; 404.62619 20712229; 404.72057 27342; 404.82226 7970022; 404.85263 537857; 405.05505 5718432; 405.05646 1249555; 405.06402 4390; 405.63009 23110; 405.72601 2669331; 406.29928 98324; 406.33779 22110; 406.37637 30190; 406.40483 151711; 406.5235 2907; 406.52413 5320212; 406.70233 29234; 406.8172 195698; 406.8838 20728; 406.91169 1083489; 406.99885 2460492; 407.36956 1343989; 407.45036 751533; 407.45844 922837; 407.64904 14616501; 407.73597 4012; 407.82194 3318820; 407.82405 1466; 407.95245 76733; 408.08788 133322; 408.09399 6559; 408.42151 63428; 408.50838 281728; 408.5488 20425; 408.84746 511633; 408.89298 1501589; 409.24754 2900327; 409.71084 35371; 409.73727 43424; 409.83141 1485097; 410.16481 24804; 410.20403 11254; 410.31223 43207; 410.326 74599; 410.40969 20844; 410.81283 24430; 411.28026 28947; 411.59691 5061; 411.59952 6535; 411.71019 1427533; 411.72723 832265; 411.77176 130847; 412.17824 23120; 412.28684 21393; 412.55595 3413905; 412.58483 35209; 412.8242 148996; 412.8434 480516; 412.85711 22124; 412.90425 8892; 413.26446 62470; 413.3405 58379; 413.36516 27223; 413.44721 17268; 413.4891 151520; 414.11395 9796; 414.60153 964454; 414.62112 23002; 414.6602 16204; 414.79401 71186; 414.87963 309258; 414.89854 752313; 415.31487 6919889; 415.32522 58557; 415.33191 1992480; 415.87849 962168; 416.1405 27803; 416.23225 912757; 416.39217 39053; 416.41305 29858; 416.66387 710844; 417.0108 67222; 417.07336 1316758; 417.13135 45480; 417.17452 50500; 417.18148 89223; 417.5722 1454830; 417.75656 198338; 417.81841 788983; 417.82433 2324264; 418.17609 45200; 418.25881 4569691; 418.36874 1904746; 418.54693 1195950; 418.63212 21302; 418.7542 7457704; 418.91642 804723; 419.04511 274288; 419.88094 76124; 420.11297 7748; 420.36715 32731; 420.55213 1627218; 420.63427 72121; 420.9988 11682; 421.09451 71517; 421.47 57922; 421.91795 7843; 421.93491 20645; 422.10911 666559; 422.15453 11810; 422.42372 9371; 422.85455 1140500; 423.07553 759; 423.15954 42982; 423.2627 2512; 423.30626 2313; 423.33132 28635; 423.34666 84; 423.49272 55198; 423.52651 1463; 423.60195 17037389; 423.68 619004; 423.99991 1171; 424.22593 7365; 424.26404 16226065; 424.27514 992956; 424.61184 21423; 424.64048 78106; 424.75753 21024; 425.01575 5256; 425.25498 42924; 425.35305 55256; 425.38673 4577836; 425.50599 61898; 425.58055 224644; 425.64908 1660379; 425.9032 57305; 425.93231 7160830; 426.79298 44663; 426.97225 4219866; 427.11747 3909487; 427.38892 6362140; 428.05677 1170; 428.11213 103259; 428.19968 76158; 428.24012 47075; 428.25683 92910; 428.34961 324059; 428.42058 1454627; 428.42171 66088; 428.5554 8420138; 428.70156 195673; 428.81792 31365; 429.00158 52459; 429.21925 7029730; 430.06675 73723; 430.13026 577980; 430.3177 37759; 430.35441 799445; 430.53795 5415; 430.70249 19935; 430.9266 28042; 431.19527 1392986; 431.42835 3937473; 431.50606 33786; 431.55294 1616; 431.64673 182461; 431.95332 9800; 432.03968 16608; 432.07541 130; 432.08519 14602756; 432.16222 263733; 432.24253 70405; 432.33745 6097616; 432.39895 32687; 432.41844 15981494; 432.53538 47834; 432.64303 3715; 432.74623 166023; 432.7716 1477072; 432.97256 56986; 433.06014 6407; 433.06369 52075; 433.50927 3959678; 433.50938 3057; 433.5973 7184; 433.8259 1521158; 433.87731 904139; 434.11099 5849; 434.25123 14767407; 434.62216 370596; 434.6767 1186973; 434.85388 518319; 434.96509 77747; 435.37887 610899; 435.44134 6557352; 435.77059 6256; 435.96403 3321; 436.66273 394175; 436.89728 2576540; 437.1756 62180; 437.38561 50075; 437.60865 30895; 437.65194 1325449; 438.02749 189; 438.05924 2528479; 438.17318 57969; 438.1781 33799; 438.40529 1585; 438.63496 74594; 438.71738 15704945; 439.04262 1227; 439.24736 79459; 439.42844 5954; 439.47497 862798; 439.61919 74099; 439.64314 21888; 439.90592 62968; 440.05755 38220; 440.08749 6289109; 440.20866 74643; 440.29847 7640; 440.32823 152450; 440.37761 38437; 440.43658 544844; 440.47943 358; 440.80896 7905; 441.21729 33310; 441.28207 1360; 441.36824 1665348; 441.5154 1030822; 441.71738 13717; 442.13063 47831; 442.22438 110722; 442.24974 158687; 442.3779 21990; 442.57364 28893; 442.59176 14076; 442.88564 26967; 442.98537 74474; 443.11045 1464594; 443.43626 29040; 443.55866 49182; 443.5971 14759060; 443.77659 118166; 443.82592 21879; 443.86883 4806377; 444.21122 22821892; 444.4074 5067257; 444.56897 33589; 444.94614 20856; 445.01093 138681; 445.0659 1515043; 445.13427 1022; 445.18311 19159; 445.22911 30457; 445.30255 1104738; 445.36383 2253; 445.47453 1973662; 445.59374 711047; 445.66152 5920564; 445.73637 7746205; 445.74777 4628095; 445.93422 1481616; 446.25154 29899; 446.35197 1994460; 446.79188 37947; 446.83956 890919; 447.13371 42430; 447.15471 5150; 447.22491 5590; 447.4535 493887; 447.69973 9822; 448.19665 40004; 448.36068 35076; 448.64246 21316; 449.41491 278358; 449.53745 47551; 449.70128 18550; 449.85956 20297; 450.48496 16104; 450.74622 5171967; 451.35869 1835900; 451.72651 67383; 451.74119 1407426; 451.85046 3771; 452.39868 40584; 452.47998 8251; 452.55455 414570; 453.21099 59333; 453.54324 15115; 453.65339 68826; 453.80826 22896; 454.11291 6060; 454.89834 13170234; 454.93607 1446; 454.96441 152167; 455.00848 4324453; 455.13091 1201666; 455.62911 26119376; 455.90726 7199652; 456.07684 2394533; 456.17479 111985; 456.71092 39184; 457.19124 9521996; 457.44779 1517; 457.54895 3454299; 457.6951 4568552; 457.79469 1317458; 458.05734 3492478; 458.57498 38244; 458.89297 2941076; 459.1669 51220; 459.17083 2416; 459.50148 7434; 459.60887 46; 460.08789 699641; 460.12696 666; 460.2621 42315; 460.62771 20218; 461.44468 70877; 461.85319 27514; 462.1389 119224; 462.64958 505694; 462.66843 48450; 462.9426 5987; 462.9842 26642; 463.51764 7584201; 463.78996 6922; 463.81711 47389; 464.22463 9458; 464.46615 5750013; 464.60259 188670; 464.97953 50357; 465.3099 7476; 465.74506 25040; 465.86391 1493370; 465.89248 74896; 465.92083 1141057; 466.16474 4871718; 466.49626 8753; 466.60007 61417; 466.67925 42959; 466.8127 2455236; 466.9439 65457; 467.05771 55303; 467.38683 8511572; 467.44193 4781781; 467.50914 978424; 467.55037 57287; 467.71795 107131; 468.32052 3641; 468.40395 695405; 468.59104 972514; 468.64402 27918; 468.76598 45120; 468.78739 511214; 469.09198 27116; 469.21891 13986; 469.32458 7414; 469.64172 44675; 469.73177 54055; 469.7812 48412; 469.80532 29948; 469.81527 2008008; 469.90786 23978; 469.98889 27899; 470.06476 12608; 470.06498 35709; 470.42197 23330; 470.4616 8403595; 470.47534 34759; 470.70447 4047404; 471.3144 1424213; 471.84716 72148; 472.00457 58036; 472.52262 4710844; 472.88442 4270; 472.97079 9057121; 473.125 1997655; 473.22273 64942; 473.26091 10270; 473.31388 48846; 473.55908 1691908; 474.20942 17559; 474.56837 400048; 474.62809 15947; 474.83126 62322; 475.06405 27852; 475.15728 23995; 475.32509 51502; 475.53493 6822; 475.7753 60429; 475.99614 311; 476.27621 22098; 476.34277 637559; 476.42552 650623; 476.46072 194130; 477.04808 29719; 477.23638 26374; 477.24407 640674; 477.50342 3250544; 477.55103 70588; 477.81143 190170; 478.24942 104670; 478.39134 5488090; 478.58706 71428; 478.95012 841643; 479.25954 17332600; 479.33096 22387; 479.36805 7127; 479.4192 177168; 479.49965 6207; 479.51225 358735; 479.78118 15312832; 479.97689 5591; 480.135 9316; 480.16685 2354426; 480.18779 1605769; 480.41194 108289; 480.46951 2971024; 480.69953 19368785; 480.70732 14090; 481.10172 2205097; 481.23846 22236; 481.43992 192635; 481.62486 5803; 482.31327 14898549; 482.40885 198824; 482.52018 957741; 482.75257 47162; 482.75955 26639; 482.92563 4218; 482.98416 507842; 483.06419 10943924; 483.16192 55971; 483.51847 6334; 483.7299 2853815; 483.7801 25661; 483.8012 65134; 483.83441 1106032; 483.84915 21572; 484.04973 2517447; 484.18135 22787; 484.3485 34241; 484.35611 6026; 484.46218 913938; 484.5602 76863; 484.89422 72633; 484.90793 28851; 485.18321 4646201; 485.52148 900685; 485.61956 1964422; 485.96365 168565; 486.10285 62199; 486.44642 2208863; 486.64573 3232058; 486.81733 150383; 486.89543 30231; 486.93419 400270; 487.15787 4310739; 487.36129 2399; 487.39949 8089632; 487.58649 6504135; 487.77382 1114607; 487.80929 1128; 487.86806 6175; 488.0751 5039752; 488.14409 50237; 488.36403 23290; 488.83784 318692; 488.97088 2862348; 489.67534 44351; 489.68831 6588; 489.70169 879208; 489.74331 1707842; 489.82951 649559; 490.01021 170236; 490.01089 44454; 490.07947 25591627; 490.09724 59887; 490.1011 21140; 490.44646 3455; 490.55858 24650; 490.67809 27705; 491.31172 4721775; 491.43029 1828110; 491.47281 8620312; 491.9465 5384; 492.03358 8161; 492.06343 9076213; 492.93798 24303; 493.30547 3145819; 493.43225 2293; 493.58062 2634869; 493.75345 24566419; 494.15776 39278; 494.3581 33712; 494.47473 18657241; 494.53479 268401; 494.55862 6279; 494.61712 1534354; 494.74563 76010; 495.08224 22641; 495.28259 27385; 495.40304 52421; 495.46376 1497007; 495.6137 5297; 495.64092 2007733; 495.79435 24218; 495.82632 104172; 496.5701 5702; 496.70563 27833; 496.75556 8660; 496.78533 146655; 496.93531 81573; 497.13747 96854; 497.19923 8499; 497.2569 9423; 497.56349 2964648; 497.76507 6683875; 497.80215 23160589; 497.82359 67401; 497.89338 164507; 498.49679 1061882; 498.57155 962; 498.6186 32149; 498.94711 6264; 499.092 9038872; 499.21034 71765; 499.29315 811052; 499.31848 24414; 499.40606 4414177; 499.41369 5615031; 499.47325 1083880; 499.63748 12495; 499.70222 165796; 499.74281 28081; 499.76283 5901 +<4, 3>: 0.44661 39695; 0.68355 6827; 0.84168 1298276; 1.19312 1954565; 1.32145 3299; 1.43539 124464; 1.52704 506903; 1.5616 28145; 1.85123 1210434; 1.91763 28757; 2.07144 82687; 2.23235 22712; 2.24017 6720; 2.55233 19845; 3.0694 27756; 3.27531 58563; 3.30771 34287; 3.44285 1121854; 3.64955 8192074; 3.70467 454963; 3.77293 7993; 3.96286 21337; 4.21072 51487; 4.56331 2382572; 4.78994 536164; 4.84281 33800; 4.9315 2397522; 4.94818 77463; 5.05798 1851361; 5.1014 3034284; 5.59509 6315162; 5.63887 3877679; 5.74049 1477418; 5.92383 17002; 6.52674 56092; 7.57021 58659; 7.5805 25283; 7.59172 42293; 7.59988 7559715; 7.87765 1272010; 8.11751 1281; 8.7019 4720934; 9.39915 79864; 9.42806 6373899; 9.85481 6241; 10.118 1461865; 10.20372 860513; 10.41966 9517011; 10.89811 7053031; 10.97256 2328916; 10.99148 2660279; 11.12356 4353; 11.20849 26470; 11.47012 443414; 11.70705 840373; 11.90615 82566; 12.22244 25796; 12.38878 543938; 12.48087 2461581; 12.78833 13950; 12.79865 8540874; 12.9259 780364; 13.17757 71903; 13.82031 2635; 14.33781 9452183; 14.35905 20885; 14.55401 518364; 14.78609 43305; 14.91257 19543071; 14.91637 989252; 15.07516 3831591; 15.37882 2380104; 15.39086 1546745; 15.48476 4088; 15.59163 89648; 16.18435 3501869; 16.73218 930774; 16.92804 73347; 16.97633 1222; 16.99772 35746; 17.18325 2249232; 17.66662 6246060; 17.8224 4287; 18.02314 18463; 18.17868 705115; 18.30473 3111175; 18.31465 117968; 18.48006 26026; 19.07544 1636776; 19.27723 73903; 19.4303 176243; 19.46035 62972; 19.61489 113511; 19.71296 6399; 19.74799 11373970; 19.92107 999930; 19.98545 132064; 20.19548 33769; 20.3784 66053; 20.4583 25586; 20.71846 57459; 21.13504 147686; 21.23822 38806; 21.37369 29599333; 21.4478 12309; 21.70681 7361; 21.84532 59252; 22.16262 61361; 22.23808 9093; 22.48454 126307; 22.53466 13540; 22.66955 270959; 23.37871 8498; 23.4505 51525; 23.50112 6505; 23.79645 942580; 23.96798 62926; 24.00798 4987731; 24.03302 56310; 25.10878 1759950; 25.42588 10925; 25.62541 643358; 25.85424 2796; 26.10989 29516; 26.27682 2783277; 26.33309 40827; 26.47322 27811; 26.7147 3635; 26.84775 21288; 27.18747 65790; 27.66658 30456; 27.86416 66832; 27.88476 8237654; 28.60739 31508; 28.88196 164766; 30.10531 198283; 30.25409 30648; 30.26543 7902; 30.62194 20040787; 30.69467 47118; 30.92983 1482080; 31.45581 69793; 31.47956 40453; 31.96968 5952; 31.98609 361147; 32.07457 26860; 32.08987 1074127; 32.38145 1167; 32.40612 35379; 32.71253 6811; 32.97338 237781; 32.98384 6987655; 33.0822 6357722; 33.11801 79569; 33.52694 204478; 33.68217 5303151; 33.75753 16681; 33.78646 497535; 33.80451 6646; 34.13746 106647; 34.32146 14802; 34.36324 1216800; 34.56344 34336; 34.61274 2738283; 34.68654 42902; 35.15261 6929; 35.32311 2227987; 35.39272 9724290; 35.55025 76213; 35.6349 930896; 35.63814 6354975; 35.66611 1205042; 35.75282 129313; 35.92335 401672; 35.9885 70678; 36.31363 34592; 36.46036 25541; 36.46719 79828; 36.57649 9324617; 36.88095 2229; 37.10198 10322; 37.12674 1549669; 37.38236 837; 37.44092 1878; 37.44488 5646; 37.45586 24482; 37.68141 22338; 37.84855 7354745; 38.05755 861595; 38.15479 3623; 38.34803 745851; 38.41474 3099; 38.48941 9850; 38.49751 5191; 38.59935 70000; 38.73331 77853; 38.83291 107345; 38.90436 3911719; 39.20781 4806; 39.39871 15750; 39.64897 230165; 39.75064 3987169; 40.0296 2891; 40.13611 21060570; 40.14102 69743; 40.20196 8330553; 40.53544 53466; 40.61467 148939; 40.7302 2141; 40.92554 20844619; 41.24918 9582; 41.35698 6326; 41.54572 10314; 41.60239 961123; 41.62765 5795; 41.75903 3815856; 42.01679 3223224; 42.05365 6748521; 42.15268 101821; 42.31633 2549; 42.81967 111702; 42.88291 6324; 42.99697 39407; 43.34596 8506; 43.50845 4330; 43.53292 22241; 43.5572 1225849; 44.00882 166473; 44.07782 5820; 44.15844 27367; 44.38147 15378; 44.46729 765433; 44.56563 586487; 44.56854 52924; 44.5728 18686631; 44.99942 56666; 45.13993 11798; 45.23526 1775878; 45.46859 27752; 45.52679 78409; 45.94491 12345; 46.22182 59106; 46.33477 8647113; 46.36433 9743822; 46.37476 16918; 46.52021 66626; 46.66802 5354; 46.71007 1439675; 47.00039 1158418; 47.05682 74325; 47.1903 8029426; 47.24543 28512; 47.35644 5792; 47.48812 2261501; 47.97154 48959; 48.00244 455976; 48.21652 262272; 48.36455 47979; 48.53107 6568; 48.6507 1079808; 49.18212 71368; 49.23084 139141; 49.59901 111845; 50.07776 186327; 50.29372 1505374; 50.5363 1669; 50.78369 4923; 50.94749 3394; 51.05923 183221; 51.06459 880616; 51.11281 980; 51.30731 2138338; 51.4048 176626; 51.41498 44828; 51.66979 618005; 51.81275 1516790; 52.50323 56459; 52.56022 164381; 52.71649 52890; 52.86632 1879276; 53.03787 83657; 53.52184 1467683; 53.5668 9902962; 53.57109 86831; 53.57383 22753; 53.58384 876; 53.59669 13640438; 53.68706 11583; 54.03935 146823; 54.07351 1930530; 54.1105 551527; 54.22259 285111; 54.73958 28946; 54.93168 58400; 55.12911 76601; 55.13757 3466862; 55.17413 24274; 55.25549 8716641; 55.29844 9787497; 55.57761 4668706; 55.58563 534095; 55.64128 25603; 56.36866 1544293; 56.55504 1665305; 56.57907 1250719; 56.58196 21481; 56.83432 3128; 56.83986 8983; 57.2776 9732373; 57.37215 1359154; 57.54134 6079; 57.5651 169273; 57.59172 1742135; 57.76554 6789; 57.8898 4399523; 57.93237 41644; 58.12688 1875; 58.4467 23814034; 58.45883 18708; 58.55117 35598; 59.41861 7460; 59.54109 3400743; 59.80843 29169; 59.99133 63451; 60.0977 31890; 60.33193 24104; 60.72679 5139; 61.25377 464748; 61.54239 1115228; 61.62567 1048722; 62.05441 27005; 62.1983 27913553; 62.5536 59246; 62.67917 48834; 62.75797 121465; 62.76404 11679; 62.79071 5951807; 63.06349 18685688; 63.23456 28764; 63.51112 126891; 63.59571 17055; 63.87695 4111; 63.94939 67506; 64.04302 4466846; 64.05953 15348; 64.17857 117688; 64.21827 6736; 64.32278 31232; 64.36306 53107; 64.48102 8938; 64.49185 1867034; 64.54609 5182; 64.59906 35552; 64.77965 7105630; 65.03574 87244; 65.12235 2368409; 65.35309 801874; 65.55257 62420; 65.58335 22523427; 65.76082 29667; 65.99051 40365; 66.24974 29177; 66.62178 1009998; 66.72942 1629518; 66.95545 13690; 67.12592 3651212; 67.40965 24958; 67.78388 6033; 68.136 1139918; 68.51453 3981460; 68.61065 589545; 68.62289 6452; 68.68964 291451; 68.75011 8402; 68.78901 2609089; 68.81578 30100; 68.89982 1473119; 69.40301 6588; 69.49101 1251783; 69.71339 92338; 69.75602 21964; 69.87391 76308; 70.28589 16325; 70.35072 913009; 70.35924 3646682; 70.40688 98129; 70.46863 57238; 70.66934 3401; 70.81897 4160485; 70.93009 94155; 71.04919 4440; 71.19869 1366074; 71.36439 46592; 71.60242 40646; 71.73053 9890671; 71.95116 65051; 71.97535 2071; 72.4212 98373; 73.05258 1239629; 73.13185 49062; 73.13564 40868; 73.49447 66560; 73.68421 343112; 73.78679 3481306; 73.79645 24875; 73.99926 6295086; 74.0072 43714; 74.03146 1328164; 74.17418 2680965; 74.34364 3007; 74.52824 9533010; 75.15371 24802; 75.55223 185007; 75.72055 11537; 75.8337 1850473; 75.91966 3377; 76.26 477732; 76.34151 67512; 76.34383 36374; 76.75197 46704; 76.82392 18684; 76.91605 78579; 76.9372 7141; 76.98383 2864; 77.30074 63815; 77.60328 9563801; 77.64706 2269; 77.70094 127124; 77.7609 488270; 78.37475 1251; 78.45726 4530119; 78.73803 1660102; 79.12107 6129; 79.20865 411376; 79.40847 1803966; 79.46778 39752; 79.571 1759754; 79.65029 257164; 79.95865 23327; 79.99303 97057; 80.0654 20273; 80.12275 996706; 80.5085 1230; 80.79262 2943407; 80.84384 9265; 81.05751 40530; 81.67064 14483426; 82.49794 2880430; 82.50242 16869; 82.56281 38801; 82.78381 37905; 82.8137 2528559; 82.87126 3095692; 83.0567 192266; 83.106 146940; 83.65281 2919941; 83.82597 22642; 83.97291 953077; 84.21683 1067056; 84.45075 72633; 84.51457 13318; 84.64101 757349; 84.80667 776783; 85.12948 7486; 85.40557 37853; 85.63392 1124248; 85.91294 20029; 86.04247 3555447; 86.38826 31235; 87.10295 846834; 87.84334 774903; 88.22144 9192; 88.3148 19382; 88.31808 18453; 88.34041 1758612; 88.65202 994968; 88.68539 2707; 88.82989 1299256; 89.08362 5128; 89.25236 55903; 89.31048 4035; 89.32675 23165; 89.35872 47085; 89.59441 42567; 90.01845 156170; 90.14818 14979; 90.21001 311054; 90.23016 9691; 90.29439 212057; 90.54797 25012; 90.68633 4500602; 90.84211 2779956; 91.57615 6492179; 91.69128 26531; 92.21644 75366; 92.47353 424160; 92.54806 72750; 92.671 980531; 92.81491 3240; 93.01455 1461204; 93.08782 35619; 93.27391 6388; 93.49797 7396629; 93.65242 24826; 94.04014 54045; 94.06866 29210; 94.10734 864; 94.27123 58805; 94.43453 27359; 94.67005 9268824; 95.05587 151359; 95.10473 71562; 95.56963 9102758; 96.20476 3271; 96.60897 1829503; 97.02848 75172; 97.32011 1362072; 97.49915 661717; 97.54524 77519; 97.98753 1022; 98.04836 8332; 98.07883 851009; 98.4027 5088148; 98.45848 1437583; 98.83513 5891184; 99.08162 1038; 99.09414 1116705; 99.11639 5220; 99.17211 1178963; 99.19976 6633; 99.24586 183651; 99.35183 14509; 100.09023 60466; 100.47786 29972; 100.65188 7848; 100.90283 1713745; 100.957 64808; 100.98264 5823; 101.03055 996570; 101.07513 1500096; 101.25642 9823; 101.34658 26325; 101.45073 27091; 101.47334 25353; 101.55602 2357035; 101.7154 323183; 102.04164 8586779; 102.0531 52164; 102.44181 2116; 102.53129 29640; 102.78609 661853; 103.16073 4216; 103.16893 6779573; 103.19121 1462; 103.38467 1701284; 103.45907 1003572; 104.03192 1127; 104.11685 29009; 104.18924 20229; 104.30784 62824; 104.39215 2220236; 104.52764 65745; 104.62246 817; 104.71283 62173; 104.79889 66084; 104.81303 421903; 104.91229 1899297; 105.43209 4738666; 105.52048 35328; 105.56784 10134; 105.8874 32726; 106.23078 1211; 106.31297 721449; 106.65405 5000; 106.87136 34050; 107.01487 4507877; 107.0764 33768; 107.25991 3465169; 107.27813 72299; 107.63687 41565; 107.77611 8048; 107.82553 1558881; 107.86592 17251; 108.04953 6733; 108.06341 29832; 108.33218 32989; 108.35119 45125; 108.6899 113742; 109.27045 1178173; 109.64646 190465; 109.78263 1636129; 110.00703 63857; 110.26023 4319; 110.33788 172795; 110.45907 9937567; 110.61217 2390; 110.68845 4771956; 110.74975 22288; 111.04636 58960; 111.28046 2320; 111.57947 27407; 111.63765 4303765; 111.75406 2819; 111.78918 1828919; 111.81916 59582; 111.86407 7460177; 112.80083 47661; 112.97949 9041052; 113.04491 10212; 113.1792 166027; 113.28692 8771; 113.30476 49936; 113.99595 23523; 114.14615 4247975; 114.53827 15623; 114.67384 3943156; 114.70637 24262; 114.82511 72275; 115.35883 6988132; 115.50888 122940; 115.63073 1451825; 115.64378 29987; 115.68985 30362; 115.8522 20422; 115.85917 2377339; 115.96083 74981; 116.03186 169996; 116.16566 4423; 116.26983 48063; 116.28158 3885064; 116.53253 45964; 116.6183 43433; 116.82674 34803; 117.02981 1825300; 117.09191 4064; 117.42455 32064; 117.5097 912471; 117.56923 30105; 117.79024 6876; 117.88897 6929; 117.92286 74704; 117.94866 9107; 118.09916 196683; 118.2889 23001; 118.47177 1671054; 118.55145 21282511; 118.75331 43539; 118.97907 42054; 119.00436 74154; 119.65494 2826862; 120.22927 1413361; 120.40807 50153; 120.55327 25881630; 120.5592 1888444; 121.13393 3240774; 121.13624 22661; 121.17752 6366; 121.33246 88304; 121.77059 61066; 121.98491 369187; 122.06362 35409; 122.23338 29117; 122.62843 4911442; 122.71962 78447; 122.84365 66252; 122.85496 7390111; 122.9085 29245; 123.07343 820468; 123.11179 1992471; 123.13001 20118; 123.23968 49482; 123.7537 6911; 123.88969 71558; 123.92948 63336; 124.0618 32877; 124.38628 1326780; 124.39451 1308731; 124.55303 587366; 124.57314 4194410; 124.63392 48871; 125.02075 125534; 125.155 27557; 125.31369 34925; 125.59993 1177; 126.14364 20731; 126.72931 8594; 126.78949 25138; 126.86758 23663; 127.1159 12665; 127.21012 172143; 127.4175 25933; 127.51108 103978; 127.54874 71268; 127.69277 71171; 127.90378 72871; 128.05058 95572; 128.20784 8437; 128.48505 35220; 128.86957 36863; 129.1675 1872557; 129.43679 6440; 129.66991 11201; 129.89212 1016201; 130.67774 136116; 130.97493 366548; 131.14971 9945678; 131.25591 31971; 131.51213 24512; 131.69578 8812; 131.76581 180531; 131.81788 38649; 131.82446 28932; 132.21216 100995; 132.42764 6243; 132.56839 24588; 132.57956 950681; 132.69873 154841; 133.27264 142201; 133.56489 5306577; 133.73126 14601; 133.863 2216816; 133.95348 73054; 134.01277 1922235; 134.11029 1390230; 134.18381 7771; 134.23474 75557; 134.68913 2760046; 134.72921 48644; 134.76256 41059; 134.9814 41303; 135.04585 899544; 135.30371 27605; 135.44532 13718; 135.62855 3297; 135.67261 1983509; 135.84513 25516; 136.63805 30257; 136.95896 1289121; 137.06623 3179842; 137.12694 4984666; 137.19367 13323; 137.64671 3456915; 137.82009 23051; 137.92679 17566; 138.25982 634626; 138.43171 478346; 138.56612 36115; 138.66567 155422; 138.96409 1664074; 139.30806 3698370; 139.33357 6467; 139.3913 44322; 139.70315 73042; 139.8577 18424; 139.94134 3268338; 140.11127 298655; 140.13594 2841; 140.23931 1362383; 140.49648 1694003; 140.6158 297433; 140.71497 16976; 140.74482 9030; 140.76078 28808656; 140.93292 2765; 141.12114 45065; 141.39582 28516; 141.39889 72966; 141.44409 8238707; 141.9369 409798; 141.9881 8663110; 142.29096 1495097; 142.46115 7496726; 142.66528 27141; 142.74751 158600; 142.93203 4668055; 142.96162 13604; 143.20153 1816269; 143.49171 23160; 143.54864 23351; 143.63373 35881; 144.01158 54726; 144.23097 31496; 144.39122 713375; 144.39713 60024; 144.55967 185235; 144.76044 229972; 145.06267 656089; 145.37604 3832; 145.52757 125825; 145.59501 8759675; 145.59563 4870948; 145.76032 4943; 145.76837 22317; 145.90429 58259; 145.92242 3731636; 146.02729 2728361; 146.17179 46030; 146.17596 577091; 146.18127 58027; 146.81957 4622; 146.93327 35892; 147.55565 340; 147.83811 1304; 148.04469 784062; 148.24561 56016; 148.45037 12012738; 148.57146 1061222; 148.79133 79377; 148.79949 24532; 148.97479 127678; 148.98858 128203; 149.36578 7111; 149.48107 73113; 150.06787 54721; 150.43187 1380; 150.44141 55060; 150.45793 4035652; 150.61072 71; 150.62017 21089573; 151.17787 32315; 151.61547 27798; 152.04253 465844; 152.20181 2361; 152.43898 1612252; 152.52269 6378; 152.71377 6975; 152.85091 62115; 152.95894 4744; 153.04154 41967; 153.11522 20257; 153.28882 1118269; 153.36595 1311913; 153.63154 1712097; 153.99942 2742; 154.05009 830880; 154.19187 74109; 154.20004 7931; 154.60894 3632; 154.74758 564894; 154.87665 51339; 155.10367 4724; 155.27846 29088; 155.46253 1811922; 155.68528 1777054; 155.77959 223898; 155.78849 4592761; 155.79665 20048; 156.05797 38384; 156.37595 1413; 156.53598 21639; 156.6455 52547; 156.7995 122962; 157.31236 1330603; 157.37861 28090; 157.4339 41548; 157.47336 14499; 157.9514 42908; 158.07583 198530; 158.19857 122353; 158.31296 2649155; 158.43924 9473947; 158.47138 43423; 158.64202 13735058; 158.9724 1847994; 159.01138 4091159; 159.08468 10112524; 159.18605 25943; 159.28384 6340; 159.34851 590; 159.55304 35508; 160.1241 54448; 160.40848 139296; 160.43746 79770; 160.6199 4374738; 160.6796 193658; 160.76339 28667; 161.33332 4914; 161.33976 13859; 161.99157 54887; 162.04654 45235; 162.06932 19305; 162.30188 44078; 162.31841 2814552; 162.35515 41976; 162.36145 53026; 162.45458 22632517; 162.4865 21120; 162.586 960321; 162.87605 23755; 163.15287 21175; 163.2842 28021; 163.32815 452491; 163.34725 40796; 163.37399 22465; 163.48441 3687657; 163.81944 47678; 164.18839 2048; 164.69278 655501; 164.79603 3680246; 165.13311 164441; 165.22397 521160; 165.33819 441503; 165.36175 1614775; 165.50063 484991; 165.64452 9140; 165.9003 23530; 166.29934 3074722; 166.43668 9241988; 166.48284 824316; 166.57058 63581; 166.87368 5753844; 166.98617 30345; 167.07111 173040; 167.34756 39790; 167.56034 5568149; 168.09033 5722060; 168.0923 1523655; 168.21171 181713; 168.43532 65677; 168.48582 8500; 168.53934 1861; 169.1313 28870473; 169.23375 8573; 169.51043 28288; 169.71864 79194; 169.80439 85964; 169.81914 1872570; 169.93619 588311; 170.30308 321548; 170.64122 3394213; 170.82538 16721895; 170.95907 3116737; 171.00142 2128652; 171.02985 5075223; 171.09762 103924; 171.21206 814; 172.34691 1675788; 172.42108 4471375; 172.76921 4087244; 173.00535 56085; 173.01253 1649427; 173.02366 57373; 173.13776 3941406; 173.30532 1608851; 173.32676 1441621; 173.33079 33502; 173.39744 28182; 173.43254 73726; 173.54274 4390407; 173.54588 406368; 173.80417 55885; 173.89308 4951660; 174.05689 8539; 174.24636 1294979; 174.26977 26308184; 174.31986 1023900; 174.32215 24950; 174.44013 48956; 174.44263 1210477; 174.60611 731; 174.62349 34780; 174.95247 36707; 175.21307 1575584; 175.64241 87448; 175.70552 119059; 175.84443 1921544; 175.89255 25737; 176.07556 36159; 176.27408 3350; 176.34419 6527; 176.37157 8235407; 176.49616 1328129; 177.2804 70479; 177.70468 44734; 177.7349 30376; 177.81872 45154; 178.20442 28729; 178.24461 9070253; 178.29171 25080813; 178.5499 3175030; 178.74713 9669583; 178.90026 5389; 178.92913 3239868; 178.95366 22535840; 179.12181 41336; 179.23051 4462265; 179.27026 75857; 179.53701 6796104; 179.54373 25723; 179.94707 57068; 179.95197 9142; 180.7501 35975; 180.79795 67; 181.14556 6569; 181.2979 49411; 181.3772 1061068; 181.79268 9983; 182.36102 27679; 182.66508 16952589; 182.72052 28815; 182.73834 45415; 182.81338 117303; 182.95713 4427158; 183.06097 24818; 183.26875 1268106; 183.41443 26742; 183.63581 23811; 183.79743 1333505; 184.05178 1348041; 184.40022 5176; 184.48255 49664; 184.5326 33589; 184.5384 49616; 185.1237 6988033; 185.23085 1448150; 185.81056 174170; 186.09065 29536; 186.19121 172350; 186.27768 6041; 186.40463 75472; 186.49732 4851863; 186.58659 32790; 187.06751 55041; 187.29327 322565; 187.35347 28431; 187.43977 69982; 188.01769 3860212; 188.08003 8368890; 188.16411 150987; 188.27226 50718; 188.32893 50837; 188.43824 6347; 189.06475 554503; 189.09293 1769088; 189.20788 1428124; 189.63903 1476719; 189.85531 664029; 189.97183 817; 190.05954 1869945; 190.08496 5873666; 190.17513 4143780; 190.24809 9944065; 190.27937 9678; 190.46082 1712819; 190.52155 21845; 190.5427 3817937; 190.66328 1814354; 190.73869 857046; 190.9211 644122; 191.07255 1907727; 191.14743 177565; 191.18727 39999; 191.26824 4773537; 191.30665 1816; 191.45266 1650195; 191.78823 2464732; 192.18805 3469606; 192.2251 1409938; 192.33353 1903369; 192.7665 8373144; 192.81865 1235273; 193.00476 7618; 193.22963 5429; 193.23493 4752013; 193.34939 2217887; 193.43224 10744; 193.55652 57271; 193.83135 102750; 193.97221 25294; 194.16255 3746244; 194.2636 34068; 194.65388 6646; 194.79122 29068; 194.81533 428030; 194.84186 373461; 194.95418 27551; 195.27222 40883; 195.35829 7737587; 195.36387 8780; 195.3937 7123; 195.61916 69348; 195.99638 77473; 196.00634 1793; 196.38834 195606; 196.47209 79226; 196.91157 45284; 197.07234 59856; 197.26154 392317; 197.86359 2727; 197.89574 2020691; 197.90995 25720; 197.91393 45226; 198.02429 159467; 198.19348 42767; 198.36894 9681957; 198.86139 980; 199.15781 8682; 199.32782 817422; 199.4735 47857; 199.4877 332116; 199.5226 44272; 199.65262 499286; 199.91979 3688; 200.11273 35233; 200.23783 2668085; 200.5311 7145; 201.11538 20682449; 201.12604 15913; 201.22341 1626; 201.53788 7633; 201.58069 1615156; 202.36011 1744381; 202.36171 24988; 202.61558 7921106; 203.17447 2428; 203.25558 9548; 203.28798 5304; 203.60177 6378; 203.87141 314039; 204.45641 25490; 204.61687 1139511; 204.72898 4584696; 204.77147 5504672; 205.17044 852529; 205.30037 6423; 205.38507 749000; 205.91051 67501; 206.05658 48762; 206.12041 29747; 206.18931 62348; 206.24881 73946; 206.30752 11281; 206.3733 4934; 206.4422 1730419; 206.45251 1978838; 206.64572 4570; 206.66497 20904; 206.90176 337882; 207.24891 9387; 207.44149 266771; 207.54989 654538; 207.56945 72574; 207.87964 9913726; 209.09862 5506; 209.87483 40519; 209.97276 7327; 210.57822 13849; 210.72362 40569; 211.09532 150229; 211.13251 1210194; 211.42402 9391993; 211.52112 26655; 211.70348 829807; 211.84196 78315; 211.98529 59936; 212.0141 55708; 212.17577 8481; 212.34465 911870; 212.57871 1813; 213.07473 807430; 213.20181 7265291; 213.42439 1511711; 213.46145 8317824; 213.84473 818582; 213.94912 32201; 214.16664 6623678; 214.19278 337; 214.44319 4704978; 214.45064 35934; 214.48431 3690425; 214.52746 3159451; 214.59166 94336; 215.1554 13534; 215.58373 3524; 215.85519 18945; 215.9416 2061264; 216.28581 4910; 216.36795 6171; 216.6472 516684; 216.73833 21177; 216.75023 9461961; 217.00567 2603; 217.15423 14806; 217.41496 12739823; 217.43864 2719310; 217.47682 785175; 217.49887 2240; 217.55427 15066; 217.59956 37572; 217.70474 45056; 217.7059 77344; 217.73198 58125; 217.73531 69867; 218.00247 167277; 218.10337 14569631; 218.1624 1362639; 218.283 981; 218.28437 18501; 218.32786 3352; 218.51799 79814; 218.59203 6575301; 218.59234 8502; 218.98236 198405; 219.30767 40172; 219.50708 66264; 219.74265 65619; 219.91437 57614; 220.26364 15897; 220.38485 35957; 220.66157 23666; 220.97983 28221; 221.00387 43118; 221.05662 1998620; 221.1459 3974808; 221.39148 1639797; 221.45057 16168; 221.48551 4777; 221.59576 78879; 221.78913 12045; 221.82656 3488378; 221.87943 2338034; 221.88404 46893; 222.14935 1334838; 222.25022 18601; 222.26732 4403647; 222.33943 15771; 222.89378 156121; 222.97897 8581; 223.1246 13359293; 223.16003 3992472; 223.17316 1018251; 223.50716 9609795; 223.53074 93620; 223.6803 2061277; 223.82725 7181983; 224.04293 8813924; 224.46326 22271; 224.54149 4397; 224.68252 69375; 224.78018 55338; 224.94416 910586; 225.17253 22252; 225.21858 1599112; 225.32311 743951; 225.58907 31176; 225.93685 17612; 225.96647 7252375; 226.14226 78705; 226.35539 8654; 226.99086 8166; 227.07746 77113; 227.18838 50161; 227.26402 26381784; 227.4455 980478; 227.4628 545; 227.48033 4304758; 227.73961 53291; 227.74239 24535; 227.96609 55877; 228.10468 83757; 228.13924 57491; 228.19942 158018; 228.22686 26443; 228.2768 34334; 228.31466 20387; 228.32782 10848; 228.84435 1874150; 228.85833 28137; 229.03814 4323582; 229.2486 70548; 229.59269 1613971; 229.85163 26685; 229.89578 115801; 229.92274 1392955; 230.09283 623249; 230.14341 195130; 230.15251 54733; 230.57029 46014; 230.62434 4293935; 230.90449 17638; 230.94522 3405; 231.05158 9863778; 231.30236 30498; 231.49423 650; 231.73335 1763702; 231.79958 65669; 231.89192 262804; 231.92043 37513; 231.9649 3630; 232.02509 15923; 232.12572 20064; 232.18014 4646412; 232.23845 139916; 232.46337 1846327; 232.53643 1323803; 232.56598 2611; 232.75236 48876; 232.77525 2635; 232.90901 8818; 232.95773 12267195; 233.04984 9945323; 233.29783 21594; 233.32689 8246154; 233.35427 1999893; 233.36101 29037; 233.37395 1314694; 233.40563 69855; 233.63048 15903; 234.03729 29958; 234.06527 1184537; 234.38478 6735571; 234.48536 773227; 234.57228 1441054; 234.77397 31243; 235.02077 26447; 235.12516 24292; 235.14766 8286; 235.56568 187331; 235.95 904; 236.54753 434; 236.88308 68886; 237.04552 24183551; 237.14768 51102; 237.16031 1313; 237.16877 6544; 237.311 81592; 237.31555 60628; 237.34315 1760; 237.38835 1257143; 237.74175 74162; 237.95892 65230; 238.18215 741605; 238.22948 180765; 238.25714 6852; 238.34001 27953794; 238.55724 189800; 238.85816 3961; 238.88954 79865; 239.02078 5523; 239.22459 29139; 239.58074 172644; 239.66518 1572; 239.75301 777435; 239.96888 24910; 239.97715 16548361; 239.99469 3805; 240.34718 61242; 240.48852 8111544; 240.69939 28966; 240.9467 68091; 241.17898 3025968; 241.22169 624473; 241.40628 285675; 241.43291 34155; 241.52068 48372; 241.53185 95144; 241.67769 7685; 241.69158 55834; 241.84235 3531965; 241.94728 4408749; 242.07976 2453702; 242.36084 7817; 242.52681 13788; 242.67447 22621; 242.83987 8938777; 242.8682 28903568; 242.96187 76769; 243.2885 75223; 243.5169 1959095; 243.86095 1587176; 243.8813 4308291; 244.11609 1070582; 244.19815 33547; 244.30353 920036; 244.35023 1501418; 244.63419 33623; 244.96065 9753262; 245.0933 2823513; 245.42848 881874; 245.6056 2681626; 245.73732 56730; 246.08983 1424422; 247.04207 7082286; 247.16897 61914; 247.19238 1335062; 247.29358 4361; 247.44283 25657; 247.83878 57667; 248.20719 56074; 248.20908 9134974; 248.22 11899; 248.27385 102357; 248.95216 8290503; 249.26573 2620; 249.29616 58149; 249.49129 23914; 249.71525 79494; 249.73414 19407; 249.80866 32279; 250.01557 67451; 250.0631 36358; 250.41509 936199; 250.41918 51930; 250.43037 18199; 250.75928 92379; 250.88824 9634844; 250.91636 6778; 250.94285 295521; 251.11835 23102; 251.38666 28426; 251.39869 34028; 251.45286 2922; 251.91896 9106949; 252.01845 931451; 252.03775 2882443; 252.1141 11877522; 252.235 12810; 252.23927 25888; 252.42523 802816; 252.75435 10411; 252.84129 4594504; 253.01262 1572601; 253.91275 2082893; 253.93907 93054; 253.95621 2741; 254.15855 17931; 254.29214 7548257; 254.31478 1753458; 254.35266 36675; 254.6062 73627; 254.62685 29247; 254.70668 64194; 255.03117 18814; 255.18116 11541436; 255.22236 1874925; 255.56359 51400; 255.68579 109059; 256.08673 65500; 256.35616 39031; 256.37339 4886700; 256.4181 1962028; 256.48056 26176300; 256.5332 68311; 256.62766 14526; 256.7311 1537669; 256.85192 90447; 256.92203 8883; 256.99343 78475; 257.11632 72818; 257.13735 24949; 257.14365 15296; 257.14943 58869; 257.56453 5544901; 257.57419 217807; 257.72825 4595008; 257.87407 1181691; 258.05731 1342652; 258.07226 35275; 258.09255 4190597; 258.3146 44639; 258.31857 36281; 258.40815 41256; 258.75338 754347; 259.05353 55189; 259.06819 11950506; 259.12378 566227; 259.85612 13901; 260.12937 1179923; 260.1501 5475190; 260.17027 144278; 260.1755 17435713; 260.36957 9204; 260.59903 100080; 260.78394 28342; 260.93653 25560271; 260.9428 4757; 261.20208 700170; 261.26005 1089497; 261.33065 24831; 261.51895 21435; 261.59383 3350; 261.66807 7307; 261.6713 32315; 261.88995 28815; 263.38443 320792; 263.80411 2133; 263.81417 4127; 264.2393 47638; 264.38972 7337085; 264.49261 537957; 264.82116 68385; 265.03324 3978297; 265.08849 1406050; 265.24827 7489; 265.3568 24957; 265.9098 52133; 266.58647 2512517; 266.75699 580; 266.75853 54870; 267.04967 15557; 267.14762 73572; 267.61761 4325247; 267.65067 7627953; 267.65471 1045435; 267.73669 4670354; 267.75834 34255; 268.17797 45377; 268.41684 414883; 268.46882 1946186; 268.59639 6932948; 268.69418 1396988; 268.73976 8142; 268.88765 21353; 268.9804 42539; 269.16704 5796; 269.61258 3797; 269.64447 2591; 269.72638 9401182; 270.21816 7172; 270.38617 101602; 270.83358 2265467; 271.46842 60070; 271.77758 1951294; 271.93352 154742; 271.95501 856993; 272.64729 21382; 272.67679 65114; 272.76206 1184446; 272.80965 3202284; 272.84507 7657353; 272.9406 1107; 273.1322 7669; 273.27651 1159406; 273.75372 25998; 273.94594 688895; 274.28565 636452; 274.33058 8651; 274.38701 4199540; 274.45584 11742; 274.54868 59442; 274.65101 4440988; 274.70999 139893; 274.9335 20464761; 275.33062 54229; 275.64903 85735; 275.68311 28047; 275.72612 40904; 275.86895 3370621; 276.00363 316714; 276.02195 718879; 276.09784 16109; 276.14199 59503; 276.30349 70196; 276.57862 67715; 276.74578 380; 276.97232 730899; 276.98463 21515; 277.17113 2275354; 277.31824 4695199; 277.32604 7819; 277.50464 2494; 277.51574 37574; 277.69834 163482; 277.74534 7464; 277.75965 19016028; 277.95177 1384179; 278.0727 2190888; 278.29911 118065; 278.35551 15628211; 278.38143 9558; 278.48213 72281; 278.90823 22630; 278.96499 38322; 279.01837 5022; 279.04183 6876232; 279.29947 8150085; 279.45906 52876; 279.46043 3787; 279.77647 24493; 280.09125 78811; 280.24717 60050; 280.30722 61745; 280.53809 1413570; 280.76674 5149677; 280.77443 27525448; 280.91529 3002; 280.9565 8286161; 281.02677 6263; 281.05272 26552; 281.14908 8512642; 281.20625 612397; 281.34022 47608; 281.40615 39748; 281.5135 1068751; 281.67795 24677; 281.69882 3739390; 282.23683 22076; 282.29866 21349; 282.29873 22085; 282.42598 106282; 282.55405 62801; 282.60782 9718950; 282.65408 18257596; 283.17834 8207486; 283.63953 40545; 283.85783 9844103; 284.09915 43717; 284.16287 1252034; 284.21367 42841; 284.30154 1077063; 285.02746 1185382; 285.12085 47320; 285.15043 1845189; 285.15207 29908; 285.15638 712398; 285.32897 31679; 285.36064 25336; 285.503 2768956; 285.52311 44013; 285.7142 67169; 285.94846 3450780; 286.11085 8860; 286.71308 1153911; 286.7161 49392; 286.90013 21904; 287.38937 2386399; 287.76434 497589; 287.78984 9850394; 288.10068 8832364; 288.10273 954073; 288.17826 1669522; 288.72828 76234; 288.8281 939318; 289.01795 3034723; 289.02788 153162; 289.14724 61779; 289.25192 5109; 289.47445 4986124; 289.53855 36004; 289.78631 2239525; 289.84254 217786; 290.10729 9440; 290.35115 670099; 290.47736 40512; 290.57239 2905760; 290.74088 48438; 290.77772 5594; 290.79886 5730464; 290.80948 55155; 290.94712 8541469; 291.20576 962510; 291.46462 70469; 291.53451 3039454; 291.58019 1309187; 291.71771 633044; 292.01732 83433; 292.05759 54622; 292.40491 105160; 292.69795 462; 293.06049 8439; 293.09571 1455741; 293.21853 3747354; 293.22078 28727; 293.3704 65904; 293.64715 49044; 293.78706 16865337; 293.9604 2337; 294.10963 908133; 294.19585 21820621; 294.30833 28917; 294.85862 25045341; 295.18417 1287146; 295.34905 1863633; 295.37008 640785; 295.41046 3133; 295.47589 995543; 295.49438 25007; 296.03847 1927989; 296.29286 1500847; 296.59345 9078; 296.74606 4063; 296.78419 817637; 297.04924 1901; 297.12787 7151120; 297.70787 355376; 297.7492 8071; 297.81154 9043; 297.86162 407694; 298.10758 12801; 298.18721 35730; 298.27887 529275; 298.32808 1559197; 298.50322 24895932; 298.72246 21707; 298.74681 8047; 298.88551 9804; 298.94859 1082; 299.29372 163231; 299.34931 29720; 299.47617 2555802; 300.00282 3722; 300.204 1663532; 300.47935 5772986; 300.57256 1439598; 300.78313 72666; 300.83447 22966; 300.95577 7798; 301.01033 24434; 301.35256 1108936; 301.57353 75456; 301.64235 42922; 301.64398 28084; 302.36746 29915; 302.48939 349419; 302.64029 463058; 302.91276 10806699; 302.94465 9194; 303.01047 47783; 303.16153 91260; 303.3945 48589; 303.51878 7569; 303.52686 8909630; 303.77443 29997; 304.0159 9232693; 304.05001 50973; 304.7791 20818; 304.9553 867030; 305.13675 17272; 305.18506 52915; 305.33048 168820; 305.36356 160535; 305.49528 76581; 305.62393 20953; 305.70477 1828859; 305.95423 20687; 306.03765 1938799; 306.13193 2880422; 306.18991 4258; 306.59911 7402; 306.97267 781770; 307.01745 725224; 307.39714 467026; 307.40156 22753; 307.78931 594; 307.89551 24197; 308.13917 12332; 308.34054 34498; 308.64097 6526; 308.66755 3112; 308.72557 11879602; 308.88867 158960; 309.00005 16203; 309.04339 57081; 309.0754 13784; 309.40854 64707; 309.50966 28082; 309.62507 7502; 309.67173 13642; 309.72525 43358; 310.17461 8572; 310.38355 10639; 310.57699 179315; 311.10076 6260; 311.22065 30815; 311.25115 28019; 311.36386 26684; 311.38397 8085; 311.59309 70878; 312.34045 3715873; 312.48439 64854; 312.50942 9667; 312.73034 62724; 312.92507 8805775; 313.02425 163105; 313.3771 41; 313.38858 4772734; 313.75739 8741; 314.05361 29975; 314.08305 26141; 314.08364 159737; 314.65861 79022; 315.13812 7545; 315.16575 36586; 315.34835 27665; 316.19398 85720; 316.345 8112; 316.6432 8572; 316.89217 25856; 316.89411 3608722; 316.98931 353622; 317.02011 2414; 317.55446 42844; 318.16832 65998; 318.26277 841; 318.27425 60931; 318.28853 34668; 318.39464 130017; 318.54127 1768218; 318.58304 3436383; 318.94837 6857369; 319.05503 79939; 319.07357 45821; 319.20051 4731; 319.38552 22744; 319.85558 4396338; 320.47247 189129; 320.69799 3963; 320.8217 21783; 320.84001 30190; 321.24092 50333; 321.63004 24323; 321.63829 127641; 321.75252 66158; 321.81951 285814; 321.84131 1786451; 322.14005 918278; 322.26007 1929399; 322.31847 1617193; 322.31922 50533; 322.351 20011; 322.5176 4903; 322.72485 5253; 322.75931 28169365; 322.77037 27551; 322.85595 5567698; 322.87152 64580; 323.017 1823886; 323.24031 64847; 323.2704 3301975; 323.4601 62404; 323.52198 120817; 323.78088 2582; 323.78629 915; 323.81851 41513; 323.93394 178271; 324.02951 48092; 324.05434 1162; 324.25544 28052; 324.44953 60160; 324.52345 1385865; 324.52551 34462; 324.60339 6235807; 325.01191 7723; 325.0283 113867; 325.89687 7904; 326.23137 743091; 326.5792 13505; 326.73541 1032703; 326.84866 13857851; 327.12029 30391; 327.20169 71487; 327.55685 41131; 327.64346 1844055; 327.99434 27467; 328.23116 104210; 328.5845 44189; 328.63118 51806; 328.85999 4551863; 328.91175 43774; 329.07718 21261; 329.97878 1618935; 330.0862 58677; 330.17791 364867; 330.22938 39671; 330.23846 9595; 330.31145 31378; 330.38979 23632; 330.75762 22089; 330.79127 7033; 330.85167 939806; 331.33611 19586320; 331.41937 422; 331.44286 475929; 331.77468 7439; 331.78371 97304; 332.031 35297; 332.25502 4700632; 332.56197 23667; 332.7442 535584; 333.0101 1206881; 333.08092 32264; 333.19716 3380310; 333.35935 123768; 333.46532 60756; 333.56075 917095; 333.59296 430605; 333.7178 6453; 333.95684 41346; 334.04199 279090; 334.05556 69991; 334.22184 37089; 334.29033 1343464; 334.48996 611608; 334.77734 28464; 334.88245 22501943; 334.91648 1131121; 335.02202 80856; 335.11576 1937831; 335.44634 2410508; 335.52338 1100534; 335.54151 52014; 335.71408 376882; 335.78863 2429885; 336.67969 77039; 337.16308 79459; 337.19101 90812; 337.20635 7220169; 337.33643 12705; 337.63593 1530404; 337.70697 1406; 337.71575 24374; 337.77199 63874; 337.83204 52064; 337.95522 1526061; 337.99896 541876; 338.11088 58051; 338.14641 5254131; 338.28137 8049665; 338.28673 7889; 338.53896 610828; 338.55207 29780; 338.60456 49357; 338.89765 5316; 338.9089 79068; 338.97715 60028; 339.35349 2242; 339.3854 278671; 339.39795 38224; 339.41445 19949; 339.42288 52042; 339.44972 45; 339.54643 5497; 339.56784 1303528; 339.5782 65357; 339.7065 9316; 339.89128 3261; 339.9598 24381; 340.12326 130492; 340.27441 50432; 340.54779 13075; 340.5972 70828; 340.71188 164391; 340.83838 67638; 341.30437 69057; 341.60526 2120; 341.89772 28894; 342.0264 2639562; 342.20792 1752773; 342.38229 192328; 342.50285 173260; 342.532 44039; 342.70496 1368481; 342.82574 4709425; 342.88763 31942; 343.03416 564813; 343.09649 171613; 343.44054 38101; 343.47692 3409746; 343.55716 3147106; 343.88117 4497; 344.21896 68170; 344.49596 254038; 344.55617 691106; 344.67936 1249101; 344.83838 161053; 344.91583 77742; 344.99656 914170; 345.17434 37791; 345.18604 1042688; 345.31253 28005158; 345.37078 51741; 345.51243 59818; 345.61532 1445146; 346.02074 34861; 346.10346 951218; 346.24898 4526812; 346.29967 435296; 346.42392 92081; 346.60663 8765; 346.62793 24527; 347.10754 177; 347.65974 26506902; 347.72509 449; 347.87338 3013; 347.89219 56750; 348.04642 14919437; 348.165 25359014; 348.51404 40530; 348.85707 76261; 349.31175 27323; 349.47656 23043875; 350.42446 2126732; 350.44884 23458094; 350.54905 21593; 350.61688 2845857; 350.70408 27099; 351.29477 17230; 351.29888 490894; 351.40214 172864; 351.44962 8440; 351.47154 2978162; 351.82779 40803; 352.60567 71003; 352.68281 491845; 352.86491 474251; 353.19992 49055; 353.45642 819732; 353.54448 7624138; 353.81211 64811; 354.17706 73060; 354.19042 21383; 354.44764 100595; 354.47784 27900; 354.94311 3013005; 355.01255 142922; 355.1772 2160; 355.18217 7511; 355.38567 809; 355.48 902663; 355.6292 1028664; 355.67074 148626; 355.83499 4849874; 356.02544 150950; 356.24815 9625; 356.52344 20050; 356.57792 20478; 356.84649 9788659; 357.01696 76808; 357.05915 18902059; 357.08186 128253; 357.46236 3281943; 357.99314 47026; 358.06962 1918399; 358.44183 11534146; 358.44246 36115; 358.66709 2185631; 358.70841 3329123; 358.76513 323557; 358.83993 59289; 359.05357 367; 359.16217 60023; 359.18028 83799; 359.25694 6134; 359.35054 69893; 359.37707 3005313; 359.66308 3514; 359.73475 4168951; 359.85322 64932; 359.88205 6846; 359.94159 9172617; 360.15153 2550859; 360.27247 1903110; 360.30748 1244896; 360.30946 176995; 360.45835 3529519; 360.61662 435785; 360.72241 4289830; 360.88851 5777; 360.9599 9206; 361.00939 114462; 361.17359 4381022; 361.35996 21545; 361.49754 9759594; 361.60135 6235566; 361.70485 10699; 361.73671 3202646; 361.73802 8973; 361.92234 55017; 361.92672 1632491; 361.98042 694222; 362.01667 57996; 362.09368 8224403; 362.10719 4689220; 362.23303 57808; 362.3575 4013; 362.58472 3621997; 362.79517 12916; 363.05246 52892; 363.21788 14932883; 363.25665 285083; 363.32934 783610; 363.50681 144214; 363.64068 62274; 364.06572 4230637; 364.19698 4133476; 364.22413 45842; 364.35066 20712; 364.38604 54720; 364.7984 4105; 364.80569 2795048; 364.94282 1005; 365.25442 74305; 365.29142 33327; 365.39697 79268; 365.6278 137326; 365.63687 445281; 365.73118 28580; 366.05598 1701842; 366.23664 3310832; 366.33619 27610; 366.64261 71238; 366.67427 854082; 366.72205 160930; 366.75853 10425; 366.81927 38857; 366.86546 40169; 366.97938 7470; 367.00296 21244; 367.02033 322885; 367.28878 33406; 367.33238 26878; 367.45168 5406109; 367.86567 76553; 368.03562 755545; 368.08305 14366568; 368.15638 29923; 368.28404 2490; 368.37322 41530; 368.39245 7805419; 368.47128 129679; 368.68852 55879; 368.71336 5367; 369.19625 11912; 369.77819 15283477; 370.05544 1379345; 370.45152 795; 370.5211 46513; 370.6778 1933090; 371.00665 175968; 371.09906 2602; 371.66963 2246297; 371.89473 1749462; 372.48791 4244007; 372.60461 55341; 372.76095 44268; 372.86746 5638; 373.52127 59663; 373.7113 2649; 373.78367 2907668; 373.88066 232489; 373.93969 1922; 374.13505 53454; 374.37551 3297122; 374.39184 1474; 374.52453 409812; 375.06413 1615462; 375.30057 46325; 375.46196 66515; 375.60508 3724610; 375.83404 15671; 375.84157 21486; 376.0053 861784; 376.08095 74421; 376.12664 181304; 376.39055 487033; 376.42279 19075; 376.69223 4776659; 376.74129 47442; 377.14466 1804680; 377.20462 14103; 377.25845 1137778; 377.3054 77919; 377.34808 73293; 377.63059 26256; 378.07854 353892; 378.31016 158147; 378.31672 16020; 378.57455 138614; 378.84118 770905; 378.98794 951550; 379.04656 1944116; 379.17969 1985068; 379.22142 2357771; 379.34953 134483; 379.35911 44591; 379.50971 6836300; 379.69762 6473085; 379.72696 47090; 379.87849 52731; 379.96425 9452; 380.34194 6670687; 381.12341 67307; 381.71938 4849895; 381.93018 2976103; 382.23354 1632247; 382.53626 4363759; 382.61663 24304; 382.87748 7849365; 383.0558 266853; 383.21863 76507; 383.52383 2470250; 383.61043 319232; 383.95294 8510701; 384.08217 4121848; 384.20284 149718; 384.35743 1831483; 384.56705 61920; 384.60954 52473; 384.65088 24113; 384.8443 637138; 384.87301 1785152; 385.10782 19849818; 385.18885 3631685; 386.02901 2127428; 386.05804 7473932; 386.08409 2582301; 386.1058 21762398; 386.24536 54632; 386.28037 1416478; 386.54997 2242; 386.59676 3901137; 386.64854 251470; 386.71977 21747; 386.96029 19773046; 387.01221 8550; 387.19562 184842; 387.23725 70617; 387.43402 89637; 387.7362 27259; 387.8126 3697338; 387.92874 6431; 388.00318 721434; 388.00823 16254; 388.17401 92621; 388.41157 68803; 388.5398 68608; 388.96052 8633260; 389.16887 1539710; 389.54115 3305657; 389.55608 26027; 389.59294 6404; 389.61856 68406; 389.63493 35682; 389.7967 27265; 390.12904 1311622; 390.25075 25295; 390.27584 1899018; 390.33658 30502; 390.38705 27416; 390.86741 3365052; 390.87485 1401822; 391.00311 8201484; 391.37712 9516; 391.47993 543481; 391.52982 38331; 391.64835 28923; 391.70583 38879; 391.79026 256807; 392.8631 26259; 392.86883 88494; 393.0498 153068; 393.15264 5728480; 393.28102 119793; 393.37755 16746; 393.50633 17530; 393.61159 28401; 393.64209 13127; 393.75943 9987378; 393.76235 5551085; 393.80801 12700; 393.83784 1684260; 393.95466 1401048; 394.34229 37402; 394.41342 349258; 394.42863 28293; 394.5895 5325; 394.70047 6220504; 394.72424 222525; 394.81202 124563; 394.886 25586; 394.88689 4849; 395.45498 2616; 395.6726 626; 396.09964 262434; 396.24869 199282; 396.47269 3236; 396.50247 10128; 396.62043 43075; 396.70207 4727; 396.70617 9847242; 396.83714 3111; 396.90831 83176; 396.93653 760584; 397.41242 11509; 397.47838 63139; 397.66748 1760317; 397.80367 9262; 398.08443 129470; 398.10098 1955267; 398.20025 54021; 398.53328 62521; 398.54332 41929; 399.08675 2287776; 399.09256 187397; 399.42311 5934; 399.75517 122; 399.76851 1099497; 399.85919 992; 400.24837 29990; 400.35006 6176700; 400.40418 1990; 400.47532 17960; 400.91083 2436; 401.15128 3952414; 401.20909 3840833; 401.21286 18978; 401.24579 2539552; 401.50244 132924; 401.54589 23428; 401.80494 9608165; 402.0224 27813; 402.44756 1909772; 402.66377 3687; 402.70569 43382; 402.73289 78842; 402.81337 2660695; 402.95616 374715; 403.37386 5690; 403.89109 32458; 403.96793 914514; 404.12182 29909; 404.13044 1114565; 404.69671 57839; 404.69682 4999473; 404.72301 889699; 404.72838 1119602; 404.76554 23506; 404.92252 4592653; 405.15272 5910; 405.42178 127867; 405.52107 68170; 405.64707 193359; 405.70623 645907; 406.19927 4169016; 406.63557 215546; 407.22949 2079977; 407.47706 102318; 407.5338 152066; 407.6275 28953; 408.18189 4250266; 408.19976 23079; 408.27276 13912; 408.32273 1815676; 408.44884 8028739; 408.48243 1008199; 408.60203 2332810; 408.95419 3439; 409.06132 78221; 409.18049 54834; 409.60458 1098; 409.90275 1182981; 409.97939 56061; 410.04631 609748; 410.18194 1333; 410.18375 32219; 410.21145 74166; 410.7456 8760; 410.87702 608; 411.31495 69288; 411.57255 2990202; 411.59881 10439; 411.72689 68611; 411.83905 6418; 411.84793 1049819; 412.01715 3697867; 412.20289 73397; 412.30443 56097; 412.44712 5317745; 412.686 11506; 412.71359 15034; 412.74432 6364974; 412.80424 162341; 413.10122 164959; 413.12605 136225; 413.17477 6075; 413.30441 9747862; 413.51451 63540; 413.63832 26272; 413.93116 59437; 413.95318 34773; 414.2968 41509; 414.41225 10849; 414.50135 67466; 414.65679 1411781; 414.70619 36140; 414.75825 270418; 415.2908 1437218; 415.30422 72217; 415.31721 20680; 415.52667 64019; 415.61869 705670; 415.96083 32274; 416.10617 5165; 416.17086 22053; 416.36301 53085; 416.44521 165520; 416.75662 121254; 416.79325 47227; 416.90806 99678; 417.13428 4243572; 417.42296 1896364; 417.445 18838; 417.52228 155150; 417.87857 453152; 417.95908 7629; 418.00899 14604; 418.01486 36212; 418.55282 21174; 418.62389 216579; 418.75443 72325; 418.82522 18560; 418.88045 27712; 418.88475 9356; 419.52276 50527; 419.56807 2731; 419.5786 1139253; 419.60602 7778; 419.64867 581525; 419.90258 4481927; 419.95457 27572; 420.1249 168225; 420.19029 12966; 420.37339 24941; 420.61205 29913; 420.68485 1341429; 420.88665 199249; 420.8869 26246; 420.92146 5216; 421.07692 6415301; 421.68209 43576; 421.8936 9741657; 422.09723 40988; 422.2678 66474; 422.62342 2318350; 422.64343 180691; 423.02972 797; 423.0907 1525461; 423.24255 75434; 423.30465 79525; 423.45058 486190; 423.89447 86583; 424.36904 1340; 424.38364 103671; 424.44372 27834; 424.44731 1411681; 424.50802 3242687; 424.60639 8582; 424.68275 23111; 424.78884 58807; 425.50712 17534; 425.52912 64819; 425.63815 3354352; 426.04448 18779135; 426.2575 1619843; 426.36939 26901; 426.40549 765887; 426.61597 34381; 426.79747 249940; 426.99913 62619; 427.15938 1740058; 427.36789 17110; 427.38649 13758; 427.38719 8902702; 427.72004 1443566; 427.90875 22625; 428.0914 3151792; 428.1437 20734; 428.94922 104483; 429.07426 1114960; 429.24652 2214; 429.4086 1878050; 429.58097 893032; 429.66698 68490; 429.66738 1621; 430.00316 9036; 430.54538 99598; 431.10663 41042; 431.12366 2516577; 431.32236 29173; 431.37159 172147; 431.65996 1801438; 432.11641 17827; 432.17434 8402; 432.17493 1485314; 432.40012 163697; 432.51041 43351; 432.51441 8889; 432.52067 5488076; 432.87019 6139; 432.8792 38001; 432.97527 42654; 433.20811 12994819; 433.41412 5880; 433.49761 562424; 433.80247 2839307; 434.30453 1198754; 434.31519 124576; 434.39488 22082; 434.63566 70275; 434.86237 2600148; 434.94531 2493439; 435.0329 593664; 435.15307 33036; 435.1797 48340; 435.37362 991558; 435.38527 1122787; 435.74276 61690; 436.1499 15818281; 437.65476 1038284; 437.80458 679920; 437.85591 28286; 438.16787 1180920; 438.20528 297; 438.2984 107528; 438.5841 28520; 438.89473 22679; 439.11149 12774; 439.21342 26742; 439.54619 517169; 439.82756 116696; 439.8882 76201; 440.20047 67960; 440.34615 34403; 440.65699 29609; 440.6895 485835; 441.01573 61157; 441.05458 4131656; 441.18393 2319939; 441.2594 44631; 441.44623 382776; 441.8333 61800; 442.04672 46211; 442.17501 19991727; 442.24164 1791; 442.33404 730376; 442.4809 24218317; 442.50895 43817; 442.66953 6304508; 442.99205 6135697; 443.02428 14913378; 443.06181 3113601; 443.08456 55554; 443.62576 73461; 443.77753 1832658; 444.00701 466946; 444.14089 71248; 444.26739 1714954; 444.38161 9682; 444.47214 9227616; 444.62831 56148; 444.69952 5416; 444.77959 53111; 444.96471 1306832; 445.25997 9317266; 445.45361 20645; 445.85687 386; 446.12125 6894; 446.39246 35012; 446.44706 19672; 446.70684 13015; 446.82955 38112; 446.91308 22464; 447.08135 5869685; 447.33268 3731246; 448.35073 26129308; 448.39465 52585; 448.53486 1274697; 449.01258 4662988; 449.14812 154898; 449.16454 47007; 449.27593 24050; 449.40385 76906; 449.42427 1730; 449.55409 1146974; 449.58805 280343; 449.73149 26166; 449.7801 120596; 449.83038 5678; 449.97829 8669201; 450.39527 44235; 450.44887 570119; 450.66661 24614; 450.89349 8785; 451.28629 5208434; 451.47576 4617688; 451.67 25633881; 451.81899 188009; 451.98262 4581602; 452.36479 71417; 452.43252 133934; 452.57906 2474841; 452.91412 22102; 453.20405 3560928; 453.33411 937185; 453.57636 2023031; 453.65655 27249; 453.73418 48010; 454.14798 48261; 454.24776 83193; 454.27011 27200; 454.49776 3948885; 454.52739 171495; 454.53643 8456116; 454.53802 1190; 454.57651 33894; 454.76398 1369600; 454.8478 35737; 455.00149 28419; 455.09871 3176756; 455.12932 1912807; 455.24394 9912890; 455.26588 30936; 455.37515 2663967; 455.69581 14673; 455.71716 21703; 455.91109 24628; 455.9324 19938; 456.12347 540537; 456.18644 89597; 456.27232 46488; 456.34855 173354; 456.38372 4317301; 456.45394 24975; 456.65789 6177; 457.27245 59135; 457.29539 22786; 457.32378 7452; 457.44228 32663; 457.81831 26725; 457.8447 21736; 457.90978 2142948; 458.00731 20573; 458.14642 4860016; 458.21204 12119; 458.21255 45140; 458.26136 69713; 458.33657 3290820; 458.4497 1806; 458.73545 431; 459.32148 73974; 459.45135 7961324; 459.63038 77578; 459.67003 25861; 459.71645 736099; 459.79634 1640257; 459.805 1666481; 459.81253 10565638; 460.08142 618246; 460.15463 8291; 460.16405 5763747; 460.19212 3712349; 460.70734 4436643; 460.74465 44362; 460.86571 28671; 460.89699 27563; 461.26901 71116; 461.4011 25545; 461.43769 1159928; 461.4903 40282; 461.64089 793063; 461.84451 669742; 462.05651 619122; 462.09396 51585; 462.1277 5743; 462.20919 29025; 462.22852 3235885; 462.31472 1252703; 462.58879 1025464; 462.61538 3122934; 462.66774 3570; 462.7117 33973; 462.82606 79392; 462.89352 436; 463.05972 7077749; 463.10004 328494; 463.25391 1731725; 463.35124 198788; 463.44833 8082; 463.73314 50522; 463.9803 199907; 464.02073 122595; 464.07067 2397; 464.12123 26308; 464.49374 26491; 464.52963 4244294; 464.798 16712162; 464.81253 1962584; 465.00223 24480; 465.54698 1406870; 465.73307 55316; 466.05157 1197419; 466.10795 2677548; 466.21114 5347; 466.26435 1365643; 466.27622 7062; 466.41699 4995635; 466.47795 69543; 466.58196 29667; 466.70629 51623; 467.07731 7064797; 467.30314 328940; 467.35261 966747; 467.57046 24523; 467.57347 65270; 467.67166 3959563; 468.08898 165537; 468.09873 3049452; 468.45266 2539019; 468.5169 55328; 468.8113 19606; 469.01327 459608; 469.03049 3683; 469.20694 599880; 469.77506 10232581; 470.07888 192876; 470.24119 1345023; 470.33668 22741087; 470.71013 77681; 470.74186 36034; 470.93882 40143; 471.33358 64833; 471.34213 21517; 471.56938 5976; 471.86242 4407; 471.91237 196070; 472.03816 57531; 472.11349 1271181; 472.22081 18140054; 472.22328 52571; 472.25578 602669; 472.40531 194384; 472.92847 1541793; 472.97912 1148652; 472.99413 50316; 473.07956 24002; 473.12639 27994; 473.36658 1197176; 473.41663 1908705; 473.53406 8411; 474.07706 1940193; 474.49043 676751; 474.50474 1316743; 474.95755 11579; 475.05359 13504; 475.43528 1008100; 475.52676 69755; 475.71344 66925; 475.77502 8021; 475.98474 6200; 476.29482 4678336; 476.41543 614986; 476.5805 3065; 476.59626 1560498; 476.86289 970744; 476.92296 66087; 477.27089 9751337; 477.37879 323442; 477.39332 85496; 477.39969 25401; 477.48962 487707; 477.59152 6485; 477.72852 314; 477.97071 4048; 478.00783 2249711; 478.28478 90698; 478.33845 13445; 478.3811 62801; 478.76282 437481; 478.80722 1019375; 478.80876 1956; 478.88043 3231239; 478.97617 74688; 479.14704 141561; 479.31423 73214; 479.3884 62038; 479.41975 1081413; 479.99734 5217710; 480.22442 3528486; 480.56561 1191356; 480.86003 71599; 481.06133 2016; 482.06421 1738718; 482.13779 364396; 482.15355 90343; 482.33172 27833; 482.66161 72465; 482.70808 4809243; 482.78769 555; 482.86325 15122; 482.90362 5078; 483.1251 533768; 483.36579 7604500; 483.62972 6059647; 483.94415 96521; 483.97074 622872; 484.4481 67846; 484.55275 47932; 484.765 24665; 484.89477 95002; 485.23755 3730581; 485.45614 7452; 485.53277 2176; 485.77027 12587; 485.91058 1458720; 486.16527 4578695; 486.19643 388566; 486.80787 2983107; 487.06175 1264567; 487.28601 1901341; 487.29369 22936; 487.42712 4951701; 487.50098 9176; 487.99024 43411; 488.27517 928441; 488.31769 1946475; 488.40834 994567; 488.5097 4403163; 488.65173 29422; 488.83698 37336; 488.88376 508264; 488.93584 8124; 489.09413 14591; 489.18465 177582; 489.41199 2769; 489.69784 50700; 489.74146 553177; 489.75219 148149; 489.81357 1525756; 490.12979 59519; 490.13437 21224235; 490.22342 603517; 490.37979 41270; 490.48675 4706; 490.88023 56347; 491.114 1123479; 491.21915 30166; 491.29313 3265443; 491.29466 17104; 491.53829 77420; 491.74196 43178; 491.75659 32781; 491.80103 2632; 491.85397 21476488; 492.02142 132627; 492.11618 36115; 492.12385 79518; 492.14808 7921782; 492.37579 73155; 492.81098 775071; 493.1365 3646992; 493.37953 46260; 493.6615 78368; 493.74488 722388; 493.90632 48690; 494.31424 181309; 494.35828 1569; 494.40907 1524527; 494.4646 880; 494.55456 9965246; 494.59817 1375285; 494.76537 55819; 494.81323 1882663; 495.36108 41039; 495.55587 1643624; 495.63582 4308; 495.81379 45301; 495.82837 12717; 495.85208 8615; 496.2083 1173; 496.58852 575041; 496.75055 258714; 496.81557 43452; 496.83043 49422; 497.09736 47232; 497.0991 1762824; 497.14638 406434; 497.15638 1048; 497.17459 69676; 497.26918 69459; 497.35742 626102; 497.50833 23297; 497.56115 157870; 497.57737 6868; 497.66945 1999; 497.92974 135760; 497.93649 53724; 497.9687 18372; 498.10303 1483; 498.19163 54345; 498.24262 245657; 498.59954 691939; 499.48348 1273764 +<4, 5>: 0.46961 1908401; 0.47146 22775; 0.56559 6483; 0.57909 38943; 0.59935 1274; 0.72715 1278881; 0.8567 184683; 1.39054 9038864; 2.07937 8729701; 2.26058 66714; 2.86445 7977647; 3.04989 8635222; 3.63002 3160; 3.67312 5529985; 4.10591 4590959; 4.19129 93264; 4.64393 598326; 4.72456 146474; 4.75131 660403; 4.91507 1210925; 4.989 1375992; 5.10842 8661; 5.24261 6090806; 5.40051 9780478; 6.02581 72163; 6.03107 51349; 6.45087 3330901; 6.69047 322905; 6.69681 34454; 6.73503 9462500; 7.10815 128; 7.30871 45655; 7.34994 522161; 7.69856 1649086; 7.79832 42007; 8.30225 27207; 8.34281 24858; 8.38865 1747463; 8.38903 86; 8.90539 7045482; 9.00952 854; 9.11789 22350; 9.33896 1382295; 9.40761 29201; 9.54217 1035078; 9.7925 26959; 9.9293 1389540; 10.0493 14744; 10.14453 615772; 10.37868 53637; 10.73383 20481; 11.12078 38185; 11.32039 8571897; 11.72769 2172667; 11.74348 27163; 11.84775 732080; 11.97627 49495; 12.27534 25081; 12.35338 852; 12.54602 49335; 13.06926 61166; 13.19364 94412; 13.6467 9676752; 13.71208 22699; 14.0398 419221; 14.05359 1261072; 14.24616 518141; 14.5676 61659; 14.60254 40325; 14.63299 1917722; 14.83012 52934; 14.83386 18500; 15.03482 3275701; 15.09965 1789641; 15.39908 20633; 15.50574 4183815; 15.50768 3745; 15.56921 51589; 15.75369 5901; 15.79386 2966964; 16.19515 48466; 16.33311 275889; 16.50561 59492; 16.7312 35626; 16.85496 31967; 16.86963 2113; 17.17428 7990612; 17.20674 8113123; 17.31269 1389342; 17.55405 34958; 17.7289 55150; 17.80531 1931617; 18.27533 6914467; 18.4214 194375; 18.52504 8645; 18.55926 33529; 18.57394 2896513; 18.57913 752930; 18.5994 16729111; 18.63119 9590924; 18.75671 22415; 18.83571 478344; 18.83572 876987; 18.8919 239; 19.5965 7211540; 19.72841 2618157; 20.25659 22264; 20.48749 39785; 20.63062 42955; 20.71918 11180; 20.73262 40114; 20.73299 2688365; 20.75547 8578; 20.86108 8802508; 21.04184 48356; 21.14515 32548; 21.23333 2710898; 21.29205 29630; 21.33853 61534; 21.37479 800837; 21.55989 65818; 21.98204 3743; 22.10439 1437798; 22.31824 1189280; 22.6478 218850; 22.80452 53743; 22.94611 6565331; 23.11487 23906; 23.49003 4583603; 23.51618 35810; 23.95705 1601948; 24.15355 26533; 24.17025 16913; 24.30199 10447; 24.54975 4520; 24.68973 9343; 24.82928 175155; 24.88357 64260; 25.10886 8959; 25.23311 30312; 25.45351 37990; 25.53177 17083; 25.82974 10932; 25.87599 60988; 26.0171 51343; 26.02693 388735; 26.53969 6510816; 26.58473 3566608; 26.63416 35076; 26.77912 9294; 26.78633 7632147; 26.95652 30910; 27.13948 12961; 27.14218 5431164; 27.22057 75831; 27.42955 168390; 27.67686 17618; 27.84341 842794; 28.22178 3264; 28.68567 23669; 28.95132 3595328; 28.95148 60934; 29.25332 1106; 29.41313 43198; 29.44204 11749; 29.74099 8846; 29.7658 5326444; 30.05375 65228; 30.22035 8147179; 30.46065 415; 30.58565 4114; 30.82131 8987189; 30.9169 4335954; 31.00643 1460338; 31.12178 69253; 31.40862 182403; 31.46796 544274; 31.61959 38475; 31.85023 24387; 31.85444 2241; 31.89328 572091; 32.09721 70332; 32.33306 22277; 32.40953 3081687; 32.4814 158089; 32.55452 2843; 32.78682 72630; 32.95701 5072; 33.29121 24423; 33.75942 15008; 33.89098 9004; 34.11308 60912; 34.25189 53730; 34.62066 6936; 35.00258 39249; 35.03345 1141020; 35.10578 1805486; 35.14932 6698; 35.16196 6464; 35.21219 162740; 35.30575 35604; 35.3105 76082; 35.46741 290195; 35.51333 5953658; 35.73007 24608; 35.91532 21373; 36.09848 131646; 36.10048 1790902; 36.11974 1497765; 36.30287 27469528; 36.5785 36670; 37.17119 911239; 37.29416 835580; 37.36621 8447138; 37.38001 65922; 37.50549 4312; 37.79523 81195; 37.81156 40328; 38.15645 70261; 38.21499 3124; 38.34377 10028676; 38.59166 4860; 38.67446 183625; 38.82701 488695; 38.83551 63499; 38.91049 2463739; 39.4371 562287; 39.4895 9853; 39.92012 28772; 39.98319 5312; 39.98331 387084; 40.1248 20174; 40.45839 7721; 40.5737 244318; 40.57548 10542; 40.6427 173534; 41.08823 51899; 41.14287 508451; 41.17389 107724; 41.22903 3811; 41.34508 3953572; 41.37628 52681; 41.45812 32881; 41.50204 46601; 41.56187 1066956; 41.62154 3339272; 41.79562 75757; 41.9783 21651; 42.39085 582372; 42.50386 67319; 42.51004 42569; 42.58178 148087; 42.5933 193; 42.63829 9874; 42.75354 195292; 42.84368 22979; 42.95687 4340; 43.30909 26888; 43.47875 883478; 43.87211 5827; 43.96006 1026314; 44.22599 12928; 44.33434 47970; 44.78417 1680211; 44.87772 47249; 44.92461 10400; 45.024 618931; 45.08496 1921; 45.33501 8077926; 45.35801 15608; 45.49194 49483; 45.62225 2841217; 45.63374 4892193; 46.0328 24099; 46.14748 3833; 46.15145 18394; 46.67887 135674; 46.68881 5961; 47.31189 4358446; 47.47636 54797; 47.50533 69655; 47.54188 21139; 47.54498 2664369; 47.92754 107151; 48.00378 25227; 48.01988 4431408; 48.03881 4218; 48.05995 4004942; 48.81699 22531; 48.86747 1372; 48.9199 9589; 49.65684 21205889; 49.98978 62891; 50.15391 320415; 50.29817 735232; 50.61868 7951840; 51.49568 761139; 51.51037 18116; 51.76165 16034582; 51.81991 43886; 51.91351 4681; 51.98905 65099; 52.13234 57006; 52.2699 5087; 52.36143 9827692; 52.49955 25011; 52.59371 1904300; 52.73958 196206; 52.83644 29308; 52.90555 3074382; 53.03991 1144170; 53.39056 2106880; 53.63479 491129; 53.72719 29363241; 54.07853 75821; 54.31965 1493869; 54.48427 135304; 54.7185 4007391; 54.73685 173616; 54.89627 24624; 54.90962 2440547; 54.94645 1205373; 55.51421 39252; 55.70845 38010; 55.8125 67420; 55.82575 1862122; 55.85052 74371; 56.05876 23749893; 56.14119 2121125; 56.14643 25602; 56.31135 1488404; 56.33512 2352541; 56.53742 29016; 56.64587 22281; 56.98117 1153819; 57.02287 1071841; 57.46729 3859146; 57.94263 9891427; 57.95716 58378; 58.2038 46325; 58.27702 1319513; 58.28394 18089297; 58.35233 2825; 58.45736 52406; 58.46645 17874; 58.72812 9963011; 58.73925 40280; 58.75762 20281; 60.16246 38832; 60.22867 70844; 60.36367 1239396; 60.64307 4100603; 60.74952 1436721; 60.96828 23963; 61.01542 5966; 61.07397 43691; 61.12093 9786883; 61.14422 8722527; 61.71189 19590; 61.77336 1263476; 61.78253 17061; 62.14388 52601; 62.40946 41692; 62.57158 15023; 62.61135 5058; 62.66789 25121; 62.71377 17059; 62.7195 1201359; 62.78355 62695; 63.14279 868415; 63.16686 921760; 63.17173 129956; 63.58257 16213; 63.60226 70892; 63.70132 26126; 63.80536 780682; 64.13323 10128654; 64.30112 22; 64.32646 6909; 64.51504 9081; 64.54913 20013; 64.62569 25026697; 64.78044 20898; 65.05198 1766123; 65.0534 1631063; 65.07338 417410; 65.73398 1208576; 65.81284 3715; 66.08473 1718136; 66.35114 25365; 67.22696 16337; 67.26767 3181; 67.37692 380839; 67.39175 55683; 67.53239 9366; 67.59849 33767; 67.90879 32978; 68.11483 5919; 68.12564 22973; 68.338 1553; 68.43441 36477; 68.66553 9483; 68.74926 5764241; 68.82242 46907; 68.89405 1764945; 68.98261 16599; 69.07931 56070; 69.12193 2044068; 69.37562 144753; 69.45287 274965; 69.75884 63256; 69.8236 12391; 69.95892 274582; 70.32395 27612; 70.37456 29739558; 70.43259 62553; 70.6602 185614; 70.78274 62016; 70.88159 184768; 71.13643 8056; 71.16078 62863; 71.42397 565; 71.5654 8543064; 71.66112 1564332; 71.71656 64467; 72.25378 74868; 72.27699 29666; 72.50477 24662; 72.51338 6062921; 72.57639 24412; 72.63325 23144; 72.87381 1885804; 73.25655 26842; 73.37348 1691336; 73.89051 44142; 73.90201 171660; 73.96038 28872; 74.35486 9781; 74.53691 59575; 74.63715 41558; 74.6754 34719; 74.73644 13919; 74.83627 3571944; 74.9089 66476; 74.97575 53661; 75.06539 38421; 75.40713 3289596; 75.53109 941; 75.60541 8719; 76.40013 4309309; 76.53562 4619900; 76.54123 844901; 76.65692 1780; 76.67813 3645801; 76.88366 76306; 76.93266 59326; 77.01127 48987; 77.02711 771754; 77.14535 645784; 77.36343 1951; 77.5607 7191023; 77.64527 1948100; 77.9238 65026; 77.93431 4199; 78.2123 4499359; 78.49113 46285; 78.89765 35204; 78.97003 24192; 78.9884 50311; 79.14407 3208277; 79.2316 1440031; 79.46706 25249; 79.56858 17061; 79.59286 46364; 79.70611 1092; 79.97369 92977; 80.53531 28652; 80.56608 860424; 80.63519 66560; 80.75912 266520; 81.37751 1442030; 81.66026 4569; 81.87894 143069; 82.25018 3180133; 82.26576 27732; 82.26787 60600; 82.31304 72343; 82.33631 4572570; 82.34596 60624; 82.38522 43540; 82.41089 7385660; 82.62296 38337; 83.33077 66989; 83.8003 2212612; 83.87394 2336590; 83.98771 26776; 84.25891 29220; 84.34172 5253323; 84.70108 6653607; 84.73134 370523; 85.573 46870; 85.65206 1435822; 85.79579 8766; 85.92579 51418; 86.18718 8355; 86.29958 900; 86.69388 7736; 86.72638 9986; 86.77994 3035133; 86.80182 2246; 86.91462 68511; 86.92512 33957; 86.96989 22167; 87.15311 20772; 87.25348 79911; 87.36341 6427; 87.37838 22468; 88.03984 1522; 88.05986 4042; 88.10978 88507; 88.12259 2634034; 88.13737 8470097; 88.49795 888507; 88.71187 37797; 88.98235 17933; 88.99952 1726323; 89.12883 27536; 89.56906 13750927; 90.13152 1840738; 90.26303 162403; 90.3838 3043549; 90.6187 1535611; 90.62625 70700; 90.72356 886; 91.37813 54272; 91.3873 26234; 91.90466 1996861; 92.02002 174952; 92.04827 3901264; 92.20348 173656; 92.40645 16126; 92.55524 3763182; 92.68934 847835; 92.81522 1416921; 92.8718 54438; 93.02723 3728346; 93.03894 27781; 93.04746 4799; 93.2139 4530503; 93.42518 24411; 93.60458 675937; 94.12719 648; 94.45227 22; 94.66964 213921; 94.85385 8172; 95.19984 7068085; 95.34338 7158; 95.36751 215176; 95.37355 6976096; 95.5422 26190; 95.55356 1594115; 95.6007 5229; 95.68661 1190; 95.77013 57674; 96.02746 1342783; 96.07442 6959; 96.10493 2099; 96.17414 351; 96.35215 23428; 96.52254 33751; 96.94306 56586; 97.14956 682576; 97.26947 7471165; 97.91584 1031694; 98.14076 1946; 98.28709 274422; 98.29824 29433; 98.324 8721; 98.44306 3789; 98.63991 4707; 98.67316 868803; 98.71811 1987250; 98.99859 39637; 99.19051 1828090; 99.23159 53518; 99.24321 73783; 99.33499 692632; 99.52373 46661; 99.64593 24570; 99.64671 1606041; 99.6873 4618393; 99.94732 60090; 100.01023 141905; 100.34439 26403; 100.74667 624668; 100.84169 27046; 100.89356 4498399; 100.96021 50398; 101.00696 485632; 101.28546 30659; 101.71856 22645; 102.02193 419512; 102.58039 7582; 102.93524 3572103; 102.98222 28015; 103.03621 79370; 103.85683 9006365; 104.315 10962; 104.4966 5829434; 104.71858 10806; 104.74783 30824; 104.7889 49003; 105.00154 1884199; 105.32737 110292; 105.38281 4520782; 105.45475 76543; 105.68294 2722626; 105.71116 24118; 106.00287 804744; 106.11376 4324320; 106.21134 197575; 106.29519 4397059; 106.41869 1751; 106.96495 25516; 107.02139 112198; 107.57622 25765; 108.03101 9408; 108.05461 1630646; 108.1689 66961; 108.18081 4715865; 108.64617 14085; 108.69713 4733674; 108.79408 8317357; 108.87234 5031712; 108.95969 688557; 109.13623 37451; 109.37462 89158; 109.41688 9095; 109.60218 6315224; 109.9081 74654; 110.16042 2411653; 110.29647 74390; 110.37193 741898; 110.59876 198515; 110.77842 328091; 110.83432 50624; 111.36125 29281; 111.57954 32274; 111.60816 4451468; 111.65056 79504; 111.65986 3639; 111.74791 1494670; 112.05585 35667; 112.59981 1965166; 112.62902 6403217; 112.82475 3571629; 112.995 564881; 113.10368 2765891; 113.14818 20412; 114.02157 36777; 114.02242 58494; 114.0845 1323232; 114.46278 48045; 114.51738 21041; 114.67467 20335; 114.88675 29934; 114.96121 820534; 114.98999 61092; 115.14145 4060445; 115.15051 9750966; 115.18135 117210; 115.86913 5932684; 116.01879 33407; 116.35237 306; 116.54454 21395; 117.16986 70721; 117.39829 845497; 117.43819 32052; 117.48178 305390; 117.59142 9129; 117.72582 3078358; 117.73082 1413483; 118.06365 11859; 118.36589 809029; 118.54242 5799; 118.62149 18573; 119.08406 196713; 119.27144 8030888; 119.34576 6092; 119.36409 5542530; 119.47705 7396; 119.80832 42012; 120.0129 829061; 120.02363 118881; 120.06973 31875; 120.25196 1864117; 120.31363 40161; 120.59057 3224; 120.62003 1933261; 120.71666 100895; 121.02774 4457555; 121.69581 4120; 121.70954 9783149; 121.92824 2488904; 121.9487 4137539; 122.18437 64727; 122.22762 6235; 122.25352 11930; 122.25886 422037; 122.37801 6296552; 122.79392 111328; 122.8829 85968; 123.2479 2200962; 123.28998 6088473; 123.33436 3009094; 123.3851 114838; 123.42305 1161788; 123.44171 44650; 123.45824 56898; 123.57913 2416; 123.73846 13814; 123.87154 4547; 123.88392 13147; 123.88397 40862; 124.09744 66817; 124.43759 9260660; 124.84637 7001; 124.88765 3280; 125.1413 1837158; 125.20474 5592; 125.28118 5287937; 125.2976 2856795; 125.54515 14140249; 125.67041 1113195; 125.67318 42598; 125.91937 10448; 125.92226 1209; 125.92908 1399698; 126.12888 2832386; 126.22341 4247348; 126.97916 39970; 127.1473 53171; 127.23731 2519926; 128.09788 55692; 128.29728 66818; 128.35637 4853; 128.55005 44903; 129.35003 11944928; 129.40565 1687706; 129.4345 4120; 129.54351 8424267; 129.79934 7535849; 129.85629 25985; 130.28727 29300; 130.57118 4675728; 130.69326 9785; 130.74658 1477782; 130.75117 1548158; 130.83805 1024491; 130.8498 73901; 131.15189 4637602; 131.2157 3672342; 131.22166 859817; 131.31927 1516847; 131.59102 73732; 131.88843 71736; 131.99097 46487; 132.16015 4947412; 132.24148 1565205; 132.30544 959274; 132.59419 1832905; 133.38935 560256; 133.55379 9729701; 133.8906 15176; 134.50853 5855642; 134.51796 20714; 134.52806 168037; 135.04306 9210; 135.43734 21846; 135.49638 8997952; 135.5387 59191; 135.61437 131476; 135.66889 64525; 135.8805 24427; 136.04822 6795825; 136.6208 6161; 137.50556 50430; 137.50874 61174; 137.85332 38609; 137.91166 14122710; 138.05782 4744; 138.06645 63997; 138.28979 2687; 138.41992 9736653; 138.48301 3894; 138.53522 1172152; 138.68227 25426; 138.76806 457910; 138.89522 7870; 138.89838 3967672; 138.90851 8071; 138.9229 7911745; 138.92537 1952043; 138.92629 7648; 139.14752 2522; 139.20641 7661; 139.38882 46321; 139.63238 12676; 139.69316 53041; 140.02845 24494681; 140.13527 40161; 140.36913 23275911; 140.41285 76697; 140.41436 15432; 140.66248 905; 141.05397 1037; 141.31927 24860; 142.15571 25145; 142.4659 4209167; 142.55039 32537; 142.58775 8426046; 142.6497 55318; 142.67808 9405; 142.95537 21712; 143.03726 28348; 143.21129 809200; 143.28017 76360; 143.35041 4590582; 143.36075 21472; 143.42278 38060; 143.7247 311941; 143.88798 5625237; 143.94395 980242; 143.95511 748255; 144.23388 2675286; 144.87101 4818736; 144.87715 1402823; 145.0559 28221; 145.07757 28347; 145.64147 70464; 145.67891 15237; 145.93507 28982; 145.98514 48501; 146.37156 70283; 146.97435 31818; 147.04387 76467; 147.28525 27692948; 147.31524 5598484; 147.39563 52951; 147.93862 16550; 148.02311 29036; 148.26438 3530131; 148.32059 26915; 148.54671 17573; 148.64129 7035; 148.67579 675801; 148.90168 1881498; 148.96713 38536; 149.01245 1652397; 149.51028 67581; 149.67202 70300; 149.75572 162442; 149.79036 23928; 150.15917 1631596; 150.23478 3273709; 150.72786 65871; 151.2205 6432897; 151.23078 768722; 151.30692 7957; 151.39735 9919; 151.62953 72990; 151.69171 4792292; 151.79092 17271582; 152.09582 761335; 152.17733 31343; 152.51063 1580938; 152.81518 6812203; 153.18989 524036; 153.62555 5423; 153.76252 120318; 153.78431 541412; 153.88661 1922988; 153.91064 60610; 154.3923 358938; 154.48516 1996; 154.65629 5498893; 155.11031 27873; 155.12436 729901; 155.1346 965709; 155.31708 30; 155.44466 524961; 155.54409 51273; 155.55389 8229; 155.57326 151667; 156.44511 27424; 156.5813 58670; 156.68773 17504; 156.69585 5579266; 156.77589 3883184; 156.82501 71462; 157.11832 8065048; 157.16499 19165831; 157.23045 11319511; 157.31935 35115; 157.5151 18430; 157.96204 32778; 158.17333 1785168; 158.26052 6877790; 158.47925 62048; 158.60979 344870; 158.63882 1030666; 158.87483 4405984; 158.94188 54497; 159.23512 4672537; 159.7428 6446; 159.79948 7611699; 160.02771 74235; 160.16645 12948; 160.35069 364525; 160.92777 58611; 161.13229 74; 161.38969 409655; 161.41266 26185; 162.74537 12043; 162.94035 22144; 163.12246 1897275; 163.17273 10276129; 163.22155 9480; 163.23271 1018; 163.32914 4810; 163.33632 9764; 163.39261 55122; 163.45754 16493; 163.51672 20154650; 163.52149 72799; 164.02154 1867997; 164.25449 1658536; 164.32268 7282; 164.32636 3122975; 164.52674 38097; 164.68296 5490948; 164.90278 1015241; 165.68681 8097; 165.72953 41707; 165.76871 20578; 165.82983 883898; 166.122 1560260; 166.38652 3798; 166.41694 944639; 167.22773 13170; 167.55871 45296; 167.75444 44071; 168.3438 1149; 168.34766 28481; 168.38007 71366; 168.43386 11557; 168.56547 1621836; 169.226 43702; 169.30972 5972; 169.38255 20132; 169.82607 47097; 170.04161 3480154; 170.14677 641161; 170.21724 5275265; 170.39856 66650; 170.45221 67900; 170.48145 29962; 170.62456 39077; 170.76046 2049; 170.77278 1969239; 171.32793 54550; 171.37217 21881; 171.49087 46748; 171.62368 5716030; 172.09928 1682741; 172.17188 458558; 172.37591 104169; 172.38674 22529; 172.47506 3467519; 172.61704 126740; 172.62306 193395; 172.75389 9570; 172.79607 187216; 172.94926 958; 172.99295 3229; 173.08641 50760; 173.17559 558308; 173.29711 7115; 173.36562 3078; 173.41384 23175; 173.82195 5644230; 173.85942 60356; 174.48189 3314; 174.57009 3139607; 174.61222 1915735; 175.04449 9834; 175.45009 26329; 175.49775 8781; 175.68359 42256; 175.74116 54888; 175.91761 1285707; 175.95163 40392; 176.1891 2073863; 176.2185 3931360; 176.32281 53037; 176.33556 3115; 176.607 38606; 176.67936 7102837; 177.00627 51358; 177.55609 55001; 177.70601 182315; 177.95449 177731; 178.03558 20169; 178.23533 591089; 178.39007 3035; 178.39925 28725; 178.6005 18051; 178.97852 8350609; 178.99303 3157; 179.0209 654237; 179.02618 42942; 179.11364 6735079; 179.43018 7101; 179.61598 8811876; 179.75563 138689; 180.01597 30914; 180.12829 54255; 180.20674 69129; 180.23321 18433; 180.38288 2220845; 180.42727 551414; 180.66622 29287; 180.72741 33912; 180.77163 9884038; 180.98053 62044; 181.29876 23735; 181.87874 11004438; 181.98392 77470; 182.53338 22504534; 183.3204 1109448; 183.47412 3927; 183.68025 36708; 183.91653 1135490; 183.93681 10624; 183.95274 44589; 183.98638 476807; 183.99649 139434; 184.31661 33508; 184.32555 35444; 184.46048 1309196; 184.68852 792477; 185.08798 1915772; 185.57979 2827; 185.65734 4347710; 185.73961 193217; 185.83818 9725; 185.89644 652490; 186.19354 78047; 186.31725 7663936; 186.39808 78362; 186.47093 8864161; 186.50902 4142363; 186.68618 21625; 187.46633 84009; 187.54082 851732; 187.5469 19590; 187.55871 199649; 187.79465 38553; 187.93836 17792267; 188.17115 7225; 188.34075 50634; 188.45356 8980942; 188.55364 43984; 188.64389 3756208; 188.6666 67854; 188.70949 18101; 188.87286 993858; 188.90127 1662518; 189.40956 23600; 190.24798 9059568; 190.30416 6226438; 190.59429 61827; 190.75526 915; 190.90031 1799878; 190.94104 475405; 191.10276 37540; 191.2332 14582; 191.44951 21578; 191.51637 4428075; 191.52715 1404935; 191.61459 45211; 191.77171 1910414; 191.84009 3799259; 191.88596 566792; 191.97553 5474856; 192.00173 7503; 192.07664 8568056; 192.25606 940844; 192.29906 71; 192.63673 1720879; 192.90672 827996; 192.96851 27196; 193.21961 23512; 193.24296 218381; 193.34284 1646690; 193.71436 2952; 193.73392 38226; 193.98134 5379070; 193.99966 2392; 194.04574 6201; 194.0818 6236386; 194.08534 9273; 194.093 7815; 194.32549 8403292; 194.39521 27767; 195.22126 5473536; 195.23257 1295821; 195.88113 73076; 195.91509 67404; 196.03801 47010; 196.27316 4295232; 196.27977 15347; 196.44007 1247695; 196.4983 723323; 196.62621 1937055; 196.87217 1795688; 197.70777 59676; 197.77531 20825; 198.03499 296348; 198.06312 195805; 198.18183 25395; 198.27245 6684; 198.29463 3520336; 198.34475 347384; 198.43996 164313; 198.62032 1482355; 198.81226 42843; 199.07903 177881; 199.16293 8933; 199.35542 29083; 199.46364 8691893; 199.60929 55431; 199.65657 9128; 199.73613 166165; 199.911 758100; 199.93136 5946; 199.94392 25801; 199.98802 5782; 200.06899 166866; 200.46395 52685; 200.52532 25653; 201.03528 31375; 201.25263 128324; 201.25826 160600; 201.31172 52394; 201.35287 2101237; 201.40114 467043; 201.54505 5298877; 201.78566 11166; 201.86008 78999; 201.92745 11649; 202.02363 39689; 202.06867 25693; 202.33316 1470747; 202.659 27668; 202.7193 1201264; 202.7751 52848; 202.86886 40509; 202.9391 456787; 203.19555 36363; 203.20164 77660; 203.31145 151163; 203.52508 18736; 203.56698 453808; 203.75013 40604; 203.85904 4338847; 204.20416 88074; 204.65721 10161; 204.69731 60140; 204.77492 369134; 205.29301 1361859; 205.44524 1312149; 205.89678 1031364; 205.94534 4480; 206.94834 28511; 207.10539 34735; 207.17908 25508257; 207.2905 43626; 207.50979 5624; 207.66718 1876658; 207.80511 45413; 207.82737 76879; 207.86322 1149779; 207.96318 11074639; 208.21875 28051; 208.24836 1198842; 208.32011 887552; 208.77324 183084; 208.78183 3458; 208.96921 13672; 209.14309 16385; 209.42872 1187320; 209.68105 385058; 209.69099 9219; 209.85069 3525821; 210.21146 1753179; 210.41346 63469; 210.62064 31487; 210.9119 48821; 210.91669 2009749; 211.17977 973221; 211.2696 33196; 211.64552 7698822; 211.69527 925577; 211.73779 77946; 212.30718 1178755; 212.57924 129614; 212.59553 18453124; 212.6522 1509153; 212.77525 182012; 212.88655 24811; 212.90246 24605808; 212.9236 9926783; 213.16214 9835823; 213.16934 21184; 213.20507 75223; 213.31568 68638; 213.64317 6169671; 213.67624 49624; 213.78122 185789; 213.90072 77727; 213.91584 3723180; 214.40422 3986; 214.62998 7985; 214.63409 1445253; 214.75554 1055415; 214.89637 76011; 215.07189 29057059; 215.22717 171315; 215.33994 50468; 215.36802 40699; 215.53634 7025580; 215.54949 3698482; 215.63157 1309719; 215.6512 757091; 215.79952 2242114; 215.82742 4236; 215.98438 1166132; 216.27725 2339350; 216.43957 3505; 216.48617 157196; 216.59112 2492572; 216.73899 6909; 216.82415 66658; 216.84076 2022918; 216.85394 2942394; 217.25352 1531312; 217.32662 4912955; 217.52472 13544; 217.54735 1146577; 217.69468 23546; 217.82656 630; 217.89088 45613; 218.03198 79079; 218.34616 96040; 218.39266 19843; 218.42134 29099; 218.43768 23083950; 218.86413 9341; 218.99639 20850; 219.30038 1968932; 219.40539 7149; 219.53895 27387666; 220.06204 38681; 220.1434 1434414; 220.59983 35216; 220.6922 60554; 221.01446 8245236; 221.30091 41957; 221.46377 7996; 221.64991 9679; 221.7297 1585; 221.91807 29275; 222.13998 10736; 222.38895 489648; 222.49105 370237; 222.76344 3602; 222.80982 17449; 223.025 27536; 223.07983 102908; 223.1959 3763626; 223.35787 70301; 223.41067 8400; 223.7554 67982; 223.91802 3756; 224.01338 1992380; 224.20647 4571; 224.28943 3649; 224.34824 318; 224.71563 24573; 224.96221 128067; 225.19121 4040215; 225.42051 22713; 225.53564 546525; 225.89338 29121; 225.95178 2481408; 226.02615 35175; 226.53852 40287; 226.77239 333; 226.81889 6678183; 227.13315 3876; 227.15054 472629; 227.19534 186; 227.26885 29726; 227.4724 25407; 227.48465 7584; 227.54457 25640; 228.21606 55988; 228.26962 7919; 228.28427 2311093; 228.37916 232173; 228.45801 15973; 228.70007 350; 228.99086 1791729; 229.17318 71541; 229.2821 78022; 229.35087 9035; 229.35805 9986; 229.48763 4275; 229.50171 1038; 229.99959 3453642; 230.04964 437732; 230.14089 1868; 230.19078 2072; 230.35223 30874; 230.96512 7224901; 231.52982 6396127; 231.57207 798661; 231.87064 5394; 231.90684 65019; 231.92874 2266; 232.14353 49397; 232.18846 27733; 232.86032 257975; 233.08027 1834539; 233.21095 15717; 233.30602 1114932; 233.3831 123311; 233.52794 29971; 233.58545 1223967; 233.69293 21467; 234.0675 130560; 234.12134 110690; 234.6774 123717; 234.7184 1271924; 234.79991 2393165; 234.88595 176; 235.47296 58713; 235.70583 30655; 235.93358 18284384; 235.97377 969792; 236.10309 5991593; 236.21366 5646415; 236.27591 8789538; 236.50236 54282; 236.99023 41247; 237.20129 25180; 237.28459 1892235; 237.33768 2791898; 237.6022 1503455; 237.61248 8284; 237.61944 48212; 237.91134 44663; 237.96275 1098661; 237.99584 180435; 238.05126 73508; 238.0927 43168; 238.12559 31969; 238.28424 170992; 238.30189 2940; 238.48785 38953; 238.68929 7222484; 238.69573 155623; 238.70023 29990; 238.84762 28554; 238.8852 25288137; 239.40328 69421; 239.44537 25992; 239.59852 18715; 239.70876 5931; 239.80297 46275; 239.87864 242524; 239.95362 7375; 240.16353 6453740; 240.29771 553; 240.32467 5169; 240.63581 39191; 240.95837 89519; 240.98931 2007273; 241.35496 2342075; 241.37756 17646; 241.38455 3698869; 242.37414 13560; 242.47276 21536; 242.52394 37082; 242.70983 13653117; 243.11089 7162; 243.11261 1881482; 243.14466 10359; 243.15577 9791482; 243.24243 46017; 243.34772 741006; 243.55299 1637134; 243.83807 28007; 244.14099 152969; 244.19455 9654347; 244.20004 6251; 244.28968 9502; 244.32669 24015; 244.42522 8436677; 244.4271 57858; 244.5526 3379622; 244.57814 56262; 244.65945 26744; 244.66479 4466; 244.87188 12710; 244.91766 123984; 244.94389 16015; 245.025 98685; 245.24003 30304; 245.25137 8115; 245.25604 7969226; 245.27529 15682; 245.34767 194745; 245.74018 78560; 245.90272 37207; 245.90791 6696511; 245.99628 182226; 246.24329 9954878; 246.55115 60652; 246.602 9132227; 246.79399 1988762; 246.82783 6251154; 246.86889 52637; 247.08014 1062499; 247.3394 692622; 247.36393 21073578; 247.41637 29461; 247.69676 4784996; 247.77016 7942; 247.81363 23478; 248.35685 49738; 248.41131 128226; 248.65967 221431; 248.76413 4314; 248.79057 616790; 248.80177 81376; 248.87473 102211; 249.03438 6870; 249.05495 2965287; 249.09072 21566; 249.54869 16654804; 249.84181 4392577; 249.91251 25054844; 249.9449 927984; 250.3287 2471; 250.39167 15987; 250.58861 27932; 250.68582 1066917; 251.49638 61128; 251.50781 63634; 251.70404 145425; 251.74902 181619; 251.83293 811251; 251.84059 7079; 251.90788 776293; 251.93145 74358; 252.04989 962404; 252.09141 1397785; 252.75875 56018; 252.82747 4689675; 252.84566 26073; 252.95684 1164; 253.23711 78057; 253.51095 171947; 253.53061 45190; 253.56196 40180; 253.73377 63691; 253.96063 5056993; 254.07248 148471; 254.28175 1325640; 254.31886 4451; 254.63206 24421; 254.86066 17767; 255.23773 102508; 255.61147 1060257; 255.90373 49892; 255.93013 67474; 256.07139 9126; 256.0906 27656; 256.11918 6403299; 256.42082 654459; 256.58008 6283439; 256.61612 1299261; 256.81779 13625; 257.03822 10552; 257.08176 48638; 257.49187 4776178; 257.60823 20258; 257.64188 1100; 257.85601 816781; 258.2816 3821150; 258.56883 151870; 258.6007 5646963; 258.67097 1918958; 258.71805 68289; 259.44741 3104872; 259.55029 47910; 259.75407 56321; 259.76101 19728; 259.89513 4870356; 260.02819 36348; 260.11315 16805; 260.16635 50959; 260.20342 7464; 260.28039 8361; 260.46953 29733; 260.91644 395; 261.53929 40930; 261.6369 55682; 261.77589 47604; 262.24944 16963; 262.40174 8893362; 262.47632 10641163; 263.03851 69772; 263.12599 822; 263.25914 52765; 263.27185 28299; 263.30312 108295; 263.55862 5407; 263.62879 71226; 263.64979 5479; 263.70031 592087; 263.99437 5510; 264.02892 70652; 264.23597 26801; 264.40464 158531; 264.51222 594673; 264.53534 59781; 264.57791 11739; 264.59687 68367; 264.93191 3839650; 265.33306 31931; 265.74778 9464; 266.16124 3103; 266.32259 15673; 266.36952 33678; 266.4929 79733; 266.5511 7245; 266.63476 14827; 267.23129 646247; 267.48199 70894; 267.48552 1482377; 267.62944 21453847; 267.72548 8378; 268.01646 70928; 268.1117 21603; 268.12333 16370; 268.46225 380288; 268.50926 47899; 268.80054 3524452; 268.83139 14374; 268.8885 9807; 268.94033 98401; 268.94592 7518558; 268.97502 9; 269.16192 3905; 269.23535 29569; 269.33289 23501; 269.33893 339903; 269.53984 4932991; 269.77275 1467989; 269.86102 66646; 270.10686 19748100; 270.12505 6784; 270.64437 44653; 270.79042 971442; 271.01911 414145; 271.3139 18830; 271.49611 113192; 271.56884 6369298; 271.58367 30651; 271.59858 52108; 271.64097 344010; 271.66064 8768195; 271.73799 9015297; 271.76704 754537; 271.9442 20174; 272.36402 5309; 273.25928 868468; 273.56837 1423500; 273.63058 28606; 273.73474 443673; 273.92392 4837981; 274.02046 1417672; 274.04908 22459; 274.28496 8437570; 274.6822 462648; 274.8568 4126440; 274.98667 180; 275.09979 297728; 275.39853 55817; 275.5793 2609386; 275.85478 1397157; 275.8878 22393; 276.0045 33202; 276.04097 121627; 276.44427 123100; 277.2328 37305; 277.42748 5940; 277.44183 34667; 277.47447 4063; 277.48054 1273634; 277.5959 203626; 277.62282 66907; 277.71168 7867; 278.14736 689945; 278.30436 22821; 278.81938 9077939; 278.94942 25710; 278.96792 6342340; 278.99565 1871172; 279.01782 1373126; 279.2603 1175787; 279.26339 44413; 280.23287 954098; 280.4603 1742467; 280.77276 21689792; 280.90214 1023028; 280.90829 1166434; 280.95133 552344; 281.2481 5856; 281.39784 4567694; 281.56542 8739781; 281.78075 5913050; 281.82488 2842; 282.17213 4533915; 282.51884 21278; 282.72095 1832157; 283.98679 7822990; 284.14954 1242755; 284.21555 34102; 284.38829 77442; 284.46598 8743; 284.56294 69517; 284.57846 58591; 284.67611 4986181; 285.10626 241; 285.24748 193819; 285.48718 70608; 285.54622 4955450; 286.05491 10105; 286.08528 57765; 286.11377 37035; 286.12474 32356; 286.27667 3412; 286.71377 9193704; 287.00059 73384; 287.20646 55367; 287.34965 357317; 287.39286 7244; 287.49471 1064382; 287.55886 21158403; 287.73352 1150733; 288.02338 2697; 288.08864 48239; 288.11402 9787; 288.31182 334295; 288.42204 2522; 288.74017 6152322; 288.78459 7721; 289.21457 23830; 289.60842 91063; 290.22731 5294638; 290.73805 51296; 290.80148 4905953; 291.0978 58366; 292.34828 9285476; 292.41483 23189; 292.49806 3172129; 292.66608 1582945; 292.85098 8644; 292.91621 852572; 293.13703 79703; 293.27376 3542149; 293.39115 34423; 293.60202 28927; 293.6212 107092; 293.79998 10016; 294.09946 5621765; 294.21651 1189256; 294.27227 54455; 294.61646 3408; 294.80474 3378; 294.81135 2527124; 294.90348 143336; 295.74671 197679; 295.86832 2552; 296.17198 4101; 296.36244 47137; 296.46047 8265237; 296.62193 54401; 296.64062 8597; 297.01678 5258804; 297.17103 1067000; 297.20243 3706614; 297.32399 3172821; 297.8988 27315; 298.13704 37421; 298.41563 3894343; 298.57731 838419; 298.72199 48255; 298.7341 4236362; 298.78481 8227193; 299.25544 7494599; 299.35623 1614; 299.40433 32690; 299.40548 45584; 299.61024 35272; 299.68019 4511768; 300.09702 14601284; 300.28447 79987; 300.28614 1064086; 300.69575 4833754; 300.94624 43829; 301.31862 3557545; 301.47722 61288; 301.70642 2552015; 301.72341 1036085; 301.82425 28921; 301.89254 2181408; 301.94436 71989; 302.08629 41903; 302.15516 136937; 302.25084 78778; 302.27428 1846095; 302.71845 5271747; 302.87791 9729; 302.8894 7454; 302.90414 3920; 302.90565 95603; 303.10148 3667608; 303.19866 23689242; 303.61581 6047218; 303.63085 15173; 303.6593 32730; 303.7055 702534; 303.73384 149390; 303.73966 2125681; 304.02222 62244; 304.22471 45281; 304.40983 1778; 304.45963 263983; 304.53487 26095; 304.63819 29135; 305.03329 70193; 305.03372 22304627; 305.65801 603006; 305.67654 834097; 305.76286 51948; 305.8622 69861; 305.99957 186534; 306.04192 2470; 306.42089 5262686; 306.49789 70336; 306.64318 5009; 306.75744 865213; 306.96643 3192631; 307.16434 3613701; 307.34505 26161519; 307.63903 2240; 307.68799 4859709; 307.81091 34479; 307.85404 3268; 308.5946 60897; 308.62156 990114; 308.72359 2881380; 308.92408 123580; 308.95082 1834742; 309.06424 53395; 309.08218 198849; 309.31941 17400700; 309.39536 77466; 309.47509 349127; 309.57248 267886; 309.94579 57852; 310.03187 8302; 310.32919 976153; 310.38902 1626758; 310.44506 751000; 310.95896 1838; 310.99748 48139; 311.18337 4970163; 311.45373 808603; 311.47401 13055; 311.64993 75120; 311.78699 2218338; 311.96346 1244; 312.00131 26276; 312.24108 80289; 312.29201 72161; 312.32574 1666042; 312.32998 13342; 312.33772 27249; 312.59022 270909; 312.96851 1322052; 313.08057 1386; 313.16522 2968; 313.18322 164848; 313.30111 45393; 313.59784 1258799; 313.78497 24932; 313.84546 105298; 313.92087 4668; 314.04441 4934693; 314.12021 10076; 314.36763 41820; 314.4408 412040; 314.63754 31880; 314.71129 9006037; 314.90901 11428760; 314.95768 46110; 315.22042 58999; 315.29021 69680; 315.37255 2605; 315.94872 59253; 316.09444 309384; 316.21152 49088; 316.21622 855828; 316.85176 28163; 316.88529 8745075; 317.14167 68404; 317.14391 78635; 317.25934 1668154; 317.36151 1057746; 317.41305 22934; 317.83463 30642; 317.84392 17410; 317.89394 6449; 317.89718 5916998; 317.94347 1372865; 318.05404 45549; 318.0686 22979; 318.44785 795940; 318.73998 2401574; 318.89533 4373; 318.98252 4922403; 319.23087 761102; 319.26009 64535; 319.60796 5809626; 319.64145 6598; 319.81795 1376338; 319.96881 34290; 320.12002 980438; 320.12264 148189; 320.26094 141752; 320.26542 378136; 320.33414 27040; 320.47081 21412; 320.65191 651461; 320.68436 1402437; 320.82836 17952; 320.84127 6429; 320.89315 28036; 321.47397 9543; 321.49161 247820; 321.88728 14670; 322.26964 1375910; 322.443 1297969; 322.95125 3733; 322.95934 4425762; 323.18225 496248; 323.92313 131360; 324.09505 7834; 324.24315 9879; 324.67494 3226671; 324.76554 26584; 325.33949 4015626; 325.38522 9700172; 325.45266 23805; 325.48397 56030; 326.25384 28516; 326.30735 1072462; 326.5428 26463; 326.65304 2122018; 326.69683 8139181; 326.74433 564315; 326.86384 4393861; 326.93924 806211; 327.19257 7510589; 327.25833 59606; 327.26072 849991; 327.45692 3856; 328.27366 78432; 328.33133 42591; 328.4907 3334; 328.6946 1126129; 329.15572 50339; 329.36081 220054; 329.4997 38624; 329.92708 1064294; 330.04037 3763; 330.25229 456943; 330.74639 25833; 330.75964 8919; 330.81217 18103; 331.31236 8808; 331.3234 8953; 331.57174 67828; 331.87806 94508; 331.93711 113122; 332.06774 15713; 332.87086 791145; 333.08106 541056; 333.58086 10413; 333.73663 1192358; 333.77884 6438; 333.83353 8448; 334.21212 55218; 334.22496 186399; 334.30849 150011; 334.72636 77648; 334.94786 71136; 335.11261 1818916; 335.12069 73756; 335.30437 9137; 335.3592 41852; 335.57245 4895; 335.65407 4774249; 335.90516 3340; 336.02784 3968; 336.23375 1364434; 336.28032 1611708; 336.5875 26058460; 336.61062 1162; 336.63022 66101; 336.98229 120369; 337.06656 3751440; 337.16661 3932998; 337.59305 1552738; 338.17582 8684; 339.05444 1410194; 339.115 2218461; 339.13597 1911992; 339.20631 23984; 339.31652 63322; 339.33976 56147; 339.46486 536776; 339.51004 21160; 339.70436 1802955; 339.70553 15550901; 340.21788 1188749; 340.40662 3382345; 340.58799 180029; 340.66954 225842; 340.67636 29207; 340.88761 39781; 341.1611 77928; 341.47878 16126; 342.04867 38701; 342.15106 38553; 342.22323 71099; 342.26271 135649; 342.56176 248502; 342.61733 278911; 342.82164 1379392; 342.85305 5215110; 343.203 8520685; 343.3096 2484; 343.87539 39121; 344.02062 4885742; 344.53943 30571; 344.91945 29937; 344.97659 7831; 345.03739 27708; 345.2125 1650742; 345.29629 5863; 345.40992 10627; 345.79511 68445; 345.83476 292536; 345.99227 40299; 346.14704 2719740; 346.46923 4398; 346.58568 433323; 346.71865 1849136; 347.22313 38559; 347.30486 3611648; 347.30666 7816268; 347.30842 22266; 347.44427 27746; 347.93997 3633815; 348.14482 50207; 348.15078 205576; 348.30315 1978440; 348.30806 8322838; 348.50026 78977; 348.57633 3714170; 348.58367 1490714; 348.75967 3963218; 348.83007 3631098; 349.18052 7824; 349.82732 46637; 349.95231 52949; 349.97798 8889813; 350.11769 2534580; 350.30097 724852; 350.34761 6437184; 350.38132 9365866; 350.38817 3381029; 350.58156 2144; 350.62468 779; 350.65989 122256; 350.72362 55390; 350.72636 2402122; 351.49229 1156438; 351.49372 482115; 351.98793 59435; 352.1767 1050; 352.55399 1033785; 352.62272 3137774; 353.30589 1346462; 353.3333 25332; 353.34889 9930; 353.63451 1825800; 353.66698 1540724; 354.093 28680; 354.64164 64343; 354.68117 6052; 355.80009 18826; 355.95586 27408; 355.98738 60602; 356.02911 571224; 356.25497 8940; 356.4941 143; 356.93983 3588385; 357.03655 20887; 357.06946 9930; 357.26216 28707; 357.64312 1675206; 357.85067 97560; 357.8676 149449; 357.86839 5742834; 357.89163 52193; 358.37167 6160936; 358.40392 299; 358.54239 40470; 358.63464 5229; 358.93151 17180; 358.9544 1716; 359.05165 27404; 359.23888 5359895; 359.30686 966; 359.35499 10777; 359.36329 5670404; 359.51828 97308; 359.83073 9534175; 360.40758 447; 360.69624 70078; 361.00137 24161; 361.05855 28135; 361.40453 21202; 361.49184 6337; 361.74922 618625; 361.92709 27037; 362.68595 74875; 362.68868 1847244; 362.7501 1631877; 362.88733 9580493; 362.90244 62244; 362.92628 1716342; 363.26519 7614912; 363.7663 348435; 363.77259 70228; 364.08194 34267; 364.1703 150281; 364.44741 26024; 364.45563 240211; 364.46443 25424382; 364.5332 7767274; 364.78937 18311; 364.82716 721849; 364.94132 21941; 364.94797 37442; 365.38995 2279; 365.53246 24336930; 365.88803 88822; 366.20954 41160; 366.21179 378908; 366.26696 53482; 366.79318 4138006; 366.98096 125628; 367.02377 52015; 367.26506 74; 367.39792 1707180; 367.41664 4376; 367.62435 4967607; 367.7019 1462515; 367.78355 594022; 367.83887 414710; 368.45016 28359; 368.49661 497684; 368.71375 3665049; 368.77417 717; 369.27155 2579481; 369.38767 75874; 369.54785 75957; 369.81019 9608; 369.84277 49427; 370.05492 207449; 370.16988 5252657; 370.31536 4577931; 370.31951 3901; 370.32562 62260; 370.73644 9108; 370.76839 10012; 370.78886 38536; 370.88343 3882537; 370.90304 19916; 370.91933 516381; 371.1043 66013; 371.16861 2688227; 371.32869 1566693; 371.38149 1207366; 371.41765 40777; 371.63145 7964; 371.92311 32039; 372.2091 8264793; 372.7101 148367; 372.90706 1971864; 373.31106 43245; 373.364 28907; 373.46762 23310; 373.68701 28539; 373.74736 3450; 373.80196 653919; 374.01549 65515; 374.42785 4781618; 374.76965 5636; 374.89984 1635422; 374.9842 13972; 375.52542 3597901; 375.56241 9868642; 375.56652 9462; 375.65533 21346; 375.76404 34823; 375.84822 58929; 375.849 74483; 375.89962 94327; 375.95352 25168; 375.95529 166784; 376.05221 35665; 376.07723 105403; 376.16288 142533; 376.38211 55720; 376.78007 42659; 377.29495 9227962; 377.31281 25995; 377.44574 17339205; 377.60445 8442; 378.3037 2628897; 378.61846 7591809; 378.6641 3363709; 379.04866 20601; 379.19578 535678; 379.42473 1840444; 379.4583 23548483; 379.65799 4279247; 379.66245 27550; 379.73599 29920; 379.83358 60203; 380.27438 191119; 380.41816 3935760; 380.47227 821136; 380.6848 1796930; 381.58857 24227; 381.84193 1742; 381.85909 6452; 381.89896 1796469; 382.01924 29081; 382.34038 4914; 382.41275 59896; 382.50412 71012; 382.52512 1944094; 382.72125 23054; 383.15976 9095688; 383.26767 1260636; 383.29036 8074; 383.54384 31490; 383.64947 1647; 383.71111 22777; 383.74619 355525; 384.06375 3119151; 384.25703 4968; 384.34826 2918769; 384.3711 1711951; 384.65533 23118624; 384.91664 1618; 385.21251 22186382; 385.21455 402343; 385.21877 2143154; 385.26648 7517; 386.08127 1448239; 386.22069 1181978; 386.4187 4816725; 386.46643 37473; 386.47066 5166; 386.55895 16761; 386.56373 61361; 386.58039 1801172; 386.70481 19633; 386.74491 8879191; 386.87224 6571553; 387.12598 62485; 387.2393 28652; 387.28535 2870500; 387.36127 3699044; 387.40497 424739; 387.50557 3614; 387.52763 5360872; 387.55834 8960; 388.2095 13627; 388.29682 807890; 388.5425 5083; 388.63102 482925; 388.83563 112742; 388.88916 8693; 388.90955 1337182; 388.9435 50819; 389.67786 18134781; 389.70415 1677380; 389.82165 116209; 389.94344 5653; 390.19454 12831616; 390.55498 4205; 390.5762 21858; 391.04461 36164; 391.18198 4093; 391.2315 20752; 391.24004 67556; 391.40861 45852; 391.61688 666386; 391.65141 76012; 391.72482 3163; 391.73788 1105314; 392.00942 2982757; 392.04767 45095; 392.15161 5366619; 392.59883 9200; 392.90509 2877; 392.96416 26963; 393.21833 8708939; 393.35937 319; 393.81324 1378048; 393.82192 8275518; 393.8775 997672; 394.1436 79091; 394.21946 73643; 394.5526 1327954; 394.69423 19592; 394.78917 1115571; 394.82077 1276950; 394.91172 27771; 395.08134 53282; 395.45671 280210; 395.48527 34358; 396.01204 3127471; 396.14005 34527; 396.49822 47445; 396.60732 41587; 397.02333 909500; 397.04605 25288; 397.24715 18379; 397.51711 34667; 397.7797 1258; 397.85668 601; 398.03389 28923; 398.03667 9594347; 398.12975 3416900; 398.15837 20510; 398.22449 921321; 398.30621 1221036; 398.3815 58146; 398.44704 604956; 398.47277 44381; 398.61858 26179; 398.70479 5880; 398.74524 1921122; 398.88445 1441314; 399.03813 29303924; 399.18524 9694; 399.20645 44159; 399.66522 1588; 400.26954 28651; 400.39568 13256; 400.42613 36918; 400.44782 1697055; 400.58226 226688; 400.85234 47243; 401.17337 190619; 401.22368 27495; 401.32095 1680969; 401.32741 1726821; 401.38417 805505; 401.49833 8880852; 401.69458 12830; 401.76641 2583709; 401.76937 42543; 402.06461 3358072; 402.08047 6513; 402.0911 2967795; 402.34828 18410; 402.34882 58516; 402.41962 5688089; 402.66205 131911; 402.91312 8617302; 402.98699 4250; 403.10282 35088; 403.27167 25258359; 403.44054 57774; 403.60089 1053180; 403.7766 62746; 403.86986 819800; 404.26246 29972; 404.30696 24711; 404.65943 4125369; 405.2045 17486; 405.28408 1520004; 405.57525 1716; 405.59744 1386516; 405.62375 53782; 405.79407 308259; 406.00439 79845; 406.05617 2559733; 406.18651 1731379; 406.37731 14225; 406.53775 22116; 406.62551 108006; 406.62638 2536630; 406.97005 5187267; 407.01468 1168068; 407.24264 5984560; 407.34765 2541856; 407.73095 4246889; 407.84785 9058900; 407.90272 77931; 408.02242 30686; 408.18821 63687; 408.20855 49690; 408.214 1082658; 408.27604 2600399; 408.6614 3881889; 408.77857 23646; 408.79551 4239965; 408.81128 18099; 409.07265 1566344; 409.31128 2003416; 410.477 22548; 410.95843 27460; 411.14971 5014; 411.15017 36067; 411.30486 27669; 411.70019 21843; 411.88173 159196; 412.03234 8890; 412.04466 7456; 412.08376 187172; 412.13788 1646897; 412.22688 4299; 412.25989 49112; 412.9321 27324; 412.938 5489; 413.1839 1743311; 413.52574 3984; 413.61465 12777083; 413.66164 860107; 413.72399 58782; 414.05522 4617426; 414.26992 20208; 414.38004 23006; 414.40255 28441; 414.45227 7555328; 414.695 70947; 415.10519 1188321; 415.37416 4364457; 415.41884 3207573; 415.42972 2185919; 415.85209 4771655; 416.00525 22501; 416.21207 3653935; 416.39077 1588212; 416.4952 23044; 416.60058 7809; 417.17573 68108; 417.22216 19858; 417.43674 67051; 417.59348 4502974; 417.69853 654764; 417.75012 2944; 417.90918 49587; 417.94398 1454; 418.31031 4073; 418.38743 40384; 418.44805 77644; 418.72478 142; 418.76679 78764; 418.78279 85168; 418.784 392453; 418.8181 53325; 419.17208 1819846; 419.33029 1534785; 420.30733 936613; 420.40325 237993; 420.53198 64893; 420.57052 160053; 420.60676 2296075; 420.90205 8519; 421.02429 39004; 421.21394 26768; 421.25836 29186; 421.36071 54928; 421.69932 135575; 421.78109 885624; 421.78136 505070; 421.92561 11527824; 422.04311 9508; 422.76485 70425; 423.00641 520897; 423.1268 22182; 423.18344 72330; 423.4454 11905; 423.62874 32445; 423.76604 64778; 423.87442 1129685; 423.94941 3300834; 424.02875 2012868; 424.16374 27804; 424.18832 7017; 424.33109 21240; 424.52632 3890; 424.6944 17448; 424.78226 5051068; 424.7926 389; 425.17387 1563143; 426.04623 7702965; 426.05653 13204; 426.15424 21503; 426.2637 64210; 426.29576 23459032; 426.37446 12777; 426.45732 62513; 426.47909 1238875; 426.48773 8328; 426.54483 7999722; 427.12539 5511299; 427.31944 60; 427.46866 199303; 427.46989 12952; 427.72413 2624005; 428.58094 60353; 428.70404 1712143; 428.72883 7262271; 429.30897 1716825; 429.33051 7435; 429.35738 5621041; 429.42018 1504657; 429.48249 1925820; 429.96316 3793198; 430.00117 21064; 430.23632 381028; 430.24801 62164; 430.43722 4603; 430.48382 23119; 430.78292 4013501; 431.02754 1670; 431.04303 21366; 431.33783 848161; 431.40454 14067; 431.44192 10314; 431.50583 1618295; 431.6381 4729895; 431.80256 174436; 431.89737 54231; 432.21088 1643724; 432.23317 1852388; 432.69287 1439656; 433.00788 15908; 433.1955 13312; 433.20813 73852; 433.62748 66500; 433.93226 19816; 434.15347 1554954; 434.18431 7158855; 434.97407 20940; 434.97794 23153; 435.10888 694438; 435.1359 898063; 435.2622 244825; 435.31462 7011095; 435.49567 4983256; 435.69116 36242; 435.76903 36061; 435.90441 78532; 436.20594 5216601; 436.34164 9952; 436.54446 77849; 436.56689 49005; 436.92931 7514; 437.05226 410587; 437.08005 4456983; 437.32065 79278; 437.3526 15231; 437.56147 52847; 437.80952 914078; 437.86981 38283; 437.87018 129520; 438.29628 1521999; 438.40867 145029; 438.74697 30877; 438.9157 664023; 439.38998 20821; 439.66155 8988513; 439.82966 64256; 439.85005 48031; 439.98533 71815; 440.76417 2759975; 440.98657 27560; 441.18777 1025; 441.50991 1612114; 441.70077 27862; 442.25886 69819; 442.36096 1929018; 442.51366 8079219; 442.62167 8906581; 442.73419 5008; 442.89204 5333337; 443.06805 334563; 443.21852 1171; 443.40712 858256; 443.49301 114883; 443.61241 597469; 443.69129 31921; 443.81212 73105; 443.95034 1616816; 443.9788 73758; 444.16681 3279217; 444.32945 2191956; 444.92049 4840993; 445.13321 314726; 445.65211 4830; 445.97807 3435; 446.01483 14075; 446.6188 2016; 446.66766 28259; 446.94334 68226; 446.99127 4288; 446.99705 1435126; 447.32417 1621154; 447.35916 60964; 447.43603 63676; 447.47288 157019; 447.6996 4770313; 447.95653 1003689; 448.02637 13317; 448.16588 857944; 448.20457 3162; 448.28106 95456; 448.77681 20117; 448.82712 26580; 448.9463 8424; 448.95383 578574; 448.9989 2062283; 449.02335 138370; 449.04538 63415; 449.32623 120718; 449.34231 600041; 449.35036 33347; 449.51807 30850; 449.77457 45548; 449.83961 119646; 450.00047 4878272; 450.01227 1380217; 450.14127 5964898; 450.21499 123789; 450.47658 15174; 450.56684 23660712; 450.79517 62494; 450.89842 1497926; 450.94693 2624; 451.06678 40268; 451.10772 996; 451.54166 11579; 451.64627 111943; 451.6513 74786; 451.85066 968347; 451.92965 72937; 452.39581 7573639; 452.41259 707818; 452.70539 4470690; 453.40784 219; 453.42587 41378; 453.44357 1457217; 453.45242 22349; 453.63626 36790; 453.89896 21527183; 454.79543 32465; 454.81181 2601; 455.1597 34104; 455.23036 1387011; 455.71432 53895; 456.32063 26986; 456.62744 33994; 457.14596 1320702; 457.67748 28991; 457.69546 65088; 458.10613 22108185; 458.19766 9744; 458.58362 23625; 458.63937 2280047; 458.6416 53877; 458.67807 4338501; 458.94121 4107; 459.0422 61335; 459.09106 16703; 459.22657 2650333; 459.47041 4593260; 459.64873 6152688; 459.70602 60240; 459.73097 32877; 459.98615 4897726; 460.05573 1225019; 460.11155 66287; 460.22232 75881; 460.50774 339572; 460.79808 16147; 460.98724 4184130; 461.70671 9554803; 461.94967 781727; 462.2123 4203632; 462.35345 47054; 462.53621 24513; 462.8441 41234; 463.01715 58603; 463.09038 26543; 463.18655 182230; 463.3508 131938; 463.35193 2351; 464.02596 4170; 464.04241 841761; 464.72207 4868331; 464.74225 1685072; 464.7498 1673319; 464.86202 2282; 464.97286 788930; 465.0546 60444; 465.30988 59012; 465.31781 135385; 465.40079 166386; 465.64842 126299; 465.86532 1841396; 465.93395 165989; 466.28214 9769179; 466.70021 20024; 466.77734 16596063; 466.88162 9948332; 466.93603 965; 467.07081 8898; 467.29635 66339; 467.30015 6230; 467.40129 170035; 468.06987 188132; 468.23157 8718; 468.24141 1930307; 468.29382 1518314; 468.43863 5130350; 468.85268 53481; 468.92976 25027; 468.97387 3375; 469.06876 4435; 469.16139 4479468; 469.52851 3954549; 469.80862 1138; 469.94062 17435; 470.18951 6303; 470.25476 85744; 470.27094 38836; 471.22957 42259; 472.20941 1966693; 472.32614 27302; 472.37423 25527; 472.50742 429523; 472.91142 226596; 472.96711 1255154; 473.14727 9805071; 473.58211 72709; 473.79894 7090; 473.94629 7114791; 474.04039 136801; 474.05224 28710; 474.12986 301629; 474.24621 45073; 474.41465 5757; 475.03227 5422244; 475.37124 20365; 475.37621 591428; 475.45445 36624; 475.49923 9235306; 476.15796 6486662; 476.58019 29023; 477.16178 50447; 477.31609 6541588; 477.35913 1642146; 477.3606 168596; 477.54214 116811; 477.95956 413642; 478.16518 935347; 478.45044 62175; 478.52055 3801549; 478.70198 22065473; 478.76898 8957679; 478.91411 119792; 479.01496 116356; 479.13296 28523; 479.22564 27463; 479.36962 9775; 479.48173 9390312; 479.75144 58789; 479.78867 3168876; 479.84165 849460; 480.30731 1189762; 480.41904 958543; 480.52192 13300; 480.65252 3265809; 481.09517 74083; 481.25538 12142; 481.2573 2015969; 481.71763 22738; 481.83572 16759; 481.97614 3695201; 482.0359 97087; 482.04589 3458; 482.15409 21267033; 482.17467 786810; 482.5993 8836085; 482.67898 135102; 482.68564 37833; 483.07413 41066; 483.49585 29758; 483.6611 52835; 483.88566 751236; 484.02731 7524491; 484.13516 6760; 484.19835 2873805; 484.73484 2628246; 484.84022 881894; 485.22048 2892593; 485.31471 479942; 485.5682 68909; 485.59104 1009856; 485.85983 5317249; 485.86215 4397915; 485.8737 9572; 485.92595 19002370; 486.08137 20150; 486.23401 31872; 486.44828 763860; 486.56307 3559; 486.60554 3878194; 486.72882 5482588; 486.85328 9258; 487.35481 48391; 487.52498 27056; 487.56417 25766463; 487.64229 4474; 487.78164 4428018; 487.79908 883975; 487.8209 23943; 488.0574 190; 488.13275 4918; 488.13673 2532170; 488.19498 22432; 488.31818 8120370; 488.8851 4172978; 489.07927 20947; 489.34645 64073; 489.45243 10294166; 489.55476 70467; 489.57723 165582; 489.83245 49229; 490.02375 29616; 490.17743 28743; 490.5614 23095; 490.5678 28908; 490.87204 22602; 490.92458 53226; 491.28754 4254502; 491.53154 2219669; 491.62683 1467997; 491.93641 2998064; 492.40221 8147070; 492.44671 6501213; 492.52692 1307220; 492.53748 4201; 492.65994 75889; 492.87631 3878; 492.92418 108785; 493.19342 9005066; 493.33594 1347; 493.44231 9574; 493.4477 3227225; 493.52509 24245; 493.56066 64697; 493.65724 385182; 493.79629 3786; 494.02129 44026; 494.15145 4770287; 494.18074 2772684; 494.24029 7709; 494.59572 214913; 494.81481 12649443; 494.98205 4401907; 495.02709 5162681; 495.20889 73129; 495.21487 7280; 495.58427 44851; 495.7121 181369; 495.80688 114783; 495.96271 4302281; 496.14734 6010; 496.31404 3420553; 496.57903 522611; 496.60666 5438786; 496.6904 7341877; 496.79782 41140; 497.01621 1911598; 497.10199 37327; 497.13203 9133; 497.24845 4712744; 497.60391 396212; 497.87558 1804008; 498.15311 27635; 498.22097 7187; 498.37527 38835; 498.38733 49312; 498.4242 55365; 498.96549 73367; 499.1697 22777; 499.2268 12187592; 499.2718 4634224; 499.29827 424; 499.39435 19324; 499.81499 23488; 499.88645 3373265 +<4, 6>: 0.0857 995834; 0.32775 5631694; 0.33727 35340; 0.39001 8639472; 0.4917 8724478; 0.67662 29407; 1.58139 7764; 1.83995 64031; 2.20346 3361206; 2.2813 24783; 2.52961 1748038; 2.82657 7803; 3.08421 922; 3.34691 99656; 3.39395 24026; 3.59451 37620; 3.7135 7650; 4.24681 24260; 4.31077 46292; 4.34121 5939369; 4.37073 36201; 4.39691 270690; 4.4531 29865; 4.64802 1188591; 4.68113 3639494; 4.87994 589410; 5.02993 4881567; 5.04029 23967; 5.11204 23198; 5.23874 3784638; 5.35495 42778; 5.56575 890507; 5.7058 196172; 5.83839 492538; 5.92933 23106; 5.98411 38419; 6.02291 1297; 6.08537 32057; 7.13931 49348; 7.16484 29553; 7.37816 1382064; 7.7605 40983; 8.00004 5086; 8.28748 7466; 8.28813 15433; 8.36719 161896; 8.56056 4864; 8.77376 8156205; 8.99813 112358; 9.07591 74530; 9.47983 140909; 9.7627 8170362; 9.98233 28571; 10.06246 740596; 10.19241 15654; 10.74937 68743; 11.22547 191064; 11.38545 60850; 11.44752 983891; 11.47597 7385295; 11.50518 2385; 12.1821 8065; 12.68022 4330990; 12.70152 36175; 12.71768 36622; 12.84589 940013; 13.00123 83978; 13.10692 1821606; 13.8067 24904; 13.84418 9083; 13.96767 2281622; 14.20594 159514; 14.49274 61377; 14.64381 49107; 14.68442 15995; 14.88304 3039903; 15.06167 1566358; 15.11524 1821; 15.14332 733; 15.18366 7749; 15.2364 54463; 15.44004 104942; 15.53072 1119132; 15.94091 787763; 16.46271 117678; 16.50769 389354; 16.58715 1469114; 16.83935 61990; 16.86919 52920; 17.11071 339989; 17.57661 68348; 17.5986 1464685; 17.85599 5244592; 17.86375 87716; 18.2099 14922; 18.35547 190967; 18.37636 14039; 18.55216 2378; 18.7466 373217; 18.81278 1589783; 19.47904 857144; 19.74868 23242027; 19.75149 60352; 19.76267 71225; 19.98228 1934817; 20.12175 34057; 20.19493 142685; 20.28399 2246474; 20.63374 4202620; 20.75673 44672; 20.8847 2114845; 21.22112 34496; 21.2772 8245; 21.37297 503697; 21.49465 4267114; 21.61092 2231; 21.75695 6811548; 21.92144 41621; 22.25875 117805; 22.57567 467; 23.0291 3620325; 23.21751 9432272; 23.58906 43875; 23.62961 43946; 23.74496 27892; 23.88753 466040; 23.94073 6231; 23.96997 16984; 24.14586 18885303; 24.2187 1459075; 24.26587 2937276; 24.33413 1643874; 24.36795 1405635; 24.57083 147785; 24.60637 169805; 24.73347 1727855; 24.77468 1497037; 24.79045 41649; 24.90267 35265; 24.95797 3207669; 25.11309 1813047; 25.13807 2052; 25.25686 1719751; 25.27614 25813192; 25.54852 2781914; 25.56287 877780; 25.70921 5288; 25.70947 1520270; 25.80664 70653; 25.87173 5667; 26.09352 1225720; 26.13901 30544; 26.4111 41974; 26.44304 7187102; 26.70981 14147; 27.00055 7783377; 27.31347 2358018; 27.66534 8734; 27.7181 10455; 27.84525 1213276; 28.12952 792172; 28.60166 7784; 28.67297 3112586; 28.82055 4598390; 29.06746 1378235; 29.62476 55600; 29.63343 7459; 29.65582 108186; 29.68655 8648730; 30.03872 1559395; 30.56689 1290699; 30.67312 26132; 30.74515 6638913; 30.76307 5549; 30.88338 3919791; 30.94177 33213; 31.04132 69774; 31.05434 22820; 31.11668 1482169; 31.1665 51283; 31.47188 1539547; 31.50281 2465225; 31.58421 9284; 31.93204 3621627; 32.17403 1184842; 32.35434 6820314; 32.41518 1561640; 32.6822 1245; 33.77375 5603; 33.94026 228; 34.11879 8452; 34.1466 1273824; 34.23217 127890; 34.2368 39035; 34.46706 15921; 34.53233 5735; 34.60649 78387; 34.85334 1472297; 34.85621 61019; 34.9977 1621883; 35.30654 104570; 35.36049 21114; 35.43683 5862; 35.66035 29024; 35.86519 20555; 35.93895 9155867; 35.97521 10631; 35.98144 1291; 36.17513 22092926; 36.52778 7308; 36.76371 59208; 36.79833 25125; 37.05326 1269789; 37.36594 6392235; 37.42996 47093; 37.66929 46516; 37.73842 180755; 37.76423 2741184; 37.94705 6604572; 38.05943 71599; 38.13377 2250; 38.14572 3241554; 38.23987 32029; 38.3772 67902; 38.59299 20129; 38.75949 1476009; 39.24569 9127216; 39.60161 1133; 39.83585 2900567; 40.35131 8289715; 40.49686 26353616; 40.72111 2415734; 40.7923 3907; 40.80002 910761; 41.05813 1976350; 41.10797 18434; 41.13815 5939; 41.27512 68128; 41.45429 606459; 41.84529 4034399; 41.94482 4618342; 42.05901 1656375; 42.4065 25977; 42.59914 146262; 42.72541 64790; 42.7822 60586; 43.0823 20082; 43.08466 1515123; 43.12484 6147; 43.18572 1164307; 43.27122 27205; 43.30689 5377; 43.34292 2040; 43.45974 1090582; 43.5144 23048; 43.64972 9066; 43.76191 68140; 43.78931 4058131; 44.033 49770; 44.09454 33321; 45.0224 9401874; 45.13233 2052040; 45.15655 55469; 45.56169 4928; 45.70564 774923; 45.90202 26748; 45.99584 1133881; 46.02529 56196; 46.07731 163769; 46.0889 1538623; 46.20397 2062830; 46.23743 58275; 46.28845 9880; 46.31297 860910; 46.34667 2502693; 46.40491 47224; 47.20478 16794457; 47.23608 33485; 47.38867 1609887; 47.40128 994055; 47.48669 26540; 47.74498 1532; 47.75176 18617459; 47.89755 4707425; 47.96256 13566; 47.98697 1546116; 48.34124 9933; 48.37956 46337; 48.3935 3537670; 48.40989 1722222; 48.45793 3470608; 48.7261 1866473; 48.75832 2450; 49.43937 1786793; 49.75936 283382; 49.86636 29487400; 49.94288 33808; 50.01657 3337; 50.02868 71652; 50.09537 4607646; 50.23884 47929; 50.33332 94010; 50.40111 1892979; 50.50301 2891585; 50.9012 9441854; 50.94488 185854; 51.35228 24659; 51.53512 69912; 51.56721 51560; 51.62155 2910; 51.86507 7808; 52.05091 53406; 52.13781 15161113; 52.1867 67078; 52.23456 855490; 52.40607 4611; 52.70827 5147253; 53.06022 73919; 53.13724 4780921; 53.18467 4292378; 53.22528 167693; 53.37181 37532; 53.57731 5472; 53.91953 947878; 54.03188 1817583; 54.30129 4119010; 54.33721 46656; 54.79577 61848; 54.98116 3994010; 55.86546 3031; 55.95752 75482; 56.15694 25636; 56.32723 4919; 57.01013 73996; 57.21144 51143; 57.28634 4606490; 57.41893 12418; 57.76411 190097; 57.86088 41698; 57.97416 5520038; 58.08108 107762; 58.27316 48; 58.43506 9659238; 58.73072 1190949; 58.78069 8427637; 58.78651 190291; 58.86881 22241; 59.01131 40361; 59.05226 48720; 59.07138 299975; 59.09529 6089851; 59.35591 6607; 59.42723 700207; 59.60366 36969; 59.6681 19862513; 59.925 74019; 60.27786 2037441; 60.30666 68934; 60.56324 17099; 60.58621 19879; 60.61041 29558; 61.11213 1871358; 61.45183 933; 61.52737 24466; 61.73363 112217; 62.10518 7824997; 62.52207 1580721; 62.67116 19034; 63.01105 3413; 63.03481 487022; 63.05463 1197757; 63.1937 5363051; 63.36893 15795; 63.55461 8934268; 63.73526 1317; 64.36063 55380; 64.56163 22379; 64.90802 9239862; 64.92774 9018; 65.43433 258082; 65.74603 1224269; 65.98946 1426080; 66.14592 66175; 66.21739 835936; 66.4584 59202; 66.47049 28225; 66.62252 5760799; 66.81689 67618; 66.82114 26105; 67.12284 29230; 68.02246 995674; 68.16149 20329; 68.55656 41749; 68.64282 6930; 68.65442 57562; 69.06311 758321; 69.31437 1635427; 69.38334 147438; 69.43146 8584; 69.85668 1496696; 69.92412 963513; 70.05986 23934; 70.11771 10182; 70.43515 3585540; 70.53137 674; 70.60726 45964; 71.26641 62473; 71.60943 10067; 71.7588 269273; 72.11355 3769772; 72.19376 654266; 72.30349 20129; 72.51291 4140584; 72.54098 8307; 72.87309 23379; 72.96002 495351; 72.96568 1660; 73.1658 162506; 73.37067 20685; 73.38829 27319; 73.4639 71036; 73.52729 72742; 73.81587 125562; 74.10984 66286; 74.11062 3665831; 74.73013 25880; 74.78333 23337; 74.89088 357213; 75.28727 3814427; 75.43129 50128; 75.47319 1102; 75.5694 1840863; 76.03612 8024; 76.10133 72786; 76.19794 3246565; 76.28373 71862; 76.34312 300704; 76.41979 3352; 76.58857 1050098; 76.5954 54754; 76.7479 63946; 77.17805 4003938; 77.21074 2925530; 77.60446 7597; 77.60713 1826790; 77.81457 182388; 78.17923 57704; 78.26795 110115; 78.50191 1778326; 78.50722 78955; 79.96013 1110844; 80.38185 1746862; 80.4498 41897; 80.6714 2844540; 80.90844 2058739; 81.2285 22689311; 81.23059 8036230; 81.40602 72619; 81.41168 69065; 81.68151 75453; 81.7371 196870; 81.79664 48884; 82.07971 3669; 82.38008 3933; 82.63333 66240; 82.81136 822; 82.98957 29085; 83.12605 56179; 83.14878 7654; 83.34516 18574713; 83.49186 70592; 83.7901 45314; 83.85424 71748; 83.90609 1517334; 84.05227 235303; 84.07582 47511; 84.19517 9037; 84.20877 32311; 84.51509 72565; 84.88936 56405; 84.91426 9094066; 84.92491 28052; 85.67427 45479; 85.71222 1859906; 85.78895 64915; 86.23255 1721230; 86.32243 25981713; 86.35005 29938; 86.4019 3135365; 86.41424 842203; 86.98875 51368; 87.19127 47355; 87.3756 1177823; 87.91984 29130; 88.10802 6285816; 88.2727 3955585; 88.29483 61321; 88.35102 12864; 88.38552 9214607; 88.44993 67383; 88.68259 42; 88.75932 27488; 88.96791 40251; 89.47011 9040; 89.53418 5426; 89.60388 55677; 90.08989 29666597; 90.51825 821197; 90.5258 55709; 90.74748 7568; 90.84538 1165; 90.85678 39413; 91.18225 2041351; 91.65024 759229; 92.03264 7834; 92.34506 394041; 92.97395 9440; 93.02287 77412; 93.17379 141438; 93.24807 42517; 93.32611 9892; 93.36876 3507198; 93.85068 52813; 93.85505 25193608; 94.03202 46374; 94.05812 972126; 94.25618 8279; 94.69668 29417357; 95.01922 4092221; 95.0596 12003; 95.18321 2052; 95.54 11844; 95.7921 133930; 96.06835 66123; 96.11057 571; 96.17912 6761184; 96.3254 1648630; 96.56211 51863; 97.19739 12201; 97.51082 52275; 97.71053 51371; 97.77795 78915; 98.06581 2177; 98.1079 1983813; 98.27222 34363; 98.38582 4691144; 98.38843 6534; 98.43042 1942526; 98.47042 31860; 98.59752 1953131; 98.63851 1391174; 99.06376 22565; 99.24642 55060; 99.33967 1814451; 99.61287 18929017; 99.64209 232345; 100.00458 3446327; 100.22167 3465987; 100.26594 185791; 100.29688 2218346; 100.63643 6358838; 100.72637 6149501; 100.7386 212345; 100.74558 2593; 100.79851 1270241; 100.99156 669083; 101.28358 688505; 101.91476 1623878; 101.91958 66496; 101.93607 1499; 101.95419 8312970; 101.96059 52765; 102.01149 78566; 102.43946 78923; 102.46177 19038383; 102.55731 1389; 102.69617 6939729; 102.77417 8468754; 103.15477 1565924; 103.2868 9503; 103.61896 5689; 103.68675 22808; 104.22403 8334; 104.3033 5546; 104.31265 8762014; 104.42778 19690; 104.4786 38423; 105.08754 4887097; 105.26757 694609; 105.392 74525; 105.40883 623354; 105.45136 71609; 105.5062 61766; 105.75676 1892780; 105.76543 2452488; 105.82781 20124; 105.85953 2144; 105.94601 662112; 106.40617 803329; 106.44887 37631; 106.50661 78411; 106.58446 91511; 106.75915 34655; 106.77197 661175; 106.97353 28619; 107.18414 6744694; 107.22656 4884904; 107.31741 1556312; 107.36466 24658; 107.59416 1003448; 107.73784 78250; 107.75529 26905; 107.78064 25489; 107.81694 4965; 108.06911 11552; 108.10752 4945152; 108.17431 7756629; 108.23946 49332; 108.2506 170277; 108.25613 4405773; 108.2893 63344; 108.55609 4224576; 108.63596 4949842; 108.75776 24470; 108.93172 7971774; 109.10614 7055; 109.27049 8182; 109.7667 1326276; 109.84812 23309; 110.09283 61739; 110.10202 1090246; 110.14328 2702; 110.34631 26868988; 110.50981 450568; 110.58257 5255849; 110.59776 133803; 111.11918 27696; 111.2661 728004; 111.39146 17681; 111.52368 883677; 111.64262 30716; 111.78459 54796; 111.78712 39953; 111.99166 23356; 111.99551 27551; 112.18387 35855; 112.21461 21588; 112.39156 1266757; 112.39322 65457; 112.5693 110018; 112.61318 156344; 112.82309 179580; 113.06021 271; 113.37818 23945; 113.44254 1412; 113.47812 25536; 113.64262 113481; 113.71588 41209; 113.77748 14856; 114.40287 1444900; 114.9146 5522; 114.9986 953353; 115.10438 3087; 115.14173 886591; 115.1683 5863617; 115.17141 3899864; 115.47767 402967; 115.95348 2360334; 116.00851 9565802; 116.52114 9337907; 116.81793 26337; 116.94865 49355; 117.74389 8704; 118.29035 7975; 118.42047 81857; 118.59593 24229; 118.61303 1313672; 118.63563 7133; 118.70002 1896055; 118.7799 67333; 118.81063 36942; 119.10487 1074; 119.29579 535354; 119.51123 5595; 119.60206 3797420; 120.56744 1542922; 120.91856 704671; 121.29928 53875; 121.56817 220048; 121.71501 2254; 122.2063 3652082; 122.26494 7324; 122.2666 26997; 122.2794 241756; 122.96605 399628; 123.49191 17843; 123.60362 184713; 123.69287 38072; 123.8141 2285286; 123.85659 129363; 123.90322 75773; 123.97592 612221; 123.98129 27016; 124.03466 1695399; 124.09352 28739; 124.15733 8828; 124.67901 46578; 124.9765 504371; 125.20419 2572850; 125.48809 52034; 126.18287 69382; 126.19793 4295823; 126.29533 46915; 126.3067 307; 126.47245 5091639; 126.80123 54361; 126.85587 834931; 127.08048 186566; 127.50887 1485406; 127.87709 23407; 127.88156 36756; 128.35262 175030; 128.44892 5094; 128.62883 65215; 128.97731 1444848; 129.07443 56918; 129.43777 47412; 129.50066 8630945; 129.5143 53374; 129.52677 45956; 129.53842 11311; 129.60584 17552; 129.60919 29431; 129.73652 50419; 129.90913 23345; 130.35609 462242; 130.38745 3605660; 130.49466 4346; 130.85525 4347639; 131.41379 12640; 131.54266 1960; 131.66522 1619135; 131.74378 29253; 131.92318 732858; 131.98112 4061; 132.12549 28290704; 132.12687 27165; 132.14617 36962; 132.22711 1610364; 132.34288 3995; 132.36167 43246; 132.70147 6829836; 132.81013 9401; 132.97658 58755; 133.22608 3452778; 133.2987 6363; 133.3465 1694739; 133.3519 3058957; 133.61017 1797356; 133.68204 8288; 134.11748 38; 134.13182 2574595; 134.40238 45899; 134.49764 7299; 134.587 1197923; 134.75124 29502; 134.90184 2261; 134.90792 5964953; 134.94939 5012362; 135.85337 8958; 135.87172 25676; 136.33921 2263433; 136.54733 10151; 136.62781 8867; 136.9811 76363; 137.0777 3642140; 137.19036 45006; 137.19727 64639; 137.4638 72725; 137.73575 25646; 137.97453 24927; 138.09054 57867; 138.11387 25730; 138.25698 4999135; 138.38469 29044; 138.49661 63779; 138.61153 8730387; 138.81959 9267028; 138.84099 868674; 139.08957 4307924; 139.20923 28230; 139.24515 22411; 139.30398 1604567; 139.38668 1533; 139.5192 49172; 139.77309 4533639; 139.96715 23726628; 140.03937 1026101; 140.57645 3800; 140.60789 4431179; 140.69964 74034; 141.04985 1199183; 141.14442 22758; 141.23222 71968; 141.54428 173482; 141.80636 1127021; 142.07624 1952373; 142.12074 102344; 142.21644 2095778; 142.67514 40184; 142.74077 42604; 142.79384 52165; 143.01368 28177; 143.04191 78690; 143.06992 73669; 143.19276 24775; 143.2227 64379; 143.28054 22922; 143.42205 3386; 143.53996 66218; 143.68936 4117132; 143.71956 1441364; 144.14261 2251202; 144.2455 640443; 145.36518 66187; 145.38622 367; 145.39344 20388; 145.57018 1904434; 145.83216 28488; 146.05079 20190; 146.36403 2729412; 146.62104 3834126; 146.66313 25057; 146.91224 310302; 146.96506 5723417; 147.00537 24397010; 147.06479 1134944; 147.48756 9231; 147.58736 6181351; 147.68656 9874; 147.79577 32926; 147.98307 6373; 148.33613 14540; 148.87448 169920; 149.60936 1077563; 149.81169 845156; 150.3706 4760; 150.56413 55798; 150.87428 4784210; 150.87813 6091; 150.97511 115070; 151.04219 1969793; 151.41596 43980; 151.53148 9286; 151.76605 26790; 152.73222 2797; 153.11973 74803; 153.24313 7783; 153.41181 1693190; 153.48584 4826544; 153.63124 4239; 153.70513 1992566; 153.97382 52335; 154.09882 542130; 154.1178 64383; 154.12988 1843512; 154.15708 3226; 154.80793 9507; 154.81374 1876899; 155.1527 25333; 155.21948 330458; 155.22819 36846; 155.57793 3184704; 155.65697 63638; 155.70573 61793; 155.83605 6945912; 155.92647 9735; 156.04719 37336; 156.05151 2240333; 156.08478 113773; 156.10321 1264674; 156.22553 3592495; 156.4974 1926692; 156.91669 24085; 157.10277 140346; 157.32939 1422285; 157.38486 53325; 157.67818 873820; 157.72462 2969; 157.77097 8111741; 158.03821 5166; 158.07932 195154; 158.13578 60851; 158.2668 28221; 158.40077 24485; 158.49279 178097; 158.85008 25959; 158.92231 7075; 159.06128 51939; 159.14906 119189; 159.26957 106147; 159.41665 26100; 160.07396 27362; 160.29949 4164121; 160.32754 114187; 160.35649 419690; 160.49292 221672; 160.49837 74733; 160.66622 17065; 160.82294 12782; 160.96653 5815859; 161.11453 49114; 161.66772 8893; 161.96433 22943; 161.97553 20538; 162.77559 130076; 162.84448 28194; 162.93794 3423706; 163.28425 303342; 163.43754 8665; 163.7222 51660; 163.84569 8838466; 163.97468 1425159; 164.12581 75929; 164.18158 28236; 164.39037 1882856; 164.4881 11097; 164.52534 762597; 165.0188 5169; 165.05066 60909; 165.13146 55803; 165.17769 3168; 165.23149 9541; 165.31597 1207851; 165.32121 727; 165.4207 9412; 165.4719 1444; 165.68204 5255; 165.71646 77573; 165.78137 22225878; 166.37327 1672694; 166.48062 645317; 166.52018 20886; 166.63279 8526; 166.77077 5157020; 166.9477 57294; 166.96215 6939; 167.02621 488100; 167.10625 978; 167.20056 29667; 167.25735 495119; 167.36074 36081; 167.90944 1330483; 167.92766 55380; 167.96141 57977; 167.99535 5070; 168.15246 1715491; 168.37492 16198; 168.42654 5038; 168.49279 18797; 168.93431 7045; 169.07688 2941595; 169.38498 4838; 169.43819 1367062; 169.56667 50490; 169.62044 1216307; 170.04442 3151; 170.21332 7775; 170.50839 1410911; 170.72988 78127; 170.94301 5354; 171.08405 21951; 171.37231 1385360; 171.59835 2700194; 171.67377 24570943; 171.72951 24058184; 171.84148 111912; 171.98067 76540; 172.20653 37123; 173.02619 3352; 173.04472 25074; 173.13753 4353; 173.3679 9338325; 173.37816 3401856; 173.4145 45058; 173.51127 19267116; 173.532 28467; 173.73081 463865; 174.06272 41790; 174.07504 8811078; 174.07872 2995387; 174.20916 2302790; 174.33936 39668; 174.6158 9857085; 174.77644 1912191; 174.97187 1907823; 175.14908 53754; 175.17389 6943; 175.31005 1148136; 175.61108 4128004; 175.78647 29052; 175.96013 6076942; 176.14155 95788; 176.18426 1037041; 176.24592 36399; 176.26219 69144; 176.32366 8389741; 176.42061 5077; 176.58397 45600; 176.62098 1351; 176.63511 44508; 176.73791 20616; 176.84025 2285025; 176.87836 8929535; 176.98803 27746; 177.20186 6592314; 177.32778 73796; 177.83441 198235; 177.87253 4048966; 178.03214 6907; 178.05588 1851916; 178.2192 164088; 178.4679 7973; 178.53466 100594; 178.54001 11418875; 178.6829 84259; 179.00712 9766355; 179.31737 15015; 179.3688 6340; 179.43442 3914814; 179.45771 43347; 181.27927 1223259; 181.47975 473938; 181.56422 55576; 181.58002 152419; 181.67749 67237; 181.68996 4322; 182.60956 2084270; 182.73221 48778; 182.78148 921000; 182.88698 1180394; 183.06029 590858; 183.48058 8789584; 183.63403 7599039; 184.1292 4268612; 184.19155 1193005; 184.31291 43612; 184.51526 3454; 184.96589 8320; 185.21789 98135; 185.39497 70313; 185.82962 58670; 185.96866 42398; 186.40787 1391480; 186.41251 3967187; 186.53021 28630; 186.54066 187729; 186.72224 51468; 186.84287 33156; 187.03611 5731; 187.39915 2133903; 187.54831 28384; 187.62294 728; 187.71267 2547; 187.71516 1620; 187.94971 42695; 187.95806 2361; 188.26912 1467263; 188.40626 120312; 188.4398 3986420; 188.48548 99825; 188.5079 8272; 188.53241 4231824; 188.67011 17621; 188.98363 6468; 189.12594 41572; 189.30066 890110; 189.30824 3779; 189.53979 7997049; 189.90487 37807; 190.32877 4480369; 190.32911 1892833; 190.35462 596118; 190.95592 500; 191.02803 8674; 191.20237 18784; 191.30289 3589306; 191.33493 43713; 191.42299 3888900; 191.48288 2146624; 191.51997 32404; 191.57524 1649067; 191.61071 6547; 191.86793 33213; 191.90844 229770; 192.05561 9113849; 192.51111 24164; 192.7293 45242; 192.80297 14429; 192.8075 4333571; 192.82284 207725; 192.92326 24525; 193.333 24515; 193.60548 3325; 193.81861 46368; 193.98749 68095; 194.01526 1290662; 194.05812 65604; 194.07201 41660; 194.22406 27533; 194.27453 3443357; 194.33481 609; 194.41946 4765046; 194.59679 4508375; 194.71984 55232; 194.92787 155517; 195.05873 699; 195.12943 65536; 195.25047 5820143; 195.38015 8166616; 195.53043 644979; 195.64716 25806; 195.93353 6398092; 196.12562 41415; 196.2967 1162177; 196.34431 9692964; 196.37996 74819; 196.5957 3840199; 196.6791 70986; 196.98674 57265; 197.02372 1953629; 197.04148 3384769; 197.0439 20164; 197.17481 76177; 197.70716 451272; 198.39212 3984; 198.57331 7170; 198.65847 7259879; 198.87234 1117741; 199.11699 26414; 199.32511 60174; 199.80052 175154; 199.83873 1194781; 199.85767 2462558; 200.06298 22555; 200.13652 36807; 200.19547 367989; 200.68006 1986379; 200.95345 8174670; 201.2774 2017; 201.36032 668016; 201.51708 1444; 202.11774 9982; 202.43974 26329090; 202.47042 26694; 202.61429 7777; 202.71481 8239; 202.99447 4030; 203.42565 816968; 203.4598 206571; 203.58693 20055; 203.69712 451; 203.92678 5334; 204.37624 26440; 204.5532 75827; 204.88026 59846; 205.12398 4211496; 205.61418 51457; 205.63805 61130; 205.92892 1742341; 206.44475 269023; 206.67268 108452; 206.71693 54631; 206.89602 1594464; 207.34479 45732; 207.54189 23171; 207.91033 3347; 207.99401 3841848; 208.12778 482274; 208.3109 412817; 208.34944 14754; 208.48884 35566; 208.77763 47723; 208.89876 22868; 208.95605 55490; 209.03782 3528992; 209.0442 69389; 209.45244 3471587; 209.65239 663544; 210.01826 112133; 210.06673 324614; 210.15747 1298767; 210.35019 1412370; 211.08888 15322022; 211.42301 45630; 211.48126 151978; 211.51444 13194; 211.63117 78999; 212.47288 1042310; 212.70387 9849; 212.8707 39143; 213.05029 25529195; 213.11727 1441977; 213.49741 2132324; 214.24742 28977; 214.30219 1278650; 214.42561 190313; 214.67391 35523; 214.72029 3705; 214.8332 1489596; 214.94143 6786313; 214.96606 9016272; 215.08775 1631349; 215.14875 22962; 215.15345 79460; 215.23793 1010109; 215.36774 6223540; 215.44909 4129; 215.60972 12185; 215.73123 5955402; 215.8158 11923197; 215.88505 645281; 215.90628 70910; 216.04132 5514257; 216.902 516139; 216.92212 38317; 216.92772 8073270; 216.96248 66840; 217.51808 44687; 217.76279 699113; 217.76404 890; 218.01709 63064; 218.05788 170883; 218.07005 4277; 218.11319 29672; 218.12028 83915; 218.33541 1799; 218.84545 22190; 218.89526 55764; 219.16262 29915; 219.27418 36443; 219.27419 1874733; 219.29969 23975959; 219.63588 27961; 219.70697 1247308; 219.76453 78641; 219.89239 41434; 219.97857 25424; 220.00796 2052; 220.12846 396845; 220.5433 1263670; 220.61505 71745; 220.65818 7700; 220.98694 5834376; 221.25876 4310636; 221.32922 76164; 221.44887 71818; 221.51714 507685; 221.66092 30157; 221.70786 48025; 221.91109 21514752; 222.13268 898736; 222.63492 3285; 222.76132 1775417; 222.96115 45934; 222.98936 3095272; 223.16248 6378; 223.54899 31996; 223.64374 15022; 223.79373 5236200; 223.84507 72853; 224.05254 31944; 224.3096 66012; 224.42356 25322; 224.51287 1853672; 224.51511 55928; 224.57245 1639957; 224.58449 21082; 224.85192 12900760; 225.15693 6639007; 225.27943 2932243; 225.37212 26908; 225.44609 1547984; 225.47155 56905; 225.84571 3208744; 225.99321 23664148; 226.0529 12539; 226.07941 1147851; 226.21988 126561; 226.3928 204255; 226.41177 196615; 226.45838 58241; 226.61875 30865; 226.6191 42139; 226.77725 2990635; 226.86204 170641; 227.00466 15536685; 227.03909 182699; 227.52775 1023847; 228.04787 3198579; 228.05605 189409; 228.06985 8938; 228.21142 77020; 228.47541 1154993; 228.51532 38133; 228.71514 967583; 228.85414 11860071; 228.94287 21816; 229.06659 46828; 229.15589 77636; 229.1563 55788; 229.1626 3938; 229.26467 46385; 229.4418 79398; 229.44667 48744; 229.49399 155044; 229.51215 8908535; 229.51383 65651; 229.54625 1994778; 229.75843 7521; 229.84275 6520; 229.88669 37086; 230.25518 43667; 230.28871 3866; 230.42588 9919; 230.58925 2818; 230.8602 3841909; 230.95656 28611; 231.17956 2515395; 231.49598 54926; 232.39761 79188; 232.6701 917369; 232.70576 537686; 232.72113 1773; 232.77157 13272; 232.84899 1985145; 232.88295 584; 232.90777 9046977; 233.03613 43569; 233.08572 250494; 233.1226 1551636; 233.12433 17635216; 233.2163 29647329; 234.06593 1807455; 234.07869 75862; 234.16442 8817412; 234.19635 57285; 234.37939 25610; 234.38492 26878; 234.39149 54778; 234.48068 62969; 234.51046 761393; 234.68498 2664; 235.08322 126094; 235.1032 1128664; 235.1584 932140; 235.22008 801374; 235.26745 9258; 235.38938 7030233; 235.47048 25125158; 235.50557 27221; 235.85197 17646; 236.20603 120991; 236.24047 9062821; 236.48538 1769096; 236.84064 9849142; 237.31174 4612; 237.48009 134866; 237.60706 50537; 238.12241 11872; 238.54178 26423; 238.59967 736690; 238.7951 814429; 238.93115 38218; 239.1677 41941; 239.32957 2301823; 239.42853 3845653; 239.52241 18417296; 239.58339 1907499; 239.71127 28746661; 239.79821 41363; 239.95511 1871877; 240.00791 755691; 240.08344 26880399; 240.09198 4486334; 240.12734 3412419; 240.88254 114864; 241.20444 22764; 241.20843 43646; 241.48581 1026473; 241.54713 23386; 241.7672 8879352; 241.77338 146493; 241.85382 84885; 242.79511 78236; 242.91703 69858; 243.26663 21242; 243.34405 4718; 243.8183 29803; 243.92997 6270416; 244.27746 25605; 244.65488 57257; 244.70727 569113; 244.86652 773822; 245.29803 109564; 245.45966 59121; 245.60906 4868; 245.90844 1699757; 245.96926 41843; 246.02824 133191; 246.0464 75113; 246.17397 45990; 246.22049 2814; 246.57345 1318118; 246.78384 73726; 247.40789 8265372; 247.48385 9572; 247.73893 72960; 247.78669 33976; 247.80572 75629; 248.04287 7025430; 248.16612 127089; 248.34567 425220; 248.44602 73547; 248.90586 4554; 249.00725 10269140; 249.12255 37614; 249.50752 29395493; 249.56021 25717210; 250.01499 2206858; 250.80588 3951; 250.90408 29757; 251.03556 79612; 251.23863 960471; 251.47007 27457; 251.71697 565497; 251.9169 19859973; 252.11734 3291522; 252.56218 1978801; 252.91872 659969; 253.45565 665866; 253.47881 33837; 253.49033 64486; 253.61728 68583; 253.66493 26258514; 253.71831 522526; 253.83861 2862412; 253.93723 4570; 253.95768 4591468; 254.32762 6813; 254.46959 197125; 254.4843 10250; 254.52216 7470; 254.98004 18038; 255.24065 1780973; 255.65685 26003; 255.65916 4019; 255.79735 28632; 255.99147 11346; 256.49039 7901; 257.03501 25611; 257.0847 8719; 257.31008 833837; 257.33966 8359779; 257.58044 29619265; 257.7611 1021511; 257.9513 1754248; 258.12538 6878; 258.21026 128381; 258.29098 2673; 258.61584 2987; 258.82809 1341354; 258.94931 63846; 259.1059 21561; 259.11011 663996; 259.27009 6649282; 259.45591 68603; 259.49688 5383; 259.57285 46223; 259.79008 162098; 259.80838 74948; 259.90777 2009143; 260.04699 74972; 260.09384 7983210; 260.2114 27124; 260.40024 9712; 260.56073 136783; 260.70367 12253; 261.01954 1448820; 261.36703 8852; 261.58698 8121; 261.6808 27777; 261.72771 444269; 261.84509 40407; 262.01395 20112; 262.15377 63662; 262.3479 1303355; 262.36105 1481539; 262.43338 2056; 262.53314 7284063; 262.57989 29414; 262.60534 843; 262.62562 7958087; 262.62722 714890; 262.65003 3644941; 262.69659 180833; 262.83476 71618; 263.08328 57211; 263.08717 5681785; 263.27496 1182878; 263.33799 38176; 263.57325 24020; 263.71051 148752; 264.05281 25445; 264.07561 1417113; 264.10011 16595; 264.26828 21312; 264.4343 1221934; 264.58171 7749174; 264.60613 1704829; 264.75864 29209; 264.97091 125887; 265.27798 9588; 265.33485 68590; 265.34643 31368; 265.36414 4949; 265.43025 91715; 265.45848 44528; 265.47378 36201; 265.55356 45197; 265.793 53111; 266.03835 3434191; 266.44679 4814685; 266.68088 820695; 266.74022 23085; 266.96428 4137612; 266.96844 193; 267.21546 1075093; 267.25802 38; 267.38876 34280; 267.59257 32158; 267.59439 2315517; 267.67351 860475; 267.806 5715662; 268.18681 677; 268.47686 67337; 268.64279 558221; 268.68772 9135612; 269.03993 1921612; 269.26945 1596513; 269.42628 288055; 269.53127 34233; 269.67728 63211; 269.7091 23836; 270.55965 67394; 270.79948 13258; 270.84961 435660; 271.01861 65026; 271.18078 67924; 271.19147 27798; 271.20954 7082797; 271.55572 81700; 271.58158 32731; 271.70455 29759; 271.70911 7947; 271.87902 460920; 272.03282 9279; 272.05352 1248; 272.06247 12523; 272.17472 24803; 272.2374 1968156; 272.37965 29355; 272.39562 3369; 272.39581 20946; 272.59663 1171316; 272.71067 34929; 272.9702 23916449; 273.24513 68212; 273.47592 9883300; 273.48325 53869; 273.49249 5213374; 273.70802 2449; 273.82886 4682701; 274.09552 1384; 274.11757 25825; 274.60986 7786269; 275.35515 91935; 275.69799 1917996; 276.03312 42150; 276.08781 77539; 276.10507 5283478; 276.15628 38949; 276.56358 126703; 276.81408 7758142; 276.8249 14004; 276.83936 3311787; 276.96896 29891715; 277.08885 47176; 277.39777 71587; 277.41097 3288405; 277.42959 48493; 277.52585 7521; 277.5743 28103; 277.91381 358493; 277.95367 30272; 278.24666 1414461; 278.61863 9810882; 278.61906 4591578; 279.34461 8138; 279.67453 21398; 279.70648 12140; 279.74709 2901608; 280.05618 44618; 280.08628 30100; 280.17242 1937079; 280.41057 55837; 280.58999 2471647; 280.76403 1833513; 281.12369 47733; 281.17394 13930196; 281.23935 918948; 281.66005 5926; 281.67641 6104162; 281.74523 29818; 281.76026 1968746; 282.3139 23561; 282.79465 4396935; 282.80543 77960; 282.80913 52635; 282.89487 28146; 283.00136 39064; 283.05634 23772; 283.37623 167005; 284.01373 4878; 284.02842 29409; 284.2161 1071808; 284.44741 174158; 284.51235 2352; 284.53312 25825025; 284.60512 49030; 284.66779 29670; 285.20769 7221027; 285.25265 20441; 285.42704 9061793; 285.62104 3763; 285.71238 66086; 285.77383 38038; 285.77514 3176456; 285.91646 55634; 285.97079 192132; 286.01102 58261; 286.30645 4035001; 286.3377 3112; 286.50546 5034460; 286.78239 11645; 287.04641 55449; 287.10394 28903526; 287.47863 46967; 287.661 4485876; 287.93326 1458246; 288.09846 70648; 288.16248 1918636; 288.29626 9990; 288.37028 146682; 288.4363 6340; 288.43646 12035; 288.74049 163950; 289.04778 4240050; 289.14897 24444; 289.24144 4077663; 289.41791 1479753; 289.55898 5997442; 289.71603 3057794; 289.92631 84213; 290.00726 27876; 290.41627 37809; 290.71447 23660; 290.81611 3575007; 290.82777 3325; 290.87813 397064; 290.91524 75379; 290.92787 23232; 290.99906 19395; 291.5003 2229074; 291.6776 999021; 291.72828 1965155; 291.83688 76029; 291.95887 75988; 292.10048 1593; 292.1645 57019; 292.343 140893; 292.34948 8225; 292.59958 13148; 292.69725 7457935; 292.72599 1522805; 292.78452 2306226; 293.40686 9845532; 293.42605 51819; 293.61907 25905; 294.10787 3702399; 294.13335 98069; 294.16553 81290; 294.63246 4497754; 294.66959 5382170; 295.03594 682490; 295.12251 111700; 295.18427 1274299; 295.18884 2326; 295.19111 20454; 295.26747 1350191; 295.26924 164808; 295.38067 70188; 295.42143 63757; 295.60589 5919003; 295.66299 4472871; 295.69529 3359162; 295.77663 8497272; 295.85171 69501; 295.86872 68971; 296.33759 32529; 296.63541 154561; 296.65711 5240; 297.41352 69079; 297.79851 8142065; 297.83912 2711922; 297.90002 41877; 297.94265 6002224; 297.96828 914777; 297.98473 30701; 298.15759 2156362; 298.62573 16151; 298.78808 37085; 299.17263 3319; 299.30561 37310; 299.36104 2121807; 299.41897 37202; 299.54557 2895; 299.60584 6743087; 299.62488 41248; 299.66991 1761476; 299.68308 2220; 299.75973 238406; 299.7834 23954; 300.2889 3575739; 300.29911 18256875; 300.54913 6553140; 300.7693 865471; 300.95685 42187; 300.96875 788291; 301.05467 76690; 301.18509 23736; 301.38334 3776; 301.45463 14231495; 301.67984 59840; 301.8582 44996; 302.12877 1476808; 302.13065 3396194; 302.16331 6608906; 302.3988 22904; 302.61146 9068; 302.6724 3479299; 302.91117 74190; 303.24348 47124; 303.33782 29518; 303.46192 50237; 303.9681 54054; 304.25176 1604766; 304.26242 2869365; 304.2721 8881; 304.81964 818810; 305.02095 22221; 305.11316 25993595; 305.29509 6736; 305.33433 22903; 305.57311 31892; 305.58311 386075; 305.64657 1584165; 305.77285 9690; 305.82961 24911; 305.90838 5262; 305.91248 6581; 305.95044 44291; 305.9633 6826; 306.13142 7254732; 306.41738 11641474; 306.53285 10290; 306.61626 36464; 306.68591 75037; 306.71826 9530890; 306.82303 104049; 306.83484 1156287; 307.01252 4526; 307.02659 3559204; 307.12731 28697; 307.15591 4623346; 307.81023 795062; 307.84957 40825; 307.91889 762189; 308.04221 67657; 308.0525 50433; 308.25371 1764593; 308.28395 174114; 308.32681 20890; 308.75818 537704; 309.07804 142446; 309.3061 54831; 309.34286 3442782; 309.39954 4782106; 309.53494 684291; 309.68633 585407; 310.1025 11241; 310.11573 7802; 310.18777 34695; 310.30754 60747; 310.34574 8103137; 310.54424 2515; 310.59691 6992301; 310.69612 68031; 310.77887 16693; 310.88195 26706; 310.93441 9180; 311.64507 928; 311.66738 4520786; 311.79158 9459; 311.94078 64479; 312.26679 952335; 312.57863 26049; 312.58991 1611114; 312.67532 13638542; 312.79993 9527949; 312.88642 17543; 312.93451 32082; 313.14137 1794049; 313.14158 51505; 313.21271 9967424; 313.80793 4414; 313.91427 1520350; 314.08927 27700; 314.11823 1627515; 314.13695 25659; 314.34608 65094; 314.43499 7769; 314.58648 22440; 314.59932 1375360; 314.77336 1621562; 315.16699 3916990; 315.22855 7884043; 315.30064 842277; 315.32084 3706595; 315.36838 8310; 315.5095 33634; 315.63465 1624341; 315.794 43552; 315.80579 60332; 315.82958 27828; 316.00306 55395; 316.30147 26245; 316.50649 131762; 316.5427 1157355; 316.64797 749369; 316.71187 4619; 316.9116 1090431; 317.12439 2187828; 317.15847 1227826; 317.35684 8978759; 317.40048 2596360; 317.44578 5969101; 317.93171 57807; 318.1726 308686; 318.30424 26814; 318.48299 8569; 318.5369 17436; 318.6943 40827; 318.89552 3925932; 319.10183 4650942; 319.1039 3925287; 319.27772 130648; 319.5463 1319471; 319.6341 483222; 319.76678 22522; 319.98753 31699; 320.06434 1387556; 320.81147 9437711; 320.95289 6611659; 320.9895 1627951; 321.18179 9348806; 321.32561 6002; 321.36257 95432; 321.43877 1438315; 321.52005 81716; 321.52907 21139; 321.61838 46486; 322.04274 66679; 322.08018 1880207; 322.28732 4074; 322.3602 1456486; 322.37647 8390; 322.52862 1912; 322.63992 1860; 322.71609 1190657; 322.94097 1681319; 323.00171 22018999; 323.02269 896566; 323.05698 1807362; 323.23717 3563; 323.58929 3682430; 323.66717 31161; 323.74646 14617; 324.21667 61981; 324.23694 61532; 324.36281 24047622; 324.56673 17593; 324.93105 10802; 325.27206 4635229; 325.31783 790759; 325.55366 5674; 325.65814 3024693; 325.996 586104; 326.20755 4742986; 326.46117 19133; 327.01273 71865; 327.29569 5213964; 327.383 717; 327.41474 6882518; 327.49238 1528246; 327.52023 83514; 327.61105 3758598; 328.14141 7285890; 328.49285 2312008; 328.61665 6132626; 328.98206 41536; 329.01007 322755; 329.10638 163826; 329.33999 73831; 329.40985 3405; 329.41175 25429; 329.50144 21007; 329.90986 1733310; 329.95716 84545; 330.13344 9262; 330.33393 3369328; 330.49354 23854581; 330.5075 48859; 330.83585 8350931; 331.24634 2381859; 331.59362 487004; 331.7703 81256; 332.08262 179716; 332.1709 122397; 332.2783 1807; 332.85548 2752039; 332.99161 9568924; 333.28683 25006; 333.35434 827325; 333.50776 195448; 333.70208 74578; 333.71699 24245; 333.86771 31211; 334.75253 75680; 334.85535 2487319; 334.95479 30393; 334.98158 2860917; 335.0768 6143656; 335.23943 4124260; 335.36453 1356063; 335.58324 1748005; 335.67974 3563487; 335.98037 72191; 336.36823 22825; 336.44618 1825088; 336.62361 3620; 336.79698 1731733; 336.80951 1919527; 337.07981 1785; 337.22889 53094; 337.27964 10631422; 337.3323 7299; 337.60446 43006; 337.81348 4925204; 337.90047 705397; 337.92672 6286522; 337.99516 6205752; 338.344 50608; 338.38015 329617; 338.43441 7995065; 338.53991 3787947; 338.74022 23857538; 338.89157 167816; 339.0966 77215; 339.10905 45510; 339.27796 3452071; 339.36475 29214; 339.4707 14085; 339.52144 3735; 339.53259 582841; 339.66718 25016; 339.81049 179918; 339.88115 663227; 340.01109 1192; 340.40754 6410; 340.44752 66206; 340.45839 46925; 341.00646 9854; 341.40528 4426; 341.55831 757136; 341.56793 1271490; 341.8474 32081; 342.16185 8814; 342.58018 28412; 342.58168 25570; 342.58762 7057; 342.91563 3565; 342.93879 29757; 343.25805 2386468; 343.51609 73747; 343.52946 6596; 343.73591 4087637; 343.92512 2093184; 343.94948 4450; 344.00366 2316837; 344.35641 120; 344.39115 23377; 344.7729 1743254; 344.79023 469869; 345.00004 79560; 345.1197 28487; 345.22204 13909; 345.47703 27742678; 345.889 26295; 346.02671 7772339; 346.07422 41914; 346.21194 3031; 346.4047 2399999; 346.61694 21216; 346.64195 19636; 347.06263 22800; 347.09829 166288; 347.30342 108759; 347.32861 17360; 347.35102 1663315; 347.52976 8617448; 347.70043 1956836; 348.35359 1942238; 348.37296 25200438; 348.71142 26554; 348.72131 30820; 348.72426 34279; 348.86618 5328; 348.87524 1070; 349.13821 9442; 349.21203 37735; 349.50783 40956; 349.60248 8076; 349.96597 4110434; 350.04219 49135; 350.19641 1602895; 350.21991 5183940; 350.33372 791052; 351.15531 3374119; 351.62793 36579; 351.8646 1027275; 351.91396 290; 352.2532 29910; 352.32076 27982; 352.41877 79794; 352.4933 4132684; 352.51437 723232; 352.62877 6937891; 352.93681 22332; 352.98257 18930; 353.01579 42968; 353.04942 78230; 353.25136 9770; 353.37108 827415; 353.40481 15607507; 353.43455 4217932; 353.48177 8956; 353.65 28924; 353.80819 449947; 354.29658 24076; 354.31576 192760; 354.47048 28866; 354.69523 5481; 355.03475 60353; 355.27484 570042; 355.3144 1185196; 355.34002 704178; 355.43716 18669002; 355.44236 1398488; 355.74371 5816; 355.76928 6329151; 355.80918 73653; 355.89474 14583997; 355.89972 1092568; 356.1451 6974; 356.48441 2978; 356.4904 636043; 356.79491 21383846; 356.84637 1566743; 356.99203 190852; 357.05849 3282649; 357.86197 67428; 358.1027 1109465; 358.27272 161185; 358.29065 106174; 358.54498 6366248; 358.64727 1538398; 359.33658 12565; 359.34653 30197; 359.49381 6466; 359.52747 11796; 359.74384 48262; 359.96833 133241; 359.99262 141653; 360.04161 573577; 360.30028 61911; 360.40484 67552; 360.68399 20939; 360.78459 47885; 360.93912 1903418; 361.15518 116395; 361.17828 29842; 361.33505 27238; 361.44484 20419; 361.81368 1401990; 362.08102 38971; 362.40048 1044177; 362.55314 47683; 362.56416 3597; 362.69123 332889; 362.8138 67290; 362.82226 1290760; 363.56978 636380; 363.69982 446244; 363.76842 375173; 363.78842 4730325; 364.15741 58193; 364.60801 451599; 364.80177 73327; 364.80992 28580; 365.133 13382; 365.13753 53336; 365.13896 751482; 365.33963 79750; 365.78141 34685; 365.90284 460169; 366.14673 6237095; 366.41524 17709; 366.63698 23102; 366.99656 27722; 367.00072 52602; 367.23501 70840; 367.28918 39; 367.42007 40118; 367.57618 8454859; 367.59909 21476; 367.9688 23873; 367.97834 71598; 367.98398 319844; 368.14193 46175; 368.37646 29578539; 368.56708 56012; 368.8045 192; 369.1262 4778890; 369.159 599; 369.27806 17203901; 369.29814 2022907; 369.39562 24133408; 369.63337 48283; 369.7661 7609; 370.6592 7581722; 370.84863 1552; 371.01509 28994; 371.24019 71413; 372.06626 35908; 372.3727 9800862; 372.39135 7595588; 372.46614 19065; 372.52034 811039; 372.80143 26660; 372.92792 104714; 373.26729 140515; 373.34482 3942; 373.39116 14950; 373.9159 6892268; 373.98393 3257; 374.56293 1504694; 375.18162 44943; 375.21705 42939; 375.35719 935790; 375.79218 72026; 375.8267 172671; 376.35358 72628; 376.62187 1607137; 376.80121 35660; 376.8128 27535; 376.92047 5836976; 377.02824 1703415; 377.03452 4727093; 377.13158 3270922; 377.13704 421341; 377.2673 23197; 377.33046 4639460; 377.54833 128977; 377.55131 169903; 377.63564 28764; 377.69566 27644374; 377.98675 184625; 378.19048 76453; 378.43679 8975; 378.47256 24336; 378.59224 170233; 379.09167 16870; 379.60791 35007; 380.22727 7309287; 380.57249 2816733; 380.61979 2821586; 380.97878 28339; 380.9911 1349852; 380.99183 1427820; 381.06807 43117; 381.48107 1228719; 381.58487 88076; 381.68453 6557; 381.8181 1685580; 382.47038 4991796; 382.52558 3340178; 382.56249 13939; 382.72826 67733; 382.80367 23475; 383.03059 78991; 383.08579 64117; 383.32165 27737; 383.64715 9073; 383.81273 53631; 383.93346 46295; 384.14568 199084; 384.21188 31753; 384.29776 25596; 384.56123 57077; 384.62708 4758258; 384.67661 2647448; 384.76114 9467416; 384.9641 163145; 385.11302 27004; 385.25198 1448054; 385.82026 2980; 386.04043 8578; 386.16586 2206839; 386.16714 26331601; 386.18704 45852; 386.68508 238015; 386.70613 79387; 386.75107 6509698; 386.79461 6724; 386.83128 1282809; 386.94455 2489290; 387.30248 4448485; 387.48266 8594; 387.57094 22478987; 387.9034 54687; 387.96937 102940; 388.91374 1020144; 388.92962 528040; 388.94055 147922; 389.03754 148396; 389.06783 77161; 389.09114 1453309; 389.12626 69158; 389.35358 21450511; 389.58958 769514; 389.71556 4446; 389.77886 7983478; 390.01835 77149; 390.05965 1394; 390.0995 54133; 390.10243 756329; 390.29199 21637; 390.31368 39526; 390.35168 6081; 390.63751 664293; 390.72165 25864590; 390.96564 1215080; 390.98493 1003918; 391.12625 22906; 391.2204 8303; 391.23659 862326; 391.38242 22450; 391.53207 61326; 391.71173 15424090; 391.9581 23532; 392.00199 9996; 392.05387 72349; 392.09711 3977507; 392.59469 636286; 392.68548 8548170; 392.76536 1190; 392.86826 117430; 392.99323 31025; 393.00686 8172131; 393.05397 2716527; 393.17981 25585; 393.24092 1117183; 393.26285 247568; 393.71837 8834; 393.796 14726; 394.46293 702204; 394.67929 27106; 394.797 112232; 394.92272 9337999; 395.07565 9017; 395.1289 69702; 395.19597 76242; 395.47589 473891; 395.54514 64530; 395.75789 4795; 396.28943 68091; 396.65656 9306470; 396.6905 1470479; 396.72369 3879152; 396.79097 154960; 396.85635 24194300; 396.87784 49172; 397.42131 27265; 397.48156 5588; 397.55038 45983; 397.75903 111874; 398.0761 20877617; 398.17849 126188; 398.48769 46182; 398.57328 1552831; 398.58797 73349; 399.06049 1653959; 399.15765 5871; 399.231 24059; 399.33973 116197; 399.8674 75812; 400.05544 29926; 400.55168 1000606; 400.64997 3825337; 400.75836 11950; 401.07686 27495; 401.83408 782628; 401.836 4659524; 401.89572 6745; 401.91202 3309; 402.01665 19468; 402.19268 5936784; 402.21436 355795; 402.49409 4774; 402.90474 1792706; 402.9127 3641; 403.18592 28406; 403.24438 52060; 403.32446 2090075; 403.40716 1249232; 403.44182 983232; 403.9323 1192637; 404.99381 70815; 405.03274 9761846; 406.27635 24198; 406.68612 18694; 406.89775 3175; 407.66543 179478; 407.76696 40778; 407.81214 3616; 408.0785 2989918; 408.35946 53037; 408.36128 4656; 408.40263 29868; 408.52522 152053; 408.62722 36076; 408.68673 46080; 408.9575 885566; 409.0364 5864; 409.08921 26299; 409.09756 1659; 409.12509 1204869; 409.40402 929; 409.61223 487592; 409.96073 3630479; 410.03257 1647053; 410.31602 29153; 410.35781 108412; 410.7915 69859; 410.99984 7500137; 411.15235 49614; 411.17762 4330; 411.18982 135897; 411.19289 2948; 411.30348 3191730; 411.38273 52846; 411.7149 21005; 411.75817 113236; 411.77562 116229; 411.84426 40535; 412.1063 38307; 412.34933 50866; 412.39033 11773; 412.56028 7492; 412.59382 73598; 412.775 27540; 412.88572 35068; 412.90781 2097273; 413.02497 561235; 413.36886 1698481; 413.55435 3098173; 413.6454 1578909; 413.67942 24736; 413.69585 53771; 413.72937 23692; 413.86499 42143; 414.15409 77233; 414.43137 1290611; 414.74494 367837; 414.89128 2819; 415.23993 552082; 415.45967 7862; 415.63785 29005; 415.6945 2964233; 415.91427 4801562; 416.18092 6566; 416.35587 6422345; 416.42735 4299; 416.43853 4925; 416.51863 56643; 416.68031 2069; 416.77942 3600; 416.89934 35978; 417.04064 1979678; 417.05401 918530; 417.16453 5698; 417.37126 9797426; 417.65539 1630081; 417.90166 24844; 418.01893 3231293; 418.21174 894783; 418.28461 680295; 418.61989 2961155; 418.63426 11424; 419.05934 458440; 419.19262 2539; 419.42106 394521; 419.65352 1393; 419.69648 6681199; 419.93396 622396; 420.18458 53303; 420.54295 77102; 420.60586 27951; 420.61876 175725; 420.63 2546; 420.85075 1200894; 420.90376 2014659; 421.12963 13367; 421.17571 1740916; 421.31362 8920270; 421.33068 7831028; 421.34682 35731; 421.5988 59906; 421.6624 20789; 421.81037 7755; 421.82788 4713; 421.95971 529119; 421.98203 50392; 422.2258 37970; 422.27854 7423100; 422.31243 3699; 422.90136 304967; 423.23029 2089; 423.40525 6858; 423.55507 6337; 424.15649 23014; 424.48943 5143730; 424.51965 4455; 424.59884 11828; 424.64938 64982; 424.7068 976242; 424.75767 8864; 424.92418 37474; 425.1859 1031031; 425.198 71812; 425.29012 1633; 425.47392 4699031; 425.66318 3976335; 425.80809 1680082; 425.81631 647541; 426.07951 3682; 426.54547 80851; 426.71018 108598; 427.09674 41628; 427.14169 724641; 427.37948 78885; 427.61294 2976; 427.64341 6657134; 428.18288 2626428; 428.34833 10172; 428.4006 1992466; 428.61398 25895; 428.73268 8903002; 428.90224 996933; 428.94766 4779; 428.948 34798; 429.18561 6770; 429.22845 1061396; 429.69208 2760225; 429.7209 1236109; 430.03398 1901638; 430.08029 8693; 430.64289 305827; 430.66618 3683144; 430.70671 657804; 431.22413 7195762; 431.76092 39082; 431.78165 20232; 431.96889 6632; 432.01541 524448; 432.09176 21595; 432.19423 38282; 432.21854 7695; 432.376 5763; 432.59531 21345; 432.61572 2075264; 432.61776 1179691; 432.62039 157121; 432.64688 2537184; 432.78647 27840; 432.9953 6699947; 433.01293 712426; 433.11763 3631; 433.1244 5782049; 433.28281 65389; 433.40776 61484; 433.51221 2399383; 433.58181 15221; 433.58464 29989; 433.74478 995730; 433.77493 24479; 433.82744 13739821; 433.82764 57574; 433.83257 247037; 433.94582 46403; 434.04326 59726; 434.20566 35995; 434.26099 79882; 434.73913 15674; 434.89011 3310; 434.94707 27370; 434.96805 300961; 434.99501 12721924; 435.01212 110016; 435.032 71611; 435.1884 7444; 435.61367 65299; 435.86743 15917; 436.12585 77668; 436.20151 28496; 436.49558 12107; 436.58968 57278; 436.66786 3343996; 436.80066 174940; 436.99581 47473; 437.1353 2463; 437.31285 183167; 437.36936 51905; 437.45765 4843; 437.70605 2291; 437.93233 93097; 438.10985 71046; 438.23259 1280513; 438.30913 58893; 438.32493 46386; 438.53553 631644; 438.63572 2632491; 438.85321 51650; 438.88277 2687570; 439.0487 36338; 439.0847 9038; 439.67036 150633; 439.75137 3337829; 439.97972 135658; 440.2905 20214; 440.73034 14171; 440.73842 4238292; 440.9368 1991141; 441.19826 1918478; 441.22792 15611; 441.62582 309056; 441.64169 22526; 441.67078 6774863; 441.80579 6057; 441.87219 15283; 443.06788 14322; 443.22492 10782238; 443.35633 90112; 443.77283 2004801; 443.81303 493050; 444.1465 51221; 444.43036 3278545; 444.44563 197864; 444.5135 9614; 444.53901 6732; 444.66555 1255093; 444.88537 169069; 444.98982 5182155; 445.11212 9105; 445.45962 59763; 445.68514 166122; 445.9928 3449598; 446.37202 5485; 446.49345 19860; 446.52153 9491064; 446.52678 75822; 446.69932 70193; 446.77296 19202; 446.86558 4467; 446.99215 20022; 447.03816 49172; 447.15031 381407; 447.24084 8827717; 447.93109 57419; 447.99653 5998; 448.31562 300551; 448.66149 909060; 448.74337 1915071; 449.03659 8358; 449.04015 45600; 449.44163 3929679; 449.91188 4529; 450.09952 35191; 450.24657 1145405; 450.27485 51597; 450.3232 27946; 450.45488 7909; 450.47411 21308; 450.54258 3229; 450.57201 849021; 450.73413 18589381; 450.81645 136385; 450.98346 21181; 451.0605 4568658; 451.27201 44140; 451.36115 25080201; 451.9898 25223; 452.09156 56373; 452.33576 162387; 452.66085 173995; 453.12448 10682034; 453.23829 1964370; 453.4882 302; 453.63555 23335; 453.6938 22760; 453.81354 5143860; 454.02799 21825209; 454.2575 12719; 454.71808 2012138; 454.74917 6151; 454.85783 27615; 455.0149 79; 455.24059 8221946; 455.70832 72957; 455.76969 33784; 455.88683 40100; 455.92392 21555; 456.08609 7234; 456.43946 45969; 457.15189 1135677; 457.33976 5282833; 457.39644 14201; 457.57815 1120; 457.63326 3952111; 457.84571 1504; 458.0656 35938; 458.07942 1349247; 458.10671 343710; 458.22248 5461; 458.22826 1168612; 458.435 32681; 458.46068 17742; 458.467 37062; 458.49836 40582; 458.53549 9049033; 458.9228 43666; 459.12444 1586; 459.168 424374; 459.48161 1303288; 459.76316 73960; 460.01661 58659; 460.31499 7739968; 460.99166 7308; 461.01697 30771; 461.0197 4713112; 461.11921 1166935; 461.23605 5811500; 461.51627 30515; 461.57074 8493; 461.73782 1079933; 461.99981 6071; 462.05886 13926; 462.15105 66125; 462.28135 146472; 462.69036 1750273; 462.69726 88537; 462.88302 24310604; 463.3605 67893; 463.50654 1161546; 463.5683 13226; 463.62429 21530; 463.83746 1816724; 464.42039 8943; 464.48331 1924; 464.49172 8618686; 464.6118 194086; 464.72529 28321; 464.79865 45736; 464.82318 7963; 465.00992 49300; 465.11106 2627270; 465.12317 6825971; 465.16538 4357399; 465.20565 70347; 465.33954 1883460; 465.46691 20404; 465.55108 4026; 465.63588 28193; 465.86538 348900; 466.11619 9993982; 466.14329 17399; 466.1593 28339627; 466.28195 68812; 466.44847 634769; 466.93552 1659946; 466.9426 26157; 466.94576 1382420; 467.06816 1656091; 467.28948 504856; 467.46984 21131; 467.52156 61583; 468.0206 26748; 469.1075 21903; 469.20286 4538; 469.82672 15034; 470.03411 2612889; 470.07151 23841; 470.21089 1264630; 470.68863 7715810; 470.69138 551743; 470.70235 61161; 470.70589 29705; 471.06289 3295; 471.15406 299106; 471.24757 167968; 471.37508 1707838; 471.5088 319; 471.56364 9617344; 472.00486 920701; 472.01083 1117856; 472.24145 1747909; 472.41727 140730; 472.49005 18496; 472.55063 176593; 472.65483 1469633; 472.88198 184074; 472.88643 50992; 473.14158 1902412; 473.52137 8673204; 473.65029 2284; 473.65153 37101; 473.89368 145419; 474.07442 6678854; 474.10227 14841; 474.3421 22978; 474.35569 4698685; 474.48946 20470; 474.58555 96263; 474.59965 277803; 474.75056 6589602; 475.21008 4046809; 475.23663 180187; 475.54299 69155; 475.93954 6281395; 476.06712 3552657; 476.19389 2191; 476.33394 6207; 476.66487 77897; 476.67303 25995; 477.34277 3102; 477.37719 176492; 477.61303 5222793; 477.9953 4010; 478.03571 2591; 478.08779 20879; 478.10115 28138; 478.16319 37376; 478.19065 24551; 478.53011 1693522; 478.80247 62733; 478.95306 56937; 479.26028 7818661; 479.36595 1673077; 479.40852 42187; 479.41895 6822; 479.42876 1746601; 479.51929 76668; 480.19145 1324641; 480.35702 40411; 480.94387 3643; 481.06932 678294; 481.09627 29992933; 481.27971 7721481; 481.30525 24247; 481.57828 20182; 481.93242 186048; 482.03498 3701630; 482.93167 1957730; 483.03449 1877132; 483.42561 11952219; 483.53052 4628505; 483.60898 237674; 483.66485 143809; 483.70579 32412; 484.07966 11880; 484.08582 1254485; 484.4032 6961331; 484.43499 4619084; 484.55595 712409; 484.74043 21056; 485.06394 5950940; 485.07618 2238178; 485.25587 40904; 485.31338 35891; 485.69798 4023; 485.78444 3273; 485.84865 1165185; 485.92498 25835; 486.27172 4844014; 486.53093 21029; 486.84267 26313; 487.10537 586245; 487.12645 116075; 487.25488 9103871; 487.69346 7144; 487.97381 2967822; 488.53169 77133; 488.70714 1903; 488.83388 197926; 488.98186 37106; 489.15503 3629702; 489.39998 64755; 489.63652 161298; 489.70704 135374; 489.90101 4462680; 490.16553 22584645; 490.55746 26478; 490.91051 1087753; 491.16293 7577; 491.21931 67578; 491.69667 2622427; 492.01389 3509938; 492.29121 717021; 492.33964 74048; 492.53078 80115; 492.89154 7386647; 492.94086 879140; 493.07082 5945; 493.08525 3752747; 493.29653 358661; 493.33605 34345; 493.35421 97042; 493.71551 7627; 493.72835 24150; 493.77292 23277; 494.17047 1622; 494.25975 67514; 494.50354 26755; 494.5254 2456945; 494.56453 6982; 494.61995 3952162; 494.62043 3344; 494.84147 23999; 494.8445 3835; 495.12311 17745; 495.36353 57852; 495.41425 26964; 496.13877 7448747; 496.20404 52200; 496.73757 8161; 497.33057 910044; 497.42683 15876; 497.56098 2611; 497.70666 20876; 498.24558 14553; 498.45027 7807; 498.66336 3686098; 498.79222 384284; 499.0877 1745627; 499.23044 65008; 499.24545 43091; 499.24595 9488; 499.29048 676029; 499.33257 8366; 499.87621 767802 +<4, 7>: 0.02653 78118; 0.04431 22249225; 0.17561 1376; 0.62867 27734; 0.715 4236; 0.72237 21539; 0.77417 3978364; 0.80367 32914; 0.88188 1087703; 0.92125 1049480; 1.31764 25960; 1.42565 3034; 1.49791 8075875; 1.54776 24029; 1.81524 83586; 1.89096 45933; 1.98921 555324; 2.01941 56507; 2.22476 13096; 2.29317 367; 2.39568 64224; 2.54141 32512; 2.67422 56429; 2.83291 75040; 2.92351 5917; 2.97197 2758465; 3.11055 59788; 3.17601 26577; 3.48435 8230337; 3.50487 7099987; 3.94425 53088; 4.08483 17906; 4.11931 425357; 4.21769 1839914; 4.83664 1308630; 4.97376 26450; 5.17928 54048; 5.42568 2426806; 5.44269 6912092; 5.60616 40284; 5.97126 6437; 5.9873 23603; 6.01483 43082; 6.52936 3700; 6.63307 75836; 6.63775 1471457; 6.82084 23792; 7.10885 1788555; 7.2974 65595; 7.57497 57109; 7.62997 6028154; 7.66027 282758; 7.79023 476392; 8.1807 38871; 9.52845 23432; 9.65626 2195811; 10.02538 30084; 10.12321 57631; 10.19122 74227; 10.28911 26223; 10.44331 151456; 10.57997 2063; 10.59659 6737; 10.68175 4317808; 10.7705 71787; 10.80743 14373; 10.82637 39428; 10.90723 1775825; 11.07405 2520963; 11.45243 9048211; 11.481 1068; 11.70669 194547; 11.72832 23126706; 11.83348 378030; 11.89786 771650; 11.99574 2139657; 12.04357 60326; 12.05192 17625; 12.14472 21370; 12.42264 167033; 12.61639 11848; 12.67082 45051; 12.67279 57395; 12.71846 64; 12.83866 3587; 12.85913 3453; 12.93196 933; 13.44752 1823; 13.51287 6288193; 13.82924 7153659; 13.96092 16228; 13.99869 4882618; 14.13251 4050; 14.33698 2141528; 14.36376 3561; 14.77357 9048215; 14.83897 67684; 14.84958 18959815; 14.9868 1436; 15.34539 6102; 15.51471 4073; 15.71742 141694; 15.97786 4715; 16.12788 171883; 16.23216 9665; 16.39704 55112; 16.48663 877; 16.82418 281713; 16.97283 37801; 17.11414 3329; 17.14595 19161449; 17.38176 1495561; 17.38527 27687; 17.79917 1901709; 17.83384 5462364; 17.89946 86692; 18.05332 3376319; 18.39213 6664326; 18.61883 31819; 18.86935 310; 18.96261 449204; 19.18832 4375; 19.28951 187710; 19.35685 662984; 19.45782 3286907; 19.47468 55619; 19.5976 67691; 19.6285 3776581; 19.9315 1319851; 19.99516 1439972; 20.00844 25857; 21.24404 38889; 21.34643 20172; 21.48395 1044532; 21.7504 1816; 22.07532 52004; 22.29654 7546; 22.44807 43404; 22.65356 8342; 22.78676 158110; 22.93033 7566869; 23.01036 488021; 23.19322 5720; 23.23158 29127; 23.47317 15837351; 23.73975 71883; 23.81714 1482760; 24.33012 34682; 24.46265 9861; 24.54631 3263676; 24.56059 78512; 24.70656 9246932; 25.08183 184900; 25.29803 1145890; 25.3313 62661; 25.50099 24038; 25.58872 29788; 25.84907 3527312; 25.88736 160131; 25.9997 328575; 26.03228 1867082; 26.44974 2110484; 26.61179 162728; 26.66542 49670; 26.67967 38874; 26.80446 45395; 26.86609 282043; 27.02809 5975; 27.03381 367087; 27.13735 57078; 27.29686 2405761; 27.33066 283429; 27.34227 40491; 27.3988 70749; 27.48838 10244991; 27.48933 1134730; 27.49148 7631; 27.63314 3145; 27.7534 534995; 27.75623 22107; 27.87985 22736; 28.2418 3707; 28.26404 34837; 28.40981 74185; 28.47696 23950362; 28.87084 75204; 29.39456 4043; 29.53788 2540755; 29.66291 890; 30.06411 31477; 30.08961 1338853; 30.14885 4483739; 30.21761 7644; 30.36409 2375295; 30.43064 1636785; 30.44327 47354; 30.64921 136559; 30.70022 2517; 30.74006 18132; 30.96158 51206; 30.96738 15925104; 31.10816 4654518; 31.13579 28362447; 31.1364 181591; 31.36492 313749; 31.37317 35753; 31.48361 1786649; 31.5221 8511; 31.64782 67106; 31.75238 68932; 31.80008 1855506; 31.91408 66338; 31.95273 20495; 31.95398 852407; 32.16859 15675; 32.41378 35543; 33.03465 21476; 33.18109 1082223; 33.32879 10280; 33.45675 47; 33.50396 176842; 33.75704 158970; 34.51417 33087; 35.32716 628109; 35.37543 2305802; 36.30888 7050135; 36.38124 21592113; 36.39808 1393445; 36.41528 179812; 36.51181 14392; 36.91337 32718; 36.98397 160118; 37.31537 17824; 37.52196 48977; 37.64413 75450; 37.69584 29770; 37.92837 39410; 38.05553 2330002; 38.15499 41270; 38.16555 775923; 38.1965 22892; 38.80581 7087834; 38.82104 1972917; 38.92175 7480784; 39.26608 58021; 39.29204 3232482; 39.34136 3158; 39.38664 9922; 39.67181 8498938; 40.01321 2424236; 40.02685 65765; 40.10779 173086; 40.15647 23666; 40.4392 19069; 40.53636 924483; 40.55865 3590207; 40.70274 594819; 41.02271 28198; 41.06213 10219; 41.48663 36495; 42.03511 8537622; 42.37755 36359; 43.21021 41616; 43.24632 41879; 43.31102 6756410; 43.32587 39987; 43.6446 21311; 43.75053 7975691; 43.83729 1472935; 44.06038 99267; 44.18724 21726; 44.29107 39777; 44.34206 1075; 44.5681 1272460; 44.66994 194292; 44.9866 57349; 45.20677 101029; 45.60193 68210; 45.6561 32344; 45.76431 74728; 45.87348 9219; 45.90402 829223; 45.99699 33717; 46.09933 1806700; 46.14573 568994; 46.16378 59818; 46.40542 74199; 46.51259 1983140; 46.70368 59139; 46.73618 3936616; 47.13995 18757; 47.14646 31698; 47.36294 75603; 47.46437 604467; 47.55811 21808; 47.66486 779278; 47.90882 73376; 47.94534 27451; 48.10064 1452261; 48.17773 2741065; 48.25775 17841; 48.28189 152437; 48.30011 20790; 48.69848 57; 48.91948 1366705; 49.07912 388451; 49.25442 50798; 49.42623 57613; 50.4291 2684575; 50.53651 28433; 50.901 1485107; 50.95102 1846852; 51.24533 55817; 51.60133 8774; 51.60847 9064; 51.67731 1541864; 51.82475 561571; 52.08228 1818124; 52.30756 6713485; 52.34053 44109; 52.44935 838; 52.52435 1603068; 52.5424 2200484; 53.02976 17060; 53.16089 34418; 53.18388 24088877; 53.18626 6533; 53.52844 40105; 53.62122 24722; 53.67513 1707634; 53.86736 6397279; 54.20158 3168706; 54.48351 27280709; 54.84962 31769; 54.85905 978390; 55.23427 7506; 55.25772 1188905; 55.41626 3694; 55.50548 20265; 55.5591 23249; 55.90769 5623192; 56.06561 31489; 56.457 1858069; 56.65551 27087032; 56.67393 18319; 56.76666 1616921; 57.27191 7624157; 57.97249 717491; 58.06488 3060561; 58.30991 17311; 58.31291 28144; 58.4439 16391; 58.61718 79816; 58.87698 52610; 59.0218 12095; 59.1231 1364361; 59.13192 4409; 59.17167 2287889; 59.53909 657786; 59.67046 28208; 60.43535 477; 60.45553 1098482; 60.66283 1932241; 60.75894 24686; 60.80499 16280; 61.07216 23668; 61.12496 5270; 61.23906 6843; 61.48529 26452; 61.8463 1782056; 61.92071 1696552; 61.96955 2974857; 62.02601 2876115; 62.16666 2430389; 62.3233 6632790; 62.63006 24801; 62.66805 561; 62.9044 6299352; 62.9574 1996697; 63.11941 16095; 63.14811 31; 63.34573 157808; 63.49409 467412; 63.74153 354675; 63.77533 2997186; 64.05144 12079240; 64.09348 21399; 64.21549 24710; 64.22004 7699790; 64.24051 483532; 64.44076 73444; 64.55807 1025964; 64.80958 1522; 64.82896 45781; 64.86681 5510691; 64.96371 7273; 65.05188 5801; 65.29189 2450325; 65.36713 2858029; 65.51717 8468; 65.63703 4292; 65.79774 31131; 65.85881 34991; 65.97361 883096; 66.20673 455149; 66.32633 8390638; 66.41129 39244; 66.5021 25594; 66.89844 38266; 67.54286 1179233; 67.59302 787; 67.81025 2503998; 67.96352 10529; 68.29952 13771; 68.51943 9131; 68.54121 24264; 68.64042 4484; 68.92807 874990; 68.9716 34132; 69.18265 5030; 69.22709 71921; 69.45 57818; 69.47198 3230027; 69.87225 238057; 70.03696 122435; 70.23452 400929; 70.54147 1870338; 70.82056 65980; 71.06379 11301; 71.23895 62482; 71.56153 25246; 71.65491 25773; 71.94887 4315045; 72.00565 590749; 72.10848 35079; 72.58308 22697; 72.85516 11505; 72.86574 5947347; 73.22118 21421; 73.44713 8800422; 73.79654 169049; 73.87557 5575474; 74.33689 26404; 74.473 61274; 74.73253 31696; 74.86945 7691348; 74.87854 25454; 75.00357 1314568; 75.10512 14191; 75.15882 25769; 75.33163 13028036; 75.33673 3254230; 75.53093 18833; 75.71951 9251; 75.72191 66870; 75.88542 132724; 75.89641 4683; 75.97982 13018294; 76.00231 168862; 76.20248 25441; 76.27494 16764976; 76.32444 48132; 76.70739 676734; 77.18517 177932; 77.26359 76726; 77.3405 9542536; 77.50982 2197887; 78.09907 1394013; 78.40673 7120694; 78.42315 29761; 78.67981 21942; 79.00582 54561; 79.23922 9142904; 79.52474 7042; 79.7813 8764; 79.9555 8027; 79.97903 28655140; 80.00537 23162; 80.01998 3302; 80.10135 3901829; 80.13074 717940; 80.24482 6771; 80.37629 3914; 80.43447 23782; 81.26847 1374364; 81.43808 1435312; 81.4764 22037; 81.62217 23043; 81.67603 1923687; 81.74986 28894; 81.78911 309083; 81.98999 239377; 82.01208 5205; 82.06114 8678030; 82.13308 39547; 82.33769 28585; 82.76106 33588; 82.88532 2247526; 83.13863 4021077; 83.36518 50211; 83.41399 60676; 83.50126 703; 83.54424 4117616; 83.71055 619496; 83.76244 27927; 83.92201 61038; 84.04042 4657; 84.20499 2679629; 84.34502 58284; 84.59625 4413682; 84.62199 17776; 84.81125 61829; 85.08663 31854; 85.2598 2635; 85.31001 727389; 85.48964 4997178; 85.6837 1744; 85.77481 11579; 85.8922 20891; 85.9164 48430; 86.24479 30937; 86.97627 131731; 87.04345 21701; 87.12646 101292; 87.38118 73119; 87.55929 71382; 87.80048 42714; 88.22688 662239; 88.27672 5922298; 88.45426 53330; 88.55323 133021; 88.74723 6550017; 88.7994 47266; 88.89338 62419; 89.47781 509389; 89.60053 652141; 90.88777 7626; 91.23086 629; 91.72135 28555916; 91.72436 113415; 91.93427 1423568; 92.05458 42248; 92.15198 74471; 92.18755 15587; 92.55926 30647; 92.71195 3023; 93.07977 44271; 94.62106 164649; 94.77209 10113; 95.3572 8919; 95.37919 51261; 95.53522 2606111; 96.12236 5636; 96.66791 4817895; 96.73608 32089; 96.85847 56708; 97.12937 11697; 97.72748 113843; 98.36552 3171; 98.81274 653412; 98.87532 396490; 99.00742 17181; 99.28623 1270255; 99.28969 26702; 99.31765 125138; 99.39285 7555517; 99.55017 57900; 99.83175 7085137; 99.93296 4179517; 100.18109 16413; 100.39475 21762; 100.43695 25675; 100.97677 11154; 101.0331 65836; 101.44211 415268; 101.68288 1302736; 101.75191 5530222; 102.02776 811558; 102.29746 9309; 102.48083 15665; 102.58911 35952; 102.92046 12435; 103.21227 3809348; 103.41034 1080020; 103.76111 1805; 103.7641 7847; 104.06051 9830229; 104.11901 94579; 104.19267 78773; 104.373 3266873; 104.43087 20965; 104.62456 9543573; 104.76163 24610; 105.2875 103385; 106.34075 21840193; 106.44558 22296; 106.57031 49044; 106.80181 1094815; 107.09559 64158; 107.28887 798547; 107.47357 5155781; 108.26984 59535; 108.40905 64771; 108.41396 1146958; 108.54345 4271; 108.59399 1763446; 108.6636 146907; 108.82536 1949210; 108.90898 74294; 109.20592 23807; 109.30114 27697; 109.57081 39833; 109.77446 590960; 110.11826 3503273; 110.12743 2604; 110.40395 148747; 110.42522 45838; 110.70303 186355; 110.73699 159; 111.10111 4462863; 111.49787 193089; 111.54377 27012; 111.6081 625953; 112.00997 63319; 112.02176 8048231; 112.05495 5747; 112.11562 16912; 112.34758 4864532; 112.95148 17801; 113.27492 3760; 113.2973 81294; 113.31757 60145; 113.34653 846380; 113.74668 45004; 114.0632 4919219; 114.11368 7202; 114.39854 61113; 114.44194 1440486; 114.54614 93618; 114.94109 4260; 115.0139 2845312; 115.18338 168019; 115.39107 15510; 115.52291 4268496; 115.64097 464; 115.65838 1948916; 115.85185 1793321; 115.9147 198897; 115.97138 36102; 116.06238 14875; 116.08 1837134; 116.53374 706571; 116.75322 785824; 117.48525 1123309; 117.71063 45130; 117.73246 1874; 117.80124 17479; 117.90053 593710; 118.37116 23610; 118.4627 1167241; 119.03779 4293837; 119.04306 20690; 119.21003 28027; 119.21977 7394873; 119.23265 22265; 119.32766 1652435; 119.34367 54628; 119.64088 4684886; 119.69324 68335; 119.92039 6060034; 120.00936 54328; 120.24536 267966; 120.25013 6968; 120.25157 38433; 120.37098 34062; 120.525 27686; 120.81174 141449; 121.04151 693519; 121.06757 78110; 121.09632 699154; 121.10081 10501; 121.16235 51584; 121.53171 1622365; 121.71547 79826; 121.98788 88; 122.07481 882779; 122.40731 1266903; 122.51772 68806; 122.66264 22062; 122.86847 4366192; 122.93815 24646; 122.99439 56909; 122.99517 50290; 123.0976 1619019; 123.10751 1163777; 123.23882 28237102; 123.54219 23250; 123.55938 19475; 123.60792 17865; 123.97481 16284; 123.98161 1523796; 124.12717 33206; 124.43663 63259; 124.81775 544803; 125.01316 3033142; 125.20681 8245; 125.34266 1333125; 125.45545 41486; 125.56104 79717; 125.74567 793257; 125.83894 6992096; 125.98042 19996; 126.23001 7025428; 126.34278 6241; 126.59567 1637603; 126.63947 1924902; 127.03341 49053; 127.20435 6892733; 127.2116 64161; 127.63472 5180; 127.77404 20636897; 127.97599 54631; 128.57944 1866938; 128.77343 9225; 128.88721 79531; 128.88899 680459; 129.4271 29332; 129.50434 344869; 129.99309 19879; 130.12553 629153; 130.12792 9711612; 130.37052 1462170; 130.37578 60815; 131.40679 55074; 131.47249 324005; 131.47458 6245; 131.63128 4791105; 131.79847 1602135; 132.15545 112878; 132.28974 6318747; 132.74976 55522; 133.03395 29323; 133.21041 2736865; 133.21225 1307042; 133.36566 30089; 133.6817 6228; 133.94089 13231578; 133.94164 3193368; 134.062 1155; 134.1543 17039; 134.18702 900681; 134.21852 927722; 134.58411 34598; 134.6156 1257598; 134.82269 56986; 134.84703 92197; 135.31702 19228; 135.41576 68628; 135.55951 23973; 135.56899 23562; 135.59667 5474; 135.63998 699773; 135.71568 3733; 136.33478 20766880; 136.37416 118828; 136.38544 1202555; 136.47086 59163; 136.56093 2040; 136.72543 20730768; 136.72826 22191; 136.85328 52699; 137.02893 64203; 137.2143 6942690; 137.29941 44409; 137.41934 22235; 137.51211 5664; 137.76067 2880; 137.96944 121150; 137.99734 1394; 138.05819 5471; 138.49738 889786; 138.57373 8535; 138.79079 1358; 138.84932 3681313; 138.8779 41281; 139.019 556415; 139.25339 46027; 139.51341 144234; 139.61938 47320; 139.6624 1147862; 139.78205 1202; 139.89218 4730763; 139.93952 34276; 140.11312 27126; 140.26908 57222; 140.44544 146853; 140.53825 21259; 140.63084 12163; 140.75047 7307; 140.87766 1996273; 141.2367 913789; 141.45153 1760575; 141.5546 12580466; 141.79172 77657; 141.87643 2876; 142.2983 1529; 142.55612 6351707; 142.81141 2720441; 142.85254 1013365; 143.19712 16535; 143.23836 302447; 143.50361 28218; 143.72977 5495011; 143.88539 1259; 143.9285 6255; 143.94462 6002675; 144.06322 17528; 144.31276 1781380; 144.33768 40685; 144.34584 73196; 144.43602 1549771; 144.55337 4705324; 144.85144 585051; 145.53531 20625; 145.60322 1513332; 145.78375 15999; 145.82203 31542; 145.84365 1657970; 145.85943 17480616; 146.27526 6250; 146.28967 661962; 146.32381 1658619; 146.90116 71135; 147.04096 1433; 147.43135 75408; 147.64946 26084; 147.80788 77567; 147.83356 1038859; 147.8674 35961; 148.22785 8073; 148.22877 1839033; 148.22939 2246; 148.29602 4225935; 148.81535 2628324; 148.82808 2113548; 149.05825 4626805; 149.12864 5500; 149.16344 6259249; 149.22678 25066; 149.32957 12331; 149.60353 191044; 150.11161 7986107; 150.18464 13060; 150.20905 6364; 150.39317 422262; 150.84032 31383; 151.3743 95505; 151.4588 24327; 151.52473 8010; 151.65655 56474; 152.11709 36233; 152.15599 58841; 152.15944 10870; 152.59317 4138; 152.78521 78897; 152.80645 45647; 153.03436 3261; 153.16962 3988; 154.02699 3413; 154.1728 8809; 154.71327 23114144; 154.85834 199185; 154.90084 114979; 154.90188 22067; 154.9704 181881; 154.98271 7966002; 155.05539 9427; 155.2044 42468; 155.46495 979084; 155.59853 96147; 155.79912 1940727; 155.87458 55634; 155.95918 78380; 156.04189 7291; 156.114 168; 156.15501 66350; 156.19084 9240998; 156.19969 4430965; 156.37344 12992; 156.44896 62776; 156.50168 69443; 156.56554 185298; 156.85336 105782; 156.99093 79447; 157.0103 1862059; 157.10535 17588; 157.18321 60214; 157.43322 194643; 157.44995 76841; 157.84457 1796910; 157.97155 1628068; 158.02156 2217315; 158.09169 39494; 158.21046 5255330; 158.3428 6862; 158.35353 33496; 158.36411 6753915; 158.77824 6417; 158.85868 45350; 159.07362 6320; 159.13698 1049842; 159.44764 2417921; 159.74228 78519; 159.78752 8196438; 160.07958 21737; 160.11886 7072; 160.25795 1620336; 160.76399 664126; 161.01191 28888988; 161.22347 220787; 161.40725 39954; 161.62747 31786; 161.75087 7346; 161.93378 25117; 162.00447 9848; 162.6102 330763; 162.87465 10527; 162.99361 18640742; 163.61156 6463; 163.79727 23121; 163.85157 1775087; 164.24917 1460227; 164.67766 110846; 165.00897 3499; 165.48053 772814; 165.71038 67485; 166.22736 1637829; 166.44717 29879; 166.88634 601327; 167.02424 721884; 167.18214 29106; 167.24932 40913; 167.39735 138205; 167.42862 19489; 167.44354 834012; 167.7545 3520685; 167.94552 3039146; 168.11463 5015682; 168.13556 2812871; 168.24003 29283; 168.32914 9911; 168.69416 47262; 168.7006 17589; 168.71667 171225; 168.82425 25187154; 169.0474 50347; 169.06036 9379; 169.09379 62726; 169.22704 40179; 169.29172 34248; 169.38121 950027; 169.54441 28568893; 169.65267 535054; 169.84243 1647412; 170.11676 25758; 170.29763 7246355; 170.49065 23042115; 170.54142 33300; 170.96822 90177; 171.2916 64917; 171.33515 16776; 171.58401 156888; 171.81783 78248; 171.85849 45124; 172.10723 15862; 172.52417 15117; 172.65605 23400; 172.81763 22752; 172.8326 4685431; 173.04872 1901323; 173.18646 49002; 173.28678 9664118; 173.41752 5057608; 173.61032 939158; 173.98736 38172; 174.59489 73516; 174.69999 27072; 174.81969 9419; 174.99687 40856; 175.00274 4047221; 175.14992 969870; 175.25922 116004; 175.2767 3533; 175.41885 875555; 175.49035 133346; 175.49969 73694; 175.62195 3209; 175.6247 3190; 175.6509 546493; 175.83494 117514; 176.08524 3905352; 176.19034 17780; 176.28414 4107954; 176.29885 8674; 176.36668 6267612; 176.67838 461336; 176.77856 7818; 176.79444 42063; 176.80065 1820830; 176.88876 8475065; 177.20066 748898; 177.3762 78097; 177.40298 356082; 177.78426 853068; 177.81377 4854; 177.93925 44153; 178.06824 54; 178.12618 60609; 178.17048 400720; 178.20321 23040; 178.32996 75310; 178.43123 2435883; 178.66552 4796700; 178.86025 58218; 179.0147 45574; 179.04593 21541; 179.43873 27665870; 179.50244 8236; 179.62351 943; 179.72796 29451; 179.74187 3786233; 180.14527 4559849; 180.26973 1554901; 180.42005 20002; 180.44352 8481; 180.476 10182; 180.66968 6623728; 180.70828 681; 180.84802 75213; 181.0355 60847; 181.26845 8794719; 181.35449 12554; 181.41978 193473; 181.50576 111775; 182.07662 6704313; 182.16685 587464; 182.3315 703385; 182.44858 1773; 182.5881 12080; 182.829 20913; 183.02527 17951; 183.03743 79503; 183.86522 40881; 184.43637 117076; 184.52973 25763; 184.63842 88114; 184.82576 66764; 184.92316 4104; 185.01582 594628; 185.20014 12210; 185.25134 42598; 185.26548 57488; 185.53694 47505; 185.54406 29547784; 185.755 36998; 185.82031 119402; 186.19288 4935969; 186.53891 247; 186.86564 4039; 187.35295 3795; 187.36701 1523834; 187.43226 43690; 187.46256 111225; 187.57618 47502; 187.705 4613770; 187.8663 30443; 188.07672 1631293; 188.14964 1980816; 188.33721 78930; 188.45674 1930619; 188.5521 3449; 188.80337 18; 188.848 1827726; 188.86953 56140; 188.93399 4737990; 189.14587 67402; 189.17217 6396; 189.27942 2725041; 189.51572 1022145; 189.63851 19836; 189.70239 26757; 189.90745 29454; 189.93042 64999; 189.97966 5387; 190.02581 1331284; 190.03032 7007; 190.06348 149749; 190.24352 571117; 190.36945 73581; 190.43023 195646; 190.57654 8758686; 190.63181 9987; 190.6873 138267; 190.73759 55189; 191.26421 46248; 191.35544 20577; 191.47691 3428550; 191.74723 5361; 192.00811 4993428; 192.15486 3920570; 192.32252 32683; 192.36909 32781; 192.45161 149289; 192.50507 1558125; 192.66039 8636733; 192.99867 6578; 193.01016 30084; 193.16605 301155; 193.24193 63; 193.72568 30835; 193.95774 1543073; 193.97202 6764108; 193.99226 9995; 194.06256 41758; 194.27607 2588198; 194.66084 7514424; 194.67473 7857160; 194.91464 1794147; 195.0622 35157; 195.37474 1792872; 195.87179 55877; 196.03806 430788; 196.2043 4623; 196.24014 48158; 196.42001 42872; 196.42608 43817; 196.50004 6096055; 196.58271 8488; 196.88177 1000825; 196.88977 1500796; 196.97183 37660; 197.01739 21413; 197.16673 29137; 197.23784 954209; 197.90041 4115; 198.15629 27404; 198.40205 83397; 198.77907 47318; 198.7855 9711295; 198.89629 1677503; 198.89972 7129; 199.01354 105200; 199.04865 8604414; 199.17015 57022; 199.17344 4820365; 199.2595 51334; 199.32541 141552; 199.42008 24231069; 200.30627 1089579; 200.47384 46764; 200.9276 10451; 200.94206 436605; 200.94881 1919998; 200.9898 104829; 201.32219 1167180; 201.38968 58709; 201.76477 1031170; 201.76901 5592747; 201.96966 1655751; 202.53207 614236; 202.82653 620521; 202.9751 827201; 203.00232 2825850; 203.06227 23685; 203.50351 56596; 203.94061 52881; 204.04064 468020; 204.09464 89893; 204.43991 2114; 204.48158 28091; 204.53033 68295; 204.56747 400703; 204.71477 193000; 204.95862 48420; 205.0962 5354662; 205.11763 3272; 205.20853 1431021; 205.45707 31087; 205.56208 1852; 205.63482 70019; 205.87271 78835; 206.07836 1435; 206.09883 105321; 206.72437 14058057; 206.84929 15811; 206.86364 30872; 206.96656 46017; 208.18609 8563; 208.30805 38746; 208.34345 36010; 208.36932 8406; 208.55899 3745835; 208.56694 3417203; 208.58859 64963; 208.7145 2400369; 208.71855 4038; 208.929 3569; 209.03879 1704408; 209.06597 541154; 209.06931 67436; 209.1158 2284112; 209.21586 73800; 209.39498 7144903; 209.45975 870; 209.499 1272066; 209.83323 314903; 209.83972 76018; 210.23586 6334602; 210.31711 6555912; 210.58033 343607; 210.74821 1615942; 210.75657 320227; 210.88536 1999347; 210.91192 60707; 211.12218 11186; 211.1295 660653; 211.40138 18993; 211.86531 8488; 212.21435 928840; 212.24986 11932; 212.63297 4624136; 212.64093 6127; 212.94244 25753611; 213.00494 476393; 213.64265 2037; 213.67181 63530; 213.69604 68625; 213.88906 21714390; 214.46977 6861925; 214.68212 3731; 214.70069 176384; 214.94513 11160327; 215.07346 1636189; 215.07771 23387; 215.11006 24013732; 215.44925 1275; 215.6709 75134; 215.8121 185690; 215.93718 1117926; 215.9623 1885755; 216.0032 10075; 216.1044 4195421; 216.23193 10314; 216.5396 2669; 216.63912 67969; 216.68316 8070; 217.15372 672781; 217.1593 1385878; 217.23123 36468; 217.23843 55954; 217.24387 5458; 217.75047 73238; 218.13226 24195; 218.57644 468305; 218.6029 357573; 218.61557 19516; 218.82025 25777; 218.87565 76506; 218.8845 24560; 219.12403 2991074; 219.25965 60603; 219.36611 47291; 219.42028 20666; 219.72311 57253; 219.77798 2017141; 219.78058 9601756; 219.98924 36759; 220.1684 72465; 220.44678 1527939; 220.48559 1894141; 220.61895 1833289; 220.6388 133879; 221.18611 66644; 221.4132 74227; 221.49164 38489; 221.5936 11173129; 221.84658 34661; 221.92523 521856; 221.9327 382536; 222.22414 267407; 222.43789 467688; 222.60287 5451; 222.90598 26829281; 223.14702 26267; 223.16741 9110389; 223.49478 20803516; 223.80723 58290; 223.81102 4832; 224.06319 8470; 224.15028 2081; 224.32353 4197919; 224.45965 25908019; 224.78839 3888; 224.88845 53204; 225.05722 17965; 225.94627 2406525; 225.97564 4909403; 226.32395 37145; 226.38802 1465769; 226.46312 185832; 226.53512 60755; 226.54305 14340; 226.56504 58280; 226.67656 62139; 226.69958 1711021; 226.77519 153150; 226.89395 10987; 226.90461 17146; 227.10972 16442; 227.12836 48978; 227.21809 19986; 227.46965 2014326; 227.50368 831895; 227.64348 8476009; 227.86236 109701; 227.97853 11156801; 228.79558 120978; 228.84834 28043; 229.11464 28978; 229.4693 111932; 229.48813 1334903; 229.4989 45313; 229.90154 69269; 229.98572 2215958; 230.00957 948431; 230.70136 72433; 230.75369 25027; 231.19534 55162; 231.29476 5105; 231.32447 9059209; 231.59481 8665392; 231.867 28037; 231.8746 1081214; 232.03565 164124; 232.20939 69046; 232.43429 1587922; 232.69451 42565; 232.85547 21401; 232.93135 1708376; 232.93198 1111145; 233.06809 4639418; 233.25005 1750219; 233.2675 182290; 233.369 1360929; 233.69368 61356; 233.96329 27678; 233.97245 39531; 234.08318 78570; 234.09471 119611; 234.65182 16458845; 234.70304 15162; 234.73671 1979356; 234.86274 453281; 234.91605 2445; 234.97382 22735208; 235.20868 6390; 235.32434 8888851; 235.36402 10135273; 235.93739 11709; 236.14995 772423; 236.16161 6756; 236.23778 635069; 236.32336 309758; 236.34865 2606901; 236.42921 2406359; 236.48425 7886407; 236.49852 380327; 236.66757 1803580; 236.79601 1156470; 236.99334 1575209; 237.2228 2507464; 237.32093 8164; 237.43738 175417; 238.04102 45218; 238.13107 25803; 238.28693 10016; 238.29035 68248; 238.44029 9235; 238.62224 57506; 239.20932 9003779; 239.21151 70269; 239.28037 561000; 239.33948 1627001; 239.6963 106803; 239.91185 23750; 240.25339 3241782; 240.29353 8081326; 240.55628 4907486; 240.76333 52262; 240.78861 27709; 240.93235 1095158; 241.39268 67508; 241.42425 9406330; 241.49375 104501; 241.58726 134964; 242.0518 5263; 242.23208 3324102; 242.28182 56082; 242.38439 1143992; 242.61892 5169755; 242.67222 9798893; 243.266 8530; 243.47964 2439674; 243.75911 131823; 244.04352 61446; 244.20965 23838; 244.31974 1092488; 244.55716 13280; 244.5671 47787; 244.99646 9605; 245.06717 57285; 245.20765 9881925; 245.3256 22717985; 245.4289 90080; 245.44226 60744; 245.51758 866738; 245.58177 159789; 245.78236 1494337; 245.81375 9164531; 245.85695 6544; 246.43753 96862; 246.86893 1390908; 246.91199 18396; 247.18572 4698294; 247.26368 9465; 247.38651 27514; 247.39135 23464; 247.47385 1000692; 247.54715 69478; 247.9488 46784; 248.43239 64620; 248.702 60006; 248.91297 6240518; 249.45263 38775; 249.53037 1744812; 249.68313 14341815; 249.72162 2703362; 250.15797 61104; 250.7628 3027928; 251.09563 7592; 251.23648 2302560; 251.24605 506193; 251.74793 33921; 252.72856 1128100; 252.82284 6564; 253.06935 10842; 253.07096 21425; 253.17859 3933649; 253.6084 69067; 253.69391 40807; 253.79052 7805558; 253.93543 134209; 254.21015 13225463; 254.30422 42802; 254.54646 4606910; 254.67187 2970; 254.79604 25707545; 254.93799 4230477; 254.98504 178954; 255.01964 4512; 255.09947 51902; 255.22493 4766; 255.34085 36496; 255.37078 4391; 255.37128 1966565; 255.42432 13436; 255.43037 13008; 256.31694 3805303; 256.87524 29183; 256.88994 65877; 256.9465 20996; 257.09295 1337772; 257.26283 65263; 257.50153 22858; 257.54413 2842; 257.55172 1585983; 257.58266 46989; 257.84067 40291; 258.0453 98816; 258.16004 50820; 258.18814 20167; 258.34654 9206789; 258.51964 3071; 258.63677 27355; 258.65564 101490; 258.9103 3645384; 258.92686 54571; 258.98903 8938; 259.04324 46055; 259.08633 3934488; 259.3704 28853; 260.05902 4255; 260.28533 46318; 260.43155 158900; 260.59419 6457; 260.81953 79978; 261.26149 28901; 261.29495 6159; 261.4647 6647; 261.6563 62378; 261.90682 46406; 262.28016 39211; 262.31913 99448; 262.72457 8348827; 263.27804 169994; 263.32136 17353; 263.70437 693; 263.94904 58601; 263.98144 13724; 264.16018 24451; 264.22647 128021; 264.33637 49359; 264.36674 18722; 264.47964 22849; 264.53119 179107; 264.64619 2530557; 264.67799 3512858; 264.74293 4251441; 264.98492 56168; 265.11478 441865; 265.24712 10948; 265.28612 1036099; 265.79965 9001; 265.86607 1323222; 265.95406 9446; 266.27394 29331; 266.29177 62928; 266.32038 192330; 266.35929 73411; 266.45866 1439357; 266.4773 24967; 266.59088 1265; 266.74571 78783; 266.83412 488; 266.91757 21270; 267.06041 23416; 267.28141 1918478; 267.58396 21942; 267.61071 68990; 267.97691 3903884; 268.04391 76362; 268.13045 20713; 268.47858 46121; 268.51851 8053293; 268.52114 24396; 268.69108 411970; 268.95552 6622; 268.98643 77953; 269.22676 719752; 269.29025 66480; 269.36209 1323576; 269.69968 34558; 269.79958 2162858; 269.93775 304738; 270.00695 27591; 270.03216 6741401; 270.06835 77413; 270.17415 3310075; 270.39246 3958759; 270.6717 27882; 270.8556 5429; 270.88538 128614; 270.89503 62230; 271.00908 1353460; 271.04062 1795371; 271.22382 28580; 271.2958 75863; 271.73345 1099124; 271.74194 2511; 271.83066 843988; 272.0574 1611262; 272.2536 1700976; 272.31279 51224; 272.40337 16082; 272.43959 19565544; 273.05383 5793469; 273.26265 9732; 273.31597 4917587; 273.36476 49047; 273.45185 29407; 273.50186 8542984; 273.74033 4010610; 273.77155 42385; 273.94823 26782; 274.01752 2482; 274.02394 2214748; 274.14201 28732; 274.2538 21555; 274.2566 4417210; 274.2618 19002; 275.17293 343677; 275.36555 1224451; 275.4504 1524061; 275.4767 43433; 275.56559 5659; 275.66815 10538; 275.69622 21050; 276.20255 984796; 276.47955 41507; 276.89006 5556042; 276.89493 25662; 276.99704 3224; 277.31545 398703; 277.4473 2797185; 277.64229 3851063; 277.68382 12; 277.69408 1782839; 277.92167 5942178; 278.14592 1918325; 279.02838 7203222; 279.07035 817618; 279.6636 404487; 279.70038 36050; 279.7984 11147; 279.8323 2307555; 280.40745 7307866; 280.57782 25727094; 280.61701 3483; 280.70223 20624; 280.96979 599; 281.02944 3340889; 281.04025 1848838; 281.07311 1115933; 281.23327 12138220; 281.31292 1576; 281.31848 809862; 281.43549 84685; 281.44582 8369; 281.60078 115628; 281.72631 8014; 281.92737 9105; 282.05747 6951; 282.06777 2926159; 282.18911 9074; 282.21984 1945; 282.4003 1932418; 282.40848 190347; 282.44426 644377; 282.45171 5612; 282.48819 2567102; 282.89725 29868; 283.08246 7653222; 283.22763 50733; 284.00232 30968; 284.01332 44678; 284.13598 16629; 284.69254 1444580; 284.83999 7097; 284.85641 141574; 285.30625 136481; 285.3287 9790737; 285.40104 8250224; 285.78928 1472375; 285.81806 4438886; 286.23899 23873; 286.32701 109433; 287.07885 3576010; 287.16328 79219; 287.4517 4451372; 287.71163 4354; 288.08663 4330564; 288.12244 2618704; 288.17632 1270633; 288.56315 2446; 288.70252 24372; 288.86805 52601; 289.16336 8937; 289.54553 13240; 289.56532 17208192; 289.59325 38214; 289.84179 590679; 289.97562 56; 289.98462 1540905; 290.04957 9687085; 290.94458 3735200; 290.97696 5746730; 291.01151 23841; 291.14778 535008; 291.36902 18579; 291.40895 15818; 291.47233 526; 291.68992 42356; 291.69273 19595; 291.77411 3364177; 292.13942 1645395; 292.34955 3578591; 292.50368 4421511; 292.63123 2762994; 293.244 9955240; 293.30034 273198; 293.34627 2428; 293.55246 468113; 293.62135 1548236; 293.70658 7939724; 293.72875 25628; 294.32825 53274; 294.33081 8270; 294.52371 19756; 294.70365 435593; 295.21974 34243; 295.32423 4472022; 295.39109 1798795; 295.7628 101513; 295.79614 1544572; 295.90721 648983; 295.93198 39527; 296.03745 1216379; 296.05371 2177822; 296.29246 816625; 296.33506 687224; 296.43096 61044; 296.49229 1107692; 296.61661 35033; 297.10441 15936; 297.35823 67260; 297.39542 37753; 297.42335 1439546; 297.46278 940157; 297.54192 23321; 297.88182 1374; 298.01935 447684; 298.05043 9353022; 298.42649 127308; 298.64529 12115720; 298.75899 35810; 299.27764 1305634; 299.97991 24322; 300.38396 29525; 300.86372 1058; 301.14834 1630814; 301.18301 6641; 301.27229 4261222; 301.27306 40525; 301.343 3791; 301.39791 44722; 301.63361 745897; 302.1132 2196; 302.15964 51185; 302.19513 40152; 302.33792 62036; 302.77911 31757; 302.81137 1265; 302.82555 1403269; 303.04167 385497; 303.50767 21506; 303.51272 4398; 303.68358 496853; 303.78447 37693; 303.99856 1640168; 304.29792 801551; 304.36131 1409865; 304.42229 35911; 304.66188 41434; 304.92983 6297; 305.02926 25667; 305.09606 2055; 305.27911 7754550; 305.61314 6625; 305.67803 2539; 305.75312 18216079; 305.93214 165596; 305.97806 721630; 306.04199 31464; 306.25558 8508; 306.4237 4200573; 306.45587 5036898; 306.60226 154961; 306.74338 1259819; 306.86576 8526; 306.92518 56704; 306.94803 1617; 307.18211 925464; 307.3509 830623; 307.77899 43920; 308.03631 20236; 308.04285 8311923; 308.40748 9765; 308.53427 9949; 308.76065 30374; 309.01372 1439430; 309.34886 9759704; 309.96364 6274; 310.03567 4097998; 310.06779 6999; 310.31298 33629; 311.41785 81609; 311.41888 22043; 311.54765 29118; 311.68628 80233; 312.20372 195652; 312.24751 4370450; 312.42433 69339; 312.55696 18228; 312.64355 57547; 312.71854 40967; 312.75488 419788; 313.15883 13532; 313.43612 1545917; 313.48225 42437; 313.77359 33437; 313.78499 3802; 313.93699 94763; 313.96839 4584; 313.97874 189537; 314.0139 3505447; 314.03707 25040063; 314.16593 23514; 314.35448 55985; 314.70506 3828367; 314.75379 64673; 315.09649 182393; 315.60681 77469; 315.61485 71177; 315.71543 66812; 315.73655 1238; 316.1099 3085089; 316.17845 22395; 316.24484 8832884; 316.30274 37984; 316.42154 1615170; 316.60081 6474; 316.74347 74502; 317.01006 43108; 317.51729 29098; 317.66043 1342639; 317.69703 5529; 317.792 1363989; 317.89905 52844; 318.08388 1791555; 318.08653 22521; 318.84874 3677; 319.03364 24050; 319.14221 133691; 319.18791 54479; 319.29434 820469; 319.59179 1895157; 319.79284 40577; 319.80342 6970; 319.80826 6485; 320.2583 72886; 320.29425 33041; 320.47838 3750835; 320.50483 29747; 320.72249 59862; 320.98155 2613039; 321.1338 21750; 321.36295 6759; 321.41169 23403; 321.49033 1118657; 321.71547 85556; 321.83745 165005; 322.04292 2172928; 322.0856 1166461; 322.08941 647231; 322.20192 2487105; 322.2597 7952; 322.27626 2278922; 322.43239 77543; 322.51213 1777796; 322.63851 587; 322.94947 35713; 323.21455 2408239; 323.54178 121659; 323.74361 63260; 323.78699 49507; 324.06552 2059522; 324.33389 2747472; 324.79545 23598; 324.80065 19539; 324.93781 2573974; 324.99898 29182859; 325.14912 385267; 325.22236 9696852; 326.3054 26906; 326.44812 78976; 326.56178 1872; 326.58912 27716; 326.60346 3835411; 326.77029 128656; 327.394 10512014; 327.40926 21672322; 327.57169 245; 327.6169 28785; 327.96857 743354; 328.00998 48311; 328.06655 53497; 328.37759 3486314; 328.44452 1751326; 328.51292 32479; 328.69737 20800; 328.93864 21271; 329.09822 1469209; 329.34012 73370; 329.4771 9982; 329.51319 74462; 330.18356 27226; 330.24516 7573; 330.3046 91587; 330.67174 4245514; 330.75081 38833; 330.79229 20724; 330.86085 599398; 331.10976 6408365; 331.20564 1079454; 331.2108 2963825; 331.24476 32803; 332.11118 641609; 332.46763 1064517; 332.52269 49168; 332.9277 635076; 333.17393 34340; 333.37642 27161; 333.48824 5647; 333.53544 155399; 333.69037 24651829; 334.28548 873208; 334.35556 3821260; 334.50174 415411; 334.69193 527299; 334.84 3064873; 334.87593 25598; 335.1976 1297418; 335.21326 81704; 335.26537 9991515; 335.29797 64255; 335.32592 60993; 335.37703 26082; 335.5985 985476; 336.16832 4731; 336.21123 73731; 336.21831 2988483; 336.27037 8902; 336.71177 7910622; 336.76744 123009; 336.9576 14419; 336.97319 138672; 337.01006 72060; 337.04621 5000827; 337.25913 191962; 337.39753 1239379; 337.71074 52206; 337.75301 29307; 337.79563 1023824; 337.83931 45155; 338.11011 76525; 338.21528 1298704; 338.27314 400340; 338.34345 4044667; 338.3652 3236; 339.10621 1942149; 339.18417 4030; 339.25588 47143; 339.46936 55240; 339.82371 21901; 339.90515 42484; 339.93682 50699; 339.9984 16784; 340.0213 2025290; 340.17778 4449; 340.47797 30357; 341.4504 6903977; 341.70443 1063134; 341.85796 105636; 342.00018 308869; 342.04199 55036; 342.22423 47037; 342.23731 9400; 342.54808 1025793; 342.64631 1148; 342.70696 1277007; 342.7794 3711043; 342.80392 22807; 342.83722 20333; 342.92684 31622; 342.94149 1663; 342.9418 123923; 343.09473 3121376; 343.14503 4117479; 343.37235 2921300; 343.67872 199186; 343.77982 46985; 343.81391 40798; 343.94391 14897; 344.54174 22337; 344.57933 606079; 344.59764 28841; 344.84587 26848; 344.89521 36588; 345.4413 3937847; 345.55561 25042; 345.68743 2546; 346.03679 5511306; 346.23584 73940; 346.25766 52257; 346.31839 59546; 346.32562 3489508; 346.34244 4859; 346.48381 1466; 346.58959 28569; 346.59347 20645; 346.61338 1590; 347.46799 3116107; 347.56716 412; 347.5765 8277359; 347.57759 156228; 347.63367 4839; 347.7259 1271175; 347.88077 2981906; 348.07181 32911; 348.1916 2970751; 348.24422 50908; 348.28539 62871; 348.37811 47495; 348.69459 22830; 349.13516 12413; 349.22225 44969; 349.30161 376333; 349.31797 15232; 349.58104 79700; 349.66877 9332; 349.72783 305093; 350.06946 54678; 350.22923 7792; 350.39631 9380020; 350.5529 2042385; 350.79357 520009; 350.79991 1909652; 351.0604 22445; 351.34427 1393558; 351.37874 1888033; 351.47705 4362275; 351.7259 3983929; 351.89667 5881406; 351.91975 7486; 351.98354 78707; 353.02887 1447703; 353.057 8925662; 353.11574 194063; 353.28844 916147; 353.35884 25463; 353.446 4692687; 353.75737 48370; 354.04291 2274760; 354.11004 4108749; 354.14415 10276; 354.25551 10740622; 355.1319 1151160; 355.16437 28766921; 355.33613 2301; 355.40381 138157; 355.47989 22430973; 355.80873 24831; 356.67679 913132; 356.71943 44600; 356.77592 1640691; 356.88077 1201432; 356.88967 30919; 357.13631 39633; 357.3752 2066; 357.55205 25257; 357.65554 129947; 357.88138 1148814; 358.02186 44051; 358.13426 174978; 358.31692 2517980; 358.44313 38880; 358.50625 1334929; 358.56069 9042122; 358.76444 4455; 358.77329 4917; 359.11978 57453; 359.31135 104814; 360.71561 6447; 360.98181 10129; 361.21339 2301990; 361.61758 612573; 361.73996 1242137; 361.9492 1590642; 362.31492 16173; 362.40414 1192717; 362.58874 14992; 362.90429 24902; 362.92112 146429; 362.96016 3237213; 363.00944 1186949; 363.02759 48648; 363.0653 11313; 363.1407 1432; 363.29264 848767; 363.40237 21918; 363.57007 50984; 363.57617 52022; 363.6796 918032; 363.9426 52890; 364.00652 933039; 364.05533 44270; 364.13638 15522311; 364.18935 1273809; 364.23085 2509554; 364.64429 64599; 365.22957 5804; 365.66954 1838648; 365.7492 8278; 365.79991 62986; 365.97317 31761; 366.07191 731; 366.64083 13066844; 366.7122 668529; 367.30744 21553586; 367.47387 213606; 367.69042 28746; 367.87172 8906202; 367.90013 5199992; 367.93926 51951; 368.02046 19993; 368.54355 74333; 368.72044 357412; 368.73464 45643; 368.90984 20800; 369.3505 67868; 369.40375 58539; 369.62895 5524500; 369.72297 1931678; 369.74533 6667067; 369.76489 8324997; 369.85356 29428; 369.97335 4841; 369.99272 7793; 370.10037 23019; 370.10792 79720; 370.15629 16910; 370.40705 45185; 370.69258 5370067; 371.14406 109957; 371.38126 46731; 371.72881 1871720; 372.04978 44256; 372.4177 8129277; 372.84235 25950; 373.0124 337576; 373.05509 9000; 373.26401 5850669; 373.28819 321670; 373.65041 20547; 373.75925 56697; 373.82831 54866; 373.83704 24316; 374.42766 44068; 374.59945 5441; 374.81586 25025; 375.17776 79229; 375.19905 67982; 375.30736 2787664; 375.44793 22156; 375.66111 74664; 375.75407 50381; 375.99559 1246811; 376.1951 21911; 376.51089 149352; 376.62462 13577; 376.72879 865; 376.75221 22350; 376.9182 21585; 376.92623 75096; 377.24446 33349; 377.34452 25777585; 377.39343 54045; 377.53954 3925262; 377.66153 116220; 377.80366 47865; 377.8165 617532; 378.28477 197199; 378.50568 1166157; 378.5223 64346; 378.97971 9445397; 378.99152 5121064; 379.09673 9661377; 379.18535 78289; 379.19554 7178; 379.42147 105436; 379.494 3781713; 379.54026 28684; 379.75053 62605; 379.78299 81298; 380.2925 4912759; 380.50297 5093; 380.6355 4134; 380.7521 21957; 381.15754 15827590; 381.24177 71444; 381.43932 259003; 381.45202 737484; 381.65563 39977; 382.37517 19342; 382.7773 1743651; 382.8634 29912; 383.19241 129863; 383.42274 26570530; 383.66848 3965965; 384.01495 1515475; 384.09901 843444; 384.20224 173188; 384.41655 3072664; 384.42143 59270; 384.59657 56214; 384.753 4378; 384.88911 3782; 384.93947 161049; 385.01567 29188; 385.04502 51533; 385.06965 3638228; 385.121 16965; 385.21898 58609; 385.23054 3889074; 385.60827 7081753; 385.90434 9102; 385.91903 1088778; 386.28153 73204; 386.49109 75027; 386.81124 894775; 386.93483 72227; 387.13754 2628520; 387.44851 50979; 387.66142 4402920; 387.77163 9430; 387.86371 575016; 388.4732 3578502; 388.61593 632; 388.79941 186382; 388.92123 24643488; 388.94999 1698; 388.96981 6325; 389.03986 41093; 389.07581 67479; 389.15828 129628; 389.22557 102557; 389.34905 20335; 389.74017 5096; 390.23711 661; 390.43827 71807; 390.66108 4285; 390.736 3943583; 390.80033 1995724; 390.98232 2173960; 391.21579 74679; 391.23169 23984; 392.06452 5740; 392.0832 59541; 392.17832 8463; 392.18069 74278; 392.67334 24586713; 392.70033 3944529; 392.72044 24665; 392.81855 43091; 392.86638 1311517; 392.88082 1524; 393.3441 878; 393.6156 4557019; 393.6278 15189; 393.77025 47958; 393.86054 1183429; 393.95253 5915918; 394.08824 44334; 394.09643 1417553; 394.30681 18785157; 394.40191 4829625; 394.48459 3470370; 394.85182 73862; 394.93678 2939423; 395.58947 3713; 395.60255 789297; 395.71321 328859; 396.03764 30340; 396.20547 21728; 396.22267 1837473; 396.35167 9245; 396.5129 26159; 396.51305 1021912; 396.64916 53447; 396.68987 4559441; 396.75973 191017; 396.95512 1339162; 397.02915 205800; 397.65534 1574670; 397.89575 74910; 397.92577 38749; 397.96568 6711; 398.05181 14530; 398.33958 8779612; 398.42234 63440; 398.45472 212840; 398.54193 324; 398.85605 73734; 398.99577 141628; 399.01631 27315; 399.18309 18826; 400.17384 76877; 400.19414 26180; 400.23185 1988177; 400.63727 2007609; 400.93372 82967; 401.12406 921509; 401.35167 104942; 401.49642 11481; 401.88543 1811783; 401.90493 36577; 401.94266 834789; 402.16605 1259; 402.20675 12911516; 402.40015 11202; 402.4254 185754; 402.4772 1679506; 402.53155 501; 402.64113 7827794; 402.73044 74382; 402.86023 2102; 403.31478 47243; 403.34173 53721; 403.44243 4174; 403.91449 463627; 404.26859 73260; 404.52812 21623; 404.70897 62530; 404.81293 1922203; 404.89913 7862710; 405.21297 28954; 405.24788 52773; 405.45784 15955931; 405.69419 13773; 405.80961 73540; 405.94707 38011; 406.06533 1185684; 406.15241 134416; 406.23186 3440911; 406.33784 33808; 406.38692 27337; 406.417 27888; 406.89564 5330349; 407.46721 2692756; 407.51075 76037; 407.56893 53330; 407.61139 21409; 407.95369 8883; 408.34984 12490; 408.43526 1453741; 409.2604 9848824; 409.68366 55917; 409.91299 27607; 410.11498 6161475; 410.36241 54494; 410.39402 3630; 410.51905 3065943; 410.52112 3495; 410.61113 120; 410.79303 2380124; 410.82242 228732; 411.04178 167203; 411.09949 7440734; 411.22798 1090124; 411.35362 20175; 411.35427 5427; 411.358 1560833; 411.35861 24362; 411.36691 66377; 411.69798 431; 411.80284 51184; 411.95394 964137; 412.05568 392925; 412.17052 9881138; 412.78375 7553; 412.95214 38772; 413.13405 65901; 413.18839 37556; 413.32779 240391; 413.33677 800607; 413.44092 120621; 413.91687 7861; 413.94422 1556616; 414.31796 148440; 414.3304 5186848; 414.33785 45458; 414.43515 171702; 414.6544 872738; 415.24989 44488; 415.36706 16415; 415.38597 1794108; 415.5657 7859; 415.79975 52017; 415.85096 11502; 416.09034 3223612; 416.57713 9080; 416.62745 74072; 416.8216 32780; 416.83391 46156; 417.17573 28383; 417.23056 10903; 417.27184 40897; 417.33125 76482; 417.66055 16178; 418.07959 5616; 418.16621 806094; 418.31432 56757; 418.50247 3034935; 418.516 52243; 418.82811 22806; 418.91237 1346664; 418.92705 356362; 419.51138 14335; 419.81086 1509042; 419.93331 5197; 419.96 21316; 420.11665 146822; 420.5787 985817; 420.97392 8494; 421.28123 1564038; 421.57347 35507; 421.58075 175444; 421.69392 78935; 421.79238 25528; 421.87902 1314; 421.92967 91698; 422.27745 21926; 422.97793 106304; 422.98997 55301; 423.21631 65211; 423.32461 3920911; 423.36436 40160; 423.68069 3669035; 423.86369 39703; 423.93917 7703; 423.95564 807; 423.95647 26094; 424.02443 17638; 424.02624 217481; 424.12288 358096; 424.16592 9678045; 424.39861 180684; 424.50205 45386; 424.82676 610745; 424.94803 391997; 425.11395 1246; 425.46228 50983; 425.72163 71103; 425.79318 139; 425.88025 40272; 426.01081 19891; 426.06952 133643; 426.97186 75191; 427.07889 4321553; 427.13303 26291; 427.22873 37750; 427.29195 1458644; 427.47661 896189; 427.51404 3848876; 427.83098 1292462; 427.85224 1339949; 427.87854 1580351; 428.1667 156950; 428.39553 21476505; 428.76443 1564834; 429.0652 1983507; 429.25681 20170; 429.44898 7613796; 429.6547 25481; 429.8392 68173; 429.9735 1364786; 430.25496 724390; 430.43894 1199323; 430.78608 3168; 430.94378 36954; 431.57256 86533; 431.63683 13795; 431.81276 4666055; 431.89421 9980; 432.04654 1521525; 432.26528 16070; 432.64506 6101; 433.07348 4014706; 433.43958 1719551; 433.63948 182178; 433.64629 76801; 433.78507 24304; 434.04705 6106; 434.33954 5563767; 434.4526 1331809; 434.49176 227493; 434.57601 39704; 434.69407 22562; 434.84914 8646833; 434.91551 8879961; 435.65318 5379; 435.77403 35892; 435.86024 26832; 436.20039 1591659; 436.23918 41152; 436.9877 79962; 437.06732 9443447; 437.34255 878685; 437.61208 9363525; 437.92101 667706; 439.06195 8400; 439.13947 39176; 439.15451 3892177; 439.21367 3885; 439.4032 25465; 439.9097 28702; 439.97336 26221; 440.14555 1661354; 440.17781 820517; 440.84755 76223; 440.87948 24823; 441.11441 8244; 441.18981 4057865; 441.31703 19997; 441.4105 143948; 441.48678 235; 441.78067 13064; 441.79646 54471; 441.91444 104466; 441.98413 10664; 442.20246 41072; 442.50043 3183; 442.57256 160785; 442.59409 825797; 442.89911 441703; 442.90405 5841023; 443.03624 99509; 443.18097 19220; 443.24123 1237; 443.53916 276908; 443.57744 765080; 443.60286 1783839; 443.62657 1714022; 443.65842 17845; 443.80214 470; 443.82544 55580; 443.86396 22567; 444.14008 10847; 444.48563 29321; 444.84083 2253719; 444.85165 3008130; 445.0334 706096; 445.23741 18527; 445.41878 28315; 445.64212 2250032; 445.69011 22951; 445.86555 17746883; 446.39166 1826; 446.67118 36582; 446.67644 3887067; 447.19045 1636697; 447.23078 75902; 447.30066 65531; 447.37862 110374; 447.4294 1322631; 447.5427 917039; 448.01996 1478421; 448.23655 31032; 448.29596 1377; 448.4158 53886; 448.98491 1964318; 448.99254 20605; 449.17268 40201; 449.19701 2446; 449.37391 8095254; 449.44517 3638419; 449.48216 21216; 449.61654 6953708; 449.6989 2485585; 449.72437 8593234; 449.78303 62724; 449.89008 110419; 450.34242 72896; 450.37131 54843; 450.56596 75355; 450.57344 6670; 450.69908 20779; 451.06642 930095; 451.50367 1837141; 451.80412 9959909; 451.91388 17024; 452.19214 26592; 452.7715 9419450; 452.87735 20298; 452.90071 2810298; 453.47722 900812; 453.51562 12146573; 453.85104 129265; 453.91227 76260; 453.94853 197762; 454.51576 71282; 454.80087 32566; 454.84389 22652; 454.97684 18195; 455.14389 1238240; 455.32225 145408; 455.39578 57433; 455.54106 79523; 455.69558 4948273; 455.80345 4796; 455.9064 5121926; 456.02666 66281; 456.06674 23682; 456.15419 1504199; 456.71721 1604967; 456.75696 826926; 456.91611 22631; 457.24739 45148; 457.30574 56067; 457.69217 29823; 458.29474 9874; 458.51611 8353; 458.75048 7628; 458.85971 66652; 458.99682 1852862; 459.06377 171231; 459.31742 50492; 459.42371 60947; 459.42457 20689; 459.48979 2331; 459.56974 54864; 459.60743 3896; 459.89711 9072091; 460.04024 43126; 460.09236 41764; 460.39546 7632; 460.6433 3782; 460.88663 62122; 461.13209 51843; 461.63858 822822; 461.68883 14111; 461.75686 1758268; 461.96354 361; 462.00034 9465; 462.32526 8288; 462.33692 38338; 462.34812 29092; 462.59304 31034; 462.65052 63752; 462.82784 21782667; 462.84765 1277; 462.86127 4137131; 462.87014 41838; 462.90023 77195; 463.2316 293726; 463.25705 914002; 463.30173 62194; 463.32252 4829494; 463.41837 29234790; 463.47995 6706865; 463.55374 14436085; 463.60884 1941287; 463.8035 4431837; 463.88029 1681159; 464.26435 4551514; 464.51682 5803001; 464.56703 15495; 464.65839 25652; 465.20584 2267211; 465.2423 993401; 465.28321 64105; 465.53249 19115; 465.53664 1616615; 465.92222 8097451; 466.05724 3079528; 466.29534 119479; 466.48348 9712186; 466.90322 577028; 467.24722 3199951; 467.36702 20214; 467.51411 13205; 467.52898 12235762; 467.55301 497799; 467.9904 31195; 468.19375 8181466; 468.45196 11455; 468.46581 67047; 469.23656 3261778; 469.31274 1173013; 469.48451 2003; 469.5324 4445556; 469.73085 26350979; 469.75943 443282; 469.95095 44817; 470.48395 72949; 470.48957 4596338; 471.2404 42781; 471.25969 7832160; 471.35535 25176; 471.40979 79534; 471.5243 7389; 471.57183 772207; 471.91448 1622148; 471.98487 50611; 472.08458 4486; 472.15776 26365; 472.3253 4302027; 472.95552 1640809; 472.99757 3741281; 473.07405 18564533; 473.47467 5017665; 473.57314 198847; 473.65308 1224541; 473.77509 28337; 473.85909 1971714; 474.1305 58491; 474.59337 1364403; 474.80971 60976; 474.87572 23892; 474.91812 1017181; 475.16837 46672; 475.18205 1641662; 475.36237 73670; 475.39408 17489537; 475.54558 2112959; 475.55632 14293; 475.60946 1258; 475.73007 1315; 476.2499 10919; 476.36704 50788; 476.37264 2261659; 476.58408 8572; 476.67726 398610; 477.02829 588400; 477.07478 47533; 477.07486 7323; 477.13638 9407; 477.20566 4125; 477.31689 4277658; 477.33798 28996; 477.40736 45862; 477.92518 463; 478.18381 17229158; 478.34673 68679; 478.40836 4549211; 478.58172 677; 478.60863 807414; 478.79345 69274; 478.873 30211; 479.1185 68189; 479.21097 29722; 479.47426 139992; 479.5199 9105; 479.60195 45388; 479.67368 26357658; 479.72881 22001; 479.85345 15217; 479.87664 624671; 480.03342 80776; 480.06203 145062; 480.37431 23814; 480.66315 47043; 481.0804 6335394; 481.51809 5303; 481.61839 3494; 481.88043 5162; 481.91141 2390045; 482.37658 1514465; 482.45368 2325191; 482.56256 167150; 482.77365 66693; 482.85827 44696; 483.95399 55417; 484.06953 20972; 484.09415 27873972; 484.50309 43029; 484.64178 4674598; 484.80438 43037; 484.85203 104286; 485.16968 73315; 485.54255 7586; 485.58066 2775842; 485.76594 8598649; 486.00229 25508; 486.09144 667747; 486.3337 2301; 486.48324 3089817; 486.48708 9154226; 486.60421 29199; 486.69724 671571; 487.31784 63790; 487.34934 53204; 487.55484 217598; 487.72835 4821925; 487.93451 7138; 488.07732 7597; 488.17256 4895688; 488.21935 679057; 488.75821 1014; 488.90892 1169; 489.18713 3547; 489.4642 814903; 489.47651 688195; 489.56011 96218; 489.90529 3527452; 489.98493 8842; 490.30121 28146; 490.3316 4415; 490.53582 1947267; 490.66168 62640; 490.76239 31786; 491.15216 559709; 491.25929 45140; 491.56373 11966; 491.69429 26734089; 491.91197 42882; 492.1459 128563; 492.38976 5678721; 492.5213 365000; 492.8875 68414; 493.03403 35730; 493.08024 73914; 493.3085 120693; 493.38856 49504; 493.76249 21882; 493.91094 5034; 493.99611 9256003; 494.45503 28004; 494.5217 675932; 494.61126 56438; 494.72405 8408794; 494.95249 72670; 495.02648 22363; 495.02744 4177565; 495.306 72567; 495.74605 9647621; 495.8576 38400; 496.49094 38943; 496.66659 62401; 496.74236 34407; 496.96327 428648; 497.02524 39615; 497.06605 1131773; 497.19627 2416004; 497.21529 64499; 497.22288 67858; 497.43259 5122; 497.55234 2388; 497.57873 9564033; 497.6077 766; 497.68471 483727; 497.90914 30405; 498.56604 5177; 498.5761 156274; 499.03932 6502713; 499.11219 43816; 499.67612 4493275; 499.70507 14326; 499.83038 61720; 499.94709 36298; 499.97017 24370 diff --git a/traffic/traffic_5e9_5.txt b/traffic/traffic_5e9_5.txt new file mode 100644 index 0000000..ddc5052 --- /dev/null +++ b/traffic/traffic_5e9_5.txt @@ -0,0 +1,7 @@ +<5, 0>: 0.00952 6828331; 0.04623 7358; 0.26869 2663531; 0.33533 50290; 0.45955 7713; 0.47452 17053421; 0.73185 29288; 0.83988 34466; 0.87307 21383; 1.26537 161583; 1.44583 5463866; 1.52111 702851; 1.7131 981827; 1.80475 4025; 1.90219 106; 2.23895 40684; 2.47888 4692864; 2.89529 926090; 3.15181 1683611; 3.53669 20921; 3.58577 14076; 3.58734 20822; 3.69719 9408; 3.70366 7967; 3.89396 1170179; 3.92428 140415; 4.08832 54049; 4.24657 63194; 4.6069 45543; 4.93502 4607090; 5.08014 634101; 5.30168 76329; 5.50039 7179329; 5.72887 56106; 6.34923 64369; 6.84408 2645; 7.22021 117161; 7.26389 4317; 7.40244 5066; 7.43524 3781226; 7.52615 10062141; 7.6989 187408; 7.78425 3097335; 7.79832 3161; 7.84954 856893; 8.23974 7184; 8.4029 5306323; 8.53908 63657; 8.75521 974; 9.08993 19402; 9.29414 67833; 9.58123 5573; 9.77473 1582; 10.35709 30644; 10.5047 2474962; 10.65198 37133; 10.82475 2949161; 10.94713 3391307; 10.94809 2021802; 11.0852 72676; 11.45777 22076; 11.53615 6793483; 11.54248 585958; 11.69976 39874; 12.03072 71398; 12.03431 42332; 12.31406 1659; 12.49935 4204289; 12.73588 12399; 12.88398 22786; 13.04482 8394; 13.29477 172138; 13.32175 6082449; 13.37918 1663227; 13.4736 986134; 13.52916 6494; 13.98675 7014664; 14.1948 48428; 14.31573 24228; 14.36533 29867632; 14.62996 25403402; 14.64214 27968138; 15.54882 2627974; 15.549 48442; 15.66334 3759; 15.87823 56070; 16.14241 6022614; 16.44831 75583; 16.90683 4270842; 16.92169 9548804; 17.14614 43260; 17.23466 159554; 17.28828 3721514; 17.36354 51452; 17.44513 6417; 17.45265 2779347; 17.96128 13674; 18.12661 7771093; 18.25221 1708; 18.29636 26799; 18.39201 407093; 18.80956 7094804; 19.26845 932183; 19.407 47300; 20.01826 77378; 20.51347 22978844; 20.92603 1894119; 21.07335 24348; 21.08923 4595915; 21.22437 159884; 21.42271 1289988; 21.62127 159417; 21.63215 1046; 21.81322 34261; 21.83472 27454; 21.92127 33833; 22.04823 2128; 22.0585 138628; 22.28559 1453219; 22.32556 20996; 22.38428 40204; 22.8055 63243; 22.9644 29411; 23.39002 9593; 23.44675 5986000; 23.92424 2936; 24.19477 19883; 24.52893 35641; 24.6425 76052; 24.77358 522; 25.18327 209272; 25.25266 16513; 25.35702 162472; 25.36386 166419; 25.5317 1174114; 26.17328 14753482; 26.39397 33192; 26.70998 164718; 26.78916 4919876; 27.19221 50154; 27.60899 98240; 27.62943 55184; 27.67999 1230120; 27.75451 33905; 27.95345 3933; 28.05763 74304; 28.1531 25799; 28.22026 5261; 28.25055 37948; 28.27253 4756994; 28.36653 174761; 28.85878 3072528; 29.16744 26163; 29.20621 1442193; 29.2516 30550; 29.30462 5439; 29.38276 4863974; 29.5374 5149; 29.61467 1578564; 29.65884 490257; 29.68524 3649330; 29.72877 64354; 30.17042 423382; 30.26738 4572523; 30.31042 141272; 30.31748 2593238; 30.49278 8686; 30.98599 133267; 31.10607 5314; 31.21085 3694; 31.27008 1702076; 31.34034 2766; 31.37798 26375; 31.49654 41686; 31.67769 67348; 31.74323 925006; 31.90454 1982692; 31.97933 56335; 32.05522 4914755; 32.16397 35996; 32.39502 5722583; 32.48513 9810; 32.83987 123707; 33.26275 27176; 33.41026 67885; 33.46031 79277; 33.95315 1265258; 34.00082 9985; 34.26769 50787; 34.30458 2027998; 34.31126 127941; 35.03527 24028; 35.21826 3848670; 35.25053 360558; 35.67713 9778468; 36.02331 6162; 36.18059 144268; 36.25916 25876; 36.68553 36413; 36.69308 1884; 36.90227 1518482; 37.31731 760; 37.35442 13451; 37.38572 6786; 37.45518 28091; 37.53574 1165; 37.91288 189591; 38.22802 305339; 38.25404 7939243; 38.34832 3809; 38.67736 77799; 38.80469 872411; 38.92391 67718; 39.15483 384392; 39.2875 54; 39.37436 3780688; 39.38856 1785236; 39.50237 157297; 39.76491 21332; 40.12965 56840; 40.40804 5709; 40.41897 120481; 40.55208 924730; 40.619 66621; 40.82231 23075649; 40.89968 5105196; 41.31351 36603; 41.42387 20405; 41.6435 9073; 41.70908 5558578; 42.14709 72033; 42.46657 7466; 42.51701 22019468; 42.80879 290974; 42.9669 177315; 43.09073 6271214; 43.49223 26959; 43.72911 50323; 44.034 24068; 44.31711 1717355; 44.69171 5666; 44.79288 1086692; 44.82766 27888; 44.96893 4194; 45.01078 77953; 45.04997 3289044; 45.21796 109007; 45.25647 9784703; 45.66669 8606877; 45.90562 29771545; 45.90662 18789; 46.03057 42131; 46.0907 20870264; 46.16808 1422638; 46.16896 79440; 46.25755 1146008; 46.45627 12986; 46.8018 39539; 47.31914 63897; 47.37635 28223; 47.40807 712; 47.89341 40852; 48.23607 25548; 48.38031 7645; 48.45472 25285; 48.48473 515756; 48.50624 7764; 48.75041 3643; 48.75142 8345; 48.87672 1339; 49.14227 485743; 49.59505 1904; 49.84856 2076723; 50.16189 8287; 50.44589 2731087; 50.45851 577461; 50.81513 5671116; 50.94975 36161; 51.03318 51734; 51.15453 8000; 51.33545 104922; 51.38811 314375; 51.478 23691; 51.4921 9154; 51.99194 154007; 52.05642 51020; 52.11527 26504047; 52.55438 8589676; 52.5641 1920456; 52.64056 4420821; 52.66709 12980; 52.72311 3005023; 52.77399 21644; 53.14399 3419016; 53.16475 3163; 53.42462 4168700; 53.64416 1861789; 53.6743 4669541; 53.76474 23942; 53.80868 169065; 53.99904 14693; 54.04654 7478; 54.12216 9491; 54.20654 391136; 54.3839 5209784; 54.44887 3585; 54.61635 1774911; 54.79267 69090; 54.84703 159376; 55.95293 2299736; 56.41481 4858; 56.43113 71631; 56.44157 9349435; 56.52774 2023228; 56.56886 2515450; 56.6697 28412242; 57.17866 975; 57.45765 12988540; 57.55785 10878; 57.68826 54872; 57.74118 22293; 57.78994 1176051; 57.87626 1251500; 57.95936 35451; 58.14839 1132618; 58.23365 52645; 58.2745 162546; 58.84729 2191159; 59.00402 4449710; 59.14643 8320435; 59.189 37969; 59.26754 60035; 59.39425 648320; 59.86476 512850; 59.90534 5253492; 60.23139 28916; 60.26296 22024928; 60.45563 2230800; 60.78035 9344689; 60.85989 11191380; 61.08827 22281275; 61.22487 63669; 61.35775 37289; 61.38858 273; 61.42943 35250; 61.71249 6869771; 62.07319 56770; 62.12937 22861; 62.23134 6018; 62.48383 4629695; 62.61989 1862147; 62.7459 6132; 62.75006 38902; 62.75939 32641; 62.783 278; 63.09766 86478; 63.32121 7712; 63.39061 473924; 63.6102 41141; 63.98175 124061; 63.99438 32921; 64.14762 1891906; 64.20046 38504; 64.40648 23191377; 64.50484 9842; 64.60301 1039250; 65.4145 3657621; 65.43676 4257937; 65.46308 5177; 65.5016 7373838; 66.27941 176009; 66.75528 24007; 67.25711 9266816; 67.39574 1707427; 67.44202 1243631; 67.68476 28284; 67.97476 78941; 68.2243 4500661; 68.27914 16253; 68.29385 433405; 68.65369 1769398; 68.65515 57895; 68.7346 1254668; 68.8555 22700; 69.01111 75859; 69.34087 8128610; 69.83771 7401994; 70.09003 71853; 70.14164 539843; 70.41628 2910607; 70.51733 142356; 71.28329 1330548; 71.58775 4703171; 71.92887 5732026; 71.9404 57056; 71.9944 94715; 72.08179 152143; 72.10473 990222; 72.2076 835015; 72.30082 39996; 72.30143 58422; 72.70437 16201; 72.72916 1471077; 73.11764 4698892; 73.22225 12261; 73.42544 26100; 73.47907 196072; 73.52625 43339; 73.53809 190; 73.64353 4131035; 73.71014 1716149; 74.07301 9964396; 74.22581 180185; 74.27454 6630399; 74.36924 2492787; 74.38437 21403; 74.5733 20600; 74.76071 169156; 75.02307 474664; 75.24357 28158066; 75.39785 6644; 75.52967 17281; 75.81406 2944; 75.83663 1906785; 76.12948 17172; 76.22265 4038821; 76.71201 60966; 76.79847 614768; 76.83621 476; 77.34054 7444497; 77.49044 1792321; 77.50964 562628; 77.74233 621843; 78.45725 41255; 78.48896 87620; 78.54912 23766; 78.58066 1419; 78.61465 13812; 78.85736 3520176; 78.97091 93508; 79.05504 4806057; 79.09458 3609; 79.38278 9705703; 79.41536 2041376; 79.78886 1651; 79.89444 1782745; 80.06979 650701; 80.12689 876659; 80.19156 24703; 80.22612 1981859; 80.24894 852786; 80.37131 1054; 80.45263 16227; 80.54131 36641; 80.61682 1849; 80.67072 6277; 80.9655 21912; 80.99258 13620; 81.01104 478110; 81.04789 18884; 81.05683 2708891; 81.07786 995919; 81.17038 3094930; 81.47363 67960; 81.52359 88238; 81.87386 78736; 81.96145 2930568; 82.01723 5137; 82.1823 178143; 82.56863 33419; 82.87632 2302739; 82.93 1748; 83.15318 29496; 83.43513 149616; 83.81172 9374066; 84.05241 1274589; 84.64761 7814466; 84.6731 2150344; 85.44044 23792160; 85.45728 6442708; 85.90136 323514; 86.38273 10107746; 86.46928 9300434; 86.66814 1590464; 86.76427 4242831; 87.09067 15150; 87.18321 61496; 87.26946 9973; 87.34318 568918; 87.39604 211939; 87.85956 1649616; 88.05103 15385; 88.09522 8622; 88.24829 1948865; 88.45013 41317; 88.52483 22758; 88.55746 4218; 89.1824 3271; 89.4481 133652; 89.55502 28604; 89.79098 139077; 89.79152 2589749; 89.83902 654360; 90.20313 14663; 90.51295 1834138; 91.18355 1510645; 91.19033 2811684; 91.22506 74155; 91.58863 548540; 91.6046 14153; 92.31878 4364; 92.37864 4813841; 92.39354 3129381; 92.58232 427621; 92.71111 2152; 92.73394 161867; 92.7866 152416; 93.11676 47398; 93.11914 3727554; 93.36511 6626277; 93.39562 264401; 93.49569 3188; 93.66251 6296; 94.00028 1817881; 94.19396 2090181; 94.37051 68997; 94.93594 83068; 95.06949 110082; 95.2124 13937739; 95.23543 8283; 95.60289 922266; 95.67189 49436; 96.00553 2438951; 96.023 19974; 96.06994 12168; 96.20839 26029; 96.58349 889026; 96.7479 47550; 97.13329 29742117; 97.17335 512466; 97.44092 63613; 97.6471 239204; 97.91901 75097; 98.1062 9403451; 98.17391 14045; 98.47449 56076; 98.83273 26564; 98.88162 3111; 98.93589 1694; 99.29804 9303; 99.36621 9019232; 99.39804 62261; 99.43519 1688183; 99.65102 11190; 99.67937 5366; 99.7888 9561874; 99.85239 5608309; 100.15188 1554; 100.19999 6673; 100.40307 2126823; 100.67025 4548; 100.73173 75102; 100.7381 1508154; 100.92448 1312236; 100.94878 316243; 101.34612 3292; 101.89005 77356; 101.97447 8769; 102.20327 66778; 102.33451 26075; 102.47089 21828; 102.51434 2042986; 102.64562 932283; 103.14971 3519072; 103.15622 40955; 103.39681 9038831; 104.1248 66027; 104.30425 2587300; 104.4528 12904; 104.46913 4301127; 104.68221 11116055; 104.71228 1506642; 105.03317 706060; 105.06052 8616396; 105.10404 79298; 105.23632 3766917; 105.44054 234284; 105.45371 39262; 105.71269 37798; 105.90236 47365; 106.10014 21010; 106.11363 69324; 106.15902 48269; 106.53058 48614; 106.70119 3256978; 106.97129 938120; 107.10687 49751; 107.21596 9752306; 107.51218 5466647; 107.53321 5361; 107.7082 23821169; 107.77925 2954987; 107.8478 9953; 108.07821 24991; 108.12741 63847; 108.28789 840491; 108.56155 9969; 108.76221 1846835; 108.84408 57627; 108.97821 11002; 109.08106 6913883; 109.37549 150297; 109.73935 49509; 109.78203 6407; 109.84354 1064352; 110.19992 9501174; 110.32599 8121448; 110.32641 820394; 110.47743 94455; 110.7127 2499409; 111.26313 1331863; 111.54843 9382093; 112.10413 61657; 112.18104 14892; 112.45962 70083; 112.46977 23985; 112.56944 16410447; 112.57617 78412; 112.63586 4347; 112.73693 23016; 112.81684 98213; 112.96927 438004; 112.98906 711933; 113.21828 721255; 114.42627 57313; 114.43751 61696; 114.51948 2134794; 114.52352 2114; 115.03024 171863; 115.22905 47006; 115.9301 896; 116.10898 33706; 116.27584 55506; 116.51877 3700777; 116.64627 10941; 116.98052 1069802; 117.18099 678; 117.25133 19861; 117.75051 8946; 117.79875 157173; 118.09929 24288; 118.15539 25491; 118.46161 259339; 118.52684 26648; 118.54026 3363; 118.55957 5464; 118.64672 820243; 118.65658 1742371; 118.92656 4644; 118.99572 163468; 119.04792 9092; 119.24248 22509; 119.25982 6835819; 119.47695 6059046; 119.51528 1720973; 119.68462 67575; 119.89559 21519; 120.39366 4452; 120.55431 6732887; 120.63257 2136530; 120.77369 1878103; 120.87148 1150034; 121.05161 4328797; 121.33144 577937; 121.51655 628032; 121.65471 13477; 121.90677 314355; 122.02673 9666691; 122.03559 4456; 122.408 65183; 122.62822 3483237; 122.63046 53224; 122.66182 20687; 122.76493 133744; 122.83288 4524955; 123.05076 1495911; 123.15739 28949; 123.19869 13083; 123.21761 37837; 123.4596 24688; 123.76831 1139509; 124.12368 42178; 124.27145 25891; 124.46871 53429; 124.53877 71381; 125.54503 57006; 125.73686 90561; 126.03408 9706536; 126.61336 28831; 126.63239 691122; 127.26416 61620; 127.66834 399143; 127.68443 5294; 128.03967 15787; 128.28223 165040; 128.39389 734763; 129.30607 772; 129.36471 95398; 129.76052 5878719; 129.92627 40108; 130.28986 100521; 130.39593 1891741; 130.8544 37844; 130.97838 2660; 131.29161 42040; 131.39469 8284724; 131.39885 69882; 131.46381 18160; 131.50598 2147; 131.54733 24030; 131.57935 79266; 131.63666 9312; 132.19709 249289; 132.258 1861881; 132.44206 799908; 132.84581 4800; 132.98786 491160; 133.23646 1031037; 133.25869 7515; 133.73774 25226; 133.79582 5959; 133.98868 876208; 134.8615 27590; 134.9221 26845; 135.05901 1687157; 135.39304 1466334; 135.4728 6548643; 135.61771 5759; 135.88505 41134; 136.21497 3965259; 136.21809 123423; 136.27679 197615; 136.33008 5270559; 136.33319 1766; 136.35861 14061; 136.49271 1397593; 136.50713 22504412; 136.62995 15662; 136.7908 22689; 137.0695 21743338; 137.21198 7639112; 137.51947 20115; 137.55647 5300643; 137.70001 195847; 137.78332 51148; 137.805 526086; 138.06317 69053; 138.47387 1869542; 138.48713 38066; 138.62045 22894; 138.72889 28158; 139.00922 9350; 139.22118 9357665; 139.27685 23995; 139.33578 871967; 139.4023 132970; 139.44222 5335; 139.54585 9588939; 139.63077 25464; 139.67392 50079; 140.17154 6605; 140.23908 13579963; 140.26712 31539; 140.29392 9569603; 140.346 24115; 140.86158 72688; 141.16387 9991; 141.21701 165863; 141.31798 769769; 141.36372 34026; 141.55217 7105746; 141.6907 4638007; 141.71721 7369; 141.85315 20489; 141.86673 13240; 142.01456 24000808; 142.17018 48347; 142.24822 730606; 142.3527 17775; 142.50003 32469; 142.74402 11395; 142.75681 5962; 142.85611 733498; 143.19878 79193; 143.89045 4751871; 143.90626 54626; 143.9069 285721; 144.47528 76270; 144.63056 5325; 144.70543 9711899; 144.8233 29516; 145.37829 7982708; 145.3834 5716; 145.7514 1109246; 145.80285 74898; 146.5219 8589; 146.91064 47423; 147.14983 130371; 147.26684 186595; 147.98572 22234; 148.71104 25000; 148.9 5975; 149.24638 92141; 149.27513 1701499; 149.28871 1160998; 149.38013 13837; 149.5683 73754; 149.58635 59399; 149.61958 187682; 149.78324 169; 149.82591 47742; 149.95658 150383; 150.10137 3481516; 150.30087 201; 150.82805 3074537; 150.97084 1746609; 151.15342 10431; 151.4391 13921448; 151.50364 40774; 151.64533 2182891; 151.98001 28686944; 152.45503 6605398; 152.50559 4459906; 152.69697 3676541; 152.88227 8255; 153.08213 23173; 153.11271 60144; 153.20173 49804; 153.20275 983; 154.40275 44337; 154.43374 3632551; 154.51445 602523; 154.74856 6779; 155.09493 1635183; 155.42858 1859746; 155.49984 8530; 155.62359 176361; 155.72125 1389; 155.75485 38729; 155.85013 71478; 155.86855 4293; 155.91375 136464; 156.08069 6065567; 156.09349 67468; 156.10857 38094; 156.19882 3041; 156.43173 697902; 156.5585 56127; 156.62727 78549; 156.8652 39303; 157.28024 7523340; 157.34214 6430; 157.54252 1576592; 157.58621 149100; 157.66866 6408675; 157.73558 46024; 157.74686 1661544; 157.86063 202676; 158.1898 1192366; 158.24694 3139445; 158.38563 4172; 158.50657 6184; 158.56301 55977; 158.70397 32405; 158.93603 567; 159.12011 71939; 159.12972 60703; 159.33213 25644; 159.64603 686515; 160.14053 4462819; 160.43462 16669061; 160.58129 31588; 160.67988 64684; 160.84576 1288023; 161.07023 15095; 161.21004 58518; 161.23586 1086135; 161.32958 26696517; 161.44264 8935047; 161.75955 101841; 162.13532 10973; 162.17157 1526774; 162.61545 28486686; 162.73047 4805596; 162.93373 2479991; 163.28039 964029; 163.3368 26226852; 163.41045 6567; 163.49919 1872514; 163.71599 1572953; 163.84254 37411; 163.89679 69531; 164.16782 5766143; 164.31715 2261766; 164.5477 67647; 164.93831 715450; 165.35171 6402; 165.6421 1727018; 165.71629 12560; 165.73523 24827; 165.97761 324134; 166.08585 1410941; 166.18204 24739; 166.61481 65285; 166.69295 108661; 166.77187 3591; 166.83874 17538; 167.19258 3040842; 167.45688 4904521; 167.64841 1328872; 167.90179 8206768; 168.00996 27869; 168.12082 3668184; 168.30792 72107; 168.59276 52701; 168.61137 8593271; 168.61981 9823; 168.81144 61801; 169.17097 5387; 169.43965 1102; 169.47832 1563251; 169.62929 1293888; 170.08366 36685; 170.2087 219899; 170.49428 74558; 170.61111 2790; 170.61758 2101883; 170.66234 56867; 170.7183 56647; 170.83737 3418; 171.00024 46770; 171.55479 124049; 171.9149 137086; 172.11425 39326; 172.656 1605501; 172.78399 1873825; 172.85996 10996; 172.96874 818100; 173.41627 25020; 173.46069 6286; 173.69847 6337446; 173.70121 78180; 173.99583 44375; 174.08233 64255; 174.30771 536988; 174.41501 1090551; 174.945 26536; 175.07994 30557; 175.36012 3842804; 175.42041 35128; 175.61128 9295030; 176.0717 602833; 176.17732 3295321; 176.29702 2376; 176.45317 36658; 176.55111 8769; 176.67715 6246518; 177.2367 19883; 177.38673 107686; 177.70129 6067548; 177.99208 5809; 178.39265 9155450; 178.44189 225832; 178.80733 4959812; 179.00149 501666; 179.06069 4010860; 179.08791 4963; 179.29339 8195000; 179.50828 40816; 180.06567 29952; 180.14945 2977415; 180.21898 43945; 180.25759 6996536; 180.30644 22930; 180.35666 2995563; 180.3763 7457566; 180.51498 2051230; 180.7206 9811; 180.77051 5663; 181.25961 15147; 181.79835 20520; 181.8455 2493799; 182.17191 27085; 182.24051 765962; 182.28644 3297; 182.54309 8269; 182.69493 54387; 182.72009 37329; 182.9929 8318; 183.1267 1334416; 183.17546 46181; 183.61566 1649; 183.89979 1982499; 184.0542 35914; 184.09041 5807; 184.16521 1676474; 184.44529 3708389; 184.56519 9595352; 185.0555 389; 185.12154 81054; 185.22526 64442; 185.27199 40614; 185.27811 32892; 186.07702 6068404; 186.18382 2011595; 186.55303 190724; 186.91306 1027573; 187.40882 28224; 187.51008 81804; 187.71366 29757; 187.78611 2371517; 187.83917 8681; 187.86862 38115; 188.0522 488972; 188.08058 2028; 188.63139 384471; 188.76259 2030495; 188.86483 46923; 189.01725 5085254; 189.07249 98921; 189.38168 51497; 189.71596 21478; 189.84887 12758985; 190.02609 9998; 190.14095 26931; 190.21288 6178278; 190.34911 2428; 190.39805 6992148; 190.49976 76532; 190.57753 19147; 190.67941 23166; 190.72427 346398; 190.74247 29818; 191.10713 1433849; 191.20562 2645; 191.22326 1880557; 191.43795 3162; 192.13541 21477; 192.2573 878264; 192.73915 6533; 192.89578 66051; 192.90835 1294244; 193.48809 11711; 193.7087 111858; 194.26645 8095345; 194.49055 43700; 194.62388 2582531; 194.64602 1909058; 194.70037 1221376; 194.88988 4545130; 195.25278 7042; 195.68204 9818; 195.68913 1641576; 195.81512 8545; 195.87818 29806; 195.97452 20626; 196.07479 45726; 196.1118 42119; 196.15375 170; 196.16858 47675; 196.55349 1679204; 196.56204 3561637; 196.58302 3631264; 196.64536 1338890; 196.6923 74052; 197.30125 3286300; 197.36782 1897808; 197.41465 36095; 197.45326 3899; 197.48648 20395; 197.56536 91180; 197.89661 287816; 197.92649 485190; 198.18665 1408221; 198.26652 13901; 198.36702 24690022; 198.38458 21560; 198.40326 154437; 198.51362 77298; 198.71832 23743682; 199.11141 814945; 199.18077 154319; 199.49582 6573417; 199.5079 4072; 199.67306 22940; 199.83026 1517035; 200.39139 2977; 200.7857 3545145; 200.82582 153545; 201.24042 31249; 201.33206 62597; 201.38738 27884; 201.48541 25712; 201.62332 35145; 201.88747 7769105; 202.13786 1705806; 202.8231 38407; 202.96438 743760; 203.00463 994823; 203.09134 68331; 203.16233 677662; 203.28768 2429258; 203.45094 2707043; 203.5306 559882; 204.07795 1912773; 204.10718 8575940; 204.10956 518877; 204.15445 33289; 204.7677 903633; 204.85081 21002903; 205.10932 77570; 205.11257 68644; 205.18044 577832; 205.43575 6050541; 205.48958 8864; 205.54662 68692; 205.5679 1189588; 205.93135 1668027; 206.35248 3388312; 206.58044 2837993; 206.70658 841124; 206.95663 83270; 207.46852 60605; 207.50838 36698; 207.58887 79890; 207.60057 5859643; 207.60862 16420; 207.68976 30581; 207.76815 5332; 207.90539 68147; 207.93928 78549; 208.29794 5359322; 208.30122 3807945; 208.51563 1472998; 208.80441 828332; 208.96099 660808; 208.96804 1750; 209.08245 45716; 209.74886 1321725; 209.84838 521392; 209.92374 2154904; 210.00645 134281; 210.32433 28237528; 210.49684 1921952; 210.77952 40449; 210.78979 3481; 210.82083 6070092; 210.84531 3776565; 211.2104 22602; 211.24418 3338039; 211.50992 682589; 211.64084 9210041; 211.93088 3830857; 212.0187 22523307; 212.56041 8108794; 212.57003 78993; 212.60742 28120; 212.91331 10631; 213.05863 736936; 213.10764 1553156; 213.23329 4208; 213.38584 7774; 213.42888 63122; 213.60376 78248; 213.69667 21366; 214.22237 49674; 214.29751 1128440; 214.30249 71369; 214.41969 57524; 214.8404 19311328; 215.00622 35690; 215.23212 79581; 215.30837 43897; 216.21121 28251; 216.21188 5409832; 216.23295 36960; 216.50249 14380; 216.61101 3769; 216.75678 1526008; 217.14921 3766519; 217.16507 10855; 217.33631 5362087; 217.36975 26140; 217.50747 95631; 217.56537 1977680; 218.03096 6415993; 218.26797 64984; 218.28495 152557; 218.40715 75317; 218.75446 3908631; 218.87583 38850; 218.96335 107252; 218.99029 2442552; 219.12875 935747; 219.19206 1551628; 219.36461 44732; 219.45106 105698; 219.82434 1757894; 219.94876 6185; 219.97126 56826; 219.98138 422367; 220.21018 8846775; 220.23696 41423; 220.41039 4056000; 220.75747 20259; 221.30521 59795; 221.57993 21973; 221.7359 5320092; 221.7839 40992; 222.06696 153036; 222.1024 33982; 222.32098 51050; 222.333 16994; 222.75037 74770; 223.42586 4679969; 223.81903 22706529; 223.9004 24648460; 224.15583 9197461; 224.27208 22371; 224.30722 1385498; 224.35749 9741; 224.45033 23052377; 224.62363 1535539; 224.73746 820108; 225.26161 358628; 225.42327 151458; 225.60339 31341; 225.6439 41507; 225.704 3579490; 225.72116 61217; 225.80877 3006447; 225.88024 53065; 226.27795 76510; 226.88865 7473; 227.10312 1102880; 227.17493 41551; 227.22018 1476041; 227.51758 4994782; 227.94622 77248; 228.00067 71; 228.50382 26373765; 228.56795 128942; 228.76094 95734; 228.92295 125061; 229.13834 41059; 229.35679 715975; 229.60813 31490; 230.27425 1900; 230.55902 47588; 231.3107 1408452; 231.66487 3234; 231.83614 20829; 232.00554 22289; 232.06118 264934; 232.11647 20932; 232.13529 7720310; 232.24369 2449111; 232.2731 772228; 232.29428 17672033; 232.33661 22174; 232.47153 2915506; 232.59878 55429; 232.68698 64909; 233.34813 936818; 233.97669 5384735; 234.16268 28227; 234.19044 64091; 234.26764 852484; 234.32676 8007478; 234.39251 426924; 235.05015 7740247; 235.26773 3338661; 235.46476 907417; 235.49096 133521; 235.51245 61974; 235.64675 861784; 235.65127 40560; 235.75488 8002454; 236.10686 33806; 236.11305 77871; 236.4289 7664; 236.55365 77078; 236.78372 15468; 237.04955 62649; 237.22458 1348690; 237.24293 13808; 237.37493 8990; 237.4092 74376; 237.45106 72095; 237.51617 38434; 237.51682 5587621; 237.70152 1318674; 237.98543 5419; 238.00542 7730; 238.03482 153189; 238.06312 3760; 238.65318 14211; 238.81911 1932292; 239.02032 6135248; 239.44931 39571; 239.48119 488; 239.61191 49839; 239.64067 195296; 239.68511 5317; 239.95402 5288; 239.9711 73458; 240.04939 1988615; 240.08248 24858; 240.09487 42333; 240.10918 1980490; 240.34566 768201; 240.4431 44915; 240.6467 787548; 240.79179 5941; 241.05061 76957; 241.26889 55671; 241.54752 69996; 241.75588 769231; 241.80226 52104; 241.8168 1859351; 242.0021 2854; 242.46092 1115272; 242.46109 2331783; 243.17464 26659; 243.41795 20296; 243.46122 6863; 243.59398 25324; 243.61791 52778; 243.63488 3532; 243.69494 343487; 244.12635 63990; 244.14911 311657; 244.17324 1685880; 244.32459 35932; 244.40676 23114; 244.91724 648128; 244.98461 38501; 244.99552 853957; 245.00151 5658; 245.20615 44873; 245.29385 9586; 245.46233 2136916; 245.56662 9032; 246.0124 4148726; 246.062 26589; 246.40656 1423708; 246.52012 29449; 246.60329 8052; 246.76559 322293; 246.81908 343472; 246.82558 483156; 246.83678 8249; 247.20182 26122; 247.48171 2733; 247.63393 2443937; 247.86292 2305679; 247.89781 174886; 248.07775 71345; 248.23471 2369; 248.35123 4221806; 248.53191 20454; 248.59663 587855; 248.97348 591785; 249.01905 817035; 249.11766 84657; 249.30719 9879310; 249.53736 876940; 249.61144 21634; 249.68481 1466664; 250.19847 40720; 250.21578 926866; 250.42077 191058; 250.7877 2980994; 250.97562 2209818; 251.04663 3673; 251.09883 3249; 251.18014 52068; 251.3177 141390; 251.65212 31626; 252.01791 25677; 252.09738 1326569; 252.10892 32563; 252.20664 1957409; 252.23085 441117; 252.27162 660726; 252.45399 9093; 252.59981 60627; 252.63703 65102; 252.68218 113194; 252.92493 4285116; 253.21513 27921; 253.27067 4090511; 253.29773 3571262; 253.36047 62521; 253.51416 59132; 253.59555 23959; 253.6844 29096; 253.74461 2831832; 253.77581 1836737; 254.04692 42235; 254.3915 10071; 254.43322 132357; 254.55767 12603; 254.88654 6335; 255.36922 8228905; 255.44587 61400; 255.47229 692200; 255.51213 10822224; 255.69802 3046720; 255.85511 25431400; 255.9783 2401458; 256.19107 358702; 256.44149 43930; 256.53973 983866; 256.59593 25388; 256.60773 6433154; 257.0636 9906960; 257.42237 7305530; 257.45732 7914; 257.49375 62557; 257.52352 1777490; 257.60125 5361954; 257.70454 1167796; 257.82101 25703487; 257.96313 23468; 258.32024 1515866; 258.56148 29267; 258.57264 25332; 258.82848 866425; 258.96035 77683; 259.11475 1690020; 259.15828 8787756; 259.20103 6777747; 259.24562 39810; 259.27709 21883; 259.35443 19755; 259.37161 6186427; 259.90913 43910; 259.98224 121507; 260.15288 6610820; 260.23741 4348298; 260.41717 6955; 260.82979 5744; 260.98156 795170; 261.03431 18304; 261.20383 3495888; 261.52105 2756009; 261.68121 19332; 261.75773 51543; 261.95803 1931123; 262.08086 20715; 262.11106 446098; 262.16471 38644; 262.27874 2038; 262.29613 108; 262.51613 73489; 262.52162 2955316; 262.53889 705878; 262.69512 2347; 262.73153 22564; 262.78431 22342; 263.11373 9399; 263.17973 1582; 263.31784 1063461; 263.40168 2249; 263.6826 672821; 264.03489 4818423; 264.29913 438604; 264.4415 64385; 264.44454 2033074; 264.45789 11229146; 264.77022 6999735; 264.91573 629337; 265.14565 185945; 265.21516 7044; 265.29159 63042; 265.54658 70119; 265.56353 34954; 265.87849 535556; 265.9754 56119; 266.03556 165151; 266.26176 47216; 266.40269 13262; 266.74804 187012; 267.14245 44249; 267.23316 28472; 267.311 64330; 267.49757 2763759; 267.6074 7639666; 267.81252 1037230; 267.91435 636445; 268.05255 6849665; 268.24996 611147; 268.55444 58479; 268.87197 25201; 269.40058 7735; 269.51926 1950820; 269.8064 16378; 269.85253 7299841; 269.93383 29894012; 270.22055 455; 270.25246 51717; 270.30914 22534; 270.58137 23557; 270.64562 84465; 270.71535 95478; 270.9137 7497; 270.99492 167670; 271.08403 8895; 271.10729 31627; 271.11395 16844; 271.13273 27325; 271.15832 5766999; 271.34657 16926; 271.51497 5307260; 271.54091 4002; 271.6473 34496; 271.70464 1343201; 271.73448 19190; 271.87307 30405; 272.38551 1710767; 272.57848 27419; 272.84449 22872; 273.2231 29550; 273.69628 9438252; 273.8887 4662; 274.31576 162514; 274.34967 1250802; 274.46362 5567; 274.84496 5781; 274.94763 473670; 275.14342 14371982; 275.22417 2639064; 275.2339 3155; 275.64965 402679; 276.07513 957528; 276.15096 2812527; 276.3656 3449; 276.47532 5000; 276.96423 11479; 277.0439 9113672; 277.12527 4875387; 277.60652 1537060; 277.98857 188816; 278.04714 3121554; 278.21999 294938; 278.57799 8535048; 278.89837 23358; 279.14203 8683929; 279.3298 8691; 279.497 7246; 279.63114 41931; 279.7564 3475332; 279.91172 460449; 279.96216 465; 280.14043 4977423; 280.16039 5814663; 280.35668 1837538; 280.43917 18289; 280.44442 53463; 280.46853 60932; 280.67315 8533; 280.92213 8895096; 281.00336 31979; 281.55492 227825; 281.56167 28775; 281.6243 731510; 281.76487 2408817; 282.01012 45881; 282.262 780131; 282.52748 44679; 282.59716 734779; 283.00074 5918758; 283.02338 6212012; 283.04806 979; 283.13736 1786578; 283.14292 9674; 283.17404 111550; 283.20136 1390178; 283.729 6385; 284.47561 42535; 285.21712 68386; 285.33243 67276; 285.89389 9277; 285.92341 2343968; 286.29735 451184; 286.35734 25023; 286.65552 1094514; 286.96631 220368; 287.2462 2492916; 287.29897 14892; 287.56987 366135; 287.59371 9947268; 287.61445 4010710; 287.77629 61181; 287.77685 600935; 288.57242 4778; 288.6959 6571; 288.78564 4694804; 289.00415 39927; 289.14451 1870755; 289.33584 9662; 289.59596 13132; 289.68716 22541; 289.82393 3486164; 289.96922 40970; 290.22468 5359050; 290.51076 18446; 290.68 474324; 290.85914 853071; 291.03609 7891; 291.15528 9043; 291.34864 34063; 292.15102 29554; 292.32638 3303; 292.78823 1352638; 292.82449 9897216; 293.16958 34288; 293.29343 212559; 293.47478 1993730; 293.57289 2936; 293.72605 70729; 293.72833 29097; 293.72915 4984269; 293.8218 24382; 293.82757 4849429; 294.32785 5933; 294.33427 3548927; 294.36755 286833; 294.48598 26008; 294.61588 137774; 294.67485 13338; 294.68297 4008; 294.6994 1058; 294.80808 2103126; 294.87148 4766198; 295.36416 26171; 295.67811 845539; 295.76003 38970; 295.80556 39145; 295.82039 26210; 295.90529 12144113; 295.9877 57463; 296.14506 65874; 296.27866 2934; 296.44934 5877781; 296.66524 66641; 296.75743 6048538; 296.76994 205127; 297.2884 27988; 297.68749 1545329; 297.77205 53912; 297.85249 18733592; 297.86707 61497; 297.92006 9515317; 298.35883 38741; 298.5566 535271; 298.84606 1432631; 298.9963 42321; 299.27757 27501; 299.83118 36181; 299.84456 13643388; 300.35121 7631; 300.39858 8776; 300.43283 27903; 300.55764 60966; 300.56793 10925; 301.08199 595612; 301.10275 5841947; 301.3145 3709; 301.63279 7811976; 301.72753 24520426; 301.82384 13804476; 301.86669 22553; 301.96871 40758; 302.06304 1171900; 302.3043 20520; 302.39752 28784571; 302.47565 152991; 302.68563 40647; 302.70122 48314; 302.80132 35060; 302.87722 37330; 303.0387 607493; 303.20343 68406; 303.37803 251326; 303.49423 6213415; 303.60758 3794282; 303.7649 23660; 304.06732 2873229; 304.49611 1367200; 304.51654 7795394; 304.56726 54926; 304.63237 70127; 304.9536 4519999; 304.97821 49395; 305.43078 28005; 305.54779 5763; 305.8486 5122; 306.0725 2485498; 306.34103 49615; 306.35474 7950948; 306.47012 52139; 306.47902 29511; 306.62278 2279; 307.00872 73110; 307.17568 57393; 307.30877 3215; 307.48389 25243; 307.54212 724331; 307.72266 7823; 307.86499 3345247; 307.95847 22629; 308.14791 1341864; 308.15137 807733; 308.32969 5360849; 308.35362 210400; 308.39512 3968; 308.52814 57418; 308.55573 2278646; 308.73974 5234; 308.85747 1813570; 309.11387 667644; 309.20644 935452; 309.26024 59075; 309.32426 3139; 309.47743 592659; 309.98168 10710977; 309.99629 2939622; 310.14596 28024; 310.26439 25480; 310.71634 79368; 310.79672 1812; 311.11676 10518; 311.38562 4256; 311.57423 30031; 311.71447 8456842; 311.7956 327901; 311.9595 5174108; 311.99515 28371; 312.03894 25410163; 312.32783 60449; 312.53922 7444; 312.62375 55408; 312.85022 9418; 312.86217 4524806; 312.98456 26226; 313.04115 75558; 313.39952 3944078; 313.64775 1962; 313.75088 196618; 313.9657 398445; 314.08771 991; 314.11504 2132; 314.22029 151288; 314.40083 10488; 314.437 673401; 314.81556 3769; 314.83506 6998; 315.04643 12316; 315.46746 20271043; 315.71461 8302171; 315.81043 24492; 315.9687 49234; 316.17311 165733; 316.18606 6133; 316.31646 9844; 316.35971 5050; 316.52293 126373; 316.70973 42172; 316.72338 18661; 317.01222 3574937; 317.04705 876070; 317.10755 25466; 317.26673 41943; 317.42667 2343520; 317.50329 5881782; 317.68489 54970; 317.84112 5726113; 317.96211 279; 318.08079 17332; 318.22272 36478; 318.41643 60694; 318.42398 406579; 318.51531 127913; 318.56284 255689; 318.64171 20772; 318.66068 4624120; 318.77127 5434127; 318.83844 9969969; 318.87752 405803; 319.15002 1538846; 319.676 60627; 319.72419 123222; 319.81984 1648323; 319.83171 1375574; 319.9027 22380; 319.96856 6017; 320.69401 786787; 321.0329 6967059; 321.2339 923342; 321.3489 38024; 321.51477 61227; 321.59978 37887; 321.74765 1162940; 321.82177 103145; 322.03902 296509; 322.08648 9438; 322.16295 55585; 322.23827 4317244; 322.75313 49080; 322.78413 77088; 322.99392 40209; 323.03399 1651201; 323.1348 75925; 323.16329 285; 323.26017 182730; 323.42375 55252; 323.45512 2031908; 323.54655 204534; 323.60475 80820; 323.7307 8655; 323.76826 47260; 323.78139 96060; 324.0608 2144; 324.10659 32460; 324.58227 13619; 324.65261 2928; 324.69354 1616661; 325.01726 68452; 325.03924 25915109; 325.67897 3284; 326.06277 16154; 326.06891 28087; 326.15935 150; 326.29164 1203462; 326.35491 1862353; 326.51174 7088020; 326.54842 2509855; 326.61994 52968; 326.72038 1802; 327.0368 22756; 327.21328 1575618; 327.21587 36795; 327.21941 16683; 327.25034 354213; 327.30756 13056781; 327.34599 431468; 327.54814 3441256; 327.76304 2208; 327.92429 69262; 328.05299 23751; 328.06228 2688839; 328.15794 65441; 328.18658 135312; 328.23458 3378; 328.34589 9462081; 328.67037 10360; 328.96213 125067; 329.49403 8728; 329.49758 296; 329.50785 7053869; 329.57314 40547; 329.80684 24580595; 329.93356 746611; 330.01596 3760; 330.09718 6176039; 330.14009 950802; 330.5116 55939; 330.91295 957; 331.35637 24921; 332.05408 969987; 332.27862 29768; 332.41514 279311; 332.47395 37805; 332.48047 72156; 332.6206 4472453; 332.80251 73397; 332.85397 23660; 333.0722 73; 333.12185 54880; 333.49445 46858; 333.69599 26958; 333.92617 77175; 334.04082 78946; 334.08586 43877; 334.19674 212577; 334.68011 16817; 334.70903 2199427; 334.94952 44360; 334.96961 21590; 335.33177 738063; 335.53232 42088; 335.99175 43561; 336.31036 28852; 336.69353 1249103; 336.70999 34784; 336.98301 22957; 337.00302 12469; 337.18278 51714; 337.4579 6201; 337.63093 1930149; 337.73349 2659755; 337.81368 36129; 338.27779 3831554; 339.1208 41332; 339.16912 51999; 339.28407 37531; 339.2914 294859; 339.32487 15514; 339.48735 3965; 339.66697 64397; 339.78682 1697908; 339.79456 56710; 339.86766 619093; 340.08993 22022; 340.15067 629524; 340.22133 134209; 340.34741 21068; 341.03985 24667; 341.10766 9347; 341.48543 902141; 341.69678 144835; 341.80298 67022; 341.84238 1434850; 341.9033 23180; 342.14206 2818246; 342.18766 410459; 342.50422 3055875; 342.51018 140473; 342.64847 6561; 342.6541 22806; 343.00359 28033; 343.24649 17242413; 343.26708 8925; 343.4641 55578; 343.71946 5770; 343.92084 65109; 343.92252 1895364; 343.93473 127944; 344.71468 41392; 344.83811 1252604; 344.84014 9271; 345.24545 706241; 345.36175 22738; 345.80131 6256447; 346.10107 240; 346.12037 60777; 346.12997 5324; 346.13927 4357349; 346.24426 5873; 346.37547 4380; 346.76467 3014087; 347.04952 52933; 347.32 57011; 347.43204 20900; 347.44136 2396972; 347.60797 24991; 347.68693 3474; 347.74164 5488; 348.01107 4021; 348.09593 41897; 348.18307 26133; 348.23231 3969996; 348.23679 28094; 348.28726 58999; 348.38029 76210; 348.95371 7170; 348.99435 243199; 349.20436 65637; 349.45579 9535; 349.75024 8887; 349.80388 22183; 349.87852 17663; 349.90547 47505; 350.18384 5036779; 350.2275 428662; 350.35075 4748623; 350.3596 1262342; 350.38706 592268; 350.53104 9920; 350.66739 68089; 350.67523 26549; 350.70339 67241; 350.72346 8929533; 350.74089 44993; 350.97619 49486; 351.02871 74372; 351.08594 21298; 351.10782 49528; 351.11661 7940628; 351.15219 13033; 351.1687 5627; 351.20473 281107; 351.25178 14341; 351.29044 31827; 351.47829 64467; 351.51812 2473; 351.73352 2371510; 351.79276 6902343; 351.86812 52252; 352.04833 54973; 352.12669 17633; 352.42469 5459638; 352.7905 5956; 352.89089 7490; 352.93272 25379; 353.26313 7007; 354.11688 9329; 354.19929 5488; 354.32144 6194100; 354.49647 1188776; 354.50367 1150046; 354.67764 15082; 354.8188 17663900; 354.86655 73015; 355.24281 27718; 355.43739 54031; 355.44346 52935; 355.79914 69866; 355.86662 3813; 355.9596 7163433; 356.10727 77544; 356.42044 12421950; 356.5971 2546818; 356.81027 9593606; 357.13977 13653; 357.20012 8208; 357.24018 1226070; 357.2435 755854; 357.37066 175258; 358.02855 20363; 358.21802 2328554; 358.29581 18357; 358.7594 152278; 358.88381 358449; 358.94218 1075962; 358.96928 10950795; 359.39238 28284; 359.43518 8100; 359.95734 67096; 359.9694 252747; 360.00844 58955; 360.02387 1171137; 360.48339 56992; 360.55082 21766; 360.5859 767305; 360.66979 1376; 360.69604 2867; 360.82579 21123; 361.09738 1635100; 361.18106 163546; 361.22061 61036; 361.32466 3156488; 361.45136 8064308; 361.50997 76958; 361.67595 69308; 361.99327 41306; 362.13354 4139; 362.1757 11664; 362.47976 24714; 363.15967 3200347; 363.16208 17714; 363.30952 20300; 363.40353 23122; 363.58831 25370; 363.88909 24043; 364.13894 26624; 364.28448 34219; 364.5577 3735427; 364.56691 8523559; 364.81688 34511; 364.82256 38067; 365.00887 1068024; 365.20426 7093319; 365.20489 42012; 365.53996 698710; 365.77733 15362908; 366.09623 1077299; 366.15465 36508; 366.25339 27996; 366.31446 1895716; 366.53352 25823; 366.72392 856709; 367.18046 73683; 367.18393 180; 367.18558 53577; 367.19619 1923594; 367.2212 2653233; 367.3068 57110; 367.47985 202210; 367.59303 26542495; 367.84387 75975; 368.23449 31130; 368.30813 111043; 368.49673 41698; 368.71744 42238; 368.85057 1034911; 368.94836 22566; 368.95596 595124; 368.97725 69068; 369.20256 69971; 369.22827 533754; 369.79119 51433; 369.87895 25361; 369.92137 2084353; 370.04486 17484; 370.04542 4340832; 370.32701 7918; 370.52221 29642; 370.55349 51772; 370.58528 1146416; 370.58873 1495635; 370.85248 151477; 371.12747 11880; 371.13906 5005616; 371.28712 175153; 371.6942 3242934; 371.86716 45093; 371.99888 5714905; 372.13134 438592; 372.17712 9451; 372.35744 57353; 372.90668 30372; 372.95496 40401; 373.13067 948990; 373.37922 4246141; 373.45271 65554; 373.7488 192688; 373.87094 1804836; 373.90573 56126; 373.9362 3260; 374.03328 2136928; 374.34798 23993; 374.83008 74454; 374.84427 76552; 374.96801 5766481; 375.18099 17201; 375.19024 38477; 375.2061 6389093; 375.25807 1840576; 375.47454 68187; 375.91585 6093525; 376.28825 5982; 376.33392 5151330; 376.65538 73017; 376.75387 3291215; 376.76015 1801929; 376.8617 3881085; 376.99428 75651; 377.05945 7716; 377.16852 135950; 377.17167 4297; 377.44647 73258; 377.45007 3446780; 377.5858 29254; 377.64944 14895266; 377.96362 992113; 378.00706 7337; 378.16671 56930; 378.23276 2914688; 378.74489 2412164; 379.045 52382; 379.10237 27150; 379.11934 1757678; 379.4795 27401406; 379.90771 57210; 380.01121 88608; 380.01479 691948; 380.30841 15321041; 380.39608 934065; 380.41124 3257124; 381.02959 67844; 381.21697 332952; 381.35071 3568841; 381.45419 29535771; 381.50609 188619; 381.54655 23595637; 381.69601 31416; 382.13236 44239; 382.28571 181424; 382.9757 42593; 383.19897 1489308; 383.40176 698198; 383.74146 56403; 383.90152 69657; 384.02602 27907; 384.0845 1495; 384.22448 9253173; 384.90027 1104134; 385.33565 13674689; 385.37115 25034; 385.88754 419238; 386.12408 1901703; 386.38252 850; 386.67676 2526; 386.72159 1787432; 387.01992 77043; 387.15788 21291; 387.17087 76370; 387.40248 6020904; 387.66721 8547089; 388.62478 40997; 388.86095 718403; 389.09028 42341; 389.34889 52138; 389.47336 27307250; 389.49515 5780; 389.69451 170919; 390.0494 39524; 390.24992 121701; 390.34315 118870; 390.43474 832; 390.70704 523956; 390.73678 63666; 390.91763 1059951; 391.12686 73297; 391.13158 684031; 391.28247 604564; 391.76737 25287; 392.2517 66763; 392.29649 47658; 392.49145 1638521; 392.77271 2341435; 392.80849 24469; 392.81989 4544792; 392.89032 139590; 393.13642 3901503; 393.21522 58554; 393.2222 1888; 393.46627 5065064; 394.0346 5396072; 394.0591 6058046; 394.06377 19067; 394.12348 57275; 394.25434 2323136; 394.28264 6612671; 394.34568 1806298; 394.35107 1550875; 394.51001 1072683; 394.53683 77866; 394.54644 36289; 394.67794 65919; 394.84497 893502; 395.15523 72341; 395.21204 1136413; 395.33831 1121; 395.4392 78430; 395.54564 954672; 395.70225 560084; 395.74149 228287; 395.76902 77362; 396.20507 498658; 396.35113 13996; 396.4174 1416; 396.51522 273264; 396.53166 30746; 396.63038 43024; 396.68731 24436; 396.76509 32846; 397.02082 2654974; 397.0377 24938; 397.06801 407048; 397.17311 12308; 397.1881 4947245; 397.31858 30168; 397.51498 548; 397.52635 2044; 397.58656 71850; 397.7746 28416; 397.93604 78559; 398.03076 46690; 398.04896 45567; 398.11873 1784884; 398.39279 28074; 398.57539 1972037; 398.92206 28486859; 398.92245 76576; 399.00127 227655; 399.3079 1848877; 399.34826 1788868; 399.74297 770430; 400.01959 1738989; 400.05265 29263; 400.10775 6688; 400.39912 6337424; 400.43925 1354078; 400.47033 75642; 400.81926 594620; 400.97622 55242; 401.25653 1397205; 401.27329 28039; 401.5362 2083007; 401.57184 20498; 401.74421 27785; 401.95385 452305; 402.09268 61507; 402.16361 36825; 402.26645 2638; 402.58587 17495; 402.64121 25942; 402.65899 740303; 402.68786 1364794; 402.72027 47586; 403.05704 133070; 403.67156 149850; 403.92148 20931; 404.06976 1072701; 404.07238 26542; 404.13978 1641055; 404.24714 22052; 404.31873 46288; 404.37291 8947718; 404.62201 1564199; 404.74568 61163; 404.94239 4105; 405.40586 20898; 405.54348 37188; 405.788 1908517; 405.83751 800503; 405.99527 124242; 406.30789 316328; 406.8611 1375; 406.95367 181277; 406.95802 21616; 407.34357 140076; 407.38435 7856138; 407.56347 71103; 407.60825 967; 407.76401 37751; 407.79244 1944759; 407.85463 46026; 407.87534 21798892; 408.03551 5478172; 408.85831 1421; 409.21461 4774156; 409.64432 4354050; 409.67427 15103; 409.91039 9386809; 409.92934 62905; 409.94169 991142; 410.13362 96; 410.25089 148000; 410.34283 29586241; 410.69938 8770; 410.76767 84700; 410.82673 120672; 411.24054 6217307; 411.31098 9870; 411.39278 1517291; 411.54624 998065; 411.84019 23897; 411.95455 20153; 412.24219 41147; 412.32424 1811327; 412.44869 3222; 412.57759 50237; 412.6967 34594; 412.85161 12924; 412.93481 1244244; 413.21112 15811978; 413.25635 1016743; 413.4084 70388; 413.4196 7663; 413.65134 22785; 413.86891 76704; 413.96077 1853278; 414.2219 616415; 414.41448 6806; 414.50913 2695134; 414.52384 14022982; 414.59273 61198; 414.80386 17664; 414.9449 6678093; 414.97866 282; 415.03984 51737; 415.2078 20347; 415.3526 17358461; 415.42017 3670696; 415.68208 1959; 416.20356 1993224; 416.24429 287455; 416.92732 69308; 416.95368 298; 416.96365 85384; 417.17562 28192; 417.9075 25918; 417.99281 5259810; 418.06276 56313; 418.45855 13851696; 418.46512 60330; 418.75279 35296; 419.14954 32707; 419.24232 55427; 419.39651 26383; 419.62565 1188109; 419.70561 9282911; 419.98162 268773; 420.12448 694; 420.30407 3546886; 420.43952 50486; 420.59762 67598; 421.106 6356; 421.1778 27096; 421.22611 36602; 421.66104 13410; 422.27145 120018; 422.45536 2564; 422.74602 3772798; 422.79171 3243897; 423.14822 22261; 423.18385 188229; 423.25977 837227; 423.33894 787706; 423.63171 1180; 423.70489 20958; 423.77589 34799; 423.80311 4374979; 423.98201 3657; 424.08128 30765; 424.12124 2633658; 424.38202 75853; 424.48885 17240; 424.59251 610095; 424.70665 1125677; 424.81911 1406241; 424.99679 2971486; 425.00036 3663386; 425.06585 3095; 425.11999 79689; 425.41159 47340; 425.54026 456447; 425.97438 19891; 426.08145 72048; 426.14076 1526543; 426.18707 3803031; 426.4243 1569181; 426.57462 3045056; 426.78678 7807; 426.87609 136303; 427.10232 8211794; 427.10532 548501; 427.18105 8359727; 427.42725 21986; 427.48369 18413; 427.48402 48535; 427.55409 17527; 427.59042 3140696; 427.87267 66143; 427.94348 4480920; 428.16274 880446; 428.32262 1825; 428.44004 4787936; 428.72512 36553; 428.72833 116684; 428.80028 9854742; 429.09584 674930; 429.21114 19531; 429.28376 60567; 429.46667 20858; 429.47275 1509349; 429.74993 38580; 429.77991 2913855; 430.00604 20313; 430.22955 27317; 430.31945 896; 430.50976 4233474; 430.79684 2480431; 431.10097 7439; 431.13583 5413; 431.18018 376221; 431.20586 27392; 431.3609 36105; 431.46754 76307; 431.82435 50339; 431.86483 131425; 433.01588 21805; 433.44121 6365418; 433.47964 9120676; 433.49824 132135; 433.54538 8089; 433.68664 67121; 433.69336 30282; 434.36471 2471; 434.43316 55820; 434.74962 2426; 434.93114 562879; 435.14466 13538; 435.32962 51761; 435.83466 1551937; 435.87118 414390; 436.37989 230428; 436.47176 475796; 436.63153 1953099; 436.67432 912289; 436.72765 14283; 436.82375 54722; 436.92829 4972147; 437.36371 7456087; 437.36681 5564; 437.55254 20363; 437.67645 4476; 437.91063 3166499; 437.91223 119282; 438.1633 42398; 438.16391 4554342; 438.20275 46646; 438.38833 209226; 438.42409 88993; 438.52171 3175684; 438.72759 2537404; 438.75708 136981; 439.37534 506875; 440.24781 8076; 440.31221 43202; 440.31465 17939; 440.62005 28577; 441.68471 16187; 441.68486 153728; 441.70534 46629; 442.01838 2733374; 442.29572 5142; 442.35019 10241; 442.43706 9173; 442.51467 620421; 442.55913 74981; 442.71053 28161; 442.7226 2156; 442.76002 765; 442.81719 9731473; 442.8665 545982; 442.90192 1070509; 442.92849 22079; 442.92872 2876; 443.16347 7812; 443.33055 1987909; 443.37073 2188; 443.58863 179204; 443.70552 1781202; 443.75394 22051; 444.25393 46354; 444.86286 6596; 445.09132 59018; 445.40663 1792702; 445.45493 175775; 445.78123 6722983; 445.86957 8784; 445.99173 3207716; 446.0017 23471; 446.1751 21506; 446.18142 912279; 446.28237 28722; 446.31059 55595; 446.49802 3815449; 446.93425 447239; 447.21901 1943725; 447.43477 1797401; 447.86993 58441; 448.31714 103398; 448.51152 154370; 448.61285 4777619; 448.76793 11602938; 449.06372 1544786; 449.16818 564204; 449.22944 47474; 449.26714 9537747; 449.39784 78366; 449.6278 7110664; 449.70629 30349; 450.01513 7881; 450.01708 21583; 450.41307 113505; 450.69085 830722; 450.86914 28021; 451.23254 83995; 451.29517 7890482; 451.51785 28863; 452.13717 8357; 452.14495 23254; 452.1629 3139528; 452.54799 47959; 452.76353 2211; 452.79667 7346880; 452.83481 7824; 453.20046 9674691; 453.35287 92597; 453.39302 60782; 453.44554 7917093; 453.71351 157466; 454.08239 40771; 454.21481 7428; 454.41538 20419; 454.58386 7255590; 454.66344 1735838; 454.84613 4666626; 455.05049 68869; 455.62248 1514712; 455.65017 7236; 455.68413 13245; 455.73527 28533; 455.88391 5962626; 455.93866 68502; 456.46703 6575430; 456.5694 4818620; 456.74817 30456; 457.17698 447715; 457.32651 7857254; 457.33858 22560; 457.55319 458082; 457.70699 52225; 457.78094 23183; 457.80962 72905; 458.1579 21991; 458.23341 15228; 458.33969 3060171; 459.20485 2124084; 459.62855 3201067; 459.66398 133968; 459.94766 50182; 459.96682 20699; 460.22241 39073; 460.29553 127675; 460.43871 20659898; 460.45413 7944090; 460.60174 1172566; 460.60429 10738; 460.65979 40837; 460.82146 52788; 461.08308 38873; 461.11511 1502081; 461.1517 67763; 461.31645 48341; 461.4076 1282449; 461.41033 7968678; 461.42793 8110; 461.57012 831187; 461.57148 22702; 461.66399 26908; 461.7255 135699; 462.19234 2158230; 462.25384 578991; 462.25993 3743; 462.29504 37120; 462.4394 1684325; 462.44319 77387; 462.48384 3920192; 462.80608 29156; 462.97248 263217; 463.01424 2924655; 463.48398 49463; 463.50268 366128; 463.52541 2021; 463.6486 33572; 463.72367 1470066; 463.88304 7283932; 463.99221 16423; 464.03275 754873; 464.40054 55341; 464.60667 113773; 464.73199 1953169; 464.83941 27352; 464.98323 185195; 465.12298 23654; 465.37682 26983; 465.39392 5766617; 465.48755 33589; 465.52613 14926; 465.59323 8529094; 465.92111 1441082; 465.95982 1808967; 466.01834 56387; 466.36739 160436; 466.41133 1476561; 466.55985 786877; 466.60841 9126977; 466.66952 1852086; 466.91377 22488; 466.95218 469; 467.07712 45260; 467.17812 25992; 467.3058 448783; 467.33124 30070; 467.36462 25046; 467.61627 5789015; 467.75433 23954; 467.88278 835305; 467.91349 35010; 468.3663 1371854; 468.39294 793183; 468.45339 24542; 468.54135 21084; 468.57001 171945; 468.58278 63150; 468.64463 113140; 468.66871 29368; 468.6897 12116; 468.87172 36185; 469.32392 10341; 469.43938 4360; 469.83735 59948; 470.00867 3812624; 470.39244 28772; 470.48224 5415; 470.53931 50669; 470.77546 833423; 470.80623 7643616; 471.05186 209396; 471.06585 65237; 471.31876 36043; 471.35129 1414899; 471.53363 4824; 471.6172 7505176; 471.71119 64447; 471.75466 3239752; 471.84143 4391547; 471.89925 21803; 472.08825 45186; 472.16732 25654; 472.27545 1303748; 472.35627 77019; 472.36404 525; 472.78994 430053; 472.83167 140143; 473.0545 45822; 473.3666 1666; 473.3752 2971087; 473.41006 441222; 473.52095 3677123; 473.5663 3667779; 473.92621 39401; 473.97017 7875060; 474.00119 3259762; 474.02533 162987; 474.31672 74075; 474.92878 3387; 474.97415 58861; 475.31839 719478; 475.63047 27000838; 475.84961 22971; 475.90044 60932; 475.91314 258102; 475.93211 1256678; 475.95109 45347; 476.03445 49029; 476.65366 3604; 476.71655 1900986; 477.0071 61474; 477.11005 1137451; 477.19089 34802; 477.29845 613388; 477.34329 6594; 477.39257 61474; 477.75583 2155427; 478.07477 101928; 478.09899 586615; 478.11667 2655; 478.11812 73759; 478.29812 4288; 478.38483 3514371; 478.59416 2911; 478.65412 6262369; 478.7164 14007; 478.90103 27619; 478.93251 63289; 478.96039 18479732; 479.06997 67294; 479.09927 60907; 479.29541 18858; 479.3781 1260237; 479.4666 8876; 479.48471 48502; 479.59483 6305; 479.70666 17894; 479.70721 1617506; 479.86234 49863; 480.13736 74810; 480.40884 1463608; 480.59642 1523800; 480.77807 3436729; 480.85105 168012; 480.96062 3143; 481.0292 399982; 481.41496 71732; 481.48266 24992; 481.5367 62500; 482.0012 23128; 482.68408 51544; 482.72762 8577846; 482.87873 2718092; 483.22637 11377; 483.24771 294408; 483.32745 8182; 483.71895 851894; 483.81652 48107; 483.99217 6965995; 484.20149 7214; 484.20302 3213756; 484.29909 29785; 484.75529 6344; 485.10553 1579175; 485.1522 35336; 485.18546 26383; 485.21044 13888; 485.27849 8113898; 485.41558 1814638; 485.4435 607; 485.88625 71090; 486.12356 153509; 486.3437 1643; 486.56165 30519; 486.67733 18324004; 486.71498 5920; 486.94865 26193311; 486.9731 5856; 486.97778 8429; 487.05904 7711462; 487.35707 1155190; 487.40149 12693; 487.8217 37487; 488.19729 24732; 488.83549 65466; 488.95545 36816; 489.10505 481009; 489.23487 1469218; 489.4252 34953; 489.56768 43356; 489.60509 34390; 489.80058 32241; 489.822 28076; 489.86781 877134; 490.10235 1629659; 490.11095 2257809; 490.52913 902045; 490.53145 9709; 490.61941 7036; 490.64012 9732; 490.67209 596361; 490.68357 6173368; 490.70347 1869514; 490.91111 35112; 490.91546 26742; 491.24552 30912; 491.32191 14027; 491.38621 35649; 491.53486 1947762; 491.97724 40853; 492.22826 538526; 492.29898 1899621; 492.38378 75229; 492.46789 5497314; 492.49274 15705243; 492.82771 4742609; 492.8404 6192147; 492.87295 13360; 492.95753 6566; 493.27036 9909; 493.46107 13588; 493.4634 8958; 493.66503 20051; 494.14687 8994; 494.29544 569; 494.31489 7397886; 494.53528 305031; 494.54396 16411184; 494.78044 37594; 495.00423 12415; 495.08359 37537; 495.45445 23256; 495.73185 1647849; 495.77679 186626; 495.78009 77847; 496.33138 904277; 496.45109 1923122; 496.78879 71898; 496.85419 2613539; 496.9006 714623; 496.94296 5384296; 497.06922 4246190; 497.07241 53579; 497.2069 113149; 497.62903 52731; 498.04498 5378; 498.09956 1614480; 498.15973 7951728; 498.16449 1811107; 498.31105 1288; 498.4007 9746; 498.62026 27930; 498.67559 45108; 498.9126 1757209; 498.95143 52431; 499.70447 57737 +<5, 1>: 0.34141 4538; 0.52387 184617; 1.0673 4005827; 1.3166 5867925; 1.32184 33308; 1.57312 2089261; 1.61427 3037591; 1.62269 40614; 1.74471 2962; 1.92528 25424; 2.25406 1283789; 2.27688 273290; 2.3893 28355; 2.42822 323387; 2.66845 72468; 2.86552 2406350; 2.87969 7646; 2.9068 68049; 3.37046 141988; 3.48956 9648; 3.68307 392087; 3.76867 15135; 3.9515 9862; 4.037 11315218; 4.10741 26550; 4.6468 7207; 4.83532 15906; 4.87705 161831; 4.92983 60192; 4.95167 4079573; 5.1395 4079; 5.2041 6279031; 5.26002 1765922; 5.43626 23464; 5.95335 130111; 6.17379 5438726; 6.18249 422704; 6.19007 3096366; 6.49895 56695; 7.00504 7576472; 7.29706 3717284; 7.5368 15374; 7.59242 30836; 7.63983 61880; 7.97936 9707760; 8.29895 66793; 8.31644 45796; 9.16299 31621; 9.71904 42989; 9.99629 44553; 10.20012 13078090; 10.28402 52860; 10.41373 6506; 10.46518 27954; 10.64205 8310; 10.67377 3221; 11.09164 52612; 11.55053 23187; 11.8438 52722; 11.90879 280; 12.68788 39293; 12.82354 88621; 12.89137 115179; 12.895 22806; 13.1159 5364934; 13.32147 3549; 13.63208 806445; 13.89461 52469; 14.28741 1239385; 14.28945 46309; 14.33867 18316; 14.55534 2777789; 14.60273 72874; 14.89045 2960; 14.91278 24534; 15.66297 27779; 15.81007 7062; 15.92856 4873927; 16.34265 196848; 16.40954 100398; 16.66599 217563; 16.69592 28496; 17.00621 675611; 17.01806 78866; 17.03462 1674011; 17.06984 857360; 17.47727 3443837; 17.73654 23029; 18.08661 106661; 18.52457 24432; 18.53334 23087; 18.59791 4078952; 18.78354 2338; 19.48583 59267; 19.60241 1546455; 19.95796 5945; 19.97722 3951203; 20.18511 3311480; 20.48922 1712415; 20.59569 2090000; 20.70155 312990; 20.87863 674891; 20.88782 2650; 20.96058 1582813; 21.99453 2648; 22.09169 24695; 22.31628 29645; 22.54247 4860; 22.67578 29128; 22.94541 8156113; 23.1509 59857; 23.23776 78488; 23.56863 9042259; 24.04657 461981; 24.25413 164390; 24.25538 54624; 24.26129 29474; 24.6448 756897; 24.75421 20646; 24.79787 13877; 24.83178 31915; 24.85946 21254405; 25.1371 17706; 25.16797 785271; 25.6507 102635; 25.78181 746436; 25.82497 8100; 26.15483 49281; 26.21139 4022363; 26.22175 110910; 26.93512 71897; 26.9648 33653; 27.15943 856043; 27.32977 3449286; 27.33607 1239518; 27.36198 145419; 27.40499 1778; 27.64753 18898; 27.67655 249125; 27.70176 57138; 28.22398 27454; 28.33613 4085209; 28.58631 41905; 28.94782 8645; 29.00305 4550636; 29.63528 22565; 29.64697 2899; 30.27604 28709; 30.51851 73698; 30.6092 57479; 30.65163 3922; 30.71537 46788; 30.79802 8214112; 30.87886 79863; 30.91201 8728794; 31.04068 31698; 31.05802 56668; 31.13352 3874352; 31.2376 949; 31.38318 24515; 31.417 8255462; 31.51808 4091; 31.87465 1853; 31.98317 3807721; 32.06145 3784978; 32.06995 43734; 32.11078 3834; 32.36627 1093638; 32.99033 62686; 33.0829 6176; 33.34989 728467; 33.50952 902; 33.62566 7270056; 33.73791 56765; 33.9963 3614382; 34.43705 42558; 34.60341 6962; 35.23816 3482; 35.42198 10178423; 35.93056 13761; 36.18092 1371036; 36.30565 10429; 37.13714 355522; 37.48198 8146; 37.53695 1257076; 37.61572 550411; 37.7396 32044; 37.87466 93551; 37.9922 3206782; 38.02059 9141633; 38.02994 4798354; 38.0756 38187; 38.1005 4942650; 38.16202 1987205; 38.2517 7684239; 38.29453 38838; 38.32722 1844; 38.47443 35820; 38.50524 7944593; 38.50717 24377; 38.51567 4034222; 38.5837 4171414; 38.86852 48867; 39.01697 16742; 39.1616 2467569; 39.25027 14812866; 39.38039 3879740; 39.43032 3374003; 39.44673 47852; 39.44884 3568827; 39.89992 147516; 39.97388 5294; 40.02369 35906; 40.28404 2869473; 40.33604 9328610; 40.68997 1633722; 40.78734 118364; 41.2965 66409; 41.34048 14434; 41.69235 143417; 41.69876 67315; 42.07001 891591; 42.27372 229899; 42.36329 48550; 42.65851 6250208; 42.84129 26482; 42.9128 1740466; 42.97324 6437; 43.04873 386836; 43.11263 21299; 43.36746 1284169; 43.8364 329094; 44.05794 28421; 44.18689 146691; 44.60076 2994; 44.75017 1849352; 44.83012 1427793; 45.22995 27331; 45.33121 6631; 45.44052 74614; 45.48185 50540; 45.78293 7990120; 45.82284 74415; 46.33453 44287; 47.20681 12790257; 47.37322 25824; 47.64317 20021; 47.68643 66697; 47.68975 1876557; 47.72268 4166424; 47.82541 4411; 48.17431 33921; 48.7974 1797063; 48.80554 13539650; 49.04331 1098257; 49.16463 1840; 50.01174 9243; 50.14542 666504; 50.4252 845436; 50.71429 47015; 50.95949 917038; 51.01533 402057; 51.45011 11312; 51.46449 119256; 51.65921 4867; 51.74338 8008168; 51.80857 6016833; 51.97084 4702985; 52.00765 118771; 52.25416 46043; 52.79305 701544; 52.8455 9901; 52.99553 5611601; 53.02863 515038; 53.27472 6475314; 53.83527 165912; 54.17976 35242; 54.45066 6992323; 54.48748 160951; 54.55103 13594; 54.93657 13776857; 55.04753 84755; 55.24775 34972; 55.32621 2451063; 55.65133 4128896; 55.83176 1085111; 55.95085 7261; 56.398 43170; 56.74822 1560915; 56.89034 41133; 56.93706 9537061; 57.27285 1203121; 57.27442 35073; 57.34882 815967; 57.3576 3101979; 57.47298 380086; 57.50716 32833; 57.53912 21663; 57.64241 1265688; 57.73626 91939; 57.86757 180708; 57.95239 7686; 58.00884 1459354; 58.2263 49276; 58.52676 2463424; 58.57021 6506; 58.59234 323784; 58.92482 3610; 59.03105 999; 59.1165 4939; 59.78543 86321; 60.15473 1626643; 60.69818 1890252; 60.83204 502170; 61.13826 29045; 61.73938 4752170; 61.8802 3355; 61.98507 78711; 62.2914 38164; 62.55404 8517125; 62.66741 156213; 62.90605 3363659; 62.93972 3930891; 62.96317 2562349; 63.21652 1324757; 63.26231 16261089; 63.35528 3277860; 63.62191 15557; 63.66366 1022340; 63.82359 10288; 64.09748 6260; 64.38486 72184; 64.71138 5451; 64.71711 40947; 64.74715 54435; 64.79174 8161; 64.8002 1649332; 64.82882 7203; 65.01122 80424; 65.07376 3043368; 66.58739 173914; 66.58937 25206; 66.59043 5623095; 66.70209 6671; 66.94508 478924; 66.95635 23800; 67.15076 36926; 67.35303 4871890; 67.37683 9262; 67.62372 5132986; 67.64797 1110798; 67.70039 22501; 68.05038 24486; 68.18452 95148; 68.40116 1376505; 68.40737 1124331; 68.57719 57446; 68.66541 78002; 68.68228 3986; 69.12815 54180; 69.13816 21020; 69.29 7250; 69.32949 23169; 69.51883 1046441; 69.5714 2673905; 69.81821 26792; 69.89613 40803; 70.21215 402952; 70.36339 4584544; 70.74253 3145; 70.79603 6165; 70.84422 68289; 70.95319 3507017; 71.48436 10656; 71.62412 415549; 72.01446 792385; 72.10812 46255; 72.2646 7085; 72.33639 4178; 72.87262 8174240; 73.31769 33843; 73.78997 1498650; 73.94048 28132; 73.9926 574267; 74.00043 36812; 74.27292 96809; 74.32502 9953879; 74.41314 4654; 74.75296 1310454; 74.77746 24853; 74.93947 126918; 75.04816 45078; 75.0548 4237590; 75.1586 3311536; 75.17521 27843; 75.44001 14669; 75.44712 12647172; 75.80733 6157; 76.01643 24648; 76.32591 78733; 76.4534 2920434; 76.48362 31503; 76.56714 53790; 76.99483 4237; 77.0794 7263433; 77.11615 11589; 77.15335 763190; 77.20162 351046; 77.23107 5313062; 77.23112 54849; 77.41537 543; 77.47244 24704; 77.51511 5542053; 78.20104 2496; 78.25301 132476; 78.51427 12008096; 78.55942 28249; 78.59437 672588; 78.69835 4491515; 78.71831 32486; 79.60135 4372734; 79.6441 4220838; 79.77578 52841; 79.89852 8660445; 80.41817 2020173; 80.42389 25597; 80.61727 113184; 80.75489 79848; 81.11002 4734163; 81.30958 6922; 81.76883 38483; 81.8727 1076; 82.04321 31849; 82.07765 6716387; 82.12764 2103249; 82.20535 3174; 82.23689 18230; 82.31815 13198885; 82.33318 1151021; 82.36253 44570; 82.45312 7069; 82.70339 173029; 82.75923 9718; 82.77479 5751; 83.37263 803468; 83.43427 3133019; 83.51948 64863; 83.65654 8072; 83.87104 1951977; 83.9375 1744568; 83.94814 24170; 84.00462 2734; 84.08343 54865; 84.49813 31291; 84.66979 167673; 85.01395 13057; 85.10976 30834; 85.13314 7736; 85.33584 38296; 85.58371 8931; 85.94579 170465; 85.95809 92387; 86.32109 1946533; 87.24985 20866; 87.36381 554656; 87.40796 622290; 87.63932 9412; 87.70853 23523; 87.85635 21007791; 88.06563 9335486; 88.10699 7764; 88.34441 6530437; 88.49333 801404; 88.52492 583847; 88.64745 24005; 88.68092 45757; 88.88149 8303; 88.92293 49543; 88.92826 75363; 89.3229 3266587; 89.33989 71213; 89.69191 69752; 89.73285 2626896; 90.45368 50612; 90.56278 69055; 90.92349 8817723; 90.9454 25846; 91.10622 694044; 91.42532 79755; 91.44808 7449; 91.59255 1792496; 91.72289 2541; 91.90984 749206; 92.06688 6653; 92.10687 677532; 92.23891 1312831; 92.56015 1754128; 92.60907 2095163; 92.68274 294152; 92.74424 51593; 92.93563 11227523; 93.10129 21153; 93.10386 22863; 93.17527 4189187; 93.22147 23084; 93.59014 268976; 93.92443 15807; 94.01802 9288; 94.12725 26418; 94.24446 153524; 94.82803 12103; 95.22912 332664; 95.29901 530149; 95.33105 48950; 95.80023 151839; 95.82148 363376; 95.83508 7934; 95.84092 1322053; 96.01225 159217; 96.03897 78893; 96.15422 1974049; 96.1699 62145; 96.28319 8207452; 96.3064 75642; 96.73595 47230; 96.9629 7713386; 97.05731 37654; 97.28805 5959; 97.85472 6747; 97.91525 8234; 98.0507 6010389; 98.14405 1968930; 98.34267 52497; 98.82744 28499; 99.03364 7373010; 99.0596 42403; 99.0846 18218; 99.2884 35500; 99.30153 17105654; 99.32676 25480; 99.83788 67348; 99.87384 2195; 99.89143 11046; 100.27466 22110; 100.2904 39951; 100.65552 2492; 100.88672 51362; 101.05785 34780; 101.10787 9133; 101.16781 660866; 101.28689 673436; 101.34054 14207; 101.75524 47074; 101.85463 46437; 102.14534 43926; 102.15667 1931864; 102.23879 4797; 102.6176 8149581; 102.62025 1941420; 102.66111 22975; 103.14534 18017817; 103.39871 9538889; 103.46978 1129828; 103.51559 23213; 103.632 45032; 103.66111 15908411; 103.71969 261087; 103.82126 13307; 103.85585 69275; 103.89797 63550; 104.14734 74862; 104.25356 1001780; 104.41874 59069; 104.42551 1400777; 104.54433 1269647; 105.00554 69315; 105.06797 3888678; 105.34392 42446; 105.42479 58216; 106.26474 3482118; 106.33584 555801; 106.96086 8808; 107.32362 6686551; 107.40232 111060; 107.53697 8943; 107.61782 1711512; 107.88047 173258; 108.03592 38455; 108.06979 9587; 108.3329 59131; 108.44039 5959056; 108.44075 577013; 108.45545 970994; 108.71448 28784; 109.25383 26176; 109.43461 23886; 109.44541 36233; 109.89811 6908811; 110.08 8575; 110.19416 6285630; 110.24975 598252; 110.38048 78204; 110.50914 1030563; 110.65898 2588207; 110.66531 3967169; 110.83167 35251; 110.91941 94278; 111.05142 728; 111.54731 52338; 111.64087 2888; 111.9463 77146; 111.95052 219855; 112.00772 1762078; 112.04223 42149; 112.55204 150371; 112.66608 40603; 112.68249 21896; 113.05768 8939962; 113.14504 7780; 113.28416 54532; 113.34571 3623051; 113.46719 19412326; 113.54226 808033; 113.73847 2376; 113.86207 18972; 114.03548 1414397; 114.09124 1505160; 114.41659 989826; 114.59468 11871; 114.62729 50724; 114.69403 702993; 114.69645 25247; 114.96113 3500927; 115.28268 495429; 115.4285 20386; 115.43913 37399; 115.59578 135238; 115.80691 61026; 115.94399 31493; 116.12674 22052; 116.14319 21902; 116.58774 6319; 116.887 96538; 117.00403 6080285; 117.37431 291072; 117.48508 30516; 117.68181 9289185; 117.74988 3345; 117.78564 537977; 117.78652 1023697; 117.83564 67024; 117.96991 1359039; 118.00011 21758; 118.09492 1825122; 118.28242 41035; 118.36858 10815; 118.5553 29636; 119.22236 60758; 119.50629 9377; 119.61865 8505500; 120.41887 60437; 121.09773 58016; 121.30013 30183; 121.41056 26631526; 121.65833 8599569; 121.92188 7795455; 121.96813 1773208; 122.01755 40183; 122.54969 11766; 122.60093 1374931; 122.61822 3932698; 122.89217 26896367; 123.27255 7828; 123.33284 1598675; 123.53576 5594; 123.61471 4548; 123.84042 7478; 124.29733 8663; 124.75453 802746; 125.09687 36997; 125.11531 191973; 125.26873 119659; 126.13394 19932; 126.4501 1902370; 126.8028 19656; 126.85898 32210; 127.34773 19634; 127.5975 1139540; 127.68393 10008; 127.79269 13007654; 127.9122 1729126; 128.46666 35240; 128.47199 9149; 128.51191 12918; 128.7697 7860; 128.86036 71986; 128.96065 30282; 129.08121 28952; 129.23901 2594; 129.28731 727179; 129.39019 2079936; 129.7132 560; 130.25358 251312; 130.2671 9492; 130.71946 702630; 131.06601 9300; 131.09428 15546; 131.26525 2299; 131.31799 1269; 131.31867 20494; 131.61742 8194; 131.64568 7537; 132.06136 157302; 132.14487 29592534; 132.4421 93; 132.65275 4901744; 132.86401 25817050; 133.0974 63; 133.46597 8749; 133.56823 38459; 134.55462 960051; 134.93875 6149; 135.0837 8719589; 135.09343 5805679; 135.80563 4178882; 135.90781 24357; 136.19796 31048; 136.38095 8880; 136.38187 20924; 136.4628 1507111; 136.64952 284985; 136.7358 2927248; 136.97878 4271; 137.07052 28944; 137.07124 17315; 137.3962 65923; 137.44963 19980; 137.50896 25006; 137.64851 70501; 137.71004 72326; 137.71988 3357946; 137.73113 26371; 137.90104 100915; 138.25852 968; 138.41093 14037; 138.56484 22680; 138.7823 623130; 138.97584 2160; 139.27611 73747; 139.42552 9225120; 139.48981 21770; 139.87053 8741; 139.91333 16205; 140.04782 1429326; 140.07375 63729; 140.1603 4869526; 140.26272 25345085; 140.64036 9304; 140.65635 2581853; 140.66683 45050; 140.72474 36856; 140.7911 198783; 140.84373 76182; 140.89781 63260; 141.0478 67385; 141.05896 1102796; 141.4862 27414; 141.51223 43233; 141.53655 12721; 141.55661 6560; 141.6915 4187352; 141.72972 20449; 141.81032 5174492; 141.82773 70899; 141.89621 2316910; 141.91883 9390412; 141.93576 29381; 141.98003 124247; 142.13805 24678; 142.25871 34888; 142.5948 530474; 142.68631 1020; 142.94964 63339; 142.97485 46094; 143.10868 19827; 143.11369 3492098; 143.32619 3180077; 143.3989 978383; 143.49879 9446345; 143.53883 11661; 143.61112 1380839; 143.88595 2586885; 144.02168 77210; 144.1653 9576740; 144.28646 1281482; 144.82424 298051; 144.83236 64829; 145.2253 12656; 145.30861 6537; 145.97111 1677517; 146.22372 1586744; 146.48612 34337; 146.56003 25294; 147.07707 820887; 147.12514 29475; 147.2566 4076; 147.3267 3856691; 147.72179 9577208; 147.89973 4217549; 147.98507 6588; 148.11428 617345; 148.11819 6897450; 148.29252 1329822; 148.44464 6916; 148.56495 1104403; 148.71199 4939581; 148.78861 2035995; 148.90498 6452; 149.11364 4198; 149.25847 22514; 149.29594 9979817; 149.36717 1440791; 149.37746 38164; 149.43544 61627; 149.60747 45345; 150.07238 3982; 150.49892 2946204; 150.74336 3546058; 150.95942 8586468; 151.02774 670687; 151.08226 5668; 151.53145 2492953; 151.67687 192905; 151.81461 2511432; 152.02974 20661; 152.09071 53152; 152.36074 110772; 152.40211 365611; 152.68153 617681; 152.89251 438760; 153.00983 3846; 153.05246 53207; 153.07804 961614; 153.12343 16469; 153.15226 24811; 153.19458 61804; 153.27275 19706; 153.32355 671309; 153.6136 24260; 153.63234 866657; 153.87805 352877; 153.89603 47822; 154.14091 209565; 154.40691 2835727; 154.41464 3119; 154.62063 1999557; 154.67294 733742; 154.67729 41242; 154.71569 26744804; 154.73057 1030268; 154.81343 68888; 154.96261 20465410; 155.08859 4285523; 155.09639 4862794; 155.13573 3249528; 155.20801 4702; 155.40031 39627; 156.049 4382239; 156.20264 1687; 156.41932 23688; 156.5057 1772692; 156.65169 309683; 156.69142 3914; 156.77027 1419820; 156.81823 27105; 157.04221 2211521; 157.07167 41631; 157.40255 84612; 157.46113 1939600; 157.55931 223710; 157.78253 19729; 157.80274 46193; 157.983 1697078; 157.99766 33881; 158.33863 43332; 158.41282 4737177; 158.44515 703090; 158.6472 31584; 158.68541 20935760; 158.76731 2281; 158.97986 69154; 159.04058 53608; 159.16388 120809; 159.738 1118; 159.76716 2669; 159.93679 9041; 159.9494 2715; 160.00737 5321732; 160.107 74394; 160.30194 6160966; 160.36246 28426; 160.40977 72228; 160.62205 4809432; 160.64858 24164; 161.08245 59665; 161.17586 5466; 161.307 960539; 161.3775 75202; 161.42051 1563232; 161.58517 6518; 161.76554 40335; 161.89755 13325; 162.32252 27244; 162.33617 4059616; 162.62466 3653004; 162.76557 78592; 163.4617 73601; 163.72649 7769447; 163.78176 1325194; 163.89554 61817; 163.91929 1737585; 163.93626 30442; 163.94594 51233; 164.20688 1060385; 164.51814 4743; 164.57741 20593; 164.99851 361542; 165.276 62496; 165.59505 6298; 165.60113 23020; 165.625 2670560; 165.87833 1733271; 166.26913 16595; 166.37722 958763; 166.50826 9413; 166.52024 34262; 166.78178 35005; 167.20397 9644096; 167.20676 4624; 167.24793 63932; 167.28812 1681; 167.5117 23408; 167.54709 3994; 167.66122 4113; 167.6994 81574; 167.70245 38646; 167.86259 38330; 168.24643 2785452; 168.45883 21726; 168.68289 1031; 168.84673 15199940; 168.99161 6901272; 169.0805 2066315; 169.27158 54459; 169.70726 19021; 170.05841 22653; 170.24296 20721; 170.67993 45956; 170.92049 1247586; 171.00288 19286; 171.09491 9893; 171.18958 1974262; 171.30962 4571426; 171.70817 17681; 171.86322 3737; 171.88104 5619; 172.14448 5208; 172.1597 7409022; 172.55613 281928; 172.72591 448; 172.83036 8661926; 173.10391 43580; 173.1202 118742; 173.39825 14819; 173.87061 78563; 174.06054 565943; 174.3335 17511; 174.49005 1851; 174.78299 106098; 174.81036 22960177; 174.94024 1121123; 175.18507 49028; 175.29507 1005377; 175.51282 142343; 175.86231 51980; 175.98933 9510710; 176.17841 35439; 176.22671 486998; 176.46232 5211; 176.53799 58395; 176.56768 806; 177.05799 11887; 177.31021 91822; 177.56565 14100; 177.587 38845; 178.13498 4588; 178.16398 3677777; 178.58873 25689693; 178.80134 51652; 178.83161 54909; 178.9628 2125; 179.106 72180; 179.20177 73739; 179.50132 16021; 179.6003 100990; 179.70436 554329; 180.0284 21951; 180.37035 3765548; 180.47896 72497; 180.48619 278861; 180.61272 365681; 180.72411 5837; 180.76562 7235374; 180.9189 1370733; 181.27869 824225; 181.84839 5959; 181.85163 63966; 181.91541 16828; 182.00928 115; 182.04639 34863; 182.38128 196004; 182.85971 23969; 182.89846 1397838; 183.02962 50004; 183.08519 547874; 183.10461 2079305; 183.33384 146032; 183.66938 1760965; 183.67461 9136; 183.81043 8892; 183.90064 614266; 184.30034 1347400; 184.31459 11085; 184.89945 1008741; 185.57308 17054; 185.60876 3626525; 185.82866 5439531; 185.84177 29835; 185.92675 518051; 186.05634 811; 186.0733 4802873; 186.67491 56341; 186.92809 129632; 186.95054 7920; 187.22785 40812; 187.37284 25869; 187.47785 21826; 187.86601 499985; 187.94811 186746; 187.95603 27081; 188.2844 49628; 188.28562 25404; 188.37841 103708; 188.4265 41629; 188.47502 1322; 188.5434 320856; 189.05863 1916624; 189.10168 79466; 189.55913 7225; 189.87882 26591; 189.94716 132120; 189.97335 7824678; 190.09113 989662; 190.16078 4651757; 190.33636 13128; 190.52766 9496; 190.71191 1161; 191.07952 909014; 191.2869 3091602; 191.36566 22591; 191.77532 91271; 191.82688 5338688; 192.04608 53652; 192.05764 1817017; 192.0649 6267424; 192.1412 20235; 192.40827 4972; 192.59669 20870; 192.74788 1890710; 192.75743 835750; 192.84218 1825369; 192.96605 9743641; 193.3544 20520; 193.35656 57973; 193.36485 814916; 193.45254 170475; 193.47467 459288; 193.8212 59448; 193.8482 47046; 194.43556 1623345; 194.59728 55363; 194.76678 65739; 194.82596 1603143; 195.05736 30932; 195.15049 25299; 195.20722 17866; 195.22211 4662; 195.8436 210; 196.09804 657669; 196.11016 1235359; 196.27357 127119; 196.30541 3858387; 196.47656 691138; 196.55535 49145; 197.03671 554; 197.25397 3926; 197.49209 15463; 197.75004 1227030; 197.99989 35444; 198.01689 42820; 198.04727 21911; 198.0527 1029; 198.20881 27506; 198.52143 29472; 198.55393 9307; 198.61739 62462; 198.65503 11295; 199.05327 28726; 199.06412 541959; 199.14981 2780163; 199.24967 63862; 199.72407 1151467; 200.16551 65187; 200.36516 3284; 200.92805 4265859; 201.14257 63678; 201.14565 63108; 201.30691 76301; 201.50755 2787100; 201.59696 21420; 201.64595 3593850; 201.68119 48531; 201.75957 50238; 202.44612 809; 202.53295 110423; 202.74413 2419; 203.10465 70164; 203.15738 191826; 203.34099 1806313; 203.42856 22363; 203.63914 7486; 203.66561 3068422; 203.67518 147811; 203.67561 9140; 204.16556 2922390; 204.40273 151382; 204.42836 30100; 204.43459 77058; 204.67027 35122; 204.72032 3367121; 204.90933 2056; 205.24779 21483; 205.34592 3613388; 205.68737 1420367; 205.78091 2058483; 205.89025 5413933; 206.12637 66876; 206.29391 3882072; 206.33959 4681272; 206.54486 2841; 206.66199 1592967; 206.67007 25858; 206.92106 1103245; 206.98312 6347; 207.093 61234; 207.10297 33640; 207.20216 53600; 207.38152 4713867; 207.39819 962279; 207.65587 610365; 208.07273 192768; 208.37676 77567; 208.88568 41317; 209.12929 378267; 209.19963 2517171; 209.34806 2390779; 209.64942 27030; 209.71867 29910; 209.75541 24467; 209.80658 26583008; 210.00467 6884401; 210.00936 27434061; 210.24886 108454; 210.53187 13643; 210.61123 24000; 211.18629 61090; 211.24462 1329188; 211.26424 3100; 211.37638 89075; 211.45525 730511; 211.90826 4452; 211.90981 48439; 212.38371 933669; 212.40362 112379; 212.425 3422; 212.45541 154340; 212.51591 25656; 212.56848 75780; 212.64303 232402; 212.79783 1616597; 213.0027 7025693; 213.24751 28429; 213.60622 1953783; 214.10091 387999; 214.29379 6005; 214.52695 7292; 214.77332 17863; 214.89972 184557; 215.20405 3931; 215.57457 1959500; 215.67075 39644; 215.9588 61984; 216.25242 194280; 216.26029 47300; 216.28015 32356; 216.31323 244276; 216.48594 177915; 216.58581 11480; 216.64218 40194; 216.65384 4604839; 216.67492 61416; 217.10278 1064296; 217.25702 4840; 217.35461 72353; 217.58639 7854182; 217.63215 8334; 217.66624 35054; 217.68024 608067; 217.72421 8009986; 217.87833 2411853; 218.06484 549587; 218.3903 438111; 218.4044 117704; 218.60369 32350; 218.63304 1861; 218.74 38930; 219.03337 97142; 219.91567 11543; 219.95128 50242; 220.02045 716840; 220.11415 105013; 220.59458 2665039; 220.99229 595594; 221.30566 2988101; 221.34277 37004; 221.51102 58714; 221.70768 136807; 221.96712 1808930; 221.99965 29043576; 222.30669 20611; 222.57152 18801; 222.59831 1015213; 222.65707 28156; 223.23478 4153572; 223.64561 4276; 223.82437 59498; 224.29242 107830; 224.29435 42988; 224.30957 6914244; 224.85541 3429119; 224.97189 4201464; 225.27015 22469; 225.27457 27805; 225.73713 1633; 226.30975 20252; 226.36507 7534; 226.48841 7377; 226.58156 642080; 226.61386 5304777; 226.64006 899310; 226.92567 56185; 227.23955 11814576; 227.38805 110907; 227.40942 26875; 227.708 28559; 227.74932 51056; 227.93863 9343; 228.02219 6247612; 228.28681 37761; 228.44979 7419169; 228.44988 875605; 228.59839 78171; 229.07531 987; 229.26105 9304424; 229.66478 161283; 229.90564 12241; 229.94462 11429; 230.64264 37274; 230.80584 997469; 231.04618 7192; 231.53049 1065127; 231.55105 1546893; 231.73254 8247336; 231.80111 8184946; 232.27413 55739; 232.31606 47128; 232.59865 50653; 232.88006 6332; 232.905 4480503; 233.08674 155993; 233.11716 58891; 233.29749 723843; 233.32888 142325; 233.41989 1533081; 233.98214 1698815; 234.04301 830187; 234.14341 153068; 234.45737 9918082; 234.73774 13095589; 234.84229 13350; 235.06075 1930497; 235.50142 5167; 235.52183 49515; 235.52191 2653687; 236.21818 43602; 236.32033 15495; 236.4061 198705; 236.54793 9180; 236.56175 196097; 236.69963 22118673; 236.72336 60737; 236.74242 8407; 236.93087 1522573; 237.1795 8481866; 237.2708 53415; 237.29131 5844055; 237.30921 16832; 237.60473 50750; 237.62737 1390851; 237.74379 31341; 238.05517 790133; 238.10877 44773; 238.2188 55169; 238.22523 3943; 238.29917 23094305; 238.50666 1319350; 238.6046 10603; 238.62047 30782; 238.67892 77698; 238.74972 78186; 238.82078 33424; 239.64546 1869; 239.69715 48503; 239.81876 122532; 239.94626 26796523; 239.99736 4222090; 240.27404 21038; 240.52599 50269; 240.92784 21885; 241.20666 134963; 241.27484 20481; 241.71257 12523; 242.05541 69543; 242.2845 4686; 242.3156 1568937; 242.84281 4440426; 243.10655 3531279; 243.59231 9648; 243.80333 57044; 243.8083 2937982; 244.09111 4991057; 244.25104 26211; 244.56622 17319; 244.85787 7974648; 245.07724 13164; 245.10835 4321; 245.11261 20708; 245.25482 339; 245.46204 1217933; 245.50521 8011590; 245.63924 1156; 245.75951 112810; 246.23229 64201; 246.36096 104121; 246.41487 54653; 246.50598 4545794; 246.66569 1322718; 246.72557 3741890; 246.76119 97382; 247.06459 9385464; 247.11838 883703; 247.20137 21603; 247.34647 13788; 247.38535 20043205; 247.41206 574335; 247.58342 6405336; 247.81056 980421; 247.84129 25864; 247.85654 47414; 247.86983 162321; 248.06805 6448; 248.09473 4784684; 248.1696 62566; 248.19856 28565; 248.44233 3206300; 248.82268 7934609; 248.89834 28479; 248.96427 57192; 249.08502 42124; 249.13922 2933; 249.16934 53984; 249.28502 4129; 249.5484 23405; 249.78233 9410; 249.90446 49035; 250.06135 44363; 250.2321 107350; 250.27804 39104; 250.49041 14668625; 251.05885 9520; 251.15675 9904743; 251.32222 6188602; 251.51134 11840; 251.67312 36126; 251.78132 846978; 251.85191 5363070; 252.0603 3942; 252.08547 122359; 252.22268 23636; 252.37155 2221828; 252.41273 88760; 252.55342 29758; 252.65047 7299; 252.67969 7054; 252.82566 514493; 253.27077 2242176; 253.32317 12894; 253.47152 75027; 253.49798 47268; 253.77274 891105; 253.85868 1642797; 253.90712 853377; 254.15927 5748; 254.59239 1568424; 254.68159 20303; 254.70811 12054; 254.73432 47000; 254.82099 2017433; 255.61686 7994; 255.65816 1278448; 255.71803 416373; 255.74365 961902; 255.79753 55143; 255.89247 5064; 256.24023 10962; 256.27742 162625; 256.43294 27421; 256.57284 35528; 256.61242 149046; 257.06854 2109424; 257.29901 2019; 258.36689 45115; 258.46175 74548; 258.61923 9184; 258.62877 1329985; 258.94435 22904; 258.94658 17033; 259.3986 107299; 259.45667 1789154; 259.56553 4979715; 259.70323 7264031; 259.87485 44291; 259.89627 9523942; 259.93529 1585131; 260.19594 6086; 260.41848 107105; 260.47274 6421; 260.51992 117139; 260.60692 3884737; 260.79886 60207; 261.0211 67369; 261.12771 15536; 261.25288 40884; 261.66536 4408; 261.7794 69350; 262.0948 2967; 262.12638 34301; 262.476 412429; 262.74515 39394; 262.87307 62651; 263.0278 1295; 263.11989 22750; 263.22982 1034369; 263.36915 29384; 263.71573 3558140; 263.74057 23891; 263.76106 7975; 263.87361 29501; 263.94324 1527625; 263.97542 1170146; 264.12178 8305; 264.12491 47718; 264.12633 1107669; 264.36116 13763; 264.56321 20192; 264.69667 58422; 264.99692 68063; 265.33866 23005; 265.4857 735740; 265.52627 21198536; 265.53642 75001; 265.92755 3162881; 266.06006 7458; 267.2666 8423412; 267.28829 20942; 267.49694 7527847; 267.71623 13843; 267.83844 3027; 268.22986 8647; 268.5426 73015; 268.5444 11713; 268.89182 74628; 268.9992 15388; 269.17426 3827368; 269.37273 24726; 269.61262 34973; 269.96058 7163479; 270.156 491970; 270.30589 2915; 270.5156 64110; 270.69876 47369; 270.85044 751234; 270.90898 6199; 270.96092 19871; 271.16436 20813; 271.5196 27410; 271.84925 68834; 272.07667 20165; 272.11871 8810571; 272.28757 25383; 272.50477 35521; 272.50479 83947; 272.54247 9921; 272.55482 6507811; 272.67743 13704202; 272.68343 649786; 272.76181 6890; 272.77765 90983; 273.05604 61071; 273.23352 60933; 273.25975 63815; 273.32148 756721; 273.359 2774532; 273.40286 151443; 273.70274 155940; 273.84328 21816; 273.84787 52628; 274.15417 3938; 274.18681 1327460; 274.27882 76186; 274.34364 33298; 274.35527 4571811; 274.60014 247042; 274.60323 161402; 274.82807 735737; 275.07203 2590; 275.09833 6564699; 275.65891 22028; 275.93121 5594328; 276.18122 171087; 276.26142 9462; 276.27985 36295; 276.34385 1045416; 276.41139 178133; 276.48005 4019302; 276.61909 1151729; 276.94667 1252570; 277.12441 10692261; 277.61089 199095; 277.6901 1877684; 277.91288 72481; 278.05777 666936; 278.28233 9289053; 278.28441 6716935; 278.3907 26762; 278.40883 203425; 278.58049 3339; 278.91255 3477004; 278.99451 23223; 279.04584 67862; 279.16554 1604978; 279.39554 1396471; 279.4781 20161; 279.5895 18095; 279.59437 2182212; 280.14476 781529; 280.18042 28323554; 280.2674 1919322; 280.34527 160292; 280.46524 60150; 280.51727 1197; 280.73647 20663; 281.07146 396846; 281.22321 21118; 281.31297 71972; 281.38776 422860; 281.51318 15961; 281.77525 1532533; 281.78773 186463; 281.83963 6770213; 281.93984 23938; 281.95287 8797; 282.23959 4418059; 282.35696 3523229; 282.56058 52201; 282.60129 36075; 282.74856 14222658; 282.84695 5501022; 282.90394 268119; 282.93819 5002; 282.95219 43232; 283.01086 33516; 283.34261 694089; 283.44232 25530; 283.45881 23227; 283.57069 1365152; 283.59794 1022433; 283.76345 9135; 284.00516 71308; 284.06517 29573; 284.08344 27736; 284.11289 3357; 284.12715 13452143; 284.93715 29638; 285.03433 2254434; 285.05755 2348965; 285.06271 6119; 285.22812 1562950; 285.46338 1694399; 285.61666 5505835; 285.9555 90305; 286.0417 4138; 286.20292 4080; 287.01437 3032; 287.15185 4951521; 287.50537 10281138; 287.5247 1716204; 287.58009 928920; 287.882 26207; 288.14925 2645593; 288.21822 7673; 288.28544 3730813; 288.32035 68651; 288.55963 9594557; 288.7411 13352; 288.83708 33175; 289.0042 612411; 289.01915 15979; 289.09214 3290439; 289.28778 14559; 289.99636 592; 290.08087 8686; 290.46131 69360; 290.47901 1952188; 290.56076 21878; 290.58728 1630651; 290.612 10463; 290.74082 40489; 290.79325 41138; 290.83099 9319878; 290.97348 393953; 291.00731 56732; 291.01266 2064171; 291.22594 16544060; 291.33918 1151914; 291.36339 738682; 291.54919 48114; 292.06459 282425; 292.29447 909693; 292.52535 3656857; 292.54865 4888678; 292.5558 6983; 292.67919 314546; 292.70353 114464; 292.80573 3651; 292.8232 13235167; 292.86028 655186; 293.47534 105268; 294.27645 9318; 294.35757 821233; 294.93191 26171; 295.13739 15376; 295.39939 53519; 295.49369 1465595; 295.56219 31131; 295.64359 51992; 295.81985 62280; 296.15828 26848174; 296.2371 161352; 296.2518 1804; 296.41531 27579; 296.45158 3451; 296.66144 10985; 296.71445 2445; 296.87321 20234376; 297.05539 1411302; 297.09754 50429; 297.2687 9109173; 297.32479 310390; 297.37583 2050271; 297.5005 3173; 297.65678 6004; 297.66121 279789; 297.79668 6232; 298.18411 7578; 298.21615 2014677; 298.26846 130960; 298.28599 63145; 298.45309 62636; 298.69022 26431; 298.91833 129679; 299.10196 3179994; 299.25677 44937; 299.27002 51921; 299.53327 48919; 299.58544 68508; 299.7858 10895; 299.86169 1137075; 299.90836 103486; 300.06424 59160; 300.37011 8412; 300.40668 551911; 301.01461 5726; 301.05041 2314015; 301.1158 5517; 301.25102 68355; 301.77668 28658; 301.81864 27707; 301.95831 4339; 302.56863 13100; 302.6275 1764307; 302.63911 193400; 302.82813 21438; 302.85649 1654761; 302.90491 24553; 302.91882 5401; 302.93478 1771669; 302.99759 3789; 303.14276 6095467; 303.4465 24595; 303.91223 29405; 304.07909 68450; 304.15041 52192; 304.217 37663; 304.21922 20747643; 304.26068 1891234; 304.59617 3095656; 304.67773 8628; 304.78119 251738; 305.25632 4707303; 305.26028 1265221; 305.40226 1240; 305.4875 7189; 305.5691 7016811; 306.13302 32637; 306.41651 50542; 306.44465 9275279; 306.53528 6810; 306.58339 66987; 306.82169 62024; 306.97772 1964041; 307.0495 986577; 307.33397 4747; 307.46461 16262865; 307.50356 25948; 307.85027 27908; 308.52842 30737; 308.66265 29686; 308.80316 11057; 309.53015 45991; 310.4294 318326; 310.4737 59544; 310.64579 1207785; 310.82573 38449; 310.95623 69377; 311.01311 723032; 311.0659 23517; 311.53823 387716; 311.68766 6005770; 311.79562 1091577; 311.94229 3099248; 312.11615 45098; 312.12349 1242546; 312.56546 289574; 312.63174 29484502; 312.98853 21589; 313.04988 2506293; 313.12458 15193; 313.26108 28199; 313.43308 198610; 314.17877 2006806; 314.79411 5214930; 315.75944 6444555; 316.01184 24211; 316.28176 67998; 316.54786 1384580; 316.68578 26696; 316.68808 3193; 316.81827 23040; 317.22523 6695231; 317.26872 197571; 317.39137 869699; 317.42353 15141; 317.78499 1029578; 317.82684 9953; 317.97303 29039; 318.14454 2553; 318.44448 5108730; 318.8099 9171; 319.1276 970096; 319.44342 16972; 319.81857 420508; 319.99292 40269; 320.0345 3635309; 320.5689 1565056; 320.82918 9748389; 321.25162 4925868; 321.28629 9070; 321.32728 19693756; 321.67157 672202; 321.85349 31685; 321.89693 32770; 321.91806 2893; 322.16675 1636098; 322.1746 1264619; 322.30259 71683; 322.33806 58518; 322.45 4914953; 322.5453 3539; 322.67219 20691; 322.74799 206792; 322.86243 22114; 322.94551 9922362; 323.08134 24556; 323.30964 189490; 323.4787 1736553; 323.82689 190714; 323.83418 7744; 323.93459 1569767; 324.0218 30454; 324.66285 9596779; 324.7543 118222; 324.99754 5051681; 325.07848 257987; 326.38064 510242; 326.77948 166982; 326.82403 872124; 326.88986 9063; 327.21668 18918925; 327.60771 185295; 327.65445 13741; 327.93462 19511; 328.16419 78813; 328.54551 57073; 328.64124 95328; 328.69041 1816477; 329.08701 3488108; 329.4711 64832; 329.49345 27862; 329.70845 17194; 330.16461 28896; 330.4631 4181; 330.92763 45317; 330.92921 4923897; 331.01467 10463993; 331.02744 4124870; 331.22152 5324; 331.26722 24571; 331.29686 103522; 331.30313 1090025; 331.3659 66256; 331.60909 195427; 331.66843 193572; 332.01974 60320; 332.11553 133668; 332.24741 61929; 332.27783 8051; 332.46036 9896; 332.64355 1559111; 332.67106 63592; 333.23011 5674631; 333.33923 7298186; 333.37421 31780; 333.51898 4319890; 334.01768 1160; 334.03491 3598782; 334.1499 78395; 334.7365 7344; 334.80517 2481285; 334.81585 47762; 334.95891 13305; 334.96184 37580; 335.09362 29293; 335.11403 42384; 335.13553 5228479; 335.2103 3958480; 335.2146 55871; 335.24954 6335; 335.44606 1730782; 335.65822 28795; 335.80699 8422569; 335.9455 40427; 336.28605 3018; 336.38237 419512; 336.48894 79760; 336.56421 29758; 337.2809 23084; 337.33434 8553; 337.35155 2405298; 337.47189 70585; 337.47535 9613926; 337.77214 15429; 338.09474 52087; 338.22211 43153; 338.24713 498733; 338.33384 4544170; 338.35961 8956; 338.72661 4252719; 339.09588 8185475; 339.51978 31206; 339.5755 1847301; 339.841 23869; 339.88985 792694; 340.13044 4700681; 340.18848 54361; 340.18864 895158; 340.29272 250381; 340.33802 12711; 340.84255 2666501; 341.2375 60444; 341.94049 9595470; 342.0579 1535594; 342.28648 8961530; 342.32107 688; 342.58996 21455935; 342.65172 5434; 342.75222 402783; 342.79013 13458; 342.91241 69566; 343.06447 16845; 343.20031 4855573; 343.4436 28485; 343.88069 33714; 343.96238 3613463; 344.05258 63809; 344.05738 61375; 344.50979 25999; 344.52574 25592; 344.88962 78461; 344.89921 222179; 344.98462 72468; 345.21528 32659; 345.28073 93025; 345.42499 9096; 345.49849 121854; 345.52166 28754; 345.90608 2063147; 345.99225 34734; 346.07221 145332; 346.24594 156691; 346.25508 4078078; 346.27122 29500; 346.37222 8879; 346.42795 64172; 346.69105 67024; 346.87585 2864729; 346.92286 10041; 347.00437 222310; 347.15082 89262; 347.17349 1740; 347.27924 6483; 347.31196 7445; 347.40611 75720; 347.6133 8441463; 347.92448 48633; 348.05552 75786; 348.07389 22016; 348.30627 7256; 348.79837 628461; 348.88438 3986143; 348.94221 69465; 349.13164 9040048; 349.22588 27460; 349.52008 844871; 349.63893 174492; 349.7869 24119; 350.46982 4564716; 350.65661 23801; 350.66184 13911; 350.81267 65409; 350.86523 14702; 350.92494 26002; 350.9264 8904; 350.95215 108382; 351.21032 51225; 351.25659 4965900; 351.38202 4293; 351.56024 462906; 351.64617 989136; 352.182 74504; 352.62661 62728; 352.99166 19768; 353.19875 168919; 353.25112 3830602; 353.4043 4011950; 353.76653 9357580; 353.76702 24632583; 353.96318 39761; 353.99771 4100365; 354.00918 60137; 354.02605 3080627; 354.1963 1565558; 354.21107 88560; 354.32557 164788; 354.35946 38115; 354.84064 112034; 354.9423 4040750; 355.14426 26088; 355.36288 12485; 355.54476 2136444; 355.83469 172655; 355.93337 8375323; 356.39632 999944; 356.92454 1330629; 357.25517 458131; 357.41829 29661; 357.52483 81210; 357.54111 205365; 357.75739 330690; 357.77162 24164; 357.85076 4356784; 357.97858 2405; 358.00221 4877; 358.12304 38148; 358.2124 4557788; 358.67576 349; 358.90045 7437470; 358.9073 162959; 359.19197 4899531; 359.28116 47115; 359.54486 34661; 359.67285 14458429; 359.7324 7309; 359.84349 66879; 360.12728 4947919; 360.26266 2137; 360.30013 26568; 360.49222 4690735; 360.90673 9115518; 361.17271 31505; 361.19991 13445553; 361.20835 23082; 361.24807 63079; 361.458 2618857; 361.48232 7369; 361.86452 32680; 362.10685 1971957; 362.12497 2665; 362.26644 77615; 362.38895 38168; 362.41464 33274; 362.73162 2044002; 362.78219 3881004; 362.85431 51814; 363.11044 85; 363.41705 476710; 363.6207 9583; 363.64675 7770; 363.97686 76708; 363.99803 77944; 364.42023 72584; 364.45646 787076; 364.85455 21262007; 364.88527 10393; 365.3945 1792775; 365.40047 1413340; 365.42622 3025004; 365.46919 14619; 365.55355 57451; 365.55775 11416; 365.69673 889210; 365.72129 458925; 365.80236 7346; 365.87279 24153; 365.89518 4736414; 365.89673 50307; 365.92849 212208; 366.31006 6960689; 366.51016 5286; 366.54941 9027; 366.64376 31145; 366.64916 5462; 366.80138 4369896; 367.11776 1210894; 367.3892 26657; 367.70456 1169967; 367.74483 4433; 367.76444 2231988; 367.99792 187928; 368.2163 33250; 368.43762 57061; 368.47259 16255; 368.65577 771947; 368.69162 34938; 369.0106 8656; 369.39559 7373; 370.04953 143723; 370.23358 41449; 370.26445 98292; 370.3376 5023524; 370.43844 3503; 370.65607 28993; 371.18511 73982; 371.28927 84243; 371.4769 19557; 371.54589 4942271; 371.55482 22228; 371.96008 1557130; 372.06748 49261; 372.33181 32891; 372.37056 34862; 372.38222 739721; 372.48776 37245; 372.82502 21719; 373.03623 70242; 373.0387 3933387; 373.13127 6429046; 373.16888 5167671; 373.8255 660749; 373.95141 5536; 374.03245 6238; 374.45167 1669715; 374.50123 21702; 374.59348 107920; 374.66435 1816447; 374.93312 7690; 374.99777 59085; 375.10084 25674; 375.12521 3472884; 375.23542 27455; 375.35714 1085; 375.3865 4482382; 375.68784 3269020; 375.81545 8186741; 375.97854 133921; 376.05402 25898; 376.21306 7421; 376.2965 18062274; 376.74053 516048; 376.87129 473702; 376.97669 16472; 377.08485 147832; 377.51112 220520; 377.81781 94104; 377.91708 2349; 378.32743 20634; 378.47469 76327; 378.52322 97917; 378.56376 25033; 378.67699 34792; 378.71185 782792; 378.73309 29479117; 378.85853 9845; 379.18745 1015824; 379.25224 1635688; 379.61813 817651; 379.61895 180520; 380.05341 12101; 380.21672 70878; 380.27185 1359; 380.30523 22607; 380.311 2630; 380.32025 44854; 380.64998 190888; 380.66569 47966; 380.67075 6702; 380.79246 285; 380.82566 67497; 380.83903 8881085; 380.85788 488293; 380.95893 3757759; 380.99887 8627881; 381.13703 6784; 381.16302 25459; 381.21569 49411; 381.25003 3348241; 381.28545 1364623; 381.33228 338766; 381.40482 49939; 381.658 4076055; 381.90029 29119; 381.99794 9976; 382.05479 8373; 382.11518 61054; 382.25275 2692364; 382.2937 79444; 382.45995 25530; 382.8865 58300; 382.89391 4479516; 382.99127 9925521; 383.68234 33670; 383.69563 110456; 383.79847 11797; 383.82537 3187; 383.88871 4239; 384.07005 4945; 384.16489 431575; 384.23496 11393; 384.24989 7382; 384.29785 3784647; 384.3723 78390; 384.44294 5158; 384.58629 7544; 384.60523 74200; 384.73109 794435; 384.91649 1804156; 385.17345 52094; 385.8179 22636; 385.92821 57326; 385.93633 24293; 385.9392 2898779; 385.94396 1547243; 386.08735 51883; 386.40192 56497; 386.44665 7770; 386.56151 9911512; 386.59016 250696; 386.64492 1532469; 386.89719 3703822; 386.91412 3012499; 387.05459 26258; 387.16855 936630; 387.44436 456938; 387.78119 32297; 387.80263 9859; 387.92613 46335; 387.99241 2678265; 388.06232 146837; 388.28301 16835; 388.86712 180947; 389.00505 4591981; 389.03614 26908; 389.50002 9409838; 389.74249 3725; 390.03183 934752; 390.14771 160688; 390.16733 106673; 390.24 22270; 390.29015 473099; 391.16921 1399155; 391.24396 1103; 391.3444 6752562; 391.35125 43250; 391.38026 8779; 391.96969 4980216; 392.23703 21978; 392.57255 30038; 392.63145 177189; 392.67472 1590001; 392.85797 36918; 393.06959 3371156; 393.14584 1739656; 393.36282 2811951; 393.39358 21993059; 394.63502 3143767; 395.20312 1734894; 395.22794 24551; 395.29558 6348; 395.4569 42578; 395.64638 41096; 396.08308 214470; 396.10379 556936; 396.12063 71652; 396.92375 3091400; 396.98153 7330; 397.01254 2682642; 397.3174 63699; 397.50608 30543; 397.6691 7830; 397.87567 4923955; 397.92291 3770; 397.95223 15984; 397.97254 19154; 398.02924 37393; 398.08727 75933; 398.35185 49041; 398.40211 1185827; 398.5484 52461; 398.68194 7089817; 398.77968 675005; 398.97814 5343; 399.03018 1790222; 399.34936 226641; 399.45789 77424; 399.63764 8852; 400.12231 19034; 400.47771 3957; 401.46258 935; 401.61777 2388; 401.78904 1058301; 401.86685 70708; 402.8529 729036; 403.01713 16015; 403.18543 734756; 403.30619 4980026; 403.37379 8171961; 403.37514 6557764; 403.87411 42553; 404.29101 121245; 404.52198 33609; 404.54543 8983; 404.87906 3973; 404.91151 3657; 404.9155 70037; 404.96173 20111; 405.32203 314173; 405.35452 3882; 405.75896 935089; 405.97775 21366; 406.09003 29545; 406.26441 19628; 406.43557 156693; 406.6713 41070; 406.72406 1491584; 406.76559 1023586; 406.96216 114701; 407.11477 2341284; 407.13765 1076898; 407.16362 58660; 407.44702 53129; 407.6999 8584993; 407.75715 5519; 407.77674 7323; 407.87187 1618668; 408.86665 58251; 409.42792 1575965; 409.53321 39499; 409.57971 79521; 409.69011 73117; 409.92941 2916; 410.11366 330; 410.13086 174838; 410.13427 2206; 410.22264 33436; 410.4297 5361743; 410.44925 35975; 411.15179 2781; 411.35098 3429; 411.41415 1273251; 411.48086 2888; 411.52212 8179229; 411.60232 26014; 412.20751 57714; 412.24402 63350; 412.38567 8685430; 412.4217 2954; 412.46999 1632551; 412.84694 1017265; 413.10847 84659; 413.27898 29168; 413.3678 2977694; 413.3882 325178; 413.51887 4491; 413.58236 25495; 413.81765 275852; 413.88577 192777; 414.37259 1954081; 414.66612 54588; 414.72226 1420237; 414.93764 8259301; 415.08549 27362; 415.09582 2477; 415.20862 8737; 415.29385 32339; 415.49126 71514; 415.52648 1273883; 415.58824 3652196; 415.72692 78738; 415.72836 56861; 416.14866 95397; 416.45226 28624197; 416.46831 516009; 416.60292 58352; 416.95755 4990757; 417.43789 1707756; 417.48875 29753; 417.59222 2212; 417.96771 16721; 417.99757 7693199; 418.1996 3246686; 418.43808 35886; 418.52083 17835; 418.75472 12586; 418.99271 62323; 419.36568 9243; 419.81103 69002; 420.01241 31652; 420.43075 68005; 420.47244 28895; 420.6548 630106; 420.86007 1848733; 420.97335 26026; 420.99258 244047; 421.29187 2927993; 421.48204 78379; 421.70146 2927; 421.71535 39082; 422.02318 1622204; 422.30507 46895; 422.32331 729897; 422.48638 30832; 422.50007 12557119; 422.70011 171281; 422.73918 441631; 423.08271 55009; 423.14973 45428; 423.3043 15260; 423.42123 46374; 423.4297 71620; 423.52867 26947; 423.54689 18901; 423.71125 1858462; 424.09728 32888; 424.29991 387946; 424.33451 4590; 424.60851 32182; 424.68936 42508; 424.74034 3839; 424.93181 54973; 424.95274 46702; 425.48262 68164; 425.61959 460520; 425.62719 50322; 426.04065 21604010; 426.07752 593760; 426.17842 1706; 426.18763 72171; 426.19314 27934; 426.27744 13311; 426.30837 1080742; 426.44502 3624; 426.65807 886671; 426.9333 36140; 427.20862 351655; 427.40769 1519; 427.5832 193197; 427.71603 79849; 427.98944 4846773; 428.04471 8917317; 428.19916 5728183; 428.23762 1849197; 428.39773 29800; 428.56431 8673741; 428.81981 3104370; 428.89135 371087; 429.16665 1040751; 429.16848 48175; 429.32456 78523; 429.64549 12851; 429.83889 4582662; 430.14522 76175; 430.16597 73618; 430.70299 23592; 430.87278 9260; 430.95685 48116; 431.03376 25740; 431.08754 3303; 431.87106 54770; 432.19016 1427560; 432.25237 6634; 432.43273 3532; 432.48238 3654; 432.67501 1527543; 432.7052 230033; 432.90341 1335104; 433.05899 632834; 433.08598 1841380; 433.3505 6581541; 433.39833 64365; 433.56778 5064565; 433.64366 60844; 433.70059 4380532; 433.75036 218214; 433.78495 1903680; 433.79167 1458420; 433.95207 1402306; 434.08764 23778; 434.13434 161631; 434.47137 52753; 434.7525 179096; 434.80572 25130; 435.31249 9338213; 435.51102 40965; 435.60358 2056; 435.6753 2441412; 436.41986 49754; 436.46486 7450412; 436.46864 69015; 436.90113 4268098; 436.96552 6525; 437.19799 1185239; 437.27972 368638; 437.35592 1320145; 437.37937 56495; 437.53476 41260; 437.6494 29418; 437.89693 2927; 437.90065 17189; 438.52953 8852971; 438.71662 33447; 438.75284 33448; 438.80872 35637; 438.9758 27; 439.38511 1112; 439.88079 124466; 440.05235 124252; 440.10587 58207; 440.14853 996546; 440.17537 8767432; 440.18212 2175876; 440.18751 77869; 440.27603 987839; 440.29483 28812621; 440.32593 163307; 440.51712 114159; 440.55816 163847; 440.58897 10150; 440.61683 4941659; 440.7736 738; 440.89725 149514; 440.90503 127915; 440.99145 22370; 441.08391 1997200; 441.38001 1397669; 441.67879 1358270; 441.711 5110813; 441.88669 40229; 441.98717 5246022; 442.05082 73966; 442.21152 611487; 442.44701 359; 442.46474 21121; 442.92269 188853; 443.01282 511163; 443.05835 2757; 443.37028 61176; 443.55609 38329; 443.7436 72687; 443.77571 8195; 444.14252 10917; 444.1771 23999; 444.2677 9507272; 444.28768 2391; 444.33899 54783; 444.89839 44294; 445.12769 20610; 445.17277 30687; 445.25424 27836; 445.35053 21319; 445.81871 345; 446.21417 49134; 446.31818 1708941; 446.36265 6850279; 446.43635 23488; 446.54639 4966033; 446.69479 10564; 446.74678 1200388; 446.74915 64141; 447.22153 6065; 447.40351 4345478; 447.63926 69772; 447.69022 20710; 447.76434 13951; 447.89206 150707; 447.90232 60413; 447.99729 22644; 448.01954 8704699; 448.17726 1654019; 448.22901 22474; 448.38835 6256038; 448.66539 93761; 448.68208 20309; 448.69744 29715; 448.83716 672; 449.14141 671351; 449.54698 108540; 449.64862 13543; 449.77589 135361; 450.12683 22717; 450.41004 62107; 450.68302 26775; 450.72889 41599; 450.7358 65107; 450.81696 9327; 450.84895 1634349; 450.9552 1829784; 451.06913 1748675; 451.13289 14553138; 451.36497 23534; 451.50617 144080; 451.74768 11479625; 451.97952 55267; 452.01353 90157; 452.09981 102647; 452.27177 12369; 452.86397 3508491; 452.92363 12390; 452.93013 27721; 453.11032 8248; 453.14194 767290; 453.18317 913129; 453.316 38403; 453.94129 46026; 453.9643 26561; 454.10911 7376; 454.23842 469254; 454.43381 61890; 454.85121 629354; 454.93968 2642568; 455.15079 22403; 455.18026 45567; 455.26245 241888; 456.23989 22034; 456.28037 2543434; 456.42384 31180; 456.87997 1655947; 456.95786 3845904; 456.97346 10577; 457.15797 62873; 457.22461 222403; 457.25615 10807; 457.41252 21062; 457.61922 69640; 457.87381 26235; 457.94363 3051735; 458.00879 89504; 458.03971 2370063; 458.06036 147847; 458.12287 8897778; 458.13679 719497; 458.19319 4248859; 458.42992 9969309; 458.46582 1521776; 458.56767 5116182; 458.59759 4775308; 458.89548 178996; 459.07788 2490039; 459.22109 1631295; 459.26238 761818; 459.28452 1690430; 459.37858 140798; 459.66077 69420; 459.75253 547420; 459.75721 135448; 459.87224 18639064; 459.90955 5093067; 459.95873 1983695; 459.99457 2142048; 460.07309 3954; 460.11744 69472; 460.21076 56091; 460.33029 2974; 460.67769 10384; 460.70248 11528; 460.99904 271126; 461.31156 178712; 461.49646 72575; 461.51718 3244185; 461.83936 530355; 461.8698 7501; 462.88553 7177282; 463.31439 59762; 463.45011 286352; 463.64223 36837; 463.86639 4497008; 464.26395 1328923; 464.27778 123285; 464.29181 21654; 464.3897 58853; 464.57224 1444664; 464.8135 34411; 464.87018 2423056; 465.07532 272027; 465.31578 1441141; 465.72443 180643; 465.76841 54584; 466.05802 883485; 466.07879 40502; 466.07992 1886158; 466.30957 55159; 466.33484 1487091; 466.48789 4233862; 466.71565 72758; 466.83047 25430; 467.24915 40017; 467.37343 189247; 467.37741 12162; 467.55701 42148; 467.65646 25196; 467.6894 3135891; 467.81301 8243; 467.9726 4609576; 467.98276 1759357; 468.15062 25418; 468.1859 4746; 468.24732 73508; 468.49101 3090; 468.8873 14511456; 468.92942 2994587; 469.00642 53649; 469.03313 8022597; 469.04857 1080479; 469.15135 2190649; 469.60272 89993; 469.69066 919615; 469.77142 77634; 469.83338 3180264; 469.90101 7786716; 470.16634 699265; 470.37926 191400; 470.71992 50480; 471.27983 70207; 471.40785 7800; 471.86056 124790; 472.05977 27775; 472.08203 61325; 472.67278 6301; 472.7604 76269; 472.77796 149498; 472.94535 6880; 473.11123 6982444; 473.44895 672116; 473.53339 10701; 473.62442 153108; 473.84045 9072883; 473.91204 29932; 473.92742 533998; 474.36558 16905; 474.3954 17707; 474.52957 11439837; 474.81145 30963; 475.0028 2767434; 475.12212 633241; 475.28529 6369; 475.40287 35691; 475.42801 3156139; 475.58574 9665; 475.98583 3093805; 476.4381 28435; 476.59506 19628; 476.69 2369; 477.01264 69957; 477.22082 1045509; 477.33908 554371; 477.60997 14002; 477.77922 73295; 477.85159 2145577; 477.86691 9498004; 477.94126 3562212; 478.42168 52250; 478.44552 842866; 478.4639 283814; 479.30582 3268794; 479.41132 127318; 479.53479 2541347; 480.1448 72110; 480.16946 51349; 480.27185 8603; 480.27991 1345853; 480.32049 63952; 480.65378 74583; 480.73003 26661; 480.7363 856366; 480.81818 28888; 480.83144 6943293; 481.04276 2596; 481.14248 840964; 481.15259 9458715; 481.9569 73920; 482.38349 4299482; 482.84632 7625; 483.01379 6011769; 483.25128 58959; 483.46823 4616626; 483.58911 1024794; 483.98866 1116570; 483.99572 840; 484.22322 1230510; 484.28788 23282429; 484.30646 33196; 484.3872 4375878; 484.4734 32184; 484.58873 20047; 484.67824 1877210; 484.68662 798535; 484.79086 6194; 484.99449 528340; 485.03683 25966; 485.08681 1270773; 485.19137 643503; 485.25478 2236; 485.36545 71494; 485.41847 3398; 485.54515 71197; 485.64755 6410731; 485.69787 2281; 485.7225 2549510; 485.72997 28698; 485.87296 2534892; 486.948 55485; 486.94965 3121985; 487.10868 3933288; 487.97233 107552; 488.03544 4313525; 488.19018 33365; 488.30715 98191; 488.60314 9061343; 488.71937 7930; 488.77099 23043; 488.77422 75060; 488.85658 605372; 488.85962 33465; 489.06155 25162; 489.15548 1688900; 489.22574 2210060; 489.25139 21143; 489.34267 71511; 489.52672 1023165; 489.6368 27959; 489.90655 479483; 490.63729 57131; 491.09021 26077; 491.09801 4600461; 491.13432 25556; 491.87063 51071; 492.04745 25990762; 492.23305 6555; 492.57437 4862570; 492.75484 699603; 492.99558 3493414; 493.24127 64769; 493.43399 33952; 493.8839 498227; 493.99595 10251; 494.05652 179317; 494.14592 442292; 494.66636 2267; 494.93301 1462332; 495.12473 68757; 495.53522 1352081; 495.54557 4681; 495.75601 79032; 496.355 708612; 496.56965 69938; 496.59049 3390; 496.68271 71156; 497.49298 63860; 497.56323 1533; 497.72036 146304; 497.78196 57633; 497.89061 342690; 498.25373 720756; 498.28769 2855338; 498.40699 956877; 498.41538 5113; 498.41989 130742; 498.71446 54133; 498.78526 17187067; 499.12371 3394; 499.17383 45229; 499.40168 3933991; 499.69709 959246; 499.78992 15035 +<5, 2>: 0.00432 55458; 0.15454 49644; 0.40584 23774; 0.51309 63043; 0.62554 26090; 0.63867 257; 0.649 92; 0.67889 56208; 0.99074 55443; 1.08473 2456751; 1.37731 772221; 1.47605 35790; 2.21076 27500; 2.25816 8211; 2.49313 74933; 2.8722 2492381; 2.99973 8297; 3.05943 689190; 3.11003 8984432; 3.23384 1284654; 3.37392 1063718; 3.4321 12509635; 3.60411 3844286; 3.71658 56035; 3.7699 128236; 3.80432 60963; 4.35905 9045; 4.37503 79749; 4.3835 5225; 4.44206 26386; 4.58099 13023; 4.67243 169954; 4.79725 71475; 4.80302 6796870; 4.89509 9858; 4.94016 242044; 5.1313 105302; 5.52721 72555; 5.55626 650; 5.57049 8753232; 5.62584 4594812; 6.61223 20570; 7.90144 24003; 8.4827 1652020; 8.74677 20290; 9.09808 828566; 9.24946 1835; 9.53168 52381; 9.78047 13566; 9.82632 29913; 9.84177 29387; 9.94741 1541478; 10.1359 2769048; 10.2886 358844; 10.7634 24038; 10.85084 29853; 10.91978 77779; 10.99871 48719; 11.1218 622729; 11.13114 108469; 11.23397 171297; 11.29686 1667256; 11.35875 32500; 11.68196 88794; 12.42026 72194; 12.60988 2209196; 12.71156 52143; 13.30491 22904; 13.3168 1385527; 13.34199 66749; 13.53325 4626; 13.7445 9670; 13.74499 304905; 13.85759 1194686; 14.06121 35294; 14.10348 80865; 14.11042 56291; 14.4018 66680; 14.6388 64253; 14.73024 19121737; 14.7315 459538; 14.92915 6651932; 15.6112 9029; 15.84825 648809; 15.86803 46755; 15.91977 160879; 16.4913 71426; 16.58701 1191983; 16.98613 2237369; 17.04805 986066; 17.55377 79003; 17.71351 293432; 18.18156 1362991; 18.33494 3800; 18.64322 7047; 18.6995 133591; 18.97535 5622; 19.00105 1895213; 19.50404 34462; 19.95144 8468; 20.08862 4912252; 20.218 8255841; 20.51 69775; 20.72945 417120; 20.81313 23917; 21.04065 1121178; 21.22181 331564; 21.3179 9711807; 21.31877 49048; 21.40308 3828; 21.71211 50408; 22.15082 8794941; 22.29213 1500197; 22.34863 58379; 22.37789 77502; 22.41737 3754933; 22.86005 13202; 22.95894 26353; 22.97984 678877; 23.00717 50432; 23.03621 65837; 23.24915 16113362; 23.9381 66828; 24.30188 145077; 24.35785 3100332; 24.56475 4016424; 24.86692 23027511; 25.05134 169940; 25.67274 265; 25.8042 79935; 25.87531 8080; 25.93948 9669; 25.98853 38733; 26.63948 58349; 26.88913 9626; 27.35879 1673802; 27.40861 4770964; 27.76834 21969; 27.94085 20325; 27.97109 20002; 28.27618 33232; 28.51326 10984; 28.58118 8981857; 28.67103 39542; 28.77231 75071; 28.91959 25829; 28.93327 692464; 29.49046 53100; 29.77955 14311; 29.91255 3100; 30.03994 3293722; 30.23564 1774093; 30.78722 9633; 30.96847 4453602; 31.30324 52614; 31.4169 5747133; 31.42645 24582; 31.75256 42549; 31.89883 620159; 31.93347 375038; 31.95038 67302; 32.00895 23843; 32.38192 624269; 32.42164 61103; 32.58676 23832; 32.74822 74473; 33.01474 2297368; 33.774 28267; 33.94618 21950; 33.94915 7839613; 34.24251 111764; 34.25908 22879802; 34.31316 7269; 34.34325 20934707; 34.72621 8073762; 34.96109 69894; 35.24934 75198; 35.42265 62868; 35.58055 4444; 35.68046 637584; 35.86238 141121; 36.12337 6355967; 36.21402 25812; 36.95957 3579979; 37.21207 6762252; 37.54617 22835; 37.71413 17660; 37.85549 29871; 38.16564 7395086; 38.16581 80068; 38.3636 446; 38.47904 4182590; 38.62173 2350; 38.82 2124800; 39.48083 4016978; 39.57698 23905; 40.02023 18479; 40.05926 842564; 40.20927 2315148; 40.575 72023; 40.84157 64795; 40.91989 6450; 40.99601 86912; 41.025 18056804; 41.05584 16223; 41.18777 4566393; 41.38104 38050; 41.56577 27499; 41.64123 8259158; 42.20996 6949; 42.70398 844913; 42.71503 12013; 43.15507 8609866; 43.93055 20914; 44.0198 8231; 44.0704 25044; 44.1315 6786685; 44.16433 2488; 44.36485 964514; 44.44201 609772; 44.78636 14918; 44.8006 2285; 44.85108 6966823; 44.90764 4846418; 45.01913 9115; 45.74081 74236; 46.07746 57489; 46.1458 15196971; 46.22544 226477; 46.5998 150187; 46.60578 50229; 47.41759 1202530; 47.42784 71158; 47.86893 6167289; 48.01368 41433; 48.38676 2116163; 48.41628 1234522; 48.53107 75023; 48.64892 177878; 48.74605 9363; 48.88902 175625; 49.1638 74764; 49.53695 8423; 49.72995 40214; 50.04361 3673; 50.22585 33716; 50.33463 4209; 50.41493 249104; 51.4137 20220; 51.69101 8157; 52.07954 31312; 52.28158 8731; 52.46774 1538192; 52.79295 2792794; 52.94756 1938483; 52.9571 1431; 53.18967 4359590; 53.22007 2217602; 53.34962 3351624; 53.50567 315101; 53.79636 5774; 53.96931 2354581; 54.10729 43618; 54.12438 1985380; 54.44032 85511; 54.68204 677964; 54.75153 22140; 54.7641 53223; 54.77605 405765; 55.17051 514251; 55.23485 142150; 55.67243 19437; 55.82248 23237; 56.16141 4530; 56.19504 26610; 56.34422 60008; 56.6955 75168; 56.72603 4167188; 56.82066 26951; 57.30267 21787346; 57.63313 4329; 57.69009 8201; 57.92664 179124; 58.03159 14454; 58.04545 76781; 58.0607 69238; 58.46795 702441; 58.59965 1833760; 58.66761 6587; 58.77485 422462; 58.80467 21163; 59.00825 1858713; 59.51967 38760; 59.87041 30930; 60.0596 1334113; 60.12047 118870; 60.26215 4205401; 60.26819 34637; 60.65424 2366; 60.82682 5741; 60.82989 25057; 61.24809 9253; 61.28564 24644; 61.52031 2947; 61.85358 7198901; 62.00081 1521806; 62.24544 60556; 62.57703 2348601; 62.67088 264324; 62.72392 22644; 63.00394 7984772; 63.12065 31564; 63.14403 50537; 63.22986 20720; 63.34023 41790; 65.00402 62063; 65.13278 448131; 65.43535 259992; 65.49369 5751; 65.71826 4529188; 65.75024 4848381; 65.82231 27717; 65.84404 1147889; 65.97806 30939; 65.99861 158279; 66.01039 66762; 66.06982 58461; 66.15557 54070; 66.50141 21026; 66.69811 58852; 66.70111 8038842; 66.71612 39073; 66.88482 3030463; 67.43203 941624; 67.88421 24314; 68.35448 4434613; 68.52108 48073; 68.764 7177; 69.35128 612311; 69.42418 9455; 69.55527 23318; 69.67056 4620272; 69.91497 26664; 70.3774 831695; 70.54655 25486; 70.65128 39456; 70.65444 190221; 70.77947 7328383; 70.79711 4925; 70.85871 50652; 71.108 30927; 71.51453 43623; 71.68957 772486; 72.58861 24130; 72.69561 534; 72.8669 23939408; 72.89949 4690716; 72.90997 2019; 73.11717 136532; 73.18426 24010; 73.26804 18480874; 73.30108 101936; 73.37876 54326; 73.8108 25622; 74.343 787327; 74.34348 26933; 74.50586 24236; 74.60472 6557258; 74.63366 1951620; 74.73529 169199; 74.85982 71707; 74.8802 1955177; 74.9858 1244356; 75.27138 2834287; 75.27454 53948; 75.28904 354387; 75.39083 1882391; 75.46287 182137; 75.633 44519; 75.80568 35771; 75.86191 715; 75.9456 29459266; 76.19596 65733; 76.41748 30469; 76.53663 61112; 76.56706 5801; 76.71012 45682; 76.80412 3921; 76.82424 79134; 76.85651 3690924; 77.51301 94633; 77.62522 64313; 77.72883 2023547; 78.36809 54656; 78.77829 10161440; 78.82269 7264; 78.89911 36246; 79.00733 21882234; 79.10544 1307; 79.14164 1347073; 79.16616 759652; 79.21275 4465044; 79.22584 723604; 79.49497 9047; 79.55979 4840170; 79.58198 813439; 79.60528 75532; 79.65413 38056; 79.87944 2997; 79.89557 5539; 79.96103 187669; 80.09743 4351134; 80.15722 2664483; 80.27348 20971675; 80.34911 2758821; 80.44188 9482; 80.51181 143914; 80.55844 19990; 80.70008 76136; 80.83005 14185046; 81.10232 135900; 81.30349 3288545; 81.79818 19973; 82.52731 3829091; 82.57651 3628; 82.77316 20971; 82.82193 30065; 82.84658 1635704; 83.04927 2127; 83.07981 108443; 83.09758 357765; 83.17419 23053; 83.35209 94602; 83.35407 8101; 83.68473 1533858; 83.72967 24294516; 83.99971 10748; 84.08443 15385; 84.50261 2571325; 84.70349 743873; 84.8507 78475; 84.90071 46303; 84.92457 28886; 85.31955 34306; 85.32157 118164; 85.53048 24534; 85.89787 1068753; 86.00692 487081; 86.27561 20978; 86.33001 563; 86.42584 55950; 86.46281 79519; 86.48863 12887; 86.72691 77966; 86.82187 45267; 86.82783 903556; 86.88272 13865; 87.16604 65382; 87.31757 1996728; 87.44639 1673089; 87.67634 110273; 88.19105 6304363; 88.56769 1185051; 88.90984 1749; 89.57213 8798623; 89.67062 89788; 89.97923 40020; 90.21154 7294; 90.33188 49929; 90.57374 62885; 90.85 30150; 90.91393 159657; 90.91685 7437; 91.33413 6300599; 91.35497 75080; 91.44211 982974; 91.67434 1422826; 91.74307 18030845; 91.90822 29661; 91.93072 1369842; 91.95449 34919; 91.98056 1845639; 92.13432 9008; 92.3048 27644; 92.49168 27134795; 92.5087 1679490; 92.6567 5358199; 92.68753 50542; 92.80993 8435; 93.05449 27259; 93.28998 63625; 93.31992 1135488; 93.35349 92409; 93.97871 889316; 94.03187 32283; 94.07213 15020; 94.21835 189572; 94.5902 6243889; 95.12161 4851248; 95.28439 1824; 95.57248 8465; 95.75922 36104; 95.80423 51554; 95.91946 41622; 96.70267 1156681; 96.86668 170050; 97.06542 54037; 97.24037 37105; 97.42861 18281954; 97.80993 2588; 97.86686 15049; 97.92048 292405; 98.01615 19778; 98.03994 2117494; 98.14472 1923913; 98.23904 21366; 98.25653 362; 98.50902 5829493; 98.72378 1049; 98.75774 3400801; 99.09992 8505; 99.22511 919344; 99.28321 1005807; 99.32324 21253; 99.33363 28306; 99.52221 42836; 99.52749 63362; 99.5841 9272; 99.88943 43363; 99.90648 2033; 99.97596 3831493; 100.06768 54979; 100.7908 6915269; 101.85346 29388126; 101.97927 77531; 102.25456 817411; 102.26206 144824; 102.27072 29768; 102.3657 13302; 102.42887 48630; 102.77136 137541; 102.91527 25996; 102.94112 96518; 103.96848 1941906; 104.01085 26800; 104.14229 6155; 104.19812 6490783; 104.47407 736696; 104.51264 1681130; 104.57409 4121726; 104.65552 1976773; 104.8387 6849778; 105.39203 1894392; 105.57514 28221; 105.58942 14074672; 105.66712 148863; 105.72021 4767189; 105.8314 41358; 106.72552 5201218; 107.13014 49136; 107.33855 1590910; 107.50985 46314; 107.97549 65951; 108.15769 44967; 108.22606 2663255; 108.58527 2952; 108.61291 777738; 108.89127 73062; 109.08721 5263; 109.15307 4667561; 109.16383 7047648; 109.56572 5727837; 109.65244 57351; 109.66845 25574; 109.71025 2571820; 109.82579 1603077; 109.84312 28669213; 110.06862 1294712; 110.15081 72962; 110.34418 194738; 110.40102 432033; 110.81152 99538; 111.17168 2637538; 111.48751 4643705; 111.51584 57707; 111.67412 4561390; 111.74936 7954109; 112.06975 713529; 112.09826 94008; 112.57151 2607922; 112.71282 78252; 112.88695 78795; 113.07824 3232035; 114.13915 6736291; 114.34244 7351; 114.38119 59767; 114.42688 51929; 114.55105 1913919; 114.8027 22451; 114.85958 1706526; 114.96768 23857; 115.00017 6057; 115.47899 49644; 115.55228 2425147; 115.84254 1330879; 116.27849 5219; 116.77064 681862; 116.77213 6741; 117.30282 21029; 117.88314 503099; 117.98622 2343; 118.16577 8636; 118.31466 52120; 118.42943 17207; 118.52265 106281; 118.64074 3732; 118.71851 4536; 118.7588 198181; 119.0899 63159; 119.17857 9394; 119.32065 872912; 119.6323 61597; 119.74288 7717; 119.92849 5900442; 119.95866 49412; 120.30538 2317378; 120.66409 9015554; 120.72596 53034; 121.05548 61725; 121.13856 37211; 121.32264 6304; 121.67292 14904; 121.79566 1585748; 121.98624 32474; 122.22346 15402; 122.35604 4739414; 122.62765 1017955; 122.6482 930739; 122.7469 5835; 122.95938 3544681; 123.22444 54222; 123.37256 67267; 123.58552 35592; 123.70037 332675; 123.70829 22682197; 123.89281 917159; 124.09958 8449; 124.47747 47322; 125.33802 7002306; 125.3601 1996756; 125.42557 22324570; 126.69428 20291; 126.8519 48405; 127.06938 184208; 127.07021 38515; 127.21598 16684; 127.44152 1885137; 127.59283 61122; 127.63433 484999; 127.69124 4956; 127.99644 27976; 128.3356 857; 128.36399 32922; 128.49726 5810; 128.88267 28363; 129.1663 155962; 129.3733 3246; 129.49698 43639; 129.60727 23751; 129.62046 44616; 129.67812 3103440; 129.71473 78957; 129.82247 12664; 130.04661 96856; 130.58789 23848; 130.6681 5315285; 130.77702 14437456; 130.93974 72082; 131.00026 9797; 131.25004 3786; 131.28564 26484; 131.56596 12796645; 131.76496 1815078; 131.93651 26573; 132.18972 6947284; 132.28772 3711650; 132.37242 62445; 133.6556 74187; 133.66491 42821; 133.94874 3106; 133.9576 2026; 134.13283 3221647; 134.36129 15903; 134.37735 53773; 134.38312 4522139; 134.83621 191357; 135.47574 2237206; 135.59954 9287451; 135.70346 72185; 135.70451 44751; 135.784 30196; 135.79961 4822; 135.88295 26957; 135.95012 4245501; 136.04496 244813; 136.06304 127660; 136.15868 699028; 136.16422 32330; 136.53767 1313021; 136.94047 6857615; 136.96511 28767; 137.17271 3479765; 137.23659 33836; 137.28411 44496; 137.31069 22585; 137.39477 79803; 137.58656 60423; 137.70438 20307; 137.97503 45928; 137.99392 279942; 138.46012 52390; 138.50772 54356; 138.59976 185779; 139.16638 532784; 139.19679 749310; 139.32808 9949; 139.40117 34131; 139.94956 8749178; 140.04365 2537471; 140.05522 11328; 140.24878 9923522; 140.32265 374984; 140.82341 20926; 140.84199 66298; 140.90418 22163; 141.10029 3351; 141.41908 48475; 141.75628 17743033; 141.83275 10624; 141.87961 1458436; 142.27601 307689; 142.34833 2169485; 142.57951 48541; 142.67744 20968; 142.6951 61575; 142.81275 17569024; 142.85645 15003; 142.94227 19605; 143.02839 1517060; 143.62965 613; 143.80222 43056; 144.44838 3384; 144.66866 715691; 144.74463 13567; 144.96409 1451374; 145.06773 4748; 145.38966 34362; 145.63307 1254552; 145.82707 33878; 145.83008 107908; 146.00814 393075; 146.25919 69740; 146.28263 9860; 146.34126 66733; 146.44888 2650511; 146.46304 29902; 146.73766 1977838; 146.81062 9018; 147.33196 2084513; 147.47485 60437; 147.5895 3224460; 147.70319 25850; 147.96934 141713; 148.01814 9896014; 148.04362 65434; 148.19196 1101868; 148.62056 1323444; 148.655 426183; 148.76958 1750277; 149.38035 1088; 149.40677 61417; 149.51064 709733; 149.61594 8616; 149.64174 3576; 149.87153 2620; 149.89956 45592; 149.93319 125278; 150.08321 72274; 150.17481 70383; 150.21541 21348; 150.31009 4838; 150.49281 3653; 150.54451 313030; 150.5506 6547; 150.72453 65819; 150.87925 98261; 150.90366 19601; 151.11038 209329; 151.17151 739410; 151.19765 18505; 151.22598 27268; 151.65059 45678; 151.67907 4831; 151.76861 27554; 152.16712 3759; 152.17277 794882; 152.25863 16210; 152.58546 5764284; 152.81547 181013; 152.835 29516; 152.88989 6036; 153.51674 48052; 153.95673 69437; 154.02481 6360; 154.13298 2205469; 154.43907 4885; 154.45093 95746; 154.62776 2683; 154.67647 406; 155.04036 362035; 155.04261 38973; 155.09056 9772; 155.18415 2614356; 155.21289 1941743; 155.24231 50575; 155.36226 8063817; 155.43876 1224591; 155.46403 4564501; 155.69623 4597635; 155.70058 1827276; 156.11059 35200; 156.14649 32747; 156.28003 69890; 156.33694 62280; 156.57535 783; 156.61986 152911; 156.78133 8344185; 157.07689 69421; 157.41908 174821; 157.44667 80064; 157.52848 3573591; 157.60362 1791238; 157.81547 2978312; 158.16568 24299919; 158.2119 16777940; 158.34244 22081; 158.36253 54225; 158.65827 196368; 158.79058 63027; 158.95458 2448070; 159.09486 79843; 159.33911 8573; 159.53324 72758; 159.95882 8020; 160.21782 9035130; 160.62152 18086; 160.63497 1003; 161.21605 8960694; 161.39917 4526400; 161.45501 49653; 161.81033 28288; 161.81427 51780; 161.83346 2714207; 161.98704 116417; 162.00273 3172540; 162.12396 7958; 162.13649 775189; 162.15157 1588513; 162.37067 1109550; 162.74116 26388741; 162.79125 4536900; 162.85858 36890; 162.86744 1684956; 163.21839 6069161; 163.66612 768192; 163.77506 48035; 163.87819 800493; 163.88559 6620858; 164.11405 24628; 164.23752 1124; 164.54624 196235; 164.56101 232843; 164.68433 1668961; 164.83908 53447; 164.85655 2956221; 164.89371 3460; 164.95921 29081; 164.96555 694201; 165.0288 17612; 165.03361 1410608; 165.21658 46814; 165.31138 127662; 165.35551 6746; 165.70132 147857; 165.94104 9872; 166.31511 76515; 166.31881 26067; 166.81094 1245228; 166.91461 52467; 167.08027 9916900; 167.52597 4642229; 168.20368 432213; 168.21524 32082; 168.2865 43844; 168.5152 111484; 168.53245 475731; 168.55355 29337; 168.63885 6277; 168.78533 341; 168.85695 67911; 168.92998 6605533; 169.06503 95902; 169.12297 8180; 169.16113 28558; 169.23744 108022; 169.23828 1643860; 169.28637 62903; 169.44813 4033788; 169.62912 33895; 169.9662 6972486; 170.03294 31856; 170.20271 7621708; 170.37686 70409; 170.72205 709893; 170.78438 219503; 171.0577 51917; 171.29432 19570; 171.52501 5421269; 171.52543 69694; 171.67818 67755; 172.0156 58696; 172.14729 6794852; 172.27365 183572; 172.54515 1703262; 172.77719 1629644; 172.87397 7216; 173.38671 4362240; 173.49642 49967; 173.53694 228022; 173.78487 169519; 173.95472 45552; 173.96991 1775307; 174.31463 6284; 174.43843 2677249; 174.62783 404230; 174.70028 27612; 175.10121 8967636; 175.10131 52482; 175.253 6824651; 175.26716 606029; 175.29127 1446458; 175.30321 48477; 175.33078 1295578; 175.51858 48327; 175.53556 5216999; 175.84671 6871; 175.88698 71774; 175.9894 20359; 176.1362 466988; 176.35221 21987; 176.4268 77052; 176.54838 10734; 176.59856 595; 176.85352 7367; 177.14546 2881525; 177.3725 1180046; 177.55074 1232648; 177.55355 179550; 177.71189 7316097; 177.75463 3535; 178.24717 77953; 178.26713 492; 178.48685 57859; 178.52216 71783; 178.58433 601119; 178.80479 1805997; 178.88912 1416014; 178.90513 28928; 178.95757 4767; 179.50026 728088; 179.53705 5448; 179.57622 2127948; 179.62265 21242; 179.79667 16572; 180.02524 5822; 180.66299 57525; 180.81989 6811395; 180.82156 1521866; 180.97346 76220; 181.21578 9833; 182.02028 5661; 182.05472 67045; 182.12175 6158; 182.24126 5907; 182.31307 50564; 182.38927 25262081; 182.41535 4673; 182.45388 1265841; 182.55625 23376; 182.62002 286050; 182.82476 26636; 182.86067 4056027; 182.91469 470882; 183.09166 138205; 183.48047 64695; 183.72537 40084; 184.47872 2745959; 184.75073 23138; 184.97416 61207; 184.98619 72467; 185.09789 74353; 185.30504 4689; 185.4015 20541; 185.76253 48708; 185.86101 25515; 186.25069 1925; 186.28282 43053; 186.42401 323287; 186.61868 7740; 186.77747 48748; 187.12679 54670; 187.18612 1567920; 187.2132 6112459; 187.22923 11027; 187.24577 45663; 187.66568 9226; 188.03529 1587141; 188.31886 2509; 188.35977 3946; 188.75501 32734; 189.10781 776816; 189.47989 8300; 189.55838 53128; 189.68835 16055672; 189.74586 23252; 189.98266 22254; 189.98788 15451; 190.11752 75133; 190.35561 20314; 190.44963 9019; 190.71676 1820954; 190.93145 73377; 191.10777 4506; 191.35865 78899; 191.56561 659; 191.76121 199879; 192.30311 4628; 192.4136 941151; 192.72568 2785; 192.80756 30298; 192.99734 26598; 193.01782 18580; 193.33944 99132; 193.62608 27501; 193.70546 4753; 193.74788 29939; 193.769 37843; 193.88699 62153; 193.9698 66838; 194.15499 7209; 194.23937 6277; 194.36443 20734; 194.46091 37228; 194.51337 116207; 194.75371 6998022; 194.90399 21460801; 194.95614 3159; 195.11953 498069; 195.35997 28219; 195.37811 4928624; 195.43488 4246308; 195.67119 3377217; 195.73294 3495; 196.24071 4949; 196.55163 914643; 196.6159 1380661; 196.91273 29283; 197.04744 3978509; 197.09831 24453; 197.25824 7732; 197.49337 3223950; 197.52828 340389; 197.801 7362637; 197.90237 6183958; 197.91016 4741198; 198.65228 4769936; 198.98974 4051915; 199.78995 24851; 199.95414 622830; 200.0657 56278; 200.6983 328494; 201.51529 48313; 201.51926 70570; 201.59607 1989932; 201.82899 1905340; 201.83196 557118; 201.89886 25785; 202.04468 25833; 202.27346 1166; 202.34813 22117; 202.54777 9181221; 202.56164 43296; 202.84701 6551; 203.84006 4641060; 203.93725 1702739; 203.93772 54885; 203.94678 216622; 204.28284 104611; 204.46739 535661; 204.94913 63915; 204.96854 17825; 205.61565 98166; 206.17059 31349; 206.20249 1321714; 206.29525 40454; 206.39789 566765; 206.42469 65772; 206.67974 1922587; 206.68363 3429757; 206.70501 507685; 206.74903 1255831; 207.07595 588757; 207.2359 14901; 207.27849 62060; 207.32509 2709676; 208.12901 1254584; 208.17088 779352; 208.39382 189365; 208.45527 3621; 208.46649 2380745; 209.00845 1627555; 209.17443 367493; 209.19735 1328748; 209.83986 9560708; 209.93197 46107; 209.97188 61675; 210.17103 1262873; 210.24646 126251; 210.88765 16174; 211.61275 3129301; 212.31964 2710; 212.32968 4647825; 212.34677 49597; 212.918 191494; 213.15892 1012040; 213.28444 4442; 213.61572 64913; 213.78203 937853; 214.07719 1391182; 214.10267 33055; 214.14195 47249; 214.26132 7596987; 214.44866 146609; 214.53092 40209; 215.03945 1361396; 215.05434 1431584; 215.24691 20368; 215.54382 661271; 215.7647 290190; 215.91736 13605; 216.27112 550011; 216.31519 67763; 216.43911 2121; 217.02496 1100344; 217.39694 279872; 217.48541 13838930; 217.77782 25694; 217.97701 1086; 218.02125 3973162; 218.03691 27730971; 218.06937 76821; 218.10372 4179; 218.211 69678; 218.25103 41604; 218.47937 22304; 218.5415 840715; 218.54287 3158284; 218.68345 27156; 218.9154 28215; 219.95162 56400; 219.9768 48520; 220.04506 8199; 220.36858 3400563; 220.40063 376024; 220.5973 105748; 220.70342 1216338; 220.82986 3619273; 220.93029 848018; 221.2238 36533; 221.30614 30205; 221.65122 1421462; 221.71749 1772428; 221.76426 482783; 221.76936 12220; 221.85525 5363193; 221.941 264246; 222.15815 78245; 222.18628 27156337; 222.25731 83952; 222.33029 3531916; 222.35023 24060; 222.36244 22158697; 222.5641 6917588; 222.71209 2432172; 222.98789 9470710; 223.1058 3268190; 223.51608 42853; 223.5348 5436; 223.59783 10460; 223.63932 8142608; 223.64779 53551; 223.69557 294532; 223.7206 79533; 223.94537 8874; 224.10846 3780332; 224.2405 4628046; 224.53512 13156; 224.80139 47130; 224.98601 71280; 225.58417 864215; 225.76196 30050; 226.08894 1449; 226.15449 72242; 226.20144 890; 226.31879 25181127; 226.43164 5446; 226.5969 117574; 226.61901 1239814; 226.99736 31648; 227.00149 24324; 227.25728 1790640; 227.29417 9120654; 227.65483 2021; 228.39964 67349; 228.42309 67295; 228.9065 70; 228.9977 163301; 229.02941 65951; 229.08832 4943672; 229.51768 2659713; 229.67529 29663; 229.72513 3903425; 229.87263 2126; 229.87438 175141; 230.22371 73161; 230.7805 12661; 230.88809 55732; 231.16211 137178; 231.29451 73648; 231.51296 1435506; 231.58498 4359795; 231.80054 8478826; 231.82112 1378851; 231.84527 204547; 232.00753 31789; 232.26252 648763; 232.5413 7964438; 232.55518 25761; 232.60266 1899170; 233.10235 64406; 233.33897 11010; 233.39842 673415; 233.63357 15460; 233.64379 30343; 233.68457 211; 233.82384 7409831; 233.83602 1966903; 233.94419 50955; 234.31791 53854; 234.33212 43154; 234.34167 9576; 234.46828 22458; 234.59113 54469; 234.67264 4616; 234.67339 70186; 234.84598 6193185; 234.89166 20812; 234.90241 17303; 234.92178 528021; 234.9234 12565212; 234.92774 32556; 234.9579 31257; 235.01803 30244; 235.5417 8281; 236.1322 14133; 236.38266 3921435; 236.50327 4132; 236.56548 2029995; 236.82258 34827; 236.96617 172838; 237.54575 21570; 237.563 99026; 237.59285 7594879; 237.59966 74983; 237.66747 187107; 237.72509 22859755; 238.00957 7605; 238.04323 3629829; 238.26622 21850; 238.37259 28616; 238.38475 50394; 238.90867 31914; 238.9585 58771; 239.37743 1897186; 239.59216 3940124; 239.62287 120805; 239.63263 22601543; 239.81701 154168; 240.0138 3340888; 240.14494 138729; 240.23073 1608624; 240.53286 18777229; 240.72311 43032; 240.75914 27405; 241.09226 8300; 241.18384 74484; 241.63948 78146; 241.90627 3755150; 241.9345 74898; 242.04475 223598; 242.1499 823334; 242.28546 27794; 242.45097 1696891; 242.49429 50409; 242.75718 107895; 242.77524 172588; 242.86044 15324; 243.05033 65125; 243.05192 6835; 243.12566 2299999; 243.26853 161375; 243.2803 1021896; 243.61391 21206; 243.67258 5081; 243.83168 169633; 243.98367 56903; 244.1275 59685; 244.21132 25300; 244.27522 19555; 244.47145 812028; 244.61781 24255; 244.71278 90694; 244.93223 47872; 244.98192 6662775; 245.20206 24375099; 245.22685 3712; 245.48185 8626; 245.72382 19908; 245.83032 1673669; 245.87945 8338981; 245.9191 267436; 246.00885 1138531; 246.06391 7652972; 246.27792 1944; 246.47182 4402; 246.48217 9940666; 246.52207 2406663; 246.70192 2920117; 246.73011 2483033; 246.88959 57536; 247.10651 2393466; 247.14641 197258; 247.19268 4543222; 247.29953 28407; 247.39471 2896256; 247.84977 216298; 247.98931 3375; 248.354 47855; 248.7137 52449; 248.74817 62329; 248.87715 2116976; 248.92111 41265; 248.93001 78359; 249.28911 10165849; 249.90461 5255981; 249.96131 12102; 250.09311 15024; 250.27096 1493115; 250.29521 1221; 250.42858 6023991; 250.45137 66968; 250.47431 29503; 251.27742 79261; 251.32996 84837; 251.56736 1212149; 251.61715 41054; 251.78221 938282; 251.80416 1231512; 251.97761 32342; 252.15527 77381; 252.20153 2031385; 252.24084 2037; 252.77676 24366; 253.02329 8654; 253.03321 6130982; 253.24128 1096946; 253.56294 58709; 253.73936 1940088; 254.13839 42428; 254.49408 26109; 254.92977 87486; 255.00759 28792; 255.44995 6559; 255.65671 32985; 255.90133 9042; 255.91743 795260; 256.03863 20858; 256.13006 7239; 256.25617 9615; 256.4757 136997; 256.52411 5022244; 256.52828 446389; 256.56669 49195; 256.65369 4002; 256.86193 13468; 257.06316 43662; 257.21456 71165; 257.45622 6923; 257.6683 30285; 257.92719 28299819; 258.039 47862; 258.10329 1510; 258.11897 4686203; 258.37124 1754691; 258.43073 1783946; 258.46955 1427614; 258.89376 6156; 259.04229 73507; 259.13714 41687; 259.53919 161406; 259.82562 1568351; 259.90188 629599; 260.20618 73301; 260.20635 487726; 260.25339 336581; 260.62579 221208; 260.75947 4250431; 260.78738 45109; 260.84306 1206306; 260.8449 2995; 260.89243 36816; 260.8942 9196294; 261.0606 26365; 261.29473 850951; 261.32006 3493876; 261.53191 51629; 261.71624 1215211; 261.78476 303292; 262.37308 163664; 262.76921 29426; 262.79424 146992; 263.21337 9138606; 263.28675 1068; 263.29635 1656003; 263.52836 8071; 263.5656 25702138; 263.72329 47641; 263.92416 9278; 264.01775 68400; 264.10647 278602; 264.9186 22601; 264.96559 1052161; 265.02123 76290; 265.56659 504648; 266.20159 75533; 266.42865 7908; 266.51974 24176; 266.6137 4316031; 266.78844 4320810; 267.23093 5779; 267.32029 47658; 267.53754 67561; 267.57428 137705; 267.94635 2448974; 268.0692 73577; 268.26263 24175; 268.3389 9729; 268.67998 31167; 268.68391 59775; 268.69812 3057; 268.71088 21725; 268.87595 26356; 269.21492 123713; 269.28104 1170072; 269.78361 66317; 269.872 14971499; 269.8802 28733; 270.05031 48448; 270.153 2163706; 270.21962 21739; 270.84862 29136; 270.9333 564852; 270.93554 981922; 271.13323 3689864; 271.33251 11651070; 271.39739 218927; 271.5029 1965858; 271.66382 21321; 271.70031 8019553; 271.72111 22640; 271.89114 5797825; 272.44607 72827; 272.86587 920009; 273.06787 3137; 273.16522 800403; 273.26583 26601; 273.35661 1991340; 273.47126 27129; 273.58245 1107833; 273.59615 182084; 273.88275 1744809; 273.94723 2907221; 273.96748 28377052; 274.07045 44897; 274.35589 49524; 274.53896 2977; 274.7927 53618; 274.95817 9942; 275.61612 27881; 275.67189 6733; 276.24143 41589; 276.49783 41544; 276.75895 11390; 276.78675 218052; 276.88693 48018; 277.17041 78462; 277.24697 467662; 277.37542 11097; 277.4079 114935; 277.46485 1172098; 277.58943 14329; 277.59073 66063; 277.81153 536770; 278.03975 777; 278.10683 2920531; 278.53202 59949; 278.57066 461497; 278.64974 46394; 278.68292 3609717; 279.00271 11256; 279.77257 762009; 279.80522 78438; 279.80677 62276; 279.84027 116946; 279.86015 68887; 280.55004 4338283; 281.03622 46515; 281.08945 69082; 281.69552 39338; 282.01861 297; 282.11488 1350; 282.14849 57853; 282.3095 1427467; 282.31134 29434; 282.62736 28129; 282.92995 29934; 282.95057 11089659; 282.96432 11451; 282.99235 27570; 283.28092 15907; 283.54405 3232; 283.65434 27392; 283.95019 24353; 284.03149 24037; 284.07819 38374; 284.49056 1803972; 284.68305 8461595; 284.71316 24726; 285.23348 43057; 285.31471 5262; 285.40583 1152442; 285.49227 21076; 285.97415 349889; 286.32516 23876; 286.37089 25655; 286.48905 26942; 286.61557 1411967; 286.73109 45621; 286.77099 24455; 286.83741 2039; 286.84546 59447; 286.89759 3890828; 286.92691 3983667; 286.92739 15855; 287.00856 1179842; 287.07321 31976; 287.31833 23439; 287.57688 308488; 287.68926 72724; 287.98307 8199703; 288.26754 3487016; 288.50363 6498659; 288.56473 21758; 288.76906 6453; 288.80685 5088488; 289.16763 82491; 289.27813 5908; 289.32987 4419; 289.58928 2855; 289.60987 4942774; 289.63261 1463538; 290.06144 914850; 290.10668 303884; 290.42556 16583; 290.77728 429527; 290.95331 11727546; 291.17886 390257; 291.22661 1939895; 291.25363 13849; 291.45804 74404; 291.46646 33985; 291.66036 114656; 291.75538 19349; 291.95966 1396; 291.99998 1203609; 292.03907 2171; 292.14525 44115; 292.43474 730; 292.65658 1852117; 292.89643 3428332; 292.93864 6087670; 293.00503 22287; 293.04272 8339694; 293.08704 6638; 293.19668 9170016; 293.36716 1358103; 293.65009 415216; 293.72136 19617; 293.90812 60490; 293.91098 1618756; 293.96149 22750701; 293.98131 750369; 294.12064 573; 294.30822 3313418; 294.53773 5574277; 294.70446 25550; 294.93564 76383; 295.5313 37382; 295.53168 7621; 295.68102 18419; 296.74722 183319; 296.93118 553709; 297.33497 51133; 297.43038 42428; 298.11422 21657898; 298.37343 1424827; 298.47334 52496; 298.75015 763061; 299.16641 577648; 299.2818 13826347; 299.32858 216153; 299.39679 2825777; 299.50067 43444; 299.76346 50979; 299.82269 28948; 299.87052 123154; 300.26102 3403; 300.34874 123564; 300.38892 7341871; 300.41233 33665; 300.64651 27843; 300.86809 18777; 300.93045 187280; 301.5412 55575; 301.6275 72464; 301.85432 3175685; 301.88743 4501720; 301.95177 2938431; 302.1314 37586; 302.13512 24447; 302.30233 25227; 302.53057 38512; 302.66662 32839; 303.003 7611; 303.32415 25986162; 303.36923 21002; 303.47042 47658; 304.13685 3115673; 304.1728 24926; 304.30268 2876911; 304.48238 24289; 304.73045 4924135; 304.96454 331952; 305.16067 30328; 305.50326 20382141; 305.54734 12323179; 305.58623 1951107; 306.00143 883365; 306.18995 46837; 306.93683 43641; 306.95977 50026; 306.95998 3523431; 306.96607 4156204; 307.66034 73865; 307.89313 32190; 307.9245 37009; 308.07211 39318; 308.20644 24468; 308.36645 77179; 308.53937 779722; 308.74609 939; 308.78609 48429; 308.92046 402; 309.00737 715643; 309.05222 15080; 309.09948 3728565; 309.23092 82503; 309.3846 23885; 309.43992 14435; 309.48971 29650; 309.58426 4422593; 310.36442 167746; 310.57827 1764061; 310.6617 22335; 311.08737 4362241; 311.22402 7576; 311.34051 89399; 311.7928 57001; 311.84721 3561372; 311.9726 8625238; 312.04799 31952; 312.1997 3939013; 312.29668 2428; 312.60509 668886; 312.68148 13465; 313.17095 1558636; 313.25742 67995; 313.30418 52516; 313.34904 10909; 313.58324 6472; 313.89685 21458; 314.18369 269; 314.21716 179273; 314.31636 39835; 314.32006 4545308; 314.46562 35248; 314.9993 612001; 315.00985 190217; 315.06023 28177; 315.71851 3018138; 315.7288 62418; 315.76197 13981; 316.03726 4025268; 316.16086 5569; 316.18305 4941125; 316.49693 1365971; 316.52227 20841; 316.582 29630; 316.81588 58586; 316.93461 26810; 317.04079 71464; 317.22558 34943; 317.48773 1737919; 317.54185 33808; 317.66719 6986431; 317.73009 17978; 317.90563 9712877; 318.27653 2125863; 318.38122 2651068; 318.40206 1006282; 318.43192 72664; 318.65066 550614; 318.73355 2179040; 318.81532 1758250; 319.06285 39438; 319.297 3141306; 319.65808 4971; 320.08442 27131; 320.22807 31470; 320.39394 8371; 320.42337 1639018; 320.48809 60408; 320.49586 4621; 320.60209 7782; 320.84557 67458; 321.03131 47682; 321.04166 24667; 321.07454 368921; 321.0974 8401813; 321.25922 555181; 321.45369 3095629; 321.67934 141143; 321.77494 22393; 321.95764 24068; 322.38799 51923; 322.52554 59470; 322.75549 3343396; 322.94861 1573786; 323.06458 28486; 323.10245 39700; 323.20095 48273; 323.27714 162290; 323.67337 58012; 323.95772 379; 324.4317 157340; 324.7495 33580; 324.75632 55102; 324.85213 2578903; 325.23094 4136533; 325.38506 9149526; 325.40744 32511; 325.44767 40028; 326.05838 1895445; 326.57079 59374; 326.89602 24091; 327.31514 845789; 327.47212 51725; 327.52731 24091; 327.57918 26644; 328.08788 1752; 328.92235 27939; 329.06636 56061; 329.28431 79781; 329.32365 1275820; 329.49471 818701; 329.79639 16871; 329.90248 26298; 329.93958 7066; 330.00904 41775; 330.29914 18899; 330.64669 5778; 330.69854 62128; 330.71468 26642; 330.8032 3162004; 330.97716 736; 331.15468 3869794; 331.55211 321818; 331.70536 81422; 331.74051 57796; 331.79014 45547; 331.94145 191601; 332.2766 47486; 332.34713 77642; 332.35187 1814537; 332.35851 112831; 332.71973 35015; 333.02954 103366; 333.07014 1202254; 333.08458 4849; 333.20673 23153; 333.52315 65709; 333.54167 3126471; 333.64816 339913; 334.19837 3498626; 334.3744 42366; 334.57019 95772; 334.58517 29227; 334.63201 586443; 334.80654 1957970; 334.97856 6805; 335.07526 97845; 335.46546 174414; 335.4993 2736; 335.59703 409318; 336.15752 41693; 336.6494 22229; 336.71832 239366; 336.86148 45740; 337.02167 28879; 337.08421 9907267; 337.2864 9158; 337.37428 18806; 337.38092 8958; 337.56066 4207197; 337.57347 44228; 337.59807 1895538; 337.64765 25354; 337.72387 56465; 338.0501 60447; 338.18518 4157; 338.19683 21724; 339.08892 56367; 339.23608 60355; 339.28135 1058052; 339.35946 741667; 339.64681 1793754; 339.66463 44244; 339.69718 29729; 339.95721 6046015; 340.47898 26563; 340.5159 17711; 340.63467 1857728; 340.96427 1914994; 341.18954 269198; 341.52568 42708; 341.61348 1392; 341.78223 75068; 341.89371 2188; 342.10729 70626; 342.36944 2011098; 342.42925 354639; 342.83067 4784145; 342.88588 3446363; 342.95852 4555; 342.98532 42507; 343.12488 2337109; 343.21125 61974; 343.25155 79291; 343.52887 61824; 343.55788 980939; 343.70549 1522733; 343.83126 1791036; 343.90301 6034; 344.23363 32178; 344.33854 791; 344.43374 56281; 344.53436 1418874; 344.58579 44108; 344.73097 20140; 344.98041 67865; 345.6363 34611; 345.65173 766443; 345.72437 4137; 346.09504 82260; 346.69711 118694; 346.73552 67505; 346.75571 3642835; 346.77421 6935376; 347.28646 6305113; 348.09273 2845; 348.28711 9348; 348.29737 1040237; 348.80552 22993; 348.91399 83661; 348.98972 4873292; 349.34547 18347; 349.59232 45237; 349.61058 1092232; 349.76689 1432838; 349.82992 139214; 350.05626 3895120; 350.1189 2870; 350.20131 6213800; 350.23732 886701; 350.29706 9258; 350.33083 391003; 351.00101 3164497; 351.10499 64346; 351.23298 7945445; 351.47474 40552; 351.48402 9831; 351.51438 1070949; 351.55112 1755850; 351.63217 2260747; 351.67221 4181184; 351.84363 1009658; 351.8524 115653; 352.13427 34151; 352.17788 392833; 352.2287 71731; 352.25814 52806; 352.27893 6888836; 352.38976 9397424; 352.50906 1389037; 352.56376 15592; 352.65388 8763691; 352.93981 8959750; 353.49517 8511; 353.51855 37093; 353.72103 79513; 353.8718 42204; 354.15735 29271; 354.46732 4760885; 354.57526 51793; 354.75472 1670881; 355.06769 61361; 355.08039 1308603; 355.11042 1617848; 355.21344 1518973; 355.2148 1943311; 355.22496 26082; 355.27253 6074031; 355.29494 1655397; 355.49681 80772; 355.54764 23653079; 356.07097 30535; 356.23087 1565556; 356.30412 58160; 356.30986 28591; 356.45077 55150; 356.72061 965631; 356.7475 1421428; 356.99589 2481337; 357.41886 46625; 357.57729 4552181; 357.61915 75868; 357.8093 20846; 357.9016 1121905; 357.93976 9582896; 358.09876 1088624; 358.19446 5359; 358.30604 4759; 358.44843 1476612; 358.68502 74775; 358.74287 24980; 358.77128 1690951; 358.98853 7789307; 359.05464 221947; 359.08745 237865; 359.51579 7208; 359.63965 41210; 359.88003 6161; 360.10278 29918; 360.28034 32274; 360.30047 3815719; 361.41622 1719225; 361.69483 1908414; 361.73901 29006017; 361.95612 66877; 361.9854 5107063; 361.99482 16598; 362.08784 6030880; 362.45118 7674232; 362.61599 55139; 362.66364 2746172; 362.80289 1316050; 362.83844 9739; 363.12604 5421; 363.2172 57945; 363.28378 1114448; 363.38911 659; 363.39302 6581; 363.5252 4604; 364.09258 67376; 364.78564 5645482; 364.83067 1540; 364.96552 804209; 365.15352 25519; 365.31795 3317807; 365.35758 215967; 365.673 12469; 365.80294 66302; 365.90132 38278; 365.97499 32125; 366.05219 1583593; 366.14548 589572; 366.55933 1389333; 366.71384 211; 366.754 2678475; 366.79639 22411; 366.94401 3953; 366.95581 8315127; 366.96087 7072; 366.99257 537817; 367.05536 4055; 367.21951 20959012; 367.25081 49106; 367.30416 7851; 367.45604 190770; 367.77449 29643; 368.09157 8745487; 368.11679 50630; 368.23978 79868; 368.29267 277; 368.37183 25483; 368.52552 284829; 368.61561 56652; 368.76451 27642; 369.21773 29758; 369.23347 505; 369.55795 22064; 369.60037 62173; 369.74831 57420; 370.41497 947111; 371.10417 1396; 371.27988 76256; 371.33449 22555; 371.54771 1540353; 371.72409 5438; 371.74571 23298; 371.82365 2120024; 372.12423 229064; 372.25763 6418; 372.5447 28528; 372.65415 57147; 373.29089 55768; 373.63825 2604619; 373.72073 26590; 373.81733 47804; 373.89129 8595; 373.92261 13843821; 374.02298 2316; 375.30789 1754748; 377.32519 1143743; 377.39285 1335501; 377.57451 9333; 377.65355 1926139; 377.70061 887299; 377.73452 1820061; 377.95935 495196; 378.20249 9779; 378.72447 29651; 379.09806 178254; 379.2907 4245016; 379.39259 40339; 379.69997 1310; 380.20951 49338; 380.44433 28966; 380.70623 1558706; 380.96177 27566; 381.00795 3539522; 381.33189 78039; 381.41255 8765833; 381.69722 5052806; 381.74879 298; 381.87673 827812; 381.97619 2377; 381.99324 86985; 382.07549 76562; 382.19222 3353428; 382.34702 313058; 382.44101 66539; 383.00128 1038; 383.22867 1063; 383.32789 51301; 383.68375 1561; 383.89389 27319148; 384.08904 65673; 385.0993 9833309; 385.15851 3184; 385.56002 6162779; 385.57062 288782; 385.64822 2878337; 385.66337 1259881; 385.81184 45931; 386.23395 8876; 386.27822 236680; 386.37124 2839113; 386.4436 8069; 387.52231 813744; 387.69935 6143; 387.70481 66272; 387.97778 9197790; 387.98409 38309; 388.36212 6967; 388.58399 71346; 388.73532 53056; 388.77521 20804; 388.8316 27295; 389.19371 32434; 390.03147 1451800; 390.21776 10960; 390.42653 368882; 390.53669 116781; 390.91428 74717; 391.00402 70551; 391.00594 1990486; 391.05591 6396576; 391.11821 624068; 391.48132 28719; 391.63885 1111360; 391.65211 894; 391.73467 28983079; 391.94481 22565; 392.22668 77086; 392.32538 1463; 392.48253 23958; 392.52945 22835; 392.59136 1282900; 392.59658 3982924; 393.13896 165821; 393.14958 30557; 393.2072 74095; 393.443 6075; 393.5792 76307; 393.58148 53645; 394.31062 48260; 394.63357 115795; 394.71085 6043; 394.7646 25490; 394.81884 109055; 394.93224 51219; 395.05904 53440; 395.29122 48370; 395.32053 167134; 395.5224 5521; 395.87373 34633; 395.93746 20487; 396.19138 2248957; 396.28859 3627605; 396.71456 3450289; 397.25162 1032424; 397.38357 49325; 397.4179 34849; 397.42605 31395; 397.69287 27419; 397.71086 1211; 397.72545 178301; 397.77132 1779999; 397.95638 507113; 397.96157 56330; 398.01559 762; 398.08804 8740; 398.51521 9962; 398.69294 8208; 398.73402 9751; 398.78118 791012; 399.05159 784077; 399.09294 58765; 399.10832 1947288; 399.21047 29215; 399.32098 56937; 399.34515 8153; 399.65313 79661; 399.71783 52716; 399.763 6257444; 399.89625 4021132; 399.92002 1408965; 400.10873 2973983; 400.62459 26571; 400.73892 41437; 400.94837 3801; 401.26037 8955126; 401.8531 7199052; 401.89597 193859; 402.04945 7159; 402.29694 103780; 402.30408 66606; 402.61219 169677; 403.29534 6112732; 403.61342 70081; 403.77255 25225; 403.84513 1171946; 404.13614 22867; 404.30789 160881; 404.34918 16823; 404.46826 5243; 404.50789 6910; 404.64724 60342; 404.80726 61902; 405.08409 72104; 405.13587 48901; 405.15825 8764201; 405.22205 5038; 405.37848 66484; 405.69701 6815002; 406.2806 43248; 406.67588 1741; 406.97323 9948546; 407.01224 23971; 407.19624 15222; 407.2368 1186842; 407.50722 1086074; 407.60682 5945389; 407.61146 58894; 407.63763 787105; 407.70609 997425; 408.24952 3658506; 408.35371 63651; 408.36404 65130; 408.4428 80474; 408.44716 6021254; 408.53693 232712; 409.04226 125344; 409.40768 7261429; 409.80031 28140; 409.97053 26655; 410.17392 117485; 410.77491 6589; 410.7837 91558; 410.89145 28669; 411.43043 189610; 411.47233 95349; 411.51916 1229821; 411.53055 964; 411.60418 101020; 411.6327 5929; 411.90875 17537; 412.13175 1078379; 412.21323 60594; 412.25546 21429; 412.62731 60752; 413.1096 2728988; 413.3486 110261; 413.55171 40389; 413.81551 3826959; 413.91286 35631; 414.21214 63668; 414.21691 28597; 414.24059 325567; 414.57023 7785; 414.60543 21690; 414.60575 59241; 414.73433 775967; 414.88147 69078; 415.18117 33346; 415.18915 69139; 415.23936 27109; 415.30678 1414698; 415.35133 26742027; 415.52109 681462; 415.56247 999440; 415.61739 1030; 416.62666 31014; 417.1075 13586; 417.13882 9047778; 417.15461 12015; 417.25443 20313; 417.54477 32820; 417.62895 10515016; 417.69364 142630; 417.816 146746; 417.85792 25235; 417.88102 15446; 417.98843 2323394; 418.01309 1899400; 418.16911 0; 418.26491 74712; 418.32313 39794; 418.56437 421268; 418.61331 3532273; 419.33263 10777556; 419.46396 73812; 419.46517 25882003; 419.49335 27798; 419.61168 237775; 419.74762 6703; 420.24295 31290; 420.69 835654; 420.80599 794; 420.92741 2610186; 421.014 34933; 421.33074 175768; 421.39606 47012; 421.60763 991; 421.69846 38701; 422.08979 57782; 422.14567 184235; 422.2047 71769; 422.57792 2070205; 422.57848 69785; 423.28946 32751; 423.36099 19159; 423.47886 747149; 423.68378 1127604; 423.7087 59079; 423.88742 27924289; 423.93729 3478; 424.06921 25297; 424.11939 16035; 424.31192 5861883; 424.38145 46845; 424.47103 29172; 424.53998 18909; 424.79844 16438; 424.93601 78268; 425.85477 452483; 426.047 327995; 426.19647 62036; 426.31526 90500; 426.58351 45082; 426.74816 3387; 426.95758 72604; 426.99939 3488926; 427.21053 1775118; 427.24084 195279; 427.38741 37241; 427.6235 142099; 427.73858 149629; 427.97056 4180195; 428.13007 1347400; 428.16392 15987; 428.17444 2440964; 428.20838 37729; 428.61081 75912; 428.61607 3194; 428.70009 89642; 429.03433 1233203; 429.05439 701; 429.05851 2353; 429.06812 7293; 429.11334 63214; 429.52228 457267; 429.61862 49526; 429.88206 986204; 430.04191 9717; 430.31515 2626112; 430.43567 55210; 430.65292 897969; 431.03185 26308; 431.13169 8471974; 431.2251 1529837; 431.38994 49731; 431.41514 5184; 431.56595 23737992; 432.01902 8095; 432.08075 59433; 432.80969 99443; 433.37874 350839; 433.45842 4463; 433.70619 348291; 433.79203 3004; 433.94889 145203; 433.96709 1478558; 433.98416 31448; 434.2485 25061; 434.36485 12419; 434.53974 39204; 434.57633 29549; 434.60095 62528; 434.66999 5376; 434.68834 9076; 434.7844 151425; 434.84494 3122; 434.89242 928254; 434.97986 8646; 435.04843 3354614; 435.4239 194327; 435.7125 16283; 436.2174 4464673; 436.5501 506; 436.57803 26577; 437.51074 14872; 437.61515 5563; 437.62977 7942; 437.6989 159023; 438.12226 4901377; 438.50979 65032; 438.64349 41033; 438.64894 14170; 438.97437 9339061; 439.0829 4986; 439.11427 1529930; 439.62081 3367050; 440.05782 5290; 440.08233 6173484; 440.54597 3727966; 440.64629 1149206; 440.7166 1296576; 441.11762 8217; 441.12171 1143515; 441.14381 60521; 441.18414 16453; 441.26385 727258; 441.65012 28984; 442.43143 79705; 442.54763 27917; 442.77396 716381; 443.11463 35643; 443.23991 21557; 443.29875 21234158; 443.33824 1385060; 443.48135 2784152; 443.63943 62757; 444.01894 2794; 444.11529 3070449; 444.35953 33024; 444.36571 72774; 444.38966 1592695; 444.46225 29911; 444.49191 69189; 444.62489 16992366; 445.05037 25978; 445.16854 1667597; 445.25474 568691; 445.33601 30157; 445.44953 28183; 446.06451 9593925; 446.20238 14791; 446.24681 8491; 446.40574 5238; 446.78268 759260; 446.82337 23394332; 446.91942 7396; 447.07463 137827; 447.10624 1063232; 447.12129 1041185; 447.27452 2427329; 447.29347 53714; 447.3595 136224; 447.36695 122042; 447.53527 4528489; 448.00452 1080695; 448.05728 38811; 448.12991 25999; 448.16263 109694; 448.21073 26936; 448.26718 62554; 448.37091 1694807; 448.50262 4408545; 449.04849 2050; 449.19893 905; 449.4145 67101; 449.44093 57818; 449.48172 57534; 449.65083 1523385; 449.72523 79061; 449.74427 139907; 449.76987 199326; 449.83409 42580; 449.95326 1198177; 450.1 14175; 450.18958 43430; 450.29588 38523; 450.62931 1851052; 450.74408 1040567; 450.93755 3453795; 451.22376 57798; 451.38991 988639; 451.73013 7201; 451.73761 20378; 451.89876 324217; 451.97797 7035774; 452.00719 12885292; 452.59874 39605; 452.81733 3259991; 452.95949 24197; 453.07379 1490507; 453.22378 61101; 453.22642 48607; 453.34255 9259; 453.57349 9880; 453.80323 859240; 453.89552 23790; 453.91603 3456738; 453.95375 6608644; 454.33241 5645753; 454.43413 17577; 454.46428 21446; 454.50849 1583371; 454.51921 5021202; 454.64462 9430987; 454.74026 1173642; 455.33998 7967; 455.39035 13379163; 455.73409 1855; 455.76765 3167935; 455.92966 44562; 455.94949 661085; 456.30874 110657; 456.39919 457669; 456.67747 33909; 457.06909 2479637; 457.07224 1276494; 457.42829 4872660; 457.69277 65099; 458.05354 5011595; 458.56936 64983; 458.6454 1026624; 458.67145 151885; 458.72464 45384; 458.983 96539; 459.07271 587122; 459.53876 46093; 459.56765 5637772; 459.59634 27491; 459.66195 16088; 460.45813 95941; 460.49587 18307; 460.5047 8895; 460.72483 55623; 460.86699 29180; 460.96865 114798; 461.02284 49847; 461.37142 4616496; 461.54811 500880; 461.55433 11636; 461.78027 55938; 461.89744 7282141; 461.94078 15593463; 462.60927 27770; 462.78892 136855; 462.91523 85036; 462.94137 1379932; 463.06865 4057; 463.07943 8490; 463.14888 6057451; 463.19124 48875; 463.34035 125442; 463.45924 1823572; 464.03123 74418; 464.16893 5291; 464.19725 29190; 464.22372 21421633; 464.93547 97134; 464.95471 40272; 465.70321 9364; 465.71132 63504; 465.90041 4516712; 465.99546 7808; 466.02355 612977; 466.36466 56879; 466.49694 87593; 466.54535 181034; 466.72083 9374466; 466.76182 23654; 466.92996 14633; 466.99453 924355; 467.20621 17014; 467.4282 79114; 467.93814 8106269; 467.99875 458759; 468.00758 4719118; 468.28143 72108; 468.81624 6299; 469.19737 1075; 469.29403 29355; 469.45155 46294; 469.50473 6521065; 469.55522 135451; 469.85337 54348; 469.95783 17; 470.01903 32103; 470.02659 1205695; 470.22328 1779253; 470.23697 431640; 470.3866 1521530; 470.46412 1707464; 470.61691 3450971; 470.77842 25954; 470.90621 1986632; 471.32142 44672; 471.67034 1387841; 471.6774 3764260; 471.70665 43007; 471.87063 30315; 472.1662 30185; 472.39337 1553723; 472.63941 683656; 473.23923 636; 473.66352 22523; 473.76034 1405812; 473.86484 562499; 474.40514 2986463; 474.41093 7170; 474.53318 43407; 474.77001 9403696; 475.44175 85758; 475.81872 3213727; 476.53722 2821; 476.54374 27571; 476.54584 32978; 476.78788 5099; 476.89047 975493; 477.58597 3703; 477.71168 59083; 478.33226 55329; 478.51629 28088; 478.611 24643; 478.65188 5764; 479.57049 21898; 480.14612 70311; 480.56727 71774; 480.59607 35187; 480.78162 30014; 481.0259 23681; 481.29242 1826938; 481.39546 47891; 481.4176 113687; 481.44628 1693184; 481.68883 78835; 481.69248 28193; 481.72554 4976; 482.05967 40044; 482.11488 24252604; 482.16922 54861; 482.24125 398363; 482.25509 70385; 482.43926 39136; 482.55935 682477; 482.58734 1015; 483.03082 14432811; 483.07783 164774; 483.80814 3050825; 484.30232 21358; 484.30329 43352; 484.75391 19267; 484.83098 7515534; 484.93009 56810; 484.94779 142044; 485.18247 53522; 485.32952 4241; 485.68747 58134; 485.8973 61782; 485.96285 5024850; 486.23096 814957; 486.40897 8476; 486.43372 20724; 486.48511 1248; 486.49383 4165529; 486.52113 2296; 486.61972 69773; 486.85758 1975685; 486.88689 3097; 487.21729 1511106; 487.30848 2890; 487.51108 21833; 487.6871 79722; 487.85892 4523296; 488.38869 4008241; 488.41665 94872; 488.51706 1137431; 488.53441 86; 489.19404 3198766; 489.78483 22167; 490.10525 13515; 490.48986 1138745; 490.87243 3414; 491.05493 16193398; 491.13787 45521; 491.16792 101066; 491.56459 724060; 492.09132 25644; 492.61883 6867; 492.69063 9741; 493.15835 2286588; 493.3315 2563; 493.59558 1905661; 493.76439 5240473; 493.84625 3675; 493.91419 12362; 493.95183 1183276; 494.14448 1833252; 494.29201 3255; 494.30582 17275447; 494.34133 671228; 494.42278 850; 494.60872 69511; 494.7198 13139; 494.77402 1937295; 494.9983 63687; 495.08116 25479; 495.2003 40140; 495.41057 26330; 495.52441 193395; 495.63196 56746; 495.81024 202709; 496.26394 1321633; 496.43666 63914; 496.90819 74043; 497.08204 23139; 497.64448 74718; 498.01382 128901; 498.12784 378; 498.20151 48344; 498.44448 42200; 498.49423 885; 498.51337 161027; 498.68113 118723; 498.81458 42492; 499.28751 6012; 499.37659 33010; 499.40523 1568405; 499.44482 19252; 499.84944 16216; 499.861 19155; 499.90785 3493921 +<5, 3>: 0.09621 73382; 0.2018 27762; 0.28997 3691; 0.29787 1786953; 0.50748 780658; 0.74698 15401; 0.7474 41799; 0.91901 1912274; 1.18831 1651; 1.49423 2630455; 1.79423 3287633; 1.99648 21727; 2.03397 1236230; 2.18183 771420; 2.58789 57992; 2.61115 8315393; 2.63727 76452; 2.81308 29351; 2.9529 21435; 2.96495 12348; 3.10219 53915; 3.16375 23787; 3.77721 7610; 3.86861 1891842; 3.8712 7725; 4.04172 4396; 4.12978 73694; 4.33172 79384; 4.56781 23180; 4.60927 43944; 4.93532 7570; 5.23317 6029; 5.88188 905735; 5.90471 31307; 5.95418 31892; 6.38049 45533; 6.38556 2631382; 6.45881 21909; 6.85217 1477872; 6.97817 53693; 6.99456 4525; 7.11077 4175263; 7.64001 32029; 7.71493 41551; 7.72837 7784; 7.9716 71665; 8.03514 1912524; 8.03798 1306220; 8.53208 4831601; 8.63775 1378; 9.29107 21589; 9.33196 4333083; 10.02234 172503; 10.05982 179958; 10.39099 42276; 10.56165 76420; 10.57306 2098; 10.83714 48109; 11.31159 9157773; 11.47365 46422; 11.54718 1768755; 12.2438 6282; 12.45022 551; 12.47698 891953; 12.48838 12851491; 12.51062 78506; 12.58443 18307196; 12.60261 26162; 12.91284 1490908; 12.96443 39541; 13.33142 48454; 13.37671 62191; 13.73874 7479654; 13.81673 4771857; 13.82107 39888; 13.94967 7645893; 14.14933 4541082; 14.25408 3406345; 14.33064 3031102; 14.33424 27829; 14.70523 5529676; 15.18756 158376; 15.30666 558195; 15.41659 29197; 15.64643 26990914; 15.78845 1806058; 16.212 72271; 16.31392 156995; 16.40234 2422; 16.45724 23789; 17.11596 12541; 17.32124 4906; 17.40027 12413; 17.58443 27874; 17.60267 70507; 18.04266 3515; 18.11782 12581; 18.26475 3419440; 18.31599 199958; 18.32719 4109163; 18.38702 1053036; 18.47648 17829; 18.57222 6907745; 18.80999 58599; 19.04142 26335; 19.10224 22719; 19.11125 1575; 19.12722 413566; 19.17969 7789; 19.20074 1187441; 19.25882 18482405; 19.29621 3671; 19.70356 1137694; 19.89614 5377; 20.31371 15304; 20.32253 8232404; 20.44106 41547; 20.5067 18576; 20.78255 1704396; 20.84511 41141; 21.13538 117704; 21.18469 133; 21.37876 4516083; 21.58574 7397017; 21.63086 7856322; 21.90652 23772; 21.92878 1817156; 22.06418 46309; 22.10285 40816; 22.59561 71639; 22.84348 67075; 22.90824 599; 22.92962 1002582; 22.97354 1048; 23.01085 174626; 23.08691 1682359; 23.56259 22338806; 23.58742 105621; 23.61365 21501; 23.87444 50352; 23.87707 5151429; 23.90087 2080745; 23.95227 43145; 24.1377 66844; 24.13946 1037692; 24.17355 974962; 24.28484 23547418; 24.3787 53491; 24.4871 3687492; 24.51369 41011; 24.97909 70187; 24.99909 563969; 25.03619 16207; 25.06147 7012; 25.331 17113; 25.55581 37500; 25.91294 73865; 26.19889 118963; 26.43413 791647; 26.46557 18684; 26.82608 64404; 27.06317 33684; 27.48421 430339; 27.69109 3494109; 27.7839 187024; 28.22124 22824; 28.30599 39734; 28.37977 78009; 28.50198 7976; 28.62033 22389; 29.07923 732543; 29.12753 25980; 29.30156 105162; 29.52216 4977890; 29.63766 6193305; 29.73239 2807466; 29.75572 1902294; 29.85516 54825; 29.85646 1498040; 30.00095 40746; 30.21673 52494; 30.33943 4687162; 30.40562 5889; 30.43255 96140; 30.57904 71259; 30.73097 28973; 30.78784 1842769; 31.02996 63979; 31.04685 172663; 31.43062 568770; 31.51327 968643; 31.7601 47654; 32.462 25096; 32.48574 7083; 32.87971 8961; 33.00761 60712; 33.41738 71424; 33.46801 490755; 33.69613 3139; 33.91125 2138; 34.10288 77925; 34.62046 7056951; 35.36126 7219; 35.45089 302734; 35.55646 15637; 35.63015 1162063; 35.72312 2860541; 35.72682 2993022; 36.15539 3120155; 36.24074 7967532; 36.37516 27516; 36.56606 3873328; 36.59063 88882; 36.86881 49204; 37.01574 1209645; 37.14771 7953; 37.15929 5068466; 37.34889 1107526; 37.57233 55648; 38.94991 1406530; 39.07465 1716270; 39.18102 54052; 39.32948 7736; 39.34715 1494246; 39.50183 37272; 39.7471 2711443; 40.30202 66991; 40.51062 30910; 40.79274 703465; 40.80005 99806; 40.84739 813880; 40.87302 67590; 40.89533 1221800; 40.94818 1517220; 41.18802 2274; 41.29274 23018; 41.31142 6855052; 41.34476 701170; 41.40955 52811; 41.47265 19340; 41.48211 14884; 41.71835 4565; 42.07456 1678425; 42.27634 165161; 42.38888 432; 42.48153 3782; 42.52561 32623; 42.63178 18594321; 42.63559 58566; 42.67309 1941987; 42.68872 88744; 42.8761 14797; 43.19588 72378; 43.21788 5128540; 43.26387 5602381; 43.30532 2435827; 43.59101 30500; 44.33617 24301; 44.37343 138774; 44.42687 949177; 44.66785 757151; 44.67151 2368370; 44.76141 17028345; 44.76827 46565; 44.82673 729164; 44.83356 4323; 44.8479 50262; 44.87048 11557; 44.88073 29523; 44.88278 6499262; 44.95843 46247; 45.89152 78691; 46.05852 24365; 46.06341 8282440; 46.19783 4953906; 46.22487 24612; 46.69801 3911777; 46.95794 70154; 47.18987 83052; 47.23598 5487; 47.40683 60776; 47.45759 1818750; 47.50041 1089; 47.77845 140951; 47.8217 30988; 47.83349 4679651; 47.86555 464988; 47.92313 114275; 47.99671 14442; 48.08849 25990; 48.13648 52525; 48.60997 317876; 48.85907 25064; 48.8834 1146322; 49.15246 52925; 49.36453 448162; 49.58988 67441; 49.73613 10704; 49.7793 2768; 49.82109 37488; 49.83205 16233; 49.9434 704269; 50.16048 3589743; 50.56413 89410; 50.71817 20208; 50.86207 9813; 50.8896 7676; 51.15316 8015; 51.20769 185008; 51.52464 2633467; 51.56848 78707; 51.59607 4053126; 51.65561 1399543; 51.66921 2783450; 51.73409 31051; 51.86853 6516; 51.90693 8582686; 52.0134 24057; 52.14515 63621; 52.38126 3120036; 52.39609 1588699; 52.48142 54845; 52.90745 780810; 53.35486 50933; 53.76244 1597903; 54.08153 910171; 54.31508 1070; 54.37671 26393; 54.76892 29684; 54.87284 19967376; 54.91971 27346; 54.95974 5461; 54.96295 26476151; 55.18429 26887; 55.29056 35976; 55.63502 51572; 55.75207 61802; 55.91696 24762; 56.09187 28916; 56.16141 3331855; 56.20964 840116; 56.52262 818796; 56.58045 21359; 57.17688 67161; 57.26609 4753500; 57.4516 37095; 57.50573 69497; 57.56095 44598; 57.63839 8900892; 57.73821 3297349; 57.8661 12513; 57.94901 145166; 58.3425 7702123; 58.59098 48530; 58.76465 4967545; 58.93341 1863285; 59.06156 37391; 59.24246 7481; 59.27267 4162005; 59.41317 26939; 59.64491 4207; 59.6492 111079; 59.75925 62604; 59.97262 28126; 60.01531 4999364; 60.0945 158269; 60.27733 176852; 60.33504 2530; 60.36765 17871; 60.56949 7954879; 60.61231 10572; 60.92372 17891; 61.0908 7455; 61.25061 40686; 61.50851 1920491; 61.5093 144658; 61.57722 243977; 61.7505 5344975; 61.81394 24960; 62.14617 21557; 62.15677 7740; 62.17204 76708; 62.19323 11305; 62.24416 703; 62.53877 64804; 62.5482 87966; 62.8679 18247; 62.93447 68699; 63.15813 5431; 63.47459 7371077; 63.51399 26765; 63.62009 773940; 63.6565 2033835; 64.00574 864361; 64.60106 146133; 64.66679 590; 64.75683 9701; 64.89853 4786534; 64.96922 60480; 65.00558 12231615; 65.03213 2628; 65.7282 4007; 66.49561 40146; 66.51691 9790020; 66.57631 50815; 67.0979 7192915; 67.18435 2624330; 67.18726 22759; 67.25158 436505; 67.33534 45465; 67.39476 37583; 67.46475 5134881; 67.71643 72579; 68.07857 37567; 68.14305 148603; 68.3946 48491; 68.40379 3813; 68.74201 22747; 68.76079 6386118; 68.7797 26991; 68.78486 1967874; 68.86352 45330; 68.90464 35544; 68.967 64799; 69.05648 9518; 69.07836 2056012; 69.12269 21665159; 69.15421 5073158; 69.19156 3668845; 69.21501 114559; 69.45891 1959670; 69.61472 15910; 69.69042 29944645; 69.90314 831702; 69.94186 22782; 69.97033 24108; 70.08342 18468175; 70.53606 1116868; 70.55712 24080665; 71.08963 12744; 71.23592 6469; 71.41974 165383; 71.5748 7221; 71.5772 1877704; 71.59932 20669; 71.62353 4015370; 71.83034 2400092; 71.97613 1571; 72.22334 28689; 72.53316 53688; 73.31962 7631910; 73.6033 1809357; 74.16449 5766; 74.19107 22779; 74.67637 25931; 74.80381 70298; 75.02951 4460380; 75.16678 51709; 75.25415 39497; 75.38563 55129; 75.40899 20094917; 75.44058 1643687; 75.58751 176579; 75.63666 28030; 76.09858 39724; 76.67 17536; 76.68786 1411332; 76.98453 4387778; 77.21596 1209660; 77.36599 1891131; 77.82494 28595; 78.63849 3701; 78.8695 41736; 79.50507 27384; 79.62251 6977881; 79.90808 700; 80.15793 3300; 80.47455 35251; 80.54485 5652709; 80.60651 957; 80.69006 1175930; 80.72446 1647381; 80.94132 2165; 80.97264 68175; 81.00436 1566937; 81.06658 2352709; 81.07917 50262; 81.08207 58118; 81.10679 3450306; 81.2784 70840; 81.73279 24441; 82.00669 157421; 82.05812 1570561; 82.1431 8490267; 82.15247 78536; 82.16679 55638; 82.46326 3850892; 82.51468 59206; 82.56365 6101; 82.64411 4214; 82.78573 2276665; 82.93274 150121; 82.98437 1197556; 83.13449 4311512; 83.43511 998444; 83.68664 59776; 83.71435 75685; 83.72207 79262; 83.99792 31886; 84.22133 127192; 84.66109 1741140; 85.03536 14884; 85.2711 678817; 85.35086 18144854; 85.86797 9328; 86.18058 68804; 86.39866 1787095; 86.49772 2499924; 86.73682 63023; 86.93446 1466793; 86.97688 31228; 87.0622 19278; 87.55528 191934; 87.7703 145617; 87.87214 96775; 88.00035 4827; 88.71713 26450; 89.12702 1344312; 89.1494 2168359; 89.47684 60271; 89.51337 26760; 89.58466 8166717; 89.62828 4159144; 89.78305 129747; 89.85248 8930208; 89.88747 7479293; 89.92631 1169741; 90.23197 26606; 90.92886 1101510; 90.93292 480857; 91.02541 1796907; 91.1667 33046; 91.37728 1617490; 91.67083 10804; 91.70126 306083; 91.71567 153780; 92.25286 29797; 92.3777 1354492; 92.57512 5275744; 93.15924 2791180; 93.19152 9874; 93.20738 389178; 93.30954 3930824; 93.4098 479793; 93.48376 1540080; 93.56949 650153; 93.58535 4426357; 93.81121 1204131; 93.91507 760615; 94.001 6922; 94.24233 41782; 94.41215 6180; 94.49347 21779; 94.49396 16593; 94.67034 156599; 94.82036 1133011; 95.07199 4352; 95.13258 50839; 95.32693 65314; 95.33165 8824712; 95.34967 9842; 95.50864 9250; 95.82501 365; 96.07246 559577; 96.44517 1345; 96.53113 6195629; 96.85739 25381060; 96.88746 1609545; 97.04322 3382613; 97.07417 57790; 97.29168 313036; 97.64325 44052; 97.75823 65742; 97.92273 14679; 98.15202 34843; 98.18797 10762; 98.70309 6057617; 98.753 22997; 98.85804 77333; 99.00773 21739; 99.33821 7905; 99.33994 8601; 99.46126 325779; 99.55429 3074213; 99.62023 85951; 100.23007 43213; 100.28788 875768; 100.46389 41873; 100.52052 1485922; 100.52308 127474; 100.54986 8212299; 100.90355 2457226; 101.10473 27001; 101.21175 9284; 101.28535 7684460; 101.68659 998; 101.79417 571299; 102.30906 918589; 102.33883 889416; 102.56709 72789; 102.66245 5200700; 102.74165 1790492; 102.75562 478349; 102.8478 8165417; 103.35085 3279; 103.4881 4904831; 103.69371 99770; 103.70102 37958; 103.9698 18964; 104.02561 76170; 104.09895 5660; 104.10063 60714; 104.23014 1000598; 104.25985 8604; 104.39818 737509; 104.61049 68620; 104.62525 66757; 104.88041 613962; 104.9217 20598; 105.16575 22127; 105.22814 50203; 105.80477 1956755; 105.92844 8210; 106.02382 57513; 106.02795 436227; 106.24415 3951752; 106.4554 25555; 106.46409 8067770; 106.55388 8330; 106.96696 3613704; 107.23374 14479; 107.37594 986471; 107.40022 4335718; 107.65211 26830; 108.23799 16601; 108.69988 24243; 108.93574 486653; 109.17357 673390; 109.32251 3032169; 109.39551 782671; 109.66825 1933126; 109.70089 18563121; 109.94837 1639805; 110.3608 95544; 110.4243 38403; 110.64332 970109; 110.73219 63483; 110.87743 297450; 111.14815 7213; 111.38394 8327; 111.46056 29929; 111.78521 16799060; 111.93243 1710521; 112.0985 58918; 112.19043 7922; 112.23592 116528; 112.67273 565519; 112.67342 2990; 112.82434 4292; 112.85054 66836; 113.6441 8463; 113.76383 24917081; 114.74575 1834395; 114.81558 20687889; 114.93328 22810630; 115.38495 6529; 115.45943 7763699; 115.50336 165611; 115.57431 74957; 115.68366 118677; 115.74162 6589506; 116.19952 23732; 116.20166 1727207; 116.2729 22733; 116.89005 18187; 116.9378 97592; 117.01989 50967; 117.09558 11370107; 117.10032 29758; 117.13002 68847; 117.28057 4631997; 117.7486 21344356; 117.91969 263316; 118.24658 19500; 118.27703 4884966; 118.28729 27607365; 118.45013 821899; 118.64822 172895; 118.781 416280; 118.80979 148858; 118.92993 3520; 119.09793 31990; 119.12046 7240; 119.13284 13627276; 119.25115 975507; 119.29023 2591; 119.41593 74725; 119.45047 6355; 119.51363 22680; 119.53741 40215; 119.74291 7855249; 119.76295 40486; 119.82267 20868; 120.01417 3696774; 120.71662 5183402; 121.07186 6063985; 121.2683 1249091; 122.04803 581446; 122.91436 1234383; 123.00485 2092; 123.20362 2841895; 123.24565 25831; 123.43705 6616; 123.52724 1946536; 123.57782 37536; 123.68447 137811; 123.82817 2574138; 123.93024 6099; 124.21967 1217253; 124.51187 3225094; 124.70408 3540521; 124.74778 51442; 124.88152 696338; 125.18279 10613216; 125.30182 72411; 125.36176 1469574; 125.83914 1814423; 126.00206 48086; 126.07694 59833; 126.10512 4010033; 126.1888 35436; 126.42093 5229; 126.57519 2346; 126.72552 1375452; 126.79731 262819; 126.81025 9189; 126.9429 43770; 127.30046 2089646; 127.64194 7352; 127.6485 1525918; 127.82675 1772223; 127.89813 3677649; 127.94414 28128; 127.98341 52706; 128.4013 25481169; 128.91535 1270281; 129.10693 1547815; 129.171 6280; 129.19124 65623; 129.22781 8503791; 129.365 20596; 129.65961 57468; 129.80279 7667386; 129.85702 160; 129.93231 53961; 129.97412 18233; 130.02053 67627; 130.04718 33663; 130.07304 1861441; 130.22789 192435; 130.67491 13168; 130.86233 20091; 130.8641 136091; 130.86954 245646; 130.89672 1148992; 131.05554 545520; 131.05947 45522; 131.2656 45350; 131.52476 3026722; 131.83504 8926; 131.85629 1329885; 132.22252 1882842; 132.59711 559952; 132.65825 4919607; 132.99939 3048713; 133.24999 246628; 133.33815 56319; 133.42867 1612172; 133.51814 91662; 133.72423 20843; 133.8449 237607; 133.90018 5479459; 134.08917 70347; 134.51123 1543; 134.55269 65298; 134.8962 2191; 134.95196 2888691; 135.20761 77453; 135.49265 1871397; 135.52954 27566; 135.6397 34112; 135.86248 31389; 135.9536 24433; 136.05406 33286; 136.1017 12037; 136.45338 3335948; 136.63594 467372; 136.75787 1132123; 137.04979 8285469; 137.11268 50052; 137.23039 3376059; 137.26506 5734; 137.60391 16300; 137.62157 873647; 137.67488 55440; 137.79006 11310853; 137.79678 2521812; 137.96202 31085; 138.29504 34007; 138.55045 47264; 138.75063 66008; 138.79548 1679886; 138.89708 3142; 139.2847 4733054; 139.36161 25675; 139.39373 119055; 139.55167 61038; 139.61423 53700; 139.68817 1825191; 139.81014 11556; 139.87546 1330930; 140.03128 4954841; 140.14213 924; 140.43142 1805437; 140.64707 1235; 140.78082 70192; 141.4343 19478; 141.47591 69093; 141.49906 60301; 141.58344 1950981; 141.67869 7294480; 141.77035 375; 141.83308 4574275; 141.93652 21521; 142.00937 2402645; 142.05101 181089; 142.13966 440541; 142.22863 1811669; 142.24057 5003493; 142.28427 44694; 142.45155 6773408; 142.65539 46842; 142.97312 5899951; 143.03442 60790; 143.11956 136337; 143.31774 77995; 144.0652 21781; 144.22425 26237; 144.29103 66153; 144.32885 43346; 144.5504 5491; 144.63192 7497541; 144.65732 175243; 144.75448 4249; 144.87306 1902346; 145.0728 32316; 145.07831 2672770; 145.19702 2238983; 145.27634 4538; 145.46961 456; 145.74664 46586; 145.79575 6296; 145.8329 46374; 145.97592 125072; 146.33168 1084036; 146.38595 1078789; 146.51312 59032; 146.77047 43668; 146.8321 25538; 146.87655 26093; 146.96886 2072890; 147.04972 1921416; 147.26798 414070; 147.40076 1225943; 147.42212 2813825; 147.50961 5562378; 147.60921 14371; 147.64336 1677547; 147.72556 2133802; 147.87809 1334843; 147.89469 2250; 148.03595 43847; 148.11589 10828; 148.92783 2523; 149.02219 4257009; 149.07494 332146; 149.13465 74239; 149.38302 63603; 149.43857 1825159; 149.804 9850; 149.82818 1413290; 149.83701 6052; 150.50751 6747181; 150.5608 66760; 150.65465 64306; 150.77449 2207780; 150.85663 158126; 151.08348 5936; 151.31481 363804; 151.42933 1578110; 151.47638 68523; 151.69352 1999598; 151.77249 19779781; 152.34748 3954884; 152.6402 1790004; 152.6602 11098; 153.25302 7752; 153.27141 3868968; 153.27392 4364998; 153.42709 2619824; 153.74079 1542818; 153.9193 5687284; 154.76342 1847286; 154.86466 1721; 154.90916 9420573; 154.91356 36791; 155.4132 1221278; 155.42821 19258; 155.45292 26311; 155.55236 20676; 155.84198 23717294; 155.91603 898185; 156.05088 3601203; 156.24222 408873; 156.25616 23485; 156.30935 148227; 156.34005 6609; 156.76444 44895; 157.09534 2372; 157.12376 5972109; 157.21331 198172; 157.3436 50141; 157.49922 4031; 157.64449 6231; 157.84557 49665; 157.87506 1683416; 157.89409 29077; 158.18408 32836; 158.26753 44848; 158.28071 64527; 158.6663 22723765; 158.76733 4401985; 158.9098 155073; 159.30158 408505; 159.31551 5322; 159.42879 133120; 159.48369 1398214; 159.64403 58014; 159.77191 23754; 159.84455 4108644; 160.0632 1424225; 160.49826 196519; 160.53317 76574; 160.58438 920116; 160.6777 1937338; 160.83219 3381944; 161.01529 9002492; 161.39253 1132291; 161.39936 1848209; 161.40229 7986; 162.19564 1248267; 162.83945 1930642; 162.88476 9476; 163.1129 22179; 163.3639 10211283; 163.7054 8489378; 163.74412 39595; 163.9665 7945148; 163.9788 4860495; 164.35594 29721; 164.46824 2093914; 164.62308 24472384; 164.68326 1750158; 164.68332 148102; 164.7779 1481; 164.94488 23945088; 164.96387 8877; 165.01327 498475; 165.16287 148384; 165.41611 31731; 165.46901 121660; 165.56758 43675; 165.64295 3728468; 166.01841 7043249; 166.03516 64460; 166.04987 9699; 166.13144 510847; 166.2262 78643; 166.30544 6259188; 166.50459 9677; 166.76637 132001; 166.98479 4212; 167.04318 20737888; 167.04715 11766; 167.13136 61969; 167.5473 4498; 167.54958 15123389; 168.02709 23585; 168.12744 103079; 168.2619 8893; 168.27382 64897; 168.47735 3790; 168.7708 5639; 168.7983 1844096; 169.17992 5510026; 169.24329 125090; 169.78672 3339749; 170.01365 76957; 170.12294 33832; 170.13243 135774; 170.35031 139625; 170.40577 52124; 170.61431 13010; 170.79475 504888; 171.00974 12738123; 171.09864 45637; 171.22678 7620; 171.26448 4274768; 171.28553 36908; 171.47098 2981937; 171.73989 11710; 172.03224 2097664; 172.19745 4371826; 172.34429 196276; 172.4578 145042; 172.69864 22292; 172.71259 30059; 172.82868 8837; 172.9053 2326; 172.94335 2296768; 172.96769 77653; 173.10345 12157; 173.1645 85590; 173.30944 4097; 173.39147 9654; 174.23925 722585; 174.28209 256271; 174.39567 342446; 174.49721 1302726; 174.54733 1572412; 174.6865 20870640; 174.86628 35261; 174.90502 4144609; 175.26471 9766834; 175.4198 3815942; 175.47044 1693378; 175.53055 1211542; 175.54935 1197983; 175.60613 1402164; 175.6779 37213; 175.72224 41436; 176.0978 170148; 176.11468 15833; 176.17791 196311; 176.20262 65096; 176.53723 515839; 176.68762 3165295; 176.75634 27547; 176.83179 5769; 177.15931 19696; 177.20156 145439; 177.41272 353745; 177.6253 2240051; 177.78995 11044296; 177.89647 1696006; 177.91277 22289; 177.99226 36950; 178.217 850161; 178.41274 23258869; 178.48884 58509; 178.54099 5421739; 178.58592 19927; 178.63063 2015353; 179.28696 7368678; 179.41914 77556; 179.72575 66678; 179.76939 398901; 180.00923 5297; 180.07461 372830; 180.18202 1823550; 180.36122 145070; 180.58394 53242; 180.99661 181343; 181.28628 74679; 181.4697 65729; 181.54625 40080; 181.61514 8920192; 182.8046 40839; 183.57176 44460; 183.83013 23108; 183.89956 5665; 184.2345 13449; 184.33343 8933604; 184.42563 101982; 184.43326 13878100; 184.50633 1517082; 184.68689 867628; 184.77004 811469; 184.77249 7027772; 184.78167 8089; 184.79023 3287941; 185.352 5502682; 185.38375 9998074; 185.38654 23500; 185.46094 5818; 185.48933 1613051; 185.57535 522512; 185.67505 68394; 185.68992 942729; 185.9437 40; 186.49778 61380; 186.64554 3834383; 186.66821 3124640; 187.85956 13182339; 187.9681 45210; 188.11106 664; 188.26616 460521; 188.39327 4310617; 188.51246 12677; 188.56375 21840; 188.65988 99799; 188.84942 4848; 188.9034 37748; 188.96695 33552; 189.40096 64012; 189.47598 4775477; 190.13333 5988264; 190.19473 1799297; 190.60523 20362; 190.77082 229192; 190.97053 3527463; 191.01802 7671646; 191.26657 53019; 191.44624 67195; 191.47242 998842; 191.54666 73473; 191.58796 4704404; 191.62298 7402; 191.67088 8247; 191.74518 37622; 191.98199 30186; 191.98838 23539; 192.07113 1944720; 192.07221 9087; 192.63006 36384; 192.80884 36934; 192.86091 1599; 193.49958 34703; 193.51833 42951; 193.62267 2345300; 193.77964 190; 193.86224 28165352; 194.29862 1248; 194.45851 42422; 194.55965 242556; 194.59216 39765; 194.81567 3940442; 194.82573 5188; 195.12188 48047; 195.50421 397939; 195.55641 11480; 195.59858 1489527; 195.69957 14435; 195.85838 77821; 195.87806 141262; 196.29761 62257; 196.3203 44004; 196.50737 8000; 197.24866 179496; 197.43448 17447; 197.48401 183310; 198.03772 5838742; 198.11227 3686791; 198.22154 3615239; 198.39703 179448; 198.39934 9427; 198.40711 1940729; 198.53782 163296; 198.60867 72781; 198.61215 7854115; 198.62764 67126; 198.68648 14914787; 198.97559 959018; 199.27386 57551; 199.2908 4755702; 199.3682 5388; 199.42726 2334; 199.4805 1272658; 199.81144 4902; 199.82295 962852; 199.85935 9216; 199.96471 612759; 200.62573 457503; 200.68741 3611440; 200.88573 47526; 200.9901 19824; 201.13373 161008; 201.15331 22988; 201.27534 27301; 201.43092 3321472; 201.57998 13445; 201.80471 41156; 202.64474 3770208; 202.73069 835670; 202.77647 827404; 203.01794 2045544; 203.40481 58777; 203.48732 1326318; 203.71436 2736796; 203.82431 1695314; 203.8713 5090751; 204.02433 3932068; 204.03193 96637; 204.34241 1470651; 204.91794 5852061; 205.12853 21189; 205.15999 3253003; 205.1693 5438; 205.38185 50161; 205.45101 53025; 205.54554 61747; 205.55272 1088760; 205.69154 1057432; 205.8916 36904; 205.90988 47779; 206.07863 29687; 206.23824 3441; 206.58428 3676125; 206.62332 6148; 206.65621 165742; 206.74864 4007; 206.77963 1355; 206.98307 46610; 207.14353 5937; 207.19525 9622059; 207.20665 19604; 207.21576 146696; 207.30033 17156; 207.64044 2823896; 207.76729 7670917; 207.82454 9262328; 207.86215 413903; 207.88019 24155; 207.88882 69388; 208.00611 4549; 208.58939 1268756; 208.63192 63795; 208.63817 79481; 208.68737 605998; 208.83283 20045; 209.08936 3480868; 209.09643 37962; 209.12541 117222; 209.39165 4376524; 209.69677 37454; 209.73393 1101109; 209.86299 2927; 210.00105 13745; 210.08322 265234; 210.22125 9108908; 210.63283 9860; 210.63892 5866299; 210.73151 1422446; 210.78889 66918; 210.791 4838703; 211.05394 12995806; 211.32991 8288103; 211.36207 93533; 211.50247 1561692; 211.6822 23107; 212.27684 30898; 212.32388 4982; 212.70235 39707; 213.10711 5796; 213.24746 12532429; 213.35281 79486; 213.94949 38099; 214.18244 8430; 214.68811 819150; 214.8064 70892; 215.06691 148778; 215.37098 57508; 215.52869 50443; 215.62641 3704311; 216.08395 1775892; 216.09305 74425; 216.31088 6985; 216.64119 918; 216.73943 126770; 217.06538 1580; 217.18244 57082; 217.35826 40714; 217.35961 1981714; 217.37483 718242; 217.43615 10703879; 217.72955 7061; 218.20448 4979; 218.3426 694978; 218.44547 22850; 218.45719 37332; 218.51882 3180568; 218.66172 1844621; 218.66259 193415; 218.98727 1081; 219.30141 246; 220.31756 10643361; 220.36009 740430; 220.58793 167233; 221.05315 14705; 221.25253 8479; 221.3504 1854222; 221.41705 11115082; 221.47276 9539322; 221.4965 15972; 221.79228 7884; 221.98572 31072; 222.57344 34757; 222.81769 792269; 222.90744 9686634; 223.03361 66015; 223.06173 9337869; 223.20516 5835; 223.34155 1089965; 223.88048 346537; 224.20444 4006846; 224.36814 37777; 224.50831 64019; 224.5174 18172; 224.58689 35621; 224.63928 7842; 225.11072 457661; 225.17476 6905; 225.21937 20468; 225.33128 21481; 225.48947 4857964; 225.65643 1943337; 225.76461 22635; 225.85432 32581; 226.29256 55840; 226.44994 71079; 226.53959 3367; 226.55364 28357495; 226.61315 1828369; 226.77831 4556096; 227.08576 159439; 227.10794 6812; 227.19567 1869591; 227.32368 10449; 227.4736 17683; 227.74743 518196; 227.99012 112186; 228.04648 147422; 228.24535 54888; 228.35691 16793; 229.43714 4867; 229.72013 40852; 229.88975 24702; 229.9478 2341909; 230.67344 703073; 230.82682 154759; 231.03397 40276; 231.40013 1826901; 231.58141 3948316; 232.30532 1838788; 232.39643 41238; 232.40306 2870219; 232.59529 27732; 232.95281 13024; 233.0433 705997; 233.21109 925381; 233.36912 138687; 233.74709 2785112; 233.89747 91127; 233.93648 2178993; 234.05395 1269; 234.23041 60178; 234.42974 1543; 234.53373 6734; 234.53544 42644; 234.59543 7609993; 234.90932 614957; 234.96694 538763; 234.99923 14919; 235.20864 2960198; 235.39196 26386; 235.72584 53379; 235.76369 43230; 235.7999 40479; 236.09261 18477; 236.40355 7427; 236.41441 4013490; 236.60561 9818; 236.71764 8236; 236.98777 12967; 237.1671 24316; 237.55786 305221; 237.66688 742; 237.99172 125301; 238.42 24531; 238.44601 750946; 238.45459 1263222; 238.65235 181661; 238.75875 55427; 238.90279 28788; 238.92976 1745368; 239.18013 1911955; 239.29366 21611; 239.45311 24998505; 239.58502 74313; 239.75567 84399; 239.88521 29295; 240.02446 194125; 240.03661 8932; 240.21154 70821; 240.22912 3249410; 240.38827 9667; 240.43047 37776; 240.75804 25257; 240.82951 5221380; 240.85152 74540; 240.9489 1188; 241.13188 9158; 241.27162 58497; 241.27392 26427; 241.41547 8784499; 241.78288 30504; 241.80954 710; 241.95154 6702; 241.96868 2449482; 242.47647 34711; 243.4 1105385; 243.4331 31814; 243.62463 75217; 243.74782 33977; 244.05209 303838; 244.18398 24030; 244.59638 757249; 245.16344 60539; 245.62541 2801; 246.22202 1671961; 246.50793 1943805; 246.67984 195738; 246.7626 3282; 246.99965 934616; 247.20584 29186; 247.29228 6021050; 247.68025 717996; 247.91556 25371; 248.33433 3383; 248.55909 32126; 248.59049 527566; 248.72191 40609; 249.12028 1879; 249.29791 3177; 249.46608 36263; 249.5275 99316; 249.5728 4355318; 249.72583 91362; 250.29439 21420; 250.9947 67834; 251.05953 43595; 251.07739 1873759; 251.11544 79281; 251.16848 2910891; 251.40257 2090775; 251.50978 24520; 251.79723 161198; 251.85712 1623; 251.88952 53732; 251.95338 3937; 252.43681 666836; 252.92467 24979; 253.16426 61760; 253.40687 6515; 253.87955 225080; 254.1046 33608; 254.11776 218319; 254.64614 1166971; 254.79388 8311; 254.95399 3175; 254.97538 50224; 255.40382 1609734; 255.4105 41856; 255.90076 78946; 256.29012 67502; 256.29566 36077; 256.59667 399016; 256.6459 10452813; 256.71486 3114477; 256.76808 36850; 256.84525 66334; 257.3826 5383; 257.48721 51406; 257.56716 8301; 257.67079 3554794; 257.72801 4798291; 257.81455 46716; 257.85592 1837671; 257.8778 4009891; 257.90396 67024; 257.94276 9324438; 258.19098 38896; 258.19145 21666; 258.20573 6345; 258.23754 110333; 258.49228 1208628; 258.59164 4778; 258.62486 20297; 258.7017 4326508; 258.89606 1278409; 259.47266 4461; 259.63892 75040; 259.64745 6236878; 260.03399 62989; 260.14023 22719; 260.15438 1886166; 260.1908 7685; 260.82136 54718; 261.02578 174016; 261.05898 68251; 261.1315 19784; 261.16505 735690; 261.20846 25092; 261.24278 1456417; 261.82895 18016; 261.96695 2196; 262.04008 5208; 262.20363 186138; 262.45976 60582; 262.52553 50482; 262.57814 117466; 262.59089 22843; 262.69227 47082; 262.71128 28797; 262.84887 1938333; 262.9565 2940394; 263.79721 29500; 264.11148 10818715; 264.34474 26586; 264.93463 2081026; 265.08876 885563; 265.09229 1569308; 265.31164 3538140; 266.05292 154514; 266.40207 626292; 266.62133 27950; 266.96261 28702237; 267.21865 1582276; 267.72311 10272; 267.73844 398204; 267.82649 2637; 268.11269 8169110; 268.39303 7594; 268.48843 34301; 268.79952 75542; 269.54648 581429; 269.59566 7831; 270.00996 50562; 270.0591 1997195; 270.35972 5370699; 270.66256 1222; 270.68185 5698144; 271.2872 9774; 271.33373 5067279; 271.41757 74129; 272.01439 26809; 272.01671 9863; 272.37963 17386; 272.4754 21830; 272.49782 652678; 272.60907 4351; 272.70494 4674; 272.89193 46774; 272.99279 10456382; 273.00592 30055; 273.05286 41811; 273.24698 174131; 273.38302 8601; 273.87234 38996; 274.07426 1080599; 274.63266 3714648; 274.78831 3297459; 274.88187 2716441; 274.89736 13188; 275.19651 21730; 275.46022 59102; 275.57149 111419; 275.6328 7392; 275.63802 21626; 275.85742 69585; 276.31719 2779473; 276.50226 69038; 276.73677 7429; 276.81617 195162; 276.84329 1773648; 276.87355 21963; 276.89291 2155770; 276.94125 54151; 277.18669 37785; 277.23236 4892188; 277.28261 38835; 277.40364 61668; 277.4386 5488; 277.46869 284592; 277.59446 196860; 277.6833 4110535; 277.94998 1411305; 278.02523 187949; 278.48063 92328; 278.50915 27977; 278.591 2260003; 278.71329 900593; 279.07532 76862; 279.09297 7478; 279.15985 15737999; 279.31089 1656831; 279.33531 76748; 279.38089 6159; 279.42042 28702; 279.42981 3095172; 279.62472 592157; 279.72776 23573; 279.80602 1653730; 280.29498 38026; 280.49428 220543; 280.49614 31518; 280.50049 62156; 280.53123 4768065; 280.6315 25452009; 280.93309 13094; 280.97195 16298; 280.97339 36541; 281.09624 21949; 281.38343 14165217; 281.46036 24090; 281.69415 486918; 281.71795 21760; 281.74973 586291; 281.91232 19750; 281.93382 4356; 282.17819 58522; 282.35413 28636; 282.43135 47954; 282.60445 19884; 282.82157 41399; 283.22569 529110; 283.53114 10798; 283.72298 613880; 283.77647 73565; 284.1316 5291863; 284.14073 22607; 284.2204 108201; 284.50346 26975; 284.56263 661132; 284.84873 4148293; 284.89552 29646736; 285.27389 594700; 285.38939 9403; 285.422 2628026; 285.42602 558405; 285.46268 81888; 285.55496 1826018; 286.21884 1083451; 286.38366 23269; 286.4436 62678; 286.65685 41521; 286.67535 70038; 286.70502 31462; 287.17986 19183; 287.21572 68654; 287.25889 287336; 287.38006 24306; 287.3927 334112; 287.40324 45748; 287.42532 167315; 288.40821 37385; 288.98742 12083; 289.39769 115368; 289.42689 938206; 289.82395 3750995; 290.01753 129797; 290.14794 9405; 290.28913 20559838; 290.30613 196460; 290.36981 9635925; 290.58578 3248035; 290.73483 1125; 290.80816 1237235; 290.90272 37491; 291.02408 22675; 291.09596 26147; 291.20003 1784444; 291.25052 2718416; 291.53593 116890; 291.54646 4384572; 291.59443 73496; 291.8842 6748; 291.94424 4482044; 292.13649 18898; 292.17817 759838; 292.76974 152382; 293.08962 9365; 293.19369 23866; 293.26649 6322; 293.27992 21336; 293.83171 72856; 293.94568 36830; 293.9602 9226; 293.97877 701622; 294.04568 1358100; 294.17367 4860673; 294.28817 145157; 294.48349 6369; 295.28262 1375474; 295.44275 59908; 296.05506 25344; 296.18023 1050583; 296.21012 7086569; 296.21136 23092; 296.3009 65262; 296.41526 78551; 296.44125 876939; 296.56031 262446; 296.89064 3802380; 297.17354 3951568; 297.20317 17896110; 297.33907 13453544; 297.51189 93656; 297.62893 4574; 297.70788 58904; 297.7387 17140; 297.74312 2285708; 297.90068 3999; 298.34495 29670; 298.42614 5120; 298.61898 59527; 298.72047 22378; 298.82699 6906825; 298.85505 6891; 300.23426 8559675; 300.37067 69651; 300.47863 7948999; 300.91399 28029733; 300.92096 20307581; 301.3225 31471; 301.61929 12875; 301.66705 255744; 301.8602 24064; 301.88 25169; 302.15145 9807794; 302.40883 144389; 302.75605 41734; 302.76326 1636186; 302.77864 8559130; 302.83367 3104891; 302.85963 41622; 303.23118 108349; 303.34686 7207909; 303.35561 831058; 303.37363 3790986; 303.94327 384945; 304.00886 4238; 304.31992 14050; 304.52947 38631; 304.86687 6066; 305.28689 5117516; 305.3196 120897; 305.37956 726087; 305.51766 141220; 305.601 126283; 305.66329 5469081; 305.76604 1636458; 306.00256 9100; 306.29982 3360478; 306.46833 2616; 306.88017 628; 306.9017 167319; 307.22098 4948; 307.33099 4356; 307.69622 8200056; 308.02722 6859912; 308.33082 66373; 308.47265 71048; 308.53488 46352; 308.67227 147413; 308.72578 8138; 308.8381 1764652; 309.24783 32446; 309.26548 11549; 309.29139 8655; 309.52399 17915; 309.66333 2210; 309.69848 1181733; 309.70524 1458171; 309.85488 823813; 310.05209 63603; 310.33121 7693; 310.3846 13478823; 310.65227 3350; 310.65883 20806; 310.70272 23385; 311.26218 584051; 311.35227 52450; 311.35403 754138; 311.52309 1406120; 312.07622 20046; 312.18043 530663; 312.18176 2830; 312.22484 1191; 312.64075 6970384; 312.75386 4277; 313.16554 2420; 313.19789 9177; 313.2501 590486; 313.60912 1109214; 313.65732 15573; 313.79067 7359950; 314.30887 8474; 314.41432 7759; 314.80342 398570; 315.00128 571781; 315.47398 8034469; 316.02013 44589; 316.07607 15694; 316.13729 10163; 316.22874 1829854; 316.29787 29687; 316.33306 43059; 316.56832 25498; 316.5855 1966143; 317.06684 56678; 317.13292 59316; 317.13727 2074255; 317.49257 23134; 317.87254 89544; 317.95738 1226666; 317.99709 29735; 318.29001 5911; 318.36397 1161318; 318.67576 37776; 319.4002 6211263; 319.51714 1309379; 319.53445 27999802; 319.80777 20546; 320.18863 49354; 320.62408 43021; 320.68196 2902462; 321.05059 3396; 321.25029 14794; 321.29403 29130160; 321.35241 168042; 321.35753 1137530; 321.54268 6398987; 321.55075 5992; 321.62843 21023; 321.67564 2703; 321.8753 1722237; 322.15747 62786; 322.21105 22716; 322.21122 642560; 322.37535 1776171; 322.38549 24816; 322.74806 3900; 322.8468 2314611; 323.00787 36265; 323.25596 30803; 323.31368 1146961; 323.75455 31931; 324.3109 21060; 324.45637 4535; 324.48436 114938; 324.60622 412; 324.82675 50389; 325.2402 8633357; 325.27864 4698; 325.42611 26735; 325.43793 57685; 325.55422 8244; 325.87857 3434; 326.41901 7750906; 326.61204 2830652; 327.13933 644013; 327.20317 12348; 327.48948 64071; 327.60941 183402; 327.66773 7591; 327.80035 132; 327.93989 26397; 327.9791 3142812; 328.49808 8300462; 328.91558 1595015; 328.93254 6145; 329.0776 26448; 329.17931 78692; 329.50742 66215; 329.53539 1231919; 329.62571 4075935; 329.77569 18222095; 329.81288 1164282; 329.92934 1720; 330.05363 27086; 330.13437 27874; 330.16485 109565; 330.36705 817991; 331.95145 23589; 332.02043 2298723; 332.2129 1631379; 332.40818 27182; 332.73125 7951; 333.04444 24231; 333.29798 119403; 333.46592 958737; 333.51722 2971878; 333.5591 57842; 333.69278 78183; 333.96473 774434; 333.97849 1885475; 334.0385 7174226; 334.09349 26213; 334.23731 1199376; 334.44236 9393; 334.53908 2702801; 334.59981 20646; 334.60158 3854; 334.67447 23258; 334.69785 70149; 334.71652 3052382; 334.97798 2603350; 335.19395 3565136; 335.67126 1036401; 336.14165 893; 336.21127 46917; 336.34379 5944; 336.58453 658387; 336.65397 51866; 336.74076 4903; 336.92224 5467210; 337.2559 4559643; 337.58507 542; 337.59053 6914; 337.6459 64534; 338.29452 57858; 338.46574 516299; 339.62058 20857; 339.638 50424; 339.89016 18823; 340.13188 20021; 340.21403 22186; 340.47432 70103; 340.49456 3881; 340.64301 2785732; 340.69695 1069650; 340.82332 29215; 340.90371 905335; 341.25496 2797569; 341.44306 41379; 341.58331 535369; 341.68626 2353516; 342.17796 4619; 342.2738 903323; 342.35617 7721407; 342.56474 9247512; 342.62637 25806754; 342.65113 8416610; 342.70692 7926; 343.04755 6651; 343.1364 2248; 343.53523 21370; 343.61583 8259; 343.74999 1368439; 343.77627 4434499; 343.92319 61179; 344.0546 44576; 344.4215 1351573; 344.44462 4771; 344.46995 1049233; 344.55804 181954; 344.77252 38068; 344.77337 9700; 344.94254 754175; 345.3243 10720; 345.79574 25360; 346.02592 4583390; 346.08083 30412; 346.29509 1311068; 346.30887 69945; 346.31061 24797; 346.33196 1350174; 346.33431 193756; 346.56087 34584; 346.83799 9125228; 346.90814 5616720; 347.12862 1479129; 347.39612 50007; 347.48634 5859745; 347.54022 60779; 347.57097 91294; 347.69869 21505; 347.77835 328382; 347.86626 1859790; 347.97016 7722898; 348.01988 35726; 348.06863 1878814; 348.09942 66320; 348.25067 72064; 348.43588 2434998; 348.49538 310551; 348.79259 135766; 348.9288 68043; 349.12943 3752; 349.18897 98725; 349.49252 1479372; 349.61804 12736; 349.87003 1373; 350.16677 399097; 350.28111 4873062; 350.32226 1308746; 350.51159 68804; 350.8371 8794593; 351.24059 261752; 351.38749 3577679; 351.59572 57277; 351.62498 76420; 351.95322 47510; 352.54847 73413; 352.59877 143273; 352.74399 15416; 352.85805 68986; 353.09195 9799368; 353.57876 59683; 353.73068 5795; 353.856 23604; 353.87234 9853755; 353.96322 4802; 354.00064 1921757; 354.01415 75272; 354.27983 5291; 354.2807 28618; 354.30451 40403; 354.48015 1553214; 354.82434 1315461; 355.12999 149935; 355.13474 1681589; 355.33915 4051870; 355.51417 54787; 355.61234 27725461; 355.63914 28147; 355.82101 24942; 355.8311 3837986; 355.85045 5919206; 355.92036 9176792; 356.06949 97632; 356.30723 49051; 356.41097 2761465; 356.59944 1325019; 356.72683 56539; 356.78929 21622; 356.87706 66425; 357.16438 16454; 357.27089 75784; 357.33474 4077803; 357.43178 13572; 357.44495 777713; 357.45847 14463; 357.46401 9265; 357.67161 71153; 357.74686 1204395; 358.21016 7892; 358.40394 35663; 358.47594 28199; 358.999 4747661; 359.01325 27136; 359.50509 6554258; 359.52486 1917015; 359.56367 209; 359.88523 8061; 359.93518 78307; 360.01636 13467959; 360.47958 79806; 360.5185 61865; 360.66292 55160; 360.75459 7598944; 360.9764 2621101; 361.00531 82869; 361.22434 4799385; 361.23981 62075; 361.4141 76396; 361.63321 51613; 361.68369 29582; 361.97443 4690220; 361.98866 113273; 362.28512 331426; 362.28577 21159; 362.34281 605497; 362.38738 31224; 362.52419 149290; 362.57525 61042; 362.72397 50836; 362.95663 7431; 363.17396 57620; 363.17683 32755; 363.36395 5348455; 363.45552 7595; 364.03518 30480; 364.11792 132831; 364.19282 141975; 364.82323 210608; 364.96965 63155; 365.39281 142573; 365.42599 32177; 365.58636 28137; 365.72001 27869; 365.74765 963818; 366.84763 4552088; 367.11214 103517; 367.15401 52743; 367.40765 28023201; 367.91772 795; 368.18379 959564; 368.43249 11462; 368.48492 67321; 368.70452 6739; 369.06096 65947; 369.08337 3322295; 369.18556 63017; 369.27407 22357783; 369.42281 122066; 369.53032 52102; 369.80092 30357; 369.90836 1622684; 369.95672 5600; 370.04291 19070; 370.67672 774896; 370.82648 24547; 370.91637 19241258; 371.0492 33155; 371.21462 4012; 371.548 3103; 371.69563 3607; 371.77074 24207; 371.92049 55864; 372.64394 7180; 372.99223 7017019; 373.0866 369760; 373.11289 1516550; 373.15652 2996792; 373.28756 56302; 373.32006 45814; 373.57875 4720267; 373.7174 1329551; 373.7321 1139223; 373.769 25474; 373.81121 42690; 373.81863 1788711; 373.82421 357519; 374.02051 6018; 374.83478 4675; 374.90282 103595; 375.19791 4710918; 375.30291 4819217; 375.6861 2820408; 375.71694 6882224; 375.74168 11432089; 375.75139 772172; 375.75972 39634; 376.02122 24130; 376.12721 3873291; 376.19252 1235275; 376.2756 24920; 376.29134 632868; 376.30794 1700076; 376.55807 6268292; 376.80386 959; 377.21205 44473; 377.25596 3439503; 377.7735 72606; 378.00845 2684; 378.07385 1060610; 378.12857 41353; 378.25316 76818; 378.47226 1088824; 379.35855 700150; 379.9026 235144; 380.07832 3322217; 380.1004 19517; 380.18127 78674; 380.29875 3552152; 380.42242 71835; 380.56777 11394774; 380.79534 209713; 380.86796 1284498; 381.16784 1404; 381.3512 54243; 381.67347 70808; 381.94965 4888783; 382.01541 47203; 382.07609 11504025; 382.41918 5416082; 383.20886 2216246; 383.327 34599; 383.45374 22814; 383.50692 5911; 383.70931 8898400; 383.79923 1193849; 383.86141 34925; 384.06352 90733; 384.21449 35555; 384.279 26456; 384.29975 79511; 384.47007 8850; 384.723 8383813; 384.84249 22254; 384.84264 8036; 385.04136 154097; 385.254 18871; 385.46157 60629; 385.52349 35021; 385.70135 47727; 385.73353 2754611; 385.81783 2838; 385.8978 21519; 386.00326 21891; 386.28777 3222106; 386.42591 65703; 386.49504 22257; 386.55905 416778; 386.59309 56780; 386.62434 3544; 386.80452 21047; 386.87865 11621396; 387.05539 1378331; 387.24085 78561; 387.44687 566587; 387.45403 13986905; 387.53488 294566; 387.58955 1770989; 387.68734 9554755; 388.08518 29054; 388.34604 1942758; 388.6298 1415; 389.25176 1254667; 389.281 51739; 389.47652 28854; 389.58931 47534; 390.22759 27924; 390.29377 1555; 390.45991 8184; 390.5019 2837909; 390.53297 8740; 390.61466 3330796; 390.69762 21376769; 390.7721 302937; 390.97455 6699733; 391.18543 2428272; 391.21118 7630988; 391.22388 1278879; 391.45371 2671; 391.57842 63017; 391.63599 71305; 391.86499 3390; 392.15542 396019; 392.16955 24278; 392.30853 73990; 392.71958 409478; 392.79275 3930648; 392.8675 2363746; 392.95139 1566318; 393.19771 9421628; 393.39292 9308379; 393.87086 30152; 393.97084 128494; 394.08513 8833; 394.18647 13403; 394.28085 1885; 394.54751 5247946; 394.76266 19323; 394.9885 33995; 395.11629 74794; 395.26693 48817; 395.34414 110944; 395.5637 31075; 395.65638 25019; 395.69896 212896; 395.86463 6308; 395.87795 13939; 395.94963 61376; 396.1789 1474166; 396.5157 153452; 396.57637 1573241; 396.6267 5452; 397.03881 12730; 397.17148 3025186; 397.29542 3597; 397.3032 39971; 397.4094 974062; 397.44484 35971; 397.75858 177641; 397.80467 18708541; 397.83494 5805; 397.94976 58471; 398.21066 1193; 398.23566 343740; 398.84607 4612572; 399.65351 216782; 399.8392 4165704; 399.86396 1298923; 400.03549 57362; 400.03728 23043; 400.27264 8647; 400.33178 96012; 400.85937 7562; 401.08446 95612; 401.18608 4140786; 401.40507 183513; 401.47478 2110945; 401.59006 46150; 401.72167 53963; 401.73238 8983516; 401.76728 33739; 401.89938 75339; 401.98966 5065643; 402.29963 58531; 402.43822 5633818; 402.49654 69165; 402.64818 3753040; 402.99868 4699320; 403.09351 8382269; 403.65141 7497415; 403.81603 62189; 403.94339 61913; 404.24107 392768; 404.28465 20152; 404.85101 45628; 405.04263 2276122; 405.40716 1107677; 405.53922 1756; 406.05971 3987; 406.09915 7952301; 406.13518 5853662; 406.58598 1684173; 406.69837 1064637; 406.70299 17817770; 406.82231 6385; 407.26733 7127; 407.29013 8695270; 407.44487 23222; 408.48545 132923; 408.51774 1611494; 408.94505 9466991; 408.98902 6824792; 408.99765 1398291; 409.44694 176431; 409.70685 173697; 409.85335 71728; 410.19983 21244; 410.33554 1325; 410.33732 1241294; 410.50815 45581; 410.5266 34401; 411.28101 42103; 411.43716 491853; 411.46916 59099; 412.05715 7378; 412.15276 1152024; 412.40141 65543; 412.52687 5209; 412.55584 38597; 412.7663 33427; 413.16144 156; 413.22475 22894; 413.38737 25421; 413.41578 21603; 413.45987 2912634; 413.59071 6798; 414.11432 73947; 414.12013 4299008; 414.14819 5627116; 414.29297 78077; 414.31346 73814; 414.34433 636588; 414.37648 3635; 414.49679 47585; 414.55173 4327068; 414.63031 1910; 414.751 746357; 414.81737 5141316; 415.10193 4542; 415.14059 572126; 415.15594 7; 415.3283 72188; 415.62686 1696090; 415.84946 360231; 416.09468 654119; 416.61122 26139; 416.62524 1062238; 416.75826 13764901; 416.83271 2206731; 417.05132 317698; 417.30548 580; 417.3194 66250; 417.35065 41833; 417.42145 10472; 417.54807 5189; 417.95001 4340621; 418.23161 38544; 418.26272 9289; 418.62751 29131030; 419.11066 37323; 419.13061 28111; 419.34435 29656; 419.36857 1374868; 419.97812 178044; 420.38786 60901; 420.87643 6714; 421.8824 181094; 422.03328 7647831; 422.3242 10315917; 422.47776 12327; 422.72124 1656326; 423.42709 2013041; 423.76758 1856667; 423.83384 1467575; 423.85423 73864; 424.04299 721554; 424.24207 768044; 424.31951 91051; 424.4576 18334; 424.51057 1189; 424.7003 118954; 424.77939 33295; 424.83938 2162047; 425.18331 5198428; 425.49567 12397; 425.50846 35260; 425.60785 9336; 425.6868 28586; 425.84935 12157; 425.88417 35076; 425.9184 954681; 425.98173 25510; 426.18438 123888; 426.30486 3227976; 427.31564 32842; 427.37448 415792; 427.53731 38039; 427.58297 87420; 427.9817 79449; 428.12544 36025; 428.25191 22512; 428.34345 5349227; 428.64699 135173; 428.72442 10465; 428.95258 11050; 428.96444 1565569; 429.06705 64495; 429.07638 562145; 429.11379 1432154; 429.17744 5327; 429.34332 22806; 429.52799 26763; 429.63492 31570; 429.66529 47143; 429.72489 1495165; 429.94261 23123; 429.98743 1883962; 430.0778 1721; 430.12719 20268; 430.3911 26100; 430.39706 56263; 430.80286 11867; 431.06308 38781; 431.09543 36534; 431.14125 82801; 431.2994 18768324; 431.63693 1185; 431.66046 830963; 431.74481 61512; 431.7654 3989; 431.96525 21301; 432.3505 55361; 432.42725 1805681; 432.51817 5585016; 432.52877 1546516; 432.92435 194175; 433.26435 39002; 433.39596 3634811; 433.88045 1034928; 434.38152 809205; 434.40493 71915; 434.4087 8014529; 434.42441 182329; 434.625 1256611; 434.81057 7156866; 434.82157 168092; 434.89094 4233129; 435.22936 30695; 435.2425 4720068; 435.37605 269076; 435.43992 638926; 435.45605 810392; 435.5239 28613; 435.63335 66077; 435.94956 5642; 436.24999 173966; 436.27917 164261; 436.45583 2441428; 436.46553 25997804; 436.64881 38317; 436.64943 412433; 437.2647 22874; 437.53685 40878; 437.54557 45398; 437.57249 5511383; 437.60532 22845; 437.75145 188957; 437.84007 6223272; 437.88507 2716937; 437.92943 7908099; 438.40765 7009132; 438.40905 3247062; 438.439 28562; 438.5171 8862225; 438.54467 2605280; 438.55176 5141059; 438.64545 44295; 438.70247 74894; 438.78384 41073; 438.88087 60788; 439.0083 2556125; 439.04824 4489611; 439.05901 27774; 439.20051 1755125; 439.40094 24545; 439.75574 1560732; 440.08755 191861; 440.15554 1357280; 440.2352 29538; 440.5285 414253; 440.77203 1781337; 440.91313 6931; 440.95958 7804; 440.99187 558725; 441.52457 912882; 442.00122 4395; 442.05454 7382; 442.08361 395655; 442.08379 6357014; 442.24778 39597; 442.39657 58526; 442.60761 4837291; 442.63677 2340; 442.70797 67371; 442.80149 988095; 443.05044 16310; 443.17285 8980; 443.34789 71401; 443.35618 1616; 443.51141 7159; 443.74212 3790653; 444.4671 114656; 444.64316 1742537; 444.75078 1739; 444.83789 1534531; 445.1131 124680; 445.23865 425859; 445.49535 29204; 445.62939 25061; 445.76396 6574; 446.23506 21236; 446.23932 160601; 446.24179 194364; 446.34221 1278719; 446.52541 923473; 446.5989 317548; 446.62975 7603; 446.63139 22044; 446.79555 26829; 447.10488 78667; 447.2963 7807; 447.34026 2321370; 447.72819 24594; 447.76491 750; 447.80446 150578; 448.06336 3525682; 448.17848 4633448; 448.20895 1401777; 448.22248 4171358; 448.244 9099; 448.58104 4785; 448.64319 1796; 448.69995 6222406; 448.96416 68505; 449.48001 692533; 449.85364 7658458; 449.99498 2798; 450.05706 49366; 450.07112 2910447; 450.10264 59983; 450.11668 495999; 450.48039 16645; 450.57489 26556; 450.6268 53133; 450.67793 674023; 451.26384 489; 451.30208 5733573; 451.42396 49754; 451.62092 5109; 451.70792 6315; 451.90472 742211; 452.37004 5822197; 452.38304 20943; 452.38964 79935; 452.50326 9165744; 452.86313 60257; 453.02257 1629765; 453.11397 959055; 453.17565 3770117; 453.24952 1735281; 453.37787 4136758; 453.48089 1431698; 453.60963 1278082; 453.88989 4025738; 453.89499 28903; 453.93736 19758; 454.09207 2902; 454.49147 20165; 454.52682 1510849; 454.70982 25302; 454.79134 390506; 454.83005 48114; 455.05092 45165; 455.14562 1109551; 455.27899 27154; 455.472 1654; 455.57041 25450015; 455.69652 355; 455.77098 1164921; 455.83355 512527; 455.99736 26202736; 456.13489 3584491; 456.29253 9389; 456.37106 9746; 456.56356 5730538; 456.72266 9729393; 456.76675 20417338; 456.9117 28322; 456.99497 49660; 457.12605 526811; 457.3028 13453; 457.42331 46176; 457.5458 42844; 457.58657 26184; 457.76888 467638; 457.80383 56581; 457.85109 1200933; 458.10606 5572612; 458.25629 1448897; 458.54499 23050173; 458.55856 4890; 458.61122 220594; 458.68782 29546; 458.68837 26314; 458.82396 8754; 458.82532 6403589; 459.22551 6777172; 459.32704 71269; 459.47336 78216; 459.60902 56996; 459.96618 24346; 460.48872 446371; 460.52362 35830; 460.66365 1694366; 460.77402 3543784; 460.78039 16793437; 461.85136 28454; 462.01815 40268; 462.45852 378581; 462.8053 888369; 463.19477 2844830; 463.21233 47680; 463.29412 1908123; 463.78552 27655; 463.81138 489828; 464.12752 4407240; 464.19819 6835; 464.37435 34867; 464.4039 52593; 464.87199 1134; 464.98356 56148; 465.22302 522046; 465.41132 29023; 465.53158 129803; 465.65742 4946; 466.25695 4643; 466.25711 1955796; 466.48208 814215; 466.55779 19718; 466.72009 97996; 467.41504 40523; 467.52497 18183; 467.82854 48079; 467.9473 25535; 467.97319 3037273; 468.06103 51686; 468.27971 2624058; 468.55796 20851548; 468.73193 1894687; 468.7738 2711086; 468.83243 17795637; 468.99707 4327290; 469.24551 1899018; 469.25833 26781; 469.50774 234792; 469.67664 1207; 469.73451 9603; 470.13285 8241794; 470.29289 13839643; 470.40689 27048; 470.75746 140887; 470.80698 26859; 470.90133 23633; 471.08842 19695115; 471.35755 9212; 471.37091 78086; 471.47167 7515146; 471.59762 1486442; 471.82022 8220; 471.83539 862904; 471.92193 54436; 471.98036 27223; 472.19136 61731; 472.58158 1631489; 472.72265 3834; 472.75739 64709; 472.81109 79435; 472.96453 114923; 473.11526 71400; 473.26242 60384; 473.35917 61556; 473.74672 1324487; 473.76267 66027; 473.81702 55933; 473.84501 10150; 473.88226 1845953; 473.93208 4789044; 473.96503 7183973; 474.33288 9723402; 474.42643 23098214; 474.68588 4076245; 474.72786 2400; 474.96718 6624940; 475.23762 22; 475.37364 4612; 475.40099 43945; 475.42393 372150; 475.427 62582; 475.56072 25182; 475.69163 61407; 475.8393 25515248; 476.81628 38869; 476.97315 73773; 477.10947 42800; 477.18634 342; 477.71873 2664; 477.7405 1263; 478.10346 1605799; 478.11734 12218; 478.1655 9187818; 478.26091 3751; 478.35127 16756; 478.44287 6679; 478.52789 25042694; 478.7393 26115400; 478.7801 1040463; 478.86893 199348; 479.16615 38931; 479.44849 772; 479.5951 44043; 479.68359 19305; 479.71387 1904; 479.93262 101248; 480.09234 149532; 480.09717 2520042; 480.30763 4770569; 480.36794 45091; 480.40519 133846; 480.73601 55767; 481.2832 4013800; 481.37266 65558; 481.49303 1628101; 481.50442 45829; 481.72404 125210; 481.88489 679106; 481.99569 45622; 482.0663 58922; 482.1458 80651; 482.17197 899056; 482.73672 79986; 482.73753 7016700; 483.01947 65589; 483.10616 530580; 483.1595 2986897; 483.3676 400244; 483.50273 1495022; 483.52731 2690; 483.53011 131920; 483.81684 8939; 483.93216 24467; 484.53512 29685474; 484.82439 1804246; 484.98875 8302; 485.30194 31182; 485.48381 29101; 485.49761 30831; 485.52268 559948; 485.7289 3935; 485.75731 65093; 485.82086 38667; 485.82597 2814565; 485.93757 40260; 486.42483 66454; 487.06972 4976; 487.10893 4142; 487.1738 48732; 487.18604 13674551; 487.24844 123775; 487.36706 39788; 487.62541 9578599; 487.67425 110890; 487.9108 8048; 487.9187 1481487; 488.12428 1975; 488.13907 27487; 488.17827 23403; 488.37461 9104; 488.40954 67977; 488.56513 1126696; 488.80368 444533; 489.2396 23686; 489.78886 8295; 489.80234 6537920; 489.86685 6888044; 489.87411 51688; 489.97641 9010879; 490.10375 36590; 490.12014 308012; 490.16171 4855214; 490.25739 3672535; 490.27272 39978; 490.29836 26543; 490.71232 442701; 490.71849 873561; 491.01026 73410; 491.09039 58626; 491.09065 2406; 491.33243 1442736; 491.35752 34868; 491.75502 21486; 491.78809 7947458; 491.90735 40972; 492.21587 6281; 492.31667 6245109; 492.44906 53772; 492.5175 24977269; 492.55348 35434; 492.68109 23804630; 492.68787 41176; 493.05438 31797; 493.14622 25629; 493.30026 7316010; 493.33649 3256; 493.38977 43729; 493.39129 90056; 493.79352 20101; 493.82274 6771197; 494.02671 25172; 494.63481 46742; 494.89791 6756; 494.97799 4783974; 495.09052 30020; 495.4613 2378; 495.50759 7811; 495.59726 547217; 495.76883 24969; 496.02256 8630052; 496.07177 29319005; 496.18111 360352; 496.60711 7680; 497.23275 7299; 497.3097 943683; 497.59329 18297; 498.38847 1680511; 498.48317 39679; 498.5053 22100; 498.60873 8201; 498.98074 61379; 499.38105 1684197; 499.66003 7100512 +<5, 4>: 0.8355 39101; 1.02421 171187; 1.22078 1747476; 1.61936 329463; 1.79062 32946; 1.8737 30580; 2.18368 5766088; 2.59046 1759584; 2.59376 890328; 2.6957 1304560; 2.74024 158988; 3.03492 128999; 3.37792 18489; 3.39069 34994; 3.46183 19581; 3.48896 417465; 3.69836 36070; 4.05084 69077; 4.06329 46176; 4.31256 52428; 4.43149 27682; 4.45327 2525; 4.8185 280008; 4.88407 74820; 5.16913 73605; 5.28794 576706; 5.84015 3622621; 5.88104 1778885; 5.89314 23285; 6.36127 4532; 6.4118 6590; 6.77106 27741962; 6.90664 67714; 6.92367 2914; 6.93402 18308069; 6.98911 2630362; 7.18 2389968; 7.3449 124083; 7.46875 21971; 7.58038 42723; 7.64901 7955; 7.77023 1452159; 7.93632 954; 7.97666 312056; 8.3445 725; 8.36774 62505; 8.54672 3655391; 8.66391 14576; 8.83479 1570101; 8.91788 147961; 9.03846 662327; 9.10053 28142; 9.1506 1408183; 9.19778 1584295; 9.23549 73132; 9.55947 1829903; 9.59881 25508143; 9.80783 991524; 9.91053 1884910; 9.9625 75651; 10.14306 18792; 10.31294 77139; 10.58765 35000; 10.74222 77428; 10.75144 28675487; 10.79088 20453; 10.91081 819061; 11.26669 1148912; 11.427 20341; 11.58623 50357; 11.77535 44194; 11.82575 7123813; 11.83327 112119; 11.90523 58969; 12.13784 46540; 12.31848 1449; 12.32078 24735; 12.3581 39196; 12.6135 7451222; 12.69734 14495713; 12.70573 46013; 12.85057 27293; 13.02864 76633; 13.09309 30153; 13.1697 1832314; 13.61025 54474; 13.62505 3398; 14.23001 43467; 14.82925 46866; 15.01595 495430; 15.10866 138651; 15.1506 443077; 15.45389 26203; 15.66152 2893; 15.81539 4071870; 15.89806 1762; 15.92708 5792297; 15.95494 546; 16.27975 6754065; 16.28008 71137; 16.51519 3465264; 16.89088 4779785; 17.21386 175443; 17.2749 27892; 17.40708 2841437; 17.56024 77636; 17.62087 1600781; 17.84357 1345800; 17.87112 99552; 18.0401 4627; 18.52364 78199; 18.5627 75255; 18.57572 7427; 19.31507 155376; 19.38764 43433; 19.54169 1672977; 19.78452 668425; 20.02397 27100; 20.09578 7426; 20.10237 10054; 20.14378 179370; 20.41093 8696487; 20.55661 151818; 20.55899 22678237; 20.77005 23414; 20.98979 392121; 21.00957 28337; 21.40268 9802301; 21.42537 6385987; 21.52773 1673289; 21.70338 1485456; 21.80293 389610; 22.15441 29988; 22.30611 30952; 22.61216 25375972; 22.8151 7425425; 22.92372 4381899; 23.30585 1318146; 23.33655 9761975; 23.41822 47724; 23.43204 76246; 23.43484 919248; 24.25438 622177; 24.29107 1312000; 24.41899 7431713; 24.84478 3442; 24.94697 4802; 25.21527 6165310; 25.44453 5126; 25.67437 7152239; 25.68571 38711; 25.89021 3324820; 26.057 57620; 26.33243 20459; 27.62564 256307; 27.84685 9414; 28.21356 6467572; 28.22546 5206; 28.56555 44940; 28.74813 7998025; 28.75706 3713969; 28.99236 13600; 29.46006 593706; 29.6057 24924; 29.9315 4672568; 30.00731 24729; 30.03472 9108; 30.21888 1956169; 30.6996 26053; 31.25676 8988; 31.4182 49739; 31.65013 3818; 31.65527 2241950; 31.7003 1318049; 32.568 24156; 32.62481 36051; 32.65374 7701; 32.65463 562500; 32.93976 8185992; 33.14386 819; 33.34102 20200; 33.72204 958566; 33.74434 88860; 34.04314 6563083; 34.20075 3569358; 34.28075 8571; 34.38947 35222; 34.68019 167599; 34.71438 3963536; 34.88028 34036; 35.22138 1935494; 35.55625 2095385; 35.75433 998987; 35.78138 4892785; 35.87671 4388916; 36.0982 38751; 36.13311 1742; 36.27924 873184; 36.80895 4810281; 36.97401 149682; 37.17604 33862; 37.18749 524; 37.32728 3845060; 37.47199 117671; 37.50979 3220; 37.5394 31885; 37.56558 7672; 37.86198 27478; 37.96855 9479; 38.18923 6024; 38.67064 7446; 38.92271 125481; 38.98586 5607709; 39.06328 4433176; 39.23824 51496; 39.25821 9608506; 39.34544 37172; 39.56688 2159308; 39.58481 2299382; 39.7486 8775; 39.90405 1473661; 39.96975 76883; 40.19154 167670; 40.41763 2099969; 40.76174 1459843; 40.82899 1009536; 41.02966 47835; 41.05471 1528; 41.82861 3948369; 41.86681 116233; 41.94618 57750; 42.10888 1866025; 42.37316 3215504; 42.73996 1549007; 43.08956 991220; 43.15585 34051; 43.15673 29144; 43.17 35672; 43.41573 47833; 43.69281 579717; 43.71108 15287; 43.71517 1419; 43.92458 8735; 43.9452 28328; 43.97209 26530; 44.07167 46981; 44.49795 5865570; 44.62336 28568; 44.91625 4837890; 45.11168 3818; 45.51286 39427; 45.54127 4862823; 45.55247 62926; 45.55625 9747; 45.98285 491356; 46.01252 3989; 46.14421 2513640; 46.22972 2487702; 46.25381 34663; 46.55159 28099; 46.65013 30379; 46.69474 608; 46.83452 18050; 47.52307 2785892; 47.64445 759113; 47.85911 702558; 48.04297 8012; 48.25329 5331; 48.48567 11847; 48.50593 36934; 48.74036 45063; 48.74372 15089812; 48.87332 1194373; 48.93001 33188; 48.99208 20453; 49.11296 1704768; 49.60914 61725; 49.74116 695370; 49.84849 68932; 50.10067 78517; 50.18548 26969; 50.46608 1443448; 50.60628 7454588; 50.61562 69479; 50.70117 63985; 50.9047 3154; 50.96394 19247; 52.45322 8092488; 52.48473 1122014; 52.57195 11836; 52.75334 484881; 52.76083 7360; 53.07122 17049340; 53.10626 4763; 53.17475 22101; 53.25883 842326; 53.43708 23742; 53.45632 368894; 53.45893 5258; 54.0588 951624; 54.17701 46704; 54.19954 5151; 54.44452 29448; 54.57942 1188112; 54.6701 5251392; 54.76478 8321; 54.90495 9261; 54.93321 66197; 54.94174 1130; 54.98067 46845; 55.17731 39735; 55.4236 4354567; 55.44273 1959359; 55.62026 12542; 55.67667 18813; 55.87484 16650; 56.12682 4966807; 56.13678 14624775; 56.18669 46145; 56.24456 605740; 56.28826 3707111; 56.60461 5681; 56.83562 50809; 56.94308 7182; 57.04771 33347; 57.32098 1017; 57.90522 4568; 58.36105 5237; 58.38653 775657; 58.41818 1181450; 58.71065 72133; 58.73222 2022284; 58.92186 3367131; 59.1822 1017612; 59.25966 103044; 59.54339 27471; 59.58131 28482; 60.23295 63763; 60.52981 65073; 60.75027 20554; 60.95752 2364909; 60.9732 8643; 61.13859 118209; 61.21799 20889; 61.34256 47460; 61.54361 1169053; 61.60868 25814; 61.62075 51599; 61.63026 76232; 61.79096 9301; 61.89752 8705388; 62.18959 8703; 62.35928 6179326; 62.36613 54788; 62.48497 1397139; 62.90086 808385; 62.97957 2336; 63.09676 7074974; 63.30532 501485; 63.35827 19279065; 63.55378 173631; 63.60749 887979; 64.35946 6153; 64.52785 2833988; 64.7236 1234311; 64.86958 995762; 64.89478 3268; 65.02263 54339; 65.40519 236883; 65.50658 50999; 65.80644 1036417; 65.80962 78527; 66.02851 5757; 66.13039 52965; 66.19931 15415; 66.21162 121799; 66.41276 76462; 66.55677 136935; 66.67583 9382; 66.69309 9657; 66.98736 6751; 67.21716 1056050; 67.28829 29228; 67.76459 573521; 67.76977 7772; 67.84741 1694074; 67.85694 28252; 67.90385 1154658; 68.2816 16945; 68.65179 4387062; 68.68598 90486; 68.69704 1660; 69.30441 75392; 69.32235 159637; 69.36086 36800; 70.48568 2820; 70.75625 42929; 71.18651 1488447; 71.48915 61997; 71.55827 29264; 71.73495 1988; 72.05146 34400; 72.2189 25599; 72.58009 1421609; 72.97122 19021; 73.26426 6529603; 73.34404 45138; 73.40309 50044; 73.42234 3755413; 73.58433 45392; 73.87323 23423; 73.95845 39891; 74.52122 16957; 74.70729 2180; 74.77866 24558; 74.91854 982146; 74.94986 443017; 75.54012 21649; 75.54471 888412; 75.83092 10854; 76.02538 26971; 76.16583 20888; 76.32586 1984469; 76.36313 24671; 76.51221 24072250; 76.61267 1825992; 76.85691 3215616; 77.36546 16883; 77.57571 44324; 77.78166 6284461; 77.85953 7744; 77.98461 1987539; 78.0608 3508; 78.22007 3961795; 78.28389 353236; 78.59287 46005; 78.85989 35928; 79.17139 76501; 79.19621 35818; 79.19643 210064; 79.62299 48019; 79.7005 29920; 79.73787 17791; 79.87334 700042; 79.97805 28457; 80.19288 3263628; 80.25857 92177; 80.72044 65616; 80.72219 26889; 80.93344 6442122; 80.95717 333204; 81.07981 49114; 81.11069 810420; 81.5489 3791; 81.57549 17709866; 81.61764 5646654; 81.78777 6409065; 81.89714 8470; 82.33333 6649600; 82.80094 96306; 82.80959 3282951; 83.08529 2843707; 83.13423 21636; 83.23775 10114; 83.33002 37076; 83.3516 29290; 83.40583 2896; 83.42435 175070; 83.6253 20902802; 83.68337 48488; 83.75868 67554; 83.79128 61176; 83.86682 1114274; 84.02614 4103859; 84.12575 5084; 84.2862 1338; 84.41593 41812; 84.54662 70163; 84.56671 23932; 84.97253 9678; 85.26217 23603; 85.33011 5227774; 85.78507 16030; 85.90057 7698; 86.19972 1365445; 86.42203 183824; 86.47338 4524623; 86.56186 65033; 86.58593 3844984; 86.64896 3988; 86.95078 1562132; 86.99802 6345; 87.08623 3972; 87.16097 84147; 87.18903 24897; 87.26219 2027607; 87.35619 11418481; 87.47346 572167; 87.47796 4695; 87.53088 28699; 87.75386 242844; 88.26699 916278; 88.33158 894274; 88.77489 3914664; 88.79055 811493; 88.91177 82508; 89.20726 53364; 89.34487 595009; 89.40593 24710; 89.56027 56415; 89.8928 9367400; 90.43819 5530106; 90.54722 17015; 90.94947 52539; 91.20046 1785428; 91.43317 1859927; 91.47478 4941608; 91.64988 1191701; 91.66102 4036094; 91.86722 64642; 91.87743 9067; 91.95685 140582; 92.22503 1292706; 92.45628 4150293; 92.58677 8827139; 92.60918 28104; 92.75032 9177; 92.9051 3495; 92.95038 373015; 92.96824 5085; 92.99968 50; 93.13754 907705; 93.17686 6627; 93.30651 1512929; 93.38502 869; 94.22199 26049; 94.29384 1202864; 94.46137 73244; 94.55684 94786; 94.79516 35841; 95.14834 8029; 95.23847 2483388; 95.36527 20612145; 95.41598 9072; 95.59186 23108; 95.64413 9145; 95.68196 79612; 95.78513 72269; 95.9743 157213; 96.08326 4991618; 96.12008 4404; 96.21208 39302; 96.32348 1350; 96.32906 4676187; 96.35935 1672613; 96.56223 27527; 96.69743 37578; 96.78965 29888; 97.33689 100860; 97.42864 5445997; 97.85654 4938; 97.94676 118598; 98.01315 31779; 98.4371 518266; 98.63348 5329; 98.68769 5579757; 98.72561 53737; 99.42342 17034; 100.51638 1906925; 100.63207 148992; 101.15028 2308736; 101.56201 331089; 101.71062 21776; 101.71419 1582; 102.17374 63141; 102.31906 5926743; 102.67916 8603; 103.10307 1717465; 103.48742 67630; 103.63686 733701; 103.69282 4127379; 103.77973 3946784; 103.87751 1897397; 104.04163 75893; 104.15074 73462; 104.5163 12190; 104.82188 627529; 104.89632 46073; 104.98842 1719461; 105.15203 6271027; 105.2029 27938; 105.32958 64214; 105.35404 12829095; 105.69697 77696; 105.94689 40307; 106.23159 24769; 106.33561 1611761; 106.42809 37406; 106.59192 39955; 106.65925 71921; 106.89309 5574; 107.15658 45400; 107.22224 5212128; 107.3913 1654492; 107.43335 32275; 107.64997 2157335; 107.72385 64477; 107.73952 24585; 107.88134 1248670; 107.96762 359927; 108.0026 8607378; 108.21236 54138; 108.43763 30; 108.47116 4140; 108.47154 3087287; 108.72546 25718; 109.16026 2266999; 109.40045 7433; 109.42058 594774; 109.56431 22347363; 109.73238 925935; 109.99643 1703632; 110.03843 10198; 110.04637 6140; 110.24387 146230; 110.53463 3136; 110.62294 968873; 110.75181 76798; 111.30009 3389039; 111.55791 27771; 111.77192 1313801; 112.09273 755696; 112.20744 3133734; 112.53205 23443; 112.54607 242909; 112.55299 71893; 112.64653 25387794; 113.03475 34441; 114.17813 177496; 114.26994 4796655; 114.4614 958066; 115.21456 1401821; 115.33062 3312; 115.44981 928267; 115.54244 29733; 115.78495 3538; 115.92512 7805; 115.97627 4338389; 116.11517 46876; 116.16068 7106435; 116.34343 23593; 116.35326 1989109; 116.62226 7092989; 116.68998 44451; 116.71758 4847346; 116.78236 7439; 116.79445 131360; 116.98116 4185; 117.11935 15351; 117.33546 4988540; 117.45108 4012254; 117.47711 322679; 117.65664 62312; 117.7857 278384; 117.97554 78186; 117.99169 3968972; 118.10236 4439; 118.37166 7612; 118.83032 3750113; 119.14411 155563; 119.21412 7379227; 119.29042 56878; 119.29252 1561657; 119.30528 507587; 119.31015 52559; 119.85391 12070; 120.13894 58619; 120.3977 22059; 120.44391 15088; 120.72477 143126; 120.95402 56447; 121.03725 1129978; 121.28953 54796; 121.38734 1391380; 121.46568 724332; 121.61842 288411; 121.62905 1784002; 121.80494 3586430; 122.05804 3894; 122.17896 24423; 123.33528 2320; 124.15064 35571; 124.28553 7110; 124.48909 1496646; 124.59173 32193; 125.08704 29332601; 125.23028 1528928; 125.61423 75339; 125.74111 1076690; 125.80247 21371; 125.81484 2903; 125.94504 21061; 126.48746 1543817; 126.68165 15308; 126.79415 25056; 126.89576 63568; 127.11193 75339; 127.42514 4825888; 127.49384 88029; 127.62704 26610; 127.97875 152170; 128.32535 21784; 128.36717 16570; 128.42568 4859; 128.42848 65851; 128.54364 1833814; 128.54541 27587; 128.59146 20411; 128.8774 85073; 128.98713 25819; 129.16188 73632; 129.51456 169257; 129.8316 12508; 129.9391 4401; 129.99923 40834; 130.04183 11348; 130.04364 35320; 130.11823 22155; 130.42682 13163; 131.03003 10526; 131.11422 9698906; 131.2261 45103; 131.59511 67705; 132.13758 170234; 132.27382 40901; 132.47443 4635; 132.83443 153953; 133.11664 69671; 133.53447 69217; 133.80002 33252; 133.8264 846549; 133.91946 78680; 134.81624 68477; 135.02425 42484; 135.20395 64295; 135.24526 3860; 135.25209 48; 135.32447 56220; 135.33459 48828; 135.84457 25466; 135.84469 33114; 135.85917 29664120; 136.02903 65288; 136.07923 881321; 136.16793 9206009; 136.62785 4748; 136.91104 1596953; 136.95767 1016096; 137.00917 4028; 137.07986 7374; 137.23782 4013; 137.56072 9779004; 137.62727 79944; 137.6487 1523; 137.88178 1958587; 137.92388 5113218; 138.21342 27104; 138.33333 60503; 138.35548 450086; 138.38444 1462411; 138.46138 77855; 138.46155 3930242; 138.52144 43921; 138.63369 20239; 139.03633 13436; 139.22764 4630983; 139.34365 2652162; 139.56156 6131; 139.76817 55141; 140.05379 1626; 140.53762 567; 140.59279 1728869; 140.78884 8468; 140.98495 4954993; 141.03535 7538; 141.07084 397696; 141.1914 7067; 141.41014 550680; 141.57009 4740; 141.60484 894399; 141.68128 8642; 141.72704 1279630; 141.75803 37162; 141.9529 29271; 142.11041 2795308; 142.31086 68079; 142.35491 42051; 142.41659 59945; 142.45165 59926; 142.53364 11889; 143.04481 4313313; 143.0536 8574; 143.15075 77828; 143.30303 2375370; 143.35293 52881; 143.5394 40331; 143.88905 63629; 143.89439 4912; 144.01208 6454733; 144.09273 4743; 144.10983 24681; 144.51747 24040; 144.7578 1230869; 144.84208 37074; 144.89172 77946; 144.96684 41617; 145.00231 288623; 145.04055 466719; 145.3517 2719; 145.36225 25506713; 145.39462 4008200; 145.55229 4884; 145.59219 40770; 145.75761 59386; 145.964 3719885; 145.97849 26396; 146.07158 25660; 146.31748 497; 146.36645 1209973; 146.38993 522304; 146.39962 54808; 146.46938 7422; 146.58627 20061257; 146.92398 686325; 146.99932 192700; 147.22609 2513; 147.29836 1515448; 147.50243 4598823; 147.63286 56946; 148.00972 938608; 148.21209 43540; 148.25181 12866; 148.35908 44488; 148.82248 108979; 149.00943 960; 149.32241 73673; 149.53941 1741617; 149.75963 4747; 149.79862 45597; 150.00009 559788; 150.22512 2321; 150.5079 7856379; 150.53805 51731; 150.56287 126323; 150.80494 4137760; 150.85409 2535; 151.16226 2531738; 151.18066 36009; 151.39413 3085445; 151.47057 48581; 151.5155 49163; 151.65242 95023; 152.05154 23126; 152.10502 95141; 152.11308 25181; 152.1202 21985; 152.18729 16025413; 152.22485 20548; 152.46241 16666; 152.91805 20148; 152.97196 7718; 153.27748 2432; 153.36431 61226; 153.44659 195310; 153.6057 3897172; 154.09959 25247247; 154.1255 566589; 154.12735 4301963; 154.28934 76336; 154.46446 29997; 154.89606 5370; 154.96312 63655; 154.98369 22291911; 155.05875 4901802; 155.11356 40857; 155.23085 180235; 155.26939 580799; 155.39274 77338; 155.47127 47411; 155.52304 221371; 155.70992 1337977; 155.96812 8571; 156.7464 7481881; 157.05845 58736; 157.19332 38771; 157.70759 122840; 157.72729 40736; 157.76584 21769737; 158.06495 59955; 158.10864 617009; 158.31119 44222; 158.55329 7828658; 158.67429 26039; 158.69274 718147; 158.84656 139536; 158.89139 9119; 158.91676 3560996; 159.03637 1029; 159.20233 7108; 159.33259 134011; 159.48216 24493; 159.89165 4678; 159.9695 77008; 160.37259 26671; 160.64912 28381; 161.07178 4104029; 161.17199 26076; 161.29747 119560; 161.45096 35021; 161.67428 1316333; 161.6792 17742340; 161.91319 462961; 161.97712 4595; 161.98714 1817613; 161.99093 1917295; 162.17644 1709085; 162.64244 5456; 162.6532 3497; 162.74554 71001; 162.88626 331543; 163.06626 9348611; 163.09245 68382; 163.30476 14320; 163.60087 40541; 163.62015 1794414; 163.89349 983614; 163.97571 24899; 163.97728 30154; 164.06093 159463; 164.49814 1200378; 164.53738 10003; 164.64553 441; 164.83652 37624; 164.97763 7910741; 165.05519 57405; 165.13844 1445024; 165.15691 3861158; 165.16332 63513; 165.20339 10551085; 165.37808 2531; 165.45453 6577; 165.69189 1991517; 166.17879 16862; 166.18572 1110056; 166.75646 74381; 166.84785 3963920; 167.27746 1269199; 167.41635 4127925; 167.54771 51254; 167.92743 3806; 168.41473 38568; 168.67356 43895; 169.31394 9697967; 169.41712 49434; 169.60596 265637; 169.63259 9674; 169.90011 4211522; 170.37388 118268; 170.62966 77883; 170.63053 47766; 170.89389 1033802; 171.21966 3467; 171.41951 4158549; 171.42865 30180; 171.53406 1600; 171.54481 22859; 171.5706 39097; 171.76501 42011; 171.79509 10617; 171.85935 1060287; 171.86542 19146; 172.4585 151753; 172.53437 61243; 172.56701 62391; 172.61557 11201; 172.77809 461614; 172.82292 7051; 173.21446 29431; 173.29661 701681; 173.51018 1409461; 173.55265 1808570; 173.63991 27032; 173.85752 54225; 174.33091 841348; 174.43482 4129; 174.44894 1341033; 174.69107 51293; 174.70815 3164837; 175.16753 16446; 175.22631 8743547; 175.32285 7689461; 175.4152 3699452; 175.5324 35739; 175.7602 27122; 175.78791 7305; 175.86564 6562923; 176.13689 1084114; 176.64126 951887; 176.84061 111704; 177.50331 25641589; 177.84469 36472; 178.01971 45431; 178.2971 59048; 178.35345 8984; 178.42509 1401504; 178.4517 703090; 178.9262 5150; 179.14196 157392; 179.22104 9980; 179.24111 34194; 179.29369 2963332; 179.81781 62087; 179.87973 8998003; 179.96254 2785417; 180.17302 125177; 180.32964 62126; 180.60232 1184029; 180.64111 362458; 180.65468 4090649; 180.67993 199937; 180.89467 108792; 181.34451 2157; 181.36129 1437745; 181.42748 1202338; 181.4892 11012; 181.49697 27470; 181.5396 35479; 181.70582 2252337; 181.84408 4936737; 182.00521 72097; 182.03928 73447; 182.04278 20105; 182.04557 4910193; 182.13542 1644; 182.28008 2152; 182.71644 38945; 183.29333 75075; 183.52396 62117; 183.54753 194254; 183.6904 64013; 183.99831 1421849; 184.16857 5657514; 184.44104 2771444; 184.46137 67823; 184.68871 4439282; 184.76146 36643; 184.93155 2255703; 185.10881 12191; 185.15405 8787; 185.1968 393482; 185.48401 5076418; 185.593 583404; 185.8282 2978261; 185.93378 1431385; 186.21409 32427; 186.73411 2872; 186.81786 42671; 186.84497 502316; 187.6248 6179; 187.62582 2881420; 188.08623 73080; 188.14926 7938623; 188.16655 2445967; 188.31818 9457013; 188.37033 8714; 188.89946 33389; 188.98878 4926728; 189.28298 1385178; 189.71925 49355; 190.04104 492371; 190.15132 878; 190.30434 2280033; 190.60986 692340; 190.77807 38111; 190.83653 23068; 190.84036 36629; 190.87225 2151065; 190.94174 7647; 191.08195 77352; 191.60794 96658; 191.71948 2736972; 191.73972 506; 191.76036 3822; 191.85864 50141; 192.94862 14726; 193.13522 38095; 193.3926 63589; 193.4768 39058; 193.55728 7260206; 194.11633 2282; 194.1516 51810; 194.55508 11130; 194.89344 2928939; 194.94584 3723566; 195.0488 60768; 195.20488 52533; 195.29629 2954362; 195.41311 61377; 195.7669 72935; 195.86095 73942; 195.90058 23436; 195.95163 2456056; 196.01826 189876; 196.119 1099976; 196.2978 2028409; 196.393 100574; 196.69201 122176; 196.82018 1875609; 196.84884 44612; 197.21333 91138; 197.56722 4143; 197.70089 100963; 197.78136 712028; 197.90899 643377; 198.10473 179727; 198.18645 932248; 198.578 482721; 198.71766 41591; 198.75861 31638; 199.17422 6382248; 199.19724 73240; 199.35864 11049; 199.41004 40116; 199.77569 5211067; 199.89897 5416; 200.0437 2770501; 200.10459 52628; 200.13751 67445; 200.19819 52868; 200.2495 2480; 200.3879 21988; 200.40037 194846; 200.47196 694888; 200.58801 74686; 200.76587 13994315; 200.7954 21671; 200.97207 512655; 200.98052 147563; 201.16711 64319; 201.37198 21008; 201.45374 3022; 201.64798 540; 201.77079 147268; 201.79034 113979; 202.17141 4630; 202.1792 17271; 202.24695 256254; 202.3844 1428756; 202.43236 7150719; 202.7197 2252708; 202.73282 387336; 202.84817 453730; 203.44878 6098863; 203.60395 117711; 203.61271 3995; 204.01173 9883; 204.04739 651; 204.52437 57795; 204.56805 660019; 204.57171 39340; 204.81908 35529; 204.8414 2756582; 205.05966 77968; 205.49253 990088; 205.54019 26621; 205.83867 511881; 205.956 54914; 206.20093 59346; 206.49467 59307; 206.60108 3765200; 207.20687 2077; 207.22826 55003; 207.39559 4142376; 207.42784 83738; 207.70011 2998473; 208.13568 384036; 208.15523 435067; 208.1632 596; 208.22825 20932; 208.3022 4956304; 208.46915 1368583; 208.53168 2874389; 208.68377 25446; 208.7898 11110728; 208.87087 25080; 209.04301 6431234; 209.41191 6292836; 210.20003 362109; 210.44895 3533477; 210.62584 23610; 210.89439 4893389; 210.90481 1638286; 211.43279 1295441; 211.45825 8445; 211.56632 8192313; 211.61073 1029812; 211.94104 971412; 212.01059 138555; 212.21445 9854; 212.2343 34392; 212.29056 17448; 212.40527 952054; 212.50398 65523; 212.63478 654125; 212.67328 50754; 212.72817 28217; 212.76866 68770; 212.82829 478468; 212.93806 7316340; 212.94888 1893; 212.9592 628996; 213.5223 119571; 213.61737 16114; 213.80379 6971; 213.87787 964371; 213.87831 9610; 213.90456 41049; 214.02359 3356838; 214.07748 42; 214.26842 311070; 214.35825 11222; 214.48129 3832039; 214.96 180290; 215.01767 359250; 215.0348 71420; 215.07993 12639; 215.09632 12327; 215.19061 184588; 215.32578 39276; 215.58535 34545; 215.64967 26022; 215.78127 64874; 215.83174 1908769; 216.08639 262089; 216.28944 14121269; 216.33611 11448883; 216.51113 1657277; 216.52644 278107; 216.78671 1715600; 216.83906 5202; 216.94722 8287; 217.08862 13738435; 217.42901 3118550; 217.43893 4692306; 217.46076 79218; 217.58843 131; 218.0551 9769; 218.09846 1364394; 218.14941 8212; 218.23451 11994987; 218.58828 14370; 218.62157 22455; 218.70909 186062; 218.74201 67103; 218.80223 5601669; 218.85432 33545; 219.13661 59669; 219.34915 1774081; 219.58799 1077; 219.82388 16513; 219.95688 77853; 219.97605 43930; 220.09029 25905; 220.27341 39345; 220.28829 70491; 220.32165 3952785; 220.33899 23918; 220.70867 5245832; 221.04435 36974; 221.53022 8361; 221.74763 1323368; 221.79905 4733; 221.80834 322943; 221.85298 5457; 221.85622 3429928; 222.10427 606; 222.35413 5980099; 222.47986 37099; 222.51429 62138; 222.74476 29209; 222.75396 57962; 222.89665 24361; 223.04192 72220; 223.06892 1518612; 223.83175 937160; 223.83686 4064664; 223.90928 28502; 223.9891 22759108; 224.028 5916; 224.07163 6992516; 224.31788 8135141; 224.60152 8998; 224.8871 47604; 224.9088 27127; 225.10808 47695; 225.57225 3989918; 225.71101 79896; 225.81674 839536; 225.91125 279321; 226.18688 47473; 226.2421 78556; 226.55491 1195; 226.68422 1858034; 227.00727 9558; 227.94872 662; 228.19367 3794650; 228.37277 167243; 228.43046 44143; 228.48244 225032; 228.52024 55544; 228.8221 240775; 228.90412 5241207; 229.27782 59406; 229.35571 3784699; 229.77357 2163760; 230.12478 1380244; 230.15746 608787; 230.22361 310789; 230.44102 42495; 230.59713 1430122; 231.0577 2425; 231.36951 22144; 231.68146 68888; 231.69245 3125; 231.75428 62944; 231.91415 62008; 232.1955 5758; 232.25033 4026064; 232.37979 28343; 232.45343 1089189; 232.64939 1075033; 233.0394 63387; 233.35343 3934; 233.45662 420956; 233.54479 6293672; 233.63389 4248665; 233.81011 76930; 234.48879 19934; 234.54884 352737; 234.57325 98334; 234.6923 52083; 234.73513 14873; 234.8473 37191; 234.97506 8943; 235.01029 5941; 235.21742 79025; 235.29051 52906; 235.29316 126364; 235.35604 107240; 235.35895 1979942; 235.68834 149498; 235.92184 3119294; 235.94695 38295; 236.31454 17574640; 236.57664 19127; 236.69786 402536; 236.89746 4450284; 236.99759 35421; 237.626 21576193; 237.63338 1217590; 237.7686 352922; 237.9578 3700496; 238.06634 657672; 238.3851 529597; 238.41658 77172; 238.44209 308914; 239.07107 38815; 239.41082 20516; 239.45598 24800014; 239.67052 39544; 239.92863 31246; 240.28384 4868492; 240.51838 1009608; 240.58303 147275; 240.69793 65568; 240.79269 101831; 240.80794 1650777; 240.80899 26618695; 241.04656 187173; 241.29464 3378; 241.36918 31183; 241.47487 3441747; 241.83347 7045; 241.93406 7825070; 242.14051 122161; 242.35291 3767457; 242.54538 956678; 242.9294 29409; 243.03253 57222; 243.03581 7956; 243.25649 42898; 243.44624 20067; 243.59512 6247744; 243.68367 8723; 243.78336 9330674; 244.0484 43665; 244.34507 884; 244.47566 198579; 244.56761 9783; 245.02214 62578; 245.39456 1102452; 245.43066 32141; 245.53554 2992447; 245.65306 42024; 245.9279 48663; 246.23172 633136; 246.48162 56021; 246.91433 9332205; 246.98449 1453311; 247.02159 7248060; 247.50199 1017290; 247.61871 57486; 247.63322 3388133; 247.93531 1495661; 248.33924 916265; 248.66393 1790616; 248.78968 21958; 249.52726 3528368; 250.34557 508063; 250.46046 21804; 250.51364 3375811; 250.93968 29302; 251.44954 39869; 251.46389 1730030; 251.47577 103133; 251.74285 75589; 251.97768 72966; 252.302 39197; 252.65032 1398751; 252.80042 7640; 253.13226 27144; 253.15988 27160; 253.79546 26166; 253.89311 1486033; 254.05456 145122; 254.21747 889982; 254.38177 15862480; 254.42369 46695; 254.58878 8666406; 254.6398 1476143; 254.74326 79384; 254.76625 13971; 254.77844 3120; 254.78062 4261066; 254.89433 27540; 254.99053 300625; 255.09696 27055; 255.19592 11088; 255.22641 1604829; 255.2298 73587; 255.23601 64123; 255.28105 3641210; 256.00319 3478942; 256.30404 6039; 256.34703 60235; 256.96399 31733; 256.97535 7817; 257.46148 7208; 257.94315 51171; 258.12377 2589; 258.12512 491434; 258.34492 271922; 258.37287 66385; 258.46432 75204; 258.73496 18482; 258.97469 1867928; 258.99287 2988241; 259.04546 21164; 259.14381 6091439; 259.15836 5196; 259.20982 1299876; 259.21727 2970; 259.28847 3136; 259.55381 78211; 259.73458 70961; 260.15153 57426; 260.25946 4396; 260.42078 71387; 260.70272 401332; 260.71614 49850; 260.97114 5239367; 261.4678 25302; 261.69005 1773994; 261.74467 40105; 261.83636 1530759; 261.83742 9693; 261.92782 27130; 261.93143 67699; 262.01029 3332843; 262.35251 1282401; 262.36045 65624; 262.54884 3610609; 262.66151 303136; 262.69723 1871; 263.18355 1312615; 263.21588 781574; 263.4408 8547135; 263.47368 23544852; 263.53973 66879; 263.68871 46571; 263.88949 6035199; 264.31963 4335006; 264.40458 31430; 264.53477 259; 264.63832 7113132; 264.81284 70099; 264.88843 597403; 264.98109 46811; 265.06909 24554; 265.08251 21130; 265.28878 58144; 265.32041 4208; 265.34721 8640121; 265.62279 1601213; 265.64543 24858; 265.68079 5687448; 265.74461 28529655; 266.03692 1645094; 266.14824 68290; 266.25101 366445; 266.35918 5145912; 266.47762 48194; 266.74853 25419; 267.06632 44606; 267.18726 50659; 267.57482 69608; 267.70449 20462; 267.73459 2540920; 267.89704 5250; 267.92281 9141; 268.09381 78049; 268.38619 4346; 268.41024 1308244; 269.06533 17221; 269.12768 36770; 269.4534 945793; 269.67616 27520; 269.87591 35563; 270.0602 6475; 270.24384 8011; 270.25828 1222717; 270.28479 9516550; 270.31146 4831; 270.46161 7704; 270.80783 5428; 271.44601 44388; 272.13399 25805; 272.18536 19513; 272.38726 9331; 272.45367 96617; 272.7662 3598524; 272.8861 25403; 273.04507 40664; 273.14195 11967; 273.30662 29396; 273.51825 12463; 273.54321 6946; 273.58367 57599; 273.77346 4393936; 274.00459 22209; 274.15046 38047; 274.24547 2933067; 274.48009 453; 274.50314 40744; 274.51314 9863484; 274.54345 60228; 274.67691 9784837; 274.78306 21082; 274.95509 4430251; 274.98139 2330; 275.15323 7441467; 275.23835 49982; 275.31841 799814; 275.33074 27610; 275.33143 6741; 275.49232 78960; 275.50526 1532730; 275.69852 4359301; 275.75765 22261; 276.18634 55478; 276.2714 1376641; 276.30671 3594733; 276.51995 1982964; 276.69271 6633; 276.70477 602358; 277.03802 6115726; 277.11085 59937; 277.20274 4390798; 277.33149 3631931; 277.98894 61188; 278.05787 1377310; 278.11409 7281; 278.34146 1624724; 278.42265 755393; 278.46854 28787; 278.4856 566084; 278.51251 37847; 278.88735 4772240; 278.8893 7758; 278.92433 1403; 279.28912 8070379; 279.37415 1598816; 279.42853 5933175; 279.95321 1871369; 279.97684 1674924; 279.9777 79174; 280.08115 79286; 280.10247 26112; 280.67087 1961; 280.72217 2197; 280.73379 1158383; 280.90313 74832; 280.9706 4083749; 281.01048 67077; 281.04283 5253; 281.27481 51974; 281.49443 83627; 281.90195 10351; 282.30297 24507; 282.31444 50359; 282.75749 69391; 282.78507 1981722; 282.92795 3882700; 283.2457 1096542; 283.27829 8205; 283.56341 7979105; 284.14788 14593; 284.41641 483724; 284.53387 8296869; 284.53533 1936529; 284.53694 607403; 284.63871 29157; 285.04425 24091459; 285.41965 86482; 285.50905 545023; 285.53714 554313; 285.81802 71750; 285.89335 3002; 285.93457 34684; 285.983 20329; 286.15568 84270; 286.16248 31609; 286.33707 1990709; 286.64523 1804; 287.52998 198739; 287.53969 1733806; 287.65729 15014368; 287.72641 27186; 287.98867 71121; 288.03367 2313; 288.08322 20204; 288.09175 77214; 288.28775 30207; 288.29616 51498; 288.33249 22114; 288.37408 8897; 288.45204 1261652; 288.66772 24818; 289.0695 9404452; 289.09015 27474; 289.2627 913355; 289.48893 40853; 289.91567 4874; 289.96411 21049; 290.02904 909; 290.35896 3963366; 290.49843 190130; 290.64015 775640; 290.75657 78813; 291.49492 2726999; 291.6546 627; 291.75594 25078; 292.06714 2645347; 292.22976 4846070; 292.2393 107309; 292.3996 5541676; 292.4023 1568043; 292.41526 17201; 292.42132 4510975; 292.47328 4583255; 292.79831 7738; 292.95249 21205; 293.44691 72190; 293.48507 42022; 293.56627 66490; 293.71565 17376; 293.82751 3531909; 294.03229 2558466; 294.20571 867808; 294.2287 9311313; 294.2779 189495; 294.61289 1145496; 294.71435 53716; 295.14605 45792; 295.15936 1797876; 295.58476 17981; 295.85452 2193363; 296.1457 23702271; 296.40954 60070; 296.45445 29092; 296.71679 49517; 296.77255 78787; 296.95877 745810; 297.29134 1737309; 297.32565 15374; 297.52731 18302; 298.08022 71037; 298.35897 1723643; 298.78133 6267370; 298.97964 626883; 299.25877 1164588; 299.37633 24707485; 299.67544 23793; 300.29888 3020691; 300.44476 71621; 300.4457 84719; 300.51035 9755; 300.77951 976088; 300.90497 1044085; 301.07199 1804517; 301.54859 6048; 301.61618 29852; 302.6236 61521; 302.84127 1125; 303.98053 4246018; 304.12208 20388; 304.36223 1689812; 304.36861 21313; 304.69482 9086832; 305.31107 16852; 305.33768 871353; 305.3558 73844; 305.7583 157; 306.0128 70639; 306.14636 184902; 306.25345 6580; 306.26321 612293; 306.55359 60851; 306.58578 22146; 307.10906 20372; 307.18024 43569; 307.23856 2256069; 307.28916 6638; 307.46083 1096; 307.5531 7292841; 308.04024 51257; 308.05305 996; 308.14421 28610; 308.35668 25645; 308.38878 4758772; 308.57682 9292549; 308.69789 2280; 308.72302 24135; 308.90843 2813; 309.13933 33831; 309.22865 44543; 309.39021 742693; 309.55712 952135; 309.59276 76442; 309.63202 32671; 309.67254 41019; 309.8199 2538; 310.01044 7724238; 310.38477 24091946; 310.55461 13620; 310.92064 9952635; 310.96572 823181; 311.09069 11862; 311.25248 1082273; 311.31742 1664785; 311.33778 23357; 311.41928 89954; 311.48548 10653; 311.4864 245770; 311.49273 2372; 311.51305 1913074; 311.57938 67930; 311.75484 70721; 311.90813 11472520; 312.11294 7499675; 312.58922 23880; 312.7936 27081915; 313.25001 2774142; 313.32865 2879604; 313.38528 3261908; 313.56541 24520; 313.6514 1132823; 313.66994 16724; 313.71393 7604; 314.16292 5390342; 314.21605 5626992; 314.39247 53040; 314.44699 4107535; 314.67574 6145; 314.96685 3251; 315.09213 27123358; 315.21136 160986; 315.25269 1647; 315.44002 1630318; 315.71757 733222; 315.72285 1342502; 315.81413 766; 315.87412 15544; 316.84921 88755; 317.07907 795; 317.1076 3882878; 317.12423 20542; 317.22237 2145598; 317.59122 39092; 317.71466 28154; 317.77048 691142; 317.8441 34823; 317.86797 13526413; 318.03246 5263277; 318.04745 170981; 318.06279 937430; 319.07278 586162; 319.09923 14238; 319.13695 7744611; 319.22988 59185; 319.31729 29801; 319.48719 131432; 319.55647 2982995; 319.6934 1267843; 319.88119 3935368; 320.25185 40180; 320.25618 19889; 320.4458 3977294; 320.50302 23843; 320.56462 44373; 320.71456 34537; 320.74905 3540113; 320.77953 28451; 320.9568 684248; 321.19452 24528892; 321.33233 47678; 321.40215 9591; 321.54646 7048747; 321.8805 34819; 321.937 195036; 321.96722 42915; 322.09854 94224; 322.12888 636566; 322.17849 1309923; 322.29837 29222; 322.37086 1645946; 322.47328 2878; 322.90508 143755; 323.01212 1038198; 323.0279 1547610; 323.07744 45355; 323.15287 2698040; 323.15999 11204; 323.19059 36879; 323.53594 1464838; 323.78544 27833; 323.89533 52162; 323.94938 16180; 323.98843 8427; 324.00733 22886; 324.02881 1318669; 324.08607 6516; 324.51888 7920450; 324.67654 950297; 324.78138 7348168; 324.89145 5937; 325.03043 6971019; 325.16851 719197; 325.82811 43948; 326.09288 31970; 326.11285 95291; 326.27461 74410; 326.41596 5564871; 326.70657 62999; 327.0493 2281772; 327.08567 5681; 327.14294 69037; 327.14417 76133; 327.48235 1142539; 327.50362 8774; 328.13171 140073; 328.35644 59913; 328.42574 933; 328.47268 42129; 328.47596 38741; 328.60328 161366; 328.68765 1348292; 328.78918 927101; 328.79298 1486200; 328.92534 18791; 328.96 1938; 329.13221 2948664; 329.35864 89860; 329.60291 931709; 329.62903 21818; 329.75235 29202; 329.75806 2009673; 330.18026 342; 330.33792 495047; 330.37996 13235; 330.588 4576633; 331.14112 3652397; 331.20709 26135; 331.4532 35999; 331.50357 24306; 331.77997 162108; 331.95873 16998; 332.11941 31452; 332.39652 315866; 332.4662 4260891; 332.49079 668971; 332.68635 5785; 333.23905 1968682; 333.45869 21075; 333.71125 3162820; 333.71884 35468; 333.90209 224350; 333.99749 639926; 334.39508 34430; 334.44753 42188; 334.6076 35443; 334.79297 9653; 334.90593 6339393; 335.23638 9055; 335.24642 409792; 335.80538 322250; 335.84878 2318206; 336.52307 7954; 336.55798 47090; 336.70148 56494; 336.74765 7309; 337.11217 69309; 337.14259 46651; 337.284 9802; 337.54701 886; 337.59478 1540919; 337.67503 55448; 337.94901 8001558; 337.97358 35059; 338.04053 4422; 338.27719 53465; 338.38215 951702; 338.49924 1485365; 338.60211 13843; 338.60576 3077450; 338.63046 1607107; 338.85122 4546544; 339.11788 7692063; 339.40696 729476; 339.40871 6630167; 339.71907 76565; 339.83935 72016; 340.02696 374555; 340.04466 4107184; 340.6043 41013; 340.63303 8406654; 340.752 26654; 340.75565 10550; 340.78983 1689148; 340.85876 3814; 341.07548 1921748; 341.11344 79034; 341.41102 605330; 341.51561 1651263; 341.69575 7759; 341.77462 7136; 341.87325 9440; 342.33519 4596930; 342.39433 16038; 342.4628 19561; 342.50001 181373; 342.6195 7397214; 342.80587 295861; 343.14534 3027847; 343.16665 20228; 343.19511 149034; 343.40756 53771; 343.73384 341222; 344.15553 129848; 344.17027 27946; 344.32027 891; 344.64617 867; 344.67843 5717523; 344.93496 1252059; 344.96911 8907; 345.08994 4086; 345.09855 165328; 345.26624 239628; 345.44903 3418; 345.48815 4514283; 346.03595 26642; 346.42988 73245; 346.63697 2032685; 346.66016 1479888; 346.69535 1303472; 347.02388 46812; 347.07503 8166; 347.16473 24523; 347.29364 5682041; 347.40025 1193793; 347.59858 59972; 347.6006 592; 347.86088 93812; 347.98831 25294; 348.09069 100369; 348.32941 2327482; 348.75647 3710529; 349.0788 9036; 349.35252 62942; 349.45388 171563; 349.69108 3261; 349.96927 753301; 350.67972 1459927; 351.01776 315285; 351.30642 9715967; 351.36749 504575; 351.52085 20201969; 351.66091 52286; 351.87982 4208; 352.14838 15492; 352.30655 3263365; 352.319 10896; 352.34118 41865; 352.47945 44583; 352.60222 29808; 353.18444 6331; 353.28826 102918; 353.41294 76093; 353.4367 58125; 353.63727 1951859; 353.86055 67893; 353.95228 4264552; 354.08964 21347; 354.09784 179363; 354.20019 173117; 354.3528 282402; 354.3718 901107; 354.42305 9528341; 354.49555 432346; 354.62727 11476; 354.69356 63760; 354.69787 2468961; 355.0475 1428060; 355.24781 59870; 355.30147 28606; 355.54038 1026913; 355.54404 21699528; 355.62869 32394; 356.18795 1325110; 356.2169 648829; 356.34225 60237; 356.64974 34867; 356.67997 2500741; 356.72094 27556; 357.37176 77425; 357.66528 628860; 358.15417 153792; 358.25719 66757; 358.85138 1828292; 359.19139 1039007; 359.37042 739109; 359.78995 4709; 359.81639 500; 360.17901 968320; 360.48638 5137283; 360.69557 26311; 360.76475 1683241; 361.27302 78858; 361.38945 7568726; 361.68554 27821; 361.6944 9843; 361.82711 32958; 361.91142 68499; 361.94623 817559; 361.98584 2209986; 362.03437 447852; 362.06576 72126; 362.12915 13259; 362.2844 6714065; 362.31616 77256; 362.48642 738111; 362.59504 153526; 362.89815 70654; 363.00053 889898; 363.00195 9987; 363.03278 1744498; 363.36116 24781561; 363.48263 39937; 363.50671 12520051; 363.59755 4352493; 363.60435 55852; 363.71073 9639; 363.94451 1885514; 364.1163 79074; 364.58782 18615183; 364.74189 15138; 364.77482 1322305; 364.79237 5272650; 364.96469 6999183; 365.26963 28258; 365.37741 186349; 365.92326 1195676; 366.05619 1774906; 366.07391 56369; 366.18528 833; 366.21531 1324831; 366.39176 2622691; 366.6097 1077981; 366.68475 17062800; 366.90771 1589; 367.16542 1259498; 367.58956 355775; 367.75219 63657; 367.77377 11597; 368.05095 46264; 368.17694 3993081; 368.33526 7934; 368.64822 1215158; 368.74522 1095516; 369.12341 2737; 369.95196 587128; 370.02663 84955; 370.09182 610397; 370.2263 4990223; 370.34956 35974; 370.37858 1196158; 370.38495 580967; 370.571 2477782; 370.77937 65473; 370.78325 46906; 370.93296 38698; 371.06447 61462; 371.22469 3693987; 371.47349 9689399; 371.5232 4828; 371.56558 43816; 371.68063 10278; 371.72721 51274; 371.90392 20518; 372.16296 18388; 372.18314 25129; 372.25001 123098; 372.30404 88802; 372.51481 5751; 372.69188 8151; 372.85909 667092; 372.86408 27993911; 372.9444 537873; 373.05007 1110274; 373.65013 47365; 373.99318 1870676; 374.22958 576857; 374.62801 1707; 374.81063 2826418; 374.90343 51128; 374.95766 3302499; 375.03755 44133; 375.08892 9690758; 375.12749 426951; 375.31309 3387; 375.40448 674153; 375.49205 26788; 375.72276 19294; 375.93618 192112; 376.03737 50998; 376.05816 41667; 376.47597 4844; 377.02424 1717013; 377.36459 4997697; 377.64092 31300; 377.73315 6645938; 377.8931 3467675; 378.3149 2714756; 378.44658 17336; 378.69119 6674597; 378.90624 1535772; 378.9502 63474; 379.24269 18455; 379.32993 3858; 379.54254 25565; 379.90347 4321763; 379.91303 9122; 380.12604 18180; 380.18495 75706; 380.24759 202016; 380.36177 45910; 380.79937 188150; 381.00149 53588; 381.09112 58377; 381.18949 7446; 381.36297 3869; 381.49446 79263; 381.57142 27496; 381.6382 6142; 381.86835 1832181; 382.06025 2152; 382.14098 162127; 382.22504 9128516; 382.37155 2729686; 382.44352 8535; 382.75523 1931; 383.27508 170825; 383.32753 1329655; 383.4452 4681202; 383.59352 848302; 383.64415 1013319; 383.65682 1830223; 383.65955 128925; 383.80024 61698; 384.1689 1503; 384.30844 177588; 384.338 2216750; 384.42243 24507; 384.85347 24682226; 385.27835 2128893; 385.31718 478153; 385.49234 22671; 385.50292 14554; 385.70283 1187084; 385.7675 93048; 386.0795 23738; 386.20901 2362383; 386.27238 2268984; 386.3737 4933; 386.58709 60602; 387.03892 781640; 387.42812 8895; 387.50154 22904531; 387.56354 73213; 387.83591 6817161; 387.92895 693473; 388.03131 2860; 388.54638 905511; 389.35042 21489; 389.81296 76176; 389.81351 26513; 389.8281 66273; 389.86415 50162; 390.19019 6429729; 390.20882 25724606; 390.2106 1069688; 390.35462 601875; 390.72414 19147; 390.90182 145799; 391.02263 700329; 391.22204 1574; 391.48758 89107; 391.70297 8994; 392.01911 24370; 392.28293 1921881; 392.42689 78446; 392.55589 159458; 392.69442 1991329; 392.72972 199024; 393.05001 6596796; 393.06935 20541; 393.16847 49809; 393.2372 1933114; 393.26889 328516; 393.70055 107547; 393.79618 20277; 394.10246 291030; 394.59319 1674674; 394.84787 28041; 395.14165 1437631; 395.23354 14676712; 395.28563 20131; 395.43253 5216251; 395.87924 4369; 395.96074 3283857; 396.01745 8616796; 396.19355 10121; 396.31034 26402; 396.43866 8025607; 396.90141 1964091; 396.9213 4348; 397.29999 4449079; 397.54656 76130; 397.75863 4238463; 398.04094 59452; 398.13403 7274823; 398.46553 28526; 398.50797 722521; 398.58857 3510768; 398.68802 10763; 398.75941 3332677; 398.87988 52845; 399.06742 265691; 399.168 67984; 399.20623 384446; 399.22886 2984189; 399.6561 53906; 399.77789 190572; 399.82013 24978151; 399.82668 21976; 399.91282 35034; 399.97612 60690; 400.00589 120111; 400.14173 1525; 400.15496 4819515; 400.43178 27858; 400.60845 20377; 400.82769 22213; 400.93451 156610; 401.02317 16947; 401.08918 1706618; 401.16114 6610; 401.40428 22020; 401.45546 52961; 401.4989 2173239; 401.92768 14345061; 402.21591 8133650; 402.47845 160902; 402.7971 271263; 403.29454 4822563; 403.41424 840453; 403.4429 28636; 403.72844 5542592; 403.91114 121267; 404.06431 31173; 404.10048 63719; 404.10463 2485772; 404.44366 917769; 404.63057 4726165; 404.7791 1897528; 404.86308 1990115; 404.99713 71045; 405.07897 53592; 405.1898 35024; 405.32912 488441; 405.35047 259820; 405.37253 20968; 405.40192 66680; 405.60524 35360; 405.68746 7749; 405.89427 1070055; 405.94754 2032; 406.71359 137558; 406.8576 1060961; 407.12278 74567; 407.28295 987104; 407.32697 55422; 407.37968 66010; 407.95334 1971; 408.11852 7014; 408.31667 1395921; 408.73833 786020; 408.79263 2284067; 409.00272 13463; 409.08197 26612; 409.09768 2882; 409.69871 1870084; 409.82003 1287445; 410.45622 4253739; 410.88125 282248; 411.18006 105015; 411.34708 23056; 411.74732 1138010; 411.80528 53858; 411.89304 18822487; 411.91804 5276; 412.05744 1690; 412.05951 9278; 412.0815 419364; 412.09665 1188; 412.63573 9798687; 412.65701 53560; 412.68042 199170; 412.76411 346894; 413.12248 19996; 413.32832 42523; 413.67984 77346; 413.92711 2624948; 413.94456 11047; 414.04092 65855; 414.39179 1868324; 414.81589 1334940; 414.93229 62095; 415.08467 616; 415.22538 1993287; 415.5778 20638; 415.58835 4333809; 415.79325 2876684; 415.85247 71767; 416.04034 27971; 416.26676 168653; 416.30391 9044; 416.34577 2242; 416.42827 75242; 416.61713 1999128; 416.62431 35443; 417.05635 131562; 417.13383 1260266; 417.57485 157165; 417.99456 18219; 418.34748 4198; 418.45121 4261997; 418.68534 14160; 418.78658 8715; 419.43734 8805; 419.62336 1552; 419.64773 2369; 419.70145 13771; 420.24746 129050; 420.35078 55404; 420.39545 59958; 420.48259 49145; 420.71754 34193; 420.75437 48940; 421.04434 4653847; 421.08089 352942; 421.20408 38363; 421.55757 674714; 421.7216 1474191; 421.85648 9431756; 421.99673 3035; 422.2992 29515; 422.60939 1551664; 422.8485 1518991; 422.885 9902; 422.97317 2588580; 423.10127 558986; 423.3188 59750; 423.32006 18403; 423.35488 150359; 423.45244 1124595; 423.52754 1285; 423.61278 309; 423.72743 979037; 423.82015 38669; 424.04463 155074; 424.15077 62700; 424.9034 451; 425.15581 1435714; 425.17893 5563214; 425.61447 7696877; 425.88151 1981245; 426.23618 32954; 426.29831 5300813; 426.47106 43238; 426.56747 194844; 426.68631 23070868; 426.72242 4902651; 426.72847 7892271; 426.80714 8466; 427.03723 63536; 427.28876 6540; 427.36821 22702; 427.40674 72854; 427.41843 2077230; 427.44387 74914; 427.62048 75745; 427.91362 5612; 427.93108 60042; 427.95146 51567; 428.05 41976; 428.14238 254273; 428.16888 4404293; 428.1914 403026; 428.27354 29059; 428.66883 21466; 428.67202 300867; 428.72176 79856; 428.99565 42338; 429.12143 20451; 429.25354 500038; 429.94742 3689835; 430.01198 60380; 430.01444 90141; 430.10161 1104; 430.16695 4139858; 430.44245 9125; 430.54346 9808; 430.74148 539827; 430.76599 3143951; 430.96411 3491012; 431.00626 937138; 431.03738 38908; 431.18053 715342; 431.7542 73778; 431.77551 35434; 432.189 60982; 432.36713 70845; 432.44979 783869; 432.55468 33305; 432.8366 1632938; 432.86458 63853; 433.3638 96605; 433.54459 51937; 433.81307 38175; 433.85164 3116982; 433.99409 28671; 434.08129 28046; 434.20874 1161088; 434.2555 1155047; 434.2705 167129; 434.63065 185346; 434.87775 8717; 435.06585 52250; 435.09307 66193; 435.09986 65963; 435.12347 38345; 436.36439 3102; 436.37643 1001945; 436.37718 2228; 436.44385 593517; 436.70623 68736; 437.29377 2996451; 437.44464 1451525; 437.79813 1000914; 437.8726 79340; 438.26542 3826; 438.50202 66477; 438.83348 1198; 438.87239 32228; 439.11008 760677; 439.13128 27382; 439.37279 2029546; 439.51729 1136376; 439.93418 26238; 440.02016 466860; 440.02586 46733; 440.18776 124291; 440.44663 50970; 440.61101 177920; 440.93428 1783039; 441.20279 71513; 441.31188 39020; 441.48449 47236; 441.52821 114288; 441.97175 9812; 442.08055 982915; 442.94161 28555867; 442.98955 336929; 443.01615 722137; 443.08525 28929631; 443.53397 3049403; 443.71407 22666; 444.2001 63191; 444.2464 52714; 444.37168 34435; 444.43732 4678851; 445.0529 1912; 445.42737 9385863; 445.7584 2397; 446.08704 10804; 446.10701 480050; 446.12869 8198805; 446.19202 53462; 446.21903 8883733; 446.79158 68690; 446.83115 27565973; 446.846 4615; 446.94282 9870; 446.99199 68164; 447.02487 8582; 447.04928 3903727; 447.3491 53286; 447.35255 4484; 447.3694 109646; 447.37344 7923; 447.39639 4084; 447.6702 6797370; 447.89441 28390; 448.46322 235616; 448.46771 43066; 448.75065 9151693; 448.77924 11246; 449.31817 47428; 449.36793 51174; 449.47592 4687; 449.52388 1687; 449.57462 47309; 449.67072 14890; 449.91684 59748; 450.09262 1960; 450.15734 27159099; 450.2396 2426134; 450.30459 25751019; 450.67437 46290; 451.05283 42781; 451.12195 55680; 451.2648 21522; 451.50244 73893; 451.80977 2423; 451.87954 63154; 451.89371 58858; 451.93428 1128606; 451.96427 8184337; 451.97208 4318475; 452.24081 264725; 452.26214 4167312; 452.32597 11106; 452.7128 895654; 452.98667 21842654; 453.07638 8965; 453.13103 27102; 453.45605 9561997; 453.55004 1740267; 453.60095 108372; 453.69431 3348; 453.8 8154; 453.81777 52245; 453.85758 39696; 453.90994 4187403; 454.17489 906677; 454.40061 1894749; 454.40437 2948; 454.65167 1405612; 454.8247 8425466; 455.13836 13056042; 455.24517 510520; 455.54278 648377; 455.68354 13155776; 455.94048 1643; 456.00809 70098; 456.06265 161455; 456.08528 67295; 456.50776 50586; 457.03426 1026730; 457.08825 1059280; 457.1217 37543; 457.12279 20044924; 457.544 1003301; 457.62573 81704; 457.99194 300463; 458.11804 466391; 458.12343 31982; 458.13964 4736139; 458.47795 679016; 458.56539 47002; 458.58334 141215; 458.62998 22927; 458.71351 24077; 458.90812 20448; 459.33352 2379090; 459.35878 8971; 459.37265 29107; 460.00895 3835; 460.07722 1675493; 460.16222 5146; 460.33589 28339998; 460.74873 23375; 461.01031 73451; 461.11677 13773; 461.15142 36475; 461.27347 146369; 461.30225 23533216; 461.58557 13463; 461.81122 11247; 461.86383 179107; 461.89886 1676931; 461.96187 57548; 462.18814 606; 462.19241 1324240; 462.35252 1488831; 462.59753 1252864; 462.62687 924163; 462.71243 6001589; 462.87879 6146433; 463.52595 109961; 463.66059 48484; 463.91754 27228; 463.92653 37702; 464.05819 1944813; 464.14992 51154; 464.46623 55825; 464.51942 70623; 465.00198 1843447; 465.12662 16604; 465.16499 48557; 465.17003 5206876; 465.2923 34535; 465.3862 27310531; 465.44038 53309; 465.51068 50732; 465.51421 51592; 465.70957 6968; 465.82788 13544; 465.87411 5823267; 466.1782 1640883; 466.42422 109103; 466.49139 4195916; 466.5589 1088; 466.609 46319; 466.75243 757; 466.9725 51856; 467.55802 132252; 467.68757 65511; 468.01904 1924; 468.07591 24; 468.22284 6894271; 468.24472 22664; 468.55451 59415; 468.61061 166476; 468.85651 18736; 468.86253 23428098; 469.02682 91703; 469.08261 36006; 469.45688 28567; 469.71526 30771; 469.89408 39586; 470.12057 15075; 470.25532 37083; 470.36752 20855142; 470.37116 7656385; 470.72949 2435205; 471.00333 148898; 471.08801 102397; 471.33039 76856; 471.35976 3934; 471.57801 55781; 471.57928 1304506; 471.9686 131938; 472.13202 2463; 472.5773 8325; 472.66959 108682; 472.6995 79620; 472.76935 4720890; 472.86892 43198; 472.87578 2259; 473.18946 27231; 473.20412 460660; 473.51479 4860; 473.55427 1398764; 473.55952 30374; 473.58876 73524; 473.6558 642886; 474.26176 1566352; 474.61506 5169; 474.72218 1061356; 474.80659 768146; 474.81354 79796; 475.0654 1143; 475.06699 26517; 475.27975 2921155; 475.39255 35589; 475.50808 52815; 475.61665 3884484; 475.96767 3477; 476.10048 174; 476.51345 198554; 476.67876 4142117; 477.00632 932460; 477.10117 6510040; 477.19281 8123147; 477.30156 4875331; 477.53612 1754156; 477.99774 1533339; 478.00172 57003; 478.23107 44702; 478.44294 7898585; 478.76283 6707; 479.04419 200842; 479.11357 73572; 479.12059 76172; 479.14212 26247; 479.15838 758504; 479.3066 23192; 479.34735 1372616; 479.40583 9844678; 479.46051 1576499; 479.63581 181559; 479.76967 1145963; 479.84562 44730; 479.93716 1578153; 479.97174 17660; 480.00071 3920128; 480.17947 9196169; 480.21964 156052; 480.28009 6703372; 480.72476 52519; 480.75154 29961531; 480.90475 3265; 481.09289 1760; 481.18911 27800984; 481.2897 4031; 481.64171 287; 481.8336 29317683; 481.98454 22626; 482.11542 10112; 482.50792 108169; 482.53847 229667; 482.89448 941209; 482.93863 53312; 483.13191 522330; 483.21923 8063; 483.39043 7168438; 483.42639 39360; 483.4526 10820546; 483.57515 16664; 483.77589 4580217; 483.77813 536557; 483.84796 56542; 484.28786 6204; 484.86363 26850; 485.39334 76454; 485.40284 1712944; 485.40905 27046; 485.47206 69594; 485.51819 849429; 485.7666 31211; 485.81646 4714494; 485.91922 4885; 485.93064 6485867; 486.26094 1543817; 486.40684 4540320; 486.47635 2286771; 486.94432 3116144; 487.00733 226503; 487.0631 8052; 487.32813 647963; 487.82472 8305616; 487.82535 13108; 488.01758 277402; 488.0218 954089; 488.21457 8050175; 488.27597 29991; 488.40909 50384; 488.60378 18046; 488.82483 8182; 489.01945 35849; 489.17664 63542; 489.32715 8873191; 489.38374 31425; 489.39257 1067279; 489.40307 789365; 489.45924 75743; 489.49557 837258; 489.60238 38646; 489.60883 161348; 489.89731 2294652; 490.01343 26498; 490.13355 1890041; 490.15259 98090; 490.46464 150326; 490.49519 68946; 490.54542 61220; 490.61949 1095355; 490.67046 40748; 490.85934 175213; 490.93351 55334; 491.43839 691371; 491.59662 72058; 491.66854 4850012; 491.81729 4902708; 492.17782 79377; 492.18997 28585; 492.22426 19321876; 492.83784 4826; 493.64716 40794; 493.71345 491538; 493.93288 15780440; 493.99236 30294; 494.68383 2859726; 494.83929 15814; 494.85488 21974; 495.42641 7583215; 495.6508 50483; 495.71949 654495; 495.99134 73794; 496.09465 79297; 496.53601 28645; 496.57417 28899424; 496.71249 4228; 496.86419 22836; 496.90582 2324041; 496.94452 23340; 497.34386 18060; 498.01134 173502; 498.61672 3964052; 498.71014 26074; 498.77927 4894444; 498.94445 6840; 499.48027 20742166; 499.62689 3718259; 499.74414 6597096; 499.83382 13618 +<5, 6>: 0.14299 22392; 0.35213 23563334; 0.55974 49960; 0.58739 1263424; 0.64126 5424; 1.25253 1681946; 1.6437 34149; 1.6914 9162809; 1.74722 22500; 1.92528 25285; 2.30546 41772; 3.05458 912; 3.26971 72148; 3.92064 19612; 3.92338 7724; 3.95922 34974; 4.14685 4389301; 4.4954 3830583; 4.83716 725645; 4.96972 45604; 5.01079 13553; 5.0369 7223; 5.40914 20601468; 5.62478 5894946; 5.66016 535314; 5.68725 158254; 6.09228 1307033; 6.17724 8756166; 6.46581 38078; 6.50047 1080064; 6.52162 1084662; 6.5692 1726499; 6.86855 21023; 6.87931 20753; 6.93716 5816143; 7.41305 72951; 7.60772 1432450; 7.95792 965880; 7.99902 70075; 8.22377 5003255; 8.5411 1480036; 8.8913 6030; 9.22773 36547; 9.26697 792500; 9.54868 11828; 9.62722 17587; 9.67856 59107; 9.70062 6591; 9.78332 605492; 9.8095 4392; 9.98425 3331817; 10.01863 7876; 10.07496 62088; 10.51692 20170; 10.56007 67060; 10.63138 1330011; 10.72107 4259460; 11.15058 12649; 11.21173 54022; 11.40555 22301311; 12.096 8520597; 12.67525 77563; 12.87545 59437; 12.93392 46155; 12.95384 16791115; 12.95585 8162224; 13.10091 4778729; 13.23004 1391352; 13.31228 38479; 13.37587 339408; 13.41229 28056; 13.41395 7234; 13.42014 1169071; 13.43323 70763; 13.51355 23533; 13.55139 183422; 13.56771 7533; 13.58637 37892; 13.63337 58307; 14.02452 1891644; 14.18579 7490953; 14.47436 5395; 14.97707 5995; 15.26586 1284951; 15.33898 1201058; 15.45674 55736; 15.46333 34803; 15.50084 32677; 15.84449 12568; 16.01398 38226; 16.21015 5287331; 16.2141 6872; 16.36779 9968711; 16.3686 2577379; 16.48286 289957; 16.9294 6289631; 16.98139 22679; 17.10708 27073; 17.42143 21728; 17.43239 36028; 17.51117 40000; 17.72492 6232828; 17.81063 17140; 17.98079 38348; 18.17902 180665; 18.5713 1854428; 19.0936 469973; 19.11012 12546564; 19.35478 2406609; 19.98475 3033868; 20.00824 59820; 20.01596 21199; 20.15694 145678; 20.26408 19852; 20.28608 3310100; 20.54616 3859; 20.55053 3177669; 21.43921 39921; 21.46646 2519; 21.55354 38651; 21.6228 30581; 21.63239 19492; 21.82575 3399585; 21.82937 2961; 22.07953 7959; 22.13549 6278; 22.2589 1103168; 23.14971 2399424; 23.27436 1988486; 23.76842 17934; 24.15444 173681; 24.36425 9887960; 24.40984 22621; 24.55515 1245843; 24.77586 27894687; 25.54818 63590; 25.60239 75296; 25.67086 2877492; 26.05932 2009; 26.1269 90795; 26.21718 1363483; 26.51449 4459660; 26.95111 6160185; 27.20869 28557; 27.26734 582328; 27.28984 71593; 27.38318 602500; 27.4643 44257; 27.46595 53179; 27.50242 78443; 27.52874 8834; 27.66997 9863622; 27.67552 11965; 27.96256 1488002; 27.97971 29284; 28.25895 2166302; 28.42937 51874; 28.56609 46566; 28.69354 5760; 28.81961 10658; 28.85706 9638; 29.47592 14072; 29.51735 67905; 29.54232 1654; 29.55843 71814; 29.58249 19471478; 29.73288 1453322; 29.76758 1913236; 29.86667 14893610; 29.93132 34173; 29.97319 12243824; 30.14764 41072; 30.97767 1181328; 31.01626 971139; 31.14929 17882910; 31.55298 9248478; 31.62511 8155; 31.76036 66835; 31.7786 33602; 31.87374 9149091; 32.05086 23693; 32.20668 665118; 32.37383 952004; 32.58593 4348479; 32.91149 79853; 33.18426 75539; 33.23422 50540; 33.53015 2478569; 33.69314 9339071; 33.96489 27827; 34.06993 5524; 34.07649 30736; 34.28103 1940096; 34.50915 23498; 34.58601 470606; 34.77729 14343389; 35.07221 14999; 35.13905 31951; 35.17437 167250; 35.82027 2475231; 35.82751 7399715; 36.01944 17915; 36.14957 2869; 36.30735 2815902; 36.33432 30629; 36.51103 4804; 36.88059 267346; 36.9496 38351; 37.21225 1588751; 37.67349 2922458; 37.67696 26088; 37.74538 20431; 37.8497 4824640; 37.86058 35103; 38.47479 1036; 38.54484 1852608; 38.69383 3093984; 39.06039 1138393; 39.2634 47235; 39.54282 2523; 39.66345 52039; 40.01433 114081; 40.09838 50979; 40.22425 77219; 40.28675 1167943; 40.8427 522; 40.88214 24435; 40.89686 2495; 40.91601 2446513; 40.95001 16794; 40.96697 36882; 41.23602 9050; 42.07017 29301; 42.35431 24017; 42.38772 1655724; 42.42895 1420491; 42.4854 54064; 42.59011 1459916; 43.42363 23828062; 43.72734 184036; 43.88205 101313; 44.02796 311203; 44.38108 1366063; 44.53233 5028; 44.84034 28690; 44.8602 1458651; 45.05435 867; 45.08028 1613021; 45.10843 3480824; 45.26679 56628; 45.63477 384832; 45.74295 4876697; 46.23261 190651; 46.7488 4739; 46.91903 15304; 47.10062 612620; 47.4171 78445; 47.50853 61; 47.68784 3721428; 47.74306 571025; 47.89952 1315528; 47.93224 770; 47.96128 4438072; 48.23021 125823; 48.33559 33407; 48.49153 5190590; 49.13815 211451; 49.36441 20220; 49.42295 4832; 49.43613 9756327; 50.20143 1570965; 50.49931 1085020; 50.64182 4786098; 50.90637 94262; 51.21515 16139; 51.4647 8008463; 51.53827 6273680; 51.68979 1174310; 51.86671 29643; 51.97015 16150; 51.9983 41371; 52.01576 4255; 52.31019 2202; 52.32863 1757; 52.33853 778526; 53.11127 67946; 53.15134 8059230; 53.36751 64073; 53.64646 54019; 53.74616 53152; 54.20907 4905037; 54.33465 6800763; 54.34204 3216896; 54.44441 16213; 55.07663 1107; 55.33421 65090; 55.7004 12160; 55.83496 3072369; 55.93706 319455; 56.28422 9453; 56.94405 2508; 56.97391 18118212; 57.64412 26762; 57.89605 84413; 57.91371 15797; 57.99174 72844; 58.04865 50348; 58.24818 7294; 58.71949 1398675; 58.85431 4856211; 58.87061 67629; 58.95561 20701; 58.97929 44827; 59.19374 39445; 59.2276 4038; 59.77292 34666; 60.04443 76550; 60.51093 8494019; 60.54058 54954; 60.58181 147735; 60.6126 8397; 60.8466 61029; 61.45309 43993; 61.49727 25992; 61.55189 153; 62.81134 14771210; 62.90524 2051; 62.91127 352536; 63.07007 110592; 63.58348 27130; 63.59601 66159; 63.76409 5563023; 63.80712 64368; 63.92152 2962; 63.97439 1050; 64.04786 6169; 64.16654 1442624; 64.17048 735782; 64.26652 125340; 64.30968 21000; 64.33343 70710; 64.51614 2372; 64.55665 111702; 64.57043 8196; 64.65886 27350; 64.69409 3899; 64.72527 686662; 64.75378 23059; 65.1824 28814; 65.58407 11169; 65.68925 1560; 65.76082 21991; 65.89196 5548; 65.90491 61363; 65.92854 31848; 65.9766 77652; 66.0333 18164; 66.13934 5063; 66.14066 1525888; 66.35224 2785; 66.57891 2507080; 66.60635 9535589; 66.72104 7502381; 66.99993 1972277; 67.14597 38083; 67.17143 71937; 67.21679 424426; 67.38288 481368; 67.52484 1247916; 67.56861 392538; 68.18919 406973; 68.23504 386804; 68.42232 1678783; 68.49804 79304; 68.55486 36601; 68.77337 9556510; 69.03867 2475993; 69.06311 61604; 69.37662 15675; 69.88885 67105; 70.06595 51046; 70.10326 1664; 70.10465 20109; 70.19593 56973; 70.26415 11633; 70.53039 58267; 70.69595 9197; 70.76472 22082; 70.92653 1037729; 71.18363 6376; 71.33064 7301946; 71.39075 1941550; 71.49192 16483; 71.90229 11604; 71.93584 22210; 72.06481 444612; 72.30891 9228; 72.37606 51082; 72.51816 41350; 72.59397 3646804; 72.64426 184211; 72.69336 47158; 73.04053 450632; 73.09761 73103; 73.1798 6879903; 73.18184 1401; 73.24551 45512; 73.33817 61561; 73.34616 25660; 73.48091 873898; 73.70619 2618039; 73.82869 8087; 74.09209 18119165; 74.34689 46694; 74.3988 37784; 74.55948 3578124; 75.15238 24542; 75.19221 1449725; 75.32374 76139; 75.458 4387486; 75.62007 25647; 75.69124 6666117; 75.69337 24222; 75.75759 2040833; 75.87058 7661066; 75.91047 9701533; 76.00564 78233; 76.09648 53784; 76.13435 18061635; 76.52474 3056; 76.54607 1025688; 76.59149 5288603; 76.64801 49232; 76.7321 653435; 76.99313 1398991; 77.04923 138597; 77.1445 808306; 77.2068 46535; 77.24847 2124234; 77.34169 1053845; 77.38842 790555; 77.59878 8497486; 77.67004 137626; 77.74536 117896; 78.04241 1290798; 78.28223 9886152; 78.29561 1803333; 78.45494 7531870; 78.45804 56681; 78.47853 14298; 78.85002 60279; 78.95988 45987; 79.21232 4321625; 79.2918 70608; 79.94482 9425120; 80.20035 3216278; 80.60744 79238; 80.79745 21784; 80.90371 1507371; 81.52306 70582; 81.78549 9708; 82.22404 7097899; 82.24707 28604; 82.28006 4761355; 82.32544 881592; 82.60985 78559; 83.18858 29875; 83.45743 43275; 83.50032 7821912; 83.53178 5300873; 83.85258 56467; 84.09628 4392629; 84.1876 59249; 84.48366 3438405; 85.22485 3406930; 85.59569 1463113; 85.68437 506963; 85.72665 80609; 85.97922 6096; 86.39931 36039; 86.63769 577511; 86.80682 74685; 86.82251 21759783; 87.10835 27474; 87.18294 5814150; 87.57574 55367; 87.75125 14469; 87.9499 4099760; 88.09842 1740630; 88.33724 20552; 88.42875 61874; 88.57429 1735313; 88.58065 22203; 88.72165 15269498; 88.92443 8613122; 88.94695 47184; 89.04367 36151; 89.15981 1016937; 89.25902 25670; 89.40041 68937; 89.63698 2305594; 89.97376 48608; 90.33364 2644; 90.49051 23325; 90.82404 1520; 90.92129 180293; 91.37042 561877; 91.45223 24753; 91.46415 1793598; 92.2018 3992307; 92.58351 65502; 92.61921 9164; 93.16582 955; 93.32696 1358820; 93.38257 709421; 93.63826 39356; 93.89436 5430717; 94.01584 4998211; 94.04684 2863326; 94.17912 152845; 94.30593 34279; 94.35294 8520; 94.45702 128799; 94.52748 1014449; 94.96178 1793647; 95.11999 63190; 95.22195 6777; 95.49848 970461; 95.65841 63322; 95.70742 75799; 96.06862 1494; 96.2844 8652334; 96.36272 322; 96.571 2398; 96.68135 245968; 97.19888 3200; 97.30656 1082653; 97.32894 68006; 97.60069 21083; 97.67184 178604; 97.81959 1666963; 98.03803 953037; 98.24783 306711; 98.55275 1565026; 98.87622 20121; 98.94675 46479; 99.49417 3641176; 99.49689 22541; 99.66085 60597; 100.50366 703; 100.53921 18199; 101.58736 83876; 101.59095 1309346; 101.63343 73631; 101.6368 20654; 101.83366 146772; 101.98794 75894; 102.26382 34721; 102.29983 996058; 102.31703 23996; 102.55496 63052; 102.81235 340356; 102.90412 62996; 102.92382 60989; 103.07556 51126; 103.11091 45930; 103.25221 59674; 103.30562 4148304; 103.34013 8589829; 103.54303 26263; 103.54985 32549; 103.55232 161612; 103.64401 8738799; 103.72063 1095100; 103.77295 13216050; 103.8711 54095; 103.99011 60325; 104.16678 4856298; 104.21341 46165; 104.2156 7505; 104.27424 1214184; 104.48222 12078; 104.76166 2742953; 104.79404 164877; 104.8421 4557443; 104.90835 190436; 105.08948 13462; 105.55434 389942; 105.56684 1332191; 105.78626 3623715; 106.20759 204012; 106.21446 25305; 106.27689 143037; 107.10858 183969; 107.40698 36670; 107.52333 1099; 107.59665 1735; 107.74825 7347201; 107.89245 653540; 107.90017 2385604; 108.55304 633214; 108.76156 548203; 109.15387 60924; 109.21886 2147130; 109.49589 21400638; 109.57855 58394; 109.61041 25205; 110.06661 12779422; 110.20779 1117160; 110.37863 785; 110.54474 7389471; 110.61728 67645; 110.67589 27625917; 110.8478 1805269; 110.89656 8920; 111.1596 9170; 111.24432 8119; 111.45006 253674; 111.58565 3250562; 111.85484 1874375; 111.86655 25721; 111.96807 2897860; 111.97434 164237; 112.02366 8802381; 112.41604 604247; 112.4304 1279711; 112.52547 5438046; 112.75442 2672291; 113.18515 19679; 113.31424 18183; 113.35176 26391; 113.69367 4435889; 113.95943 490950; 114.06893 1716; 114.11839 79208; 114.17869 3261; 114.30857 197697; 114.50372 31049; 114.5596 9436; 115.20335 21979; 115.27683 54836; 116.20559 25178; 116.42249 3761701; 116.44316 42099; 116.47525 1322004; 116.75646 6320; 116.80969 5632401; 116.86996 25162; 117.17059 1674775; 117.21858 698718; 117.28002 8303848; 117.42285 79141; 117.53764 67994; 117.72878 58805; 117.97747 8164185; 118.57149 21452; 118.62022 22635; 118.73066 1575506; 118.85451 28317137; 118.93695 6606; 118.97481 41245; 119.09421 1894069; 119.1472 1106778; 119.27475 873669; 119.54448 128741; 119.62002 6971; 120.61062 7123; 120.68541 711100; 120.69583 7367335; 121.192 5748; 121.31303 13774; 121.32586 21042; 121.62142 1254232; 121.69511 5858; 121.71731 63925; 122.09331 1529376; 122.12815 135681; 122.16455 27679; 122.5941 1789726; 122.63557 137673; 122.91583 7150677; 122.99373 40316; 123.17237 8145903; 123.27768 10541147; 123.39716 2107490; 123.44897 127631; 123.47189 2489460; 123.48633 776944; 124.10073 3006; 124.31781 228330; 124.31851 51586; 124.69951 55649; 124.7943 2509917; 124.79636 8183943; 124.88084 6610; 125.00715 13625931; 125.62941 54709; 125.91726 697929; 126.04433 24439; 126.24291 2787370; 126.81108 185380; 127.14574 30378; 127.2576 850477; 127.25904 12944; 127.4056 6180064; 127.50391 28446199; 127.89259 21335; 128.19073 27916; 128.22691 579105; 128.33448 9948; 128.39745 246219; 128.50032 35424; 128.79082 7307; 128.80493 67206; 128.90156 28110; 128.91782 14135331; 129.20506 86306; 129.22391 2254; 129.75166 254780; 129.95697 9982430; 130.38195 6611; 130.47942 74333; 130.66728 2275890; 130.70051 104428; 130.72116 1356178; 130.80711 137828; 131.41167 231; 131.53406 40966; 131.56409 9767124; 131.63119 70733; 131.69342 3332477; 131.70748 5225320; 131.81394 63365; 131.94521 2726725; 131.99839 550462; 132.12154 1100872; 132.21545 828; 132.48453 77445; 132.69894 25326; 132.85573 7024; 133.0967 141; 133.28119 16517897; 133.58298 4921; 133.71813 64301; 133.72219 28159907; 133.89484 63763; 133.90775 5604635; 134.1672 43476; 134.99791 3423120; 135.02536 814103; 135.06418 23644; 135.15258 5793; 135.53382 1659929; 135.71728 67225; 135.77998 23660; 135.94108 130988; 136.06348 270122; 136.30771 19224; 136.35991 2885424; 136.82078 60371; 137.30595 28181; 137.42593 7817639; 137.52899 20660090; 138.06008 4911120; 138.13343 135018; 138.34141 9308439; 138.37719 523062; 138.66908 1319782; 138.76047 29474; 138.82996 4708072; 138.91833 17592; 138.9234 6141; 138.98585 69108; 139.01911 6545117; 139.06838 40500; 139.20771 7604745; 139.3485 4255876; 139.70162 11770; 139.72747 4471996; 139.97546 9624853; 140.0894 6046; 140.62316 186959; 140.8428 36620; 140.85219 926; 141.18548 27492; 141.22711 64971; 141.26095 4958802; 141.32195 28338; 141.75712 49248; 141.78329 72794; 141.80501 2874262; 141.90036 2989; 141.988 7804; 142.37354 5310970; 142.46488 62115; 142.5639 35650; 142.64239 7218034; 143.22742 742458; 143.33267 6062; 143.44307 72121; 143.77137 7854; 143.78961 1827444; 143.81441 6341; 143.86567 21496; 144.12467 3130; 144.13808 69509; 144.22174 190737; 144.26008 38144; 144.34407 408326; 144.45461 45534; 144.4673 40796; 145.00694 6944189; 145.5831 5322; 145.58587 55903; 145.66306 699066; 145.78922 6018; 145.81655 9928; 145.84891 1173; 146.2901 1248077; 146.57127 1431772; 146.68661 52370; 146.74593 16390; 147.30976 29278; 147.3825 8913; 147.69262 25774234; 147.89456 56033; 147.90686 542805; 148.04807 66788; 148.10241 735614; 148.12899 178652; 148.14942 29904; 148.30624 17977; 148.47777 819809; 148.80489 2121842; 148.96352 38830; 149.44375 14608675; 149.58889 3452505; 149.60381 64670; 149.64849 74415; 149.78846 4836; 149.92545 25845; 150.51206 608387; 151.07553 26515; 151.14018 49626; 151.29758 14638; 151.57237 910081; 151.89805 1499061; 151.92904 118297; 152.11654 36213; 152.17738 106169; 152.18417 66413; 152.21711 48457; 152.30096 1926599; 152.64429 76705; 152.70459 23778747; 152.72773 16627; 153.13583 925195; 153.35532 88790; 153.45517 629640; 153.81996 77800; 154.19065 1154372; 154.19657 4249726; 154.56676 8333; 155.02232 2786068; 155.0481 26942; 155.07166 45622; 155.0923 23582309; 155.34986 79956; 155.47537 1622; 155.63635 3695; 155.66446 58762; 155.77578 3602; 156.01397 51511; 156.1823 380036; 156.19742 989286; 156.41042 1559777; 156.49203 5753459; 156.52436 25551; 156.63856 24655; 156.75846 67173; 157.08186 4841688; 157.34388 20515; 157.94546 79689; 158.2302 7323041; 158.2446 3631875; 158.47926 3452103; 158.54246 5781772; 158.93709 72735; 159.44587 24137; 159.58382 60100; 159.64639 35924; 159.75245 60637; 159.82181 2653; 159.92498 2949; 160.12432 68103; 160.37196 2412636; 160.40672 319; 160.48812 138123; 160.53248 29117; 160.61091 1734676; 161.16082 1464735; 161.44122 2938; 161.57737 24389; 162.06683 26845065; 162.09694 110382; 162.16707 18824; 162.30649 4078156; 162.39855 299109; 162.50512 9901718; 162.9835 913; 163.26015 126763; 163.53643 18770359; 164.1794 32940; 164.27258 37543; 164.3786 476464; 164.38177 8433; 165.1868 2672; 165.26032 2475520; 165.34019 1498985; 165.56556 678; 165.99421 3076424; 166.2063 27087; 166.42507 1252; 166.55142 1854169; 166.67258 619388; 167.1106 23777; 167.21887 9879; 167.29645 73067; 167.31695 7175772; 167.3818 1356618; 167.63251 8271182; 167.70186 147709; 167.7669 50353; 167.93289 16544; 168.06138 73130; 168.11844 71156; 168.26068 289; 168.31856 3327411; 168.33347 26895; 168.36656 21205; 168.62787 4714063; 168.81579 78858; 169.25234 5831; 169.4275 199623; 169.5881 67257; 169.61657 3130474; 169.69588 19276; 169.78063 69516; 170.05043 631; 170.1916 21669; 170.3614 4908637; 170.84164 77328; 170.868 7046532; 170.97254 2999; 171.32701 32984; 171.34445 4152855; 171.37925 53596; 171.49902 158055; 171.64347 178253; 171.68092 8044; 171.69098 124134; 171.8727 1376277; 171.9138 1569408; 171.99354 70216; 172.15413 22447; 172.30291 71146; 172.34406 1679498; 172.42435 7068463; 172.42654 5962; 172.53211 1392124; 172.58462 4558; 172.99771 44841; 173.09806 5938; 173.67122 55412; 173.7548 6447831; 174.22136 27004; 174.68057 835727; 174.96844 3176140; 175.09701 62745; 175.2036 7380; 175.32192 77441; 175.46412 32908; 175.63196 173953; 176.27256 1365138; 176.32024 1658669; 176.37081 1524; 176.46058 40311; 176.48889 34; 176.51145 46561; 176.5978 3153; 176.67671 5157; 177.13254 2169; 177.22143 1621262; 177.57869 2334386; 177.59759 151; 178.04114 3332508; 178.33514 1168938; 178.35558 8357; 178.38159 28754; 178.39827 30743; 178.75891 29232; 179.04716 1817199; 179.40646 29952; 179.50203 29726; 179.6247 24912; 179.79428 2211627; 179.85124 1130748; 179.9288 3109651; 180.11359 4660; 180.29773 1094623; 180.31252 2515567; 180.34039 4177983; 180.59237 9279408; 180.6033 3266; 180.62041 20480; 180.69705 38912; 180.72234 6109195; 180.89094 39103; 181.18264 75211; 181.39638 23206; 181.3966 2977345; 181.49437 10051; 181.53192 18503; 181.78515 635112; 182.01451 36251; 182.55668 1417107; 182.64988 106934; 182.65853 11694934; 182.86141 180608; 182.90791 150798; 183.13621 26709; 183.57244 4397930; 183.57439 1387116; 183.63184 163445; 184.06739 16891; 184.44053 555987; 184.91741 2351; 185.11579 842413; 185.38108 270783; 185.65531 2823; 185.77579 4132069; 185.97579 37427; 186.19277 2510975; 186.21666 5102210; 186.26686 25624; 186.42512 7170; 186.75861 66213; 186.89822 39964; 186.95978 1772153; 187.00402 1977451; 187.08301 7609; 187.33677 65383; 187.48965 58943; 187.52469 1948; 187.5859 183870; 188.00463 58019; 188.41034 27272; 188.48854 4824139; 188.55564 1065; 188.77695 4653; 188.80229 566; 189.04975 77636; 189.12964 16045; 189.23843 7719; 189.31744 181576; 189.43216 65133; 189.45468 26804; 189.52125 4479; 190.04892 2616; 190.25304 6356462; 190.2903 184860; 190.52754 8287063; 190.87114 2954; 191.94247 41142; 192.08816 2536; 192.13544 7165; 192.15121 50166; 192.51117 27000; 192.63995 148355; 192.66928 24404; 192.77757 38009; 192.81529 64132; 192.91857 4412919; 193.04772 6768; 193.24468 15070; 193.33894 65104; 193.65216 69801; 193.70751 26254; 193.99821 65123; 194.13513 7918338; 194.14382 41329; 194.41755 9103; 195.64335 305041; 195.69941 3580603; 195.70923 6935897; 195.85845 4582818; 196.47974 64818; 197.18782 18895454; 197.57981 181172; 198.69059 48773; 198.84427 28520; 199.00765 48313; 199.21804 434440; 199.4304 157794; 199.50861 7252; 199.52893 877529; 199.89062 32127; 200.27739 1005304; 200.31835 4915551; 200.339 62307; 200.36522 19215; 200.37076 45389; 200.52461 72034; 200.56651 44704; 200.57461 197560; 200.59286 6289; 200.64992 8222637; 200.69768 27438; 200.8787 9240093; 201.00647 14860; 201.01097 11892; 201.84882 73756; 202.01991 16002; 202.30014 597351; 202.43917 5005065; 202.61044 52398; 202.77896 1760; 203.1485 1383989; 203.30875 818587; 203.68566 35935; 203.89351 824125; 204.73674 143599; 204.82571 1007130; 204.82886 62015; 204.92682 3384754; 205.03477 52391; 205.10846 23837; 205.231 65031; 205.33129 52173; 205.5646 4597; 205.82266 78938; 205.89102 3623997; 205.93294 39388; 205.9601 310802; 205.99331 8390133; 206.31967 72177; 206.52154 232718; 206.55007 25267; 207.70682 68197; 208.29466 63060; 208.5287 2498743; 208.54975 2122907; 208.86749 45176; 208.86977 3941773; 209.35354 6260143; 209.50895 25355; 209.52176 1009211; 209.87412 4364875; 210.30961 28110; 210.35792 5472; 210.39793 70678; 210.54806 31586; 210.64175 4245309; 210.68649 59024; 210.74524 23641; 210.98948 9928; 211.02803 9169123; 211.58517 49343; 211.63935 9889800; 211.72472 187272; 211.7892 162581; 211.90858 109699; 212.24525 10265775; 212.34068 8335; 212.44311 26347; 212.56506 2080701; 212.6432 766765; 212.97986 117262; 213.0603 4242; 213.20954 27278; 213.4511 3503; 213.4531 25905; 213.87865 9061045; 213.88215 32622; 214.00631 19446; 214.17915 22417; 214.2112 3274; 214.27635 92278; 214.65424 2852953; 214.88358 22911; 215.12734 5825800; 215.27871 68548; 215.76969 1658049; 215.91185 36347; 216.01466 856403; 216.1883 6135907; 216.48578 4026706; 216.55463 1500812; 216.56617 2448627; 216.68464 16296601; 216.93087 49145; 216.94039 51392; 217.0342 6012; 217.22147 7416344; 217.89572 2714; 218.05471 4700; 218.19062 8817; 218.21127 53397; 218.22095 2546317; 218.85304 33252; 219.05427 26360; 219.71863 1019400; 219.76724 72548; 219.90618 1609966; 220.01855 121125; 220.04759 70; 220.20774 70219; 220.24504 55788; 220.25774 3423144; 220.25964 75957; 220.50182 9842; 220.57213 271; 220.6579 9289157; 220.78822 94417; 220.86266 19765944; 221.08746 38452; 221.27168 2581; 221.31657 41437; 221.34758 140294; 221.71297 2507; 221.75945 296081; 221.76468 36952; 221.88303 15418755; 221.95068 7441248; 222.03017 65300; 222.11655 187498; 222.79978 13526; 223.17473 21846; 223.42496 601; 223.64015 5968978; 223.70707 3627285; 224.00974 27588; 224.25612 1133994; 224.3402 23022; 224.35297 22242; 224.58351 8222; 224.6118 175630; 224.7689 55399; 224.81398 5395; 224.99858 6440; 225.23932 24401; 225.30893 49945; 225.57961 62523; 225.61255 56175; 225.66077 53355; 225.84184 4996; 225.94479 530013; 225.9491 4543551; 226.19412 45034; 226.20915 84504; 226.23797 192160; 226.31745 1673930; 226.51536 715073; 226.57742 1062173; 226.72616 42306; 227.14894 79878; 227.56068 109102; 227.62197 2602; 227.73866 47999; 227.93656 1444597; 227.95848 52883; 228.51218 46667; 228.58348 7102; 228.58632 1336667; 228.75012 411795; 228.83137 11367; 228.86692 1622148; 229.23398 76471; 229.25463 18442; 229.45875 8113299; 229.5324 3940599; 229.99676 9363693; 230.05564 161801; 230.17696 988040; 230.23291 3899; 230.279 1032201; 230.40616 25280; 230.45796 3473275; 230.48742 5876441; 230.68818 10694; 230.8591 1387716; 231.2272 4291; 231.28598 978; 231.57904 32946; 231.86091 1836026; 231.97255 49808; 232.04859 497977; 232.8 624808; 232.80016 79113; 232.88561 337265; 232.98599 167483; 233.04694 8892; 233.50433 19487953; 233.86851 77507; 233.8771 287269; 233.96277 1271267; 234.27515 6066; 234.53373 4605593; 234.5554 8251; 234.656 56932; 234.96186 77219; 235.04431 348; 235.2111 14958; 235.38516 42186; 235.5415 4625564; 235.94734 7574; 235.99246 751149; 236.20381 26534; 236.42049 14468; 236.42061 36029; 236.82815 3174376; 236.91463 4566965; 237.06002 46741; 237.20586 15149370; 237.22459 75989; 237.36343 10080; 238.08569 9369260; 238.26137 180777; 238.35555 21443; 238.37482 29239684; 238.38634 41300; 238.78656 452023; 239.02697 64725; 239.15498 4742954; 239.3747 54748; 239.74786 5954; 239.88609 8706; 240.5026 167979; 240.82325 9711852; 241.1045 3259046; 241.13976 932635; 241.22112 34412; 241.23506 2691; 241.33479 34857; 241.35158 7297; 241.49072 1205026; 241.78091 979715; 241.81383 57856; 242.33965 6778; 242.8418 13945; 242.91021 1267145; 242.93835 1667756; 242.95859 186865; 243.46584 1212; 243.51192 1154557; 243.62636 395045; 243.81751 13913; 244.0308 6726841; 244.21523 659836; 244.34703 3469301; 244.43631 2083; 244.60892 1306143; 244.6463 613171; 244.82518 8218; 244.89293 20653; 245.34548 75691; 245.43528 179471; 245.74314 4763; 245.78669 27891; 246.03185 825697; 246.14351 1594; 246.16746 143921; 246.30762 394224; 246.31582 166898; 246.3796 58918; 246.64706 45675; 247.12511 3863; 247.20348 1935576; 247.37146 63356; 247.88422 19104; 248.33401 13072; 248.40201 1183152; 248.59823 8126; 248.78511 3703267; 248.95442 346207; 249.01287 8501902; 249.03906 3551680; 249.04511 103047; 249.11051 44821; 249.16506 935; 249.19196 3039230; 249.26531 91574; 249.31804 3455276; 249.44933 363944; 249.57881 7837187; 249.68429 58109; 249.72226 1600702; 249.76549 9783323; 249.96251 2773796; 250.16613 1450615; 250.25005 87378; 250.37008 26016; 250.40415 130595; 250.45823 148539; 250.99744 74137; 251.45316 7307336; 251.51799 78856; 251.59634 1236710; 251.62661 8143364; 251.92485 19649; 251.96738 471651; 252.1312 11044; 252.19602 19826; 252.21503 35631; 252.32474 27013904; 252.7807 6779; 252.90199 24735017; 253.00054 24503; 253.02258 101067; 253.04192 908; 253.12836 196264; 253.18886 1417695; 253.7054 72472; 253.75667 6124; 253.92206 4543369; 253.96452 7805; 254.1831 469180; 254.40025 1622925; 254.58324 239259; 254.5939 70502; 254.62928 68981; 254.75205 4488; 254.93946 124043; 255.00035 71877; 255.00193 1883; 255.5564 9668; 255.58287 4146236; 255.61585 975705; 255.64144 1163412; 255.68266 2468; 256.00244 1478694; 256.11011 59706; 256.11995 7399; 256.49616 2754; 256.63631 11767; 256.64733 1471027; 257.01285 2409553; 257.03004 3001992; 257.22504 6116; 257.32638 77131; 257.34859 115073; 257.43594 4152347; 257.56935 2672102; 257.79731 1343; 258.97736 19803; 259.0222 8193; 259.34269 932688; 259.45538 200226; 259.94417 23602; 259.96494 111558; 260.06389 24563; 260.2172 152288; 260.2664 15245; 260.412 96775; 260.41601 32157; 260.59464 617759; 260.59595 67629; 260.80668 30196; 261.20194 1572690; 261.22564 1460179; 261.76455 3974; 261.82647 27595; 261.85675 32058; 261.90547 14381; 261.94172 6793; 262.0745 8135; 262.56859 47025; 262.72615 4956378; 263.4548 58511; 263.792 2941973; 263.89654 189581; 263.96577 6830; 263.99212 13342; 264.06093 1518495; 264.14552 299121; 264.24429 1196181; 264.44062 166630; 264.51244 13254; 264.66748 5153327; 264.92064 77009; 265.20119 45007; 265.4318 7609; 265.46057 20617; 265.96092 648065; 266.02494 2661006; 266.06283 78028; 266.27305 3013856; 266.59267 55088; 266.83546 50591; 266.88726 185677; 267.05215 1210749; 267.05448 106170; 267.23696 316764; 267.71004 68829; 268.37778 30115; 268.56658 13930; 268.69576 141305; 268.75127 7577; 268.75166 7736068; 268.7817 8813358; 268.88278 18658763; 269.02535 3869265; 269.36599 6394707; 269.39865 3823669; 269.78093 79184; 269.98793 1616587; 270.60383 5246999; 270.65665 311589; 271.11403 53399; 271.32238 563; 271.5449 9605870; 271.73134 39850; 271.87729 4971146; 272.1912 92746; 272.46235 39917; 272.67843 8445; 273.11848 13097; 273.43189 61568; 273.45763 7819088; 273.46143 1252773; 273.58786 51430; 273.60432 6206; 273.63377 583; 273.8132 174304; 273.90602 8038722; 274.16774 5685548; 274.17562 583370; 274.26999 63216; 274.56546 5876; 274.97182 117777; 275.42468 1597909; 275.45905 36856; 275.54026 5851; 275.59977 43257; 275.60136 446919; 275.77537 2023; 275.82313 1147796; 275.83456 4715171; 275.89959 6852598; 275.92946 151815; 275.98064 19872; 276.16423 149459; 276.24354 39728; 276.24738 1829329; 276.72279 67308; 276.74709 50211; 276.8602 5207158; 276.96825 9137; 277.02711 436601; 277.19815 1791471; 277.28457 1079497; 277.94217 36199; 278.253 30679; 278.36721 169940; 278.62427 457157; 278.65719 2169821; 278.7291 868724; 278.88002 5818339; 279.26316 29824; 279.42221 4485; 279.70952 8232; 279.77762 4888186; 279.83945 6268; 280.00893 4548530; 280.08126 4741830; 280.16088 5397; 280.19608 1309152; 280.29897 78726; 280.48271 83209; 280.50988 6247; 280.92898 99391; 281.01148 29308643; 281.02107 1122801; 281.12344 26637; 281.24463 116005; 281.27418 343299; 281.2964 897832; 281.304 339; 281.8407 1282762; 281.90082 1828060; 282.14695 126236; 282.20396 3425616; 282.80906 3745865; 283.15841 8612040; 283.24721 114395; 283.61259 29464; 283.65352 1921165; 283.67473 145469; 283.73349 7358140; 283.82572 55964; 283.91839 8729686; 284.03959 4998540; 284.25649 20030; 284.43635 5304; 284.47029 2759943; 284.82941 51293; 284.86572 4241773; 285.0067 3289701; 285.17881 128301; 285.24592 199495; 285.44321 75254; 285.64882 71160; 285.68803 593722; 285.72431 53807; 285.78181 117966; 285.85032 65729; 285.96213 226976; 286.40224 5677; 286.43433 34319; 286.45682 37; 286.72819 9703; 286.78192 355678; 286.78523 26736; 286.87203 7802; 287.20506 26203; 287.25659 19701; 287.40422 73984; 287.47169 4552978; 287.75121 9953090; 287.81582 70867; 287.85391 2931; 288.06224 67593; 288.08885 839096; 288.26854 64293; 288.32001 2951981; 288.41776 1814; 288.46214 13292; 288.57 1400; 288.61522 4841; 288.92974 2830260; 289.0914 52573; 289.1138 4871629; 289.34767 36524; 289.41584 44773; 289.72949 110892; 289.75351 92146; 289.79781 1693150; 289.86761 41817; 290.06344 21637; 290.1648 4593120; 290.18646 7352129; 291.1812 19798; 291.57097 16672; 291.95108 9345012; 291.95571 2093; 291.99796 1086590; 292.0211 106796; 292.12904 24667; 292.22921 4149; 292.42523 61681; 292.78272 283726; 293.31815 28976; 293.47134 34678; 293.74702 24418; 293.76869 48417; 294.24964 1851768; 295.0512 157; 295.07692 8746902; 295.08902 5352; 295.132 4118458; 295.53201 553724; 295.62397 16094; 295.66026 126930; 295.67591 22833; 295.73649 1357324; 296.01431 43816; 296.14607 18591; 296.29359 7981; 296.34166 6450539; 296.35609 3294950; 296.42964 6725; 296.51535 5823152; 296.68951 15045; 296.84107 140341; 297.09757 60101; 297.11295 1961550; 297.13705 22857; 297.36784 66378; 297.46982 3358095; 297.49809 6091649; 297.50925 2751820; 297.66125 21007239; 297.86433 70552; 297.90425 3028857; 297.94395 72539; 298.04995 41587; 298.06277 67909; 298.89978 28411851; 298.90317 1443; 299.1362 8097322; 299.2188 9090718; 299.32963 14738; 299.89586 2184036; 299.99111 54749; 300.06617 23140; 300.21238 143428; 300.28469 1366137; 300.58216 2840565; 300.7967 25824; 300.86304 78177; 300.92121 4187; 300.95274 1835649; 301.0765 27674; 301.32631 798754; 301.54337 9094700; 301.55868 31483; 301.58551 689216; 302.09224 616115; 302.62069 44057; 302.80336 7294; 303.17883 5684096; 303.23453 3365881; 303.48461 46022; 303.69914 265674; 303.80173 1155991; 303.94292 7355; 303.97879 3067159; 304.42439 19169; 304.44275 40483; 304.44899 814; 304.86167 657154; 304.8994 3102923; 305.06003 17600; 305.09883 949784; 305.1458 153023; 305.19106 706801; 305.22108 5424; 305.23311 9522; 305.30233 3921; 305.54184 72247; 305.63538 40584; 305.75967 2567; 305.8421 68272; 306.12646 26495; 306.15584 35938; 306.27935 756561; 306.37357 666138; 306.48013 52375; 306.50237 4180857; 306.60451 2901; 306.65561 6701462; 306.81391 1587038; 306.98969 36489; 307.08819 1627368; 307.37224 34143; 307.43652 25354; 307.50677 51700; 307.95603 2951609; 307.96395 1269823; 308.11341 151303; 308.18697 43774; 308.28493 1076960; 309.04434 5783; 309.17528 2748300; 309.32282 10936; 309.80947 43699; 309.83226 7648; 310.02344 24266943; 310.0454 3339249; 310.34614 3489; 310.53475 2308; 310.67013 849751; 310.86856 1746228; 310.9329 2998453; 310.95753 2415934; 310.99716 156837; 311.33801 15283; 311.67343 2074812; 312.02234 7108; 312.23509 90050; 312.42429 6360; 312.43675 837; 312.95541 58502; 313.00866 33143; 313.01169 1786920; 313.10661 7612112; 313.46188 31641; 313.93841 1986598; 314.03103 28049; 314.169 54914; 314.38839 21171; 314.43941 992829; 314.53829 14845; 314.55378 315; 315.00225 79769; 315.16925 14056; 315.30491 41239; 315.3991 1808125; 315.48104 3808610; 315.94752 4280058; 316.04915 4875344; 316.22165 37137; 316.45554 8793; 316.51167 6293; 316.66388 142010; 316.68705 62432; 316.88726 33111; 317.38237 2605; 317.43458 153171; 317.4885 3711209; 317.90938 105204; 317.94646 8787; 318.19283 25271; 318.31191 256533; 318.54178 20565; 318.60754 1893632; 318.90105 14428; 319.81841 9241; 319.84549 1950456; 319.98033 2836578; 320.02311 20885077; 320.06819 1775155; 320.18679 22386; 320.33288 12494; 320.4928 2607; 320.57555 153257; 320.64084 68846; 320.75339 31634; 320.91868 25710; 321.20228 2489597; 321.31966 58442; 321.47233 3993; 321.63139 2877728; 321.6323 2926893; 321.70821 3672530; 321.84946 2894949; 322.02888 76331; 322.12353 2838; 322.19933 1855150; 322.25186 20524; 322.98221 60612; 323.01242 140756; 323.03352 3329020; 323.28422 8210; 323.43863 3076386; 323.80993 6586; 323.90928 1853200; 324.3158 54061; 324.43844 51652; 324.69313 77737; 324.79153 85969; 324.7983 1593271; 324.86894 22372; 325.48184 28368; 325.49422 2297823; 325.86304 447665; 326.17993 1106745; 326.26171 31725; 327.01378 2551211; 327.02527 47806; 327.15632 3762; 327.31554 27181; 327.3417 27285; 327.48278 1414592; 327.63274 2624530; 327.84902 152323; 328.26124 1455099; 328.37603 1020898; 328.42702 745655; 328.70786 187825; 328.99303 50984; 328.9952 1772432; 329.02442 119181; 329.15858 2366100; 329.37102 159469; 329.46103 2652; 329.53621 4448315; 329.54172 2824; 330.30248 3824861; 330.37535 46830; 330.9925 146315; 331.14877 4604675; 331.46667 1452675; 331.9781 18999; 332.43286 46512; 332.55648 6717909; 332.69844 159064; 333.02453 76313; 333.29217 22406; 333.61789 55715; 333.6855 1135269; 333.97915 2932; 333.99562 61478; 334.11965 66531; 334.64811 658; 335.13572 7676; 335.15966 28403715; 335.44362 125702; 335.47687 4921; 335.52112 67915; 335.56892 2071; 335.67027 2870594; 335.92903 273036; 335.93348 5224; 336.1403 444402; 336.88753 1916485; 337.13389 1090; 337.32697 9855; 337.4206 155; 337.51185 3445; 337.77907 63113; 337.91237 4383547; 337.92942 29129; 337.9508 1156603; 338.22774 1216283; 338.23812 3540885; 338.26149 303688; 338.45704 187461; 338.48802 5602; 338.94053 110142; 339.31177 237641; 339.35872 1999; 339.75927 41135; 339.7951 477870; 339.96585 15564; 340.09947 4788983; 340.44657 4104684; 340.54186 47373; 340.71102 8166703; 340.83617 52607; 340.90317 122395; 341.07484 2776; 341.10172 4851406; 341.53807 1391625; 341.58566 2589; 341.63315 45230; 341.88455 59954; 341.90596 66950; 342.08174 367570; 342.26634 47977; 342.31145 35590; 342.34343 1538430; 342.6549 54552; 342.68237 11432; 342.685 903443; 342.79579 923719; 342.883 1371249; 342.89035 31611; 343.26606 37012; 343.39609 11760465; 343.47298 9834; 343.78282 69138; 343.92291 507427; 344.00479 355753; 344.04408 2138; 344.08421 1941395; 344.16404 19888; 344.3154 4478467; 344.3768 829799; 344.72654 45781; 344.79448 1562179; 344.9238 21261; 345.26278 21152; 345.31163 5868; 345.40651 40047; 345.81605 4480; 345.98181 71619; 346.38766 101295; 346.6832 4181; 346.79123 8767; 346.79878 42202; 346.8482 6277; 347.18879 1151305; 347.23852 26617; 347.4053 70533; 347.43671 878682; 347.67038 309352; 347.67643 16067; 347.7677 30604; 348.24669 5777; 349.28288 6191; 349.29373 2592; 349.45296 2689735; 349.45408 692364; 349.54778 1417852; 350.04858 177775; 350.20045 75670; 350.67385 52090; 350.72062 46514; 350.82282 1439683; 350.85514 1884497; 350.92281 1973269; 350.99215 819530; 351.13154 61977; 351.2537 162; 351.33983 273103; 351.38396 22797; 351.6682 47000; 351.86277 140876; 351.88922 39589; 352.08631 1303143; 352.22551 4508676; 352.25998 148517; 352.41933 1009408; 352.64099 1773962; 352.73694 1715576; 352.90216 1893253; 352.98178 1084724; 353.2707 10016; 353.34834 2347520; 353.57813 20244763; 353.69423 2325220; 353.96064 2136321; 353.9875 28586; 354.24969 19528; 354.65337 47675; 354.66901 23070; 354.84231 42963; 354.91449 48398; 355.00142 1614017; 355.18121 38761; 355.32377 118192; 355.34604 8111; 355.43244 4497; 355.48396 64106; 355.57689 2916; 356.16809 29669; 356.20178 2499093; 356.24615 7347515; 356.54918 2750962; 356.58247 67297; 356.63317 3316767; 357.11424 29045; 357.19148 59349; 357.70357 70721; 357.7036 40449; 358.1129 4095; 358.37612 4441544; 358.80471 4496707; 358.89229 15189; 358.95964 2658408; 359.13323 31742; 359.49257 69021; 359.54681 8223; 359.74712 1023152; 359.79362 840415; 359.92536 1303628; 360.25285 142825; 360.52552 3466; 360.9405 29953338; 360.97584 124532; 361.00469 7131531; 361.31828 20618; 361.54859 8424; 361.62039 90255; 361.83595 10350; 361.90992 239931; 361.92858 42024; 361.9511 1166; 362.08606 2096383; 362.2286 8362626; 362.40613 30563; 362.43477 3554484; 362.44181 49698; 362.59653 1134783; 362.60779 5096; 362.94733 201760; 363.12911 23387; 363.16926 236643; 363.87114 78544; 364.28486 4173889; 364.58156 70411; 364.72832 1311301; 365.00473 4736; 365.04201 127982; 365.46367 169391; 365.51925 4197913; 365.59294 5948; 365.60018 10939; 365.87174 431; 365.91486 4633; 365.96883 153440; 366.29866 29966; 366.48755 10491; 366.64243 4781; 366.70988 172519; 367.04241 60677; 367.06269 1302467; 367.35147 7810; 367.47179 27016; 367.88276 42653; 367.95054 3035547; 368.02681 19557325; 368.02762 53164; 368.20123 66312; 368.2446 6513; 368.37299 4849; 368.4611 22459; 368.61584 1403306; 369.17906 1493410; 369.37901 25024; 369.61027 1801179; 369.82498 6298115; 369.92677 10186; 370.0544 831; 370.10207 990400; 370.32316 12927604; 370.38728 594417; 370.53876 2400914; 370.72062 46036; 370.82926 24356; 370.8369 48420; 370.85288 176506; 370.90369 518266; 371.00817 3044160; 371.06914 775167; 371.29572 9476743; 371.69615 3747848; 371.83743 156893; 371.89039 110828; 372.03905 1640559; 372.04442 8940753; 372.36403 5729; 372.85977 48377; 372.934 55810; 372.94484 5437; 373.1889 7713; 373.29952 4914801; 373.78378 15094328; 373.79626 1344; 374.02945 17846071; 374.69591 90378; 374.76484 20062; 374.77171 3783; 374.84305 40415; 374.90837 1964369; 374.92754 7458; 375.06769 938641; 375.37332 23884324; 375.41794 3413967; 375.44211 27080; 375.57132 70453; 375.70205 68768; 375.82844 2126024; 376.09961 22354; 376.18918 427909; 376.30825 1892278; 376.67641 4229; 376.91295 44226; 377.06521 1943; 377.06924 8424; 377.29952 9885; 377.42212 91622; 377.53972 42083; 377.69111 6037; 378.67387 19214; 379.38273 1589757; 379.40373 28968; 379.93438 248672; 380.05016 8296517; 380.15347 2807; 380.30287 21172; 380.47119 56839; 380.68617 3373806; 380.85492 69725; 381.20131 9190055; 381.46849 2516687; 381.63255 7233555; 381.87418 117070; 381.91131 15692; 381.99453 4125721; 382.23697 43972; 382.48134 4689300; 382.56153 609637; 382.94062 4953112; 382.97151 38110; 383.18619 589648; 383.3405 8885; 383.52085 441903; 383.82913 402331; 383.90628 31590; 384.14582 37751; 384.40268 5204417; 384.55244 4804945; 384.65716 32687; 384.90464 37472; 384.99414 4966333; 385.00286 9918979; 385.00606 73632; 385.13673 7088006; 385.32031 133571; 385.42258 169270; 385.44519 3723956; 385.47147 327; 385.79967 12631; 385.86688 71762; 385.97386 969663; 386.14923 4566; 386.2709 438916; 386.71748 265853; 386.90288 30226; 386.96706 8787; 387.15025 7657; 387.25895 4657; 387.35987 12864; 387.80938 40802; 387.82024 12914; 387.85303 1917484; 387.88268 1974813; 387.97214 58037; 388.17424 78671; 388.50475 23132; 388.83403 6949; 389.053 1710; 389.15137 68979; 389.26041 656554; 389.55298 49922; 389.9738 8038; 390.18125 118967; 390.63688 71626; 390.87224 54423; 391.05821 46782; 391.59016 58056; 391.66186 8655368; 391.74844 38399; 391.78646 1641407; 392.03641 6975; 392.10677 7876; 392.19932 575678; 392.79021 703279; 392.90953 29738; 393.447 5486; 393.47566 13284; 393.48447 72658; 393.83419 6481047; 393.86145 29186; 393.94379 40602; 393.96044 357875; 394.12619 9231; 394.43809 70559; 394.46807 4891307; 394.49721 7917; 394.52862 146948; 394.58262 69946; 394.71305 4803411; 394.78279 594538; 394.84613 1954; 394.87793 10625; 394.98297 3674843; 395.22282 2811461; 395.51913 1983; 395.64978 1601171; 395.94286 4892765; 396.01191 2032997; 396.07852 1742627; 396.11635 318413; 396.65435 62135; 396.8905 15072; 396.97481 1617; 397.27545 15257; 397.47514 23957; 397.56648 22830; 397.57536 69944; 397.62253 37155; 397.72099 1193395; 397.88919 1111398; 397.93368 722160; 398.04503 14217; 398.04735 71514; 398.1898 61654; 398.24533 1832236; 398.28872 984645; 398.41959 10486218; 398.59576 2529; 398.63374 5402; 399.01953 72538; 399.05747 900417; 399.21541 10744367; 399.61323 35144; 399.73812 16384; 400.04981 110975; 400.18322 70727; 400.22935 2130146; 400.31181 158525; 400.52118 21631; 400.71454 63561; 400.838 45368; 401.04499 9650; 401.19586 1332102; 401.67122 1830573; 401.97569 49058; 402.20697 3868183; 402.24868 1965191; 402.32582 1079; 402.34906 14063431; 402.3674 5665249; 402.49405 827402; 402.76059 6931; 402.8601 429765; 402.8998 39507; 403.52688 446930; 403.78587 60485; 404.13747 2682766; 404.16221 9896744; 404.54098 22011; 404.58438 24076; 404.91215 38924; 405.01699 121608; 405.08901 16037; 405.20783 2167; 405.25919 11850; 405.52865 31068; 405.71598 9968; 406.03867 70328; 406.33976 6522267; 406.5062 28959231; 406.77013 6342; 406.97592 93908; 407.02061 26566338; 407.06174 3906205; 407.3304 664374; 407.40238 22434; 407.43089 9737100; 407.64021 4556789; 407.64289 29665640; 407.92924 4807; 407.93692 4677; 408.21386 8909; 408.28658 1272666; 408.687 53457; 408.68785 4760799; 409.71557 45666; 409.78907 7535952; 410.04339 20257; 410.16522 31424; 410.35329 40789; 410.38983 32294; 410.41753 4483073; 410.55221 79440; 410.61937 47927; 410.94529 173264; 410.94887 8618; 410.99127 24015; 411.56225 8284; 411.57214 6031; 411.89189 824768; 412.64684 38322; 412.7616 146752; 412.81731 28301; 412.83779 256052; 413.16115 20166; 413.31833 5600; 413.40999 20031; 413.57857 5061322; 413.78188 35102; 413.79246 1206211; 413.96782 21963; 414.16629 18423872; 414.21258 56711; 414.34739 17165; 414.52685 75534; 414.6909 1356588; 414.85428 61251; 414.90941 12551637; 415.55105 5760; 415.78079 494038; 416.07581 301966; 416.13445 23155; 416.2857 54655; 416.38653 4200; 416.55115 29955; 416.60778 5597402; 416.86057 1277137; 416.87634 64086; 417.13379 4598735; 417.1461 77508; 417.15466 29675; 417.32404 193988; 417.71108 1627; 417.75251 768281; 417.75929 7141637; 417.76888 28701; 418.09733 4601877; 418.5214 3291106; 418.7647 34683; 418.94161 14573; 418.95641 25690; 418.97573 74642; 419.09925 8743; 419.23562 2619; 419.33951 28008; 419.57314 1398865; 419.6626 1688432; 419.72144 74800; 419.809 18569013; 419.94305 73650; 420.09666 7434335; 420.37216 193112; 420.67043 9053424; 420.7283 60424; 420.7884 42224; 420.84765 57584; 421.17502 14550545; 421.6502 74887; 421.70016 1094832; 422.39433 1997860; 422.6794 3510750; 422.68869 623996; 423.03415 151720; 423.07652 149463; 423.28706 858986; 423.29844 1168355; 423.70933 5834; 423.80332 46731; 423.80993 19816; 423.85849 38309; 424.05899 3561002; 424.07484 21278; 424.41694 497; 424.44477 440353; 424.50247 12013921; 424.57685 23340; 424.78178 20726; 424.86706 1170461; 425.10018 28044579; 425.18232 21966; 425.21583 39492; 425.26716 1054867; 425.31287 20508; 425.41114 21340153; 425.42984 39186; 425.58092 27144; 425.64057 153649; 425.65482 27592975; 425.84039 25354; 425.89014 4419208; 426.01648 60249; 426.09979 16563; 426.12778 3248857; 426.137 71736; 426.2258 33430; 426.44943 19942725; 426.46631 4442055; 426.53546 57344; 426.58242 21855; 426.81632 30075; 427.0084 396068; 427.05136 4272381; 427.25085 21599; 427.35007 1959534; 427.48071 2151188; 427.48902 6343; 427.51215 1319; 427.62875 38944; 427.70427 58470; 427.96246 12037; 428.15279 7275; 428.15982 966973; 428.60019 1700055; 428.68473 4628; 428.83131 3866075; 428.85161 1269939; 429.20857 8393169; 429.45077 923643; 429.46352 79317; 429.5146 30500; 429.56344 35994; 429.60691 22134; 429.86482 2848924; 429.894 2096874; 430.33858 6847; 430.36399 28583; 430.59352 6117867; 430.77334 6610; 430.84954 5277905; 431.33116 13135; 431.55517 3876663; 431.71947 9709139; 432.05778 32748; 432.40719 6543481; 432.45886 10631; 432.56322 2933374; 432.78315 687344; 433.06739 4611; 433.15119 8822; 433.62714 61866; 433.83095 40857; 434.06852 2382315; 434.12035 1356224; 434.16189 4427213; 434.22133 841604; 434.59462 272661; 434.8597 77148; 435.02558 575; 435.37134 40701; 435.39637 556702; 435.72823 1660915; 435.84419 9161523; 436.20902 146571; 436.26062 7696362; 436.73484 196406; 436.81447 701237; 436.8189 2513411; 437.25867 757803; 437.39235 99823; 437.74479 7921; 437.95339 66491; 438.20967 3343; 438.36606 7864; 438.36613 1836010; 438.40898 74252; 438.41159 41622; 438.50661 4419898; 438.75175 397044; 438.7846 14177; 438.88524 41758; 438.8855 4003096; 439.06075 1032336; 439.32662 22367; 439.50155 2810; 439.78297 1089673; 440.54009 11565; 440.65139 122190; 440.82447 4339; 441.27223 885639; 441.58176 465061; 441.61384 392736; 442.03715 3719; 442.24652 44679; 442.35718 1022; 442.44514 3705; 442.45459 4466385; 443.30152 43696; 443.34957 5045; 443.45833 77110; 443.51216 22245; 443.96114 31601; 444.33038 5281; 444.62609 191522; 444.7992 24872897; 444.84181 575813; 444.87506 180945; 445.17502 8987; 445.21529 14472; 445.45894 75566; 445.71187 194552; 445.89061 5336111; 445.95656 3340; 445.9701 3660368; 445.97919 1576718; 445.99395 3503; 446.23148 3499887; 446.23287 42796; 447.0187 1818313; 447.31122 15087153; 447.5106 7013; 447.7474 30738; 447.77104 12915230; 447.85625 30267; 447.86334 36771; 448.4116 1877503; 448.4932 19599; 448.58718 5804; 448.63528 41973; 448.67989 17480; 449.42403 4886; 449.46809 6930; 449.63389 6182543; 449.64134 47097; 449.87025 3150953; 449.88232 4491242; 449.93516 28527; 450.50359 7065494; 450.74867 1606974; 450.75379 23619; 450.98793 2328194; 451.1121 160877; 451.19921 66666; 451.58977 30979; 451.70066 117858; 451.92775 1801; 451.9906 9369740; 452.2031 35552; 452.35919 14249; 452.57621 1065; 452.77137 9418212; 452.87825 22597; 453.07788 17404; 453.29238 130383; 453.32068 26179; 453.57361 4286229; 453.72661 701944; 454.4273 138; 454.48463 75099; 454.5036 506916; 454.53022 7493; 454.53789 17456; 454.82361 19149; 454.89605 38242; 454.97009 446964; 455.0467 30632; 455.40262 8558762; 455.43066 22689; 455.63136 78277; 456.00963 456377; 456.01261 4432697; 456.15989 27839; 456.54048 9210; 456.71828 68356; 456.89514 78161; 456.94409 52925; 457.08608 21611; 457.21593 9604099; 457.84218 79323; 457.8943 1261118; 458.31684 7930; 458.65898 76786; 458.67961 50587; 458.70257 3234615; 458.80764 9951; 458.88804 1994642; 459.04376 26206; 459.08514 65941; 459.11816 23600; 459.28131 4422586; 459.3909 66465; 459.39483 195452; 459.4152 1567474; 459.57032 45745; 459.70867 1093221; 460.03366 3886; 460.18284 93077; 460.2918 19925; 460.41087 8924; 460.47616 55109; 460.53998 57488; 460.5873 110012; 461.0232 74200; 461.06727 195955; 461.07557 21575; 461.2274 61968; 461.27803 25389759; 461.38646 394783; 461.46543 1766144; 461.50435 19867986; 461.55702 46453; 461.77918 8131; 462.05203 553868; 462.07998 32561; 462.09971 7546745; 462.13806 3839457; 462.21878 474139; 462.52116 74035; 462.52197 67071; 462.64638 32456; 462.81329 1743404; 462.81921 25426; 463.4046 75024; 463.45648 6870226; 463.48729 21925; 463.55581 37438; 463.60167 8217858; 463.67668 100155; 463.76597 38336; 463.81915 58565; 464.13008 12456; 464.85084 69251; 464.87979 3065765; 464.96012 9539640; 464.96339 4975798; 465.05883 7162; 465.14973 52351; 465.3888 264402; 465.47184 768802; 465.54239 3013; 465.62198 24799; 465.9464 1614862; 466.07955 420531; 466.17492 7294375; 466.28041 9609; 466.28469 2012684; 466.35091 20600; 466.427 340641; 466.45862 8918681; 466.50934 22264; 466.56877 894417; 466.65774 6579; 467.54983 1980503; 467.7035 4118429; 467.94241 3292; 468.48071 93107; 469.17947 1190581; 469.18359 29542628; 469.3718 3019; 469.38095 5027; 469.42411 1995346; 469.80123 34810; 469.84076 2447; 469.84239 1270664; 469.90394 1839849; 470.16924 700439; 470.27261 1056757; 470.28213 1133362; 470.5015 9182214; 470.6652 3087358; 470.77191 3501645; 471.18202 4336210; 471.26068 49655; 471.59528 86728; 471.68295 43448; 471.7873 17683; 471.88947 25944; 471.93676 27627; 472.20191 1868713; 472.20612 1613211; 472.32144 1005453; 472.40818 9961550; 472.43045 30; 472.68431 36824; 472.69106 73816; 472.73975 548001; 472.78668 72650; 472.94758 24609; 473.09135 981182; 473.22351 7; 473.2263 44287; 473.40058 1899202; 473.48193 39180; 473.59989 1108310; 473.60513 30708; 473.78699 74486; 473.82659 3089494; 474.31362 2920588; 474.37458 68012; 474.4278 793774; 474.68209 26530; 474.69048 7109585; 475.16371 9984; 475.20558 30592; 475.3282 68106; 475.43541 4043; 475.59058 74453; 475.81011 4141542; 476.24359 53330; 476.27757 3726; 476.72707 9006; 476.76624 1524932; 476.78587 26235439; 476.79931 29414052; 477.00162 771657; 477.26128 277259; 477.48496 8647; 477.52068 523307; 477.53141 1346522; 477.62382 1945944; 477.64473 778327; 477.77431 64966; 477.99724 2283055; 478.41465 710908; 478.42773 3592; 478.51994 23890; 478.79676 5962; 478.83698 996032; 478.86905 44739; 479.14982 23409; 479.17298 9916; 479.36405 2248; 479.82143 60004; 480.04444 2717592; 480.13459 849988; 480.80258 1368991; 480.97523 21373; 480.98924 51871; 481.24946 9448; 481.26768 33086; 481.31258 33249; 481.37645 71122; 481.57508 5255; 482.00471 1286763; 482.09095 23342; 482.13183 4602491; 482.3919 3359219; 482.49564 54615; 482.5326 26204; 482.61975 2690; 482.66477 1112060; 482.69862 1729685; 483.02214 36660; 483.13035 2533; 483.2158 46611; 483.37405 416063; 483.39053 8226279; 483.40395 22550; 483.45276 265623; 483.85047 4658; 484.26535 3991885; 484.30491 16467; 484.62668 25933; 484.70331 29477; 484.95703 21158; 485.17449 1755417; 485.23226 4611; 485.59814 32959; 485.73135 112011; 486.0671 949; 486.06749 4007; 486.07527 2478157; 486.0792 4059; 486.08894 139942; 486.21922 301511; 486.29434 23920; 486.54636 10509; 486.60062 17566; 486.8572 2208699; 486.90478 14396; 487.05291 5523; 487.09736 1887357; 488.04024 12791; 488.19991 2074; 488.78023 7687834; 489.00406 15403; 489.04216 1304510; 489.07459 67854; 490.05964 149615; 490.10431 76494; 490.2606 6476896; 490.27997 8171; 490.33959 21204; 490.37381 262820; 490.43247 5086; 490.56055 356655; 490.7898 4449359; 491.22105 70423; 491.28583 4917114; 491.29978 100343; 491.80951 26516; 491.87905 644381; 491.96208 176879; 492.05101 21388537; 492.15073 21999902; 492.18972 32319; 492.31939 3623472; 492.62787 2439; 492.77287 905710; 492.804 10805; 493.07671 56123; 493.12846 314037; 493.48219 36049; 493.56343 22477; 493.75338 23562; 493.79581 8405; 494.27684 493869; 494.34131 2433007; 494.39737 123256; 494.45604 1148; 494.96004 128916; 495.75707 7146; 495.77349 2090409; 496.01355 6736; 496.03798 48613; 496.13256 49627; 496.21637 54638; 496.5128 29735; 496.85363 4171193; 496.97098 58167; 497.11268 3962790; 497.33515 18635; 497.58379 169844; 497.64503 153707; 497.8444 21552; 497.95768 40670; 498.05743 28448; 498.36285 1578208; 498.60593 34988; 498.86507 40471; 498.91626 6065; 499.00048 9471324; 499.16751 3763792; 499.49303 26266; 499.6644 59502; 499.70962 179960; 499.72046 2518611; 499.86122 6795 +<5, 7>: 0.09909 30314; 0.24991 23170; 0.35262 510094; 0.43593 27482; 0.59736 1946; 0.65959 24593552; 0.71089 7495; 0.9215 3405; 1.03958 26870; 1.06011 1068718; 1.17641 1935673; 1.29669 339978; 1.5694 2950; 1.60698 6274; 1.78752 1012568; 2.08378 3352; 2.34808 27121; 2.36731 1243309; 2.47716 39149; 2.62896 5306247; 2.762 1903403; 2.77096 7080; 3.14868 349126; 3.30067 141755; 3.37617 37130; 3.45385 77453; 3.68713 3376659; 3.71838 45192; 3.72233 2230; 3.90382 4292530; 4.35719 27899; 4.68325 14217; 4.75687 1509584; 4.88891 4590943; 4.95399 1027; 4.96029 417028; 5.10438 20623; 5.15874 610874; 5.48773 5452; 5.92278 2912742; 5.97669 26632528; 6.2006 1710236; 6.21087 4733; 6.24249 1712892; 6.35147 113334; 6.38242 31393; 6.47573 47986; 6.76118 3245; 6.90167 7915; 6.93203 2888; 7.05877 72750; 7.06632 839660; 7.36776 1712525; 7.42463 22424; 7.43947 37080; 7.45339 21354; 7.46095 1535793; 7.85957 8825899; 7.89221 79181; 7.94733 17190; 8.03284 4211619; 8.06532 20939; 8.07879 4118; 8.08872 1092088; 8.28939 7070; 8.42441 5863887; 8.66175 965; 8.70287 30172; 8.79141 9751860; 8.94973 53822; 9.02397 697052; 9.34258 2073288; 9.34975 30560; 9.48672 8847; 9.75527 40311; 9.90174 1980696; 9.95967 9321263; 9.9797 367724; 9.99812 24299; 10.36106 1571847; 10.79826 12837998; 10.93069 8683; 10.98314 34163; 11.13504 49204; 11.1635 73190; 11.53581 9707221; 11.54815 60299; 11.78958 8099417; 12.06215 20149; 12.10023 10684; 12.1453 1592496; 12.37817 127565; 12.72722 1194; 12.7309 152703; 12.83182 34010; 12.83776 78136; 13.18225 75721; 13.26364 7262; 13.30757 162115; 13.44088 4454699; 13.48425 567352; 13.54561 1358; 13.99101 8737647; 14.11832 872817; 14.53241 6110; 14.72386 21696; 15.04286 45456; 15.15266 3575496; 15.2857 4134; 15.5429 29073; 15.84713 105042; 15.8704 9975; 16.02722 8550565; 16.16948 17628; 16.25739 73055; 16.30744 2453; 16.50936 8069894; 16.68671 533945; 17.00483 14202; 17.09016 2243333; 17.25864 35538; 17.28034 2331777; 17.7658 4571881; 17.93017 33236; 18.1613 1800; 18.59395 79147; 18.8332 125692; 18.88396 1696038; 18.97429 9343683; 19.13946 11096; 19.23007 68340; 19.38862 71114; 19.72292 18700; 19.79048 57093; 19.82041 137149; 19.94483 5628; 20.33018 29678; 20.46273 23984; 20.46338 879601; 20.46367 18553; 20.53265 31867; 21.10686 153909; 21.4536 29388; 21.66917 6408360; 21.75233 1017; 21.84359 42202; 22.11769 1203453; 22.20612 1530230; 22.32465 26997; 22.85369 25638; 22.883 2892; 23.06433 1306865; 23.34079 4364293; 23.44052 1136520; 23.58031 7039770; 23.58095 68780; 24.22753 40388; 24.67 4895210; 24.69523 148476; 24.77155 76082; 24.91431 161695; 25.07253 2575449; 25.07734 6475329; 25.10785 8776; 25.87973 6375; 25.90002 54527; 26.06178 29638; 26.11567 1201971; 26.28752 4749; 26.48539 24791; 26.79929 1933664; 26.8088 4750656; 27.20438 73011; 27.52806 684484; 27.55204 26675; 27.72011 484; 27.74558 4264084; 28.90798 75860; 29.02383 13928344; 29.03322 61693; 29.18797 38335; 29.24264 93044; 29.71809 56515; 30.35893 1000273; 30.46187 58749; 30.51863 6758; 30.68363 1390979; 31.0144 6166; 31.107 7134; 31.26409 28189; 31.38834 44461; 31.42323 1410148; 31.54406 24523; 31.81441 5091361; 32.1265 58915; 32.12651 76993; 32.23074 38555; 32.27621 1583656; 32.36055 60978; 32.85501 47056; 32.88221 4725; 33.1687 780013; 33.56002 1591310; 33.60915 5003; 33.95237 263358; 34.53908 1184; 34.70876 74941; 34.95736 16053; 35.04997 17780; 35.61358 9988; 35.83326 550472; 36.09903 185905; 36.1304 11070; 36.14328 1656623; 36.23385 183685; 36.25999 410931; 36.49997 88320; 36.71101 831070; 36.88715 1357396; 36.88898 8611; 37.07325 5228; 37.23851 20910; 37.29607 162523; 37.52675 204321; 37.55957 9287; 38.18691 28434; 38.22338 110762; 38.44326 22499; 38.84848 62160; 38.92302 48306; 38.99156 60140; 39.17874 19489; 39.45559 1107533; 39.51567 9108; 39.51897 26737; 40.00049 3824480; 40.1845 2638; 40.22673 7356858; 40.42673 17692; 40.53771 6391869; 41.03595 28340; 41.0973 5752041; 41.1934 8015148; 41.23061 7080317; 41.24629 70290; 41.38559 502470; 41.49579 8647139; 41.72595 3676534; 42.05855 134340; 42.58229 22032; 42.71176 2200445; 42.86875 7317225; 42.87658 192801; 43.44679 134; 43.46986 19026; 43.60491 66374; 43.61091 507897; 43.74432 1209; 44.14402 28605; 44.30875 63990; 44.50025 35776; 44.75795 414788; 45.03143 4548824; 45.50546 116544; 45.65707 15029; 45.78171 24574; 45.84647 58309; 45.96244 9081; 46.08518 938767; 46.1068 29144; 46.15396 855982; 46.24336 6121994; 46.51979 416719; 46.60462 28348; 46.65279 1387; 46.6996 23129; 47.08546 7227101; 47.18817 1769063; 47.46229 2811; 47.92657 76827; 48.08598 6509; 48.115 61182; 48.30669 541162; 48.31079 3582; 48.54779 8476; 48.55396 3020023; 48.69217 1959; 48.70627 27029; 48.91524 24630; 49.0036 52032; 49.08109 29296; 49.32945 7441; 49.52381 27260909; 49.72342 4247; 49.994 3947351; 50.17125 1503095; 50.25636 5128; 50.26827 2163; 50.32458 772956; 50.34627 859560; 50.65745 26986; 50.91336 581830; 50.96112 1015018; 51.01761 42913; 51.07103 28391421; 51.12663 3863; 51.75542 41692; 52.37796 61782; 52.63598 19248; 52.70676 25122409; 52.74188 638269; 53.00754 26223; 53.05686 1198113; 53.4492 3979; 53.7218 47996; 53.77853 1492962; 53.86147 2792; 54.15444 1455487; 54.21559 25408; 54.58659 1531887; 54.64549 8755; 54.67741 66972; 54.86218 68710; 54.99059 1994262; 55.26723 930707; 55.27622 28210505; 55.58847 26392; 55.74916 68908; 55.76245 3270227; 55.92976 4995; 56.17149 2552; 56.20889 1235; 56.46172 9419992; 56.52144 2082397; 56.55851 694671; 56.65039 495315; 56.75985 46226; 57.03797 25829555; 57.17292 52119; 57.32203 71237; 57.3414 79944; 57.76451 196270; 58.21762 648826; 58.34337 24149; 58.363 12914; 59.023 9951; 59.15138 620594; 59.4985 264334; 59.60745 8798; 59.66566 24525; 59.71415 1357609; 59.90731 305; 59.9192 564967; 59.92623 12271; 59.98585 1115; 60.32874 2417; 60.34613 620912; 60.39074 8108915; 60.48661 27434439; 61.0489 6238; 61.05586 34916; 61.09007 674136; 61.14289 1948; 61.2566 8750769; 61.29994 820262; 61.40049 61986; 61.53086 93587; 62.13221 4409; 62.19129 28729; 62.5333 19678; 62.68046 4737089; 62.70032 70703; 62.93677 342825; 62.95488 381810; 63.01387 4042626; 63.02516 5572978; 63.05955 609049; 63.13711 29414; 63.18843 54752; 63.38204 1541494; 63.49882 19434; 63.53556 24010; 63.67394 1629069; 64.04602 19897; 64.0841 4046; 64.1954 2642808; 64.39819 2273371; 64.40984 18417; 64.57225 951365; 64.65842 7991323; 64.78321 32302; 64.79945 5125; 64.83254 110207; 64.85472 23833; 64.85943 2619643; 64.97137 7464; 65.05793 3622; 65.21676 123; 65.31504 967266; 65.61036 67270; 65.83441 925905; 65.8928 1219544; 66.37336 9102; 66.49969 2744; 66.60341 626247; 66.71819 928609; 67.06851 2789261; 67.15102 62839; 67.16801 5065; 67.22919 6182; 67.52155 20621143; 67.60438 8925885; 67.81136 12698; 68.04883 44190; 68.26558 3575732; 68.58881 754557; 68.61563 10513368; 68.71408 62292; 68.91945 60966; 69.04522 7554776; 69.87144 32447; 70.13945 21042; 70.21186 7144632; 70.50911 34537; 70.75632 71170; 70.79447 8934931; 70.82946 42196; 70.86919 25546; 71.08323 31440; 71.28727 20549; 71.54484 5682888; 72.14535 4719; 72.25469 65401; 72.42173 17990; 72.44344 26369; 72.74763 1342634; 72.7544 27500056; 72.99111 14965; 73.1256 26424; 73.14253 33876; 73.15648 109883; 73.32771 62184; 73.49181 4731; 73.65308 5765; 73.76688 20137; 73.94273 9547315; 74.297 61204; 74.31529 4628155; 74.41265 24060; 74.42354 685571; 74.53813 466725; 74.58782 19089342; 74.7412 63625; 74.76535 1147942; 74.77268 1242057; 74.93945 26051; 75.18693 637; 75.20696 26449; 75.42971 54561; 75.58567 8929232; 75.58695 48388; 75.7536 56518; 75.86234 2465; 76.37314 55797; 76.40271 2685279; 76.42911 20847; 76.44331 55894; 76.60663 54771; 76.79285 10126; 77.08367 1168932; 77.17952 29426; 77.19134 8018; 77.51587 29870; 77.54907 4793408; 77.576 275158; 77.94891 63099; 78.27282 3722; 78.34644 391656; 78.43909 38454; 79.0022 12934743; 79.33344 384997; 79.36688 1956894; 79.49416 14755; 79.67687 2063457; 79.75819 7728732; 79.79955 5736; 79.80007 2700525; 79.87451 21793; 80.02175 40213; 80.19247 20503; 80.60645 1172; 80.91024 1791811; 81.08325 2311584; 81.14318 31068; 81.28057 9742; 81.31417 27757; 81.67756 198880; 81.74435 3279; 81.87753 2238; 81.8985 39134; 82.12068 50926; 82.22063 81836; 82.60336 9929; 82.6431 1161727; 82.72798 17006; 82.93741 160232; 82.97353 8857; 83.12381 868011; 83.15578 18094; 83.28575 7241184; 83.74485 64082; 84.07555 53675; 84.33006 29873; 84.51877 6177; 84.56414 6120; 84.56422 8139259; 84.63341 25837; 85.23652 6910357; 85.29887 37702; 85.4238 8467086; 85.72831 60368; 85.85535 29855; 85.96177 22135; 86.74525 8936081; 87.19551 3244832; 87.3238 801035; 87.51697 37219; 87.53882 26436969; 87.56996 30715; 87.59437 91175; 87.67264 3300041; 87.72693 2203903; 87.8541 3219178; 87.95532 5226; 88.16703 73480; 88.23022 137223; 88.44616 3782688; 88.71711 10954; 88.81616 5918815; 89.43887 147494; 89.47652 24838; 89.50219 20449; 89.65319 84773; 89.74523 1188006; 89.83387 3385209; 89.89827 16743; 89.92172 30898; 90.03958 54018; 90.05026 46746; 90.26378 43849; 90.51804 52963; 90.92547 24771; 91.06327 6505034; 91.08034 8395142; 91.09994 629365; 91.29565 3348; 91.88531 6550; 92.11254 101614; 92.1718 23609; 92.17674 10023382; 92.67011 21881; 93.09543 7507; 93.31823 4989186; 93.34682 50540; 93.35804 73269; 93.36409 133917; 93.38322 2519; 93.67454 51878; 93.7156 5769; 94.06136 329222; 94.14126 69068; 94.33835 6216; 94.40641 11169; 94.74023 11418; 95.12212 20869516; 95.14823 15584376; 95.27638 14804039; 95.57416 471172; 95.60694 27799; 96.07147 4460; 96.07987 3204; 96.08213 50571; 96.63527 26433; 96.8992 395054; 97.0891 270097; 97.12506 6756308; 97.16042 63627; 97.24533 6515265; 97.3568 1484941; 97.49955 7284346; 97.5558 23979; 97.62477 9363843; 97.7257 10216; 97.86787 1046531; 97.99901 2020966; 98.62175 811433; 98.64322 26503; 98.72947 9158; 98.74173 19280; 99.10334 851913; 99.1235 639269; 99.13379 2575; 99.1614 835; 99.37774 4268136; 99.38878 68557; 99.3937 69066; 99.59778 247163; 99.68283 66232; 99.69112 46306; 99.76235 1842199; 99.80562 1364648; 99.85323 3842839; 99.90799 1275764; 100.29034 4784; 100.50799 1844983; 100.74227 115969; 100.75325 57154; 100.89175 76776; 100.98458 521018; 100.98705 4711589; 101.34782 2483501; 101.4176 192870; 101.784 63342; 101.78598 8794; 102.24457 191963; 102.5113 266337; 102.58394 6201; 102.61129 28812; 102.62583 9748653; 102.6886 1840349; 103.0851 77585; 103.21452 7434442; 103.2468 517851; 103.42112 35455; 103.48781 29283; 103.77298 51720; 103.82081 63391; 104.02868 284963; 104.39107 1244; 104.42383 135647; 104.72439 56505; 104.79619 232; 104.9823 55776; 105.07987 955083; 105.08757 2473; 105.19349 7613; 105.31731 8779; 105.36808 26480; 105.73665 73702; 105.85391 9616245; 105.91722 290614; 105.98619 41458; 106.40301 79645; 106.62387 45706; 106.79912 2666710; 106.98666 189104; 107.09671 32993; 107.26129 58793; 107.34507 7805; 107.48232 1113697; 107.48662 13266; 107.67448 71463; 107.72944 3908594; 107.85358 720566; 107.93651 844210; 108.15496 494022; 108.2145 9643606; 108.43316 57196; 108.60654 546238; 108.67205 31898; 108.77354 9790747; 108.88481 132524; 109.20917 1525146; 109.35848 32995; 109.55012 5755; 109.68595 16516225; 110.05616 6909281; 110.1366 26214; 110.20748 807564; 110.23222 6040; 110.50448 17400; 110.64496 1244618; 110.67441 1532276; 110.75411 1358070; 111.10151 76889; 111.24998 1746187; 111.60998 23304; 111.77041 2338745; 112.10518 443765; 112.13024 9884; 112.37909 1668287; 112.94641 483; 112.98615 2437535; 113.18023 21042; 113.38462 2234732; 113.7388 65377; 113.77697 4712; 113.79235 741; 113.8375 1339516; 113.90875 2727747; 114.088 230378; 114.18389 21324; 114.62977 5523902; 114.65977 2229337; 114.923 1480408; 114.9466 14296; 115.20287 42917; 115.50628 9443062; 115.75851 49339; 115.87613 7289; 116.24186 5526; 116.25088 50422; 116.36164 5829676; 116.38115 35386; 116.40867 6998061; 116.55453 49626; 116.75917 4874; 116.79737 949497; 116.84601 8021; 116.85195 60120; 117.06996 1473683; 117.511 423429; 117.59397 40687; 117.64634 707547; 117.65179 479203; 117.93834 31135; 117.98196 155018; 118.9136 552446; 118.93775 11205; 118.97773 79608; 119.00311 915288; 119.02436 4055973; 119.22636 7026081; 119.545 48061; 119.62283 9371461; 119.65827 1682039; 119.83597 29358; 120.05011 59699; 120.67502 69598; 120.75053 27005480; 120.80787 1295; 120.99158 1353704; 121.12377 4450197; 121.1343 43882; 121.23184 3859619; 121.6363 1308269; 121.8662 25187; 122.05996 1152989; 122.08442 9284920; 122.44449 4008; 122.46035 8087; 122.5474 1960367; 122.8484 4224432; 122.9652 27897; 123.24142 3526729; 123.37208 643409; 123.39335 59202; 123.60129 1168839; 123.66067 69919; 123.74554 11049151; 123.82754 122942; 124.6285 3900707; 124.66775 24678; 124.78482 21213; 125.07796 2831447; 125.10028 6266678; 125.46866 2279; 125.50878 16440; 125.58252 583; 125.84703 2078; 126.00171 1901593; 126.46288 79056; 126.67052 794221; 126.68779 73317; 126.70416 3429021; 126.89392 2955; 127.03022 25058; 127.15749 16102; 127.3177 19657; 127.38995 28072; 127.43186 2258494; 127.69726 2755973; 127.9002 16203; 128.00475 9445942; 128.54146 668691; 128.57548 34643; 128.70708 23976226; 128.71719 2148610; 128.9438 9819916; 129.20357 318549; 129.332 59550; 129.41188 1658095; 130.24448 6269658; 130.94361 6492384; 131.00298 3579544; 131.34929 36973; 131.50874 1335334; 131.61511 843790; 131.6325 27438; 131.81873 6922202; 131.82162 55202; 131.87938 11251556; 131.91646 119308; 131.91904 991; 132.54206 16726; 132.55262 39283; 132.79526 7569124; 132.88882 68417; 133.15714 4199; 133.27398 936396; 133.28498 50698; 133.30439 69156; 133.3449 25212; 133.39489 5552; 133.60024 4443; 133.64871 425170; 133.84729 29265; 134.13329 3158711; 134.15961 1876938; 134.34665 1163300; 134.41765 74617; 134.525 1064573; 134.71314 899050; 134.82736 927239; 134.90877 46050; 135.35307 27372; 135.58603 74420; 135.78511 14274; 135.80438 127714; 136.08314 31296; 136.19636 22838; 136.25727 1714587; 136.64082 192266; 136.75587 6087435; 137.12496 5704; 137.24746 7129320; 137.26094 26618; 137.38432 131486; 137.62114 784343; 137.72759 20262; 137.85145 4395; 137.9165 66446; 137.91825 2899913; 138.66305 59146; 138.95205 6520300; 138.99071 67906; 139.07695 199623; 139.16259 26359; 139.37224 8534; 139.68365 34041; 139.7332 13567603; 139.84629 74110; 140.37768 1179; 140.57546 1917233; 140.6 4366887; 140.63838 45057; 140.83216 4365008; 140.91498 9051776; 141.06995 4874379; 141.10835 6103748; 141.18061 270131; 141.43424 24750; 141.49298 27910; 141.54569 115035; 141.65399 68887; 141.96829 5957544; 142.18557 2681; 142.49212 4017143; 142.71531 187948; 142.9815 183405; 143.05975 4251728; 143.14382 65933; 143.18401 75466; 143.32843 23121; 143.43306 59929; 143.54601 8441; 143.9681 3449727; 144.47581 4491024; 144.49822 80036; 144.51236 26229; 144.79233 8311053; 144.88582 3393; 145.42065 84070; 145.42298 8985032; 145.5577 19356; 145.61378 22238; 145.69573 91891; 146.00512 618441; 146.05998 4423372; 146.0642 421876; 146.1332 21720; 146.4883 1095639; 146.54183 5672426; 146.58557 49304; 146.66994 29687; 146.76208 75383; 146.77937 22942; 146.94763 5324; 147.19766 14690; 147.2367 753641; 147.51728 395; 147.55488 23589; 147.61006 194415; 147.66421 2673678; 147.67779 22843; 147.7492 4304; 147.96318 28953; 148.35925 13036; 148.56337 177129; 149.0474 51626; 149.48648 33390; 149.49721 31819; 149.50339 4804953; 149.55176 29642; 149.59317 288877; 149.75047 15204585; 149.78109 1180546; 150.05376 75169; 150.77301 6886; 150.9353 462936; 151.1258 10854; 151.38107 629667; 151.46103 52503; 151.55905 7283135; 151.64267 5539607; 151.73123 1539001; 152.08478 21518; 152.15423 32194; 152.69936 12409; 152.8259 2525420; 153.08345 79862; 153.23048 3096432; 153.31985 2119117; 153.56709 27387; 153.67602 50044; 154.00081 2079035; 154.07376 846769; 154.2306 71413; 154.32181 30460; 154.44152 152942; 154.4502 933630; 154.62103 7424192; 154.69035 3844117; 154.70555 10966; 154.81936 18941796; 154.8796 1470291; 155.00625 26946; 155.16945 1840075; 155.46788 4256; 155.47569 7909139; 155.72966 644542; 155.81099 1098703; 155.84725 726320; 155.95346 1301915; 156.23591 4068752; 156.8032 1343021; 156.96686 1260565; 157.18655 8510515; 157.39518 53939; 158.45081 42386; 158.47815 3345430; 158.49739 32253; 158.71879 25793; 159.01056 1051722; 159.02988 21975; 159.31219 264780; 159.34487 13276; 159.51317 47883; 159.67462 15125; 159.741 435649; 159.84382 165; 160.14213 4814510; 160.21454 9302858; 160.57662 44782; 160.83649 3066651; 160.98978 126252; 161.8691 1277163; 162.19625 3170; 162.29548 163486; 162.48735 43283; 162.77029 6611505; 163.02849 61803; 163.31615 128896; 163.33615 854563; 163.48785 38931; 163.53814 9158; 163.55029 54959; 163.60011 44937; 163.68886 4712025; 163.83151 7365; 163.96497 31537; 164.13221 151812; 164.81183 3877591; 164.81396 8770; 164.84381 71911; 164.96989 4313773; 165.0551 33159; 165.35443 2997; 165.52082 58882; 165.85085 56153; 166.03461 5838273; 166.04644 62591; 166.1128 33174; 166.66508 1706271; 166.67407 1839665; 166.70119 5049; 166.99063 11008; 167.1984 1714; 167.22823 4382992; 167.23155 32117; 167.23226 29652441; 167.28645 6657; 167.32306 41738; 167.32307 4678762; 167.40337 436669; 167.41178 16542536; 167.79334 1540416; 167.80477 13630; 167.88341 616472; 167.97473 71067; 168.02457 5260; 168.17124 5273; 168.74579 445161; 168.91049 8169056; 168.95408 290884; 169.1586 23874; 169.28215 13922; 169.39088 1845098; 169.494 67596; 169.73756 89943; 170.26309 130667; 170.53819 1592351; 170.64802 513745; 170.74854 22213; 170.94298 25250089; 171.01414 3314; 171.45163 1182877; 171.53144 625105; 171.59046 1378; 171.64417 2588; 171.74153 296234; 171.86613 28743; 171.90095 28778; 171.93002 49111; 172.08344 1740946; 172.09835 195552; 172.36884 19437; 172.71595 3379889; 172.74708 42310; 172.82451 733566; 172.96027 69349; 173.13658 3958323; 173.22056 5680267; 173.48794 73295; 173.63448 8877; 173.70071 8344975; 174.24114 38268; 174.36557 3315621; 174.45979 49384; 174.51216 64505; 174.58776 28617; 174.63761 33198; 175.03014 1280773; 175.35909 44479; 175.7034 6181948; 176.00932 281629; 176.22085 34685; 176.24263 24058316; 176.33165 84318; 176.42197 22738; 176.96198 153361; 177.49414 21370; 177.67621 129944; 177.70536 34452; 177.93402 21790; 178.01999 4285624; 178.26878 1931476; 178.60364 158090; 178.66043 755816; 178.74837 59993; 179.05175 35007; 179.10372 15254; 179.43262 17823; 180.03124 270658; 180.11046 614785; 180.1833 15549; 180.19616 62686; 180.30127 6414171; 180.39936 3957583; 180.46929 614227; 180.53586 1111139; 180.74938 1914977; 180.87739 19670; 180.917 20489; 181.03464 4477373; 181.49902 73592; 181.51722 4052024; 182.01486 6562863; 182.16379 926303; 182.19488 155782; 182.27208 1107032; 182.66547 6807; 182.81373 1390800; 182.82702 2282850; 182.89616 44243; 183.07385 3455040; 183.85226 1251516; 184.16847 53058; 184.2015 1633505; 184.28767 962511; 184.49339 897632; 184.63504 22416; 184.64088 383016; 184.75811 59194; 184.80693 275281; 184.96278 9724; 184.96682 32407; 185.38478 56659; 186.00086 8633; 186.2075 22251; 186.64189 8613; 186.75401 4542; 186.87437 4309; 187.10329 63692; 187.12607 16983; 187.18438 21151; 187.33773 2836802; 187.49478 1470480; 187.581 29547; 187.69065 840647; 188.26219 1711; 188.80038 36585; 189.18755 1178867; 189.26155 586196; 189.56672 52315; 189.75083 31400; 189.75175 7278; 189.93372 73151; 190.1023 69313; 190.34153 4743060; 190.39462 4354837; 190.39859 1554333; 190.50226 1139027; 190.53217 1067646; 190.63935 5916; 190.83645 24551; 190.94158 69232; 191.107 26401328; 191.2175 4610; 191.47582 14643; 191.50857 53215; 192.08535 71557; 192.26295 42019; 192.28424 1705149; 192.32513 14115504; 192.33478 54460; 192.65031 5148; 193.50763 33931; 193.62081 7072; 193.7458 9767116; 193.78456 15988039; 195.28391 67403; 195.46004 28980; 195.46038 55770; 195.52246 25256; 195.63934 16278807; 195.66154 59534; 195.9236 20590882; 196.3897 323612; 196.50535 112092; 196.63331 1223; 196.75927 17829; 196.88338 952675; 196.90683 25962; 197.32911 9474; 197.41817 77536; 197.57618 17635; 197.64676 2617949; 197.74438 9018; 197.79941 169880; 197.96618 30210; 198.04324 5985; 198.17567 6075; 198.57711 13654; 198.84375 22837; 198.9744 28652; 198.99939 15579; 199.37209 21126; 199.39469 8527415; 199.4622 29892; 199.94449 14644803; 200.17762 7965; 200.32243 1706451; 200.36767 1431120; 200.37231 8797; 200.39679 3741733; 200.53438 66480; 200.70122 6129534; 201.39433 6374; 201.40913 364997; 201.44342 619404; 201.62426 13052; 201.66762 4602664; 201.88971 382654; 201.99603 71002; 202.01465 4332; 202.2219 11745; 202.37956 77882; 202.65027 4455517; 202.94595 19831968; 203.03842 57089; 203.08074 2131868; 203.18077 38610; 203.28436 25489; 203.37316 1713139; 203.45962 4952886; 203.74402 74553; 203.91469 5752590; 203.94132 29738; 203.94606 4088890; 203.99379 5801; 204.23267 4213; 204.25971 29770; 204.26467 1495675; 204.33696 1302; 204.39132 43160; 204.46625 163786; 204.48674 2572511; 204.72094 3254067; 204.91714 1168992; 205.01289 892513; 205.29855 13998751; 205.31378 1808; 205.87619 1224304; 206.00055 28782; 206.02415 42128; 206.38123 199320; 206.41784 23995; 206.72059 7388608; 206.92211 8884402; 206.95101 37097; 207.40634 49542; 207.54057 2447; 207.68725 3564494; 207.79994 71727; 207.96481 41587; 208.09723 842782; 208.61421 9340966; 208.61549 29428; 208.7352 23632; 208.87482 1588; 209.06514 2789; 209.25999 29816; 209.56218 1627549; 209.7661 42961; 209.8597 7872744; 210.14508 4343; 210.27475 22778; 210.49368 24944; 210.68873 482796; 210.76134 19061; 210.81659 863572; 210.92866 43156; 211.2653 4943665; 211.44655 70433; 211.61647 26049; 211.75029 20292; 212.08747 2240; 212.27362 19231; 213.00941 15576; 213.04112 7915113; 213.08607 9353; 213.21709 27729; 213.28117 16427; 213.43747 48882; 213.53697 9042249; 213.66425 47791; 214.07637 1354551; 214.19172 6699; 214.29038 29167; 214.494 29436847; 214.57449 21689; 214.66117 126348; 215.32313 52222; 215.37998 27436; 215.40788 37137; 215.62039 58812; 215.62182 35045; 215.7074 180098; 215.89287 2952144; 216.13499 337; 216.25258 7712622; 216.36689 1184056; 216.96944 59549; 217.28265 122673; 217.47465 14351; 217.54326 2653; 217.60537 7243536; 217.82216 7595; 218.09479 3393; 218.82033 5502; 219.38694 2097199; 219.69516 6742; 219.83723 159367; 219.86584 3760580; 219.87931 72063; 219.88574 9899050; 220.02738 5022; 220.27045 16110; 220.8336 3293; 221.13277 40572; 221.1826 1167069; 221.33788 18606; 221.41585 171154; 221.46575 84010; 221.61524 21933; 221.62492 4553682; 222.16263 8653; 222.914 939980; 223.02047 31913; 223.05412 3884; 223.50701 78006; 223.53377 2823266; 223.99417 1498451; 224.2937 65013; 224.42123 23270; 224.43254 7007; 224.43598 277720; 224.97276 64053; 225.22637 72136; 225.29528 55377; 225.59579 38170; 225.93963 43201; 226.14713 19093; 226.27555 8018; 226.62185 19787636; 226.68448 5249; 226.74108 1817; 226.80545 1858552; 226.97145 129677; 227.14742 1383314; 227.22815 8938090; 227.55364 1561136; 227.81079 27384; 228.11439 15641; 228.15417 1152327; 228.29929 16589; 228.81298 2133400; 229.11151 25841; 229.22887 28273; 229.50835 97691; 229.77143 4274782; 229.79417 6856; 229.83581 18796; 230.00067 798344; 230.00805 86912; 230.27747 15186; 230.31433 6524008; 230.32995 69993; 230.72258 13540; 230.86301 29829; 231.15067 47443; 231.27799 6969; 231.49886 8719115; 231.58519 110915; 231.60553 3110727; 231.7713 36248; 231.93974 54886; 232.20116 63257; 232.32069 1352830; 232.37634 8043; 232.41998 951988; 232.56066 317340; 232.95107 3414474; 233.36929 11915589; 233.94688 3814647; 234.73944 50072; 234.94653 1051835; 235.04466 1876713; 235.11548 15493327; 235.30134 1721; 235.49317 1626478; 235.66771 119972; 235.69388 162785; 236.35171 4014670; 236.48355 23289; 236.48961 1753430; 236.50551 41615; 236.82724 1357803; 236.86541 39846; 236.92234 57815; 237.05043 446310; 237.07422 28207; 237.13851 11875; 237.49771 272974; 237.50418 1428310; 237.54443 28923; 237.60663 46514; 237.62103 14995; 237.67003 18959; 237.7726 4003; 237.92178 56977; 238.04549 69889; 238.1611 22098; 238.44076 57219; 238.78323 16523; 238.79083 7395; 238.83463 72051; 238.85301 9904; 239.14568 5572105; 239.28445 5766; 239.35791 65470; 239.62343 61112; 240.03606 55964; 240.5353 2615375; 240.84264 441323; 240.90423 387172; 241.21443 70957; 241.21978 1870818; 241.34284 61804; 241.52109 164321; 241.57775 23713; 241.66541 66041; 241.93204 19271; 241.95175 5827; 242.34763 97842; 242.53033 3759; 242.59012 48731; 242.60352 24649720; 242.78791 8766; 242.88455 2109838; 242.9111 651562; 242.99603 35937; 243.02874 71606; 243.14202 5509; 243.1634 10565; 243.25565 40583; 243.53779 28442; 243.55052 6804; 243.95479 27363; 243.97708 51433; 244.57904 23429; 244.63337 55960; 245.29036 32447; 245.36725 32982; 245.64318 11128; 245.75112 669369; 245.7937 71169; 246.06009 1175750; 246.19815 4615394; 246.7098 3596; 246.72208 689492; 246.72304 2308752; 246.80225 1984983; 247.12899 48088; 247.59761 6241458; 247.7953 36606; 247.92035 49204; 248.24108 9370006; 248.36741 3084920; 248.39451 1887353; 248.62937 28115; 248.85829 1262; 249.24758 876559; 249.43194 57744; 249.43861 27592251; 249.50616 46625; 249.52502 4240; 249.55073 7067; 250.2517 58229; 250.36251 4410530; 250.39487 16332; 250.50044 5725; 250.97337 26925; 251.03469 55284; 251.25447 22074; 251.37679 27680; 251.44966 10410; 252.03356 43753; 252.35574 1667934; 252.45603 1131524; 252.53142 25232; 252.63037 147455; 252.7382 40734; 252.77511 18755; 252.92789 90384; 253.10193 44529; 253.37836 19659; 253.78819 1748111; 253.92695 1624320; 254.38762 3191081; 254.52176 26767; 254.58738 20106; 254.68073 63192; 255.03077 1549903; 255.5282 44983; 255.77098 3334447; 255.88559 45848; 256.07807 770838; 256.20431 61063; 256.70102 4219; 256.75531 64660; 257.20634 26432; 257.3484 1096; 257.37364 30924; 257.70416 5248667; 257.89701 1307429; 258.22131 7484; 258.24393 77030; 258.35029 125590; 258.50474 3786; 258.66631 508495; 259.11333 116812; 259.20675 3517326; 259.3758 24759; 259.37924 8861731; 259.42704 1975620; 259.45196 941506; 259.98742 5556; 260.45008 2626998; 260.94301 22643; 261.23204 168067; 261.33915 2660833; 261.89363 3186; 261.9509 1241322; 262.53297 30855; 262.5875 51891; 262.66043 17154900; 262.87739 7262; 263.04829 33120; 263.2106 4667562; 263.38001 5188; 263.50646 1881783; 263.67782 17241; 264.61563 4908; 264.62399 1529402; 264.62734 3739533; 264.65843 24762563; 264.734 49619; 264.75359 5484; 264.84285 28638; 265.51218 1192804; 265.53358 61062; 265.78169 719787; 265.84868 16380766; 266.02313 22649; 266.03401 3596; 266.56382 18469; 266.78102 9493515; 267.22355 468435; 267.38093 522; 267.50356 632283; 267.61143 69888; 267.64992 16041; 267.72895 7254; 267.88966 32898; 268.62078 32227; 268.74165 56126; 268.8739 22468; 269.02086 6533; 269.23665 28323; 269.6037 722485; 269.74007 6411; 269.74839 78013; 270.2 1644500; 270.26235 1424521; 270.3786 725996; 270.57767 188584; 270.83909 4666142; 271.17275 11801; 271.30928 4380; 271.48051 24912; 271.49321 58839; 271.66338 194171; 271.88759 2732519; 272.02139 684765; 272.38089 9257312; 272.43075 26191318; 272.75063 1736784; 272.88541 6639906; 272.9217 18974; 273.04591 187386; 273.18529 4831247; 273.80979 1905344; 273.88979 8760852; 273.94026 7573; 273.99445 8837474; 274.03161 41229; 274.06485 65616; 274.19511 625138; 274.74115 3111312; 274.85833 2159569; 275.0127 59565; 275.13441 25839; 275.67283 28833599; 275.71812 23059; 275.72035 954; 275.85485 221190; 275.98063 318204; 275.99965 4283; 276.35135 4162616; 276.72623 9673; 276.73561 4337909; 276.82172 7191013; 277.26715 120187; 277.38431 3747860; 277.4044 1625; 277.44495 28265; 277.71583 71019; 277.72705 4418653; 277.7466 177720; 277.91963 865295; 278.16063 1508772; 278.20961 28037; 278.36314 21189; 278.62882 16491; 278.83246 19891; 278.83653 22436; 278.90959 1456; 278.98373 68996; 279.28431 66753; 279.40131 44999; 279.55251 42142; 279.61182 26089; 279.63559 6472963; 279.6685 3783772; 279.83636 202427; 279.8952 470003; 280.1765 20551; 280.27458 10945; 280.60176 13920; 280.7293 730; 280.89299 35069; 280.95475 30695; 280.98666 50368; 281.01505 2914219; 281.07148 25930; 281.08509 523254; 281.52935 387523; 281.65244 42452; 281.74047 6467567; 282.03205 58637; 282.14436 11321398; 282.80061 679264; 282.98086 801; 283.05357 2596; 283.61098 45723; 283.63887 1586458; 283.90349 42435; 283.9363 18816; 283.97688 31053; 284.30379 1736440; 284.53501 2686571; 284.5771 3474526; 284.70002 47033; 284.79968 1354750; 284.96377 82689; 285.0136 7535312; 285.78761 25750; 285.95381 9347889; 286.12942 2501418; 286.20164 2797991; 286.23376 1830697; 286.35324 5329747; 286.46697 4752; 286.87766 1798; 286.95595 58569; 287.08282 125541; 287.50192 63154; 288.36494 7167; 288.3827 8739; 288.91439 4154307; 289.19573 4746100; 289.28542 275821; 289.30582 32091; 289.68894 54473; 289.79197 6805; 289.96104 6220549; 289.97579 44494; 290.3017 7383963; 290.51898 52534; 290.83916 62440; 290.84094 4315; 290.88215 67; 291.2282 63209; 291.32433 23024634; 291.50373 176587; 291.56819 1333445; 291.69202 75410; 291.79788 45829; 291.98828 747634; 292.68414 4593732; 292.71568 5450689; 292.8241 120977; 292.89548 844756; 292.91858 62613; 293.16651 72273; 293.66759 214335; 294.16428 32709; 294.27011 73099; 294.40104 125042; 294.4619 107758; 295.17836 43859; 295.23251 1165933; 295.3572 190118; 295.68695 8018; 295.74633 46356; 295.81183 20130203; 295.93887 83350; 296.15479 77941; 296.18447 53153; 296.285 6312; 296.41255 8218; 296.41392 3190151; 296.46093 1266548; 296.69561 1014; 296.74668 1533540; 296.84019 160559; 297.09343 80547; 297.36413 22242; 297.46986 9677; 297.72399 10951966; 297.79807 498808; 297.82101 19022; 297.99264 148147; 298.28255 1063075; 298.74954 66314; 299.08895 9039; 299.3678 37571; 299.44945 7863659; 299.83799 3814; 299.90267 71251; 299.91602 68282; 299.9846 48657; 300.0053 25990; 300.17532 2187968; 300.2955 6954881; 300.36279 3888247; 300.56792 20187; 300.93598 1624140; 300.9434 25842; 301.21231 3433; 301.66472 11712202; 301.78905 3303; 301.7913 4006017; 301.83654 20058832; 301.91241 30031; 302.17868 47273; 302.17987 185664; 302.50352 1438442; 302.55798 66782; 303.14923 78639; 303.23601 185004; 303.27689 29776; 303.32169 6475; 303.34627 28137; 303.37137 396084; 303.54144 57460; 303.56456 6061823; 303.72435 17964; 303.78118 1159871; 303.90514 3429; 304.15543 444250; 304.27888 5593826; 304.51966 1822822; 304.55056 4870; 304.60704 9484; 304.72727 4775; 305.22074 2207699; 305.69597 1198845; 305.88002 69722; 305.94173 3066122; 306.14159 20083420; 306.53138 57485; 306.81321 959123; 306.81869 1726466; 307.03302 8159; 307.07262 11674; 307.44717 65044; 307.44772 3121706; 307.53574 24676; 307.56398 7332; 307.69048 6737110; 307.84495 1230532; 307.8967 49851; 308.0144 460442; 308.40727 2122017; 308.54609 17919; 308.57861 187818; 308.64978 1226198; 308.84481 991721; 308.90299 5013263; 309.29633 25135; 309.51732 34626; 309.86315 2383001; 310.55831 5145364; 310.61491 2628323; 310.66292 4185; 310.72036 1186946; 310.92044 35070; 311.00367 38079; 311.47932 22568; 311.48616 68280; 311.79648 22880; 311.828 1956017; 311.91497 63926; 311.96142 7523; 312.26463 553417; 312.37843 4464823; 312.42787 70768; 312.58809 3021561; 312.67966 6634; 312.75097 12235; 312.93845 24932; 313.03014 10204; 313.0744 978109; 313.76317 1227; 313.85552 86130; 313.97202 9799; 314.2726 2909076; 314.66974 79474; 315.04822 460993; 315.40425 104802; 315.65196 25392; 315.98718 495093; 316.3029 62186; 316.31502 3374155; 316.3819 19737242; 316.39973 94446; 316.49825 24546; 316.61459 123090; 316.9582 4397; 316.9785 64369; 317.06104 1821150; 317.33903 784773; 317.40722 8180981; 317.45384 2318091; 317.53977 6919851; 318.35204 41240; 318.4039 915415; 318.81488 58580; 318.82797 18410021; 318.86482 41069; 318.93676 24692; 319.16586 568777; 319.32356 222021; 319.48516 64610; 319.62965 24144; 319.81363 1209218; 319.9553 949976; 320.0637 29779; 320.63688 65456; 320.85403 1016; 321.09675 4701; 321.75771 3316432; 322.0423 1335563; 322.05339 7598028; 322.08351 159591; 322.62848 1017284; 322.882 2124024; 323.12281 75869; 323.16678 37472; 323.38378 127902; 323.66994 3505634; 323.72807 32164; 323.75559 62929; 323.83213 72996; 324.00531 551496; 324.05505 25477; 324.06123 545625; 324.43796 31645; 324.6097 34366; 324.61878 71567; 325.0255 106688; 325.97685 35269; 326.23679 105595; 326.38435 42644; 326.46358 3980951; 326.53 3098477; 326.67231 5875; 326.79299 177810; 327.0514 9744; 327.1452 1587093; 327.33416 646429; 327.35403 881184; 327.50408 1704; 327.78161 7525912; 327.84412 19300819; 327.96059 1491675; 328.01323 9919; 328.11948 6844616; 328.36228 9016; 328.64534 63300; 328.71845 1466726; 329.30211 48407; 329.45715 474057; 329.67423 55354; 329.82207 1721887; 329.90273 23270; 330.18319 2179; 330.1986 661269; 330.48472 75885; 330.57681 20722; 330.67842 5335971; 330.74541 5516; 330.83654 716701; 330.92268 22899; 331.19607 5777; 331.2185 8542; 331.29442 88978; 331.35438 65783; 331.47359 76841; 331.50941 16042; 331.55256 1340832; 331.63237 78621; 331.76866 24493; 332.06957 4447739; 332.26828 4158; 332.28185 1107; 332.32476 78898; 332.34697 1116545; 332.49428 7838646; 332.71692 20175; 332.73297 3880755; 332.74956 3824; 332.83131 92094; 332.86589 1686; 332.90511 28509; 332.9628 1497481; 333.09368 50519; 333.32829 8734; 333.43949 422043; 333.44703 134109; 333.55107 3814763; 333.5632 438870; 333.61561 1634935; 333.73311 178530; 333.74377 24464; 334.43785 1128724; 334.6226 76132; 335.29728 1286853; 335.55194 3031; 335.82205 3119207; 335.95251 1705817; 336.07182 173745; 336.15193 7636; 336.2059 7948374; 336.29865 4489754; 336.47282 17651; 336.57868 924485; 336.66384 51037; 336.67968 16615; 336.82548 97330; 336.96019 29603; 337.83836 82369; 337.96442 9373; 338.06298 131459; 338.08034 1742152; 338.17562 151044; 338.43643 177062; 338.60071 1854601; 338.72223 47818; 339.00828 1076597; 339.13099 8759; 339.27873 26003; 339.44309 295841; 339.55774 7141774; 339.67045 1626698; 340.18356 49179; 340.67907 4954; 340.75424 7997634; 340.99574 42996; 341.17396 222222; 341.34131 185923; 341.52448 1946260; 341.56505 60740; 341.59362 49054; 341.67248 8762; 341.72006 25372; 341.77418 7616; 341.7871 4710048; 342.05325 807791; 342.2532 28964; 342.61713 7271501; 342.64094 26574590; 343.24168 1106; 343.27178 41600; 343.29815 8810250; 343.84313 1647779; 344.0506 13366; 344.09302 33883; 344.29621 79703; 344.4871 4927251; 344.48963 73598; 344.72943 22799; 344.78732 8955; 345.07939 169700; 345.12655 1049114; 345.22892 1503000; 345.41611 56757; 345.72112 9560327; 345.74764 138053; 345.74939 20306; 346.21078 8272136; 346.28723 137117; 346.54392 36747; 346.61307 22317; 346.77267 57861; 346.81459 475222; 346.83075 68352; 346.90122 21066580; 347.12149 28717583; 347.60379 4950369; 347.65676 664; 348.15293 134293; 348.23914 35764; 348.26651 182241; 348.35599 1418024; 348.56858 27565168; 348.65783 160109; 348.98103 9596; 349.1514 3192999; 349.2022 55163; 349.2441 44990; 349.78686 1121573; 349.79514 5877637; 350.1614 60390; 350.23903 1533311; 350.54628 8502; 350.64645 10289515; 350.87304 20171792; 350.95676 25038; 351.23254 21919; 351.4531 4877; 351.5014 359308; 351.69585 38511; 351.81709 19644; 351.86812 1164146; 352.30275 3477464; 352.3044 4732; 352.30872 5014334; 352.3258 78570; 352.45762 17594; 352.85828 1365488; 352.89726 2476; 353.35461 22719150; 353.47436 21210; 353.59254 99702; 353.62769 27255; 353.64913 8147; 353.67012 52406; 353.69112 29174; 353.95725 29279; 353.97097 74044; 354.15012 139762; 354.36561 21620; 354.56479 4217597; 354.60304 33755; 354.60331 32705; 354.76242 21154; 354.93802 45311; 354.99307 24439264; 355.05553 24098; 355.20693 20446; 355.29742 43451; 355.49579 2819638; 356.39305 465113; 356.44745 6126; 356.47153 97367; 357.03262 5437; 357.06789 31464; 357.28341 1553579; 357.33919 3739963; 357.36666 23145; 357.48452 2682; 357.67064 25135; 357.80714 471180; 357.8505 43069; 358.15177 53736; 358.26095 2972905; 358.40502 48225; 358.45279 8317; 358.53271 67445; 358.53416 11244; 358.90659 1376943; 358.94381 31892; 359.13749 5071; 359.1752 1433412; 359.37818 8751; 359.77046 76637; 359.88596 1156830; 359.98645 17285; 360.0718 27989; 360.11251 2758184; 360.39089 1503823; 360.40385 134845; 361.11992 1510; 361.2852 1527648; 361.71654 233464; 361.91421 95001; 362.55382 3570583; 362.91666 5842; 363.11115 102088; 363.23559 38028; 363.401 1714063; 363.51597 8989848; 363.53771 340093; 363.54542 3317963; 363.69183 5420; 363.80991 1752651; 363.98739 184027; 364.13522 36525; 364.15216 42846; 364.23808 3524760; 364.30487 55035; 364.38641 62261; 364.56564 54915; 365.25333 1837223; 365.36006 36698; 365.40029 2727045; 365.67848 15079568; 366.48805 4892002; 366.50455 58476; 366.51228 8257; 366.65342 26003; 366.7178 4522005; 366.73183 4309943; 366.74639 39278; 366.82238 3002; 367.04545 470262; 367.23872 1248; 367.57728 51616; 367.80454 1678067; 367.89639 71557; 368.03341 4976195; 368.36585 10400; 368.46044 4282; 368.57111 23504; 368.63223 27339111; 368.73585 93856; 368.86866 3965065; 368.93039 60777; 369.33136 20832; 369.35347 1727803; 369.52445 133807; 369.57098 39466; 369.70515 4928; 369.73099 55153; 369.91628 28870; 370.01216 7769; 370.0485 53539; 370.90791 8094661; 371.06904 27549; 371.16694 195036; 371.36979 4240; 371.40097 993462; 371.79614 8086962; 371.88757 37968; 371.96326 21933; 372.07182 5723908; 372.37536 27782; 373.14119 1612734; 373.27739 13823; 373.33016 25556; 373.38595 585801; 373.80554 4058267; 374.21497 24818; 374.37118 707258; 374.39402 107300; 374.42392 8601; 374.69401 11994; 374.7839 102689; 375.66599 8653; 375.72175 26044; 376.26486 99504; 376.66504 29511; 376.85651 1310677; 377.05131 5834363; 377.19751 16442; 377.45761 1565; 377.59082 7064; 377.62074 446672; 377.6407 13214; 377.65676 6181; 377.95781 69703; 377.96932 2812753; 378.12398 618; 378.30625 501416; 379.06931 3063169; 379.62271 1194619; 379.81587 696620; 380.02774 30318; 380.38674 1781789; 380.40615 49539; 380.43959 7313881; 380.53174 4950; 381.31607 12752; 381.5266 32287; 381.61254 2733121; 381.71665 73830; 381.84687 169351; 381.99276 64193; 382.34495 55436; 382.51506 14414; 382.54306 1684628; 382.85511 4775777; 382.88539 1372683; 383.0225 38410; 383.44097 3454; 383.47611 198663; 383.58513 4745850; 383.59209 8995; 383.6855 2683382; 383.94769 5510; 384.02324 123010; 384.06713 490782; 384.09049 3124; 384.74771 34846; 384.87112 4753; 384.98361 555387; 385.18305 20337877; 385.41894 501403; 385.45395 1776238; 385.55821 7270809; 385.63807 26921; 385.858 1823097; 386.21489 757829; 386.31043 53139; 386.73973 2718878; 386.85371 15; 387.03863 9761239; 387.159 25368; 387.26391 2430135; 387.51046 1673131; 387.59505 67560; 388.19883 76899; 388.41854 2150; 388.4847 62555; 388.704 5669; 389.03211 7511000; 389.32002 384; 389.42699 2601; 389.68493 20306; 389.85625 67832; 389.86002 22154; 389.89624 21433; 389.95567 18557; 390.25059 1481495; 390.42123 143121; 390.4959 1894872; 390.58312 73916; 390.65727 62361; 390.67425 102182; 390.75684 3482754; 390.90773 260; 391.2769 23128; 391.61213 1969; 391.80664 26703; 391.87449 41415; 391.90905 8756; 391.95407 7433; 392.16499 4542199; 392.2965 30317; 392.50492 1580194; 392.53427 52630; 392.80316 1992299; 392.94107 89618; 393.35224 22864; 393.53855 119641; 394.29167 127312; 394.47337 41293; 394.48591 46643; 394.51732 3705135; 394.70093 375464; 395.09602 9612; 395.13944 4025802; 395.59575 1145; 395.71392 70124; 395.78537 24906; 395.85162 19524; 395.88692 6936; 395.9312 185152; 395.9709 20471; 396.44644 13834763; 396.5042 189504; 396.54734 16718; 396.59137 632; 396.63319 40007; 396.65054 29895; 397.45096 126; 397.46177 1237582; 398.22105 27584279; 398.32587 787635; 398.57932 77150; 399.43409 8056659; 399.43521 3374209; 399.48472 7496; 399.50481 4824015; 399.55546 7469746; 399.60864 10332; 399.85106 57199; 400.44666 42986; 400.81694 5661696; 400.86537 407331; 401.01983 9969; 401.31408 2617043; 401.38435 2756238; 401.39963 35115; 401.40401 9213068; 401.63211 1043093; 401.81096 1740563; 402.07687 1223951; 402.09415 29322; 402.52146 792144; 402.72633 7030; 402.73022 12456; 402.74584 75701; 403.49519 9808; 404.09758 21057; 404.56489 34870; 404.75107 56154; 404.92901 9832573; 404.94015 78099; 405.09286 7923651; 405.17272 7079793; 405.24404 58076; 405.31719 62862; 405.34431 9193; 405.54982 1197102; 405.75041 24904324; 406.03258 69640; 406.05636 2827660; 406.10357 138802; 406.13646 22558; 406.17826 43097; 406.19546 78162; 406.51753 39892; 406.68615 1527314; 406.78129 28084; 406.85742 8595; 406.94581 52334; 407.01399 68770; 407.37914 20153; 407.38631 909501; 407.52428 3538548; 407.77037 7705; 407.81094 58068; 408.17585 28842755; 408.42703 20505; 408.48599 1939722; 408.51618 3471666; 408.59169 60678; 408.60655 2142818; 408.84752 331239; 408.90729 2369017; 409.10925 15334; 409.12896 690969; 409.14684 922718; 409.19011 530; 409.28403 618; 409.33944 142871; 409.46635 37249; 409.50772 387; 409.5525 1451; 409.81026 11127; 410.07384 790248; 410.1775 18904498; 410.2929 18370; 410.31814 1306662; 410.35096 5197; 410.79579 87814; 410.95587 41578; 411.42412 2284271; 411.71472 1142124; 411.71508 207965; 411.8953 114710; 411.916 4277340; 412.28592 11044; 412.29436 8478649; 412.36888 6476055; 412.68851 28889; 412.7651 2598561; 413.115 19949; 413.41917 2411; 413.86387 5457156; 414.12908 1687997; 414.5753 3000156; 414.69342 8468; 415.88003 15768369; 416.29422 17455681; 416.40791 855768; 416.41481 12384490; 416.4165 34024; 416.62206 916000; 416.67168 1789134; 416.68469 2840; 416.76792 8312; 417.32674 34643; 417.35412 53414; 417.41619 544960; 417.48714 9606930; 417.53002 27136; 417.93581 1967686; 418.00665 77679; 418.38327 6327; 418.54021 1762659; 418.72564 16538; 419.02865 4299; 419.15578 9835; 419.25891 104203; 419.48083 5046526; 419.51628 376589; 419.53495 941042; 420.3992 2512350; 420.43951 104363; 420.61794 16264; 420.68726 42823; 420.70074 283554; 421.06819 21803; 421.25768 67993; 421.85574 4583933; 421.8941 47161; 421.89504 2414404; 422.1351 60389; 422.18506 622; 422.31291 892672; 422.57753 53105; 422.98968 10800068; 423.00933 29364; 423.22533 70273; 423.32415 1462620; 423.38549 42728; 423.44777 48382; 423.61036 824387; 424.15341 159787; 424.43446 33982; 424.507 134578; 424.66527 70705; 424.99501 674489; 425.27363 26709946; 425.31151 404768; 425.36352 203777; 425.45078 66499; 425.75718 1923; 425.78004 6232728; 425.85651 2567040; 425.85971 68272; 426.04199 19179; 426.10542 65732; 426.18985 64360; 426.32098 1681408; 426.38167 1437970; 426.4275 34476; 426.47292 71940; 426.50926 1728470; 427.03941 30508; 427.05775 28899; 427.13507 9513304; 427.17025 23898; 427.44723 528; 427.55606 50634; 427.56906 64517; 427.76468 154652; 428.2278 2815489; 428.35733 2334; 428.75189 23566; 428.78021 4576; 428.90489 47999; 428.93096 163252; 429.17064 2716391; 429.37192 29836; 429.559 1849997; 429.65147 4791965; 429.66547 1535613; 429.83886 6259523; 430.02195 6997; 430.11168 73969; 430.1294 3052765; 430.15122 224995; 430.2728 1785154; 430.31063 20635; 430.69774 1551328; 430.70679 1368117; 430.91203 3222999; 430.99749 14601; 431.00273 123272; 431.11526 23650; 431.41657 4305753; 431.51992 16950146; 431.99741 39019; 432.15656 33490; 432.76931 1327647; 432.84465 173931; 433.0368 276030; 433.54102 486944; 433.57108 2004; 433.61357 15870; 434.07512 72327; 434.25136 5944213; 434.71061 37025; 435.01932 4721834; 435.34637 78723; 435.37863 45250; 435.41291 622777; 435.48631 9797029; 435.6445 20186; 435.70976 9796262; 435.99091 360250; 435.99781 2247722; 436.26394 5338; 436.37622 14602; 436.67598 3122528; 436.76329 25636; 436.82114 3709964; 437.17385 16233; 437.29338 11211580; 437.29736 74995; 437.43767 24808855; 437.46942 42523; 437.6822 71116; 437.78609 23336; 438.05336 5412; 438.06394 33289; 438.28118 5205970; 438.56499 9852; 438.69672 9207376; 438.69766 52078; 438.72708 2025; 438.73775 7462; 439.116 23550; 439.20446 494166; 439.38698 69934; 439.46521 29307; 439.64169 412399; 439.68306 6872868; 439.78763 65524; 439.81358 1273387; 440.16616 49527; 440.19612 44520; 440.34463 15152; 440.68761 46932; 440.78789 8703; 440.84754 1659991; 440.871 16846; 441.16691 2670004; 441.33856 2556385; 441.36006 11706564; 441.3912 7864308; 441.394 9741; 441.79542 89082; 441.94812 545146; 442.20319 68417; 442.35049 192406; 442.47562 460730; 442.55824 33117; 442.64062 2018307; 442.68928 5792888; 443.24178 969516; 443.26085 1409733; 443.75073 831090; 443.84885 14392443; 444.21818 63409; 444.36693 7903; 444.46781 26883; 444.55263 95157; 444.56958 75929; 445.18489 114077; 445.7101 8563427; 445.90565 8910; 446.10317 7950; 446.34069 414041; 446.43721 117042; 446.59987 8511; 446.85326 836; 447.62055 9171069; 447.91863 29157; 447.96736 39161; 448.05939 68958; 448.23663 9957; 448.27452 992; 448.49352 16133; 448.51376 163784; 448.58167 21674; 448.67797 463847; 448.7134 4911448; 448.81947 175814; 449.07434 123640; 449.54971 16260; 449.92468 20177; 450.05606 53094; 450.48362 9680693; 450.53986 26926; 450.567 1197177; 450.74537 21774; 451.11988 26102; 451.29598 51069; 451.34734 2704511; 451.51602 4791939; 451.89674 14489; 451.93097 535544; 451.96476 5444907; 451.98987 47706; 452.04272 3084557; 452.71085 152883; 452.71218 26151; 452.89176 21531062; 453.25151 2001947; 453.36079 4540210; 453.71104 35020; 453.74106 26003; 453.96914 5596; 454.1683 1463863; 454.20898 1633941; 454.25003 154565; 454.87021 8146973; 454.87032 9811549; 455.26368 4014616; 455.27775 178396; 455.60382 39400; 455.74992 28712; 455.81234 1817423; 456.04919 180088; 456.27597 35494; 456.30754 173314; 456.37735 73937; 457.02246 182322; 457.07986 17662; 457.12135 3892154; 457.13346 12066; 457.20519 1238666; 457.54764 29766; 457.61846 993316; 457.69457 20236; 457.78878 2713759; 457.92269 663086; 458.00119 551767; 458.196 26720; 458.20498 1857452; 458.71677 27755399; 458.77998 44714; 458.9196 23497; 458.95409 75388; 459.54454 11829; 459.67834 14630; 459.69308 2521435; 460.04876 947; 460.09506 771455; 460.62112 196030; 460.79781 48159; 460.91699 27986; 461.32537 49725; 461.37122 2707098; 461.38024 354015; 461.48112 52901; 461.52083 1033818; 461.67765 39775; 461.72328 81534; 462.03569 161405; 462.23071 51315; 462.43471 20649; 462.72736 20415; 463.16958 3855072; 463.17359 45831; 463.56043 15835; 464.27033 1805499; 464.32326 8667; 464.52395 4131936; 464.55879 55253; 464.8021 7739; 464.97911 2849; 465.01159 990862; 466.14229 27279; 466.20671 33802; 466.2257 45594; 466.35588 33934; 466.42698 155714; 466.8177 4393449; 466.98378 8566; 467.35047 56818; 467.71216 21019; 467.85494 442624; 467.87462 8517701; 468.06167 986824; 468.31183 38749; 468.3894 7125945; 468.48278 502446; 468.52379 29621; 468.8372 44703; 468.97249 18624025; 469.02903 148109; 469.59125 37605; 470.06622 7698; 470.08513 25452; 470.15322 199588; 470.91935 7639; 471.01862 22480; 471.08826 809694; 471.29433 5570324; 471.96608 3121460; 472.30094 4087; 472.39674 122660; 472.50045 221529; 472.56953 27090; 472.73073 30606; 472.83401 38466; 472.9015 30683; 473.08738 6747; 473.24779 25155; 473.64644 23882435; 473.81786 7238; 473.91315 3999319; 474.07572 52370; 474.25782 1459712; 474.81379 4889; 474.87605 25508; 474.90132 23235; 474.94793 9873; 474.96018 699; 475.11846 3159; 475.18086 2381378; 475.3335 46069; 475.34327 23766; 475.54324 56216; 475.64877 45027; 475.70167 1769783; 475.94158 2566008; 475.99229 1481571; 476.06707 38770; 476.06754 703087; 476.18953 27662830; 476.25626 13068; 476.45551 31904; 476.49229 3936; 476.52961 3445; 476.56653 3391086; 476.60423 8699; 476.61452 3652202; 476.77239 23470980; 476.95345 6023342; 477.05433 1297709; 477.28353 571510; 477.4047 133707; 477.53819 2948063; 478.1343 1882994; 478.17943 1314687; 478.21554 1841659; 478.24667 87675; 478.26547 77694; 478.27705 86662; 478.30509 1398618; 478.41489 867454; 478.49253 3705; 478.86923 13218; 479.22408 1710; 479.30823 60175; 479.50699 29692; 479.5619 46795; 479.57558 48807; 479.65311 55000; 479.90725 4638; 479.98102 12113; 480.1137 7490343; 480.25474 31571; 480.2993 62830; 480.76597 1988432; 481.06327 37348; 481.08939 1223756; 481.13083 4802254; 481.34745 23758; 481.37009 4982051; 481.52796 25032; 481.5521 5130; 481.67551 2502606; 481.71945 3609; 481.75689 29481; 482.47885 123389; 482.50442 23643; 482.56611 67194; 482.84959 1388189; 482.94513 28902; 482.9515 2052; 483.05166 2; 483.27208 154679; 483.27331 917625; 483.89645 20428; 483.99543 502755; 484.01498 57882; 484.11149 127977; 484.14145 8949; 484.37312 9567182; 484.48218 24478; 484.67197 64084; 484.7016 27244; 485.01072 28728; 485.41192 428615; 485.92965 8504; 486.33069 1356182; 486.52207 45648; 486.7706 72283; 486.81519 1822226; 487.05335 495796; 487.11953 706; 487.12321 77598; 487.13144 2843193; 487.19393 640935; 487.20033 14459015; 487.24221 78403; 487.30702 570077; 487.83259 1713058; 487.87222 5601432; 487.95476 22136557; 488.02871 53003; 488.07667 149525; 488.53794 6105; 488.71911 19445; 488.81816 178842; 488.83523 42577; 488.94361 809638; 489.00254 8534506; 489.04326 511016; 489.16164 7936; 489.32031 1269520; 489.4503 5186740; 489.55214 16815717; 489.57518 6903837; 489.5852 6751; 489.67246 9722; 489.86122 3193681; 489.86564 77239; 490.41686 1728813; 490.61447 722220; 490.71499 150750; 490.99193 1008821; 490.99675 41542; 491.13721 24368; 491.27596 21670214; 491.52508 105; 491.80406 2861184; 492.05134 3275996; 492.09236 11290; 492.78579 163409; 493.24052 1662770; 493.29155 19567; 493.39917 2780425; 493.72796 9389969; 493.93113 73961; 494.13554 14563758; 494.40359 2930955; 494.44986 1031846; 494.51913 328563; 494.68151 1003550; 494.76041 17430; 495.00346 985554; 495.16834 66216; 495.55425 1500638; 495.65133 23101; 495.76439 6098; 496.07679 127100; 496.2644 1286; 496.27257 4773319; 496.43451 197929; 496.55704 119422; 496.95814 3353; 497.26521 8989337; 497.53429 1418143; 497.56499 7913053; 497.67651 2965590; 498.01251 22926; 498.20233 2228556; 498.21041 6198; 498.23886 28668; 498.24816 66937; 498.25659 8902; 498.31311 69327; 498.32658 165609; 498.37848 46352; 498.42386 56797; 498.6453 3167; 498.77387 8590512; 498.80599 262; 499.12951 26499957; 499.15243 17336; 499.1702 7236; 499.35919 41399; 499.42959 210265; 499.5706 58101; 499.85098 5210962; 499.86068 47462; 499.87378 22041 diff --git a/traffic/traffic_5e9_6.txt b/traffic/traffic_5e9_6.txt new file mode 100644 index 0000000..e0513fc --- /dev/null +++ b/traffic/traffic_5e9_6.txt @@ -0,0 +1,7 @@ +<6, 0>: 0.08058 8767786; 0.29956 44170; 0.70521 373323; 1.18484 18660073; 1.37735 542427; 1.50876 1321422; 1.53692 10619; 1.56872 2542316; 2.08727 59171; 2.13816 76897; 2.35323 120200; 2.59336 18535565; 2.6591 21328327; 2.70898 67321; 3.04343 40519; 3.41192 30064; 4.06226 4828; 4.09527 73638; 4.22993 12296; 4.27232 24977; 4.31563 35900; 4.79376 9156526; 4.80682 2565982; 5.09511 28999; 5.10312 1171476; 5.4162 275417; 5.45662 69314; 5.55987 5659; 5.74523 29966; 5.75932 855777; 5.95118 38724; 6.17901 4629515; 6.52074 7850; 6.58103 5674987; 6.65975 77072; 6.66259 2655; 6.8732 1180275; 7.05852 186763; 7.5128 189169; 7.53012 1260556; 8.43746 3870625; 8.46082 165967; 9.02475 413; 9.04383 20037; 9.13726 7488; 9.16069 3862; 9.18193 111404; 9.30289 29873; 9.34494 15438210; 9.43795 987; 9.55241 110574; 9.65989 113780; 9.66454 6803706; 9.72173 26751; 10.00967 70436; 10.42636 36974; 10.94591 19843; 10.95935 53831; 11.07004 1230202; 11.34525 7224350; 11.51602 16535; 11.55176 874655; 11.58643 575736; 11.72305 127622; 12.22668 1616397; 12.23727 163411; 12.2452 5042; 12.29375 78441; 12.33005 13025; 12.65273 1235657; 12.80902 2468865; 12.92069 5956823; 13.00642 63487; 13.03115 21115; 13.17837 1308723; 13.31416 4996695; 13.39544 463519; 13.60131 663011; 13.73253 49708; 14.00124 4183013; 14.00729 6123; 14.21719 3963760; 14.41132 729302; 14.46038 67130; 14.48247 15526; 14.6741 4962239; 14.8905 78486; 15.00473 24413433; 15.09832 35918; 15.41307 155707; 15.48674 13869; 15.54369 3834042; 15.54718 1008030; 15.56974 1707164; 15.94928 7206255; 15.96163 65289; 16.07408 32160; 16.09396 942577; 16.26874 70906; 16.28317 1315; 16.30896 1706530; 16.44254 27205; 16.57197 194503; 16.57287 339759; 16.5814 15557; 16.72892 7907; 16.89141 2888; 16.92591 17284; 17.16827 31680; 17.25151 18361; 17.31264 482531; 17.60641 6933; 17.99728 18624; 18.09062 1812644; 18.35066 21877; 18.376 1154122; 18.4684 71519; 18.50197 28264; 18.6197 122548; 18.72031 72813; 18.8066 48659; 18.85859 4180; 18.99992 27304; 19.01607 5721054; 19.20039 6383421; 19.21206 5886631; 19.38012 273665; 19.76564 73088; 20.19728 3533; 20.35037 31439; 20.4166 8516; 20.48726 2012168; 20.90069 47368; 21.14877 33592; 21.20061 4283; 21.32326 595517; 21.43024 4829; 21.84951 462963; 21.85976 61277; 22.01014 54; 22.62705 3082; 22.65023 8435; 22.70088 21317; 22.94927 112061; 23.06833 2837198; 23.25184 24949; 23.36318 3309837; 23.71732 4888454; 23.91256 1704; 23.93104 27242; 24.03106 1677132; 24.14484 45326; 24.59663 25809; 24.88145 26690; 25.20056 1823400; 25.35441 1936360; 25.40114 195716; 25.46396 9870; 25.5411 3168; 25.58859 33309; 25.65372 1509699; 25.81489 820271; 26.30715 807308; 26.38949 29189; 26.41694 1530816; 26.45633 76670; 26.57754 1930936; 26.58401 6188; 26.61341 21007510; 26.88897 5097; 27.03745 52161; 27.37858 7255096; 27.51345 5872; 27.62347 498906; 27.97005 1105759; 28.01782 68728; 28.15933 9045; 28.40303 471176; 28.67056 1329424; 28.877 4878651; 28.90615 45960; 29.01539 4793501; 29.09176 672515; 29.24461 1689649; 29.26484 980892; 29.38521 6631; 29.49494 76594; 29.7055 14883; 29.71074 25374; 29.77256 25671; 29.86319 1928642; 29.87983 40343; 30.51184 66003; 30.62134 1549289; 30.65687 1754867; 30.98482 1969; 31.02259 37496; 31.1969 26209; 31.31342 6570436; 31.86129 15706; 31.95707 1504025; 32.10922 9372; 32.30671 255910; 32.67013 25978; 32.80251 43449; 33.00111 21477; 33.22659 3734690; 33.33087 2540313; 33.60303 1064; 33.81185 77431; 34.08736 1664845; 34.23917 626295; 34.27038 8554; 34.55788 5319; 34.60259 27014; 34.74133 87764; 34.81751 65918; 35.22967 24440; 35.30323 7168099; 35.83342 49164; 36.19007 75106; 36.40084 98677; 36.63422 3385285; 36.66752 22728; 36.85932 3891694; 37.1144 2400237; 37.12551 1525070; 37.31982 4128345; 37.42963 1048220; 37.51078 76455; 37.58434 1790427; 37.61034 193218; 38.2151 75111; 38.23206 30723; 38.40333 63106; 38.45243 13; 38.71862 1177774; 39.04928 56260; 39.60501 492855; 39.66432 2678; 39.9179 1027654; 39.97742 528490; 40.32083 617842; 40.71101 28371; 40.82777 5565790; 40.83392 4907325; 41.01706 506764; 41.1803 3174864; 41.3034 2589869; 41.76781 8720171; 41.84603 4207; 41.98469 6483; 42.25088 7865; 42.39909 26193; 42.5451 682498; 42.80017 73331; 43.02159 51028; 43.06283 20211; 43.40998 103107; 43.44635 3263423; 43.46106 1232862; 43.56671 65051; 43.75558 25662; 43.95155 79077; 43.96719 39360; 44.13017 45925; 44.57806 154357; 44.58902 627212; 44.67991 40655; 44.75451 79104; 45.18983 21027; 45.31532 3104704; 45.48754 27775; 46.06866 1882931; 46.38308 54911; 46.47596 3943920; 46.82746 17389; 47.04129 27176; 47.17462 89750; 47.27264 8580; 47.50428 843815; 47.68031 3830; 47.80525 61253; 48.30642 73306; 48.38083 2612606; 48.45091 32245; 48.4747 17247; 48.5738 149414; 48.5862 9871265; 48.59722 7852571; 48.85365 205569; 49.0664 1434997; 49.18637 9800; 49.24933 25595; 49.58685 2261; 49.60721 525; 49.8634 76676; 50.09446 136736; 50.38253 59878; 50.66037 4687; 50.9564 748; 51.1873 1306221; 51.22231 25966; 51.22845 50963; 51.24991 17550; 51.6221 22568; 51.69613 413579; 51.93584 298557; 51.95575 4351071; 52.01495 125199; 52.05399 28301; 52.2475 1403094; 52.39936 1214870; 52.84187 77399; 53.03717 44274; 53.103 4981; 53.40228 22742954; 53.55531 86418; 53.56035 29789; 53.62699 127735; 53.80676 2183070; 53.84645 14128; 53.85244 24044; 53.99481 6055372; 54.10664 20626; 54.11864 56796; 54.15421 28799; 54.21188 2289; 54.21793 29251; 54.64681 18186; 54.73152 1032; 54.74659 2625142; 54.90404 7539; 55.02537 157823; 55.44111 59829; 55.65365 25892; 55.71298 4635370; 55.80522 1374587; 56.28035 71873; 56.30904 1100518; 56.49517 121646; 56.50709 26030; 56.58817 3147; 56.75436 22947; 56.75639 22496; 56.94042 17873; 56.97575 17817; 57.12094 4000538; 57.19267 58280; 57.19988 35816; 57.21182 6175218; 57.43239 59369; 57.71 23907; 57.87301 3786705; 58.01872 29074; 58.04271 7322068; 58.16403 1090938; 58.2518 5112; 58.59366 107033; 58.6741 21072627; 58.88732 44451; 59.15607 138892; 59.55389 13396; 59.70637 2546; 60.02469 77398; 60.12566 2977022; 60.23925 1768928; 60.29353 105586; 60.40384 7578548; 60.63912 23132; 60.73836 397269; 60.78524 3607; 61.0561 79729; 61.2392 1520841; 61.69941 6880458; 61.74177 116291; 61.88381 31942; 62.15744 6097; 62.22669 329; 62.39382 2086022; 62.56598 1566500; 62.71437 2683063; 62.74325 2727367; 62.86038 7367; 63.04569 9720905; 63.13605 4357; 63.21693 97479; 63.57463 1301787; 63.85042 3382529; 64.10622 879004; 64.16462 129293; 64.39312 965954; 64.7208 27101; 64.80405 6205480; 65.26679 102166; 65.87507 723599; 65.89953 1756930; 66.14034 9493; 66.20002 3618; 66.20889 1519; 66.26423 40253; 66.43314 1165223; 66.43577 170427; 66.882 8911; 67.05273 32202; 67.12885 1480356; 67.19412 3497748; 67.35264 13; 67.73428 3175866; 67.73518 116397; 67.7744 5247; 68.25912 2698; 68.27243 2267; 68.41247 6500982; 68.471 22490; 68.69813 952063; 68.69889 142716; 69.18257 4078889; 69.21166 4783674; 69.52587 33184; 69.86126 621598; 69.99255 39764; 70.05615 52190; 70.07981 29758; 70.15268 2839076; 70.27616 315497; 70.37006 16317; 70.39695 70496; 70.49223 21953; 70.63894 40886; 71.0086 474495; 71.24342 5385359; 72.38121 428086; 72.39474 61324; 72.48701 8703446; 72.65718 57159; 72.97222 2045594; 73.09343 1559936; 73.25479 55643; 73.49435 58090; 73.68798 1741893; 73.85287 14815999; 74.0006 22369; 74.03397 7181; 74.09098 111511; 74.12155 4194894; 74.54668 1846161; 74.63604 21025899; 74.70388 353664; 74.82944 39986; 74.91959 836339; 74.93859 33551; 75.41766 1824776; 75.46897 2273588; 75.68544 2063779; 76.16357 68027; 76.26524 1162962; 76.50366 2235736; 76.56139 154645; 76.59902 8257; 77.04565 7731; 77.18303 46864; 77.1903 5371; 77.23386 34139; 77.43256 1066970; 77.46554 27599; 77.88859 25309276; 78.09375 45947; 78.27256 9425; 78.73033 20688; 78.85642 20934; 79.11352 164459; 79.14628 64057; 79.18013 1152; 79.20159 439; 79.30425 206168; 79.37727 7612; 79.40552 2430; 79.64089 1956341; 79.70996 65957; 79.88024 24300024; 79.90272 24997; 79.9201 6360; 80.1872 2349265; 80.45713 135629; 80.47826 9483487; 80.66808 19683377; 80.84363 7424; 80.91912 7065974; 80.99377 25787709; 81.041 52111; 81.04127 7797287; 81.40933 42578; 81.61315 2636; 81.62763 35092; 81.7127 4923; 82.02686 23613; 82.08901 24434; 82.1005 6471; 82.4767 26082; 82.492 1767; 82.69982 8096102; 82.7999 1519656; 82.91105 5326883; 83.0195 13651; 83.07171 823317; 83.10374 58317; 83.32006 22434; 83.35836 154148; 83.53825 1894987; 83.59969 63858; 83.68264 2612; 83.76446 4370855; 84.04933 29202791; 84.19136 2740885; 84.34468 27952; 84.62032 618076; 84.63723 1404434; 84.87631 27537; 85.01587 3444704; 85.14856 326499; 85.51105 30492; 85.808 9220; 85.8783 12839878; 85.95379 3704948; 85.99914 21344; 86.13919 64630; 86.32557 3887370; 86.58289 46430; 86.67192 430; 86.99539 4251496; 87.22924 867934; 87.28636 23887; 87.3834 52279; 87.54256 9333675; 87.917 9289; 88.09613 6792; 88.63042 5050; 88.67393 2816246; 88.85767 625; 88.86664 41361; 88.90949 191959; 88.94591 25933; 89.41955 66466; 89.42656 874783; 89.66047 4420898; 89.71732 25131; 89.81996 854; 89.87193 1030; 90.09458 9884; 90.19273 116958; 90.29521 77202; 90.32477 7188524; 90.61083 7694; 90.74546 63023; 90.86407 7252; 90.93767 27611; 91.02505 32590; 91.14069 1335005; 91.2377 49948; 91.60574 53808; 91.75279 173678; 91.75392 53492; 91.94663 21983; 92.17743 54437; 92.97834 61684; 93.02215 201313; 93.10768 10524; 93.32096 25670; 93.3782 8466105; 93.60095 3436; 93.91361 45145; 94.13521 1978089; 94.44218 38604; 94.44346 10770; 94.56994 39264; 94.60255 41369; 94.62297 5529795; 94.80081 73624; 95.05361 9276407; 95.08859 25998; 95.17548 55698; 95.25877 60826; 95.27281 21977; 95.34847 6564; 95.34961 1237076; 95.51117 7104181; 95.87103 391072; 96.22037 3636; 96.86704 6309168; 97.00143 7191; 97.0607 3734; 97.26307 26257; 97.36735 73867; 97.59294 1335525; 97.64014 48789; 97.70504 39525; 97.7737 28426; 97.78739 45857; 97.82853 60191; 97.95108 6004548; 98.07427 143924; 98.4385 7544797; 98.44947 72136; 98.44995 4333117; 98.45535 60759; 99.18401 70120; 99.26511 1643; 99.31239 4937870; 99.44814 2442992; 99.58042 1955603; 99.94144 56728; 99.97851 3819894; 100.07429 6543; 100.24742 406719; 100.5863 72548; 100.73048 8371; 101.13682 43438; 101.20223 10087; 101.29249 9084; 101.69812 34633; 102.00995 10513; 102.11672 1746439; 102.39305 7632; 102.71649 6796; 102.96518 18083; 103.06491 852384; 103.09389 1244362; 103.11053 23749; 103.55191 24848; 103.77218 55846; 103.82521 1258026; 103.88736 62217; 103.91638 12163; 104.0795 34504; 104.131 83780; 104.13663 7990558; 104.22515 529782; 104.32719 4699784; 104.63803 5402; 104.89603 27943; 105.30225 41301; 105.64197 4960073; 105.81942 29479; 105.85399 4976628; 106.43767 4860; 106.58083 1247003; 106.92339 3845234; 106.98293 386274; 107.0485 337567; 107.08594 52681; 107.09525 75026; 107.23937 50219; 107.47048 2327059; 107.49564 187413; 107.60206 119960; 108.06423 2052505; 108.18858 6639; 108.39029 469195; 109.00953 9730202; 109.1271 1796179; 109.18858 3088134; 109.29149 56414; 109.31821 26474; 109.46944 5552269; 109.4828 6872166; 109.62245 8798965; 109.6621 16511; 109.79102 2287; 109.98616 1462795; 110.19743 13230665; 110.22636 285702; 110.25585 9760; 110.32302 25592; 110.64281 3668434; 110.66582 17960; 110.66585 72232; 110.94923 29917; 111.15961 46200; 111.48004 1683071; 111.54223 801734; 111.71187 44085; 111.95091 7257; 112.09247 20474; 112.09812 47488; 112.21157 17046008; 112.24725 75598; 112.32006 562372; 112.32022 28571; 112.51761 4238; 112.65472 4719651; 112.78501 71275; 112.80087 7041653; 113.00966 29448; 113.05866 2915787; 113.29253 62398; 113.84106 16328; 113.91671 3619; 113.94184 9853757; 114.25405 37710; 114.31935 3105280; 114.40729 8551; 114.65956 6001; 114.78467 2728021; 114.85287 25102; 115.03312 4646498; 115.36414 13813921; 115.52176 359844; 115.58556 159409; 115.71537 46521; 116.08933 2750303; 116.61362 128353; 116.67188 7233; 116.83693 39132; 116.86569 70360; 117.17218 1339196; 117.43664 58416; 117.44293 4245210; 117.77209 328; 117.93127 40607; 117.972 2903; 118.09761 19330; 118.48447 6170; 118.68615 8445993; 118.92028 40687; 119.07735 13997; 119.55074 78563; 119.85672 413964; 119.98176 7814; 120.04791 25948; 120.14275 761823; 120.25249 32719; 120.57013 4857538; 120.57359 2150988; 120.8441 8163; 121.09716 16827; 121.16649 68645; 121.40113 1600019; 121.47537 1550334; 121.47988 88211; 121.61308 8099; 121.67988 6001; 122.57018 49; 122.78597 116229; 122.80646 15581; 123.12996 29344993; 123.3703 393617; 123.48683 46922; 123.59504 741460; 123.61663 28244; 124.08205 56663; 124.20753 1042; 124.61633 2775784; 125.06037 6064766; 125.31352 58371; 125.43855 308509; 125.44214 8511036; 125.93425 1556552; 126.12039 7526382; 126.32246 36652; 126.33768 24333; 126.44244 6321883; 126.44437 21511; 126.49995 3883; 126.94242 37499; 126.96377 1729919; 127.09514 1761414; 127.32777 78426; 127.61078 105157; 127.67145 6185844; 127.7399 54210; 127.96276 1269114; 128.05159 60077; 128.29297 29515; 128.36927 99594; 128.39295 1922471; 128.50672 1179925; 129.03556 55123; 129.1339 1043; 129.16689 72396; 129.41337 24113168; 129.47313 73572; 129.53983 4596481; 129.66807 46751; 129.70624 177490; 130.14117 38452; 130.27437 6644; 130.33882 2334578; 130.39143 44386; 130.47364 10706; 130.58764 197241; 130.63819 3839952; 130.74863 5648; 131.54573 8566; 131.69874 24067; 132.1759 1098939; 132.26391 20337; 132.35222 232; 132.38501 24111; 132.54394 3451187; 132.96285 6034017; 133.15016 1538771; 133.51288 677220; 134.36864 626912; 135.17533 68611; 135.19486 1526379; 135.31842 5133999; 135.35277 942983; 135.56926 39538; 135.74254 69167; 135.78524 45576; 135.87514 2226811; 136.0486 1415; 136.42321 20847087; 136.51157 67311; 136.7842 17134; 136.8239 28040; 136.91028 35269; 136.93021 41069; 136.97293 5632042; 137.03181 28951; 137.18644 529311; 137.31173 73968; 137.32681 224106; 137.62528 50652; 137.67326 183931; 137.97563 1798699; 138.05953 1409988; 138.1247 6728; 138.23596 56217; 138.40436 4400497; 138.69958 914660; 138.85699 3350; 138.97622 6544223; 139.01884 7893; 139.41789 97452; 139.48752 1262328; 139.55211 22142; 139.62988 150083; 139.70954 59119; 139.72719 801515; 140.04809 1916712; 140.15741 55401; 140.31736 6966; 140.3226 4805450; 140.38292 35944; 140.4438 42511; 140.60909 17207; 140.65982 20005; 140.94576 71910; 141.09636 45229; 141.26931 77898; 141.28902 26011; 141.32413 12072; 141.37523 28017; 141.45889 2942942; 141.49469 19467344; 141.58494 1911100; 141.70136 1103744; 141.98395 13987; 142.11663 26643; 142.26319 56469; 142.93286 45682; 143.00713 167250; 143.01665 4474988; 143.15117 41466; 143.27475 56024; 143.40028 39406; 143.46661 189191; 143.61961 25746; 143.6408 1708040; 143.68207 7484180; 143.83808 2175691; 143.98877 27928; 144.20675 30837; 144.43488 15812; 144.61828 3503790; 144.72914 1877504; 144.75138 2403; 144.93831 6477846; 145.14771 2733; 145.2883 6487757; 145.31898 40284; 145.36138 37338; 145.96724 674187; 146.06887 1476182; 146.39695 63831; 146.52963 14344; 146.60805 71132; 146.72019 37776; 146.92419 24525; 147.19039 67400; 147.38381 297769; 147.61613 28914580; 147.76721 2671625; 147.79303 7933; 147.82084 8722202; 147.97785 6322; 148.35601 7062224; 148.36843 28191820; 148.52318 19899293; 148.69724 623403; 148.95974 35330; 149.00486 1647872; 149.00651 3646205; 149.06818 25531; 149.32523 5634; 149.51094 78564; 149.97735 1768958; 150.0419 7841; 150.49099 1213058; 150.51389 1001182; 150.51866 79216; 150.64435 51483; 151.43541 37973; 151.67748 2108598; 151.74552 22965; 151.79572 698133; 151.97694 53273; 152.0301 8591646; 152.06114 181583; 152.41842 779953; 152.56134 913885; 152.59583 1612464; 152.67795 1798541; 152.7363 25538594; 152.92429 35874; 153.24442 25250; 154.56747 202607; 154.67476 264613; 154.70245 1188158; 154.74333 26315; 155.1843 83169; 155.19609 29783; 155.25394 5102409; 155.46807 35415; 155.82756 3694; 155.83463 20611; 155.83638 5563873; 155.9444 25460; 155.98218 22014; 156.24096 34048; 156.48934 40852; 156.52519 1892465; 156.75607 1988531; 156.9514 4604; 157.04882 21725; 157.38924 3303; 157.45308 3858746; 157.52039 10436; 157.54074 978210; 157.69939 8041799; 157.94452 591925; 158.02915 18421; 158.04505 1949919; 158.22721 20211; 158.30024 1097303; 158.38498 7184; 158.72945 462849; 158.77331 3426517; 158.80058 23398; 158.95336 18028; 159.01605 115117; 159.14644 30996; 159.42463 69869; 160.05785 673427; 160.14015 37995; 160.17435 26267; 160.40432 62329; 160.50812 193355; 160.62227 1096616; 160.70366 3156; 160.71228 17318054; 161.02392 45637; 161.23389 63736; 161.49628 20628238; 161.56977 15159; 161.656 1001706; 161.88687 24743; 162.05264 24779; 162.16949 193738; 162.39168 48482; 162.65098 39504; 162.72533 58130; 162.76163 4526327; 162.8848 4515; 163.00983 79688; 163.01441 29580; 163.01466 3649; 163.06031 4181731; 163.11545 30490; 163.72913 2464172; 164.01778 74150; 164.04402 63451; 164.4036 792448; 164.65853 76794; 165.12042 3245845; 165.20758 3263; 165.30297 148513; 165.5691 35501; 166.12736 4578110; 166.20492 2207413; 166.60758 2230; 166.62894 40575; 166.72335 6825569; 166.76591 1346961; 166.85955 158679; 166.88088 31011; 167.07948 9151; 167.21248 25085; 167.28842 40588; 167.9983 5957; 168.25932 8441; 168.28353 546811; 168.32635 154428; 168.35871 15542; 168.3639 494242; 168.38403 4223127; 168.43226 40188; 168.65208 25786; 168.68961 2424770; 168.98368 12251633; 169.10288 59027; 169.11862 385275; 169.14653 18369169; 169.24504 23424981; 169.40386 773308; 170.23678 1056843; 170.61587 144020; 170.61823 76940; 170.81249 67893; 170.97904 25732; 170.99342 28031; 171.02001 158799; 171.04602 27910; 171.10013 4696288; 171.14961 59741; 171.23719 3268; 171.68268 21895368; 171.72717 7819905; 171.86236 74215; 172.09039 1672; 172.21944 8455; 173.09166 39507; 173.12369 29291; 173.31408 76337; 173.51297 1450; 174.72188 51991; 175.13778 39351; 175.16893 6858; 175.39952 166403; 175.89655 6431; 175.91685 7370; 175.92764 185320; 176.23828 3411923; 176.39296 5152; 176.39788 63334; 176.67821 1524823; 176.68749 7026; 176.70035 159376; 176.83383 10495; 176.88668 8183082; 176.97662 4893686; 177.25658 40330; 177.44825 56857; 177.45967 795493; 177.60522 3612973; 177.69861 288; 177.75541 6818470; 177.81995 104945; 178.02431 10449; 178.07569 6743; 178.26685 78817; 178.33579 13684; 178.48245 5821428; 178.80312 26986; 178.8823 708935; 178.93206 75407; 178.94497 20508; 179.5795 62515; 179.8571 7266; 179.86486 2393984; 179.91179 2567318; 180.05841 1428200; 180.13563 20590; 180.28764 34283; 180.77365 1607446; 180.77703 21069; 180.99576 22954262; 181.15176 28478; 181.26426 28410; 181.44707 71522; 181.59516 2225114; 181.84053 62486; 181.85272 26249; 181.96744 25387; 182.09927 9570; 182.22371 663572; 182.23355 792343; 182.29206 40429; 182.572 25129; 182.66578 713341; 182.72546 49390; 183.04245 603204; 183.32286 1117500; 183.36831 273922; 183.38142 28104; 183.60233 27876; 183.69357 2491; 183.81907 25570; 183.89464 2839; 183.99789 124285; 184.03802 32744; 184.0525 1738948; 184.63308 28156; 185.10073 65241; 185.10879 549616; 185.18873 9025; 185.34596 588795; 185.75197 75174; 185.76476 54292; 186.46603 4784738; 186.51791 6231; 186.67595 4990; 186.75732 8880648; 186.8535 5623; 186.86953 8918; 187.26273 4650408; 187.26743 161963; 187.46494 65118; 187.61198 28461; 187.64823 878685; 187.65153 47648; 187.86638 134043; 187.96862 46695; 188.02042 21126694; 188.43497 2710961; 188.67189 8806; 189.61482 1428052; 189.75213 6226687; 189.96147 270808; 190.23309 374134; 190.81992 2332874; 190.84327 5324; 190.9031 108225; 191.36371 21120262; 191.63647 4193333; 191.65862 692035; 191.7292 62450; 191.76979 163403; 191.79179 75214; 192.00475 32349; 192.06294 24726; 192.20016 965252; 192.27084 66313; 192.42699 27454; 192.50259 392; 192.62277 20470658; 192.6414 4825051; 192.97843 8596; 192.99302 15180; 193.01618 34037; 193.04723 55386; 193.0959 1325093; 193.46861 25341; 193.78527 287597; 194.30208 470439; 194.36355 3133154; 194.39401 123291; 194.44939 758205; 194.56074 5949; 194.76158 10522; 194.90431 59255; 195.05535 146749; 195.18695 6457102; 195.37931 7734; 195.52367 2776867; 195.5277 68333; 195.60602 1890790; 195.62429 53849; 195.6595 60549; 195.7286 4152; 195.75598 2618201; 196.18782 25667479; 196.54652 184417; 196.60006 28605; 196.65435 26711; 196.87917 2749055; 196.98085 1164555; 197.07497 79058; 197.12838 695804; 197.18094 7160; 197.25953 73790; 197.34094 41664; 197.42146 1059720; 197.659 1452159; 197.66554 41204; 197.812 2782141; 197.89284 5421; 198.20022 54181; 198.3681 16603; 198.39629 210445; 198.39654 1713420; 198.90415 1808847; 199.19614 7899668; 199.40121 155159; 199.55291 1107700; 199.61483 122216; 199.65016 27754; 199.69775 9608; 199.75233 8557355; 200.17868 1322; 200.64904 68426; 200.79068 28076979; 200.89314 4223539; 201.10272 666; 201.24571 38302; 201.47648 60803; 201.51135 24001; 202.02185 2009; 202.26934 1798340; 202.44204 52606; 202.45198 3410; 202.6188 169349; 202.76463 70932; 202.85881 2632110; 202.99249 32874; 203.00166 28255; 203.2173 7583; 203.46221 19328; 203.61657 3070333; 203.65586 28221; 203.74306 3188167; 204.11822 24172; 204.47086 1349282; 204.67689 1510111; 204.86083 9937; 204.97453 3378220; 204.98746 9365; 205.29825 129269; 205.99426 1938612; 206.01601 7139; 206.48804 175207; 206.54541 14853972; 206.83636 17943; 206.89878 24385; 206.97131 64534; 207.02252 4156; 207.23083 16713; 207.33116 1835692; 207.40856 25813; 207.54345 4929189; 207.80295 4536097; 208.01745 1931723; 208.01867 4853826; 208.02219 4193017; 208.05825 51711; 208.15418 7699996; 208.91783 2374666; 209.12468 62645; 209.88901 1587524; 210.11122 78954; 210.30248 2038517; 210.75764 59506; 210.7718 2162; 210.78301 7221; 210.86952 7694; 210.98263 6891; 211.02504 21751; 211.57031 62431; 211.6752 1265438; 211.73654 186182; 211.7506 43749; 211.80689 15471683; 212.00654 10105; 212.15632 2284910; 212.49746 7704486; 212.51235 1623; 212.60873 21668; 212.7077 3810849; 212.82004 49198; 212.97276 48331; 213.17871 186065; 213.21208 3280543; 213.31376 3669; 213.36089 23512; 213.54278 676805; 213.64843 3949465; 213.70972 3560308; 213.80352 1048264; 213.80968 5606; 213.83373 109487; 213.85131 22927; 214.06003 2226594; 214.25115 162618; 214.81917 3912098; 215.19737 188965; 215.20162 20262; 215.29665 1552287; 215.65764 752072; 215.84742 65161; 215.88627 70367; 215.89409 71510; 216.06328 67945; 216.08359 1878119; 216.17185 33390; 216.19598 1958; 216.29936 180290; 216.42084 2903; 216.51558 1623385; 216.66634 7280281; 216.75533 1284; 216.88923 2358; 216.9474 4902723; 217.45912 1776124; 217.78951 5585; 217.87923 4853; 218.07633 24481642; 218.16421 16161; 218.43504 128877; 218.5891 20335; 218.59458 1794777; 218.63158 18706; 218.69727 21300; 218.69959 29240; 219.09326 1503620; 219.10931 74671; 219.31638 17268; 219.43545 8394; 219.67207 26310; 219.76566 26380; 219.83105 6638627; 220.10327 15860182; 220.11777 24612; 220.16123 1043150; 220.28309 45894; 220.47034 1589020; 220.4878 24808; 220.50842 5989; 220.68202 8653; 220.80795 9770; 220.96235 91628; 221.05955 173540; 221.07619 9470; 221.27597 4969491; 221.62159 1145228; 221.65327 68013; 221.66102 68628; 221.71353 29010; 221.94163 7080; 222.35844 8696; 222.66295 80835; 222.67725 37459; 222.69144 26529; 222.74689 139141; 222.86393 2759714; 222.88471 20722; 223.05813 23141; 223.14076 3062949; 223.82958 63428; 224.04983 35110; 224.10288 27894; 224.3966 9229; 224.67481 21526; 224.8188 6653; 224.92498 6727241; 225.20398 34875; 225.26003 3784061; 225.36865 118092; 225.66233 5878; 225.67498 101760; 226.13905 3677; 226.54786 7339067; 226.67267 1798213; 227.09589 56146; 227.59046 1480339; 227.71059 73706; 227.87239 4572; 228.01119 4983387; 228.07101 548450; 228.28257 1514225; 228.47124 12; 228.5765 709948; 229.08109 5027; 229.80137 9441; 230.12592 61727; 230.21747 845042; 230.46343 22372325; 230.50439 1259164; 230.58651 135127; 230.63588 21849; 230.67379 39740; 230.81727 176395; 230.87969 11057; 230.97372 2979369; 231.07336 69058; 231.2882 3448707; 231.70057 36923; 231.8189 597266; 231.83832 9820814; 232.05292 135211; 232.20679 25377; 232.27135 1168702; 232.29377 24414; 232.32787 9047; 232.45205 46982; 232.47501 3845457; 232.80975 23579; 233.14531 1241756; 233.33858 4418863; 233.56366 2562167; 233.89262 26195; 234.1117 19430; 234.51054 25475; 234.63316 5725119; 235.02844 851; 235.11834 194781; 235.23569 3668962; 235.40593 28443; 235.42676 4609289; 235.90057 32703; 235.97395 43601; 236.052 35489; 236.12016 34342; 236.15907 1744253; 236.56995 3077459; 236.73598 12753534; 236.73916 53626; 237.03254 28309; 237.94625 264867; 238.0198 35661; 238.05872 20138; 238.08389 499; 238.12546 317097; 238.42183 7862; 238.49626 1833328; 238.69024 37205; 238.72497 51086; 238.74637 541284; 238.77093 39724; 239.00269 7274305; 239.35316 1698539; 239.50747 59884; 239.63172 28864; 239.77499 47752; 239.93135 63096; 240.08397 165792; 240.20618 50014; 240.26021 22450; 240.35293 62267; 240.52448 22405094; 240.87743 23343; 240.95983 918; 241.49099 21456; 241.62926 13555; 241.71884 58971; 242.1504 8940; 242.77524 66701; 243.04245 12788; 243.42368 57298; 243.47901 26231; 243.83873 2453481; 244.02066 47852; 244.13911 64462; 244.15035 4641; 244.23808 2226053; 244.37135 9032241; 244.92782 4441581; 245.0715 132053; 245.12586 16079; 245.42681 1304741; 245.52572 8999112; 245.76844 349156; 245.98368 76446; 246.11529 32179; 246.25028 1145595; 246.41626 26346; 246.61242 2814913; 246.86342 29944; 246.97307 143369; 247.1831 23392; 247.24527 36609; 247.32262 27010; 247.45325 576008; 247.47889 318556; 247.51407 2567451; 247.92675 27235; 248.04308 21243; 248.06485 5933335; 248.19486 889199; 248.54293 37824; 248.57415 20315; 248.73585 1235931; 248.76685 1744745; 248.79182 142378; 248.92912 139358; 249.00699 1974783; 249.05921 70498; 249.06114 5708014; 249.23809 21981116; 249.27721 2626175; 249.2838 10360; 249.47447 413824; 249.52078 114402; 249.64736 65186; 250.55155 137503; 250.81833 123631; 250.93795 65362; 251.34373 125075; 251.51683 52138; 251.52178 20059; 251.64862 69752; 251.69425 54601; 251.90839 4659780; 251.92734 8153186; 251.9456 63644; 252.12827 179108; 252.24276 663215; 252.29178 134562; 252.38548 71169; 252.41883 53221; 252.44274 3833483; 252.49989 5576; 252.74735 8264; 252.84725 24358; 253.07086 89384; 253.3768 28576; 253.43741 35589; 253.44895 1520334; 253.53834 12653648; 253.69088 178924; 253.8202 24998; 253.90423 3029256; 254.00945 7277110; 254.49192 1415147; 254.62116 46406; 254.95206 62429; 255.02937 4930370; 255.21795 126563; 255.26996 72039; 255.31877 316930; 255.62534 78390; 255.69909 10772; 255.70897 254635; 255.82798 3467226; 255.91412 692; 256.04341 2266; 256.08225 2804760; 256.11596 73482; 256.41292 2268405; 256.68557 420524; 257.22082 8342; 257.2299 59771; 257.31089 26150; 257.34237 28234; 257.64616 7364; 257.85143 35934; 258.08819 115525; 258.10015 255265; 258.3971 128802; 258.69674 29005635; 258.92731 6370; 258.93102 24870; 258.95811 69584; 259.07775 626654; 259.30628 12660; 259.32856 56634; 259.34584 22808; 259.55139 39606; 260.13472 1123588; 260.24164 11836; 260.24632 119216; 260.26102 161796; 260.72851 8810688; 260.75622 1697921; 261.0967 6633807; 261.31178 6307524; 261.61428 6345311; 261.6239 8216; 261.63636 497012; 262.18496 4248613; 262.25035 41933; 262.47891 47637; 262.55742 24720; 262.7296 22163; 262.87175 64427; 263.16328 136959; 263.71587 54566; 263.73628 24065; 263.85301 62191; 264.05913 677627; 264.12048 166003; 264.1229 9458; 264.12361 46192; 264.48385 13214; 264.55079 45409; 264.55354 4885238; 265.11147 509548; 265.79365 5873114; 265.92706 1305346; 266.05385 4433062; 266.10057 13482; 266.19181 1674435; 266.24246 3461226; 266.25405 791860; 266.35845 26021475; 266.71772 14118; 267.0101 33857; 267.09025 6849395; 267.22079 69056; 267.29808 188466; 267.30307 64462; 267.45557 193510; 267.53172 45321; 267.74987 21768; 268.0499 441026; 268.24437 20924; 268.4916 28085; 268.70871 56629; 268.7838 8490; 268.78427 3080708; 268.9319 28508; 269.28316 3902; 269.82432 3830470; 270.07605 33944; 270.15939 3495; 270.32107 67801; 270.33574 5678756; 270.69644 4393506; 270.74811 2287752; 270.88064 27774; 271.02066 4626180; 271.08039 8388171; 271.18582 6927; 271.80996 38425; 272.00096 5058317; 272.05551 18782; 272.07408 1390; 272.34642 187; 272.38416 64432; 273.30511 14281; 273.45474 124218; 273.54196 158581; 273.7475 44215; 273.79293 40107; 273.80462 1931596; 273.94128 3651397; 273.98493 8218336; 274.01845 28813; 274.38093 47265; 274.45045 8289; 274.66387 87680; 274.66427 59594; 274.75518 26861; 274.79409 6097244; 274.81745 1279015; 275.02594 55459; 275.46437 1104789; 275.73894 6529; 275.77691 55188; 275.83572 28362; 276.09093 21612; 276.18048 57171; 276.58109 4089; 277.3703 20234; 277.55018 4369891; 277.66909 2535; 277.70477 21880; 278.05852 2097; 278.1133 4049; 278.35597 7256; 278.47344 189572; 278.65402 74369; 278.89621 33558; 279.58911 8736062; 279.71128 437049; 279.8748 70872; 280.03637 8497919; 280.22741 4192; 280.4877 5874; 280.51057 3734549; 281.00621 8195512; 281.03089 29730; 281.68145 186063; 282.10854 72305; 282.1717 3723; 282.88056 57101; 283.14346 40393; 283.15171 79850; 283.1741 12825; 283.48961 1472964; 283.49345 20056; 283.51088 6321; 283.66731 6547; 283.68872 4550881; 283.86973 91061; 283.91239 5712; 283.95429 22842; 284.01382 3031116; 284.03293 2031049; 284.19845 1681282; 284.35058 7359; 284.3915 937274; 284.68156 47951; 284.78824 40826; 284.92186 9139; 285.46725 79308; 285.58843 458332; 285.59214 635198; 285.61617 229326; 285.63322 2317437; 285.73431 53008; 285.74513 231632; 285.93914 1974155; 286.22898 8230; 286.37781 6150888; 286.43698 7661339; 286.72175 21948; 286.82036 9755; 286.82664 2748; 286.89571 6712278; 287.02028 39287; 287.1234 45; 287.17091 5235; 287.20227 61587; 287.21103 162986; 287.35592 121431; 287.49004 75483; 287.54797 3428940; 287.56485 23562; 287.78519 541745; 287.87822 12735; 288.2552 90536; 288.71695 226644; 288.9478 6076298; 289.34891 1327053; 289.40757 33414; 290.19291 12129; 290.46425 26674; 290.51729 45325; 290.53493 58060; 290.54763 4495602; 290.55519 31966; 290.76417 1874627; 290.95215 7265; 291.02972 4225; 291.47026 1605344; 291.49194 915400; 291.73829 3338; 291.8896 163; 291.99787 51551; 292.2242 1586037; 292.37298 22693; 292.39753 4668; 292.5465 19761; 292.95034 24207865; 293.34353 2540072; 293.4713 2299; 293.54704 29670; 293.6462 22071; 293.70787 24101; 294.02042 8075; 294.21913 2598432; 294.31094 1546630; 294.53947 26964; 294.60913 100; 294.91576 52398; 295.38631 51772; 295.54601 8436; 295.56429 1812586; 295.60082 1988868; 295.70419 2056; 295.90391 18573; 295.9232 246318; 295.97023 1950949; 296.21119 65779; 296.36073 1513628; 296.46613 875346; 296.57548 68812; 296.64668 27836; 296.71286 1237; 296.71526 3377667; 296.78018 63904; 297.17092 29313; 297.59708 24895; 297.62466 2068758; 297.73727 52549; 297.87608 53415; 297.9141 39178; 298.43234 605173; 298.97958 882566; 299.0075 62783; 299.23989 28532; 299.77321 2443817; 300.25862 41871; 300.40662 23039; 300.58857 4017540; 300.63304 6167; 300.73747 9302026; 301.27822 905182; 301.32911 179601; 301.55816 966225; 301.64596 23358; 301.85826 1163560; 301.99058 3965981; 302.18602 8315; 303.11633 21244760; 303.37235 42418; 303.54023 100369; 304.27719 50867; 304.30055 1335413; 304.39751 1602419; 304.74374 65581; 304.90673 6079; 305.23143 8585671; 305.2352 4806291; 305.33919 44327; 305.48355 24417; 305.61875 6857; 305.99037 368451; 306.08254 3907541; 306.72174 46458; 306.95457 752470; 307.12252 9937; 307.35101 64929; 307.65655 162920; 307.99879 8902; 308.48955 3820159; 308.56751 4852811; 308.59264 1258438; 308.67886 5922241; 309.17226 40995; 309.36522 5316; 309.43439 4883651; 310.45322 24959; 310.72218 25352; 310.96349 42439; 311.03651 17002923; 311.06243 79273; 311.58396 57286; 311.67509 3480; 311.70423 2810622; 311.96455 24696; 312.05652 41715; 312.13282 25661; 312.13428 146014; 312.13818 7994; 312.31538 601764; 312.73162 66218; 312.75257 889412; 312.90962 71419; 312.95541 20736; 313.23112 49568; 313.98477 10468; 314.42914 4108032; 314.47793 3524; 314.59304 110697; 314.98541 8843; 315.21644 4092; 315.22252 6044; 315.24011 26892; 315.54188 29351; 315.565 6978820; 316.03116 1418986; 316.17336 16242; 316.27748 143127; 316.45176 136955; 316.5446 4144433; 316.57006 1273307; 316.60935 7788; 316.95518 3700; 317.29334 3163316; 317.39885 1818755; 317.85345 13136; 318.26717 3238; 318.40416 783839; 318.51215 27316; 318.53954 22818; 318.74028 24900969; 318.74362 5259240; 318.9715 19706268; 319.021 163795; 319.08246 4310633; 319.34982 344984; 319.56204 8467; 319.81282 1939456; 320.04312 4181; 320.10863 4720227; 320.33548 27719; 320.3642 3146; 320.95218 89458; 321.11368 21260; 321.11618 7463885; 321.19895 1311800; 321.21474 79175; 321.28027 28880065; 321.41416 47487; 321.68447 25594; 321.83438 30445; 321.97186 1959; 322.14598 8547401; 322.38324 2650936; 322.46775 2283405; 322.90814 14004; 323.31417 796146; 323.50222 67512; 323.71979 5031; 323.82403 1182471; 323.84072 62733; 324.24778 1225327; 324.31878 160150; 324.36243 2430283; 324.40146 51370; 324.64746 1075255; 324.88353 164332; 325.36215 55050; 325.41109 65324; 325.4412 3306350; 325.58414 10035; 326.08739 4939; 326.09833 64502; 326.7767 5877229; 326.83905 865814; 326.88138 1792427; 326.90788 6284546; 326.91188 71398; 327.01609 304055; 327.09636 8154960; 327.12921 23127; 327.27032 9774; 327.40232 5482404; 327.63853 1795043; 327.6681 31987; 328.18509 478297; 328.32093 973633; 328.41773 566962; 328.67061 24027; 328.67637 31265; 328.7579 100473; 328.95632 727360; 329.13248 4800; 329.14122 8938568; 329.30021 45657; 329.30688 4083409; 329.32579 3645069; 329.3823 48607; 329.48455 27057; 329.61352 36643; 329.73251 74111; 329.78494 16759; 330.22056 4899222; 330.24088 5910415; 330.25696 17433; 330.51689 55966; 330.65873 3553; 330.91982 65259; 331.0615 2120909; 331.19456 16389; 331.42479 17036; 331.53494 8914; 331.73497 22248; 331.83397 570069; 331.86697 461494; 331.89665 693933; 332.14197 8286; 332.23897 3384421; 332.40134 1482714; 332.76381 2433771; 332.82329 72673; 332.95546 37160; 333.07497 34361; 333.14675 1211059; 333.16363 29678; 333.1723 6760; 333.41726 93957; 333.60336 24394; 333.70642 135611; 333.76953 145846; 333.86129 125753; 333.86461 8102; 334.00403 20924; 334.14251 30193; 334.68756 98006; 334.80081 64795; 334.81181 9694; 334.95259 7234927; 334.96747 75363; 335.06948 43514; 335.26942 4021585; 335.33423 562646; 335.35667 3587881; 335.47757 803653; 335.58147 21090; 336.20409 4755350; 336.23292 1928883; 336.27914 36663; 336.46426 5882721; 336.5992 3602343; 336.83252 45935; 336.92224 34609; 337.08836 4838; 337.10372 23785; 337.56924 373276; 337.71681 1685539; 337.81022 935069; 337.85551 740182; 337.91621 1061894; 337.92563 8126; 338.16462 41201; 338.31569 60197; 338.3413 4047466; 338.59511 12233; 338.78037 61670; 338.81201 16085; 339.06344 587004; 339.13984 26508; 339.29891 1681; 339.33003 57206; 339.75434 53135; 339.77339 32379; 339.87162 143874; 339.92189 9006; 340.05324 554823; 340.0648 563110; 340.50127 308344; 340.6956 666184; 341.03311 15892; 341.42181 39126; 342.00757 62914; 342.00795 24991; 342.0117 701211; 342.02537 172140; 342.04949 21595; 342.16133 5012415; 342.23134 13160; 342.48063 31506; 343.06379 2657; 343.35984 7987011; 343.46819 27894; 343.51435 52047; 343.59602 3900667; 343.87828 35856; 343.87837 24465; 343.88599 525931; 343.92766 52151; 344.71852 3890969; 344.87216 1341887; 344.87751 8512629; 345.15195 9344212; 345.22856 448409; 345.35927 87731; 345.42366 37491; 345.43312 39557; 346.12836 60337; 346.23419 455041; 346.97312 131779; 346.99687 79493; 347.04084 61811; 347.38047 10901104; 347.45281 9822; 347.52186 644345; 347.91127 4611858; 348.3445 2656168; 348.50145 5643034; 348.57541 4153421; 348.71829 9365878; 348.91538 48957; 349.06587 50561; 349.14797 65021; 349.16392 12882; 349.24782 40779; 349.72572 56438; 349.73666 26681; 349.77662 8288; 349.77916 1670956; 349.82491 4035; 349.98173 51052; 350.29752 51403; 350.46212 1586015; 350.62854 8389; 350.63463 41530; 350.70959 23214; 351.2619 24475505; 351.47314 8781; 351.70581 1005; 351.76173 3481; 351.90506 1671434; 351.95447 1365252; 352.01463 26893; 352.30642 3722353; 352.31909 49509; 352.48279 29207; 352.64222 18283743; 352.65242 21502; 352.70437 16971; 352.73952 19141; 352.75123 48523; 352.97147 3005739; 353.19824 5015132; 353.23393 1812492; 353.31417 44404; 353.32317 43233; 353.39912 77808; 353.40705 42978; 353.58722 1081480; 353.63675 1083755; 353.98257 24648; 353.98299 41582; 354.03043 4852031; 354.13472 3326718; 354.33842 4733011; 354.36409 1147651; 354.452 45393; 354.47308 5455; 354.66633 115407; 354.76045 18385754; 354.86251 4427246; 354.94595 19258; 355.04202 20965; 355.43387 4656628; 355.50187 7472; 355.53221 91122; 355.53949 29847; 355.92659 3033105; 356.10575 377; 356.10686 588307; 356.19442 622599; 356.41696 63365; 356.53452 1397597; 356.69702 31043; 356.80929 1433629; 356.89756 68710; 357.38953 23381835; 357.44693 75864; 357.59576 5006; 357.65351 52925; 358.03428 42866; 358.15156 198074; 358.16212 25926; 358.47213 9493; 358.92205 713415; 359.00825 70829; 359.05764 182518; 359.25256 76538; 359.43502 2677313; 359.79433 683001; 360.12556 99048; 360.14268 2701040; 360.59242 38135; 360.60354 4030616; 361.12571 1448319; 361.22255 2144; 361.29512 20114; 361.50317 24080; 361.95932 5955314; 362.3649 73589; 362.43725 42493; 362.59104 1692465; 363.00067 4241207; 363.31611 707401; 363.32785 17756; 363.37031 2166301; 363.3829 57355; 363.60492 1201509; 363.86223 10226; 364.42097 181000; 364.76492 906336; 364.80832 1637710; 364.83735 3211024; 365.02176 33303; 365.02192 29463; 365.14808 1816690; 365.43108 1027495; 365.54427 9747; 365.56013 1279; 365.56168 4336013; 365.57378 25218; 365.60434 22826; 365.62026 4887; 365.68096 736380; 365.70147 172057; 365.7091 28043; 365.96113 7200863; 365.97956 5853; 366.12752 58815; 366.23087 2303494; 366.26532 140483; 366.28839 25495; 366.29638 4317057; 366.34671 490084; 366.45512 4612; 366.46805 57571; 366.4823 18047; 366.52681 364606; 366.55878 79558; 366.86949 13232; 366.94636 4442607; 367.89146 7347222; 368.14151 22035; 368.57043 79; 368.59433 1213763; 368.75098 56382; 369.10807 868274; 369.14142 1940960; 369.63252 142205; 369.95584 57; 370.00079 4907392; 370.12616 13725932; 370.4043 32311; 371.05604 306963; 371.08788 4724264; 371.1777 2968830; 371.20642 1229943; 371.33237 1342476; 371.61424 13827; 371.73783 4536; 372.16788 37036; 372.16879 1741456; 372.21546 41946; 372.25511 895471; 372.35198 2749728; 372.72106 45184; 372.7912 23657; 372.82832 42739; 372.95006 22099; 372.98497 69090; 373.02383 3090; 373.08875 5273268; 373.29433 29142; 373.59571 64762; 374.01196 9956624; 374.1542 12106; 374.44176 73590; 374.74506 62777; 374.78166 181; 374.80241 49109; 374.98339 67478; 375.05024 29239; 375.17229 3297336; 375.23576 1694358; 375.60552 424382; 376.12069 5329; 376.26001 2386; 376.41999 1298970; 376.48206 45715; 376.51031 9072; 376.85274 76038; 376.89107 9807734; 376.96135 774835; 376.97195 112639; 377.01241 7725250; 377.08697 132254; 377.16553 9565209; 377.1767 136674; 377.25563 12677; 377.34722 24937; 377.40097 4119579; 377.40153 9527; 377.62124 18480; 377.77618 99158; 377.79025 69505; 377.79047 186793; 377.93339 35052; 377.96273 44617; 377.97356 3294; 378.06347 46473; 378.10045 1625560; 378.18858 224134; 378.22545 4919046; 378.30981 7072792; 378.31741 9698; 378.78156 4582208; 378.89477 314745; 378.97882 805517; 379.00974 4476; 379.15008 4163387; 379.28784 57100; 379.31586 106746; 379.52981 8121; 379.67444 785148; 379.7306 1198165; 379.84919 51322; 380.21496 16556; 380.40459 16713; 380.67434 50735; 380.85534 3619421; 380.98113 70318; 381.13226 42221; 381.17997 160353; 381.31788 614028; 381.32696 1681; 381.6719 4359; 381.82914 28085; 382.13261 49729; 382.26316 991; 382.26687 5310; 382.47261 2205144; 382.5368 52852; 382.53709 804523; 382.5644 46154; 382.71678 12617; 383.64323 63522; 383.66838 4491142; 383.97253 6421; 384.19544 351486; 384.23198 3530870; 384.25971 63162; 384.31112 198705; 384.82018 25883; 384.82296 5812379; 385.05921 56324; 385.09906 51912; 385.42454 13882; 385.45443 775748; 385.63563 49696; 385.65008 2467201; 385.72919 2358; 385.90462 3197386; 385.97891 5593994; 386.1395 63935; 386.15906 3716997; 386.29295 196866; 386.30482 33763; 386.38652 472223; 386.42997 758246; 386.54249 97496; 386.72666 22714; 386.73997 16962522; 387.04555 798324; 387.06998 6185538; 387.31686 6729; 387.52845 4338; 387.81142 38317; 387.93575 1091488; 387.95366 246468; 388.07749 5953091; 388.79044 31229; 388.95811 3946; 389.01468 3219176; 389.45361 55354; 389.79217 1849835; 389.83356 1774023; 389.87804 21226; 390.07145 54566; 390.18549 45418; 390.21851 14235; 390.24111 27525; 390.5553 56372; 390.64294 16563; 390.96008 14906341; 391.17215 21549; 391.24178 8166164; 391.7257 3422552; 391.72603 9437; 391.8135 748145; 391.94343 6742; 392.59921 3288; 392.72529 157748; 392.81489 26113; 392.9087 7463; 392.96693 46692; 393.08135 31253; 393.09852 546756; 393.19219 51955; 393.28873 39393; 393.41092 7661; 393.98623 39109; 394.19071 397226; 394.28571 6288; 394.34773 693650; 394.50892 74706; 394.65411 116678; 394.83588 70161; 395.09335 859130; 395.21919 7548056; 395.51875 1468; 395.52537 1925064; 395.53223 60179; 395.95124 110800; 396.1946 156468; 396.30498 9941; 396.31347 5851; 396.64012 7408553; 396.72008 117089; 397.08613 2360357; 397.36029 44111; 397.46463 2688; 397.51477 57980; 397.75275 676730; 397.96162 2238; 398.36205 1737402; 398.37267 2524; 398.57555 36610; 398.81841 164333; 398.86264 4152736; 398.99048 1982058; 399.03582 140329; 399.13437 210; 399.19419 96179; 399.48658 3808; 399.60391 125510; 399.83053 50742; 399.93037 31296; 400.23286 1461; 400.57491 65634; 400.62903 1096992; 400.79813 77628; 400.96092 26172; 401.0545 47990; 401.34967 4176323; 401.38455 192550; 401.62695 33922; 401.89891 22434045; 402.36035 31031; 402.37194 63167; 402.58949 25448; 402.79527 1788317; 402.83063 3536425; 402.87997 2381168; 403.14782 8458734; 403.15426 2993963; 403.30336 45852; 403.73956 948363; 403.80389 452494; 404.19618 28042; 404.22055 1921359; 404.52454 3168754; 404.64077 117228; 405.0426 327801; 405.34833 62214; 405.41856 974296; 405.48391 167952; 405.52725 3551579; 405.68348 70965; 405.90544 3151087; 406.11681 613269; 406.34047 1498863; 406.452 6839; 406.64144 885856; 406.8264 62217; 406.85043 21935; 406.96868 7517323; 406.97108 6749; 407.1632 5758432; 407.1876 50344; 407.19241 80735; 407.2454 281809; 407.30382 74341; 407.61874 41383; 407.98282 19656; 408.09377 5135; 408.42843 1528824; 408.43998 22075293; 408.55909 106334; 408.5769 4532782; 408.64387 193822; 408.68313 4019820; 409.0101 52333; 409.11802 3309342; 409.23426 8804; 409.23984 455; 409.36817 3546803; 409.70044 498870; 409.8235 2124; 410.17075 130660; 410.23214 62008; 410.25615 6702; 410.42772 18917439; 410.50762 2524323; 410.72939 32033; 410.86489 25856; 410.8765 2556540; 410.91003 48500; 411.02791 78898; 411.05308 9230; 411.38276 46194; 411.6959 26996; 412.00728 21733; 412.15738 159582; 412.18588 3165575; 412.21091 48537; 412.28947 30565; 412.90141 36938; 413.12406 2644; 413.16192 32574; 413.48188 6720; 413.57008 9739773; 413.5995 1695; 413.78151 69024; 413.80007 607922; 413.8354 6875; 413.90866 51822; 414.88498 82604; 415.16786 102652; 415.52575 690313; 415.52951 3979065; 415.57418 79195; 415.82158 487706; 415.82173 203662; 416.12788 9256607; 416.46304 1891918; 416.66037 6674034; 416.71692 11362693; 417.45966 8206; 417.59017 5863; 417.68155 742724; 417.78989 1480530; 417.96538 7290980; 418.28686 8369821; 418.98902 5548756; 418.99192 36103; 419.03643 18100442; 419.17024 1801852; 419.19378 1481725; 419.23323 52586; 419.26416 7687; 419.44669 897; 419.66824 1165309; 420.08227 51541; 420.18929 56471; 420.25103 750682; 420.34429 5166; 420.59723 4441990; 420.71863 3021583; 420.8021 18263; 420.90675 4811546; 421.12112 2870226; 421.23351 9329773; 421.41413 2696376; 421.72198 797525; 421.85365 56140; 422.03172 22369; 422.51063 1307; 422.63913 265896; 423.11987 70309; 423.47302 10187; 423.66314 1902973; 423.66976 107906; 423.69628 1463343; 423.72469 5604947; 423.80259 1906009; 423.99538 7094; 424.09943 38989; 424.14628 3303982; 424.20133 856738; 424.87065 50918; 425.11954 30719; 425.29196 21341; 425.35044 1121048; 425.57524 30460; 425.75587 28263; 426.07532 5994; 426.32476 74446; 426.34817 8116956; 426.7328 32066; 426.80397 67824; 426.85277 43343; 426.90496 29545; 427.04581 21868; 427.12084 9321; 427.42418 2204; 427.67718 23678; 427.95667 2097; 428.01134 19532; 428.24981 202369; 428.57207 57444; 428.62825 62298; 428.69726 22390; 429.09421 2873407; 429.34306 74864; 429.61474 4591504; 429.77361 51237; 429.77998 45164; 429.86868 14358; 430.01081 992477; 430.08647 5901; 430.13821 59768; 430.88822 376989; 430.97369 77929; 431.19495 641672; 431.19669 76540; 431.21361 1442635; 431.69663 4231194; 431.8271 115347; 431.9644 2028694; 432.25922 6537096; 432.44479 1991; 432.51549 572755; 432.67838 131909; 432.72693 54658; 432.84514 73195; 432.86036 46868; 432.97588 138592; 432.99573 1264938; 433.03704 4763377; 433.30715 64726; 433.55229 93497; 433.62214 3613588; 433.73072 32511; 433.83934 1995255; 433.99223 2996; 433.99335 40114; 434.03406 3628; 434.15895 3383; 434.56874 1215465; 434.60179 1383056; 434.75691 1554396; 435.14696 8511; 435.49484 692855; 435.61928 11289; 435.62462 555; 435.64098 1885185; 435.69986 64844; 436.03659 124476; 436.04394 1469764; 436.92207 13359668; 437.293 1649004; 437.34723 56883; 437.38652 50223; 437.66241 674996; 437.92485 127324; 438.00514 22505; 438.06643 61173; 438.10968 127476; 438.27149 111701; 438.30367 108722; 438.32251 7409; 438.39278 52654; 438.50782 6865; 438.55424 3143886; 438.58244 20423; 438.65118 3881958; 438.76997 65095; 438.81203 14435623; 439.15482 6711; 439.18147 47438; 439.57651 48882; 439.8325 40844; 439.89732 1559738; 440.1308 8428; 440.17404 888908; 440.30423 21273; 440.33411 3661236; 440.35258 15625; 440.8679 53971; 440.97194 282302; 441.53814 1783044; 442.69937 14285880; 442.74165 52124; 443.35807 32521; 443.45452 1018536; 443.47056 39730; 443.63319 2626; 443.71617 3463458; 443.73402 3908359; 443.81003 50233; 444.02595 382; 444.28245 78629; 445.06124 1983196; 445.17247 10587; 445.25886 4868620; 445.30453 667821; 445.5151 56599; 445.72722 50610; 446.10316 23778; 446.38563 1378384; 446.91856 43827; 446.97051 3568563; 447.37048 3638828; 447.38359 35091; 447.65615 63661; 448.03165 1165106; 448.08462 41431; 448.33447 27552; 448.59514 5712; 448.99629 67842; 449.59807 6033914; 449.90533 5920629; 449.92369 1211815; 450.51506 26344277; 450.59578 395033; 450.79892 5002; 450.85602 28578; 451.27735 12723; 451.379 1401015; 451.40389 49946; 451.56814 29697; 452.23015 188219; 452.2419 2612957; 452.42105 164680; 452.54052 999; 452.64584 3339; 453.13689 6909224; 453.31891 27044; 453.7159 23695; 453.95029 41268; 454.06261 63327; 454.16224 66880; 454.74739 9821; 454.97926 183448; 455.03068 107682; 455.54776 4166; 455.67944 42353; 456.09964 69331; 456.36468 75097; 456.66771 62879; 456.78012 21245876; 456.80149 16684; 456.8033 82892; 456.81978 378292; 456.92055 34719; 456.9853 299504; 457.25253 1787221; 458.13112 1229596; 458.17903 25739; 458.20706 448473; 458.83781 25865; 458.8817 57363; 458.88504 1564386; 459.09392 7017; 459.22355 1366270; 459.23638 75693; 459.39211 3459800; 459.4668 38759; 459.53978 1109334; 460.13177 34756; 460.16256 2311169; 460.2028 1674069; 460.20523 1981260; 460.50086 8077; 460.65597 128447; 460.79374 73957; 460.92132 88468; 461.96487 89036; 462.05918 77455; 462.54241 10145574; 463.05055 8820; 463.12869 38787; 463.18959 6896968; 463.34272 54668; 463.46036 4225272; 463.53429 6641; 463.61431 52815; 463.66342 7243464; 464.00474 199910; 464.39521 338097; 464.49997 1214028; 465.18564 3202; 465.52674 664943; 465.67288 3703097; 465.68524 1406676; 465.71156 1106181; 465.74446 8235; 466.1661 1061496; 466.23862 9970318; 466.60012 6437; 466.61804 11357; 466.67191 20056; 466.93229 32105; 467.11821 59312; 467.18964 9233080; 467.5728 5683219; 467.61743 6422769; 467.80923 75532; 467.82329 4862; 467.92001 4067403; 468.05815 73135; 468.13137 7078256; 468.53438 7981312; 468.58277 24796; 468.66208 29759; 468.67709 4662; 468.69383 6397; 468.74263 1402714; 468.94255 74262; 468.98358 48066; 469.30521 161982; 469.85756 33377; 469.87972 5078016; 469.95874 29081; 470.00888 384012; 470.06739 4697831; 470.28816 27828; 470.42136 6269486; 470.56821 36670; 470.81582 1778213; 471.10285 568301; 471.1516 4753226; 471.2149 3176755; 471.31542 658862; 471.37362 875; 471.39761 8293987; 471.6076 1501; 471.70167 3661095; 471.71736 23750; 471.98489 370350; 472.16211 47517; 472.16917 663395; 472.60137 1657977; 472.75026 5983; 472.76278 3394217; 472.8201 7620; 473.05637 24481; 473.38868 781729; 473.42812 59374; 473.88514 287681; 474.14095 69404; 474.19025 3211564; 474.28561 4888547; 474.3626 146532; 474.41244 34624; 474.59263 56542; 474.88714 1960; 475.27267 64550; 475.76818 68368; 476.06403 163637; 476.21667 4814; 476.3838 248159; 476.47304 67175; 477.07815 5350; 477.50082 2106435; 477.66204 326366; 477.73224 3098954; 477.7791 1675129; 477.87332 84123; 477.96624 2436830; 477.97846 66666; 478.15181 1728854; 478.2093 65900; 478.28203 7161166; 478.63184 16968; 478.66457 62141; 479.10526 4873912; 479.1467 8546773; 479.3052 27884; 479.46766 23872; 479.68638 550856; 479.9676 4374; 480.15223 36275; 480.24265 859222; 480.2747 7941; 480.36286 405516; 480.51087 8997; 480.83147 3089290; 480.89557 88472; 481.23421 55935; 481.67748 1607288; 481.93018 8688547; 481.96662 478235; 482.34696 8059; 482.38399 14757; 482.46155 62862; 482.48435 9368789; 482.52793 27832; 482.60719 56860; 482.61626 60084; 482.83149 4007665; 483.05556 12268; 483.15746 465964; 483.28987 92154; 483.44773 78648; 483.55578 20688; 483.83416 1793480; 484.07389 23890; 484.60056 67900; 485.07139 695383; 485.08504 69489; 485.28299 2358180; 485.38668 17704; 486.18234 3064735; 486.33867 383185; 486.55398 925; 487.17835 664311; 487.46137 52847; 487.78808 51382; 487.86286 374977; 487.9705 54115; 488.03542 445593; 488.25492 16877; 488.42511 1252280; 488.4553 47761; 488.46084 1655811; 488.93307 2570153; 488.97242 29015; 489.12235 54661; 489.27342 225262; 489.61091 1827780; 489.7253 15519; 489.94311 3347808; 490.09938 5595; 490.12831 383250; 490.3594 61879; 490.52792 959338; 490.8318 29064; 490.84579 17501; 490.87609 34284; 491.24724 771; 491.52556 5167; 491.56877 648488; 491.71216 3695; 491.72686 24309; 491.86706 1927024; 492.05418 414912; 492.08 6497; 492.32776 3294; 492.42843 26383; 492.43685 70328; 492.65562 1291282; 492.74191 56320; 493.77178 58846; 493.79457 2676; 493.98921 465579; 494.10065 25137; 494.51592 6044117; 494.66308 29184469; 494.79061 38966; 494.83667 32816; 494.97236 70277; 495.25442 23454; 495.3809 20611; 495.50645 63271; 496.21498 3158; 496.38205 25189; 496.43721 5875; 496.73845 23204; 496.76866 49170; 496.776 15967571; 496.89349 172551; 496.91209 46368; 496.91472 25316; 496.99823 123756; 497.0882 68917; 497.14277 6412663; 497.29291 5574477; 497.34864 7547961; 497.42909 2054; 497.60981 65358; 497.94338 8295; 498.12492 10884; 498.18426 2488474; 498.29788 27028; 498.34091 17421; 498.40755 8737019; 498.48126 64700; 498.48131 55482; 498.51664 4240477; 498.56326 9035348; 498.72808 57679; 498.90391 54562; 499.36489 3507009; 499.7993 57901; 499.83381 6882186; 499.90345 1757125 +<6, 1>: 0.38874 9926550; 0.40033 1487882; 1.04809 33310; 1.19126 10472; 1.31667 4959130; 1.67528 1049; 2.19075 1221507; 3.40172 9667; 3.6087 63354; 3.65694 8321115; 3.78065 8387108; 3.85308 7471973; 3.91804 336345; 4.23254 4265; 4.55675 32598; 4.95017 204449; 4.99274 1771386; 5.76272 709787; 5.88581 194498; 5.89734 54094; 5.92615 1785880; 6.06189 2329440; 6.3784 28198; 6.38201 64300; 6.48018 8209; 6.51742 4510; 6.98216 10250; 7.15816 481182; 7.28577 79665; 7.66754 77886; 7.73353 51522; 7.94454 70246; 7.97128 22120; 7.97708 3683033; 8.11473 16015; 8.346 5174; 8.39646 189402; 8.59437 1055550; 8.61863 25791; 8.65425 54973; 8.66535 16420; 8.96828 2214343; 8.97562 50309; 9.27724 4808; 9.50855 5211; 9.65611 17243; 10.04894 7908789; 10.10861 1273255; 10.3127 71848; 10.61016 3262222; 10.66562 23858; 11.23037 25937; 11.24002 565501; 11.30814 15791; 11.41073 4989; 11.50127 46941; 11.54817 4318710; 11.85182 64157; 12.08177 6753; 12.39922 24371; 12.49627 7523; 12.58869 54114; 12.63718 8946746; 12.79407 142668; 13.02346 5459796; 13.29379 27073; 13.36637 765917; 13.60891 41608; 13.66002 6109; 14.28696 6008; 14.66554 10185; 14.81091 49184; 14.92418 2425; 14.94446 8417; 14.9621 70260; 15.00056 10237653; 15.13529 8116; 15.51317 9202; 15.57432 1794480; 15.64188 2921189; 15.67608 574340; 16.223 107262; 16.22718 1584591; 16.24947 5452; 16.49614 4183; 16.62298 1710; 16.84259 31052; 16.84827 16047; 16.88858 13171; 17.20037 5116668; 17.27156 25051; 17.7159 57439; 18.00026 23035; 18.41472 609; 18.78282 135768; 19.01836 5589883; 19.1519 8248702; 19.27239 11334; 19.57458 381553; 19.6984 934997; 19.91525 648030; 19.92789 56393; 19.98086 49700; 20.01382 7884047; 20.27588 12131; 20.36211 6019; 20.36293 37422; 20.45572 8675542; 20.57527 4503097; 20.68332 628635; 20.83203 23420648; 20.84262 2078; 20.84539 1162066; 20.98228 54457; 21.32463 129170; 21.43701 3603; 21.44112 2289558; 21.48463 156; 21.71015 23053; 22.15519 9218772; 22.19727 1458901; 22.5165 1219106; 22.6655 8349438; 22.98781 743491; 23.12731 64870; 23.18036 24454; 23.3514 6068189; 23.6589 1473351; 23.67792 9363; 23.91062 7356; 24.07302 562381; 24.12286 73400; 24.247 5684; 24.64981 22748; 25.15698 601984; 25.2197 3272840; 25.48875 1883162; 25.92906 34163; 25.98225 34211; 26.13307 727556; 26.1915 597854; 26.35499 8869857; 26.48318 67529; 26.54247 23661; 26.54655 9609; 26.54968 19804; 26.97661 26643900; 27.01294 1506; 27.01754 28486; 27.06208 26820; 27.14346 14434216; 27.32298 30097; 27.39431 140579; 27.53126 49636; 28.37442 64078; 28.40853 11479; 28.41193 243730; 28.45657 9755; 28.47448 7387; 28.6959 27618; 28.94771 1472263; 28.99074 7824; 29.11644 105836; 29.22999 74389; 29.28228 370; 29.33017 406133; 29.39714 62579; 29.45415 79302; 29.47461 17362398; 29.57511 4544; 29.65841 58470; 30.36926 63870; 30.37884 20507; 30.38826 917593; 30.88519 1930752; 30.95964 21557; 31.13775 25535; 31.26646 12311; 31.45741 607739; 31.51044 369917; 32.09635 67901; 32.11755 6515; 32.28184 846370; 32.33138 2022; 32.59319 153555; 32.60473 20801; 32.66901 1539273; 33.31539 45244; 33.31924 8594; 33.79575 166821; 34.11072 1062; 34.20123 2963838; 34.20753 34130; 34.22403 810937; 34.39272 1551669; 34.42326 3327; 34.74359 1280095; 34.89723 65487; 34.97775 65296; 35.11857 52717; 35.25474 62022; 35.59992 422518; 35.62762 9142311; 35.86401 7315; 36.08101 522243; 36.08121 4786; 36.0993 38629; 36.17193 39893; 36.2709 44592; 36.47261 23025; 36.8805 1086069; 37.48833 59411; 37.57185 1180113; 37.61122 706203; 37.6609 7410; 37.77683 575550; 37.97592 10144; 38.0352 819447; 38.11062 119003; 38.15923 62163; 38.43944 1939608; 38.76103 12011460; 39.56911 3853; 39.61278 2065731; 39.68002 194731; 39.95272 1933132; 40.03919 43626; 40.38937 3640859; 40.97521 995650; 41.09083 30025; 41.19574 186586; 41.20049 138742; 41.49606 1918597; 41.54243 1006036; 41.60118 4199; 42.0042 656407; 42.781 58660; 42.91607 21090; 43.30766 4711; 43.57077 4673785; 43.59607 21096; 43.73559 96696; 44.0237 51115; 44.30688 3172483; 44.35884 324041; 44.541 183071; 44.85666 610463; 45.49844 56111; 45.53833 789834; 45.94695 28024; 45.96774 8639; 46.04159 3273686; 46.55473 20124; 46.56267 74580; 46.62232 1985910; 46.97901 1178178; 47.27751 177367; 47.28027 9341259; 47.37732 9118720; 47.54507 27174286; 47.58265 7322; 47.6271 46498; 48.06689 26255; 48.19644 8128896; 48.20699 19153; 48.23358 122324; 48.27219 626; 48.52527 7266; 48.73659 2648307; 48.76446 9733; 48.93748 1874; 48.98054 419164; 49.04168 718172; 49.13101 8393; 49.31221 56236; 49.3286 31749; 49.44047 28656; 49.63023 2927; 49.96964 35509; 50.44158 50451; 50.4674 60068; 50.53233 78564; 50.94544 45113; 51.35376 36600; 51.3885 23786; 51.40467 39017; 51.59441 15464392; 52.20856 3480781; 52.35797 8733; 52.45973 610432; 52.49097 1489047; 52.91722 45826; 53.01374 31428; 53.11129 28078; 53.16509 25982; 53.18935 7064; 53.36869 61489; 53.6653 1384487; 54.0051 1101766; 54.01569 24947; 54.04695 7730340; 54.13988 35079; 54.43917 2945988; 54.4843 195301; 54.89307 2913851; 55.04973 23814; 55.13138 2957; 55.26874 49515; 55.36141 1594637; 55.38908 24228037; 55.62888 77407; 55.74755 56141; 55.76962 4177; 55.81052 1912512; 55.91843 1172; 56.03836 3277150; 56.13238 1023248; 56.1596 920004; 56.26057 1023361; 56.71442 69248; 56.71882 1439223; 56.90144 10116; 57.02975 9132; 57.13919 2260; 57.34912 6857971; 57.4111 10188; 57.49709 1992519; 57.81229 2081719; 57.81365 117812; 57.88434 260502; 58.48002 27676; 58.53123 4107421; 58.7784 3125593; 59.10066 4975; 59.63734 7105; 60.17869 73449; 60.54482 9532; 60.57764 3343; 60.95726 294132; 61.07054 1320649; 61.07547 1269472; 61.29457 1260708; 61.41451 290012; 61.50625 1866734; 61.53062 2269383; 62.22463 60640; 62.27754 58446; 62.38737 1052861; 62.47607 3642837; 62.51529 179068; 62.5219 2226; 62.52633 25505; 62.56144 173952; 62.6709 35734; 62.676 166430; 62.8104 9992; 62.95602 43921; 63.05115 1583163; 63.48266 432448; 63.64659 4100385; 63.69218 12949; 63.80414 22954170; 64.11848 3109023; 64.2084 30865; 64.21176 7143500; 64.56522 1462617; 64.65175 441964; 65.78852 1081; 66.21385 28851; 66.2172 21222; 66.27232 106170; 66.29346 21607; 66.38706 7572857; 66.56674 3188; 66.66355 46677; 66.6676 28171; 67.5186 15536; 67.61321 52614; 67.71536 14729330; 67.86591 57962; 68.18403 27310; 68.71214 5548; 69.20216 3940; 69.37376 73133; 69.50813 7486; 69.61808 858; 69.64649 150192; 69.67678 58359; 70.37191 9277591; 70.3882 33291; 70.40298 27788; 70.43579 2698925; 70.5042 534442; 70.5043 1598936; 70.63728 6522; 70.98153 1368469; 71.1513 686877; 71.17743 18885; 71.23918 2676307; 71.30547 4273; 71.35738 1177; 71.47589 440372; 71.74559 63257; 71.89519 70584; 72.00954 4479; 72.0762 338555; 72.33179 39499; 73.10852 3054433; 73.25596 4781; 73.27241 77616; 73.28351 2571226; 73.35284 69470; 73.56208 6605926; 73.69001 1011; 73.72718 8958; 73.92123 32663; 73.97809 52319; 74.13131 193180; 74.23125 64289; 74.51946 71409; 74.55954 365539; 74.76014 4835; 75.22389 5286; 75.59958 28436; 75.85802 9279; 76.24804 17403; 76.37307 197924; 76.48563 9310; 76.68486 1368459; 76.71933 437145; 77.025 17564544; 77.33947 8028; 77.51185 1551426; 77.53441 1982; 77.59182 22804; 77.74476 64020; 77.83296 6825360; 77.85756 6082; 77.94311 43843; 78.58042 8326; 78.75 22703; 78.75368 27713; 78.76433 1002278; 79.10908 106431; 79.12323 188311; 79.26986 1780466; 79.30473 384917; 79.53615 20137; 79.56767 4163; 79.66734 72533; 79.74196 2050997; 79.86595 27833; 79.97528 48657; 80.13984 16861; 80.14161 2423138; 80.27588 7483417; 80.28819 21987; 80.36012 1046272; 80.37996 538475; 80.53273 4147; 80.68738 6497; 80.80557 26107; 80.82138 17225; 80.90041 5367992; 81.29337 19957678; 81.48686 1722904; 81.51755 9245; 81.58501 8505; 81.59177 1137531; 81.7227 57003; 82.00818 49669; 82.04278 7555396; 82.23463 37786; 82.2414 2510414; 82.38129 4856240; 82.6314 6236398; 82.7678 63359; 82.78797 3800670; 83.20463 17294; 83.2536 2989411; 83.37476 32590; 83.47681 69706; 83.88443 71578; 84.02941 131984; 84.31619 50928; 84.81286 3304848; 85.58007 50484; 85.77663 8435; 85.8095 20431; 85.88932 22768; 86.1492 26653756; 86.19661 837601; 86.249 5092575; 86.36436 57070; 86.84092 155475; 87.06112 78188; 87.16251 1983669; 87.24446 23159; 87.43497 767; 87.5071 68725; 87.64864 129337; 87.6628 28208; 87.6871 3671659; 87.77296 21151; 87.94604 65978; 87.98641 1495932; 88.01056 2978877; 88.08159 1807471; 88.3577 1561647; 88.39321 1327; 88.4766 162049; 88.62116 94197; 89.27017 4975; 89.2731 19743; 89.40045 34116; 89.41545 65167; 89.54241 5123; 89.88664 70858; 89.92195 44068; 89.97476 3079399; 90.01901 1045968; 90.09729 2668; 90.87003 7012; 91.32179 22871; 91.68535 3248624; 91.69121 7101203; 91.92519 1811141; 92.5341 1203371; 92.6225 451939; 92.62884 133908; 92.66188 1563255; 92.67244 481236; 92.89124 65961; 92.99154 188175; 93.01766 838177; 93.05488 12961326; 93.57117 7368775; 93.96196 3227890; 93.98234 992282; 94.00715 83419; 94.18617 6953; 94.43171 8253; 94.63855 47681; 94.75021 64570; 94.90311 10729892; 95.22604 255125; 95.23967 6902860; 95.37211 4921748; 95.40906 21420; 95.54327 1042; 95.61802 13084; 95.64777 28381; 95.92572 768904; 96.02389 1585423; 96.05782 6041; 96.13131 4917089; 96.28411 73859; 96.47268 256314; 96.97349 15069; 97.13888 54322; 97.26374 6678295; 97.30526 32208; 97.34693 6646; 97.56008 3379; 97.6166 518073; 97.62499 15328; 97.80748 36253; 98.07484 3297864; 98.08768 9599; 98.09629 9177; 98.46794 22710; 98.56648 8735145; 98.77146 73568; 99.53931 34171; 99.95453 1358550; 100.35 78919; 100.50561 61586; 100.59694 44789; 101.01483 1384686; 101.02306 16248382; 101.0296 16359; 101.37065 42890; 101.58314 21406; 101.81866 1651; 101.82771 533711; 102.07979 483051; 102.15181 76077; 102.79804 1619222; 103.14467 799048; 103.29528 2456074; 103.58555 5541907; 104.00755 444595; 104.01445 1599; 104.11865 113800; 104.62946 69576; 104.69636 1491878; 104.73341 51080; 104.80248 45594; 104.87619 15138; 104.93934 24433; 104.96989 60757; 105.10389 30536; 105.16054 2761656; 105.16274 112406; 105.37852 24436; 105.65396 54698; 105.72894 527812; 105.74044 28438; 105.81236 6895; 105.86352 4092; 105.90487 8443; 106.14213 38989; 106.24409 2417050; 106.28123 1695882; 106.55903 8298338; 106.58679 21491; 106.59685 4339268; 106.73322 81692; 106.93333 74813; 107.0208 504532; 107.15761 13091652; 107.74271 1889801; 107.77701 10432; 107.84849 635992; 108.24166 20628; 108.32402 1610195; 108.53951 47522; 109.27087 9662; 110.11636 8651793; 110.19922 42509; 110.25165 4510328; 111.21959 140901; 111.29994 39880; 111.32878 144315; 111.65289 1637; 111.74419 3072; 111.9081 61945; 112.0197 21766; 112.05161 1231689; 112.27238 19775; 112.72868 6985171; 112.80728 2974; 113.19395 1730704; 113.23035 124517; 113.25684 3647; 113.96205 3789929; 114.78062 52669; 114.93691 17568; 114.94476 1287157; 115.1576 3371789; 115.30373 439492; 115.84579 1109; 115.90492 16981; 115.973 149715; 116.10119 6976; 116.10132 8173; 116.22857 513248; 116.66449 35841; 116.69941 16307; 117.05468 815081; 117.1001 4879; 117.77051 4671809; 117.92965 18492; 118.41292 136; 118.47977 7700; 118.62542 3052; 118.62959 19428; 118.65203 1501453; 118.76107 56162; 119.00264 1824919; 119.68029 7557; 119.71341 45248; 119.75337 1225803; 119.9928 169304; 120.07843 78873; 120.12375 5573799; 120.2286 1319183; 120.47789 26447630; 120.73853 261600; 121.11695 3954; 121.2058 11564334; 121.26019 3785; 121.3457 52932; 121.47577 1036149; 121.58524 34649; 121.71839 1359255; 122.0454 9027; 122.16479 16085; 122.2038 12204; 122.21144 25799; 122.41577 56711; 122.49093 59014; 122.68648 26997; 122.71135 43656; 123.80057 143093; 123.87689 1906173; 123.92521 4654716; 123.96811 3691724; 123.99974 33084; 124.37015 38406; 124.43853 33082; 124.66112 1221914; 124.77686 1377222; 124.79417 69302; 125.26025 12102; 125.78897 8574; 126.33518 313199; 126.83587 129071; 126.99245 1465875; 127.20468 4393184; 127.50811 25598; 127.55194 6150905; 127.8407 25921; 128.2511 5180; 128.49478 4027819; 128.65953 1254738; 128.7044 1804; 129.06178 6066; 129.21343 6594058; 129.52713 70117; 129.85899 17898; 129.9372 4445777; 130.1548 1966072; 130.16402 1224009; 130.56197 51278; 130.69822 8627; 130.7526 25427; 130.77602 315219; 130.91021 42841; 131.09743 29586; 131.25073 359353; 131.25454 39482; 131.30698 24084; 131.4279 48597; 131.51661 544810; 131.75503 62794; 131.76776 2819; 131.7983 54058; 131.85038 2033286; 132.26006 23022; 132.27502 1763; 132.41749 7131; 132.60962 179208; 132.73575 3074422; 132.87599 85940; 133.11235 28020; 133.61609 40627; 133.97554 4874677; 134.04354 3288; 134.35276 6438; 134.39414 4181504; 134.43876 61825; 134.70462 20654; 134.77108 2094; 134.86391 70793; 135.02121 5324; 135.12535 42557; 135.15763 1938368; 135.72184 208807; 135.73434 61492; 136.15968 23771; 136.24093 4466926; 136.24513 6185183; 136.2565 18274; 136.36026 7478711; 136.40295 212; 136.85561 5317179; 136.97437 4062973; 137.42506 31044; 137.44653 3921342; 137.56626 22144245; 137.66069 31310; 137.82172 1733; 137.94562 20145; 138.35362 38839; 139.10381 236867; 139.20782 51354; 139.57749 78893; 139.81582 8363; 140.43298 5027003; 140.44561 2674; 140.59393 119369; 140.79301 21571; 140.90983 26551; 140.95226 7846; 140.96201 10360971; 141.16414 5711605; 141.46704 116009; 141.53478 56449; 141.69072 1478370; 141.94257 23159; 141.96875 899551; 142.0359 12901; 142.1554 138587; 142.8925 4528058; 143.18724 24219; 143.33872 26924; 143.42939 57721; 143.53486 155693; 143.57762 761; 143.77867 801188; 143.88978 8071400; 144.04353 27869; 144.15263 4903915; 144.23917 1079350; 144.59141 3740145; 144.92037 1385937; 145.17324 62744; 145.31229 1448516; 145.35135 309; 145.46112 7139872; 145.72733 204860; 145.78767 164173; 145.8865 67134; 145.91315 156467; 146.88811 159396; 146.98631 28207034; 147.03607 1717086; 147.20566 24755; 147.21638 842487; 147.37545 6068689; 147.87853 3705288; 148.98076 18677; 149.16214 76303; 149.18468 15559; 149.50796 40941; 149.61311 36661; 149.7871 1375976; 150.52252 1162; 150.6287 2064405; 150.62889 65003; 150.80241 982130; 150.83814 22129; 150.87383 61059; 150.90933 12481478; 150.93864 71439; 151.0296 9070396; 151.42881 554424; 151.5322 4618818; 152.04624 4461; 152.05305 74812; 152.13703 45328; 152.17453 409502; 152.2115 186526; 152.30932 804285; 152.41844 3587; 152.51305 70203; 152.55463 6532; 152.74674 2108; 152.75846 13187528; 153.01444 16203; 153.12421 3181216; 153.515 8723237; 153.52011 6412; 153.66051 75211; 153.69968 1884871; 154.11857 1296510; 154.32593 194406; 154.3954 534130; 154.46926 55933; 154.67027 61113; 154.83689 847; 155.08247 2017; 155.30904 1325659; 155.31471 582773; 155.33418 31684; 155.50807 55619; 155.52116 1612470; 155.54853 1289902; 156.44831 2211; 156.81042 54477; 157.04122 293779; 157.1005 868715; 157.53146 5316; 157.6093 905456; 157.62939 1320659; 157.6357 4643559; 157.77855 3491406; 157.83061 27339; 157.86876 32502; 157.94818 891669; 158.02291 1821375; 158.58814 32680; 158.63229 2279898; 158.68373 2000; 158.93083 48681; 159.1299 4017257; 159.15217 69160; 159.23587 8855; 159.39174 201670; 159.4771 2287; 160.08108 1824191; 160.22453 2333181; 161.60168 7784; 161.72219 807666; 161.9359 26146; 161.93863 3819108; 161.9606 2113; 162.04619 23257; 162.41921 148219; 162.76968 8655; 163.40542 25647; 164.05641 66706; 164.4487 14927; 164.60049 49251; 165.02176 27743; 165.02409 739; 165.25505 1270976; 165.33049 9613608; 165.50128 55747; 165.54419 8889590; 165.63011 8168267; 165.88623 1627306; 165.96417 28378; 166.12327 769765; 166.12723 2510; 166.19448 18481; 166.43458 751871; 166.86831 87209; 166.94413 2500500; 167.01814 2812; 167.30151 176801; 167.30873 2508337; 167.45694 10056; 167.65211 5452770; 167.7973 2481256; 167.88132 44910; 167.97568 25775; 168.18904 1647181; 168.3153 430115; 168.40222 2500993; 168.53597 11498; 168.75766 594419; 168.82368 937; 168.90571 24945339; 168.93014 9532164; 168.96972 331346; 169.278 4761694; 169.28896 2966786; 169.48838 22901; 169.57362 3313664; 169.626 63817; 169.75783 162333; 170.12254 32844; 170.23909 1646365; 170.52947 3005; 170.56357 2889410; 170.80396 667239; 170.97048 75108; 171.19532 6596330; 171.23835 17578; 171.25674 73139; 171.29116 768612; 171.29605 4310; 171.35658 37220; 171.52233 23703; 171.54813 23221; 171.90334 3527330; 171.9472 5281275; 171.97985 652570; 172.0214 6265; 172.20843 6137046; 172.32785 5033; 172.62177 1634109; 172.86418 1024125; 172.96612 34591; 173.03922 23949330; 173.28752 29225; 173.48059 26691; 173.75741 46016; 173.95219 8891; 174.0691 67014; 174.11426 28357; 174.43415 3581794; 174.54851 4780; 174.75917 5454; 175.55098 1326304; 175.60145 182161; 175.63756 1329802; 175.87575 845503; 175.91079 69003; 176.37914 56791; 176.73914 42670; 176.89082 29409; 176.89922 1543498; 176.98604 1760594; 177.1767 1568742; 177.34776 24513; 177.76732 6313; 177.82265 539382; 177.90054 15335; 177.93581 8582234; 177.982 129428; 178.09926 3301; 178.21863 79171; 178.29186 28486; 178.30824 69581; 178.881 109320; 178.8998 20934; 179.10511 1247618; 179.51691 1968172; 179.61505 35524; 179.97575 21134; 180.41677 22987; 180.86359 2090355; 181.01547 5386513; 181.23416 3009168; 181.28396 2686999; 181.66565 20915; 181.82571 972160; 182.11033 19984645; 182.11356 40082; 182.40927 1879496; 182.54107 24631; 182.55949 1249277; 183.02174 1548631; 183.33001 55259; 184.00784 46277; 184.12336 15914; 184.96479 53836; 185.15603 18662633; 185.34565 2218; 185.40502 139968; 185.43078 28433; 185.55982 372; 185.61017 1430919; 185.81824 261; 186.50812 190307; 186.7223 1362707; 186.81271 22694; 186.86439 156490; 187.15872 1710619; 187.20411 5225; 187.2058 6147; 187.23451 1470278; 187.53115 55682; 187.54824 12780; 187.98808 40857; 188.05978 50981; 188.14745 13848337; 188.4394 758783; 188.57591 42702; 188.69932 40392; 189.10972 16566; 189.27885 20584774; 189.42808 2593; 189.64824 26580577; 189.78271 212817; 189.89001 4911; 189.96853 1058754; 190.30759 199390; 190.3319 14922; 190.44796 5544321; 190.67092 3299367; 190.71861 20404; 190.77967 1712372; 190.79001 949456; 191.33224 2833120; 191.77572 7405387; 192.1032 40160; 192.2185 3212788; 192.35425 8617; 192.41162 6525; 192.44597 4613969; 192.5505 1005585; 192.72677 2068; 192.80188 23019049; 192.96405 99504; 193.01527 999622; 193.06236 10340135; 193.09197 23009; 193.24167 22835; 193.33698 4385; 193.39892 41672; 193.48628 212886; 193.73608 8130014; 193.8422 28192; 194.00121 4494; 194.47772 95556; 194.54123 2719; 194.73802 11155; 194.77386 6759; 194.92261 6911; 195.00329 3276947; 195.04623 22593324; 195.12985 7988; 195.65263 23201; 195.68813 2604783; 195.85596 38721; 195.87214 52057; 195.91733 1435882; 195.94362 6061065; 196.04008 1798114; 196.19154 9607; 196.33692 95020; 196.37099 842932; 196.68168 65325; 196.75654 1659218; 196.79225 242566; 196.79782 3718812; 196.89434 3515127; 196.93784 100601; 196.94291 8106526; 197.27063 6987; 197.30629 3472603; 197.36322 512038; 197.46235 3140953; 197.76832 17061; 197.84465 327712; 198.33559 1820; 198.48952 24184; 198.49401 1315334; 198.49727 4102151; 198.50513 51964; 198.64649 48583; 198.81085 302800; 198.86655 13494; 199.18057 21000; 199.27283 862305; 199.39128 51699; 199.69301 1002163; 199.71627 19427889; 199.81198 4575397; 199.97423 1506248; 200.20453 12932346; 200.24676 7021; 200.35291 1954134; 200.65428 25782; 200.71996 40993; 200.88058 39480; 200.93025 52362; 201.2028 1004; 201.33514 66067; 201.36755 23036; 202.10119 21779; 202.12862 76928; 202.19034 619194; 202.6242 43479; 202.75029 9336747; 203.132 56302; 203.15628 364915; 203.22792 776296; 203.64633 2873; 203.74158 954830; 203.7735 73942; 203.82596 4066156; 204.27893 974468; 204.4646 24763; 204.51998 738708; 204.73046 2325417; 204.75709 1073506; 205.03152 27273; 205.05462 39602; 205.16092 4337924; 205.18134 6665985; 205.40132 20606044; 205.48587 40093; 205.60182 6146556; 206.06439 9523424; 206.06862 89128; 206.12346 26542; 206.45482 197466; 206.52139 9038520; 207.21419 296060; 207.22438 75524; 207.372 7570; 207.44809 57375; 207.82308 8345148; 208.07121 28975; 208.43613 3616503; 208.45537 7807772; 208.90497 37853; 209.02043 17912; 209.2676 231263; 209.3136 323725; 209.72808 135200; 209.75934 5987190; 210.16231 9334841; 210.17522 442054; 210.3073 6523482; 210.54036 4840821; 210.67889 67241; 210.75238 1979; 211.09344 200577; 211.64687 77107; 211.7023 655415; 211.76292 6607560; 212.04429 9198729; 212.13114 20543; 212.28829 307409; 212.46245 5862; 212.56621 56488; 212.57093 78476; 212.71017 35437; 212.74361 47837; 212.75571 606925; 212.7924 76181; 213.26523 1698067; 213.33142 1121848; 213.50776 11444; 213.55465 31178; 213.88101 7162; 214.05648 808399; 214.10129 7167; 214.38501 7670306; 214.89668 9220583; 215.10525 12131144; 215.4603 23645; 215.59948 8135538; 215.64094 56449; 215.6946 392791; 215.80531 38936; 215.83163 1164006; 215.83451 1278096; 216.17568 27048; 216.21252 25450; 216.21371 10872181; 216.22903 52716; 216.39688 1928259; 216.45464 2438281; 216.602 39517; 216.62397 7449; 216.78649 7832; 216.80122 8344; 216.8034 403647; 216.81098 47522; 216.92368 87377; 216.93378 4917; 217.03481 90518; 217.13696 50467; 217.27659 41764; 217.34084 35052; 217.36066 2897; 217.48783 28338034; 217.712 58322; 217.72104 71004; 217.87375 6214; 218.04966 4573508; 218.51906 73749; 218.5545 62596; 218.78626 9713; 218.95917 8181484; 218.97534 6196; 219.71246 4221675; 219.80689 22147; 219.90336 579519; 219.94231 68808; 220.07573 6173; 220.16846 46538; 220.47445 5237771; 220.76009 76648; 221.58214 1965947; 221.58457 730194; 221.72195 27106; 221.75598 7272; 222.11058 65495; 222.31462 546463; 222.52274 1508045; 222.67762 11837; 222.70099 9275; 222.77108 1378; 223.1104 3836; 223.25642 4560053; 223.31301 6500; 223.31618 1951325; 223.55623 27422909; 223.6355 49225; 223.70836 70191; 223.72142 8920; 223.85948 338627; 223.91261 57663; 223.93627 4706575; 224.40863 200417; 224.50901 62096; 224.85869 3890; 224.9686 73947; 225.03531 231593; 225.35732 74950; 225.49932 3061561; 225.53091 120038; 225.98413 740205; 226.103 74969; 226.20852 42590; 226.35577 33547; 226.38432 21561; 226.43213 1814748; 226.4573 9421; 226.58622 9966145; 226.59836 78845; 226.62299 3390; 226.65604 637605; 226.79716 385404; 226.90833 56744; 227.04286 8925; 227.96093 21910; 228.08344 15132; 228.31851 3236498; 228.48038 6608; 228.54167 6871591; 229.0376 34715; 229.29037 30667; 229.53647 1101840; 229.62504 7777; 229.74064 7573367; 229.8422 55136; 229.86702 8221; 230.04458 3903365; 230.15414 6885; 230.25518 584031; 230.53057 1403586; 230.72705 1578; 230.8044 948123; 230.92544 7802; 231.03982 1847; 231.39138 54571; 231.81219 14696; 231.89752 6799378; 232.15947 5472; 232.52653 2501497; 232.52814 3216; 232.93549 1707; 233.01573 896556; 233.07148 11500875; 233.56972 38257; 233.66648 2318560; 234.34222 41617; 234.36077 2746391; 234.46584 959411; 235.28759 45566; 235.32 1980119; 235.33933 95619; 235.53623 392640; 235.55642 47066; 235.84077 8759534; 236.4959 47434; 236.63934 7541; 236.78705 28503650; 236.95088 3869570; 236.9917 191805; 237.00338 16336; 237.02577 8588; 237.05158 32563; 237.11437 1309449; 237.17215 74731; 237.20015 942570; 237.38026 8394983; 237.99972 3072135; 238.02256 18915466; 238.03252 26838; 238.03917 1309302; 238.06695 65793; 238.44751 33691; 238.54225 1981655; 238.61619 5571404; 238.63663 6429052; 238.70155 4202417; 238.87373 3126026; 238.95729 3452495; 239.03459 3429336; 239.23645 2966600; 239.77556 3849808; 239.8453 19610; 240.06087 14615; 240.08853 34723; 240.14649 8996908; 240.27897 8642164; 240.30331 258705; 240.55243 87360; 240.76808 2837016; 240.87401 12; 241.12114 9955; 241.24754 11663; 241.30513 50793; 241.46034 98129; 241.92214 3821; 241.92503 74940; 241.98288 298004; 242.08773 4698; 242.19028 78532; 242.25654 6364; 242.45256 50307; 242.49987 1210862; 242.53661 26818729; 242.62517 3521748; 243.06762 50278; 243.67659 215497; 244.25795 79621; 244.30301 601089; 244.42784 25673; 244.65952 10274; 244.84465 7070; 244.92289 21303; 245.00768 3925; 245.10075 4141092; 245.10124 1730885; 245.19766 471; 245.38294 1256638; 245.46927 61920; 246.25355 8447; 246.33603 2792884; 246.37849 7296; 246.6708 2026558; 246.69475 23527; 247.35714 26120; 247.43157 5958; 247.43712 1854932; 247.50188 6593; 247.78299 8554; 247.86001 65669; 248.01267 8490960; 248.1453 19234686; 248.24297 73804; 248.24943 20518; 248.30695 11021; 248.46509 48000; 248.63887 4100; 248.85682 1517528; 248.88311 19911; 249.19801 726625; 249.2101 181819; 249.35143 26979; 249.36485 849696; 249.36806 12163; 249.6561 47682; 249.89343 70859; 249.99529 47400; 250.48004 3054660; 250.66631 998203; 250.7717 55776; 250.8739 12815; 250.92997 131426; 251.00208 1507152; 251.04536 4246632; 251.06607 11627; 251.06904 23179; 251.14748 213145; 251.26083 121796; 251.31871 4478995; 251.61894 40735; 252.11624 38365; 252.64813 34746; 252.9884 9133505; 253.23918 31863; 253.30137 3139; 253.34533 23088; 253.40732 516; 253.51527 5331; 253.71274 20092; 253.76304 78636; 254.01734 4291902; 254.15505 2239720; 254.23087 1175974; 254.38017 21528; 254.51062 5567; 254.96026 362; 255.0639 959; 255.31259 22686; 255.36794 55021; 255.66318 679181; 255.73217 62374; 255.8347 529; 255.87679 53461; 255.90611 1453070; 256.28628 8171; 256.3138 4484270; 256.71795 12301; 256.75821 34181; 256.98212 18461709; 257.03704 72941; 257.07281 6318385; 257.2087 4332822; 257.24809 25917; 257.85229 8686894; 257.91439 5546631; 258.56298 64898; 258.75455 487675; 258.80821 4834136; 258.81831 52080; 258.83476 174447; 259.16226 15159; 259.44567 3915095; 259.4728 603606; 260.18747 26292; 260.29172 69901; 260.33856 60640; 260.70286 2009; 261.2131 391583; 261.27056 380922; 261.30589 1801832; 261.3264 170358; 261.58134 193209; 261.63716 12846; 261.71094 15823; 261.94012 5251; 262.10526 55699; 262.50923 11933; 262.5349 6102074; 262.54958 6774; 262.69536 7569094; 262.97581 5494749; 263.09679 182; 263.54361 69710; 263.66303 42138; 263.79357 582841; 264.08764 91725; 264.11961 6438227; 264.48733 25668; 264.49106 819477; 264.76926 2307026; 265.05477 22009; 265.37841 79227; 265.45556 3680207; 265.55072 59960; 265.83412 2959510; 266.06462 14062; 266.09367 20122; 266.13635 1955147; 266.51081 12760; 266.75045 36705; 266.86245 31578; 267.04908 58789; 267.19318 342711; 267.61074 1696; 267.67077 315746; 267.97628 117102; 268.14904 56346; 268.23486 152581; 268.38052 23846; 268.75897 50327; 269.12292 1994039; 269.15156 67182; 269.4151 54866; 269.43871 6132155; 269.45852 1510245; 269.56284 64187; 269.56676 2381322; 269.60317 8244; 269.69106 516789; 269.76209 170962; 269.94052 7731; 270.16391 23690905; 270.22462 6745243; 270.32168 8566; 270.55648 30625; 270.70785 225312; 271.06143 3802181; 271.14258 10914; 271.2661 1496; 271.26622 206670; 271.27802 77457; 271.29341 6709; 271.3642 1995058; 271.62957 157892; 271.84079 8707; 272.22438 12146; 272.46817 1141162; 272.52434 673720; 272.6757 4863; 272.72512 71383; 272.98992 25401; 272.99111 1806779; 272.99722 3470; 273.03667 103780; 273.19743 6098515; 273.35496 27952498; 273.37702 7766621; 275.16538 758695; 275.18199 40061; 275.33754 22895; 275.50232 34867; 275.50401 1969219; 275.64183 8677; 275.76584 46127; 275.89039 18385; 275.91926 26611589; 276.02149 8870; 276.4652 40978; 276.50185 37586; 276.57705 7746434; 276.70967 56244; 276.88384 71568; 277.05519 3040615; 277.13224 28437; 277.21406 35347; 277.23654 8938; 277.27016 70702; 277.76018 37999; 277.8317 8769; 278.24043 28632; 278.27553 63736; 278.2892 2853195; 278.50741 3531; 278.51918 63993; 278.68051 104232; 278.69575 33559; 279.55942 3872420; 279.65503 9767437; 279.73119 1094478; 279.74293 326236; 279.86447 9549; 279.99459 21112; 280.00371 165630; 280.01498 21031; 280.03897 69881; 280.56821 105290; 280.73308 5870085; 280.75698 180210; 280.94197 22549; 281.10959 27424; 281.15247 30088; 281.16474 27193; 281.58488 2489045; 281.70582 4280; 281.86793 26987; 281.97178 9809513; 282.13881 137937; 282.21669 8615996; 282.3323 15668; 282.59516 37354; 283.17372 640038; 283.39266 1534; 283.55438 48952; 283.57578 5273337; 283.80559 5678861; 284.21935 1273882; 284.38733 264581; 284.43184 68836; 284.55597 72519; 284.66389 8910442; 284.71868 2332709; 284.99247 1769800; 285.05478 7944175; 285.1438 3125207; 285.26254 567609; 285.38781 78855; 286.0544 3482497; 286.18901 256101; 286.40711 1343692; 286.54203 3851; 286.55994 23702; 286.67129 724864; 286.6839 7728; 287.07905 9328881; 287.10109 14221; 287.17087 1223; 287.22056 10673; 287.42641 77708; 287.45254 1770657; 287.5893 79054; 287.71573 4317231; 287.78199 52514; 287.79119 8139; 288.01784 73075; 288.18528 982744; 288.6954 927796; 289.10827 1740243; 289.12035 1582629; 289.12778 8160; 289.55942 67250; 289.73246 6271; 290.02962 9955767; 290.222 75871; 290.28057 68053; 290.53119 5820030; 290.53519 41702; 290.67835 127552; 290.89748 26484; 291.08741 14525258; 291.17242 4778264; 291.63494 184374; 292.0304 7325390; 292.26339 20063; 292.28243 29326; 292.59144 72923; 292.75273 25639315; 292.91915 3502; 293.1529 1404476; 293.22945 78177; 293.25142 1475768; 293.4382 2984211; 293.51793 26751; 293.65212 3167; 293.80765 2074089; 294.23656 293856; 294.94004 5419966; 295.12675 3846776; 295.24794 106958; 295.28124 1714743; 295.38398 37632; 295.40456 24637; 295.54191 4518879; 295.66751 1146805; 295.67868 138488; 295.78504 18732; 295.79171 54001; 296.19047 36973; 296.59787 357625; 296.92306 4329685; 297.12515 43978; 297.48213 69133; 297.79216 159788; 298.14913 189853; 298.32471 103316; 298.69243 31884; 298.70312 17855; 299.2407 6028; 299.4244 9187; 299.49207 161654; 299.60565 939160; 299.7785 23538653; 299.96943 6007; 300.0034 8758; 300.01864 23133101; 300.11823 77171; 300.29038 5588927; 300.42413 7830; 300.89104 322559; 301.15711 1229711; 301.52213 6715; 301.58339 26100; 301.91461 7084; 302.19333 40517; 302.23157 5340896; 302.29055 4692360; 302.32219 5324083; 302.56959 4585; 302.69299 1933792; 302.72691 1311898; 302.86034 34135; 303.36068 73341; 303.42111 40974; 303.52991 3994564; 303.56284 1531718; 303.72789 9886; 303.80976 15470; 304.07173 62734; 304.34146 2381; 304.91365 23792; 305.12817 62448; 305.56637 160659; 305.66382 913665; 305.77588 23537; 305.89474 559314; 306.00888 5565; 306.23217 694; 306.23824 860199; 306.38361 25881; 306.42959 26385; 306.62792 77327; 306.84885 889314; 307.1741 1134901; 307.18246 1061864; 307.36621 9220302; 307.61648 9761961; 307.65863 3281297; 307.94119 1788133; 308.25023 6537; 308.28075 3340311; 309.079 96473; 309.0851 133658; 309.09326 85302; 309.34442 11642391; 309.50307 192877; 309.80681 26575; 309.95185 937054; 310.41962 4026201; 310.62407 1411426; 310.79699 9791686; 310.86465 64740; 311.04196 1537136; 311.16187 5359655; 311.29364 593119; 311.51801 10870239; 311.6185 4054998; 311.73239 6530; 312.2998 7140; 312.43923 57088; 312.52396 1945344; 312.54718 5244173; 312.57623 8716; 312.85459 64832; 312.98757 1283053; 313.26098 1034184; 313.26519 917510; 313.86786 8532993; 313.90666 51422; 313.96089 37084; 313.97125 26066; 314.00034 2279690; 314.02971 1208212; 314.06267 2402; 314.1296 1484980; 314.1422 169489; 314.35048 7104; 314.44242 988739; 314.47983 7806; 314.64448 13587; 314.66599 1719050; 315.16772 802170; 315.51986 29681; 315.63732 599643; 315.77311 18082599; 315.77652 15361645; 315.83039 1728598; 316.20219 23524; 316.50189 23648; 317.23905 24745; 317.59314 83675; 317.87849 1595076; 318.12647 1270895; 318.33805 37395; 319.0306 79729; 319.047 62720; 319.23062 7323743; 319.42442 26797; 319.57837 68481; 319.62197 657033; 319.71475 22226; 319.73542 2846; 319.90677 756685; 320.00007 2752; 320.0247 5628; 320.25881 40073; 320.25987 4156579; 320.38776 29951; 320.74574 69931; 321.02838 10511; 321.04436 4008799; 321.08487 868822; 321.36634 957843; 321.40879 745105; 322.09208 7612; 322.34286 23128; 322.35985 15243; 322.36138 23634; 322.39225 181913; 322.43263 25408; 322.51758 1399128; 322.56503 2988; 322.72318 31802; 322.75332 25625; 322.89253 20372; 322.96579 21631454; 323.07606 34050; 323.26311 46862; 323.48179 7081; 323.49734 9917074; 323.50626 5761240; 323.55801 14032; 323.80797 2130793; 324.08939 62943; 324.15851 363804; 324.188 61362; 324.41073 8358365; 324.4503 75036; 324.49884 1440185; 324.66216 108574; 324.67839 16013; 324.75834 41104; 325.00868 7885687; 325.35313 879613; 325.36976 44874; 325.45372 5883; 325.73821 62451; 325.84441 34649; 326.13426 77604; 326.2681 1021222; 326.32165 26272; 326.4193 22914; 326.66692 8364; 326.97461 28683; 327.07904 834229; 327.15584 13274840; 327.1868 17992; 327.22637 59982; 327.4667 4138446; 327.53606 108995; 327.65891 155440; 327.91704 176905; 328.05853 126297; 328.26349 4027; 328.39768 5322; 328.70845 177330; 329.06122 1738757; 329.16333 26904; 329.19234 18427127; 329.28625 1712448; 329.50571 40686; 329.75126 62546; 329.92606 149335; 329.97508 1688487; 330.20373 20442; 330.44522 574811; 331.59949 11480791; 332.05105 415068; 332.07793 19287353; 332.78967 3229; 332.8236 16392; 333.03483 79338; 333.03864 22916; 333.26396 60309; 333.34637 17116; 333.43273 474809; 333.4387 39965; 333.44631 39749; 333.58597 28004; 333.71466 32498; 333.72549 29711; 333.97887 2488110; 334.07339 939790; 334.0809 2341118; 334.13155 1995010; 334.2931 2361; 334.42774 655380; 334.44789 20481; 335.58642 241; 335.63387 20686; 336.13364 2074135; 336.50777 4495863; 336.55865 11340; 336.69337 9645; 336.75052 585950; 337.01193 718782; 337.05611 26310; 337.20393 48145; 337.26752 1981915; 337.67173 159289; 337.94004 46896; 338.61187 1748715; 338.94559 34887; 338.95039 76908; 339.10643 857476; 339.645 20769; 339.69968 23260; 339.93918 8631317; 340.10556 9918559; 340.11494 72201; 340.19609 23374; 340.25933 22254; 340.32892 150291; 341.0207 11913; 341.34757 46288; 341.41313 5810176; 341.50892 995133; 341.74643 62695; 342.27617 479679; 342.34913 2903436; 342.65864 7373668; 342.89977 274410; 343.16974 100667; 343.18873 9063394; 343.24495 74559; 343.92023 52124; 344.2552 1544043; 344.28831 12331; 344.33944 4169006; 344.39755 551838; 344.44886 8666406; 344.71307 17097882; 344.89256 37299; 344.95573 184201; 345.59298 20195; 346.04522 3939240; 346.13431 9144671; 346.2744 20283; 346.43818 49418; 346.61881 2750; 346.82906 116137; 347.11427 20516; 347.66071 29871; 347.69643 18851312; 348.03279 3324023; 348.12194 114690; 348.33391 46164; 348.40747 615194; 348.59332 41244; 348.77957 25744; 348.89254 1818551; 349.08874 49464; 349.18275 29467; 349.49245 73191; 349.5205 2897163; 349.68361 6309164; 350.09639 79518; 350.12083 19183486; 350.31913 687; 350.32568 150837; 350.47295 3013; 350.57056 3746; 351.0038 55; 351.04012 1751467; 351.13277 1250345; 351.75957 234580; 351.81732 79060; 352.2076 1122469; 352.23553 7724; 352.55177 9024; 352.70742 1771827; 352.81092 97559; 352.84586 248207; 352.89646 61738; 352.97473 39462; 353.00022 14807607; 353.01011 145095; 353.34668 73061; 353.43476 3803; 353.54432 68987; 353.67758 22916; 353.86733 4448; 354.02002 108061; 354.23815 26765; 354.5543 19936; 354.57942 3337771; 354.6622 66832; 354.66777 8030; 354.92674 5176869; 354.93628 9189848; 354.98431 2435051; 355.19771 4009951; 355.56274 22905; 355.68738 114623; 355.87122 280076; 355.89035 2126659; 355.9069 1042; 356.18056 7494824; 356.2502 24776; 356.4545 26505; 356.58928 38369; 356.69738 20984; 356.72621 32455; 356.8275 12056369; 357.03106 13169740; 357.47135 71771; 357.59962 2868; 357.62234 545423; 357.82744 102474; 358.13275 17256; 358.93487 28502; 359.11466 6655; 359.20957 56108; 359.36047 56548; 359.48759 8585; 359.52485 9779749; 359.64812 5007; 359.70041 20680; 359.78016 21584; 359.80289 70896; 360.28844 1484; 360.65966 29869; 360.70591 7901; 361.0296 11003; 361.12011 24697686; 361.1712 416889; 361.30407 67629; 361.30431 1923068; 361.37653 37615; 361.5038 455718; 361.53155 23681782; 361.9888 162775; 362.00533 4910298; 362.04698 1893390; 362.09088 45341; 362.14607 1387708; 362.46701 8296; 362.52028 9401; 362.89998 334; 363.00602 35532; 363.40576 27481; 363.74408 64619; 364.52816 6584185; 364.94999 1879591; 364.973 34722; 365.25765 2182; 365.50969 186234; 365.67696 19157; 365.90797 136219; 366.34279 4359597; 366.79415 4495; 366.91651 478691; 366.97546 70803; 367.01661 2596050; 367.13995 11692267; 367.40561 4065724; 367.53474 79717; 367.60622 56211; 367.70575 7651; 367.75771 48398; 367.81483 60418; 367.83725 4877; 368.34899 106286; 368.44883 2314422; 368.45783 5356; 368.90922 7781; 368.92674 4232919; 368.9544 38958; 369.12288 17850930; 369.46708 38712; 369.6364 8100750; 370.11924 4010975; 370.48277 211155; 370.73185 62366; 370.79105 79386; 371.087 5936; 371.13241 21681; 371.30082 39083; 371.36457 101799; 371.36569 41032; 371.48481 35595; 371.74603 37141; 371.96142 10960; 372.01435 126148; 372.04656 9686300; 372.12594 57910; 372.16088 197471; 372.28851 8491; 372.32072 7593; 372.84558 749747; 373.09447 531; 373.13456 32212; 373.17369 9855418; 373.1737 1114501; 373.20772 23340; 373.24504 372831; 373.40204 8667235; 373.59802 14802; 373.67069 1370472; 374.07514 1263; 374.44231 18826; 374.50284 754481; 374.52605 125087; 374.78291 106565; 374.79409 20034; 374.96506 53487; 375.0824 2810831; 375.42036 55846; 375.71672 17270; 376.18605 2355684; 376.28526 400533; 376.42062 1813; 376.4944 42453; 376.54158 40827; 377.12362 17591; 377.54492 2753820; 377.79814 4388; 377.8598 310429; 377.91305 82476; 378.01272 28641; 378.02152 22932; 378.20465 48710; 378.22018 4935201; 378.64363 29184; 378.73861 84593; 378.74118 41399; 378.90778 1809342; 379.11415 32155; 379.46283 186489; 379.56766 3108361; 379.56891 106250; 379.93722 17538; 380.03923 20898; 380.16892 17930; 380.35255 648590; 380.46302 17269; 380.49889 1544276; 380.70695 16936916; 380.86956 14061; 381.29683 24886882; 381.41447 166808; 381.4955 1407964; 381.8071 44430; 381.82884 40274; 381.83484 213; 382.00481 42230; 382.03005 45241; 382.08472 4828; 382.27864 4947083; 382.34972 873854; 382.36732 15339; 382.639 90847; 382.86081 5369; 382.91923 48946; 383.28537 677992; 383.28563 3734; 383.33291 780666; 383.42296 133354; 383.6964 3943599; 384.06494 2702; 384.3342 4953231; 384.7298 20742; 384.75814 949718; 384.92071 170069; 384.94151 3785933; 384.99329 376; 385.07951 19223; 385.25904 8632; 385.95815 262943; 385.96908 22098859; 385.9823 769273; 385.99997 823708; 386.33931 2575522; 386.63348 26752; 386.90617 1544830; 387.16741 4630034; 387.29604 15229; 387.68645 2035746; 387.74888 4026918; 387.85828 78969; 388.08369 25549; 388.11756 4360; 388.28858 7759; 388.38676 3959578; 388.46742 1213; 388.71722 1169778; 389.12763 980; 389.25209 5281478; 389.58042 25514; 389.61659 5332393; 389.63916 1045797; 389.8826 5924832; 390.39426 16586; 390.70346 161703; 390.76254 1582874; 391.12749 112932; 391.12973 877369; 391.193 45024; 391.24953 4558302; 391.28288 115901; 391.49311 7200; 391.7723 7620; 392.05697 1347261; 392.66062 40497; 392.66579 148979; 392.67702 4715845; 392.89618 9852; 392.95299 5589814; 392.99628 23789; 393.11437 635793; 393.16595 66443; 393.33824 33709; 393.35766 22500; 393.56676 31904; 393.58389 36790; 393.62983 20349; 393.7119 47736; 393.78212 1560305; 393.88423 4597; 394.1689 19849; 394.21203 5251; 394.33371 20340; 394.35777 45009; 394.45106 12130; 394.80645 21950; 394.87079 11732; 394.8821 10058; 395.21063 19538; 395.41583 27951173; 395.45764 65472; 395.49545 533963; 395.55073 53853; 395.86727 24055; 395.89745 1068; 396.09176 1777328; 396.10637 28204; 396.29151 1897971; 396.79272 165636; 397.34733 8664491; 397.40424 108077; 397.98724 514954; 398.10479 22709; 398.16066 116304; 398.32242 287084; 398.52987 235527; 398.62528 86231; 399.6176 1005482; 399.62734 55256; 399.9254 5676350; 400.2773 76835; 400.35196 3334149; 400.61772 265577; 400.65907 443753; 401.02683 17449; 401.13101 98265; 401.40155 123306; 401.42927 1584259; 401.66507 9469637; 401.80462 27923; 401.80839 837083; 401.87289 148394; 402.07507 95737; 402.27558 95411; 402.39075 199043; 402.86886 143211; 402.98628 63273; 403.16365 750440; 403.49926 63018; 404.13644 63020; 404.15227 1981016; 404.39988 71186; 404.86148 1528416; 405.0329 1451221; 405.34832 4641747; 405.56176 53624; 405.62841 760391; 406.01295 2695508; 406.22991 29816; 406.49608 71366; 406.92805 1219; 407.01539 7516301; 407.18201 3293935; 407.33603 36610; 407.69093 4072319; 407.90859 5609; 408.101 22841320; 408.33406 51420; 408.5155 746532; 408.52023 272512; 408.64559 27108; 409.00334 1730447; 409.13192 82603; 409.23368 1801176; 409.2696 194586; 409.30709 1297551; 409.31576 26057; 409.49277 4108; 409.53436 3800475; 409.62563 59151; 409.93112 8443894; 409.94978 53164; 409.9781 21037; 410.14055 55834; 410.1609 93298; 410.42371 34186; 411.18612 1890852; 411.3472 1941970; 411.71047 4301; 411.74091 92651; 412.22049 36484; 412.258 3502192; 412.26959 7969; 412.58256 13455; 412.78121 7422843; 412.98843 49403; 412.98925 30613; 413.36189 8388; 413.88696 28396; 414.08411 22049; 414.11682 3035480; 414.30775 1618836; 414.51549 6564; 414.5612 136052; 414.68827 10748; 414.79486 3615; 414.91465 8916; 415.08642 15246; 415.45305 28564; 415.46331 20091; 415.64223 186339; 415.70597 48602; 415.95358 29007; 416.02426 73406; 416.10386 33920; 416.27009 15530; 416.27295 66936; 416.47972 69304; 416.54394 15394; 416.75548 10065175; 416.89992 2653344; 416.97264 28532; 417.00612 1598887; 417.14183 21625; 417.34027 304861; 417.63168 8527098; 417.65644 1521584; 417.85312 851816; 417.85535 334525; 418.14971 1261269; 418.18464 2448734; 418.20948 6655; 418.65346 46902; 418.95938 5286; 419.13959 18693703; 419.20579 248365; 419.28077 15054; 419.34301 36780; 419.39301 1812172; 419.44916 26454; 419.68164 5704; 419.75563 63927; 419.95442 13291181; 420.05071 69765; 420.20502 74533; 420.28786 45280; 420.31018 7581395; 420.38386 1968556; 420.70019 15027; 420.99495 1992808; 421.29492 25290; 421.45028 25346; 421.6002 58859; 422.28747 3448659; 422.29791 194614; 422.7684 3623933; 422.87109 3605421; 422.96991 1460320; 423.18478 2892; 423.48448 55800; 423.64835 7052822; 424.15907 7670265; 424.34623 2871796; 424.57862 709837; 424.65591 8843149; 424.70841 4081007; 424.80815 42824; 425.30582 25847; 425.35211 29372; 425.37643 18593508; 425.75066 78257; 425.91777 43224; 425.99921 342128; 426.16313 6485; 426.21124 57349; 426.42045 664712; 426.47153 2736947; 426.57914 76652; 426.66622 704761; 426.79372 3153981; 426.94226 23099; 426.94674 72351; 426.94717 1030519; 426.96143 30381; 427.04282 7936; 427.06969 65937; 427.14919 794511; 427.21402 26394; 427.41749 52205; 427.62609 77602; 427.84911 10749367; 428.00471 55415; 428.0603 21261; 428.18619 92513; 428.6186 746861; 428.63267 884487; 428.84617 79965; 429.05054 1056391; 429.27038 142021; 429.32426 8492; 429.40883 26545; 429.52763 294177; 429.55849 4637; 429.69472 138173; 429.9899 257756; 430.00097 78678; 430.01465 21453; 430.1488 2617923; 430.17062 487422; 430.27078 869302; 430.33197 34329; 430.61294 22801; 431.17466 26357; 431.19721 6661817; 431.24029 11926; 431.32775 3079824; 431.6743 1593954; 431.76507 1018734; 431.77775 43951; 431.93077 2968159; 432.11649 13551; 432.42602 4449; 432.44878 3381023; 432.45669 21371; 432.73595 51280; 432.9687 71440; 433.08746 4567587; 433.50066 57884; 434.02308 50133; 434.12646 46848; 434.23223 273199; 434.4063 9763; 434.54468 62848; 434.80932 97162; 434.9234 3250426; 435.06353 44138; 435.19929 25506; 435.46276 25996; 435.52411 5340208; 435.74105 8420; 435.99494 48969; 436.13999 9683625; 436.16185 4768752; 436.55749 1750378; 437.29464 53989; 437.68456 36321; 437.7459 65218; 437.91896 1752712; 437.9425 15033; 438.11366 7615; 438.14259 41344; 438.18459 8251174; 438.556 24323; 438.55928 5240505; 438.61195 33273; 438.6563 583; 438.77981 17955; 438.78947 4030890; 439.24533 203436; 439.47177 108149; 440.10471 2001646; 440.2421 1104838; 440.38042 70130; 440.46286 3515209; 440.65861 1646522; 441.00385 3092; 441.39605 50718; 441.46688 175833; 441.68808 79795; 441.81532 3482587; 442.01274 349422; 442.177 8690855; 442.36904 28665; 442.49791 11627; 442.61143 1818; 442.69592 50895; 442.72809 24076; 442.85335 2764; 442.8836 66603; 443.02944 7813; 443.14561 15945; 443.47974 780849; 443.80548 5156056; 444.1027 3656305; 444.10404 8628; 444.12605 394696; 444.14998 2799; 444.27079 744956; 444.39247 17633724; 444.82181 79452; 444.86605 43958; 445.1912 316133; 445.22277 4297715; 445.27754 1726676; 445.31644 20994; 445.61486 76611; 445.679 7713614; 446.03139 21002; 446.18171 41707; 446.64223 255607; 446.80437 1697384; 446.88185 45764; 446.90711 1118; 447.16647 18907; 447.22227 561222; 447.36084 7048876; 447.41447 218021; 447.53579 124575; 447.59861 2864762; 447.75251 29011; 447.7531 1262843; 447.88562 441889; 448.11243 1285170; 448.4225 7686; 448.67274 5937; 448.8457 184062; 449.08384 9890775; 449.71228 2372341; 450.0575 66372; 450.12262 49417; 450.2889 9070; 450.37318 32187; 451.47299 51297; 451.57315 22707; 451.76056 2623106; 452.18219 27449; 452.29751 28759; 452.30727 9029916; 452.61448 186442; 453.28455 2655; 453.57952 174874; 453.84667 21863; 453.86126 811997; 453.86924 75093; 453.97535 5055289; 454.37403 5406456; 454.59035 69628; 454.60862 69937; 454.9543 3847982; 455.16097 1788; 455.44755 21995; 455.72935 3072; 455.7642 9909; 455.90488 223727; 456.26722 5748; 456.51448 6575; 456.89099 1428353; 456.99708 57474; 457.20268 355183; 457.41231 1250079; 457.41603 4227331; 457.43042 3385386; 457.4814 1147187; 457.51264 70352; 457.51766 74020; 457.72375 460772; 458.34696 556955; 458.50656 59569; 458.65715 43151; 458.75135 29310; 458.77077 26363; 458.80428 7865466; 458.85114 22742; 459.10493 23332273; 459.32949 2039984; 459.40719 9100923; 459.55999 1136; 459.71033 6691; 459.8653 3303267; 460.02586 465236; 460.09122 44923; 460.23276 22600; 460.27152 2656534; 460.44487 63092; 460.60033 9925015; 461.23266 1560271; 461.58216 965633; 461.59064 4341556; 461.65976 63006; 461.75963 78364; 461.82696 9615204; 461.84929 78255; 462.21694 37062; 462.60751 18958; 463.34055 60883; 463.41192 1968829; 463.60352 1518675; 463.76979 4179883; 463.97348 72865; 464.18067 808; 464.47105 1646053; 464.65069 79194; 464.6923 20999; 464.71056 577949; 464.82135 67944; 464.90712 6519; 465.0405 4976517; 465.05323 5780; 465.08918 46104; 465.14332 32465; 465.24051 2306996; 465.35006 2010684; 465.44957 506245; 465.82645 73616; 466.32091 64386; 466.35046 6893277; 466.36943 3683242; 466.53285 2042898; 466.67574 31459; 466.76147 51111; 466.78976 78871; 467.14103 189480; 467.17702 1774898; 467.23319 636884; 467.32461 52348; 467.32812 125207; 467.33958 27327; 467.47351 2031562; 467.70385 444263; 467.87396 5032; 468.37321 8436761; 468.39962 29997; 468.75794 142998; 468.78048 276683; 469.06078 1904516; 469.47431 12627721; 469.47889 2629; 469.49432 3236; 469.54819 1579490; 469.61186 3686397; 469.69042 9514531; 469.73742 160276; 469.81385 1631331; 470.01753 24741; 470.26718 8344; 470.44557 15957070; 470.51484 5437; 471.18297 19727; 471.3209 15465; 471.45877 25875219; 471.8254 1771070; 471.97727 31836; 472.38689 915122; 472.65037 22165113; 472.69036 12785; 472.8035 76676; 472.89359 392871; 472.94374 30129; 473.01828 4755; 473.14543 49618; 473.21276 3949613; 473.37717 21424591; 473.70718 1218463; 473.71748 1092058; 474.1952 8556561; 474.47592 3385875; 474.73345 52981; 475.21413 116720; 475.30482 2196436; 475.31961 43898; 475.58413 59201; 475.6452 1032392; 475.78929 4082899; 475.83804 24518; 475.95387 1774; 476.50677 78265; 476.58784 18860727; 476.71017 1039113; 476.75187 10740; 477.15528 33762; 477.5267 2387; 477.59224 35458; 477.88804 5358; 477.96464 1055; 478.37083 67884; 478.41625 958769; 478.46906 63705; 479.20083 5983; 479.21283 290765; 479.29135 77624; 479.41823 61528; 479.43448 3443958; 479.4542 1064729; 479.46655 3459813; 479.6646 959121; 479.75862 7927; 480.08473 4884; 480.26521 131384; 480.48199 3175759; 480.63278 3587765; 480.66128 16985017; 480.78657 3942362; 480.98631 1553403; 481.03048 3594078; 481.16438 610476; 481.51894 1710634; 481.52166 8605849; 481.76068 21740; 481.85839 52455; 482.69567 376351; 482.84641 4974208; 483.1011 57938; 483.16568 35160; 483.35439 6624421; 483.55109 518566; 483.64878 152517; 484.11468 2523821; 484.13016 1927812; 484.19204 62712; 484.22933 194482; 484.52261 3071583; 484.63099 16540485; 484.66309 171178; 484.86124 2736; 485.37508 7731; 485.45418 63796; 485.57146 651645; 485.6622 30776; 486.14513 1067079; 486.27609 2460900; 486.28412 1973941; 486.48976 19799; 486.50136 3890664; 486.5333 637073; 486.5406 47496; 486.55038 3424; 486.57016 36870; 486.67799 51712; 486.69371 54474; 486.97287 2408328; 487.70245 120139; 487.81422 1131; 487.82758 5539; 488.64163 3326428; 488.6565 7646196; 488.90539 1003407; 489.17996 816390; 489.24249 612116; 489.50712 8173; 489.58052 73053; 490.10204 752; 490.14222 8985132; 490.31767 841040; 490.44654 1921216; 490.67912 705632; 490.80917 1897448; 490.94488 29740930; 490.99593 13303809; 491.18272 16806549; 491.20385 6258; 491.21848 6387321; 491.45735 1599216; 491.683 13900347; 491.90822 25928; 492.04199 5915978; 492.28065 4710228; 492.28749 20714; 492.35923 75346; 492.43233 20753; 492.62205 37686; 492.63568 998984; 492.9901 29964; 493.27656 3743477; 493.29444 24493; 493.34436 9826; 493.54687 1321377; 493.57225 45834; 493.677 20699; 493.70962 14144; 493.78218 135370; 494.08736 8904255; 494.13992 40764; 494.38465 2760295; 494.55844 49704; 494.62702 3677061; 494.6519 31838; 494.70002 1132701; 494.73884 9700; 494.84315 10883993; 494.89723 67103; 494.98471 23134; 495.31023 29192; 495.39762 20039; 495.56929 156495; 495.96156 21430; 496.29156 1705; 496.43532 1017; 496.45789 2033; 496.68931 16477; 496.73963 24701; 496.96698 52264; 497.85042 17573; 498.12228 29869; 498.22379 2525; 498.3598 4703; 498.37638 577641; 498.50515 92810; 498.51379 183591; 498.88055 6747591; 499.84081 74284; 499.87765 232365; 499.95775 25216; 499.97804 3308313 +<6, 2>: 0.21571 1486636; 0.58876 1996; 0.91719 900; 0.94794 515702; 1.67458 29361; 1.69651 22725383; 1.83973 30992; 1.85461 1319302; 2.31872 6084; 2.42509 8025; 2.53759 173071; 2.84064 2017924; 3.03055 571647; 3.39804 5939326; 3.49986 573027; 3.79087 7126733; 4.16661 34830; 4.92848 2253910; 5.95057 28451; 5.9574 1586734; 6.10546 1185377; 6.70615 8369; 7.04645 67779; 7.22576 70802; 7.22772 74953; 7.2894 424497; 7.30408 1659; 7.44067 1127693; 7.6002 67349; 7.60343 9987535; 7.62101 135614; 7.80678 1484317; 7.86393 131695; 7.89482 4618; 8.01906 77787; 8.40287 117958; 8.5987 70585; 9.27637 27174804; 9.29469 106455; 9.30097 4532; 9.3873 268408; 9.39925 9381618; 9.44581 13270; 9.61121 52166; 9.80168 5385278; 10.08581 12044; 10.1595 36769; 10.35175 19753793; 10.58759 2810936; 10.63582 20015; 10.8408 61946; 11.17448 12378; 11.18587 4295982; 11.27101 4912167; 11.27699 232022; 11.39256 13589; 11.40896 20591; 11.59227 11208; 11.71202 68544; 11.7643 2227885; 11.78448 1130752; 12.10691 1710950; 12.24735 1122826; 12.31925 5019; 12.42224 7915; 12.46486 239516; 12.47832 61981; 12.56545 20060; 14.00155 804; 14.05423 19998; 14.12579 45795; 14.1806 1751778; 14.29197 194032; 14.48982 204250; 15.13808 1216087; 15.33973 795929; 15.35504 18464; 15.55666 533690; 15.57635 2115; 15.66114 32533; 15.76713 26800; 15.7951 655080; 15.82053 21981; 15.97246 25714; 16.25672 26847693; 16.44705 208081; 16.86651 1976072; 17.06756 192898; 17.10798 24088; 17.31507 75716; 17.45527 20084; 17.68675 60537; 17.79341 8727417; 17.83683 10253; 18.08455 589018; 18.3045 6152; 18.35817 1248680; 18.46738 1404802; 18.75188 6568333; 18.92318 472191; 18.99135 182472; 19.20488 4384505; 19.48993 8717; 19.54027 50262; 19.68192 147; 19.78185 15419; 20.22444 789096; 20.76337 5526907; 20.82424 2545644; 21.1786 35692; 21.24388 27710; 21.39359 3481479; 21.5997 624368; 21.80023 8228; 21.83458 62205; 21.99386 8965; 22.02393 7395; 22.05725 8739809; 22.27374 2584659; 22.74647 45086; 22.96078 1400584; 22.96148 4456005; 22.98144 29022; 23.01618 37856; 23.16067 2105809; 23.17344 5162992; 23.81356 283297; 24.2271 1281119; 24.29338 16290; 24.47605 17811379; 24.69884 1066; 24.982 1813492; 25.09869 2609; 25.51963 77272; 25.87777 68956; 25.91446 60797; 25.94503 51998; 25.96109 270583; 26.13709 5073365; 26.20585 22223; 26.24429 63327; 26.24729 32282; 27.16828 971299; 27.40077 83558; 27.76808 34489; 27.82428 6382; 28.10239 6344557; 28.90776 41160; 28.98089 23010; 29.01277 974879; 29.02432 1991; 29.21644 5642; 29.22842 1562; 29.54163 2694191; 29.57196 1860178; 29.70436 96184; 29.88867 32321; 29.99727 74643; 30.08278 29; 30.18098 55781; 30.18712 20233; 30.22178 18998; 30.4662 76976; 30.71076 1577793; 30.96736 840692; 31.03145 75309; 31.41593 239131; 31.4171 29711; 31.4852 70933; 31.78687 820313; 31.92562 1359114; 32.09536 75931; 32.12486 23874; 32.19567 281592; 32.20414 1752412; 32.22508 334399; 32.69032 4114067; 32.78052 892265; 32.82204 2178062; 32.89448 28937; 33.34315 24072072; 33.38734 14843; 33.73746 1686593; 33.92316 59240; 34.0295 1779487; 34.13717 664441; 34.29769 11788272; 34.34299 2962339; 34.39522 43980; 34.90504 14337; 35.31572 28406; 35.32009 33490; 35.45296 60643; 35.82768 3523215; 36.15089 20900; 36.75513 49649; 37.00052 5742; 37.00675 26650; 37.25514 65562; 37.3672 103977; 37.70574 57102; 37.76596 63418; 38.11755 2225884; 38.22952 25278; 38.357 185497; 38.66407 1979; 38.86551 10627; 38.90259 35040; 38.96888 812866; 38.9981 26252; 39.27087 331529; 39.62761 43586; 39.66408 36102; 39.69616 54567; 39.79492 19090; 40.1163 34318; 40.27036 73102; 40.55652 5635562; 40.81122 666650; 40.87647 556148; 40.97823 23396; 41.02834 1918643; 41.6519 17; 41.7527 16630; 42.07862 1278476; 42.19677 1569357; 42.26786 4366; 42.33956 48722; 42.4413 9202; 42.58777 25607; 42.80297 48998; 42.94139 63805; 43.02495 69097; 43.20822 1516673; 43.40204 20826; 43.53807 6479356; 43.85194 1320539; 43.95811 7869051; 43.98076 716990; 44.19022 9914; 44.84165 173388; 45.07936 65148; 45.17245 6481; 45.31672 2377; 45.3992 977325; 46.21563 2039168; 46.29397 4886775; 46.37618 198978; 46.54574 72431; 46.83113 8959594; 46.91782 10252; 46.97846 12023; 47.39971 73438; 47.41008 8995; 47.57962 268724; 47.88369 916908; 47.90273 46192; 47.99015 47072; 48.15778 22980; 48.18502 4088; 48.20193 7078661; 48.26114 1368274; 48.54111 2941617; 48.99098 36804; 49.06714 779838; 49.29857 8805; 49.41417 4205321; 49.50722 3889542; 49.62498 5196577; 49.89217 433894; 49.89284 48061; 49.91119 1486259; 49.95115 74096; 50.23683 1443526; 50.36482 59987; 50.44969 16089; 50.52092 8855; 50.54834 1719; 50.72493 8342; 51.23008 44341; 51.28869 994593; 51.32331 4766; 51.53733 907426; 51.56446 1377571; 51.58281 1985688; 51.58731 69972; 51.59144 64884; 51.80962 10161; 52.33261 3688812; 52.41377 119792; 52.61355 7646537; 52.83491 3092857; 52.87626 7407; 53.27674 5790; 53.57236 25020; 53.69542 25019; 53.83734 554818; 54.01108 423886; 54.05087 6283; 54.08977 136793; 54.12742 9204; 54.15668 72433; 54.68789 4667710; 54.73266 26419934; 54.88561 7931400; 55.38492 39236; 55.76121 9078; 55.7994 133422; 56.12202 4347483; 56.25518 1076405; 56.38674 4656; 56.56896 1587024; 56.57444 15622535; 56.59356 1159128; 56.80775 9089681; 56.91672 16638; 57.24194 1187187; 57.68453 18534; 57.86027 1828155; 57.97655 832962; 58.00052 8082833; 58.28183 56159; 58.29503 22077; 58.56989 47958; 58.80636 1698714; 58.8269 6473524; 59.02305 62135; 59.59291 1961356; 59.60242 26403; 60.06101 20737; 60.27351 6622086; 60.35684 43915; 60.39929 36050; 60.46545 3042998; 60.46713 4433961; 60.61226 22511; 60.84326 1203290; 60.89068 1541373; 61.04745 1606694; 61.28972 3438973; 61.31743 7603028; 61.32295 4698; 61.41682 1311291; 61.60201 4948638; 62.07596 55480; 62.10467 2046016; 62.12517 3593; 63.84787 4197805; 63.98495 933655; 64.13512 54765; 64.19568 97491; 64.21168 4478; 64.2815 105077; 64.67764 8900; 64.94334 5362; 65.36618 473869; 65.37522 4817684; 65.66885 6863; 65.80318 76264; 65.80936 11532741; 65.86832 18462306; 66.0445 46077; 66.12199 10029; 66.28269 41899; 66.32933 64513; 66.41381 496844; 66.4324 1856551; 66.5164 46611; 66.66327 53256; 66.9577 13948980; 67.44686 1242219; 67.52991 4304; 67.59969 31793; 67.72018 52626; 67.91417 148514; 68.42864 29627; 68.58193 21239; 69.0748 1051839; 69.40661 299090; 69.46167 1232384; 69.59222 53323; 69.89689 76881; 70.09342 155812; 70.2977 13232; 70.3425 3024536; 70.51791 26515; 70.70516 651208; 70.94639 77782; 71.07021 922800; 71.07216 1137332; 71.69482 7205; 71.70258 53025; 72.22215 2704997; 72.33768 61946; 72.42513 16190; 72.48443 91426; 72.61032 96250; 72.73055 243630; 72.73728 1723; 72.84275 20145; 72.85251 3354583; 72.87088 5252383; 73.0042 1293734; 73.01142 150926; 73.11352 9032; 73.16998 19460; 73.23572 621022; 73.97899 943317; 74.64239 8562616; 74.64934 76416; 74.67242 80005; 74.67409 7168; 74.86381 22907; 74.87097 8562; 74.96021 167470; 75.91253 54019; 76.15906 720; 76.22028 29294; 76.44965 71857; 76.48546 65799; 76.68004 7641422; 76.7791 3906562; 76.83684 8247; 77.00649 51546; 77.04122 660036; 77.16718 693; 77.46579 170381; 77.96245 7620370; 78.02325 46000; 78.03521 1240676; 78.28386 77857; 78.40871 2427583; 78.70542 195869; 78.78473 493; 78.94323 73870; 79.0213 4279068; 79.26757 6813691; 79.27014 165927; 79.8948 453; 79.92023 47928; 79.96208 9174; 80.22266 26512; 80.27368 1008370; 80.29613 1724499; 80.48209 1041737; 80.65016 772171; 80.77285 1474448; 80.95517 47024; 81.45537 26650; 81.59705 9965; 81.64108 3355300; 81.91894 1536121; 82.37491 49350; 82.45442 9656534; 82.652 8651873; 82.75486 9206; 83.22159 9615442; 83.22241 1624717; 83.45434 22718644; 83.58198 4010496; 83.60364 73927; 83.66132 2369; 83.85024 3880; 84.34352 109360; 84.40481 15118; 85.26254 138179; 85.66747 75698; 86.3425 5633003; 86.34316 26387; 86.43415 42529; 86.44819 70527; 87.14403 2215; 87.19388 11049756; 87.50955 1283325; 87.61783 7121; 87.87893 8549573; 88.16407 3780479; 88.36148 3067; 88.37302 22416; 88.49663 28974; 88.9288 53977; 89.29244 72314; 89.56719 22026; 89.65823 9936; 89.67921 19604326; 89.71709 28341; 90.08494 3195; 90.25334 73670; 90.42501 76665; 90.44566 28955; 90.82146 921863; 90.89098 150504; 91.03166 2901; 91.37081 423527; 92.00308 1645064; 92.1193 128714; 92.54699 1097254; 93.01442 1386200; 93.01555 18428; 93.06273 1297; 93.38781 24252; 93.66297 20174; 93.8649 7542; 93.94775 28791; 94.25285 16041; 94.86819 44841; 95.07019 20022; 95.36053 2631722; 95.39734 4591480; 95.47578 425819; 95.51658 2968267; 95.52347 14117389; 95.56201 72745; 96.16065 1363064; 96.20999 359748; 96.40984 3850; 96.51185 2952696; 96.69741 27865; 96.84188 84648; 96.93146 9016; 96.93761 940671; 97.04395 60011; 97.63208 22844; 97.65726 14410; 97.76319 7368694; 97.80703 163762; 97.95411 37248; 97.97256 68796; 98.62503 1968679; 98.85442 1606331; 98.85721 3328946; 98.95893 6031; 98.98856 5597293; 99.09975 897295; 99.62623 28071; 99.66123 845731; 99.83433 147691; 99.98434 102113; 100.45941 4140622; 100.46302 746; 100.74127 41409; 101.08352 120966; 101.2996 123965; 101.33216 902006; 101.43239 21903; 101.47854 953160; 101.56629 66318; 101.71412 1529; 101.7561 1408734; 101.98304 779887; 102.11106 5222792; 102.2184 33480; 102.28293 6346; 102.34936 66338; 102.41736 12908; 102.4518 157599; 102.4991 27372; 102.98667 3309829; 103.01108 2094146; 103.19752 25958; 103.27629 2050124; 103.2956 35262; 103.70185 2362; 103.81809 9038; 104.14144 68369; 104.57615 10403; 104.89454 4785; 105.15672 4014299; 105.28953 191451; 105.30881 26798; 105.42823 8208; 105.80782 3274; 105.86198 2481436; 105.95013 5416; 105.9523 11717358; 106.12836 1777425; 106.17019 1080029; 106.41506 25181; 106.53261 4731443; 106.76194 1729643; 106.81699 54939; 107.16261 17549; 107.48685 682350; 107.72379 64028; 107.88313 76743; 108.27443 609; 108.52588 190755; 108.78956 1449; 108.7941 1141; 108.81176 27468; 108.81262 44108; 108.87572 27479; 108.91847 62723; 109.51181 4283556; 109.65191 65753; 110.16983 37338; 110.37721 476793; 110.5057 20602; 110.52864 140687; 110.53901 22671366; 110.74887 71327; 110.77812 510568; 110.89127 817376; 110.99159 47282; 111.04412 26475; 111.19446 1581390; 111.64516 141207; 111.6469 1832095; 111.82173 19768; 112.14547 47942; 112.49678 76369; 112.50496 67423; 112.90218 332006; 113.3152 52505; 113.40495 122643; 113.69958 656898; 113.71908 2105564; 113.89814 9141; 113.91953 6957930; 114.12247 6586942; 114.15277 62359; 114.17111 3766311; 114.19027 45459; 114.82233 1874079; 114.88322 395696; 115.11102 36063; 115.15121 3009619; 115.24451 177404; 115.35499 7955924; 115.41592 23244; 115.75675 37435; 115.86308 10985; 115.86944 1407403; 116.19596 7824085; 116.31599 4028003; 116.35921 119080; 116.3834 67748; 116.5672 77914; 116.75252 4608052; 116.91384 48518; 116.92927 14887; 116.94106 62660; 117.13334 1239231; 117.20837 192370; 117.46595 1015470; 117.60363 5438; 117.66927 1970341; 118.25157 90347; 118.41035 1625137; 118.68162 1066193; 118.80986 1763818; 118.87843 4785661; 118.88294 67114; 119.04694 79985; 119.1545 4677; 119.3244 2720576; 119.51536 20368; 119.72637 5021189; 119.83316 387461; 119.86958 67733; 119.94507 32012; 119.95579 2014064; 120.0614 18660; 120.14858 2384; 120.37248 64682; 120.50343 808745; 120.67242 22170; 120.98085 5921; 120.98884 4535219; 121.94436 38710; 121.95938 17020; 122.08329 9149; 122.2598 76031; 122.29517 45819; 122.90868 39554; 122.92401 8581; 123.04136 1988302; 123.29894 1076468; 123.42638 48898; 124.03028 39145; 124.04131 16690; 124.1293 4568797; 124.14971 55932; 124.42464 823; 124.43906 6366393; 124.52775 9660738; 124.86545 833707; 124.98415 565089; 125.28152 1541541; 125.39646 1562093; 125.42346 854756; 125.59066 5813; 125.79807 747; 126.28083 4849818; 126.43079 11088166; 126.64337 163351; 126.74418 2432; 127.1332 8671; 127.16308 4997065; 127.42372 51265; 127.68708 170738; 127.96642 1649074; 127.98039 1104495; 128.20975 3757918; 128.33254 54730; 128.36224 3457646; 128.44277 1136360; 128.73867 5787; 129.14239 125172; 129.26536 1963; 129.28106 33163; 129.42441 38359; 129.44738 141215; 129.46914 10057; 129.4829 53177; 130.0043 205789; 130.41758 1251895; 130.79094 61069; 131.16526 2757794; 132.0308 1412842; 132.05385 4820; 132.11521 899684; 132.15824 2483111; 132.18787 161336; 132.9285 16089475; 133.17626 562870; 133.1918 16620; 133.57354 4445; 133.69808 999057; 133.80055 5578; 134.0103 23514; 134.10979 182180; 134.12653 6945; 134.73246 10076; 135.13708 1012880; 135.209 921499; 135.42271 23569; 135.46927 4280720; 135.9481 2286650; 136.49603 150141; 136.59979 56086; 136.67671 510811; 136.91613 45062; 136.94915 41917; 136.95326 771139; 137.29089 28327; 137.68183 1899487; 137.8012 2147635; 137.80855 1976059; 137.9396 9262; 138.01428 67660; 138.47869 6291; 138.54248 2405544; 139.44593 4203; 139.62686 4885389; 139.65721 3198727; 139.79885 188246; 140.08589 75999; 140.3246 2915244; 140.33699 62926; 140.50852 61150; 140.67618 21949; 140.70523 917051; 140.92607 1597878; 140.93159 1947259; 141.27821 2012; 141.34092 7709781; 141.45439 3355894; 141.45537 3371511; 141.65452 65348; 141.66172 140167; 141.86558 850065; 141.94125 23711; 142.0315 252530; 142.11739 44949; 142.23085 1980628; 142.36886 28921; 142.40753 59844; 142.66046 4622; 142.71871 3237085; 142.74086 5278792; 142.92814 1576552; 143.21673 26663; 143.80086 76361; 143.92881 880650; 143.96032 61363; 143.96984 3427912; 144.35879 520278; 144.54405 351919; 144.90331 401561; 145.16411 20722; 145.36193 12022; 145.50775 151169; 145.53715 13241; 145.64081 41445; 145.6497 29225; 145.70777 11987204; 145.80985 417547; 146.06481 68122; 146.20644 7645; 146.35409 172208; 146.75573 1298219; 146.76192 129660; 147.27658 6140; 147.29225 30512; 147.57531 27706; 147.87124 894598; 148.03109 13964; 148.39397 2253497; 148.56531 73766; 148.71647 68041; 148.79139 1777649; 148.87819 20323; 148.95302 76490; 149.0676 65337; 149.13253 1924220; 149.14985 114622; 149.32021 4230985; 149.96212 46106; 150.03544 14373; 150.15314 992; 150.72794 44639; 151.30403 1107051; 151.34306 55284; 151.37312 556489; 151.49882 4992605; 151.91037 487969; 152.02144 171417; 152.15705 3213917; 152.52917 33579; 152.77018 34545; 152.90917 404902; 153.15543 6028415; 153.37393 171536; 153.57738 1786752; 154.35041 77538; 154.37821 199946; 154.40849 54995; 154.50249 3123; 154.6922 6402672; 154.96217 1678; 155.25402 34188; 155.78038 114740; 155.83027 968718; 155.87773 39373; 156.20834 41599; 156.34254 78182; 156.5677 5762609; 156.85321 71720; 156.99945 76942; 157.27387 10871133; 157.65137 17042; 157.67657 41128; 157.72624 175744; 157.90297 25444; 158.11078 1866265; 158.13343 33521; 158.16386 2831; 158.36859 973817; 158.7011 10714; 158.95892 3641066; 158.99057 65559; 159.28777 18183638; 159.49651 258531; 159.68455 4119407; 159.76097 75148; 159.89758 11822; 160.01677 245372; 160.87554 60981; 161.0027 1078776; 161.10514 73277; 161.50954 1742; 161.7156 172809; 161.72795 4379; 161.75507 150322; 161.84733 63370; 161.96174 594978; 162.18844 1927719; 162.1906 9757489; 162.36301 46865; 162.42261 1404759; 162.56269 8369764; 162.79611 1807; 162.98507 11656; 163.42152 1154; 163.43999 542361; 163.44489 25260; 163.51954 60247; 163.82404 698779; 163.84022 269667; 164.05032 7038229; 164.34011 796986; 164.81645 48977; 164.83841 12515; 164.94591 666333; 164.98054 136; 165.16317 59166; 165.29196 897194; 165.62154 9213; 165.79831 900235; 165.92466 2375663; 166.27653 1137061; 166.59504 5808364; 166.63452 46881; 166.73338 7359; 166.80694 193696; 167.11621 9447137; 167.13608 128866; 167.44501 22803; 167.4805 350509; 168.32536 1812513; 168.3548 4874010; 168.49986 99639; 168.80168 42819; 168.8806 732948; 169.39902 56163; 169.63172 65239; 169.68468 12002; 170.14164 78295; 170.37522 3928459; 170.53199 2218379; 170.79798 30078; 170.90213 13463; 170.95788 8378606; 170.98951 94531; 171.05276 34691; 171.05843 42649; 171.3125 44080; 171.59082 4621576; 172.3444 7585; 172.45331 2452545; 172.59596 2129758; 172.82269 15185; 173.03701 28562; 173.08278 114755; 173.19 11389; 173.21176 30212; 173.3815 4203; 173.44172 54716; 173.50066 107411; 173.65911 65543; 173.84673 119738; 173.98039 6386510; 174.04831 7598; 174.09762 98871; 174.69478 81970; 174.80556 1888293; 174.80807 2714796; 175.07809 63974; 175.14567 1407; 175.20222 762713; 175.31951 2836301; 175.35366 29433; 175.76826 78182; 176.0119 1920006; 176.07161 105412; 176.08419 25338219; 176.24044 27534; 176.31137 44885; 176.38091 62657; 176.54171 7001; 176.68017 1252107; 176.98107 10304; 177.04518 33438; 177.37106 1906; 177.39879 20474; 177.54914 35989; 177.63237 14406122; 177.80558 2909626; 178.52461 9855; 178.53224 66053; 178.55808 57654; 178.61903 95610; 178.85487 1161577; 178.95365 1734123; 179.12318 11808; 179.22055 279564; 179.32254 23779; 179.35887 2322752; 179.39078 176517; 179.40924 28933; 179.53407 1342; 179.55117 9754; 179.58221 5278; 179.70688 188882; 179.93462 34430; 180.11221 9101537; 180.28552 78; 180.4734 35586; 180.95307 14282; 181.05918 13254368; 181.44807 8133786; 181.84796 39863; 181.95161 40093; 182.13737 2694464; 182.36895 340851; 182.41263 42334; 182.56442 6548307; 182.94556 26828; 183.00988 610425; 183.3894 11980896; 183.4956 8965255; 183.50793 29447; 183.55604 6360; 183.56676 20661; 183.74117 1169399; 184.01043 22350; 184.15801 25034; 184.18664 8016; 184.32176 4378217; 184.34413 28561; 184.59293 186555; 185.07759 492; 185.45213 15146177; 186.65337 5608; 186.70075 23935; 186.86635 664379; 187.07385 62306; 187.22002 1933885; 187.42859 1513617; 187.52407 25346; 187.61097 3786939; 187.77382 44969; 187.84301 4408164; 188.19366 5033864; 188.22773 370822; 188.23451 147955; 188.33477 35732; 188.54069 3101; 188.56795 671104; 189.06641 1131382; 189.15869 147139; 189.46979 4421041; 189.55396 26138; 189.66662 1138063; 189.73134 2399316; 189.90192 73493; 189.93794 45137; 189.9483 155348; 190.11454 23686; 190.17333 181801; 190.50823 59046; 190.74827 15050; 190.82806 46633; 190.93571 24079; 191.26026 634550; 191.4169 5633724; 191.41821 36763; 191.48393 521447; 192.12626 29852; 192.13792 59663; 192.15168 77331; 192.3774 31761; 192.43059 9434; 192.68567 48392; 192.73219 85879; 192.75794 55889; 192.84286 9231; 192.84914 131557; 192.94613 17340; 193.02452 46607; 193.05021 2592315; 193.06302 9547293; 193.07498 3332058; 193.16392 14615011; 193.27641 199830; 193.47985 20076; 193.59723 9274011; 193.7346 53468; 193.83604 61360; 193.90335 29765025; 194.00666 6057106; 194.1373 31588; 194.35237 2413860; 194.49 18370; 194.57112 91762; 194.99518 2051655; 195.04812 762566; 195.20079 7883194; 195.29162 3801418; 195.60196 140648; 196.09837 4069751; 196.11775 871601; 196.13504 7589; 196.27944 5425; 196.28526 49249; 196.56307 39619; 196.71245 77477; 196.71544 39031; 196.75958 46641; 197.01956 21078; 197.03447 782799; 197.35623 45116; 197.52805 27576518; 197.62908 68953; 197.69301 1555614; 197.70789 8980; 197.79103 3089490; 198.06152 10201064; 198.36262 155464; 198.47116 64911; 199.20205 1075932; 199.46643 51705; 199.53567 60480; 199.76963 162733; 199.88401 581; 199.93599 11763; 200.08189 5014; 200.22754 1945353; 200.26784 8378; 200.5351 3933371; 200.77684 63921; 201.00604 1061194; 201.02792 6377; 201.04534 102034; 201.24621 6784; 201.27357 24988042; 201.41643 128488; 201.52906 138878; 201.64814 100215; 202.20496 406492; 202.26628 22652; 202.55376 6605; 202.56574 21661; 202.89592 56510; 202.94755 118148; 203.36417 3672007; 203.69544 1887345; 203.71315 69378; 204.00952 4514762; 204.49672 59212; 204.71822 14842; 204.87827 27513; 204.97533 41481; 205.26759 6673603; 205.703 35591; 206.45053 12531; 206.47595 128685; 206.82462 41735; 207.22163 1151421; 207.489 6072; 207.50963 523146; 207.52428 9904; 207.68948 778873; 207.71184 23328; 207.79953 5248683; 207.83586 20605; 207.86635 79482; 207.87334 38125; 208.48265 8849; 208.52526 2766; 208.58518 2792; 208.63669 51825; 208.67895 565968; 208.69446 7467571; 209.06138 28601; 209.18846 78688; 209.20651 29564; 209.40993 1010; 209.61144 45829; 209.82793 61215; 210.03514 1694971; 210.04238 24208; 210.55202 65234; 210.86047 273898; 211.04121 1400240; 211.13018 22351; 211.26855 9685771; 211.8806 1056; 212.54674 579867; 212.85239 30946; 212.87125 135125; 213.48594 4590113; 213.72406 23543; 214.04416 185879; 214.15507 10435; 214.18479 1110096; 214.23814 20616; 214.26333 13673; 214.44145 61774; 214.46425 1630648; 214.53797 5303; 214.75522 8862; 214.90356 18815435; 215.16069 2555; 215.16299 164877; 215.1687 527218; 215.4151 110325; 215.57367 7955; 215.8004 1657952; 215.8074 289747; 215.89843 1153; 216.05071 1197854; 216.18613 10581; 216.59043 6398; 216.61112 1623856; 216.90629 1162878; 216.97489 227706; 217.02925 5127753; 217.24762 483102; 217.33022 141993; 217.5512 44714; 217.69839 45737; 217.90092 24172; 217.92028 25764; 217.94243 95119; 217.96408 19075; 218.17594 6938504; 218.20794 5071014; 218.31034 61166; 218.41959 96529; 218.43887 6094629; 218.64462 416012; 218.73063 9060838; 218.73476 1549; 218.75953 3056869; 218.84989 8613523; 219.1394 8052265; 219.22873 78933; 219.25747 3532398; 219.65748 152852; 219.81872 2297; 220.30165 4359698; 220.89036 27191; 220.94453 700249; 221.34976 49462; 221.36989 6195; 221.53008 703052; 222.07277 146143; 222.33166 4864125; 222.50387 7980136; 222.76343 39279; 222.89757 8037; 223.02826 4043740; 223.23954 8016; 223.33501 6851; 223.37678 64751; 223.49471 47409; 223.6345 63948; 223.78148 853273; 223.87637 786152; 223.89275 577704; 223.99934 3700845; 224.58554 4449; 224.62122 73138; 224.77579 52959; 224.83755 393908; 225.19267 4980115; 226.16699 1855162; 226.41742 3875873; 226.73455 2778977; 226.75404 3794822; 226.95646 51281; 226.99258 8722622; 227.17331 299463; 227.62351 6405062; 227.77982 32638; 227.88963 4627; 227.97785 6880; 228.20245 22991; 228.34291 77501; 229.01362 47650; 229.09265 51784; 229.14265 2681596; 229.27794 27991; 229.43506 955876; 229.57585 546245; 229.8577 57037; 230.24935 56036; 230.63475 854765; 230.87137 984265; 230.91537 59905; 231.12635 743838; 231.23364 51218; 231.34113 40752; 231.41256 3115; 231.51701 2824; 231.97931 1918503; 232.02235 27763000; 232.04761 11057; 232.6775 4317261; 232.78321 446847; 232.89744 1785474; 232.90744 3073; 233.08346 63774; 233.18133 2636399; 233.18826 44705; 233.31093 3535; 233.39193 329077; 233.67344 14450552; 233.72077 72039; 233.9337 1127412; 234.06002 3575465; 234.11341 60254; 234.12206 680376; 234.16489 5476; 234.19338 2053347; 234.22324 188720; 234.31749 54620; 234.35108 53629; 234.57374 136721; 234.66388 2903112; 235.03622 24546; 235.07544 2337700; 235.09534 28001; 235.17163 9502290; 235.30099 1616995; 236.21686 271307; 236.26302 1420924; 236.29552 73341; 236.3236 36101; 236.46288 3159054; 236.66066 8700732; 236.6773 144822; 236.71994 62123; 236.89759 1051; 237.17884 21339; 237.2197 309001; 237.38478 1475385; 237.55464 7376738; 237.85736 216621; 237.89842 23576; 237.98912 55920; 238.29421 7353507; 238.30363 77741; 238.51138 2080; 238.63575 21602; 238.64053 46111; 238.64426 1606780; 238.66317 207269; 238.77086 539032; 238.85647 7185702; 238.98237 24392; 239.0702 751805; 239.08902 4257708; 239.19219 4845516; 239.7374 4667917; 240.01478 49384; 240.46932 1765621; 240.51307 29888; 240.98488 133500; 241.40952 60922; 241.50391 39169; 241.59508 50473; 242.0781 110143; 242.3452 547488; 242.52598 3024533; 242.60226 8210; 242.74375 1947174; 242.796 54473; 242.80407 3497157; 242.87567 9159; 242.9004 24793; 243.25786 51579; 243.3146 77107; 243.69701 3022366; 243.9198 841740; 244.08999 4101859; 244.17509 7049; 244.67893 1973193; 244.92082 3845589; 244.93141 27938; 245.11192 7427; 245.43586 22904; 245.50884 52792; 246.1558 63545; 246.15885 69376; 246.37284 3782; 246.54846 22448455; 246.68394 25829; 246.73346 5512631; 246.7399 46598; 246.86115 65657; 247.03578 178405; 247.16611 9859; 247.31527 69844; 247.54914 1625167; 247.87336 7035; 247.96143 1994135; 247.96715 9000064; 247.98282 8849; 248.189 4103; 248.2581 7654; 248.26055 248031; 248.28999 1290527; 248.38411 34559; 248.63627 3328043; 248.69989 1750371; 248.80178 7944482; 248.83589 260206; 249.0033 4857; 249.14217 58471; 249.16372 54543; 249.30481 43069; 249.80209 1806456; 249.85962 24259; 249.89972 31348; 250.38248 558; 250.49284 249017; 250.58188 9703; 251.05277 64509; 251.38924 48060; 251.90673 24740236; 252.34905 90459; 252.66736 661799; 252.82072 4566433; 252.88294 37; 253.02597 1696348; 253.07648 66495; 253.17355 66821; 253.82558 603395; 253.95714 8874; 254.0116 148763; 254.24383 39799; 254.90307 1007899; 254.97485 4894; 255.04454 215670; 255.36552 48087; 255.85989 77102; 255.90522 4579145; 255.92768 55387; 256.00706 57139; 256.06038 8365; 256.38169 5665; 256.80854 1234079; 257.1653 1474156; 257.16769 2321428; 257.22149 305752; 257.22487 1735829; 257.52735 14401231; 257.58639 3674462; 257.64987 38034; 258.1051 37162; 258.2547 20502; 258.43077 6437; 258.45311 69499; 258.51013 73657; 258.55548 4681404; 258.80705 1794652; 258.86395 4478; 258.8695 33548; 258.88059 1502090; 259.06343 9166252; 259.16524 1958148; 259.22055 67127; 259.38431 136070; 259.42002 3155688; 259.4683 1553582; 259.59748 1436838; 259.7405 6503; 259.79151 8298815; 259.84208 13953; 259.85418 917680; 259.96193 180751; 260.13004 35563; 260.41108 2133841; 260.42133 869809; 261.43236 79443; 261.48266 417556; 261.58696 84110; 261.62669 175255; 261.69227 79473; 261.71905 394249; 262.00721 12942430; 262.66325 37735; 262.7616 409721; 263.06241 607252; 263.51093 1825723; 263.54725 953709; 263.73154 8760993; 264.11964 39640; 264.13957 1693067; 264.15031 930737; 264.18576 70626; 264.36531 1936789; 264.74027 44429; 264.89991 108273; 264.95731 56056; 265.00593 37836; 265.20816 4736938; 265.28466 29819; 265.46064 6394; 265.66359 74186; 265.6727 128; 265.67445 139980; 265.97773 22322; 266.24555 73237; 266.28517 171893; 266.4906 1802; 266.50932 786181; 266.74717 178352; 266.80289 37672; 266.8548 66399; 266.91208 21710; 267.14613 682109; 267.62965 71504; 267.65056 6233075; 268.07432 4526043; 268.21212 2525; 268.33165 5997; 268.37661 35223; 268.54073 156813; 268.75981 75471; 268.76603 927470; 268.80966 31914; 268.94665 302165; 269.01701 1259531; 269.04607 10557; 269.17952 6125448; 269.21256 98811; 269.28724 16241; 269.47424 7543; 269.55703 1953622; 269.68717 3656053; 269.9058 664; 269.91998 3205866; 270.18291 7394; 270.35816 1186827; 270.57685 1716; 270.65793 12866; 270.68419 9315; 270.69879 9241929; 270.74862 961; 270.86786 15351; 271.29911 22307353; 272.14057 371760; 272.48077 792010; 272.86826 4749; 272.94857 4788211; 273.30002 31743; 273.43872 967; 273.51889 418097; 273.93296 3640; 274.26576 1150051; 274.77494 1222432; 274.83513 25741; 274.87836 13629; 275.01735 3380586; 275.11451 3259427; 275.16769 49922; 275.32859 928603; 275.39166 294250; 275.56416 7597; 275.57331 2114737; 275.63826 8142980; 275.67283 74344; 275.99817 2928740; 276.36652 4675749; 276.36689 21603; 276.76536 4276760; 276.78432 952926; 276.91382 52786; 277.0642 328696; 277.20228 8058172; 277.3206 29257; 277.50529 16360; 277.55061 181917; 277.68071 1284874; 277.9499 878819; 278.11315 62731; 278.37107 1557358; 278.38084 3159; 278.62658 2144628; 278.78132 1022583; 278.94027 144719; 279.06203 2727; 279.27316 502; 279.38846 26127; 279.51177 45627; 279.61188 13017; 279.83578 31262; 280.0051 280102; 280.07864 50420; 280.14753 4787259; 280.3311 582461; 280.47507 74488; 280.58826 34201; 281.02807 22501; 281.15251 3682704; 281.1748 11299720; 281.26852 4587537; 281.27964 952600; 282.24941 71001; 282.26683 74259; 282.31773 29874; 282.32298 711323; 282.33087 42192; 282.35298 7043; 282.6957 4036063; 282.71977 149364; 282.74451 8297; 282.78186 49686; 282.938 1369290; 282.97838 4968529; 283.03133 2358; 283.43065 1645641; 283.55169 73905; 283.61212 26336; 283.9242 592174; 283.94536 25149; 284.00812 20082; 284.11141 646922; 284.41486 7545; 284.91387 28805; 284.91923 18747; 285.07783 985043; 285.35588 4481; 285.42337 67036; 285.45637 26625; 285.56093 20231; 285.96383 584063; 286.00564 19553; 286.29709 607792; 286.46094 7312040; 286.71694 24143; 286.80256 172435; 287.49525 28650; 287.57141 24045; 287.73964 25502; 287.74853 1079284; 287.82302 2410475; 288.10104 920231; 288.29961 35665; 288.51592 10348; 288.78622 28727; 288.98575 122401; 289.02509 52140; 289.1267 1755504; 289.45017 193086; 289.76078 1498207; 289.81154 3911694; 289.9205 44137; 289.92569 7621; 289.93684 15998; 290.07788 7864; 290.27309 69748; 290.72054 4403650; 290.81008 9445; 291.21232 755795; 291.26835 8760561; 291.30121 4445; 291.58942 494444; 291.66191 1698994; 291.70204 165780; 292.06942 7654335; 292.20318 31600; 292.264 4170136; 292.75447 8910038; 292.88032 70277; 292.98328 9486420; 293.28205 3896934; 293.55355 40335; 293.55389 66168; 293.62448 4054542; 293.70304 24129; 293.75041 1001; 293.811 5077; 293.86031 50731; 293.92802 5847; 294.02584 17921; 294.12889 8057372; 294.13894 12169; 294.25385 8472294; 294.57066 3550; 294.66517 49014; 294.67565 8799; 295.09036 8794965; 295.11349 11667; 295.13823 23084; 295.21154 1181883; 295.91331 3380220; 295.99845 3680406; 296.17174 4100971; 296.21227 45085; 296.21839 886558; 296.87298 11552; 296.95276 73827; 297.03093 9361; 297.38605 10052; 297.51373 79486; 297.6877 34425; 297.82289 25547; 297.82752 20854; 297.91422 22940; 298.30762 2497828; 298.31034 74063; 298.62574 25623; 299.01055 985349; 299.03865 2380; 299.18353 17763; 299.21174 5409069; 299.23512 1796950; 299.39164 10859; 299.61874 6902; 299.73475 194460; 299.78069 16435; 299.85989 914070; 299.86113 1969631; 300.05913 23856; 300.22555 376053; 300.49681 378714; 300.581 522; 300.63443 3188426; 300.64201 4727225; 300.70991 1209635; 300.73092 4886; 300.87673 10400810; 300.94348 24947; 300.99054 12005; 301.17167 1741057; 301.32291 22858495; 301.35073 38930; 301.49663 1908; 301.71787 1376; 301.7318 1368405; 301.79127 75629; 301.87103 1562388; 302.02392 1545969; 302.05217 1233703; 302.091 4082; 302.31698 963562; 302.44354 1261; 302.4624 115544; 302.51626 45841; 302.54873 9122823; 302.64356 9584; 303.09049 2193039; 303.39285 75806; 303.50606 359658; 304.39832 4558899; 304.39944 6548888; 304.41369 59941; 304.46566 31852; 304.52431 23182599; 304.57204 30586; 304.63316 17765; 304.83068 3097; 305.52471 25253; 306.0094 6994540; 306.4953 6912; 306.88748 935; 307.08254 23923; 307.17929 21913; 307.39153 3042243; 307.4603 64231; 307.46452 23279; 307.46988 6884; 308.53354 3814; 308.71262 1962046; 309.09757 76671; 309.63269 447715; 309.78153 8262; 309.93112 32597; 309.93836 27892; 310.51712 2013235; 310.7818 101154; 310.86164 75457; 310.88041 1474773; 310.89199 113389; 310.9022 3528298; 310.92539 44946; 310.97519 14682360; 311.45406 4374267; 311.7926 26514; 311.99743 1153557; 312.67465 2028; 312.74556 1670433; 312.79663 3948702; 313.02576 23578; 313.04333 8385157; 313.47653 177357; 313.47774 3745609; 313.57988 16046; 314.36799 1540070; 314.47226 2488082; 314.87905 41447; 315.08516 7443947; 315.13526 13114; 315.34967 375702; 315.80853 3432747; 316.09481 666051; 316.22147 51820; 316.26994 8105; 316.42764 834982; 316.60758 4630335; 316.7149 3212209; 316.97354 8374841; 316.98406 2999656; 317.07814 807761; 317.16116 35555; 317.32227 44352; 317.37661 371; 317.70729 712170; 317.79463 1247938; 317.79653 3510968; 318.04087 17521; 318.14876 2501472; 318.30606 62687; 318.34391 1407; 318.50787 35772; 318.60746 1593164; 318.70471 12196; 318.81702 8101244; 318.9333 7397; 318.96328 7382; 319.18287 196950; 319.25511 3074; 319.65074 9084163; 319.81341 9331151; 320.17975 1659148; 320.36246 1690800; 320.42282 21194; 320.72508 1162467; 320.82488 9478; 320.88542 27851; 321.10277 1119289; 321.98394 4032; 322.04664 61895; 322.15337 23403; 322.20012 7226909; 322.21506 36145; 322.53499 9363141; 322.64863 56818; 322.74174 9422; 322.81901 42592; 322.84802 335822; 323.08531 852116; 323.12088 73681; 323.58645 7079785; 323.58781 26546; 323.73053 690539; 324.05073 4062; 324.54117 42448; 324.55527 757315; 324.65959 22161; 324.69979 3237; 325.05998 170206; 325.19682 4782; 325.3656 2342945; 325.46238 50782; 325.71046 2697716; 325.77323 37235; 326.0339 64180; 326.09247 14365; 326.16038 8093507; 326.27663 1991713; 326.87504 977242; 327.17093 818031; 328.45894 78967; 328.55194 54142; 328.85608 5511; 329.30637 32136; 329.4007 28091641; 329.4077 1656181; 329.44646 6410495; 329.68136 207242; 329.7247 28409; 329.91952 4438514; 330.16988 269; 330.18897 2384724; 330.2439 28243; 330.75691 198720; 330.79338 8413828; 330.95321 4388629; 330.983 2222; 331.01223 50448; 331.01451 1595058; 331.11249 2677263; 331.20648 5650; 331.43233 26921; 331.6002 9546; 331.60671 681; 331.62824 22517; 331.73345 1490423; 331.7631 23669899; 331.90411 719162; 332.15286 41062; 332.33897 41162; 332.3597 4707202; 332.48864 11951; 332.5357 54617; 332.66871 72997; 332.94858 71752; 333.13541 29889; 333.18183 159427; 333.22669 1264830; 333.40096 28715; 333.47101 38022; 333.47346 890781; 333.60896 64015; 333.67165 10132; 333.71237 6451; 333.85573 26974; 333.994 375674; 334.18075 3368740; 334.25512 35599; 334.56173 176354; 334.60229 18634; 334.63427 2314; 334.77334 857475; 334.86427 269769; 334.9081 55396; 334.97811 4104046; 335.24859 2815; 335.41304 9382; 335.5575 737; 335.87011 3390309; 335.90283 2473633; 336.10039 3041673; 336.15003 4651; 336.19439 49050; 336.62863 27112435; 337.10396 41765; 337.24013 8563924; 337.24415 27009; 337.26185 6969012; 337.65934 45222; 338.35161 44914; 338.35552 29526; 338.38136 1822672; 338.85174 7622; 338.86539 77854; 339.6519 1051560; 339.74046 77467; 339.85237 14090; 340.05791 67605; 340.31996 4220; 340.47418 61199; 340.53524 7197; 341.04314 611588; 341.06608 38952; 341.06998 17446; 341.36437 128723; 341.83863 468506; 341.89582 402058; 342.2123 67569; 342.2711 5758161; 342.31114 73510; 342.39604 9889534; 342.95169 729620; 342.99353 44406; 343.02385 9707; 343.07456 16012; 343.19113 1177724; 343.48479 38744; 343.56483 9304388; 343.79531 2824; 344.13098 25319; 344.16427 27153; 344.16777 1666131; 344.23123 47495; 344.6438 1396819; 345.22596 1060847; 345.23029 5386; 345.69845 910479; 345.84073 1793836; 345.96226 686461; 346.08036 13805; 346.27732 755953; 346.29798 4180882; 346.54186 4115340; 346.75297 45624; 346.81816 16778899; 346.9916 45302; 347.76538 55258; 347.98077 4024928; 348.45171 46310; 348.47231 7843025; 348.70617 66998; 348.89088 761773; 349.20711 742693; 349.28913 2408; 349.37585 683140; 349.78026 58774; 349.8834 7948; 349.89795 10406; 350.10097 6752120; 350.20903 154797; 350.22799 26745; 350.27509 270668; 350.31363 4151343; 350.7717 1319187; 351.02741 675979; 351.39083 6466335; 351.70881 1055766; 351.82494 16411900; 352.02094 55630; 352.84961 5053; 353.37547 164288; 353.37761 4774410; 353.41835 867182; 353.46571 9670882; 353.79161 144269; 354.13415 44125; 354.20896 2566; 354.53163 461433; 354.79277 1764848; 355.00611 6269; 355.11791 303247; 355.26134 790154; 355.44611 60365; 355.85297 495; 356.4187 858; 356.50574 7445; 356.54572 29812; 356.62507 1142942; 357.62381 2625449; 357.88699 61653; 357.94026 26470; 357.94279 4280; 357.98952 13574; 358.67141 29021; 359.20735 63515; 359.30333 12913642; 359.90796 66571; 360.14317 95432; 360.18402 16847; 360.35288 5157052; 360.49081 4557; 360.7138 3984373; 360.85724 12321; 361.04477 50338; 361.23034 24051877; 361.2388 17724; 361.38972 3985185; 361.39663 537318; 361.45194 4137; 361.50069 4995515; 361.58305 6411235; 361.71447 37794; 361.76635 7254574; 361.99943 1250839; 362.08387 42918; 362.13273 2169332; 362.41204 38849; 362.47981 72262; 362.51884 3676405; 362.83818 1324314; 362.86404 61364; 363.04097 572676; 363.0707 4095; 363.32825 2272; 363.33454 42781; 363.38651 1852993; 363.57603 27278; 363.5827 45168; 363.61565 4530007; 363.71302 2640455; 363.91937 1559961; 364.10384 12218; 364.14663 24261; 364.36027 1528668; 364.38691 3170; 364.86252 26949; 364.93043 27451; 365.11142 9816251; 365.69205 5606; 365.80673 21995; 365.95637 66206; 366.18504 30034; 366.30251 9204; 366.31274 5516; 366.36319 40571; 366.58882 49251; 366.68019 2195577; 366.89521 50304; 366.97475 71496; 367.02107 13101; 367.04843 32736; 367.31164 37784; 367.33523 27583675; 367.38964 1301; 367.6448 375960; 367.83851 995023; 368.16212 28670; 368.19461 66088; 368.20479 25711; 368.30051 738931; 368.53439 59018; 368.6552 47742; 368.84155 162827; 368.85786 27337; 368.86802 3958; 368.92864 1101356; 369.4932 144361; 369.51647 47228; 369.90542 4901159; 370.10985 17385; 370.15076 14687739; 370.18002 208288; 370.3512 622; 370.36444 2681981; 370.38123 2784524; 370.58245 3493; 370.74695 29576; 370.82039 21868; 371.14721 2254799; 371.50969 824562; 371.71523 1056241; 371.84446 1982898; 371.86205 64564; 372.17561 15719; 372.24562 107318; 372.39299 15069; 372.41746 700623; 372.52227 1069025; 372.56415 31195; 372.65985 39421; 372.70462 3782717; 372.86164 5773; 372.9216 4043584; 373.16227 44932; 373.28281 3847871; 373.40782 14244; 373.54467 1630698; 373.69094 40007; 373.96275 11544; 373.97739 35296; 374.11309 5314657; 374.23713 20589; 374.25531 30597; 374.42161 75036; 374.52267 56906; 374.70859 785761; 374.9276 165111; 375.06795 1156; 375.1037 5139085; 375.48692 19013; 375.95084 1414; 376.03634 51475; 376.08304 67381; 376.27539 4690420; 376.34623 377630; 376.49849 27125; 376.54753 29538; 376.89875 1986; 377.00728 84148; 377.07347 318879; 377.13556 2568835; 377.23322 9145020; 377.35644 1689100; 377.40109 2428; 377.5082 2816; 377.94469 5221432; 378.2276 190087; 378.98469 7899399; 379.16161 7012; 379.16363 3172659; 379.27231 580; 379.31186 391262; 379.4382 7161122; 379.58478 6714677; 379.69808 60263; 379.96095 13090; 380.00168 157434; 380.08664 38639; 380.08718 23167; 380.2927 29204700; 380.53295 446211; 380.60231 15759001; 380.65883 498; 380.85421 68709; 381.06963 1938211; 381.4512 1005864; 381.74468 14818719; 381.7472 1810691; 381.83571 1446861; 381.97474 21456; 382.03475 26564; 382.25412 4754796; 382.76152 29190; 383.47428 29305362; 383.5481 5226; 383.72129 294735; 383.94526 1362291; 384.12465 1907387; 384.23189 14466; 384.375 1821251; 384.50001 54342; 384.71035 6936966; 385.0074 198937; 385.09519 2503; 385.66156 2878366; 385.88228 984014; 385.88978 113571; 385.89105 4690833; 385.89191 170124; 386.33261 3424; 386.48835 165599; 386.5828 1643880; 386.63961 6221284; 386.65772 6822; 386.80088 7161; 387.04459 1460416; 387.24542 47454; 387.6105 1786520; 387.64768 8639714; 387.86281 893608; 388.48934 74269; 388.7649 4161; 388.8118 3074792; 389.17875 3921925; 389.21423 595161; 389.24511 53785; 389.38713 67917; 389.66016 1063093; 389.75858 176626; 389.87058 9433; 390.01407 15031; 390.08066 9116; 390.18969 11111; 390.52789 3148; 390.71107 862917; 391.3425 59705; 391.42815 320745; 391.58175 57828; 391.66601 1967648; 391.74743 1560672; 391.78659 41558; 391.8178 45554; 391.88559 3803322; 391.88612 79768; 391.97741 3644016; 392.05278 26077; 392.59389 17910; 393.07785 68661; 393.41454 324028; 393.56453 77514; 393.60758 29383; 394.05303 6434041; 394.21502 115626; 394.4221 4982; 394.48583 27123; 395.0693 75107; 395.25629 796599; 395.39772 8679; 395.46794 19880145; 395.50636 145650; 395.6443 9956; 395.77126 166107; 395.7949 4660; 395.99798 2531667; 396.09507 65128; 396.15106 5457799; 396.20408 17152; 396.41619 845754; 396.62291 836449; 396.73881 1486; 396.84324 1767398; 397.16899 28932; 397.32708 2688; 397.4783 18619; 397.53378 44242; 397.56662 3285742; 397.60269 61410; 397.7232 1431078; 397.97836 9605; 398.40242 57720; 398.69338 36196; 398.78185 769249; 398.94654 7343204; 399.06961 3223278; 399.17073 125427; 399.42266 758023; 399.43741 2523568; 399.54716 33498; 399.69424 3759754; 399.69626 1823399; 399.79037 25479; 399.86697 25942; 400.09463 16823; 400.21036 1694115; 400.2265 19333315; 400.41138 342090; 400.59434 36693; 400.82356 1676035; 400.86328 86771; 400.98479 8987; 401.03504 35251; 401.22869 1067628; 401.3494 12078; 401.43184 54717; 401.52732 26439; 401.76027 455293; 401.91786 351087; 402.04331 19711230; 402.12004 2430; 402.26954 18361; 402.28151 20243; 402.6709 8830; 402.87945 8766; 402.99209 8352746; 403.10963 8423; 403.41067 11728; 403.59094 15521; 403.67115 487898; 403.95415 29397; 404.37771 160182; 404.3949 60087; 404.58025 3224611; 404.82052 25665; 404.92489 25250837; 405.2441 65853; 405.35252 963206; 406.0997 43447; 406.30538 36296; 406.49265 1074946; 406.56457 15107; 406.78291 398313; 406.79608 159787; 406.8416 25455; 407.00198 18714; 407.43744 324055; 407.65074 747621; 407.90873 3338; 407.96869 21291; 408.03037 67493; 408.71773 582054; 408.71967 2332; 408.89042 4827295; 408.89825 83004; 409.10104 1858856; 409.2191 485397; 409.46698 3592030; 409.55881 1818718; 409.89657 1333866; 409.93712 1803270; 410.06808 6864559; 410.10638 22205; 410.21206 1358886; 410.26804 8290653; 410.471 8535; 410.47387 28235; 410.59632 5435; 410.60989 128782; 410.73497 1674627; 410.97381 37585; 410.97616 11558; 411.05888 140704; 411.09302 8702; 411.20211 2702; 411.44528 1964874; 411.45046 52082; 411.71818 960414; 411.74302 4591109; 411.86472 37914; 411.89591 16699; 412.16218 45005; 412.31958 9148; 412.39131 2190501; 412.69127 39343; 412.72854 23573; 412.77112 53037; 412.78927 91890; 412.79608 481579; 412.84573 39200; 413.02127 78532; 413.21078 198502; 413.24576 7083312; 413.39808 4790054; 413.41388 14320; 414.12981 9894205; 414.15571 4477142; 414.58802 914; 414.74573 1653656; 414.92396 72481; 414.96395 665918; 415.0139 9227309; 415.33762 60994; 415.3917 4097478; 415.46438 28509; 415.7528 74474; 415.79528 1277145; 415.80897 32802; 416.06936 77598; 416.1676 9585; 416.31687 67546; 416.39539 1187487; 416.83761 34524; 416.86241 7317426; 416.92857 24826; 416.93307 954876; 417.06078 3883771; 417.09577 316331; 417.1919 40814; 417.20189 1266328; 417.36933 11212; 417.62983 182255; 417.64128 30731; 417.76418 2277; 417.77311 464290; 418.08687 21305; 418.46679 30683; 418.48852 22166; 418.58709 140294; 418.8014 1897640; 419.04331 62415; 419.10604 9996836; 419.48414 912632; 419.5281 29099; 419.62069 1627118; 419.653 118169; 419.7232 1077; 419.87664 53; 420.52267 1812845; 420.82292 9251; 420.84782 1027039; 421.00938 8252350; 421.04858 1218052; 421.36705 70862; 422.05599 18055131; 422.20613 4208792; 422.28899 1387; 422.38691 6861375; 422.44807 8048; 423.22764 5068925; 423.25078 22913; 423.66656 31193; 423.84651 266593; 423.89441 29565; 423.97029 4745; 424.29791 48985; 424.44524 1384; 424.51133 29795; 424.54669 23932; 424.69292 4758675; 424.70561 5432885; 425.04004 9127; 425.10591 3848; 425.21217 1004981; 425.27016 5993104; 425.38553 9456619; 425.41002 21850; 425.73135 72993; 425.77191 27275; 425.77988 13605; 426.03888 703678; 426.05126 1553837; 426.67516 1801718; 426.97803 6419768; 427.5926 402733; 427.63866 6332701; 427.695 1598943; 427.69861 1634121; 427.7607 79498; 427.8584 42641; 428.20904 2953; 428.2498 649763; 428.41828 101316; 428.58811 68984; 428.61066 1699344; 428.61295 3306827; 428.86064 22167; 429.33174 69973; 429.72066 3088505; 429.75769 71798; 429.76247 9454; 429.84775 5895; 429.97655 3001; 430.05714 22315; 430.09015 15717; 430.64793 5110; 430.93856 41313; 431.3288 3550079; 431.71474 28189; 431.74541 5930085; 431.74808 4901714; 431.78938 192438; 432.06607 22198; 432.24336 459074; 432.66975 6995767; 432.76238 18352; 432.8115 48197; 433.12404 37937; 433.23987 2102065; 433.30889 5042391; 433.35842 4814983; 433.5368 8113133; 433.68943 53982; 433.77795 10089; 434.00404 20802; 434.29048 7610; 434.32026 922179; 434.52887 159483; 434.63338 8724434; 434.67729 4481525; 434.7949 75699; 435.22767 1582499; 435.66357 23491; 435.82496 80533; 435.83667 14279; 436.03744 10026; 436.26064 86507; 436.30644 42662; 436.46345 1685123; 436.46483 205628; 436.55585 14486496; 436.5666 26832; 436.61441 28293; 436.85295 4290791; 436.86464 493747; 436.86586 94585; 436.88716 30269; 437.24549 3705566; 437.66692 536119; 437.68348 4336896; 437.76089 21774; 437.76482 3245647; 437.83047 2056896; 438.32279 24055; 438.34157 1378578; 438.59289 126373; 438.84935 4373590; 438.98333 1656342; 439.15461 6402911; 439.36881 8206563; 439.57526 24097; 439.5903 53454; 439.94801 311688; 440.21807 23063; 440.42094 24814; 440.65244 151; 440.74283 1546058; 441.07044 3109856; 441.11087 9607853; 441.41834 709474; 441.54147 30474; 441.85336 13578901; 441.91138 1709971; 442.94507 19139; 443.21707 94356; 443.3164 123902; 443.39988 99148; 443.68445 59148; 443.76333 118135; 443.96668 27420; 444.22059 78029; 444.53247 8322794; 444.62355 22226; 444.66583 2449843; 445.33545 26777; 445.35702 740982; 445.45069 11658; 445.7428 22894; 446.03201 1932126; 446.60699 4226; 446.73889 2966; 446.88518 9179; 447.00065 2251; 447.8702 6669; 447.93382 8481264; 447.99457 573594; 448.10042 70560; 448.19342 1091004; 448.31679 1926159; 448.41369 33171; 448.49568 3804218; 448.60979 642090; 448.61505 241294; 448.66412 1013786; 449.16085 2943; 449.17978 6664342; 449.20342 7416; 449.66008 41289; 449.78811 3473201; 449.79716 3205; 449.86704 111751; 449.87513 5971; 450.27297 5170214; 450.36229 1310291; 450.43008 375; 450.48403 32784; 450.55253 23980096; 450.96375 4031542; 451.0168 125153; 451.54636 17296960; 451.59505 518; 451.96652 2918; 451.98354 50580; 452.92198 91302; 453.00437 9838; 453.17132 99619; 453.73694 12164; 453.78897 17762; 453.93869 784; 454.20239 72087; 454.61095 49787; 454.72643 32999; 455.12592 76743; 455.15654 65034; 455.2006 2453841; 455.35623 26220; 455.50264 17146; 455.53742 1667687; 455.55126 1786214; 455.73453 9167; 456.01933 53126; 456.18303 67012; 456.26102 693; 456.92792 45754; 456.96827 6193; 457.004 299035; 457.00899 178584; 457.22667 21436; 457.42997 49306; 457.69671 49306; 458.07823 81590; 458.51224 98090; 458.68551 6332354; 458.78892 112663; 458.95472 7612; 459.16438 1535; 459.28818 42099; 459.28827 22998718; 459.39594 21083; 459.62637 102492; 459.936 10693721; 459.94677 3824; 459.9495 1175252; 460.28541 49803; 460.4096 25052; 460.49399 7201; 460.75492 18392779; 460.81428 54145; 461.20782 9560; 461.22974 4360414; 461.50112 27481; 461.55545 28933; 461.63948 34437; 461.96459 13529; 462.05829 14901; 462.13547 32838; 462.28259 18024; 462.33316 57851; 462.34382 1513571; 463.10488 4562225; 463.34251 9238; 463.41178 9382082; 463.52842 6079446; 463.53229 655811; 463.56567 2895843; 463.87269 156049; 463.93385 812535; 464.05335 63340; 464.49864 883601; 464.50369 5455; 464.68817 71811; 464.99551 20448; 465.03702 65614; 465.17496 59481; 465.19705 9180; 465.31354 71850; 465.32832 4856; 465.41169 23512286; 465.47379 25966; 465.58587 6874002; 465.74697 4243522; 465.84281 55444; 465.91526 7700531; 465.96315 925468; 466.14084 221785; 466.22953 65630; 466.30134 5714; 466.87703 2678310; 467.20461 369719; 467.50493 1595942; 467.57675 125835; 467.84372 26757; 468.24588 78077; 468.56141 7123792; 468.94529 46744; 468.9518 2364; 469.02056 663711; 469.0574 71540; 469.06655 26764799; 469.09967 489504; 469.49563 29625431; 469.56247 272462; 469.75123 84621; 469.77991 9414; 470.03982 498; 470.28707 158448; 470.47779 63257; 470.52716 6265835; 470.79846 28183; 470.93114 541; 471.09679 50639; 471.19415 7601; 471.2469 2205292; 471.27672 22963; 471.4861 43636; 471.49572 31669; 471.53105 31698; 471.58034 64085; 471.67627 43034; 471.80844 45862; 471.96324 4637543; 472.17681 13881; 472.23982 4399828; 472.32631 4300533; 472.56422 6072; 472.62103 1814869; 472.68346 43130; 472.77767 3212570; 472.80102 1617521; 472.89205 2218395; 473.43471 13424; 473.45436 4684166; 473.47721 16943; 473.61119 3272102; 474.31924 204787; 474.98174 44527; 475.82442 476193; 475.85654 11097; 475.93801 9036019; 476.0731 146329; 476.13442 11985; 476.39979 8226; 476.84081 70442; 477.03922 4007341; 477.16751 83247; 477.22207 41317; 477.57206 35123; 477.66864 508312; 477.78963 153113; 477.91404 112361; 478.03487 22791; 478.0561 1149726; 478.1888 5732; 478.42615 18118; 478.50228 64599; 478.52571 1742097; 478.96134 3930601; 478.9859 17331; 478.98925 94317; 479.38767 1514203; 479.42238 1454221; 479.63381 58453; 479.96997 8317; 480.0355 837347; 480.11162 4284179; 480.29663 10229144; 480.49955 2156295; 480.55009 24436; 480.56135 11020; 480.5825 24761; 481.12752 28815; 481.31608 2416; 481.3852 917683; 481.86838 134348; 481.91341 4589; 482.02911 17091; 482.35533 1463905; 482.70163 80486; 482.78548 18552; 482.81817 3905; 483.07859 685259; 483.41583 5503285; 483.59894 1910269; 483.6164 858916; 484.04946 4615739; 484.13649 91425; 484.23599 32239; 484.6688 737103; 485.10516 48300; 485.19568 8000931; 485.62941 1663905; 485.64265 26429; 486.18573 1606855; 486.60546 4052329; 486.65585 5525846; 486.73242 6634501; 486.73669 21329; 487.05061 89220; 487.48913 23152; 487.66908 4567; 487.85802 1952915; 488.50091 19098; 488.51819 7257; 488.57507 69070; 488.73031 30090; 488.82064 43690; 488.87351 4582; 489.08461 42480; 489.70634 1527741; 489.84184 27276; 489.91788 46328; 490.27149 3185168; 490.29136 998428; 490.4457 1547160; 490.55247 7973; 490.97486 252391; 491.12073 78311; 491.19118 121857; 491.29929 12669; 491.49942 69808; 491.69402 54950; 491.75699 3628869; 491.90752 18397; 492.00721 20742; 492.02105 2075; 492.38995 64305; 492.50511 32666; 492.58307 13627072; 493.25853 1370490; 493.34278 29962; 493.34315 441738; 493.49525 3770723; 494.52156 21930; 494.80039 5063; 495.27188 4803917; 495.63911 1878847; 495.80267 3406216; 495.83248 4052204; 496.09549 1880; 496.1235 3467134; 496.16885 3969; 496.46894 3190224; 496.71547 5569228; 496.77972 39584; 496.88042 1075351; 496.98026 45556; 497.18244 29525; 497.33502 35590; 497.3998 55153; 497.56911 50414; 497.98295 4057075; 498.45195 40191; 498.80965 117521; 499.21659 55968; 499.36366 284; 499.70281 63895; 499.73766 3630967 +<6, 3>: 0.2842 54739; 0.44631 25364; 0.4712 77681; 0.60441 44643; 0.75442 28283; 1.07616 1297; 1.30266 1650699; 2.00105 2504754; 2.01943 2227; 2.09655 80341; 2.13349 3307710; 2.25851 23361; 2.40348 18240; 2.43659 41250; 2.66243 37060; 2.6895 12997; 2.77794 338598; 3.063 43545; 3.14166 6527; 3.19055 33267; 3.33871 7719698; 3.52475 161080; 3.58207 79508; 3.74279 6903; 3.94062 1182929; 4.05593 54666; 4.07743 5444; 4.08729 8016; 4.23863 1337064; 5.01501 1079557; 5.08067 234462; 5.21789 68662; 5.32644 67582; 5.42423 2192831; 5.48572 274; 6.05756 13245; 6.25125 4256683; 6.36811 34878; 6.37084 1876128; 6.48728 4836909; 6.60558 36084; 6.97876 521272; 7.03863 8818; 7.13101 341; 7.29175 7892629; 7.31239 175976; 7.38643 27202; 7.67289 5066; 8.09277 904656; 8.18235 4060; 8.60496 29541; 8.78729 13759; 9.03388 9782; 9.08401 4439209; 9.39467 43305; 9.41362 38014; 9.51561 82413; 9.54294 87952; 9.80365 22383; 9.90569 687576; 9.9464 8008122; 10.66148 25212; 10.78234 20204; 11.10541 1595588; 11.40042 45785; 11.87421 129361; 11.88372 3853; 12.15715 942864; 12.17781 9405; 12.27192 1126870; 12.31169 3292; 12.39054 4810752; 12.50812 476; 12.68965 527070; 12.94882 36501; 13.65559 36910; 13.74704 35653; 13.76297 51575; 14.34107 60119; 14.41934 56972; 14.6726 73504; 14.97464 73332; 14.9902 2859; 15.01304 25909; 15.10728 62908; 15.26474 23982; 15.33323 45951; 15.47388 2527; 16.0199 1247589; 16.14881 54903; 16.22083 119971; 16.36958 163533; 16.48067 63182; 16.73522 1842483; 17.00558 1604120; 17.0471 21201; 17.15871 5461135; 17.18815 1376121; 17.5196 6848908; 17.52744 146934; 17.59745 1054460; 17.74866 11470965; 17.85036 277586; 18.37285 25096348; 18.52629 1818688; 18.84151 509238; 18.88926 55689; 19.44215 4284; 20.70177 2043001; 21.21732 2983104; 21.3135 79932; 21.34375 57170; 21.46124 1788323; 21.73351 2970; 22.04289 2918489; 22.1994 125711; 22.51062 4039; 22.77194 70405; 23.09096 43055; 23.25127 13525; 23.31154 33429; 23.32294 26392; 23.50337 984706; 24.01694 61840; 24.06231 989645; 24.06274 7730973; 24.17608 285029; 24.30843 1255070; 24.91943 134610; 24.9572 1221977; 24.96191 29603; 25.12224 59697; 25.2398 3419; 25.43994 1108010; 25.48652 28484940; 25.7588 3242224; 26.39385 4620475; 26.64645 4470071; 26.83339 4954; 26.94086 32097; 27.12568 2365; 27.49265 29062; 27.57461 1106462; 27.65351 2931; 27.98026 12964291; 28.21563 900440; 28.22425 1040064; 29.07994 55516; 29.21926 50520; 29.43087 66835; 29.46328 1822587; 29.6939 51962; 30.14579 39294; 30.53097 29060; 30.58519 52675; 30.68837 462449; 30.81232 4902370; 31.02036 100687; 31.19213 1170866; 31.38245 6347040; 31.75081 8382377; 31.89167 26880; 32.04631 2422013; 32.14282 20244; 32.62985 7730; 32.69792 2512988; 32.73653 23234; 33.24595 5669; 33.38452 77375; 33.55868 1407377; 33.69724 186827; 33.77661 655662; 34.01543 67731; 34.04588 44223; 34.0671 6536; 34.14724 24157; 34.35288 1899875; 34.43806 78794; 34.5587 9460372; 34.61979 960576; 34.63458 23753; 34.67061 1397367; 34.68134 1906908; 34.70033 1527662; 34.75468 7581; 34.87472 3678210; 34.92404 21114; 35.06729 28142; 35.10741 29099; 35.27046 36275; 35.91931 54854; 36.45463 663745; 37.09524 34921; 37.27618 1231613; 37.28644 1189801; 37.29905 68760; 37.34593 72059; 37.47836 21293; 37.82401 2421780; 37.86967 1188576; 38.17043 2991662; 38.22129 9496; 38.38426 2570487; 38.43574 7395; 38.56587 94750; 38.64229 484477; 39.0227 9930913; 39.5694 6241; 40.07219 1008647; 40.22335 29719; 40.98604 3190019; 41.01891 6499; 41.14683 72294; 41.23147 41300; 41.29094 4484703; 41.57015 28697; 41.69261 19987; 42.22182 1603676; 42.40582 2858515; 42.5815 113211; 42.79858 54567; 42.91492 6868936; 43.05715 2096; 43.218 7460315; 43.52858 180481; 43.788 174797; 43.98516 9074978; 44.07318 26012; 44.10957 26486; 44.39545 78046; 44.42009 23479; 44.74265 4143686; 44.87739 1989040; 45.06987 19933; 45.20076 65571; 45.21093 7790216; 45.2678 28003; 45.56299 621365; 45.7571 61803; 46.10308 831444; 46.27937 59567; 46.34364 34227; 46.86732 3411; 46.98555 19823; 47.17947 3437; 47.25986 15724; 47.48772 6551; 47.86919 4377007; 47.90778 4905224; 47.95149 41604; 48.12284 544435; 48.22312 43797; 48.36423 4308; 49.12221 1322237; 49.13568 1525987; 49.20188 74700; 49.38761 37466; 49.48557 21765; 49.50093 21809; 49.90542 24611; 49.96235 286924; 49.97508 43968; 49.97736 1905277; 50.01664 7390; 50.05712 683528; 50.21761 18704; 50.28025 1889174; 50.64248 778637; 50.76518 26339; 50.98803 805573; 50.99278 53273; 51.09964 58928; 51.11497 7099; 51.1335 6843; 51.15096 27418; 51.19969 7682; 51.98319 22476; 52.02319 29947; 52.24241 3029; 52.41635 2117; 52.59371 1972; 52.61378 23068; 52.65647 77559; 52.92257 21883; 52.96949 41055; 53.42583 3880705; 53.44197 66148; 53.80302 41251; 53.87181 73387; 54.15007 458133; 54.37468 866168; 54.57529 180149; 54.66002 48053; 54.82466 356431; 55.08335 32232; 55.46255 14630; 55.50622 32098; 55.51673 19072; 55.61084 3680358; 56.03525 30972; 56.07055 117095; 56.11145 2554959; 56.54718 25554627; 56.60148 136981; 56.74268 78043; 57.57129 2431364; 57.7065 2404; 58.66991 1010687; 58.86413 932831; 59.33788 310524; 59.36539 38590; 60.29661 512794; 60.36739 23066880; 60.36919 8842118; 60.76121 1779570; 61.13811 101989; 61.14874 26895; 61.36856 27188; 61.46335 7692924; 61.52708 7963221; 61.65978 161298; 61.83907 25933; 61.97222 4009044; 62.04598 3866; 62.51495 126281; 62.72578 30441; 63.12228 79815; 63.2295 3279066; 63.27804 1550; 63.4886 2842; 63.64482 792786; 63.95042 2245140; 64.015 18292; 64.17044 852280; 65.20519 136334; 65.43784 17995042; 65.58679 7409800; 65.67124 109114; 65.68177 303765; 65.71143 4728; 65.76218 4038; 65.84689 457810; 65.95676 3545; 66.12203 710436; 66.18661 3637787; 66.19602 45326; 66.4576 8795; 66.77802 6775; 66.83025 53815; 66.90434 57790; 67.10023 935757; 67.41303 1254833; 67.45665 16437; 67.67544 33061; 67.86264 27710; 68.38921 6647047; 68.49914 24797; 68.52658 8660; 68.56117 3390113; 69.02108 2627; 69.08445 4649559; 69.21604 3887731; 69.26276 27936; 69.5723 3885041; 69.57527 8708500; 69.94809 819849; 70.10521 31558; 71.32977 5967185; 71.44136 9771; 71.6656 67881; 71.91488 20086151; 72.21061 308650; 72.29843 1082337; 72.52265 1191093; 72.69941 57773; 72.83753 6473346; 73.12699 5496819; 73.4048 21630; 73.41116 1305281; 73.54608 8262538; 73.74668 25963184; 73.75463 2551524; 73.76337 3920633; 73.79165 53070; 74.22023 1395982; 74.30009 902193; 74.36566 1091474; 74.46924 1673; 74.55216 5009; 75.06392 22415; 75.69047 60055; 75.95147 1882; 75.96838 1792; 76.00596 7472; 76.14729 11009; 76.1555 38304; 76.75405 1285642; 76.9003 1240545; 77.00838 54136; 77.16565 8278; 77.17513 79177; 77.26804 1673937; 77.37477 413745; 77.58968 24317; 77.75137 77532; 77.91015 57606; 77.93274 51534; 78.00065 23288185; 78.03927 5883143; 78.13379 1338639; 78.35453 21122; 78.38566 20758; 78.48108 598854; 78.60303 1632; 78.60325 38452; 79.05619 3524020; 79.06368 161409; 79.06524 4974083; 79.13242 60297; 79.17188 8612; 79.6731 25182; 79.70405 4604214; 79.85587 8197; 80.0026 363096; 80.27111 6255; 80.56337 59562; 80.60858 1791527; 80.61631 39053; 80.76054 16121; 80.76405 144906; 80.81575 5222630; 80.9684 1144157; 81.01876 5104200; 81.26915 1626778; 81.32636 1423469; 81.32791 1720; 81.36762 13696596; 81.49752 2203; 81.57267 2779030; 81.65694 42727; 81.74659 77906; 81.76222 3903; 81.86521 41296; 81.96882 8083292; 82.28674 1704862; 82.49441 4776; 82.58326 7982407; 82.91296 16877865; 83.22982 2010300; 83.59907 65362; 83.76093 25248297; 83.85534 24432; 83.85967 32490; 83.98091 31456; 84.06611 19199; 84.16837 96120; 84.53374 8204; 84.62598 57305; 84.69398 31888; 85.06786 46788; 85.21979 22449; 85.34626 1106; 85.55099 14744885; 85.97806 33126; 86.03222 6880046; 86.15353 20679; 86.27459 2425; 86.35913 1598118; 86.54619 4301293; 86.87158 732230; 87.14659 24751; 87.23256 197218; 87.81066 132704; 88.17609 178859; 88.37588 412793; 88.50033 13941; 88.59155 9199; 88.62723 6727; 88.66768 33116; 89.59959 75006; 89.74787 477406; 89.91127 40982; 89.99474 9329542; 90.20185 678148; 90.21299 3391408; 90.2888 2392053; 90.61791 1535643; 90.63559 4161829; 90.97698 8667399; 91.01532 406891; 91.09494 3093; 91.13473 70522; 91.17055 2381901; 91.27589 5079641; 91.52083 31496; 91.60602 10783; 91.64579 3091; 91.65734 80; 91.76494 3953804; 91.81735 21910; 92.0309 30276; 92.14124 790967; 92.38614 76970; 92.46186 72171; 92.66944 48586; 92.89209 424619; 93.05107 7129; 93.19907 7263; 94.46463 1923543; 94.84209 524494; 94.95008 3017505; 94.97472 67741; 95.1089 764604; 95.39864 1143445; 95.41029 1851428; 95.41821 4024445; 95.61357 3063; 95.7035 24602; 96.09103 21300; 96.12976 61908; 96.30383 39088; 96.77355 2884150; 96.91313 20230; 97.13504 15678517; 97.22671 3960364; 97.45071 78124; 97.55018 54215; 97.61438 1433; 97.73959 7760; 97.85889 318867; 97.88357 6701; 98.01059 43997; 98.07124 60631; 98.82133 9605; 99.10646 4715079; 99.14169 1998446; 99.25938 24835; 99.36833 30803; 99.53126 19327; 99.76092 106185; 99.79668 9368601; 99.97326 1704759; 100.1595 9778; 100.32083 1745383; 100.34532 7311; 100.63254 1020615; 100.91008 2445; 101.25969 14396463; 101.37655 186575; 101.43277 57940; 101.51486 14088; 101.57507 72706; 101.67917 1790070; 101.69646 9224469; 101.85823 63779; 102.2562 48784; 102.46492 1368709; 102.67349 10717646; 103.21425 4016; 103.29336 104477; 103.29859 2527; 103.36154 28018; 103.38753 1389855; 103.43578 29453; 103.78455 22496; 104.19293 8072677; 104.30996 8084588; 104.53181 79102; 104.70344 160293; 104.94993 609213; 105.36904 7496; 105.47929 627235; 105.74628 1820984; 105.85615 9234036; 106.50892 26991; 106.56434 6620839; 106.81623 4902960; 106.85231 1171542; 107.09654 1394049; 107.23561 54888; 107.46122 8392420; 107.53003 541; 107.62268 9231; 107.63872 18420; 107.66341 1937416; 108.07471 69967; 108.33942 2690274; 108.77219 613711; 108.78875 8227797; 109.03942 2181304; 109.07448 173237; 109.18162 8577433; 109.56106 2505340; 109.70055 92997; 109.95697 317119; 109.99444 64761; 110.05544 1047448; 110.07906 26339; 110.18169 778865; 110.1844 8436; 110.31274 57117; 110.33258 75578; 110.35788 4819618; 110.42586 1129375; 110.55585 4349848; 110.61421 8698903; 110.76484 1029; 110.88296 537515; 111.17208 24590055; 111.27054 7136; 111.4431 46455; 111.45603 7365; 111.762 21049; 112.18365 1534321; 112.38299 20978; 112.55188 26205; 112.99374 12415; 113.0996 405848; 113.10906 40072; 113.45658 211572; 113.4687 7047; 113.65749 26149; 113.69382 195222; 113.87805 18960; 114.37497 25415; 114.42909 8150; 114.80333 31934; 114.8623 2877893; 115.01415 17554237; 115.05799 39131; 115.6521 183470; 115.90464 25225; 115.92742 78257; 115.94996 121930; 116.10644 746983; 116.14795 50703; 116.18354 5942403; 116.18976 2750977; 116.25125 19081; 116.33056 1023; 116.53889 1645644; 116.59787 55926; 116.91549 37304; 117.69468 24655; 118.12192 170843; 118.33566 28282; 118.4711 53680; 118.58211 1745914; 118.7317 241171; 118.74201 29301; 118.94308 3096650; 118.96295 2334; 119.42983 79772; 119.71765 1653255; 120.35643 3872; 120.42375 24704598; 120.53084 4833; 120.77868 67759; 120.81697 42477; 120.92091 66160; 121.04231 2263925; 121.14023 4708735; 121.39403 44540; 121.50603 20965; 121.55185 46665; 122.58526 401793; 122.82137 9332497; 122.86025 2685782; 123.05239 309884; 123.21343 6887345; 123.26501 14192686; 123.5708 1702018; 123.69528 41851; 123.81779 1788204; 124.11995 14027; 124.21027 69863; 124.3309 22000; 124.50396 902893; 124.59565 4671997; 124.62107 48149; 124.79982 4550195; 124.90505 38183; 125.11735 29532; 125.88809 27351; 125.92881 43465; 125.99327 83075; 126.1328 46002; 126.29875 2676701; 126.44684 6548; 126.45845 18320; 126.49934 35127; 126.73086 48995; 127.14019 5030834; 127.35649 40635; 127.40509 42776; 127.92428 8056; 127.98346 24022; 128.41041 7824581; 128.62622 66874; 128.71874 189745; 128.98156 1762358; 129.20306 2839864; 129.9775 594046; 130.06547 1520515; 130.07005 47875; 130.10527 28457; 130.30916 49498; 130.32032 21925; 130.33957 8116; 130.61074 24117; 131.04316 14780; 131.27408 955242; 131.32548 370279; 131.3259 160431; 131.3669 32992; 131.7193 22563701; 131.84891 5342; 131.89445 1007309; 132.24511 44130; 132.29042 123567; 132.72862 23116; 132.83866 3416387; 132.92239 15893540; 133.38736 1780599; 133.9314 7370; 134.11645 615403; 134.12062 20233; 134.19272 75183; 134.19533 3015; 134.66171 92176; 134.88049 60958; 134.92419 147871; 135.06659 9944; 135.06792 1439; 135.92823 9675; 136.27169 72743; 136.4414 24574; 136.47287 72415; 136.57295 70405; 136.73426 7424607; 136.86556 24714; 136.86614 104238; 137.16072 4927; 137.41808 22480; 137.44605 52202; 137.58 9467212; 137.90774 3457683; 138.08749 6912; 138.14604 181116; 138.3625 7174; 138.44423 412036; 138.48632 43263; 138.51044 612638; 138.65926 1744; 138.68812 8615; 138.75489 29377; 138.9608 1746574; 139.18271 363728; 139.3437 162250; 139.56473 1086231; 139.64759 23376; 139.89418 7501; 140.06843 1365337; 140.08003 835067; 140.09415 8544; 140.46724 36879; 140.58126 8035976; 140.62007 70385; 140.80378 1027062; 140.90915 7750103; 140.93678 29966; 141.03772 3145403; 141.10633 53248; 141.24144 1960189; 141.95579 14901; 142.38843 19196; 142.59867 6035803; 142.66388 73931; 142.67165 68375; 142.8901 34; 142.97397 29670; 143.04773 72593; 143.50658 9768476; 143.57911 46673; 143.82251 314849; 144.36667 53841; 144.36978 28208; 144.69358 12807; 145.1751 27079; 145.30516 7282; 146.49304 7497808; 146.5053 49002; 146.57507 24971527; 146.92408 41605; 146.99186 247810; 147.19743 7605; 147.25318 72128; 147.30948 1962123; 147.60425 29496377; 147.72203 25397; 147.76059 1508654; 147.77714 157; 147.87129 37240; 148.33473 2358; 148.35986 836163; 148.59504 25592; 148.79169 1713350; 149.00905 15522666; 149.04342 27667; 149.14827 2408; 149.45685 25648; 149.59517 34021; 149.87395 5732827; 149.94951 59791; 150.08229 24382; 150.29118 161596; 150.40824 9102; 150.52917 184451; 150.55075 1442804; 150.92107 66274; 151.03217 95062; 151.03662 3307843; 151.09933 23548; 151.18632 37061; 151.24546 1105677; 151.50176 820854; 151.96292 9982477; 152.09818 437853; 152.23818 7398; 152.40321 11627; 152.45762 713688; 152.57662 1098; 152.73956 1425791; 153.00533 84163; 153.08488 1845263; 153.20774 139316; 153.26762 133551; 153.34863 70092; 153.47646 68893; 153.49883 2218; 153.93738 1996852; 154.16461 15351; 154.46896 163380; 154.57571 9946416; 154.66189 53533; 155.4176 1797633; 155.5885 2901; 155.70459 182425; 155.89818 1946; 155.95432 6175; 156.35122 1827951; 156.7141 22456; 156.84887 1980776; 157.10524 65403; 157.76868 4050104; 157.89613 4828; 157.91535 3347056; 158.08221 190444; 158.3099 1707022; 158.77004 496978; 158.98824 4189429; 159.22299 9802921; 159.41429 70004; 159.43819 9818991; 159.63994 74812; 159.69155 4884378; 159.71798 962445; 159.9323 882605; 160.05312 19632; 160.08382 2424380; 160.28426 22383; 160.59299 10257; 161.3704 12613; 161.44704 307; 161.52812 1945347; 161.53263 70938; 161.82464 70794; 161.85509 4144; 162.03279 74093; 162.113 1433835; 162.13286 8777756; 162.14044 32812; 162.23236 78985; 162.28134 8389; 162.50962 23616; 162.63383 698; 162.89508 21501617; 162.96384 24760; 163.06878 79390; 163.13917 12486; 163.26878 1700468; 163.35834 49755; 163.36233 42778; 163.55905 2692; 163.76882 79386; 164.13214 28591; 164.28205 52707; 164.56642 29927; 164.64016 143785; 164.89042 54780; 165.18976 909943; 165.322 8843227; 165.38491 311858; 165.82688 2965; 166.06716 14734746; 166.43583 65347; 166.81645 71009; 166.88814 5035092; 167.25815 3122; 167.39732 9700; 167.52657 4857; 167.55213 46639; 167.70196 42912; 168.33434 42749; 168.38667 74738; 168.40506 8531; 169.04032 377142; 169.06764 1943142; 169.30099 1928471; 169.39791 6744647; 169.69704 26430; 169.92693 77237; 169.995 74134; 170.21555 69357; 170.56841 75087; 170.83752 45243; 171.05105 78551; 171.23726 2308673; 171.70456 62276; 171.73922 67453; 171.8354 30907; 172.16551 3418; 172.21734 182424; 172.59031 15988019; 172.86046 2645178; 172.92666 4779912; 172.94543 5772835; 173.52962 19434; 173.65019 1110542; 173.83802 6356436; 174.04315 14667; 174.19893 114045; 174.62365 64449; 174.65786 29672; 174.92307 111317; 175.16601 122238; 175.16865 7526; 175.29145 1931470; 175.44312 20610; 175.67293 1626975; 175.76146 32890; 175.87432 6965953; 176.09389 57197; 176.09857 35019; 176.23354 7107; 176.26361 12284; 176.33488 160854; 176.56195 446822; 176.96675 1441; 177.01069 41842; 177.37816 59516; 177.48568 5169659; 177.57778 4357; 177.59742 8263443; 177.64605 4703581; 177.73535 42592; 177.78201 30756; 177.95279 32931; 177.97274 386368; 178.03848 71861; 178.07842 28903; 178.16151 29781; 178.27472 51314; 178.35592 3427; 178.35772 606347; 178.62001 37094; 178.93836 498745; 178.996 1679161; 179.23805 485147; 179.31649 3372558; 179.59331 1126; 179.64606 4195721; 179.68798 22754; 180.24819 18589710; 180.37343 81213; 180.5285 3465142; 180.79689 266733; 181.00187 41978; 181.3003 79267; 181.46544 293146; 181.51636 2263472; 181.64779 668726; 181.64918 29675; 181.77893 54492; 181.89123 2325329; 182.4743 229837; 183.07686 20322; 183.10915 3440753; 183.21959 73163; 183.41892 19909; 183.60572 1675383; 183.62048 403450; 183.63489 1615; 183.71191 19545; 183.8449 1171305; 183.86075 5047423; 183.98301 6118219; 184.1789 3672642; 184.30418 601112; 184.40435 36483; 184.43908 67174; 184.62533 993961; 184.84133 717699; 184.87806 7846; 184.94752 3434; 184.96081 63260; 185.05676 22773; 185.37734 3702033; 185.41954 72006; 185.86414 4719571; 186.08925 1091293; 186.13972 1885973; 186.31962 3682; 186.67049 20710; 186.7504 40375; 186.78477 186405; 186.89657 576251; 186.94809 547030; 187.06417 1690697; 187.16719 1370519; 187.18321 12775; 187.2226 536965; 187.26668 690283; 187.51217 873; 187.77295 9506; 187.90062 25606; 187.92088 1340366; 188.62465 46694; 188.62877 66959; 189.16751 17173; 189.45214 19169; 189.58295 10004; 189.61853 26702106; 189.62006 429179; 189.6341 9501; 189.64442 140386; 189.65738 7879; 189.78601 6628098; 189.79395 4695; 190.0449 54668; 190.73862 1429731; 191.16785 3491551; 191.19746 64807; 191.44574 27038; 191.54492 412488; 191.63685 8047; 191.89323 709034; 192.03947 295; 192.22278 55991; 192.24981 8232; 192.51656 70894; 192.5663 43018; 192.60025 2031052; 192.66588 4156; 192.67156 5380629; 192.75117 567078; 192.79674 50462; 192.83204 90558; 192.93444 22488; 193.13699 11218; 193.63414 1139956; 194.08649 40720; 194.11008 53513; 194.36248 16792604; 194.43742 23539; 194.78151 9677; 194.79904 4046382; 194.80233 1784852; 195.28226 1061065; 195.28559 6717; 195.3542 81710; 195.36134 19974056; 195.65155 69337; 195.84772 20640; 196.12384 35537; 196.18804 51033; 196.3361 13215; 196.34487 109842; 196.53118 21337; 196.59843 79613; 196.95866 702297; 197.11935 69844; 197.22755 9518; 197.35224 787600; 197.50491 30200; 197.54865 1986716; 197.6956 1770409; 197.69806 1211170; 197.85792 55216; 197.91675 20908; 197.93263 7519; 197.97887 59609; 197.98273 29898; 197.98384 161860; 198.34778 3811444; 198.45733 69923; 198.85076 4658; 198.90387 40186; 199.18299 38096; 199.7188 9457; 199.92189 38451; 200.37456 1454; 200.50928 1686; 200.63305 2753697; 200.86999 3424269; 201.22907 67399; 201.25205 3713888; 201.45601 2964404; 201.6279 1073537; 201.64398 618832; 201.86888 3758736; 202.18361 1923069; 202.2125 57104; 202.3177 7771; 202.64551 3935500; 202.87181 5397; 202.88563 23393; 203.89569 6763; 203.97529 334; 204.0252 36337; 204.09032 9283; 204.12931 1004; 204.26827 2159806; 204.33674 49687; 204.61313 7769; 204.64821 1113812; 204.67746 786406; 204.70487 3332065; 204.73038 2642996; 204.73767 2305040; 205.13952 1221274; 205.24905 1072; 205.26044 61192; 205.54623 17410522; 206.10747 23025; 206.38776 2692114; 206.68484 617756; 206.83169 1524755; 206.85017 24413; 207.06212 27887; 207.16492 8597; 207.22403 8574265; 207.45714 3788113; 207.45992 1769949; 207.54388 12446; 208.02833 1759421; 208.14931 69252; 208.53858 672062; 208.89607 40394; 209.18065 9267; 209.31727 11342; 209.98146 897012; 210.09511 2087; 210.15611 72196; 210.24858 1312196; 210.38239 29810151; 210.39414 5719928; 210.6071 68560; 210.79976 24552; 210.83658 21148547; 211.07872 16599234; 211.12762 69455; 211.20592 394242; 211.2782 5771157; 211.53513 8129; 211.64418 7463621; 211.65714 21774; 211.76806 59835; 211.87139 3058955; 211.9735 28631; 212.23736 9725567; 212.27794 3112085; 212.59034 18974867; 212.63798 29733; 212.86071 25024; 212.88944 77602; 213.00064 7551; 213.05439 48967; 213.27791 895163; 213.30416 3915561; 213.33633 3248812; 213.47805 22258; 213.59089 38690; 214.21032 5655; 214.63021 3193505; 214.69826 829814; 214.80264 2054; 215.00764 67509; 215.09632 28472; 215.1918 62526; 215.45341 275700; 215.52241 33240; 215.87049 595810; 215.97471 6761; 216.06286 6389158; 216.10011 5575326; 216.20519 34154; 216.49291 863; 216.661 2852115; 216.68503 303167; 216.87001 448885; 217.14081 21305; 217.14358 1697856; 217.27197 26034065; 217.3116 55144; 217.61402 1981788; 217.65911 41563; 217.66032 34609; 217.74125 7664247; 217.78404 10186; 217.86496 40882; 218.30922 24505; 218.45828 754579; 218.51472 2458; 218.72184 985530; 218.72808 8758; 218.75114 54813; 219.04392 2425145; 219.35185 52844; 219.39742 45898; 219.39858 23634; 220.03846 6066; 220.15432 1363173; 220.4384 598270; 220.75488 73505; 221.09099 4426; 221.38472 1873684; 221.68303 21332; 221.71445 25617; 221.80364 28158; 222.18137 4223407; 222.37321 29912; 222.44823 45030; 222.52604 307964; 222.58565 49380; 222.71569 1584648; 223.06398 27022; 223.32608 76262; 223.45548 1349316; 224.45452 20769; 224.69805 7526809; 224.90615 16582; 224.90918 79832; 225.07586 14557; 225.1002 1981241; 225.13279 8847; 225.38225 64168; 225.39342 1489323; 225.4513 2272532; 225.70757 6595261; 225.72576 943944; 226.13819 100593; 226.16019 3991555; 226.75043 38472; 226.92816 337825; 226.98695 4231849; 227.03004 911; 227.24703 9090; 228.15788 76319; 228.17054 3481; 228.17452 4851; 228.34141 940904; 228.47832 2111496; 228.52526 58836; 228.63221 7291631; 228.65741 185389; 228.90081 16844; 228.92283 6506230; 229.16854 1874795; 229.31027 129305; 229.35251 159069; 229.47893 21231; 229.67602 1180206; 230.05424 75171; 230.29165 2507963; 230.82489 37984; 230.83747 8404630; 231.09957 28056; 231.10755 1999831; 231.29373 29270; 231.39262 1779114; 231.48649 3538142; 231.82613 1384116; 231.88896 2253080; 232.01216 1733742; 232.15031 137403; 232.56545 26864; 232.73294 166658; 232.74324 4456672; 232.8465 35802; 233.03054 78354; 233.13899 165051; 233.14206 8619778; 233.18188 185745; 233.26037 1308384; 233.26122 42399; 233.35725 19352040; 233.53269 2717837; 233.6269 110642; 233.95401 723373; 233.9743 6951952; 234.04819 4845; 234.27942 26082; 234.30476 13384; 234.32669 6762; 234.45062 1367816; 234.80886 4364566; 234.85716 1175951; 234.99612 78866; 235.0934 79694; 235.17202 72706; 235.4296 1741396; 235.43243 124137; 235.67194 5333574; 235.69711 8935557; 235.86504 1531253; 236.31916 2437; 236.35035 1886605; 236.50143 75412; 236.74748 26337; 236.85849 493971; 236.8604 3916; 236.87785 22275; 237.10412 12244; 237.25865 1599; 237.38414 418; 237.42733 28200; 237.43026 3962; 237.47932 2268766; 237.58193 169416; 237.88978 93063; 238.00551 1429060; 238.09886 8735221; 238.39816 7771717; 238.40816 65820; 238.71785 755864; 239.07897 28590; 239.08986 27145887; 239.66123 4864; 239.75917 625352; 239.89929 22225272; 239.95733 1884738; 240.08241 23467; 240.81488 253480; 241.32144 28945; 241.36608 512; 241.44385 606898; 241.55131 332507; 241.88076 5921311; 242.19478 2875; 242.44086 29376; 242.50647 48754; 243.30508 2572; 243.33114 5668; 243.39925 27452; 243.59815 43137; 243.60094 23659; 243.9153 40161; 243.92452 4328721; 243.97658 494961; 243.99141 56778; 244.0355 31895; 244.646 21172; 244.81582 4462; 244.99853 1459087; 245.04324 1816992; 245.4039 8404269; 245.47038 1105308; 245.53926 57980; 246.38957 669627; 246.45084 4352756; 246.75111 28174; 247.13245 126295; 247.15612 21689; 247.63388 5596; 247.65467 7477537; 247.91052 6263; 247.93287 9316; 248.05428 62986; 248.53769 180312; 248.56829 51154; 248.57552 16049; 248.58253 155897; 248.88679 1198762; 248.95447 18017070; 249.15645 87575; 249.27033 20956; 249.51624 9692724; 249.59425 8117919; 249.72718 31315; 249.82289 4189; 249.85413 118445; 249.98199 28633; 249.99859 244634; 250.212 509; 250.25311 4497976; 250.31918 8497; 250.32024 1563882; 250.32644 87296; 250.44661 23353052; 250.55243 8890132; 250.82027 574926; 250.85593 44680; 250.88672 70485; 250.92304 65256; 251.14961 4472493; 251.44878 81848; 251.49445 456555; 251.58405 2585; 251.59828 824586; 251.85605 6737; 251.98984 4854064; 251.99355 685090; 252.16552 176359; 252.22268 3007561; 252.32478 27928; 252.71796 50999; 252.88398 7372; 252.90231 28265; 253.10798 420242; 253.26401 2065; 253.27376 62691; 253.40467 37839; 253.56369 11002572; 253.58919 2630337; 253.65636 1037803; 254.16338 75108; 254.3693 24327; 254.77909 60577; 254.99895 513145; 255.11512 7997787; 255.24273 29844; 255.65997 66669; 255.80367 14301; 256.01672 6637; 256.26702 507315; 256.28457 2644886; 256.36041 923; 256.47266 1153043; 256.59301 24208929; 256.64048 8849397; 256.76567 1605; 256.84249 47799; 257.09667 3206517; 257.24718 9509721; 257.55991 2361894; 257.71122 23876; 257.76025 43316; 257.90881 61501; 257.96551 42942; 258.18234 892691; 258.62322 29236; 258.80383 57; 258.85187 22191323; 259.22081 1839374; 259.71488 3726275; 259.8406 569712; 260.1654 4005594; 260.40698 56574; 260.63309 69535; 260.71159 3593; 260.78047 43090; 260.96598 36344; 260.98172 1584083; 261.03927 51830; 261.10988 35371; 261.28132 1828875; 261.66512 3994; 261.70114 2034; 261.74325 18656513; 261.9854 44580; 262.23979 78481; 262.30249 28289; 262.44134 26101; 262.68636 26722; 262.69424 8123; 262.98938 856786; 263.49246 917559; 263.86312 45028; 263.96185 1707378; 264.40277 940804; 264.86061 29740; 264.95121 9054653; 265.22006 2366; 265.22314 117049; 265.25924 17818034; 265.30826 75446; 265.54285 20273; 265.60274 52687; 265.66032 52110; 265.73844 2487; 266.06107 41154; 266.15357 7890; 266.4424 10013; 266.62242 52753; 266.70546 27224; 266.81153 562127; 266.84663 50122; 267.0617 3561; 267.06191 42525; 267.074 149188; 267.40875 6313; 267.48389 1221768; 267.72705 29627; 267.79844 53182; 268.0184 2469; 268.17968 39033; 268.35601 34717; 268.38777 74680; 268.57138 25458; 268.63969 6888541; 268.83467 6515805; 268.96676 32; 269.08028 4721463; 269.58173 421807; 269.63991 20467; 269.72658 26653; 269.75989 611; 270.10106 973584; 270.11658 150353; 270.13303 3322621; 270.1724 8748; 270.17348 7072; 270.37619 59839; 270.41697 732998; 270.52494 58425; 270.71218 3718; 270.85625 48466; 270.90124 747458; 271.17899 12429598; 271.25089 6903; 271.38374 8275; 271.61848 63744; 271.61897 770845; 271.73376 1484807; 272.00473 609870; 272.06982 1894436; 272.81315 268078; 273.01544 26058; 273.2738 76958; 274.31826 17960; 274.357 73040; 274.36817 39196; 274.4206 174998; 274.59538 8989; 275.21051 4776; 275.4959 22703584; 275.56565 1029690; 275.73457 53913; 275.80738 2079864; 275.90496 26744; 276.58681 40931; 276.75171 4033831; 276.82349 844433; 276.87465 49655; 277.05453 37789; 277.4374 4350477; 277.60578 178095; 277.66926 22420; 277.68846 71572; 278.18506 2084; 278.23053 1111205; 278.30789 41820; 278.35318 19747; 278.35687 12441; 278.38748 195439; 278.45032 22956; 278.49576 59407; 278.70825 887908; 278.78429 6632; 278.8174 9215; 278.82017 989253; 278.8297 34330; 279.14698 13293; 279.26898 3828946; 279.27615 58565; 279.42364 71365; 279.53875 705; 279.90408 6579; 279.96143 1623295; 280.05728 1120255; 280.1884 42782; 280.50813 1633815; 280.60426 21186075; 280.75666 5241351; 280.92769 2189514; 281.04244 5771; 281.12485 62480; 281.23329 27530; 281.23802 13971711; 281.30787 5705; 281.48787 582148; 281.64127 1579708; 281.80667 68174; 282.41911 1220357; 282.49732 26024; 282.50614 105808; 282.64542 770127; 283.08439 24979; 283.09355 755; 283.61543 8709; 283.68244 25684; 283.84837 60305; 283.89254 7728169; 284.37241 12523; 284.47997 9774144; 284.58997 5193747; 284.82533 8121; 285.25607 9773298; 285.4117 1892; 285.44675 8376584; 285.58615 165470; 285.62544 9375558; 285.96635 67559; 286.00332 176641; 286.07059 1696; 286.23567 22855; 286.25025 8154; 286.3376 27632; 286.7235 5098; 287.19285 19170; 287.35482 28389; 287.52204 54108; 287.86566 38455; 288.28127 30768; 288.40724 159081; 288.48182 14284; 288.59456 194800; 288.80684 253690; 288.95813 1852; 289.0277 42110; 289.03008 29783; 289.58368 8768; 290.04854 423061; 290.30399 73664; 290.42467 22216383; 290.5033 1157; 290.84898 43267; 290.90806 5173164; 291.25208 29611; 291.3265 859693; 291.36762 18266; 291.64488 857510; 291.70714 41448; 291.78369 36916; 291.9044 723969; 292.36371 61940; 292.75341 8594; 292.80227 1949053; 292.81643 39033; 293.20237 5613159; 293.81736 18892; 293.88513 6912797; 293.98406 49894; 294.31525 37477; 294.35481 25656; 294.9106 1305080; 295.55191 12491; 295.57795 7183; 295.83023 323982; 295.96251 63140; 296.21467 4319720; 296.63096 6472; 296.84176 163721; 296.84469 152466; 297.15049 1229335; 297.19924 64380; 297.43424 2059074; 297.67806 19265616; 297.8481 26327322; 297.8959 609206; 297.99579 64856; 298.11243 115368; 298.34907 19653; 298.52142 806001; 298.61917 57629; 298.79203 45938; 298.92125 9240065; 299.04343 76182; 299.32654 5577459; 299.5145 67737; 299.67129 1850476; 299.73424 3324; 299.82424 48358; 299.83351 8617436; 299.90874 37381; 300.11379 1289699; 300.14113 61476; 300.16353 32826; 300.26709 12619; 300.43797 9037640; 300.58016 1401107; 300.66002 558136; 300.74572 552777; 301.09869 20246; 301.32851 47790; 301.35943 2125564; 301.49839 686336; 301.56993 1857627; 301.73329 8641266; 301.74709 29382; 301.81715 34369; 302.66001 67486; 302.66003 6547; 303.1187 23216; 303.25257 1841092; 303.31308 5738419; 303.52494 7911; 303.52755 3852; 303.62363 3430671; 303.8728 1297743; 304.17843 897211; 304.55784 9036892; 304.91803 6304; 304.97763 5486; 305.1731 18276; 305.59713 71140; 305.65136 27856; 305.89712 522487; 306.08495 1384155; 306.09188 28967; 306.26905 20994; 306.28418 69982; 306.39909 3868606; 306.57693 199616; 306.92786 1913200; 307.19757 42610; 307.66416 174626; 307.69157 5195; 307.71541 4087205; 307.91463 72366; 308.08024 8394991; 308.44158 2463813; 308.45086 263013; 308.45306 64138; 308.58686 958609; 309.03984 1194080; 309.2544 10272233; 309.32567 10393; 309.54297 3059903; 309.94351 37773; 310.74062 66473; 311.09385 31734; 311.13458 7873800; 311.35408 47641; 311.36573 1794651; 311.51421 126342; 312.37256 457364; 312.6596 29695; 312.73224 698640; 312.74232 102894; 312.99205 2749836; 313.21922 1088250; 313.31678 3813006; 314.33439 209277; 314.57364 8483; 314.60854 161344; 315.36385 3523997; 315.59528 1769758; 316.19487 1443274; 316.51126 76928; 316.76246 1398; 317.03668 1437989; 317.05005 11630325; 317.08624 8144740; 317.1595 186615; 317.26272 6580; 317.40952 4667752; 317.50177 841743; 317.56081 23914; 317.84971 719749; 317.90626 8752; 317.91756 181519; 318.05038 2301270; 318.11925 31592; 318.13365 61503; 318.34567 6703231; 318.37715 511080; 318.39119 72169; 318.41417 36116; 318.59191 140232; 318.59908 78145; 318.69689 49320; 318.79133 10844538; 319.12293 55850; 319.26615 20805; 319.32613 4085914; 319.4076 458261; 319.55262 893457; 319.65391 3093; 320.69864 14251888; 320.89283 28377; 321.02112 23093; 321.23818 187969; 321.33027 4699006; 321.68226 1462604; 321.92802 7779; 321.9442 34917; 322.31017 367169; 322.37952 4573263; 322.46051 67256; 322.51823 3129158; 322.83562 13321; 323.13468 5305; 323.23554 8026; 323.38559 62221; 323.78309 3844675; 323.8993 466069; 324.16246 1566489; 324.2249 2629; 324.48633 20876; 324.94878 7412404; 325.00885 48096; 325.24042 25334; 325.37137 1971391; 325.61564 24801; 325.8057 438527; 325.86125 16765; 326.57953 952258; 326.62231 353344; 326.70537 8596; 326.99487 5491626; 327.2994 5692; 327.3056 116350; 327.48104 24535; 327.72422 28617; 327.90802 26777243; 327.94799 8206457; 327.99085 8973859; 328.00585 4378; 328.25149 23084444; 328.47197 19491; 328.54357 5903; 328.89169 3626650; 328.94719 117259; 329.07965 42252; 329.33646 5746; 329.57063 53921; 329.72 185881; 329.73594 40117; 329.78795 19442; 330.11966 55188; 330.12546 22302; 330.14022 3823912; 330.4712 21725854; 330.5479 8441744; 330.59712 37163; 330.82411 5274; 330.95432 4848; 331.00008 20789; 331.18962 22487; 331.25328 43389; 331.74817 56117; 331.88816 56506; 332.13752 29827; 332.53264 563584; 332.57051 1603; 332.92361 1138029; 333.05065 52188; 333.23667 62735; 333.29132 818658; 333.64737 110054; 333.81669 9449; 333.88454 1460596; 333.89883 175390; 334.08728 1738509; 335.31582 31393; 335.42919 59466; 335.6682 6402673; 335.69376 44780; 335.78419 67958; 335.86399 1199440; 336.47167 16851; 336.53159 8122713; 336.5981 7059630; 336.97704 6426; 337.08868 69315; 337.45355 41046; 337.49462 26198; 338.23961 469183; 338.34265 76550; 338.87222 24287; 338.91274 29999; 338.98556 9516552; 339.0259 67413; 339.1931 33457; 339.22224 15668; 339.2427 147917; 339.72556 37754; 339.86785 7480461; 340.52039 5272743; 340.55631 6801406; 340.58091 3080496; 340.86883 12523; 340.90567 178579; 341.27568 3607478; 341.33568 5649; 341.37039 1936883; 341.41813 6020; 341.64399 74583; 341.98489 56960; 342.2423 64046; 342.30576 1558; 342.41287 73476; 343.00308 25930; 343.24017 41607; 343.30183 5256831; 343.38321 31820; 343.55692 1433689; 343.5722 15266; 343.65756 5171244; 344.34772 4734; 344.37015 69894; 344.42966 622674; 344.45057 8283210; 344.55348 29678; 344.8381 14544; 344.93635 1268230; 345.15166 54004; 345.15758 76334; 345.17327 4433; 345.26945 3575528; 345.52017 63191; 345.55572 15517; 345.56051 64816; 346.0291 48232; 346.14411 82532; 346.54493 1393685; 346.67726 473900; 346.69629 593467; 346.84607 35934; 347.16609 21826; 347.2329 6697; 347.24282 34865; 347.36632 1464357; 347.40601 4195725; 347.58409 1127150; 347.80981 120722; 347.84709 633663; 348.03965 56872; 348.05494 4043667; 348.1499 66234; 348.26865 1791965; 348.37559 53654; 348.47278 7916; 348.93307 1840136; 349.05282 158337; 349.09876 3603357; 349.21347 10815; 349.4651 1439822; 349.98866 24387; 350.23126 466518; 350.39374 79998; 350.53461 65237; 350.55038 30943; 350.80145 7400; 351.02486 24181; 351.02888 34091; 351.10688 13424; 351.12929 4073; 351.34452 897232; 351.57379 1510984; 352.05499 7488655; 352.49236 1864; 352.60112 9212; 352.75308 55500; 352.90441 1412138; 352.90544 3367157; 352.94067 4765; 353.01413 17403768; 353.25656 76490; 353.46825 931328; 353.60868 1280647; 353.73059 552144; 354.16614 15632; 354.64646 108912; 354.64659 1858446; 354.7717 2488956; 354.84417 334955; 355.2417 832882; 355.90284 764754; 355.90685 4967; 356.08832 41920; 356.35486 172078; 356.77585 9874; 356.9109 46410; 356.91281 51176; 356.96181 27358; 357.59559 26160; 357.62122 1729333; 357.76184 120363; 357.78717 132764; 358.07113 59363; 358.14342 7054; 358.22589 11585; 358.25409 2904476; 358.26511 3413639; 358.39565 75909; 358.43773 6630331; 358.55511 478657; 358.67607 48095; 358.67919 485995; 359.15733 10846; 359.66458 6138; 359.68279 47522; 359.71055 38434; 359.76371 244263; 360.02817 77816; 360.6844 3713269; 360.80621 6759576; 360.97243 427798; 360.97312 4319306; 361.20133 2467414; 361.20613 35544; 361.26488 201; 361.40356 52571; 361.59447 63957; 361.66281 128607; 361.8686 6792; 362.18109 5392; 362.21207 1332014; 362.24342 8069; 362.40142 54797; 362.44519 40843; 362.94211 8516759; 362.95433 3248; 362.95961 94605; 362.99582 189093; 363.59748 971412; 364.23434 1471864; 364.24864 2288; 364.39743 22178; 364.41361 63905; 364.48598 2919747; 364.66407 5086564; 365.36097 1563; 365.72765 1653724; 365.86454 8655048; 365.92606 13904; 365.97822 5587; 366.29286 3249187; 366.36017 8484726; 366.64423 67059; 366.74141 179896; 366.77568 75994; 366.81433 1093036; 366.87364 7197978; 367.69716 1609; 367.98598 1202452; 368.01906 125414; 368.15719 1620298; 368.18931 29628; 368.32187 162099; 368.51104 28416; 368.65233 66104; 368.68325 784760; 369.83058 3185957; 370.00952 4586501; 370.03613 9869907; 370.0743 67033; 370.19422 3975164; 370.36525 37322; 370.72548 651707; 370.79199 46787; 370.88504 166104; 371.11534 13101; 371.19481 34046; 371.22006 48922; 371.42384 7588; 371.5729 12838; 371.58422 1486911; 371.67679 41972; 372.07945 75802; 372.12049 912352; 372.26985 17413; 372.29484 479094; 372.64762 17752; 372.80477 7601; 372.82362 1529296; 373.47535 1527850; 373.85699 10703; 374.03931 1019053; 374.22631 3103373; 374.38497 104997; 374.79132 77960; 375.25254 11678673; 375.53961 32687; 375.81913 666635; 375.87794 2076583; 376.07395 60071; 376.10963 55975; 376.68851 60033; 377.14617 51978; 377.36289 2442; 377.40173 148712; 377.44897 8583; 377.47791 105541; 377.71255 393186; 377.74472 5639; 377.9762 1656216; 378.49059 38713; 378.50116 58543; 378.63628 75862; 378.80915 121965; 378.8326 56546; 379.41443 4051139; 379.42627 5934; 380.03157 6382362; 380.14209 728899; 380.52704 28112; 380.62497 916855; 380.81472 7360805; 381.02613 24153; 381.05575 59229; 381.23593 390301; 381.30398 1455; 381.35366 16350053; 381.46673 20545; 381.61589 3235992; 381.82365 5473; 381.90478 1735806; 381.99053 1478204; 382.19591 75327; 382.57168 127639; 382.57547 455042; 382.7764 11381; 382.89727 52016; 382.97119 2054; 382.97976 47312; 383.00235 1166770; 383.47587 7627; 383.53804 335724; 384.08024 9971; 384.23181 2224656; 384.35027 4924936; 384.35114 5370; 385.07977 36753; 385.13498 3840071; 385.23014 29128; 385.2982 13432; 385.45562 28250; 385.71375 840105; 385.74775 1150591; 385.81935 660733; 385.87634 69313; 386.17914 55657; 386.18601 2094623; 386.19993 82346; 386.54952 8301; 386.90952 15450; 387.24582 25335; 387.24905 68076; 387.47769 2443071; 387.48171 26717; 387.61252 63364; 388.44407 1289575; 388.50525 25573; 388.5302 9947215; 388.58605 1188386; 388.79212 354038; 388.89488 65363; 388.99888 61312; 389.10009 68341; 389.27266 8225; 389.27555 512877; 389.95127 1910; 389.99652 27522637; 390.0089 5853113; 390.37066 54483; 390.53133 5990871; 391.235 20170; 391.34415 16779; 391.40284 64396; 391.40724 28056; 391.42319 54579; 391.74052 27569; 391.88313 4850113; 392.10303 1984830; 392.15731 63104; 392.49813 19761476; 392.50715 15848; 392.85645 8129035; 392.89192 8531; 393.07632 55788; 393.10145 177119; 393.23511 67124; 393.34111 925318; 393.75026 137764; 393.85758 888286; 394.66654 38613; 394.79847 5722545; 394.96964 76757; 395.16675 1512; 395.32423 5918688; 395.33382 2488154; 395.36962 6598919; 395.8088 6812327; 395.81113 1871993; 395.87701 1755204; 396.37755 28601; 396.71182 58030; 396.96101 4108; 397.03331 4904630; 397.08386 700055; 397.87103 1064; 397.89633 63944; 397.96127 11677; 398.24846 2411; 398.3347 44037; 398.38865 2222825; 398.39131 25899; 398.47252 355696; 398.56901 2206531; 398.9349 2842; 399.06112 15685975; 399.09447 3359908; 399.23213 9118; 399.34333 22851; 399.35202 63192; 399.44401 9408126; 399.47688 572163; 399.70225 5827; 399.71982 77448; 399.73495 15996; 399.77976 572737; 399.92829 18179051; 399.95591 6251; 400.06277 4684572; 400.08723 393; 400.21722 769177; 400.27842 1734305; 400.4204 1687821; 400.63982 157142; 400.64601 23236; 400.72277 5715; 401.48932 49221; 401.50226 21955319; 401.58169 7249; 401.58524 45193; 401.61108 5087124; 401.70689 12847159; 401.86728 1556295; 401.89552 3650461; 402.10622 3931; 402.50016 285354; 403.12333 62102; 403.15464 23516; 403.60226 4416587; 404.03504 26539; 404.23554 133928; 404.36024 741867; 404.36559 11782; 404.48247 2653533; 404.77699 27415; 404.87728 1718749; 405.20148 1980766; 405.26003 33083; 405.26694 9843; 405.5494 145390; 405.61964 8528; 405.72696 1905609; 405.78061 4371394; 406.0822 1396543; 406.10753 1863832; 406.14997 18333; 406.37468 2867; 406.55359 29441; 407.11943 155507; 407.12878 4880542; 407.29528 25670; 407.55751 69466; 407.92233 477; 407.99728 1331896; 408.18683 53872; 408.37066 9344977; 408.80759 138994; 409.42594 4280531; 409.51706 75298; 409.55235 17279; 409.62051 77628; 409.77293 2131693; 409.78174 7255725; 409.86957 8684932; 409.88845 39382; 409.94831 89399; 410.41001 5326; 410.79339 24720; 410.99755 752502; 411.33208 1095725; 411.50576 75429; 411.51654 4262; 411.60711 6434108; 411.709 1232525; 411.73469 178071; 412.19261 47320; 412.36497 2975122; 412.44672 6303379; 412.53288 1019192; 412.57099 304720; 412.68201 2705864; 413.00844 517858; 413.47463 2415; 413.91385 49720; 414.00414 62470; 414.11433 26190992; 414.11471 864078; 414.11505 10857; 414.11859 368829; 414.12188 3259948; 414.19722 23371425; 414.402 140839; 414.53016 25675034; 414.54129 102979; 414.98952 100267; 415.04159 4412320; 415.51361 5116; 415.6125 22095597; 415.63024 18349; 415.80586 16082; 416.37632 16978; 416.49725 4694519; 416.53004 2590; 416.64296 7221; 416.98468 30369; 417.28196 2023473; 417.32635 41500; 417.34681 23608; 417.44301 633116; 417.53154 48264; 417.96143 12885837; 418.03002 68651; 418.15244 34767; 418.15893 1867474; 418.27568 76122; 418.46659 740540; 418.53779 19442; 418.74974 4458649; 418.89434 27572; 419.26595 2241645; 419.63388 139499; 419.67667 2045617; 419.79645 1594704; 419.89796 49; 419.92275 127397; 420.07247 22690; 420.20037 173280; 420.44797 1375810; 420.45123 468008; 420.45272 165669; 420.70533 25000927; 420.91228 35584; 421.23501 136503; 421.3696 27941; 421.74891 9801; 421.86724 186910; 422.21058 1410055; 422.37228 5044; 422.42264 28978; 422.44687 47011; 422.48008 4057; 422.59013 1555114; 422.66544 780792; 422.76499 14574; 423.05166 8376; 423.09113 4818; 423.53216 27804; 423.54573 27913; 423.79386 1430920; 423.94896 13676834; 424.02563 7051; 424.0682 1131; 424.20809 8077; 424.22754 4632; 424.34527 3465341; 424.39133 64157; 424.89908 6850; 425.56322 1108186; 425.87785 5513; 425.89343 24330; 426.09721 511839; 426.18351 5743; 426.20009 9109091; 426.27432 364608; 426.40478 34733; 426.68291 1399929; 426.73597 65786; 426.78933 42759; 426.80063 48705; 426.99562 3312914; 427.01719 6708281; 427.05174 2839631; 427.65888 7879; 427.74893 51759; 427.97518 18383; 428.28133 9287841; 428.56435 2228742; 428.69926 5415; 429.07763 7074607; 429.12229 2042; 429.24301 1686587; 429.35064 1053454; 429.46025 66464; 429.61586 8910875; 429.81102 17510; 429.88828 57382; 429.92564 5301725; 430.33008 23463; 430.46953 34194; 430.49267 120399; 430.57113 10714; 430.74479 101162; 431.11099 60460; 431.35323 37139; 431.45834 48077; 431.78577 2762440; 431.83355 16903026; 431.90146 1783916; 431.98226 438; 432.04414 116754; 432.48359 49209; 432.87197 5916398; 433.18148 2698966; 433.3247 1642215; 433.35291 3730246; 433.53107 4828638; 433.53653 3426744; 433.56602 198685; 433.75371 575758; 434.03481 3360965; 434.53171 74710; 434.62294 28739; 434.88881 952355; 434.97803 164352; 434.9855 4322; 435.11919 386646; 435.32256 8027; 435.43925 73337; 435.64413 93413; 435.72682 125036; 435.77013 43200; 436.13096 4195430; 436.17732 67660; 436.27103 51124; 436.28053 40026; 436.39314 30180; 436.53824 9783; 436.65805 4499141; 437.10899 4000461; 437.1691 1000358; 437.28299 34624; 437.35819 75806; 437.3983 1316; 437.52135 358; 437.84214 107663; 437.97775 9247; 438.01322 1425494; 438.1157 5725; 438.53509 6789096; 438.8085 78888; 438.82545 6653; 438.83882 154084; 438.93025 67461; 439.18212 78498; 439.34934 1487192; 439.4221 6970842; 439.4518 12702333; 439.7881 1496; 439.85879 108370; 439.90723 2148; 439.91165 1528893; 439.93317 44477; 440.31066 1197985; 440.31104 3347032; 440.44282 669948; 440.56615 89867; 440.64994 166198; 440.71274 6423; 440.83056 9048; 441.13503 9837030; 441.33891 18395; 441.83911 2138184; 442.12426 23238; 442.50275 9362852; 442.57645 7960912; 442.65696 45264; 442.77869 32089; 443.52904 6113807; 443.8421 26153; 443.9152 47787; 443.92233 5266515; 444.02077 780599; 444.04593 79227; 444.23428 41002; 444.25696 21448; 444.42277 4120; 444.94932 67280; 445.03377 11457; 445.06116 102417; 445.32815 51725; 445.34614 8778; 445.49602 77909; 445.56435 5454500; 445.78273 2292116; 445.83752 3070424; 446.26929 122598; 446.37309 76721; 446.87131 9125710; 447.28321 6953; 447.49414 365821; 447.60605 1678552; 447.75855 1882273; 447.84822 5121536; 448.05946 8871375; 448.38353 8913459; 448.51465 12230; 448.89757 1760452; 449.38235 74012; 449.43736 35660; 450.01076 2453240; 450.04515 3587701; 450.24666 29162; 450.47759 29756; 450.65689 1931177; 450.87139 90479; 450.96974 7238; 451.01408 1513995; 451.16503 933562; 451.37657 38134; 451.49161 641565; 451.53661 137165; 451.74847 8985791; 451.85173 15671; 452.16206 1484435; 452.28267 707; 452.31809 8227658; 452.33384 12754; 452.51615 2467245; 452.58298 51008; 453.25751 15780; 453.37708 42229; 453.38623 1022451; 453.45947 70750; 453.46976 4065335; 453.67208 55244; 453.67428 1580859; 453.71609 91495; 453.7916 3452935; 453.86986 1446371; 453.90384 4829808; 453.93124 44463; 453.97254 67548; 454.09138 16998; 454.09537 30266; 454.16939 15343; 454.39479 1617573; 454.56561 4252; 455.0241 49184; 455.08124 8491899; 455.09293 135315; 455.1171 75946; 455.17214 5706; 455.23149 1382768; 455.31652 35023; 455.33595 45218; 455.69078 4303724; 455.71482 121744; 455.73125 16306877; 455.7509 48469; 455.81797 9297; 455.99018 32964; 455.99999 24163; 456.38273 98505; 456.41876 4872307; 457.03545 11935; 457.20386 62194; 457.24995 94879; 457.44213 165; 457.44371 1880581; 457.54563 4125; 457.55284 48603; 458.14993 3961; 458.24708 510967; 458.69546 15792393; 458.69613 31675; 458.91397 628541; 459.09534 10001231; 459.53491 4300; 459.56873 7017216; 459.59395 64332; 459.77899 19644; 459.93716 9362; 459.95526 67075; 460.26229 1753234; 460.31873 1845; 460.35074 46451; 460.3788 10547; 460.38233 35727; 460.45547 66299; 460.50386 6369393; 460.65781 1152491; 460.76699 4170651; 460.99271 132357; 461.3052 14843; 461.46963 79099; 461.74131 17712; 461.89482 850701; 462.03157 1736741; 462.39156 1126309; 462.57529 487810; 462.73309 65676; 462.81909 77521; 463.06011 1537875; 463.43723 7713; 463.6067 8596615; 463.61441 3770; 463.6399 1153024; 463.87098 7279; 464.10078 4978; 464.22446 1003764; 464.23477 29209; 464.2944 22054; 464.32104 142991; 464.43657 185182; 464.97479 468663; 465.02669 9874; 465.1482 2541; 465.28432 30960; 465.86215 1075; 465.9949 4832471; 466.24708 408; 466.54623 54218; 466.66464 3754; 466.74849 10366; 466.79464 74977; 466.96162 36226; 467.15965 37985; 467.25275 3523019; 467.55564 2048576; 467.70695 1486093; 467.90711 23121; 468.18235 22016; 468.28041 29493; 468.30339 33920; 468.71173 1678354; 468.88808 16715937; 468.91321 161423; 469.23156 3965129; 469.44424 1778850; 469.65018 15132; 470.11633 20277; 470.28659 34860; 470.28906 38450; 470.3438 3330761; 470.38449 481217; 470.39382 84121; 470.45395 23022; 470.64634 7280; 470.901 76279; 470.97474 13376; 471.62435 139516; 471.62641 29216731; 471.91335 40395; 471.94766 42778; 472.00118 9684; 472.31044 14691; 472.41981 1055320; 472.83208 67331; 472.89918 8232336; 473.05271 150837; 473.3653 29010; 473.50903 16219; 473.68739 1929120; 473.91218 1805596; 473.99702 62002; 473.99785 8874729; 474.12456 608615; 474.12555 40409; 474.20319 60838; 474.22522 54059; 474.39572 663962; 474.44182 45436; 474.64243 180060; 474.82966 10677; 474.87981 3881574; 474.96321 9170111; 474.99125 59982; 475.01152 41180; 475.07696 4798613; 475.22598 1930166; 475.3094 2382; 475.369 339924; 476.15319 21325; 476.36358 33325; 476.38425 30261; 476.44249 100487; 476.45718 2461625; 476.77444 27107; 476.91762 68098; 477.05264 3903879; 477.64759 2092201; 477.85983 64707; 477.93961 50938; 478.01933 85759; 478.57574 9281; 478.77446 4937; 478.79568 529458; 478.95225 409128; 478.98301 9200820; 479.11465 1171127; 479.24368 1178954; 479.36286 34526; 479.42851 4420; 479.54306 31032; 479.56589 816092; 479.64097 10284379; 479.73126 576805; 479.76953 49474; 479.86466 1827; 480.03672 39877; 480.07178 21940; 480.10071 8978; 480.32129 257537; 480.67582 6637; 480.89667 49045; 480.98563 10713825; 481.2808 46780; 481.56606 1798562; 481.67313 28813; 481.74714 444; 481.85407 71321; 481.95561 4782; 482.19584 49435; 482.47323 1231450; 482.5038 1811749; 482.79475 9094795; 483.43666 1156525; 483.78507 133502; 483.79857 2499957; 484.12554 21050; 484.75366 778704; 485.00843 172670; 485.48757 5789; 485.71915 2343; 486.10376 39162; 486.18243 19198; 486.33498 30171; 486.64497 9941421; 487.18363 8181381; 487.20763 65038; 487.33107 117836; 487.36326 36459; 487.42553 4766647; 487.54209 856419; 487.65481 470564; 487.75916 4074836; 487.86687 1013052; 487.96443 8371; 488.29699 1943476; 488.39235 2144990; 488.45647 2137265; 488.54727 8478; 488.99903 4244; 489.00009 2010230; 489.1104 73909; 489.11127 45439; 489.27576 466322; 489.28607 73515; 489.30146 1331336; 489.96546 3761021; 490.09858 3562402; 490.28055 3729934; 490.4546 48359; 490.6626 9704967; 490.87343 1036376; 490.93582 197061; 491.1056 3959790; 491.53327 6121126; 491.63549 34413; 492.25887 9826; 492.42846 48228; 492.55462 1296644; 492.5622 44408; 492.84529 26941; 492.85631 1965436; 492.9727 41648; 493.07 122; 493.30259 5674167; 493.51482 62843; 493.61973 1832757; 493.6467 6773820; 493.76029 59162; 493.79435 20744; 494.06413 25187; 494.30536 74247; 494.56391 1677818; 494.57392 9657061; 494.59174 301536; 494.62847 1371124; 495.21788 1718786; 495.79338 3735327; 496.14135 47965; 496.33032 68344; 496.37783 5952847; 496.43867 24626; 496.54695 3391341; 496.6163 2031; 496.73689 1136135; 496.85561 4901; 496.93097 6197; 497.05035 758685; 497.11714 6996511; 497.26899 3214593; 497.45186 5150; 497.54446 19018087; 497.72059 28626; 497.92644 18104108; 497.94415 51795; 498.39956 2247; 498.45484 9496; 498.50647 353682; 498.60238 33626; 498.81299 6482364; 498.82341 850453; 498.9107 42700; 498.93715 214609; 499.11766 106; 499.52194 22696; 499.75513 122071; 499.7625 4797709 +<6, 4>: 0.19881 1308558; 0.2946 1885455; 0.31215 49805; 0.44301 62794; 0.88011 187794; 0.90962 25438; 0.918 2711530; 1.02384 21926112; 1.03117 35930; 1.03886 1638; 1.3562 6172786; 1.55756 13308; 1.61175 2552664; 1.7483 6988; 1.93409 2144688; 1.95577 38802; 2.04914 462797; 2.25974 46327; 2.28196 37823; 2.54054 9572885; 2.62941 189423; 2.71327 27462; 2.90863 1335704; 3.0391 57676; 3.13369 40301; 3.30701 4609798; 3.39834 99859; 3.65158 53777; 3.76832 1328958; 3.98273 34914; 4.22762 3414114; 4.59041 28924; 4.84772 159424; 4.91363 84260; 5.48863 45270; 5.59458 2891230; 5.61381 277787; 5.77484 22187; 5.89496 71723; 5.9108 6075810; 6.08565 161512; 6.27599 64583; 6.50206 112609; 6.94591 1843974; 7.26433 797; 7.30528 499; 7.52506 189761; 7.60163 29649; 7.63203 13249; 7.82237 48539; 7.91931 2009467; 8.02421 1606666; 8.07251 25145; 8.31268 114744; 8.42044 35449; 8.57502 4273546; 8.80814 90724; 8.93754 6314079; 9.111 26171; 9.24328 4449452; 9.26349 5910308; 9.27626 50840; 9.70326 33754; 9.91156 76549; 10.43097 65495; 10.43262 43983; 10.4338 9230043; 10.47311 6497; 10.83703 32109; 11.20019 5255; 11.43844 32083; 11.51031 292478; 11.60938 965215; 11.74855 43009; 11.78036 18350; 11.91883 20720; 12.00077 60125; 12.43304 134927; 12.45368 9985842; 12.54606 94857; 12.55662 1736108; 12.63876 17118; 12.6942 18028; 12.81363 2071; 12.94192 83827; 12.94253 3209; 13.26186 7796421; 13.44936 4335994; 13.6819 96471; 13.73001 4405; 13.77521 887; 13.95281 519718; 14.03396 40269; 14.05566 847482; 14.12019 199475; 14.41288 3788; 15.03777 2307750; 15.89315 40492; 15.93958 17791; 16.12492 1230; 16.47286 11860; 16.507 79561; 16.6804 6287; 16.90993 1225414; 17.5703 4515; 17.58211 1701329; 17.6495 6967; 17.96895 14332; 18.21426 52767; 18.35579 70381; 18.36541 7715; 18.8472 4643541; 18.88394 6402140; 18.93007 5308; 19.14728 20459; 19.20556 3473; 19.235 44995; 19.41967 7986722; 19.48352 6261; 19.77257 20194; 19.84188 3428471; 20.02527 89321; 20.05806 1467154; 20.09985 164513; 20.18348 80404; 20.37703 1734712; 20.82452 3182216; 21.13173 38908; 21.21183 48779; 21.53007 39760; 21.61484 6454; 21.62713 6585; 21.71485 28128; 22.23118 1710966; 22.45493 146357; 22.50521 175938; 23.15466 1546; 23.20344 20954; 23.47271 22628; 23.59136 5537602; 24.22356 1144542; 24.22796 8392114; 24.29317 865985; 24.41766 57170; 24.43021 6906; 24.85818 22197; 24.86731 699653; 25.08901 28274; 25.14318 9453; 25.17045 7081; 25.25327 445368; 25.26404 45427; 25.34969 63669; 25.56638 16757; 25.67664 4435; 25.76466 32889; 26.08762 51155; 26.45198 37709; 26.45928 7994; 26.50062 689; 26.83084 28348; 26.8715 1665020; 26.99771 126414; 26.99809 32096; 27.16398 1571; 27.30381 1111543; 27.78286 1320016; 27.85269 1827; 27.87886 2290569; 27.93172 16138; 27.95035 37725; 28.16196 3358616; 28.17506 72014; 28.18006 572423; 28.19319 25815; 28.40517 966348; 28.63435 43144; 28.70723 5153; 28.91165 423104; 29.22723 21371410; 29.8283 389628; 29.83115 66888; 29.94946 1535531; 29.95668 6973606; 30.10621 43282; 30.11629 65974; 30.25036 4496; 30.477 3263625; 30.52251 4558; 30.55938 8290; 30.58599 996366; 31.04389 27316; 31.24173 24417; 31.33801 1323555; 31.46085 48775; 31.67499 5300388; 31.7166 61565; 32.14058 308147; 32.65127 1003; 32.69186 21701; 33.1842 7487; 33.47279 2775616; 33.63573 62524; 33.74636 160010; 33.74892 24470; 33.87731 418390; 33.99893 18124; 34.0008 23680; 34.06297 83505; 34.57381 63546; 34.62274 13945; 34.83917 1346607; 35.62226 1464944; 35.7399 6857; 35.78167 53347; 35.97165 1534781; 36.21718 646658; 36.32502 51260; 36.4564 36712; 36.46964 35332; 36.79601 122408; 36.82188 77079; 37.0755 8700; 37.54479 6991955; 37.59866 57475; 37.80138 75753; 37.82221 7373443; 38.06061 12613931; 38.08603 53713; 38.11675 4911670; 38.27749 56491; 38.37783 1822137; 38.60495 9608; 39.43935 94655; 40.06612 77359; 40.17518 7909; 40.59141 6207310; 40.65789 64215; 41.00836 1811458; 41.24313 650621; 41.36928 69718; 41.39384 22142; 41.78497 3102056; 41.86963 4667; 41.95184 611; 42.24626 9450624; 42.46185 633543; 42.6383 5632; 42.69262 4435102; 42.77293 30193; 42.78448 14337; 42.79501 38618; 42.90868 11703; 43.28292 16577; 43.55541 662031; 43.6208 42394; 43.88839 4893696; 43.96309 6563258; 43.98273 141212; 44.02877 28176; 44.43261 13344; 44.83769 699667; 45.16731 1622484; 45.52535 3831614; 46.40978 1382557; 46.63932 53776; 46.68603 327664; 46.862 5162; 46.86455 24347; 47.18552 3607067; 47.42211 131813; 47.54614 1224543; 47.7046 143111; 47.96041 44988; 48.04022 36475; 48.22655 3749638; 48.51805 839734; 48.67289 1005347; 48.7434 2666821; 48.8653 1286940; 48.91139 7239327; 48.99143 69621; 49.09522 751665; 49.10757 1243210; 49.12831 1718585; 49.2326 74705; 49.3205 147105; 49.67074 6682416; 49.88146 37101; 49.97099 694841; 50.34565 4345; 50.4797 65312; 50.48024 1945571; 50.59306 77984; 50.79627 4902013; 50.83807 2305066; 51.2134 2054604; 51.35011 5528346; 51.66111 1061885; 51.92583 807777; 52.17003 43834; 52.37178 23585; 52.38606 3903476; 52.39703 16088; 52.45367 42709; 52.61596 9217; 52.75522 70875; 53.19347 67649; 53.21433 126185; 53.24779 806580; 53.59784 1425297; 53.75382 14339; 53.80714 103245; 53.88172 26901; 54.11495 484544; 54.15185 9143692; 54.15719 24486; 54.27465 96474; 54.3351 66281; 54.99544 65781; 55.26259 24135; 55.43561 5390; 55.62843 170642; 55.65876 23150; 55.74187 230; 55.76773 414; 55.80259 5844; 56.64024 16944; 57.12227 1493564; 57.35683 8042; 57.46835 57763; 57.85997 1949147; 58.22777 24491695; 58.34811 46439; 58.36767 387469; 58.38088 24833578; 58.3939 149523; 58.40704 176920; 58.51528 79462; 59.20738 6422755; 59.30473 49015; 59.34816 296392; 59.37026 128886; 59.97452 11520; 60.48378 139115; 60.53917 3795; 60.56456 26231; 60.69744 8327523; 61.01468 6938; 61.04617 44622; 61.2021 4575285; 61.44042 149263; 61.66932 63265; 61.95297 4771; 62.09406 52278; 62.1683 2736837; 62.19156 5515806; 62.42125 64003; 62.71903 15270; 62.72492 3552; 62.88195 9257903; 63.10351 20471; 63.45015 5856774; 63.64923 41124; 63.81517 20051; 64.03561 12367; 64.17807 648861; 64.22774 171962; 64.50116 51008; 64.50151 51135; 64.52644 339549; 65.09846 29719; 65.13482 72086; 65.35838 29972848; 65.36154 3986857; 65.75563 25516; 66.02956 75235; 66.06798 28112299; 66.07734 4648934; 66.22168 148185; 66.33842 311135; 66.76699 1400107; 66.78634 3718667; 66.83108 71988; 67.05109 919706; 67.23959 46155; 67.77457 479710; 68.11283 62154; 68.14779 655; 68.83249 39155; 68.89474 21397909; 69.04236 5868; 69.0741 23372; 69.38659 307511; 69.48042 738; 69.53091 26397729; 69.53423 5451; 70.27045 7233; 70.42172 42433; 70.88973 170656; 71.29704 17613923; 72.00076 73151; 72.14193 5318; 72.34189 4362441; 72.58002 3058; 72.6936 79287; 73.10061 44665; 73.14549 1500498; 73.17417 3284981; 73.30087 16538; 73.61049 35459; 73.90748 28032; 74.83412 3147303; 75.48358 8635687; 75.57231 624697; 75.73114 884474; 76.14993 870397; 76.3483 1088244; 76.53923 44167; 76.55073 1848652; 76.78574 4867469; 76.79794 36092; 77.01548 22981; 77.02284 130417; 77.28755 60966; 77.29398 29109; 77.55976 44184; 77.56411 111013; 77.61005 2716; 77.75714 662975; 77.78359 42496; 77.8829 834668; 78.00526 3888; 78.01605 28377; 78.04929 8922069; 78.2305 1614406; 78.52823 8685699; 78.67903 44458; 78.81709 64672; 79.05113 35604; 79.09206 3963655; 79.11469 1648234; 79.23609 26429; 79.5171 517894; 79.83095 5659271; 80.21828 21659258; 80.34224 6219794; 80.39758 61385; 80.56187 45791; 80.67272 25900; 81.02683 651141; 81.06667 178; 81.13661 178325; 81.26103 18843247; 81.59263 1583324; 81.78566 38315; 81.87563 49304; 82.05822 29645; 82.40002 7863; 82.43329 2450457; 82.52167 25054; 83.42189 9956; 83.76022 890; 83.91059 33521; 83.92542 7574418; 83.96177 26736; 84.17562 993969; 84.31239 66116; 84.39943 187643; 84.40807 46846; 84.427 28038; 84.72844 51369; 84.76447 72254; 84.8175 5881; 84.94337 4195342; 85.00764 5055551; 85.11705 538368; 85.72894 3821; 85.75546 26838; 85.80052 94884; 85.83039 1054994; 86.01025 5579069; 86.15183 1030937; 86.17648 12059; 86.18809 37950; 86.29656 4750733; 86.38482 44452; 87.20434 19823; 87.25572 5309; 87.52662 23753; 87.68052 30708; 88.45736 17730; 88.48209 17531; 88.55887 4665844; 88.80431 844961; 89.64209 13107; 89.78459 19419631; 89.84512 36959; 89.93432 39184; 90.27203 120273; 90.33996 189553; 90.41641 5489173; 90.4681 1789689; 90.49695 77372; 90.95555 991420; 91.15641 104587; 91.4065 3906482; 91.48741 51994; 91.82129 48424; 91.88572 9773; 92.22648 8619617; 92.2344 21389; 92.57797 12709; 92.80868 629272; 92.96797 5434; 93.26847 7814952; 93.45913 113535; 93.49888 1413937; 93.57467 4653; 93.70937 4471598; 93.81109 103645; 93.97085 1610083; 94.19703 60790; 94.36563 729381; 94.47712 18686; 94.93207 33004; 95.61566 4056246; 95.9344 1327733; 96.1462 9475; 96.38933 11571; 96.67638 267062; 96.75857 717786; 96.77099 8098399; 96.94711 76408; 97.12232 5212; 97.1555 792832; 97.268 19468; 97.30977 2271474; 97.37505 60040; 97.53529 70275; 97.82048 50822; 98.10593 79497; 98.14818 395683; 98.34073 38565; 98.35474 58309; 98.76998 44710; 98.77826 22165; 98.78537 68599; 98.84939 815579; 99.51996 54110; 99.74474 31480; 99.77646 539; 100.23031 32851; 100.43165 55245; 100.7685 836; 101.31994 133327; 101.42262 65313; 101.52312 2116; 101.5731 765149; 101.66923 1837829; 101.89719 55647; 102.05548 158992; 102.15481 7652937; 102.3268 786431; 102.5847 9187; 102.88131 25467; 102.8859 1630; 102.9255 6045; 103.123 29421; 103.26914 109832; 103.33976 29878; 103.56061 377875; 103.69753 36664; 103.74013 4997; 103.77627 51358; 103.7988 10518903; 103.92939 7183855; 103.94772 782186; 104.02698 16521; 104.48831 1313557; 104.88777 17975; 104.98177 183; 104.98693 26681; 105.47483 1075728; 105.48825 61896; 105.5057 3709708; 105.88166 76464; 106.00769 175070; 106.06309 5117; 106.07653 6206188; 106.30949 73171; 106.3125 27881; 106.45982 165; 106.47834 19937; 106.51562 1717098; 106.70262 1410867; 106.83696 7987439; 106.89867 979846; 107.04816 3334459; 107.18564 129290; 107.33023 68490; 107.59135 24468; 107.77788 366988; 107.81678 6013213; 108.13227 4515766; 108.15138 1386544; 108.49273 1239; 108.66238 2458599; 108.72274 42796; 108.76376 9768; 109.28439 3174; 109.42759 6377637; 109.62322 99713; 109.65492 29611; 109.74667 2076422; 109.83983 13149; 110.38453 32410; 110.57099 4107139; 110.83872 7196780; 111.27135 280640; 111.5479 1368531; 111.93763 3221988; 112.05229 145605; 112.16312 1281115; 112.19944 30643; 112.22274 47932; 112.27084 23896; 112.49395 33337; 112.61007 31773; 113.32073 4151059; 113.44638 7375; 113.46674 28906; 113.68982 880; 113.7174 302170; 113.72157 1643776; 113.8175 23128; 113.98779 56261; 114.05308 949; 114.10154 57608; 114.17343 6470; 114.1842 14431949; 114.22212 25027; 114.27384 21525; 114.2878 5125888; 114.42985 243993; 114.6898 3167137; 115.0579 3574966; 115.3303 5276; 115.57241 16235; 115.83165 153205; 116.30408 36157; 116.39735 8848; 116.51975 470; 117.04451 54290; 117.17517 2494962; 117.20158 9776087; 117.2631 20861; 117.28298 2777940; 117.53212 1093979; 117.85713 732264; 117.92651 285036; 118.11838 7939; 118.29477 4135; 118.34366 274; 118.5884 824039; 118.67644 11480; 118.73958 613313; 118.84836 2617; 118.92794 71015; 118.99827 464188; 119.04818 2365421; 119.39869 37966; 119.52528 4016104; 120.2626 359895; 120.31055 1901593; 120.45781 2014; 120.5994 8324073; 120.95554 1254054; 120.95703 48800; 121.06189 1827308; 121.31275 14569346; 121.49697 1785880; 121.66582 530; 121.74613 3360122; 121.88883 22802; 121.93427 40504; 122.1022 81878; 122.35525 1308774; 122.41926 25143; 122.46948 1086836; 122.78327 1191417; 122.85425 12242; 122.95797 1459960; 123.1356 37604; 123.22129 2346; 123.48582 24295; 123.56126 8680; 123.91743 25254; 124.13129 1438411; 124.50343 46563; 124.80703 155262; 124.87442 51515; 124.97344 608; 125.19548 75536; 125.41856 640692; 125.43829 52876; 125.48348 1124644; 125.49871 26891; 125.62925 62088; 125.7556 11090; 125.79423 694281; 126.00497 71054; 126.28103 21203; 126.31362 667189; 126.53422 20971; 126.7313 23533; 126.80694 17160; 127.4233 17725; 127.55498 23077; 127.66468 23898; 127.86989 37718; 127.90039 1636851; 127.92752 8284222; 127.97516 1458057; 128.20741 74827; 128.38636 688705; 128.41461 8977550; 128.62108 135156; 128.69319 30937; 128.70131 827; 128.83118 5016080; 128.93715 25335610; 129.04904 185382; 129.5921 299247; 129.74766 78837; 130.2864 1368868; 130.39591 470622; 130.66974 28421; 130.69897 7938714; 130.75894 4390369; 130.80659 11344; 130.83177 194689; 130.93303 55462; 131.5356 25221; 132.00577 327813; 132.04106 10068; 132.1676 66462; 132.2536 51066; 132.80433 2704; 132.92776 4092; 133.19703 393845; 133.26763 60700; 133.3098 78864; 133.67672 855219; 134.21277 22903; 134.23153 1823607; 134.37593 4504736; 134.68788 5886226; 134.77644 1983; 134.89939 2476; 134.98213 297511; 135.13399 3272708; 135.42008 65758; 135.49529 36157; 135.67862 209298; 135.71073 64302; 135.73248 1431440; 135.76741 1013871; 135.92432 1667656; 136.48073 1870; 136.52054 875588; 136.52562 472087; 136.59011 225670; 136.92952 74012; 137.09007 4358; 137.11567 48741; 137.14301 21820; 137.15369 46485; 137.2788 695941; 137.54353 7338; 137.76635 926684; 138.16784 8791; 138.65044 62564; 139.09221 20248; 139.4726 43987; 139.81924 13605; 139.9974 24631; 140.04728 29672; 140.18301 17311; 140.51676 566419; 141.09264 37103; 141.13209 7143; 141.62844 184940; 141.92232 46536; 142.08557 7975254; 142.10448 1260440; 142.24725 30639; 142.49937 62003; 142.5676 17078939; 142.78486 6194; 142.79454 3573863; 142.95298 116947; 143.03589 120991; 143.15314 14083; 143.29184 514685; 143.3779 2109; 143.40994 3199702; 143.46902 2815; 143.48771 123778; 143.60811 1420721; 143.76448 33627; 143.79806 24606; 143.8172 5825; 144.76707 21043; 145.03953 1024; 145.12229 1534296; 145.23502 8141; 145.5527 1163219; 145.79828 29602; 146.03298 329699; 146.29068 1854574; 146.32712 398257; 146.3945 12675020; 146.40711 63099; 146.59012 8505399; 146.64829 5128171; 147.07069 3635; 147.3225 762904; 147.32939 6254524; 147.41375 2989678; 147.44475 6584710; 147.55337 164539; 147.56701 498567; 147.57052 74498; 147.63451 25760; 147.81667 72299; 148.14103 825802; 148.24148 71086; 148.50892 77072; 148.50967 40171; 148.5569 54686; 148.87963 18744032; 148.89165 23186; 148.91187 5899806; 149.06359 70758; 149.11732 1005390; 149.77503 178921; 150.18916 173697; 150.36251 6801; 150.47972 282870; 150.60795 8387; 150.69835 2049; 150.71316 949742; 150.72291 1517670; 151.24911 16970; 151.30042 115249; 151.35015 3565180; 151.35398 27334; 151.37317 3326; 151.45144 1905965; 151.62385 27711; 151.6708 1514880; 151.8492 422200; 151.93474 10268; 152.16214 4905252; 152.25262 1268699; 152.55884 1328945; 152.90283 8657; 153.06017 21756; 153.40513 13358216; 153.66323 1404; 153.7296 2282507; 153.88174 3003313; 154.03422 3185; 154.06317 3177842; 154.10788 28465040; 154.16224 75716; 154.18416 4954479; 154.26982 8320713; 154.53201 78077; 154.96539 7436; 155.18094 2891966; 155.2298 4884061; 155.35347 499081; 155.58434 79750; 155.84239 59591; 155.89416 130215; 155.9154 122976; 156.2194 652037; 156.27114 829; 156.6773 9191; 156.75869 10120; 156.89684 65163; 157.02185 21606; 157.09263 1462231; 157.3041 1029485; 157.44178 52339; 157.45596 9722; 157.61432 70635; 157.65247 1323269; 157.70837 55450; 157.80307 23391; 157.85945 37167; 158.60564 286847; 159.49973 9794487; 159.7377 8929893; 160.06455 4447840; 160.12891 1925926; 160.41996 29703; 160.47552 144982; 160.65322 4397814; 160.95658 19006; 160.96399 58057; 161.14122 421806; 161.27811 1769982; 161.62543 58371; 161.75023 22669; 162.4422 198962; 162.73803 886602; 162.83756 772736; 163.05443 29155; 163.30135 31536; 163.54207 47880; 163.91584 40838; 164.48201 3812461; 164.51834 22541; 164.61908 3416864; 164.68434 56425; 164.90512 249727; 165.23482 6165; 165.33175 22207303; 165.40741 4624243; 165.60821 1676099; 166.25426 3576109; 166.74908 12511; 166.79583 1850456; 166.97941 25081; 167.00343 1158475; 167.18646 41663; 167.21681 23187; 167.72337 73367; 168.0423 987; 168.23778 22396055; 168.70495 25560413; 168.96088 2265; 169.09139 298120; 169.17119 1635831; 169.66302 20428072; 169.77885 187041; 169.93611 22637; 170.32305 36553; 170.38501 30246; 170.38609 45557; 170.49446 45523; 170.65134 1733637; 170.78763 2577; 170.84264 43482; 170.92057 674946; 170.9655 29739; 171.02517 4585395; 171.22385 12176; 171.24282 2939557; 171.26328 44824; 171.64786 57663; 171.81575 1401353; 171.88645 8431; 171.94607 5558226; 171.99177 4573; 172.06614 4723388; 172.16195 22355; 172.23242 57604; 172.62102 353; 172.81079 71894; 172.86527 12391; 172.94256 40732; 173.02074 685687; 173.09062 122719; 173.23577 3096409; 173.62955 8334; 173.8662 70300; 173.90458 117874; 174.197 466; 174.52712 181869; 175.02134 3847; 175.0644 3599; 175.20726 19998342; 175.65695 23153; 175.78315 255392; 175.98563 8868; 176.01989 28627; 176.16744 502357; 176.19991 19026; 176.37729 2366006; 176.57344 826805; 176.61511 6970227; 176.61747 37970; 177.1815 30279; 177.56754 1286; 177.67864 4284; 177.74443 4103306; 177.9723 1140997; 178.00372 12157; 178.19577 3699; 178.44664 192351; 178.4576 131227; 178.53646 7973; 178.61994 1279858; 178.70482 19347; 178.80407 4779; 179.0987 1983203; 179.37352 367911; 179.46416 2999652; 179.6665 14649; 180.01662 2002057; 180.02436 359149; 180.24785 4029446; 180.35621 6748; 180.38221 47857; 180.69979 24519; 180.7394 3110205; 180.77576 49336; 181.00667 55460; 181.25725 134801; 181.27651 33319; 181.31547 13848; 181.57842 12866433; 181.72182 43848; 182.03311 78103; 182.06085 64850; 182.09428 5331277; 182.3468 73852; 182.42251 38731; 182.6857 4794; 183.00748 70115; 183.27325 182970; 184.55857 3842479; 184.57832 283018; 184.7027 1417931; 184.95455 28038; 185.28461 3635858; 185.56839 116763; 185.97276 8319510; 186.01309 6428101; 186.11656 1060897; 186.11838 33045; 186.30523 16740448; 186.63566 20771; 186.66521 29619; 186.84759 104552; 187.1604 47369; 187.22656 27219; 187.25411 1251977; 187.27045 28245142; 187.39574 446176; 187.46703 32623; 187.60352 26848; 187.61889 69699; 187.94259 59097; 188.50578 59190; 188.55717 53772; 188.73978 4986603; 188.87178 9103; 189.36635 7620; 189.40223 17; 189.44802 9074; 190.1141 28176; 190.2416 155415; 190.24664 8785; 190.61545 23111; 190.93265 3904485; 192.2112 26565; 192.36579 35914; 192.47501 2535361; 192.66616 5651; 192.70873 2956386; 192.98953 40973; 193.07811 3939; 193.18385 15049; 193.22631 54521; 193.35958 65755; 193.72046 176369; 193.87385 54286; 194.06272 3625247; 194.29457 1515458; 194.81566 34240; 195.19032 7469; 195.2918 17570; 195.35902 751702; 195.37829 2646559; 195.4704 116865; 195.5769 2910089; 195.62709 2731304; 195.63847 29140; 195.76735 5963; 195.99154 1666756; 196.07089 1075951; 196.10933 42826; 196.44787 6450; 196.59564 61989; 196.69527 39174; 196.75309 1137822; 196.93731 7490985; 197.10771 1716591; 197.49902 3415454; 197.58471 1066052; 197.85667 4783769; 197.98983 6866; 198.09399 436876; 198.36302 1514; 198.50096 1630209; 198.58269 54208; 198.8472 40363; 199.21813 28021; 199.28983 5462; 199.34656 7031750; 199.69773 79424; 199.97529 1873638; 200.03772 7692339; 200.08918 58660; 200.37657 63380; 200.41332 37096; 200.53544 67700; 200.82526 17476; 201.01863 1153; 201.02314 28726; 201.12182 49971; 201.26532 3468; 201.84857 5793755; 202.14705 2117; 202.18438 21285; 202.43084 7754482; 202.65715 8882; 202.96835 9147488; 203.21391 981981; 203.37165 43874; 203.64142 12815; 203.65934 6900268; 203.68274 13860; 204.18904 688656; 204.20671 37865; 204.26099 77514; 204.32294 4394382; 204.32955 883723; 204.48181 968709; 204.49562 1975064; 204.57885 317181; 204.58164 1306483; 204.7248 780982; 204.85731 28288501; 204.89059 133851; 204.89916 7005079; 204.948 4754; 204.99924 1657601; 205.09972 525210; 205.14499 55303; 205.21826 29682; 205.49615 3957; 205.77249 3028600; 205.78843 2983; 206.56623 51986; 207.1999 28539; 207.34379 1013269; 207.40043 7324645; 207.66919 5086502; 207.90839 81877; 207.99013 1548028; 208.12428 591780; 208.41672 9808904; 208.43731 32184; 208.67627 19786; 209.15015 191064; 209.28077 1132079; 209.31512 3160989; 209.43605 3275; 209.49074 152894; 209.77977 2494810; 209.78862 53641; 210.32234 26024; 210.68928 6341950; 211.10197 60309; 211.11932 837; 211.77787 2243624; 211.80407 39373; 211.87723 126075; 212.02282 72553; 212.03528 28583; 212.22329 17928; 212.23426 3184958; 212.42908 2657821; 212.87214 10212; 213.16387 50859; 213.22331 4032702; 213.41029 2906341; 213.46774 3263067; 213.65281 78181; 214.09697 5318373; 214.52363 659662; 214.64565 27065; 215.33724 9762; 215.39866 7095; 215.45456 1724795; 215.71561 30332; 215.81538 4443003; 215.9338 57315; 216.41076 9445; 216.8281 1890; 216.88535 181158; 216.99346 38680; 217.19569 3209; 217.2502 31410; 217.54201 6614; 217.60422 3299; 217.74103 5927; 217.89231 40795; 218.02899 77419; 218.17025 19691; 218.40986 3545166; 218.48056 53626; 218.48206 2575; 218.55908 556029; 219.03975 5018; 219.13986 44627; 219.4974 8013; 219.70112 3069023; 219.71642 3133514; 220.05796 1640119; 220.53144 6830236; 220.58867 59490; 220.86067 75989; 220.91977 77521; 221.00085 70184; 221.05022 8962; 221.16181 909135; 221.35078 29707; 221.36011 60044; 221.37329 5137841; 221.75806 35308; 222.53322 27087; 222.72577 6252; 222.72709 45711; 223.2574 24696; 223.28744 2656; 223.31476 9379154; 223.93381 10518; 224.12359 14027; 224.15804 22044; 224.35195 5889163; 224.41904 56773; 224.52932 8354; 224.6237 3941228; 224.79248 2184; 225.20045 11909; 225.27865 65376; 225.3614 5636271; 225.42302 2574447; 225.53796 16652; 225.81495 56340; 225.8839 40223; 226.02533 75570; 226.02917 29836; 226.08145 3041440; 226.10088 378516; 226.35074 2712386; 226.55435 11170; 226.56295 769; 226.57907 41689; 226.63064 1741630; 226.93067 18822; 227.13859 1934199; 227.17766 694971; 227.36237 1428126; 228.10591 9297; 228.17233 1750715; 228.35478 1216333; 228.48136 9550; 228.8528 28495547; 228.96571 128433; 228.98239 46409; 229.01464 28596; 229.233 4855678; 229.35317 69146; 229.65939 27059; 230.11058 271651; 230.37267 14971; 230.45633 1823230; 230.58787 145375; 230.63314 1089811; 230.95735 667232; 230.95995 1101866; 231.07931 926984; 231.12318 46941; 231.3967 2281893; 231.42609 2741; 231.48746 2660; 231.67092 2221701; 231.89771 62555; 232.00777 6354; 232.09446 43297; 232.10595 117330; 232.43049 1773627; 232.62982 3643311; 233.03039 118008; 233.04719 342223; 233.15796 991475; 233.26869 162315; 233.30992 57206; 233.31329 3368471; 233.36055 23425820; 233.42812 13581; 233.44833 7845; 233.78606 3011225; 233.95549 2013; 234.1759 78957; 234.24489 2130; 234.46218 41737; 234.73713 2577068; 234.76986 94020; 234.8155 25897; 234.85579 614963; 234.96701 3592; 234.99331 2124826; 235.02435 1610131; 235.18619 7552528; 235.25994 26633; 235.33517 9790; 235.37227 18467287; 235.53367 65058; 235.72348 28771; 235.86479 115674; 235.95172 71082; 236.13697 768456; 236.1719 38331; 236.52274 124708; 236.91239 4658566; 237.00156 38580; 237.20703 6591661; 237.71457 30753; 237.7254 28423; 237.80713 963913; 238.23327 8302989; 238.27718 3154365; 238.32421 4071; 238.33124 5567; 238.33815 5903; 238.65779 47005; 238.75925 2046920; 238.83066 3383185; 238.91234 21607; 239.24777 2120; 239.36377 23947; 239.49841 62033; 239.50354 4068318; 239.57034 53251; 240.10137 7240857; 240.1484 21017; 240.32829 69270; 240.49223 24609; 240.5561 47434; 240.64423 4883; 240.68603 27350; 240.87054 7519346; 240.89533 15273; 240.95042 7126; 241.19261 64840; 241.33867 1196578; 241.48561 18593; 241.56047 25708788; 241.56153 5095; 241.57122 7346; 241.66747 9422; 241.9361 781546; 242.12575 54360; 243.33397 36978; 243.40257 605582; 243.46517 4189703; 243.55459 15621; 243.63836 17712; 243.69652 3374; 244.7309 185463; 244.77869 36456; 244.83906 78407; 244.92931 7372; 245.06544 11592; 245.08036 22476; 245.28987 7531; 245.41183 31208; 245.66287 1861124; 245.77138 1944070; 245.7769 81279; 245.78896 65674; 245.82243 26863; 246.01551 71986; 246.25588 1008678; 246.84042 43405; 246.85866 18776; 246.96469 15423; 247.19931 27180; 247.23092 8455; 247.29492 4433112; 247.61283 77318; 248.05481 38128; 248.30108 6251; 248.89555 28207; 249.15317 208; 249.24576 3326803; 249.74251 30164; 249.74697 126860; 250.112 3560703; 250.3184 866249; 250.68244 853; 250.70883 1742896; 250.71365 8315; 250.87602 6960; 251.27509 8724; 251.51988 1230538; 251.83885 11469754; 252.00358 27629; 252.20227 34704; 252.79685 148023; 253.03405 5551554; 253.07005 21538; 253.4188 55902; 253.64337 4516; 253.97355 3249511; 254.17767 31696; 254.31759 76757; 254.46027 21172; 254.57073 182513; 254.60037 47401; 254.63367 3884829; 254.6502 28544; 254.72495 75790; 254.75819 6916; 254.78656 118692; 254.97478 6513808; 255.69932 448494; 255.78024 42965; 255.9934 195832; 256.12345 8035208; 256.68294 22423; 256.73064 1199166; 256.80242 1173206; 256.8537 3546598; 257.01566 46356; 257.04244 7306; 257.04839 4246222; 257.13283 1298931; 257.19885 9128; 257.43472 24715; 257.48594 45222; 257.55864 5232; 257.64096 42069; 257.70502 5694581; 257.93047 4006586; 258.66673 37207; 258.91167 1113112; 258.99968 910132; 259.08507 4356; 259.13091 34610; 259.15133 24596; 259.38277 3103; 259.40809 1351599; 259.4931 125631; 259.61079 1105728; 259.61888 26178; 259.63163 23136; 259.75061 3570653; 259.82264 6030761; 259.9735 1320756; 260.05071 8189724; 260.48693 30388; 260.6527 4679; 260.69315 18675; 260.71306 74888; 260.71667 16230; 260.74113 846; 260.82565 7083; 260.87953 1349870; 261.28963 77301; 261.40625 26852; 261.46371 15872; 261.97639 42732; 262.0022 18994; 262.01047 8178; 262.13929 25362; 262.28904 170044; 262.47929 424082; 262.58197 77812; 262.64419 8388364; 262.75512 9117682; 263.36851 52620; 263.4385 1625795; 263.64268 107933; 264.04868 168156; 264.11911 22263; 264.18364 3458484; 264.72445 6160; 264.95464 1930823; 264.99978 32271; 265.01061 9918; 265.0666 3015655; 265.19751 39199; 265.71699 5313488; 265.81904 3424017; 266.17527 320148; 266.24116 12204; 266.24858 29913; 266.35418 5783782; 266.39842 61496; 266.50099 2492126; 266.80198 7204228; 267.06406 1527482; 267.37373 69044; 267.40229 1243869; 267.41041 41603; 267.65475 62942; 267.66907 55259; 267.73371 22431; 268.10311 2187298; 268.14791 47687; 268.22672 26677; 268.3999 61583; 268.41292 5943359; 268.4718 28926; 268.51966 1996; 268.71144 23333; 268.77537 20838; 269.14988 26825; 269.16854 909924; 269.22761 10194; 269.65545 4089634; 269.815 30656; 270.05569 39178; 270.23742 1538300; 270.67947 7266; 270.96472 4575440; 271.25986 44336; 271.30019 20456; 271.46003 1073689; 271.68692 898778; 271.85316 26919; 271.88115 72118; 272.23552 2591119; 272.25089 47770; 272.28255 71015; 272.77971 12496335; 272.82245 52012; 272.84778 728119; 272.90182 3388758; 273.19714 92005; 273.3965 57779; 273.8447 66549; 273.88185 49387; 273.95744 52182; 274.02868 42364; 274.22729 3439; 274.39025 17373708; 274.39963 1257355; 274.97332 467196; 275.07517 17085831; 275.08482 8157; 275.24716 6180; 275.42916 27990; 275.57854 690808; 275.87354 3338327; 276.01908 1568456; 276.04445 335540; 276.06392 717980; 276.38264 8830745; 276.4715 21505; 277.06903 12900; 277.2941 1354; 277.38573 815516; 277.50363 4443069; 277.60238 140; 277.65952 29749; 277.84303 321605; 277.85246 173095; 277.85331 21546; 277.95495 29480545; 278.02186 18267; 278.17116 5502150; 278.33201 188661; 278.36027 256180; 278.54307 99433; 278.87253 99442; 279.2805 7087; 279.33597 4884223; 279.70345 1224160; 279.71356 9084; 279.8686 66878; 279.88467 843536; 279.95045 34779; 280.0043 4568645; 280.09632 35438; 280.10297 44716; 280.26676 65803; 280.36025 35158; 280.42745 2515309; 280.43904 8236; 280.52799 64804; 280.68073 76128; 280.95777 1395572; 281.05033 6942; 281.22109 5474493; 281.46517 16338; 281.5997 1905058; 281.65733 43772; 281.76512 830229; 281.91048 4510372; 281.94565 14485; 282.03311 189346; 282.1425 43035; 282.2071 110145; 282.22992 3207850; 282.39118 61840; 282.42777 270117; 282.70593 4472474; 282.89719 1005986; 283.6004 135523; 283.64371 1885944; 283.74007 3861071; 284.25888 33845; 284.38992 4685791; 284.46932 4867763; 285.11201 43901; 285.34162 28004; 285.41845 43549; 285.43374 943278; 285.61731 26257267; 285.62596 4295; 285.66593 31049; 285.91774 27040213; 285.95398 8966; 286.11553 1849650; 286.15256 147754; 286.41123 97002; 286.72588 641; 286.78369 14838774; 287.04247 3357309; 287.08839 70347; 287.21765 167923; 287.32187 117; 287.66251 67363; 287.77404 177157; 287.87765 27396; 288.19295 8723; 288.24443 41227; 288.35756 236026; 288.41753 8456; 288.565 3989362; 289.09454 1721289; 289.19244 5620927; 289.44076 8225031; 289.57556 9543; 289.89278 53388; 290.30864 9366; 290.35838 9809; 290.41141 342240; 290.67106 63630; 290.69069 39680; 290.89305 8899768; 290.89431 5306; 291.0586 4844255; 291.67884 762122; 291.86797 29451; 291.92224 2231437; 292.02008 8043; 292.07118 6842; 292.18874 38031; 292.42729 1856827; 292.59649 77042; 292.77901 44894; 292.93315 12335; 293.06849 3513; 293.11737 466232; 293.1292 109860; 293.78482 4869; 293.82594 19547; 294.27644 10994; 294.65997 10111; 295.21037 4291; 295.39933 75584; 296.01998 4989; 296.12521 23295; 296.26713 3557145; 296.42593 945201; 296.51588 7976620; 296.5258 21442; 296.62717 21035; 296.85259 912; 296.89867 63959; 297.23976 578316; 297.24773 392333; 297.3396 9019552; 297.85908 7561; 298.24664 7671943; 298.30478 68701; 298.31035 76439; 298.48204 21622; 298.95809 5916; 299.54085 1941440; 299.71864 34509; 299.75496 2053; 300.10766 1620; 300.211 1075; 300.33052 6282104; 300.50324 31754; 300.58782 76344; 300.72847 55026; 301.43458 823114; 301.68825 28988; 301.94938 6007785; 302.03134 177941; 302.05079 1563357; 302.05122 154692; 302.19588 75733; 302.31053 62420; 302.37285 892878; 303.1735 6990; 303.51054 2831067; 303.70773 17686; 303.7593 26850; 303.85588 7103776; 304.02698 13579458; 304.11327 4863; 304.11981 7888461; 304.21436 7978; 304.2928 1059979; 304.38929 22679; 304.40831 26018; 304.44039 1000022; 304.60304 2148876; 304.65619 9472746; 304.73939 1912599; 304.79663 1967178; 305.25671 36075; 305.43294 53077; 305.61611 4554980; 305.67771 34848; 306.18042 62600; 306.18593 24836; 306.21018 3567201; 306.90171 6771155; 307.16445 26986; 307.22185 326681; 307.34308 4486889; 307.47692 42731; 307.56947 533775; 307.59887 323202; 307.66019 590476; 307.9079 25059; 307.92497 2844; 308.07114 4602404; 308.23052 71740; 308.28922 16759689; 308.30247 12137; 308.34759 17072; 308.44745 679286; 308.49505 4132699; 308.72286 78602; 308.93371 2651; 308.97519 140772; 309.07591 1347386; 309.15995 1625877; 309.17724 1873800; 309.18094 5080; 309.37224 51845; 309.52633 1676996; 309.57214 435094; 309.6454 27263; 309.66717 12987; 309.85603 65645; 310.3816 19087864; 310.40807 3462855; 310.47982 17425; 310.494 23137567; 310.54904 9650; 311.17149 9965; 311.36454 66241; 311.55227 48040; 311.70968 4535172; 312.53215 845454; 312.62097 43870; 312.67479 24100; 312.80844 1761053; 313.19947 1261000; 313.31828 45730; 313.34549 78939; 313.45305 7879; 313.53375 69364; 313.63966 6709; 313.71591 30824; 313.77843 630335; 313.96282 2064086; 314.08365 8216149; 314.31482 4640785; 314.39248 28896; 314.43831 37594; 314.48869 1903768; 314.49278 59454; 314.84227 50221; 314.90867 97618; 315.07655 2639139; 315.2404 20515; 315.3968 69495; 315.51002 599607; 316.44508 385550; 316.45658 626540; 316.58402 27665; 317.26242 7269820; 317.34105 5430; 317.34565 485494; 317.42033 37869; 317.49188 533842; 317.63825 2473525; 317.83078 406807; 317.95713 65338; 318.17014 15109; 318.19003 2851839; 318.34201 65117; 318.62575 8392548; 318.81827 30855; 319.08282 20846; 319.09305 1236648; 319.14082 21094; 319.28135 16; 319.4893 4382895; 319.82505 1651610; 319.8958 4468; 319.95367 25077997; 320.01589 632836; 320.24349 4804; 320.32838 56270; 320.9356 8287988; 321.18189 1747246; 321.2929 2888828; 321.48107 21455; 321.68364 820753; 321.92048 51644; 322.21516 1128140; 322.32984 8897; 322.36513 994950; 322.38419 125547; 322.45666 9976; 323.02145 25776; 323.10363 50149; 323.18384 86034; 323.41463 1040274; 323.57743 2047; 323.89323 22377; 324.1319 845213; 324.46719 4953957; 324.4672 42753; 324.88773 25469; 325.16124 5577; 325.2229 4740775; 325.30747 45237; 325.51462 49574; 325.53931 13888; 325.5907 52779; 325.69031 798; 326.04386 199946; 326.34671 9995; 326.46371 6985995; 326.48761 20360; 326.56589 2596; 326.63429 252; 326.73527 1905927; 326.78261 7045; 326.88211 24130; 327.17183 39285; 327.17248 1125658; 327.24256 14428; 327.38711 62185; 327.56305 41995; 327.88237 29735; 327.94079 49179; 328.09836 9028806; 328.83438 6106328; 328.93368 1469083; 329.34678 28260452; 329.65609 72738; 329.95764 28655814; 330.00881 1377381; 330.23975 476598; 330.2827 1307200; 330.35346 2799677; 330.36525 26219; 330.44912 162; 330.70835 308302; 330.73542 3880614; 330.84493 41039; 330.84761 490086; 331.07461 38674; 331.12693 388651; 331.24119 172839; 331.6466 3601276; 331.901 917702; 331.93571 4268; 331.94949 1204456; 332.13172 43278; 332.19838 109339; 332.37428 61498; 332.4559 1197986; 332.50737 32272; 332.78793 2948; 333.36043 6472686; 333.60684 6790280; 334.00598 396; 334.22831 4094603; 334.33686 63590; 334.60583 12693; 334.84653 1316130; 334.89227 15176; 334.96273 153078; 335.05177 15361; 335.11112 63899; 335.19419 1844104; 335.30793 640047; 335.43568 59323; 335.47566 34234; 335.67159 4412842; 336.22739 1455205; 336.35293 3213683; 336.40916 51266; 336.52156 7547; 336.97816 886068; 337.25612 5419220; 337.29425 72633; 337.47632 5306; 337.68722 22910; 337.71059 11434; 337.73979 1740331; 337.81943 69738; 337.84216 3430712; 338.06276 33140; 338.13959 4841117; 338.73999 27472; 338.79027 9662508; 338.99223 2205413; 339.09539 214469; 339.83424 11168; 339.85073 910535; 340.07362 2731750; 340.49748 2819143; 340.5154 49393; 340.6003 37277; 340.77079 37570; 341.09305 32791; 341.09766 7628351; 341.10989 808128; 341.33885 22513; 341.35704 8457; 341.95276 47322; 341.99541 21571; 342.03498 48942; 342.26486 72028; 342.31238 4365575; 342.34399 1341697; 342.37233 8073750; 342.37804 4697617; 342.38008 3552; 342.55323 3025824; 343.1869 7063227; 343.26832 72301; 343.31599 8443; 343.3246 60575; 343.37733 3909; 343.49536 1886334; 343.554 1608446; 344.49983 1217454; 344.70685 24786351; 345.15093 7157639; 345.25682 911376; 345.36599 39145; 345.5245 902819; 345.86656 20408; 345.95812 1264504; 345.9683 78454; 346.07938 3275634; 346.3324 25409; 346.55312 9509; 346.56504 66325; 346.60396 22449; 346.62314 4002; 346.68745 46721; 346.89359 1337985; 347.71659 14805; 347.78344 5755; 347.99025 23312; 348.20825 35585; 348.24745 1766; 348.30184 28640; 348.54229 67784; 348.6404 65285; 348.99166 415285; 349.61048 17889; 349.85694 2246; 349.96022 48320; 350.06617 6475464; 350.31658 6541; 350.41026 19182; 350.56125 53085; 351.02433 27266; 351.22693 20496417; 351.23705 6437; 351.54946 1615026; 351.80072 1261452; 351.88434 24334; 352.21841 994244; 352.3154 1011570; 352.44165 3595; 353.38981 74242; 354.10612 244789; 354.14387 6288448; 354.15793 666138; 354.1803 4759351; 354.60105 9065; 354.74039 5238; 355.06639 286; 355.1255 3707705; 355.16082 4703; 355.30668 2344; 355.315 203718; 355.39339 4929881; 355.43284 39430; 355.59348 368432; 355.66315 2814284; 356.10493 8068; 356.14103 1155; 356.17511 28624; 356.84364 180796; 357.03507 109516; 357.1106 390955; 357.14512 1275523; 357.16961 6303087; 357.46268 2399; 357.62125 882068; 357.63996 76209; 357.92058 1610722; 358.18697 31409; 358.71187 14615; 358.88208 2728844; 359.19348 29105; 359.20268 1635681; 359.64976 2300713; 359.69483 25453; 359.85948 2477827; 359.9774 415882; 360.34806 61916; 360.40107 10837; 360.93071 63655; 360.98092 2995140; 361.06035 79521; 361.16391 67653; 361.28424 21285; 361.37753 24499; 361.42439 49925; 361.56861 36936; 361.59065 191689; 361.90016 2458729; 361.90121 1620960; 362.15212 4063748; 362.30305 7794; 362.34847 44861; 362.72447 3203842; 362.74893 40042; 362.91857 2685643; 362.93765 2435583; 363.04335 43206; 363.07314 26326; 363.10253 1779254; 363.10709 84343; 363.20704 66769; 363.40631 43772; 363.63768 1454823; 363.77656 2441315; 363.85888 2711463; 363.98932 6510684; 364.04664 4807336; 364.07841 3453423; 364.202 3875066; 364.86395 1728013; 365.33262 9912; 365.50387 23137; 365.53105 8105; 365.6733 59192; 365.69345 23766; 365.74597 38913; 365.9065 12006; 365.92433 66725; 365.93842 9396; 365.97153 50408; 365.97355 47868; 366.19749 89171; 366.44033 1972570; 366.54129 9416849; 366.6478 4625117; 366.68506 64925; 366.75996 6847210; 366.8069 981957; 366.89377 11367; 366.91227 2442921; 367.02462 1694123; 367.04328 3955974; 367.10766 32727; 367.43451 2349; 367.59645 19876; 367.65953 5151; 367.76791 55860; 367.79592 5162739; 368.01166 238523; 368.13898 2934512; 368.45923 21217; 368.921 4407621; 368.94901 71288; 369.05541 17281988; 369.11713 10927240; 369.18074 2558; 369.18904 6803; 369.47112 190797; 370.1654 6204; 370.3598 718803; 370.41521 73668; 370.44844 37331; 370.72796 1764401; 370.8723 42828; 371.23907 8328199; 371.26238 8257; 371.5696 751994; 371.80826 7516711; 371.89527 55991; 372.05439 6887032; 372.06879 1301960; 372.12509 1035326; 372.21852 47355; 372.88233 11456; 372.92699 68247; 372.99727 102370; 373.05542 19267; 373.07622 1756; 373.1231 497745; 373.60045 56285; 373.61272 4277748; 373.89992 159; 373.91845 32750; 373.96301 69552; 374.20142 604761; 374.20244 7202191; 374.46627 20830; 374.47266 183742; 374.68693 1103; 374.75251 5278; 374.82371 296650; 374.87155 9904; 374.9165 694236; 375.09295 1964148; 375.23898 379584; 375.3084 6651; 375.40518 654; 375.52377 564632; 375.52661 84074; 375.71592 9791; 376.04225 9834765; 376.08785 28601; 376.1006 5658; 376.5163 26568; 376.55029 25526; 377.03532 98247; 377.45066 180349; 377.77693 4803605; 377.79812 783554; 378.09249 4638; 378.20366 13347; 378.21841 3875; 378.45684 82592; 378.51529 5237; 378.57956 20665; 378.7618 672891; 378.77698 152063; 379.06552 28789; 379.32342 31191; 379.35382 4061; 379.44003 63955; 379.54881 69656; 379.54975 7958; 379.94144 1544415; 380.24361 3696139; 380.37761 20922552; 380.68843 3295730; 380.77365 3634156; 380.93588 71210; 381.18214 563287; 381.30001 20429834; 381.3537 3837; 381.57016 1648583; 381.83687 7320; 381.96181 1864342; 381.98613 875092; 382.00158 940167; 382.01965 9570030; 382.03431 114950; 382.17307 2207395; 382.21882 100791; 382.22578 25892; 382.53965 78967; 382.64718 20126; 382.67978 136259; 382.70837 2267; 382.92452 63944; 383.06986 27040; 383.20541 3016; 383.34273 8450; 383.38428 35702; 383.70729 54679; 383.73662 63634; 383.74173 2286430; 383.74184 78075; 384.15958 4211879; 384.85333 3975061; 385.04806 64379; 385.04834 1523425; 385.87988 1436; 386.1337 327; 386.27691 61867; 386.36794 7947395; 386.63148 73439; 386.86933 31468; 387.26698 42121; 387.29931 1188403; 387.4076 66106; 387.89938 50337; 387.9267 36418; 387.99775 23547589; 388.25085 148417; 388.25691 9890; 388.5387 75016; 388.82302 17; 388.83072 6988; 388.92792 872699; 389.44659 70928; 389.66229 111404; 389.71302 133817; 389.79064 6678; 390.04116 13041; 390.36958 5105923; 390.9027 1632554; 390.91816 147552; 390.93526 28302; 391.05267 129959; 391.19076 1486567; 391.36156 942779; 391.432 56757; 391.60171 250; 391.80613 51304; 391.91962 24345; 392.21917 2147148; 392.49528 41497; 392.60599 651613; 392.67202 564426; 392.98587 154390; 393.01403 9631; 393.10525 756690; 393.37413 366405; 393.68847 23502; 393.869 22706; 393.98952 27646; 394.01439 100999; 394.17188 50427; 394.35779 96787; 394.66477 68349; 394.69746 1257507; 395.00654 74682; 395.03503 6727; 395.15145 50875; 395.42397 8538755; 395.73492 782000; 396.03911 3038546; 396.04945 53417; 396.41226 164251; 396.67351 51276; 397.0666 60981; 397.12834 22329; 397.16628 24549; 397.22422 2316218; 397.7864 4849839; 397.90529 20108; 398.12435 48522; 398.16943 3146167; 398.44846 8739363; 399.06014 32844; 399.13714 4686; 399.23615 787791; 399.31075 75189; 399.48495 3288214; 399.54906 1059; 399.66118 27239; 400.45966 110566; 400.48983 8585140; 400.52208 29423; 400.851 57685; 401.10671 1963276; 401.21838 8443; 401.24673 3591629; 401.33845 18343; 401.36888 7212048; 401.54624 54498; 401.63539 2780686; 401.64169 24120; 401.79547 193930; 402.10267 8223; 402.48469 70175; 402.49635 67564; 402.53213 1315914; 402.67216 1346174; 402.7815 57132; 402.7999 150802; 403.43089 25348; 403.54037 10086; 403.58145 936219; 403.79464 20089; 403.87977 799295; 404.03967 1074654; 404.04324 38887; 404.04682 9030; 404.21424 71561; 404.25607 64631; 404.2567 67491; 404.65675 22155; 404.8002 4512820; 405.43771 1528175; 405.53087 76664; 405.56568 1526; 405.72036 7274; 405.73436 82813; 405.74391 49280; 405.80339 3602; 405.84344 8641667; 406.20467 14614; 406.26898 41972; 406.32403 198257; 406.32423 22503747; 406.63704 7754; 406.96028 7944; 407.24358 1184846; 407.32445 2738326; 407.3621 79929; 407.38004 1254437; 407.50188 5483; 407.52373 55474; 408.02148 21467037; 408.04722 4250056; 408.06545 4902772; 408.32526 56491; 408.65757 1894330; 408.73087 747199; 408.75806 3445886; 408.88105 5898; 409.12656 201417; 409.28525 1475626; 409.37529 53477; 409.38947 1720; 409.39294 65368; 409.55191 44603; 409.68836 9104; 409.77063 29297; 410.37553 7689; 410.57308 32578; 410.77008 602440; 410.80479 55740; 410.89873 7318606; 411.04682 17889; 411.30451 34948; 411.75352 248073; 411.79037 4683816; 411.89243 1345865; 412.05567 2101; 412.30402 4893813; 412.40913 26012; 412.60353 27491; 412.84878 22325; 412.85133 25406051; 412.91017 1858; 413.01048 2253; 413.22415 75949; 413.24041 890340; 413.34748 52881; 413.47583 28139; 413.57847 61770; 413.57882 27785; 413.63707 28665825; 413.79242 1498; 414.01836 687; 414.6753 1414058; 415.10028 156334; 415.11633 1086425; 415.15546 3411066; 415.49355 1363; 415.72985 27304; 416.09438 8927955; 416.11514 15618; 416.41663 1765170; 416.51662 72488; 416.56395 11649; 416.60633 71475; 416.67124 61049; 416.89007 640103; 417.02584 43107; 417.32581 62234; 417.39367 9322271; 417.44948 79526; 417.63805 15432254; 417.64939 27442; 417.75211 5122; 417.77962 9979643; 417.89008 4740294; 418.12482 26614; 418.47659 39122; 418.86399 26964; 419.01668 3076560; 419.44371 9630401; 419.7628 21692; 420.08662 3672; 420.37775 6732; 420.38152 24086; 420.47941 7742917; 420.55806 79132; 420.5993 1819433; 420.60068 1060; 420.60863 552410; 421.08294 73242; 421.33975 546757; 421.37362 470820; 421.70527 697061; 422.08272 8872; 422.14129 1851735; 422.18493 4106503; 422.19695 66717; 422.30303 64289; 422.37176 22502; 422.519 21436; 422.74568 166437; 422.89182 65634; 423.00445 77013; 423.14682 30458; 423.197 193325; 423.55363 8732349; 423.71876 43620; 424.26633 18697; 424.77986 32142; 424.7945 2858119; 424.89014 1831348; 424.99006 66791; 425.30796 66498; 425.3215 5683755; 425.59152 37673; 425.64539 63255; 425.65377 1183820; 425.80322 10558; 425.80899 283052; 425.93274 56169; 425.96271 24769; 425.99229 4659868; 426.14705 1649283; 426.30104 54313; 426.47991 12127; 426.89683 9080479; 426.94638 14391778; 427.02584 168059; 427.22606 28863; 427.32073 450999; 427.71998 70333; 427.79985 1988860; 427.80314 2423; 427.8088 49891; 427.95742 1526; 427.99691 1841985; 428.00682 38564; 428.15708 3600; 428.18384 57356; 428.23316 15082916; 428.23454 3519902; 428.26564 23064; 428.34499 2322889; 428.42295 928; 428.63435 27986; 428.63671 22884; 428.97147 184811; 429.23453 58584; 429.36151 85541; 429.4031 596872; 429.57021 3259359; 429.58351 69328; 430.01371 3172141; 430.08083 129247; 430.14359 65259; 430.54948 24660; 430.56626 127517; 430.56862 3781676; 430.84642 3282595; 431.05034 8833; 431.08658 8494; 431.1588 172510; 431.52789 638517; 431.91199 14678; 432.44572 993; 432.8288 1355990; 432.92529 8314; 432.95854 7146; 433.33059 415224; 433.37407 1201; 433.4769 132; 433.57934 15192; 433.67123 2710895; 433.75102 67798; 434.17646 5762944; 434.40377 1020356; 434.68628 29559219; 434.70532 3129011; 434.77749 8604; 434.89096 73681; 435.01309 867348; 435.47271 6945; 435.57669 648835; 435.90082 5131; 435.92655 69036; 436.00966 22509; 436.33391 199637; 436.6073 11853; 436.61224 14141; 436.77938 26017; 436.89257 1590591; 437.07914 903417; 437.09559 27673; 437.10862 3812; 437.21376 2677; 437.37643 57978; 437.64214 1451483; 438.2106 48935; 438.86325 20442; 439.08162 4878; 439.25626 29712; 440.19453 2758597; 440.2742 20489; 440.39687 60227; 440.46481 27491; 440.49812 5482024; 440.7059 23459; 440.89705 34669; 440.98668 35043; 441.04968 44239; 441.06184 79984; 441.14073 3390922; 441.60503 30826; 441.63876 68935; 441.65139 33247; 441.6885 7874; 441.70031 4758673; 441.86229 32099; 441.92123 6664; 442.05505 366683; 442.13802 4228; 442.36127 16546611; 442.36524 23174; 442.51944 14061; 442.70528 1585208; 442.80713 183379; 442.92691 27893; 443.29818 78092; 443.40902 10716336; 443.51608 42895; 443.82907 181166; 443.88968 54000; 444.05375 28780; 444.07891 43713; 444.21107 59016; 444.37054 996149; 444.42848 1156820; 444.45034 60311; 444.55395 446991; 444.56735 6511; 444.61752 38109; 444.814 1917526; 445.13196 7977; 445.23965 1791051; 445.50452 73015; 445.67593 1387295; 445.81996 5294787; 445.82273 16237; 445.87801 84665; 445.90027 53435; 446.02726 24649; 446.11943 6095; 446.92181 6983; 447.33917 16361101; 447.40169 421; 447.50993 3221; 447.61047 24784858; 447.66845 16755; 447.71625 9298090; 447.77212 1012187; 447.92927 764762; 448.11279 23646; 448.21103 88588; 448.46664 10073; 448.95446 1481419; 449.05483 25625; 449.13575 504605; 449.61328 987258; 449.66781 1020315; 449.69657 1526400; 449.73041 44980; 450.2608 14108; 450.29025 1234659; 450.29318 17942; 450.33852 27104; 450.41978 737407; 450.54408 137471; 450.92385 58894; 451.00337 55745; 451.10601 3168295; 451.31869 616606; 451.71833 266087; 451.78607 1333022; 451.83725 3980134; 451.91738 62892; 453.15531 39667; 453.23603 6964782; 453.3877 51751; 453.45379 3777236; 454.12369 2682029; 454.24489 7068; 454.30952 25913; 454.3307 7973; 454.62933 33149; 455.03226 133677; 455.30576 3934275; 455.33496 37295; 455.5998 1293352; 456.15326 1215527; 456.16186 56503; 456.22087 25743; 456.22646 16340; 456.53811 58891; 456.63636 1013327; 456.77237 2802967; 456.80365 1844667; 456.88698 1898431; 457.02201 1037361; 457.1491 155691; 457.47204 22479; 457.49054 45676; 457.58621 2443760; 457.62616 61397; 457.67293 22974989; 457.74053 167006; 457.7492 4966399; 457.78228 29226; 457.78274 3981; 458.2565 72187; 458.32408 950769; 458.52939 23808526; 458.61314 2551; 458.70673 47352; 459.06842 29825; 459.19472 128051; 459.22663 1390770; 459.26236 25680717; 459.39411 19335619; 459.59902 2234786; 459.74675 12293; 459.95601 4337834; 460.39758 177344; 460.41469 146281; 460.80645 108975; 461.49036 758680; 461.9398 134156; 462.20274 2548585; 462.35183 702623; 462.36297 74993; 462.47684 41105; 462.53334 57170; 462.6517 55122; 462.92871 7348; 463.0096 42622; 463.04398 35904; 463.30542 37769; 463.4352 233944; 463.94691 547026; 464.02446 5005740; 464.20791 65365; 464.22023 78739; 464.28008 5533; 464.30382 75280; 464.68421 142555; 464.71803 24782; 465.19545 34611; 465.6248 4229683; 465.75485 75378; 466.48903 1407671; 466.85183 944020; 466.85965 9435395; 466.97599 3886113; 467.15 909754; 467.25023 21928; 467.45277 4940370; 467.78488 903315; 467.93805 2437785; 468.00433 23038; 468.79886 68858; 469.00337 3046510; 469.05 47993; 469.09122 1454515; 469.17692 3732; 469.30746 38104; 469.50199 3854729; 469.50324 1264691; 469.51386 207805; 469.74888 198750; 470.12261 880822; 470.31449 48553; 470.49216 796218; 470.83364 28937; 470.89963 7841445; 470.9128 6210; 470.9329 768078; 470.94798 251; 471.27207 2799106; 471.54869 1622148; 471.71331 84813; 471.89239 157818; 471.96272 1310335; 472.18006 27784; 472.31981 1802634; 472.3572 61208; 472.56284 37683; 472.57992 9654876; 473.06142 9958; 473.36434 1334623; 473.62034 2032718; 473.66926 73788; 473.72688 24585; 473.7643 1192023; 473.76546 3283797; 473.80455 2324337; 473.91435 62350; 473.97181 86097; 474.07896 542154; 474.90869 568231; 474.95374 728879; 475.46713 1003596; 475.49419 18177; 475.62531 39867; 475.85835 1105275; 475.89588 185731; 475.95196 58146; 476.35226 45130; 476.59701 25543477; 477.26369 8705712; 477.60985 40378; 478.16217 30246; 478.18012 25036652; 478.50081 9503; 478.6319 16096; 478.747 12419; 478.8277 16995; 478.87265 2761; 479.09202 9998547; 479.42329 68439; 479.50073 8675264; 479.72826 7900; 479.86679 1274243; 480.16751 77013; 480.16848 3508654; 480.22755 13002; 480.25955 108641; 480.26099 4346547; 480.67144 9057; 481.04325 4200375; 481.37536 18258; 481.4472 3631575; 481.56154 78876; 481.94924 126821; 482.05512 3751364; 482.05667 3159908; 482.22116 72736; 482.46269 10461077; 482.71172 77594; 482.77923 622371; 482.92454 177771; 483.41255 71442; 483.45826 3848; 483.65589 44778; 483.80487 574446; 483.89387 8825588; 484.48071 382818; 484.52582 3750; 484.71167 499; 484.79116 181549; 484.79386 436779; 484.8175 57396; 485.04741 31339; 485.11032 275335; 485.25798 2448163; 485.34521 46758; 485.42241 21779; 485.72624 1491495; 485.73254 38192; 485.73317 8009745; 485.85066 23088; 486.35707 7211582; 486.52127 946715; 486.62094 34019; 486.65952 4642354; 487.23429 982129; 487.2665 26626; 487.35858 21944; 487.59419 11640; 487.71893 292714; 487.97526 8544; 488.05964 1731722; 488.13008 3970091; 488.59535 20647; 488.76013 26803845; 488.88785 847550; 488.91321 10759; 489.08478 37737; 489.11575 71958; 489.38408 23091; 489.64531 17671; 489.97881 13546; 490.07138 301632; 490.21828 5399828; 490.53694 6679363; 490.85045 7432; 490.91377 26894; 491.17703 2714757; 491.29861 1376891; 491.48909 14453; 491.79158 52112; 491.88248 172235; 491.90438 71972; 492.76554 3507103; 492.92445 17344499; 493.26254 8550838; 493.27874 5568; 493.53106 218784; 493.61663 2362105; 493.62862 6218; 493.64668 5500417; 493.67629 1599414; 493.70024 9761; 493.76103 7847155; 493.88444 36845; 494.08142 4825290; 494.51222 3497917; 494.58485 35797; 494.61667 72277; 494.62998 50625; 494.6304 3691; 494.81975 77562; 495.27654 78520; 495.28008 59702; 495.30874 27961; 495.57441 189615; 495.72743 7587; 495.80513 1252714; 496.06086 73441; 496.11715 36780; 496.45894 58160; 496.7524 4543081; 496.93472 70598; 497.16075 2253; 497.60785 1239650; 497.6985 626936; 497.72168 1150033; 497.77303 1126684; 497.80025 5703; 497.91907 9120; 498.33721 268802; 498.47923 45472; 498.54076 31979; 498.71321 760361; 498.81352 447012; 498.85335 927572; 498.86319 42617; 498.93948 44307; 499.6887 29926443 +<6, 5>: 0.33562 8235823; 0.87702 7743715; 0.92126 757; 0.93784 7260; 0.96468 4550655; 1.32473 8157336; 2.22743 3146811; 2.37883 21637; 2.44935 5976; 2.46676 43178; 2.63144 4391672; 2.74985 1174857; 2.928 3849131; 3.50159 6442392; 3.67466 29591; 3.71151 3839010; 3.89476 1222643; 3.93326 18220; 4.43674 1523663; 4.46074 4004626; 4.46981 9465163; 4.60293 69621; 4.75718 130859; 5.19398 26136; 5.38441 184898; 5.39357 25721; 5.66849 16474; 5.7833 21492; 5.9376 72605; 6.07961 921719; 6.12343 75337; 6.16644 3958284; 6.32124 678592; 6.34924 146138; 6.51846 8290524; 6.56536 1007509; 6.64173 21637234; 6.86828 472633; 7.08361 57680; 7.17113 33932; 7.42311 51063; 7.56822 9854; 7.6003 39941; 7.82672 4402816; 7.86567 46771; 7.87951 16; 8.22463 433249; 8.40697 42892; 8.52175 161900; 8.71821 1635; 8.74415 5715040; 9.10344 22933; 9.31705 1100930; 9.37695 9555; 9.40395 4256524; 9.52412 19144; 9.63207 4976; 9.66604 533502; 9.80777 6429; 9.82549 197583; 10.06878 20456; 10.27688 39911; 10.79255 8559; 10.79907 423634; 10.82251 65097; 10.88316 408180; 10.9538 54584; 11.0004 9203; 11.14383 49853; 11.83879 4232896; 11.89057 28001; 12.05392 36473; 12.87444 17821; 13.11019 1993524; 13.17126 385525; 13.21909 11006; 13.27499 2689580; 13.48561 71948; 13.68031 3085412; 13.98937 6245335; 14.04126 69172; 14.56924 4800459; 14.571 43972; 14.69009 1035062; 14.86966 259742; 15.04452 2875248; 15.08324 22700225; 15.30086 1743709; 15.50563 3798; 15.6907 41295; 15.69211 57257; 15.72336 3941182; 15.7439 8214210; 16.16545 148578; 16.19471 59373; 16.44868 32773; 16.8029 1704732; 16.83525 1888991; 16.89986 7920991; 17.13415 7876; 17.1404 103; 17.60649 5585; 18.28239 61577; 18.343 140810; 18.43272 1605126; 18.50377 7034865; 18.61507 512; 18.78825 229; 18.86577 52603; 19.34257 1129608; 20.01552 4518992; 20.23628 2856080; 20.50473 1581194; 20.64806 22988; 20.90718 3453714; 21.14039 152841; 21.21725 4470579; 21.42349 3510915; 21.62174 59945; 21.81839 225587; 21.96125 371356; 22.25367 3639; 22.40912 6532371; 22.5 31504; 22.72074 845936; 22.75852 16553; 23.13483 3486944; 23.40733 363; 23.54243 4550268; 23.69709 53936; 23.76734 1617064; 23.8638 189089; 23.94831 79113; 24.42363 651581; 24.537 1148390; 24.6505 56815; 25.10095 75338; 25.15044 8578; 25.2788 406573; 25.53174 24206; 25.83381 12826; 25.90566 70386; 26.03481 1698656; 26.06364 78408; 26.42137 532465; 26.66925 2110; 26.7916 28927; 26.79427 6828; 26.79805 6197536; 27.01114 1839400; 27.31396 3748; 27.40244 7023775; 27.56386 1860909; 27.84071 9688100; 27.86233 70257; 28.06617 136824; 28.10378 10649; 28.11833 1044; 28.21806 8116661; 28.29158 549119; 28.31133 16963; 28.41034 2321335; 28.43631 28943; 28.50732 71849; 28.71956 7561039; 29.02427 2345; 29.21816 9500; 29.33071 64415; 29.67089 361468; 29.82848 1707170; 30.08357 900201; 30.12036 520878; 30.21415 72558; 30.21954 192921; 30.83744 3830076; 30.87964 705084; 30.99652 74831; 31.21948 156210; 31.22499 25966; 31.29253 7643969; 31.52741 8033957; 31.77283 14458; 31.85067 37223; 31.90705 37629; 32.32818 491152; 32.36439 4650415; 32.91527 53983; 33.02177 3459; 33.0853 27596; 33.43479 29416406; 33.87419 3031; 33.99002 23952; 34.07061 3873671; 34.1838 50944; 34.18968 2334382; 34.20284 12704881; 34.61063 24084; 34.63144 110716; 34.69718 4193489; 34.75281 56822; 34.80195 81206; 34.88366 18691; 34.88707 7796; 34.89455 28292133; 34.98794 103963; 35.35574 7332; 35.38413 7945; 35.4824 8791094; 35.50328 4389; 35.59042 19413; 35.81546 77942; 35.93265 33268; 36.09001 107199; 36.12508 51066; 36.14254 24933; 36.96043 391202; 36.9838 1124745; 37.01621 46159; 37.26453 22510734; 37.37895 22001; 37.4098 1653589; 37.4679 9092347; 38.03574 1614375; 38.14485 139261; 38.46767 706545; 38.47591 29007; 38.83094 62581; 38.90019 848435; 39.42976 23684; 39.44136 39871; 39.78999 55736; 39.99123 6443098; 40.14808 147902; 40.81775 53748; 40.85667 2646088; 40.91967 74107; 40.98079 21622; 41.01409 6858994; 41.0694 52587; 41.08664 22707; 41.13384 2148; 41.17107 10539; 41.196 39162; 41.34839 7724; 41.37521 1562; 41.44917 33834; 41.54865 62789; 41.9824 3446457; 42.03641 7593375; 42.28846 1801836; 42.31177 11989; 42.4238 4528269; 42.49744 650022; 42.5627 67660; 42.74022 9302; 42.77369 1200153; 43.02717 21643976; 43.36747 3832507; 43.39909 46451; 43.44427 379262; 43.53174 1745153; 43.81258 589197; 43.9139 1817779; 44.27539 4418576; 44.89461 8281660; 45.64698 51746; 45.64795 48637; 45.82482 28552; 45.89253 232520; 45.95739 1525930; 46.23366 1735280; 46.58155 7937158; 46.62532 83125; 46.97149 55784; 47.09447 63500; 47.13142 1550866; 47.17182 9858519; 47.3737 828494; 47.5597 967718; 48.76564 26500; 48.89431 700014; 48.89703 9983; 48.98292 68819; 49.32538 56861; 49.3437 24242; 49.35328 65118; 49.51446 1809883; 49.83716 4361006; 51.0117 1339258; 51.58609 927191; 51.61633 32802; 51.9708 2274274; 52.11882 1000564; 52.30261 29787; 52.46954 518700; 52.81486 23103; 53.07847 167393; 53.13018 1091248; 53.34022 1860861; 53.561 6521331; 53.56368 25846; 54.12711 39042; 54.13363 5464; 54.28325 8910019; 54.29258 9830; 54.38846 1124592; 54.5717 1457698; 54.60706 14233; 54.69486 20784881; 54.71232 65892; 54.86059 5134; 55.21154 1756126; 55.42506 16354; 55.72462 9459; 55.80714 1659878; 56.37324 134445; 56.4441 1009; 56.864 5405146; 56.89565 50785; 57.3627 3499809; 57.6064 1863771; 57.72438 72388; 57.72496 73802; 57.93895 24566961; 58.02255 24299; 58.27581 3433; 58.28941 20633; 58.52174 40539; 58.71671 47624; 59.19162 62407; 59.20767 450965; 59.6392 29579; 59.6833 46107; 59.77549 25145; 59.86483 125688; 60.24205 5296; 60.8366 55802; 61.31097 27368; 61.32016 3068589; 61.93147 3981; 62.10548 3739136; 62.39311 146406; 62.43811 10205; 62.46012 48706; 62.70078 49851; 62.71351 29416; 62.87471 28193; 63.00403 9486; 63.22626 576006; 63.37093 70366; 63.49664 10283531; 63.56918 4163262; 63.63022 24472328; 63.67799 65429; 64.19594 1497675; 64.27181 104008; 64.46233 2035445; 64.58666 15162; 64.61433 4776464; 64.69904 7155; 64.77852 6075368; 65.0949 5689479; 65.10046 2901301; 65.10083 899451; 65.20445 22509563; 65.26303 513; 66.04126 47060; 66.05967 35135; 66.36584 68259; 66.36674 1285964; 66.6017 21560; 66.73109 2950711; 67.06264 6942; 67.26443 22171; 67.54792 1822530; 67.56977 29059; 67.61869 6974; 67.7335 301084; 67.85619 25948; 68.24436 77725; 68.24655 597; 68.43381 1532; 68.47373 637326; 69.11947 1616523; 69.16983 15995; 69.98421 4832; 70.74261 687; 71.12148 27276; 71.31588 6424; 71.34243 1218975; 71.66809 13930165; 71.78218 64840; 71.91346 14104; 72.36242 1494; 72.42461 1669490; 72.43856 147024; 72.77174 21327533; 72.81133 69973; 72.8158 3800; 72.98494 970336; 73.03508 24304; 73.0427 79019; 73.23173 25462; 73.52434 34145; 73.62931 153015; 73.65945 1915; 73.67441 25366; 73.83531 5263; 73.87009 645; 73.92619 147413; 73.99607 2902626; 74.05155 31234; 74.30504 23947; 74.45132 6818391; 74.53422 143958; 74.80307 181557; 74.83468 1784553; 74.9123 7063255; 75.33702 1879591; 75.39483 48752; 75.8001 5505; 75.81233 17003; 75.89959 1740109; 75.9572 3099; 75.95783 6421; 76.07156 3835338; 76.08405 60486; 76.19257 490; 76.39033 50705; 76.43677 1213; 76.58121 4322342; 76.6333 29666; 76.75659 46034; 76.81619 75454; 76.85382 6879; 76.91804 20960; 77.13632 3331776; 77.20375 73722; 77.23032 3537508; 77.47271 6997; 77.97477 55883; 78.02294 712336; 78.25387 22300; 78.50294 49485; 78.53553 54201; 78.55257 1289208; 78.64627 7471; 78.7262 30023; 78.74225 4581580; 79.26365 158764; 79.40048 3860364; 79.53076 57152; 79.67893 2007; 80.16019 145975; 80.31652 69111; 80.43772 46671; 80.5211 402252; 80.57513 723100; 80.71184 3814009; 81.07338 48169; 81.23708 2662006; 81.36182 147228; 81.45261 2724580; 81.52169 8842407; 81.52802 31742; 81.67802 1064596; 81.76571 2732351; 81.99393 25207; 82.06153 9653787; 82.10228 504332; 82.23671 1834119; 82.55107 2294; 82.82739 4393812; 82.93543 14755; 83.11898 1968245; 83.60378 4155692; 83.61249 76843; 83.67222 1786693; 83.67981 756; 83.73965 751565; 84.11182 235630; 84.15307 4736; 84.36816 42731; 84.47724 4204; 84.76887 6893; 84.96427 78143; 85.16978 4087441; 85.39988 30908; 85.47078 16064962; 85.55439 2532607; 85.7608 2274587; 85.82623 7931090; 85.89803 34080; 86.05483 72165; 86.45649 176657; 86.5071 61480; 86.55471 59079; 86.61383 863036; 86.70256 46156; 86.96322 38124; 87.24574 4052962; 87.46099 2278883; 87.58472 6839253; 87.70135 71371; 87.85724 22114; 87.86667 28288; 88.00535 72765; 88.22811 42886; 88.24241 985700; 88.25134 22943; 88.39814 1904624; 88.49872 287; 88.58804 60717; 88.6218 3282420; 88.63803 185516; 88.66922 5676076; 89.10031 53093; 89.22811 23441; 89.50332 6377857; 89.71231 7244; 89.90698 52772; 89.91226 53058; 90.15435 61092; 90.23891 825437; 90.608 2762; 90.81691 31997; 91.30332 20761; 91.35777 487146; 91.38617 6058; 91.46544 3056937; 91.51511 1996287; 92.48396 2785346; 92.52487 8570; 92.63676 10543; 92.85827 24569798; 93.39134 135699; 93.4409 28071; 93.58599 2743; 93.5901 105024; 93.82445 36404; 94.14321 3318; 94.25944 22039; 94.31933 51953; 94.38077 1867124; 94.58915 71419; 94.78181 30534; 95.00797 131887; 95.04224 71293; 95.34089 531724; 95.96818 74299; 96.30534 62989; 96.37971 1087; 96.41454 2386; 96.57069 72633; 96.76047 359; 96.98998 66017; 97.08834 8032; 97.17462 354; 97.53982 156652; 97.59027 7831083; 98.34734 5349; 98.59822 1997736; 98.60059 561160; 98.74367 78612; 98.81443 19357; 98.91877 1670991; 99.76871 53289; 100.14681 14924; 100.29474 807626; 100.36753 23017; 100.46102 45922; 100.80185 35570; 101.64255 2050; 101.72376 5935; 101.80775 49520; 102.00985 3283973; 102.12244 61263; 102.33391 7105; 102.45244 25453; 102.69992 57158; 102.85804 24222; 102.89045 71763; 102.89222 1839118; 103.15276 501907; 103.31849 46296; 103.32667 32630; 103.40345 603809; 103.58728 1517935; 103.59134 1659571; 103.67238 1519154; 103.71469 1542046; 103.99019 3740246; 104.2397 73958; 104.24391 11051; 104.27652 16337358; 104.41133 655748; 104.57841 3843416; 104.58629 4686543; 104.91753 1927797; 105.071 22429; 105.42361 53270; 105.71238 24465; 105.79341 11777; 105.81399 64974; 105.82842 175497; 105.84625 2331579; 106.18441 5497; 106.28267 50325; 106.53219 1944081; 106.97431 7869; 107.14953 2719; 107.69893 1617390; 107.94564 1232963; 108.07264 25754; 108.23123 8164797; 108.61253 98355; 108.68488 12637; 108.7146 9902948; 109.21285 14652; 109.37022 26241; 109.56099 1822433; 109.81896 60749; 110.16002 5375690; 110.29123 2111563; 110.30224 32980; 110.35929 49263; 110.58816 19942140; 110.59477 1599340; 110.82875 22528238; 110.98613 59621; 111.47402 105800; 111.52941 1023468; 111.60572 76599; 111.85211 2569454; 112.11947 25557; 112.40426 262; 112.63325 11414; 112.84618 2469312; 112.90595 61894; 113.28374 5956071; 113.3426 29513; 113.9005 34347; 114.52552 64971; 114.55004 2022; 114.64046 22524; 114.69728 813073; 114.87218 515632; 115.43398 4317; 115.76271 1429; 115.86736 3613011; 116.77883 40551; 116.86995 12208; 117.13755 1819166; 117.48184 2241; 117.76666 44125; 117.95335 367869; 118.03319 62507; 118.19105 45113; 118.20026 3475626; 118.93809 4796780; 119.54219 26498; 119.76666 77443; 119.81128 184192; 119.88134 43666; 120.52034 7345743; 120.5363 10936; 120.88486 1679983; 120.88894 7400; 120.959 642778; 121.00699 2706056; 121.10796 2960; 121.19246 1100380; 121.28747 618; 121.5943 17114; 121.67062 30537; 121.73672 53307; 121.78841 5258; 121.89494 20289; 122.04661 15117653; 122.07252 38115; 122.09831 57669; 122.09867 1861; 122.23399 3217366; 122.28051 19875; 122.48499 8100; 122.58758 4909; 122.91834 431484; 123.09874 10697; 123.20437 910993; 123.23824 44611; 123.3407 6851376; 124.07163 4449341; 124.50853 1368365; 124.82715 1423473; 125.06881 1938; 125.09485 3530240; 125.37309 46310; 125.66415 8930157; 125.69934 27290; 125.9582 14860; 126.09147 4533935; 126.23935 11825; 126.25315 22608633; 126.39368 3738; 126.41436 63864; 126.49372 26685; 126.50172 126658; 126.64373 8600; 126.74436 29437; 126.76028 9657; 126.76856 74618; 126.79849 1839498; 126.80234 357938; 127.0638 21541; 127.06492 13570; 127.36341 10616; 127.69852 2550912; 127.75818 128342; 127.96212 1838759; 127.99429 683671; 128.16208 147306; 128.16854 44875; 128.41445 8821558; 128.58268 3934652; 128.63183 49669; 128.7421 20642; 128.76839 8076; 128.83735 67008; 129.00691 6676037; 129.04949 2543; 129.18236 1009102; 129.29654 15381014; 129.47182 1532963; 129.86892 18402; 130.47845 67251; 130.68723 679730; 130.81759 1603544; 131.02429 6313979; 131.04001 922134; 131.06092 26256; 131.57313 28705; 132.34104 2412671; 132.42164 5478; 132.58256 273846; 132.6512 57699; 132.9573 2581; 132.99741 76265; 133.26233 6401; 133.54924 7191; 133.71574 16332; 133.72778 3700; 134.27868 25862; 134.64194 6386555; 134.66336 2771939; 134.82703 602850; 135.14841 787032; 135.15464 54031; 135.20627 181580; 135.77235 77402; 135.77901 5365836; 135.82464 35736; 135.89461 70825; 135.91557 4238; 135.96927 32102; 137.03935 23541; 137.213 5935; 137.31507 1983; 137.62244 53132; 137.97096 3555351; 138.03737 987974; 138.37925 1831288; 138.46738 20984; 138.48919 1139506; 138.59862 5786; 138.78893 58464; 138.88875 963458; 139.0224 4752; 139.12903 1348587; 139.1477 28802; 139.23045 76717; 139.29029 22318; 139.38737 16852; 139.45511 12027784; 139.49507 16280; 139.58548 8766232; 139.75355 65575; 139.78978 54603; 140.01615 194649; 140.59409 38853; 140.73401 20909; 141.27911 2957130; 141.41656 3367; 141.70633 76568; 141.95303 57446; 141.97176 302443; 142.16052 47098; 142.21148 1740396; 142.24303 814362; 142.56361 2100793; 142.7391 583161; 142.75725 602154; 143.05922 1584366; 143.10228 52700; 143.15111 3984830; 143.22219 1059425; 143.23036 69280; 143.37176 3227157; 143.38455 32930; 143.65 31484; 143.85557 2169216; 144.04744 765462; 144.17896 53660; 144.6171 65338; 144.71319 26623; 144.83894 8321; 145.40938 10639; 145.8688 17620; 145.88604 13721; 146.11183 6500945; 146.1655 25757; 146.43165 66437; 146.45033 4197339; 146.48301 57307; 146.53677 57081; 146.66067 1733836; 146.81148 2442673; 147.10174 99072; 147.45816 53096; 147.46257 1040986; 147.49593 1209240; 147.83254 754; 147.88914 7639757; 148.28519 4354447; 148.43244 44887; 148.47174 27296; 148.56921 31422; 148.73114 879; 148.98049 27059; 149.10995 5580; 149.34238 406746; 149.50268 2481801; 149.62816 1656085; 149.72366 711963; 149.76927 25185; 149.81061 86397; 149.98946 26986; 150.09632 6359; 150.18461 23741; 150.55545 1859543; 150.69344 147602; 150.72372 219163; 150.78279 43058; 150.81846 6838; 150.94685 670842; 151.28107 41123; 151.31899 6374; 151.32006 85479; 151.32564 17334627; 151.41694 1976551; 151.57532 4754236; 151.89168 1595115; 152.01745 13726683; 152.23469 58494; 152.29825 30124; 152.38077 4252245; 152.39151 16275718; 152.62362 2355318; 152.76179 64413; 152.76559 3670705; 153.33608 68274; 153.57768 7365; 153.7468 33465; 154.05293 54206; 154.44891 4151; 154.4799 55174; 154.49131 9550; 154.53137 67528; 154.70926 133547; 155.02028 51696; 155.5089 16878; 156.24499 1248485; 156.4076 38494; 156.6127 27383; 156.63649 2300; 156.64518 48838; 156.92883 27471749; 156.94262 12306; 157.17533 27963; 157.50666 326483; 157.57847 1659983; 157.6812 59655; 157.84343 1508000; 157.86311 847118; 157.8887 21052; 157.94924 89408; 158.09143 55262; 158.34166 43019; 158.69136 29286; 158.88469 475396; 159.10787 332; 159.23667 24086; 159.61726 4546292; 159.72503 62761; 159.78341 1570; 159.85664 3487; 160.21331 1533; 160.41469 78282; 160.55197 45425; 160.82875 1590010; 161.03935 22280; 161.13146 28670; 161.21194 20833; 161.37058 987646; 161.41958 18676172; 161.5457 29003; 161.98652 1772222; 162.03825 143555; 162.06607 19025; 162.25701 658108; 162.43258 26646; 162.87129 1678264; 162.88387 22460; 162.96706 29813; 163.41535 75613; 164.0358 62635; 164.17013 47615; 164.19105 24142; 164.743 18189; 165.47399 1140420; 165.48013 51993; 165.67676 1583248; 165.745 925381; 166.03561 65816; 166.15199 29902921; 166.19484 9740979; 166.2553 9840496; 166.35761 33283; 166.46724 63372; 166.70246 1143010; 166.72977 788660; 167.09705 740428; 167.19496 19989107; 167.37568 40863; 168.82862 3157938; 168.87123 4913549; 168.8895 512; 169.28397 7787206; 169.54695 74064; 169.88735 1933532; 169.97587 190556; 170.00099 13769; 170.25025 9645235; 170.43993 8834863; 170.73695 1356202; 170.7404 9997181; 170.94512 70051; 170.97509 7253445; 171.08902 3547; 171.17732 118114; 171.56095 4726871; 171.84743 1948531; 172.02554 14972; 172.34226 21163; 173.1505 25797; 173.42045 3834084; 173.73461 61941; 173.84954 6572952; 173.86136 9453750; 174.12576 750048; 174.32984 6708; 174.64873 5847488; 174.99129 9831; 175.05938 9459; 175.07815 7313; 175.10008 156379; 175.25356 497556; 175.32358 2203686; 175.41164 21038; 175.77778 68860; 176.01924 3286181; 176.16945 5139; 176.31019 8314; 176.47827 28034; 176.5557 7082; 176.59709 11162694; 176.61427 7012819; 176.69101 8116169; 176.81721 2837585; 176.94268 50201; 177.53421 41048; 177.76256 22209467; 178.25376 6366204; 178.32528 63940; 178.73011 661039; 178.74504 27793; 178.78977 24407; 179.08192 111127; 179.35462 140793; 179.7682 491894; 180.03861 630; 180.30773 24164; 180.37218 4432385; 180.50437 18677; 180.65263 227715; 180.69285 1392710; 180.75471 991273; 180.79202 36886; 180.90105 29593; 180.9893 125075; 181.13485 5392989; 181.81519 24200816; 181.94891 7029; 182.38894 49526; 182.42793 244528; 182.43983 690045; 182.51156 5691504; 182.80798 50377; 183.07036 20352; 183.22387 9911; 183.8509 9773; 184.13464 41134; 184.13583 187453; 184.18641 10806958; 184.27909 27084; 184.53804 2769291; 184.54654 1875850; 184.66514 6886; 184.82103 139984; 185.07071 9972887; 185.36873 65486; 185.39633 21049; 185.44642 8327; 185.46987 37405; 185.62336 38277; 185.94527 1793883; 186.07099 6677; 186.07986 28092; 186.09146 3385; 186.26733 31054; 186.31738 1622085; 186.50969 5761; 186.54398 33433; 186.56238 23922; 186.66354 29744; 186.68312 6662; 186.9414 1095758; 186.96908 74168; 187.0639 27835; 187.19623 26677; 187.22269 151078; 187.307 23608; 187.55535 1912917; 187.57558 8767237; 188.21629 54021; 188.22846 9246460; 188.40287 46557; 188.51068 38824; 188.73563 19989; 188.97932 36055; 189.21367 2635665; 189.38774 187397; 189.45768 863014; 189.58945 27211; 189.63587 113949; 189.63685 1411850; 189.74633 23834497; 189.78786 1605; 189.79185 27395; 189.82511 8426854; 190.30946 358083; 190.36404 63674; 190.39611 55837; 190.40501 77672; 190.73726 71847; 191.31222 77689; 191.63876 70700; 191.91608 44324; 192.16662 6630603; 192.20352 31862; 192.46121 7855151; 192.60834 26132; 192.71233 1594641; 192.77796 8284; 192.9544 1841304; 193.15601 9905; 193.24525 1239904; 193.38959 1446914; 193.57894 7037602; 193.6929 39182; 194.06938 7345760; 194.56603 192037; 194.62041 52663; 194.66122 171979; 194.70902 191225; 194.75057 1070018; 194.82915 12600841; 194.92278 156221; 194.98554 25886; 195.23596 9284; 195.26752 552; 195.32329 1035515; 195.41527 1512734; 195.52196 196578; 195.81669 106045; 195.83743 18045; 195.86484 2125694; 196.18631 54144; 196.41662 64910; 196.68056 41671; 196.7738 119737; 197.06159 3846697; 197.06179 45308; 197.06603 17783; 197.45392 1688; 197.59602 45960; 197.68026 20312; 197.88124 1146; 198.29118 2915729; 198.32449 14821; 198.47784 60310; 198.70156 61660; 198.74733 23429; 199.07149 2950378; 199.24195 17502; 199.46271 11826562; 199.4722 9390803; 199.60448 4897699; 199.91752 4864154; 200.01993 53647; 200.29864 2427; 200.70829 9861; 200.79806 11454; 200.81454 61417; 201.07658 73083; 201.3962 3044310; 201.44415 17273; 201.88005 1336398; 201.89952 1281524; 202.05646 53278; 202.72467 193076; 203.15623 2915837; 203.36279 16741307; 203.70439 1059629; 203.83766 14887512; 204.33989 20147; 204.60206 32916; 204.84194 19053; 204.97681 1628420; 205.04015 29000; 205.10672 3709; 205.15882 35839; 205.96048 72453; 206.16095 6492320; 206.18002 1771996; 206.19319 27804; 206.55855 21244; 206.60308 48500; 206.68638 93758; 206.70029 2507892; 206.90948 127309; 207.27145 79119; 207.29416 51215; 207.79115 4600446; 207.86131 79070; 208.4615 11; 208.64067 19022; 208.97516 2707274; 209.01111 56813; 209.0288 60429; 209.41901 27878; 209.5968 4436518; 210.07609 17493; 210.1316 73786; 210.57929 409166; 210.58466 351396; 210.96146 19473830; 211.01907 61571; 211.1062 6490; 211.13601 7018; 211.15283 88896; 211.23519 1049; 211.41196 7240; 211.41373 5605328; 211.60676 1908959; 211.73525 1609901; 211.90397 1424155; 212.88153 4145830; 213.26392 60211; 213.53935 48425; 213.56997 7192503; 213.65441 422742; 213.92256 3315; 213.92506 66909; 214.63144 9962340; 214.65325 24575; 214.6645 20645845; 214.69748 27586; 214.81671 235939; 214.89579 21563; 214.96023 38182; 215.01275 1141926; 215.06041 4588076; 215.24972 6594; 215.39025 134970; 215.42127 1443928; 215.43157 14853; 215.56679 628682; 215.96803 1607025; 216.1551 24467; 216.23644 1497355; 216.31278 24827; 216.84719 3979527; 216.98341 9681; 217.46505 1855214; 217.6836 35638; 218.01502 22504; 218.28707 19409; 218.35565 41055; 218.48836 13435; 218.63316 42729; 218.70499 1787433; 218.77038 7065220; 218.79846 27839; 219.13899 9662; 219.19893 190801; 219.51766 28466; 219.65742 79626; 219.7461 22670; 219.74889 161072; 219.76678 2034198; 219.99476 686421; 220.09515 9776980; 220.09936 24617; 220.32305 28232; 220.39096 41415; 220.43164 53183; 220.69667 152104; 220.71666 76271; 221.24316 499; 221.28919 79077; 221.50337 45693; 221.85113 2037; 221.99852 18157791; 223.08012 829099; 223.09557 27312; 223.50528 168865; 223.71918 88594; 223.73828 1741856; 223.78478 37181; 223.98693 52818; 224.5174 8487; 224.97458 75112; 225.09058 1791; 225.45933 6292; 225.51081 3562986; 225.81611 12117; 226.00399 558593; 226.19447 50072; 226.37154 1458835; 226.39208 61406; 226.7358 1065; 226.77277 860494; 226.79574 9181; 227.56494 11286; 227.63472 1265475; 227.79973 344123; 228.23824 641885; 228.24596 24762; 228.57462 43072; 228.68796 44193; 229.04298 805087; 229.14563 1287433; 229.20479 17146; 229.25351 38290; 229.30278 53333; 229.77675 32122; 230.02357 126702; 230.17423 742170; 230.1949 6500568; 230.20812 2377892; 230.21086 262272; 230.24174 66225; 230.65139 775655; 230.81975 929; 230.84978 16582; 230.89904 4157505; 230.99393 416421; 231.11579 788213; 231.29275 447265; 231.54802 641663; 231.6407 9428829; 231.66372 2118085; 231.95699 787831; 231.98545 22527442; 232.16005 42211; 232.34106 21848; 232.515 6248; 232.52188 66697; 232.62912 1060959; 232.72896 5411071; 232.73484 1371805; 232.90854 1393920; 233.06619 6107053; 233.62169 767929; 233.84449 25152472; 233.88396 3512362; 234.069 64385; 234.1219 5670050; 234.30851 9595144; 234.61039 63826; 234.68861 65782; 234.86914 28867; 234.98047 4506363; 234.98294 4972; 235.40695 7786907; 235.71149 918378; 235.98134 6474; 236.02019 37732; 236.08275 226500; 236.08612 127927; 236.16629 5884622; 236.64763 51206; 236.66506 77363; 236.84884 666978; 236.88513 25080; 237.24173 9923278; 237.25238 4740; 237.39746 3038; 237.56175 1517224; 237.75571 28304; 237.92068 1967379; 238.1062 533740; 238.15771 71126; 238.32758 27748; 238.38144 1352958; 238.48348 2044; 238.48995 24878; 238.49874 150110; 238.54131 79647; 238.97327 1536667; 239.01557 39464; 239.1455 68981; 239.21121 48220; 239.38507 5395; 239.53701 50427; 239.84987 108744; 239.86999 105221; 239.89887 3310444; 239.91071 25732; 240.19347 31874; 240.49596 722528; 240.68911 10248; 240.70215 23505; 240.74045 9805; 240.74839 1789116; 240.79559 66858; 240.9213 70436; 241.15062 31691; 241.1673 3374; 241.20933 42048; 241.48754 9408799; 241.93676 1997084; 242.41482 27368; 242.56229 1472805; 242.76197 1643624; 242.80303 783720; 243.00551 2330; 243.10063 26846; 243.17535 2359; 243.19598 40998; 243.19759 173968; 243.34811 54793; 243.38509 143966; 243.54739 349420; 243.57186 43121; 243.66298 198274; 243.74719 2287085; 243.85466 41678; 244.08873 7112467; 244.26078 9068; 244.49024 4258045; 244.50485 387331; 244.79181 55478; 244.81204 842432; 245.10247 1397174; 245.11363 24608; 245.13165 1852678; 245.29359 8020; 245.67081 1687779; 245.86805 61089; 246.01877 51051; 246.05969 5550672; 246.1624 23845; 246.51838 5228; 246.67482 73302; 246.76791 70827; 246.78294 1592734; 247.02021 7852864; 247.08356 133488; 247.42607 888635; 247.47946 429909; 247.65531 29071392; 247.66666 38802; 247.85562 21451; 248.04551 55676; 248.69787 5100243; 248.72515 4864; 248.949 52444; 249.05627 48604; 249.06614 546286; 249.27876 405217; 249.6124 9778529; 249.62459 26539; 249.75354 22070; 249.78102 2961707; 249.97006 66928; 250.12548 9093420; 250.25084 25110; 250.63889 11183; 250.97106 40650; 250.98317 1548099; 251.7136 12242; 251.82153 56181; 251.94568 814879; 251.9871 27497; 252.18718 60167; 252.5992 181879; 252.78334 66343; 252.89767 3973412; 253.16791 10162; 253.44235 113685; 253.50564 6269; 253.53927 26097; 253.68154 180918; 253.79942 6955084; 254.13979 27628; 254.60437 963626; 254.61907 57700; 254.7552 5391; 254.87122 14255; 254.9448 34591; 254.99129 68825; 255.39546 28284; 255.44889 114338; 255.49086 4813011; 255.94388 6524930; 256.14052 19744; 256.20241 24548; 256.45295 6363; 256.63935 1032209; 256.65522 5732; 256.79645 1837; 256.80805 1832932; 256.85079 58675; 256.93286 39484; 257.57377 38855; 258.50095 5081294; 258.54725 26739; 258.68707 20364; 258.71319 17018; 258.73227 1567523; 258.75645 19090; 258.76972 76693; 258.96344 2289522; 259.21061 3099700; 259.43996 69026; 259.55438 41670; 259.65759 479755; 259.91261 567; 259.92183 15959; 260.16726 111631; 260.23302 8362; 260.2941 19679; 260.42388 40666; 260.46454 22178; 260.75479 49234; 261.02976 4632354; 261.1026 7262; 261.41369 3171869; 261.47718 9876; 261.9177 1746816; 262.09472 8741; 262.09646 52703; 262.21459 814624; 262.29389 217369; 262.56055 847100; 262.67498 1352312; 262.71286 9030514; 262.74853 46539; 262.81764 147064; 262.91661 3542266; 263.41243 61530; 263.46816 22134; 263.48929 4946821; 264.07687 6067; 264.48966 7729; 264.50785 237; 264.71269 438601; 264.75417 9689; 264.79034 4369439; 265.59021 1589672; 265.72491 18273664; 266.02235 4654935; 266.22871 1434105; 266.23785 9581650; 266.29755 19319; 266.36023 3731; 266.70576 9675; 266.9611 42987; 267.24327 18553; 267.30079 7809888; 267.51435 54700; 267.58035 72022; 267.64602 543630; 267.66942 632148; 267.83802 78826; 267.9108 8297278; 268.50077 77273; 269.02186 9408842; 269.03686 105656; 269.04825 36093; 269.15882 45642; 269.57878 28091; 270.00627 129280; 270.0686 63130; 270.14498 3195267; 270.16833 8000; 270.78596 28667; 270.91511 1652253; 271.17432 5237690; 271.19843 3041975; 271.22731 22701; 271.3039 602186; 271.31718 46276; 271.42848 1292558; 271.62859 17217; 271.83936 726309; 272.25056 68143; 272.44862 486638; 272.87583 4052567; 273.29504 2499142; 273.66318 694999; 273.73422 3842331; 274.05006 1426995; 274.21919 36621; 274.22661 140442; 274.33347 951015; 274.3935 26282; 274.45229 1155843; 274.47159 302492; 274.48486 8078; 274.51733 34788; 274.61551 6326; 274.70546 24566; 275.04021 1388926; 275.23584 73893; 275.25581 29701; 275.28609 59673; 275.83646 8608037; 276.01998 18876; 276.85026 5213806; 277.0764 591507; 277.37812 185875; 277.65965 48121; 277.73077 3293000; 277.82098 73811; 277.86162 40521; 278.12128 2008; 278.16658 188091; 278.51169 6449904; 278.58404 1774; 278.67436 18397; 278.94881 5841; 278.99323 2691; 279.2876 2651202; 279.36998 129622; 279.74148 82296; 279.93005 3978654; 280.05797 20166; 280.09049 60562; 280.28274 1148327; 280.6134 3894518; 280.63747 3369087; 280.84695 14476; 281.43703 9909997; 281.76465 98424; 282.00746 8571; 282.19302 93642; 282.23708 1770718; 282.25974 29812; 282.36952 18358; 282.41483 1126; 282.79159 9140; 282.92778 20220; 283.04268 9046; 283.24671 14309; 283.25751 5101; 283.57158 4693; 283.71964 85067; 284.02862 3562; 284.18586 8476; 284.23148 23985; 284.46126 8454; 284.48191 597517; 284.48341 50005; 284.66813 5042; 284.89535 47287; 284.97675 4628984; 285.17586 3574898; 285.43048 65451; 285.80749 2931430; 285.87403 682583; 286.10742 439906; 286.223 37169; 286.38906 32404; 286.55206 78696; 286.57337 25272; 286.83829 26042; 286.9953 57685; 287.07033 35394; 287.2111 25078; 287.51399 57592; 287.52706 299831; 287.609 7307437; 287.7813 50227; 287.82023 6320740; 288.48371 2692598; 288.54537 50210; 288.83347 16101; 289.14066 2556563; 289.32021 710422; 289.58062 3355; 289.72781 1437770; 289.83856 9384247; 289.88294 20867; 290.1115 18300726; 290.48069 9945; 290.49963 3146757; 290.6034 5631; 291.09477 498229; 291.18313 20611; 291.26232 51954; 291.27432 7846; 291.45105 186216; 291.85397 132948; 292.2906 3773023; 292.36883 43562; 292.60894 66056; 292.65 8240816; 292.77253 158386; 292.80126 69774; 292.89288 5699; 293.14982 63555; 293.24275 8792785; 293.29827 6820; 293.48147 6562415; 293.48725 69610; 293.86377 9599936; 293.89722 29831; 293.94952 56692; 293.99305 175857; 294.3561 591849; 294.38235 2808447; 294.55698 63870; 294.5868 3670; 294.6097 1885655; 294.74711 51702; 295.17418 14824; 295.30823 56827; 295.58979 64725; 295.723 27028; 295.79343 32802; 295.92455 1038451; 295.98071 58126; 296.07061 61346; 296.32854 70213; 296.59046 685660; 296.61188 61964; 296.61282 8418344; 296.7248 813636; 296.73201 1477441; 296.79313 5998; 297.07036 9766; 297.16297 20152; 297.30788 5832; 297.46429 36101; 297.59909 22989; 298.50592 85664; 298.54779 5535264; 298.97336 29127; 299.89337 7165; 299.96921 9141; 300.76757 7705104; 300.91961 76548; 300.95626 27361; 300.99466 898635; 301.04085 112183; 301.41184 1044361; 301.60569 141602; 301.64392 59953; 302.4504 1221437; 302.5626 4327; 302.57917 4747; 302.64002 814424; 302.65052 1279737; 302.798 973048; 302.819 3273089; 302.82653 10748; 302.84378 1893028; 303.02484 1567943; 303.14502 17442; 303.24748 177360; 303.7839 71745; 304.17355 4747; 304.34126 20137; 304.63617 8356; 304.66307 5334; 304.77568 513; 305.07602 66720; 305.15402 130874; 305.32548 22553; 305.51463 1695781; 306.14952 76399; 306.31155 46459; 306.31419 76763; 306.46657 46591; 306.47104 59334; 306.74922 1255927; 306.8005 28980; 306.8669 73548; 307.05448 7432939; 307.37153 2749; 307.42781 35966; 307.54295 721596; 307.60698 1900394; 307.73267 284354; 307.83522 6432959; 308.25354 17482; 308.32704 8201; 308.64954 1680654; 308.65789 2381978; 308.85635 928379; 309.06385 3127729; 309.32578 54041; 309.34902 13793401; 309.4211 149641; 309.60913 93617; 310.10829 28046; 310.30887 30833; 310.51255 1584364; 310.52037 9572; 310.53884 207350; 311.1105 48586; 311.27184 71648; 311.34121 1270611; 311.59244 5326110; 311.59724 33806; 311.69184 55125; 311.87469 173283; 312.58311 89777; 312.67786 7036706; 312.81705 40944; 312.83958 20619143; 313.18806 22047049; 313.29978 40903; 313.62144 1; 313.65342 9152033; 313.65468 78618; 314.09379 1861; 314.11973 93209; 314.32086 1967728; 314.52764 38361; 314.83364 3420671; 314.88252 136518; 315.21109 3210505; 315.24993 2968254; 315.46318 113323; 315.50908 860701; 315.55165 496071; 315.55654 3397998; 315.59543 5950; 315.66859 27962; 315.83921 1416; 315.96521 3061550; 316.17552 94281; 316.34615 8632718; 316.37648 55132; 316.45342 839; 316.71746 53825; 316.85575 179246; 316.90065 47659; 317.01775 178882; 317.59582 408353; 317.66579 259014; 317.85069 36616; 318.16725 4468708; 318.29376 21804; 318.37597 461; 318.45514 21108; 318.47767 12399; 318.48617 25137; 318.51002 1226173; 318.56344 1767469; 318.65971 69079; 318.66869 150304; 318.88016 899119; 318.93558 19765177; 319.05578 1360053; 319.10752 661777; 319.79459 8493; 319.95612 1758; 320.14904 1340537; 320.14905 15886; 320.1637 25911; 320.26969 1357; 320.4491 535493; 320.45302 3586512; 320.70367 70342; 320.72423 151105; 321.14114 11229; 321.35004 2034; 321.60097 22801; 321.64259 764468; 321.65786 25398; 321.83842 39158; 322.26171 961; 322.69396 33144; 322.82445 50037; 322.99052 11181; 323.22959 19717; 323.2973 1300247; 323.44921 1764171; 323.50076 1339407; 323.73151 647; 324.00929 726675; 324.1861 65763; 324.47875 731078; 324.60558 4987878; 324.64873 5881472; 324.81917 17595; 325.20907 910872; 325.35995 3301; 325.60564 8407; 325.95584 32357; 326.37923 40663; 326.63783 9317242; 326.64532 585761; 326.75446 4253730; 327.38191 9607579; 327.44041 61173; 327.68442 45684; 327.91272 1707118; 327.92531 1700443; 328.03825 153821; 328.21794 5093268; 328.38268 2381; 328.54692 1860337; 328.55903 5342; 328.88947 35572; 328.95762 4237569; 328.95807 245377; 328.99159 76633; 329.11335 2204; 329.16485 3025; 329.25269 1953183; 329.35843 606261; 329.513 756245; 329.5764 849865; 329.90035 12612; 329.93826 13301; 330.14873 1637800; 330.44756 4948878; 330.52388 450012; 330.86266 30827; 331.13781 72987; 331.1803 629134; 331.19777 4266162; 331.20516 180502; 331.23116 71617; 331.28294 1506886; 331.47973 69272; 331.93984 40505; 331.99985 5943; 332.05354 1201165; 332.20001 341620; 332.28977 275002; 332.3675 431524; 332.52771 55941; 332.85984 1822412; 333.05057 19977; 333.18721 72770; 333.38153 51893; 333.6169 1026; 333.71722 21578; 333.74657 43191; 333.91281 4126197; 334.01618 784138; 334.0242 24596266; 334.36099 1608110; 334.41437 1298; 334.63735 299244; 334.69702 1178; 335.02821 121852; 335.15824 4676399; 335.35677 3914563; 335.36541 77253; 335.69429 4711657; 335.92945 19369; 336.19937 7320; 336.40882 58694; 336.47838 137254; 336.50766 25847; 336.63369 77608; 336.67291 2780727; 336.98366 1295785; 337.31049 12605837; 337.41063 1741021; 338.04714 18606; 338.30547 37142; 338.37694 802053; 338.38487 1800; 338.58904 3962133; 338.67585 10764854; 339.14023 9158; 339.15542 131530; 339.36942 68787; 339.69969 459511; 339.95157 51746; 340.24178 68805; 340.7729 17786; 340.88666 24081; 341.41252 12190; 341.54647 8165; 341.76308 45537; 341.78946 4852; 341.8706 23943; 341.90006 21037; 342.05085 747794; 342.3694 1878032; 342.40802 3761201; 342.41342 9398691; 342.52163 24163937; 342.76606 1318343; 342.77822 695; 342.78198 60007; 342.94271 1793520; 343.00653 3877; 343.14529 1823946; 343.27881 171140; 343.43172 129015; 343.90068 149563; 344.10694 6633925; 344.56362 63983; 344.63109 43266; 344.69317 8292334; 344.85789 32075; 344.96587 970485; 345.02189 5419422; 345.12251 2149; 345.1239 1737568; 345.27366 120; 345.32121 603158; 345.32617 7294299; 345.36772 3385; 345.49217 1835088; 345.87007 1059148; 345.87254 57904; 346.02468 9467; 346.10612 950702; 346.11538 19421799; 346.53504 9411474; 346.76409 854889; 346.9084 7234; 347.12795 2640285; 347.31051 8869; 347.37944 95444; 348.09214 405748; 348.10311 5056736; 348.43741 23048; 348.51643 78136; 348.65874 538677; 348.96111 1908613; 349.38651 272416; 349.44856 21263; 349.45267 653209; 349.46557 407966; 349.53438 56155; 349.62181 38154; 349.75133 26112; 349.8762 63753; 349.97675 836071; 349.98486 1006074; 350.0786 1301920; 350.34268 3947640; 350.73167 1382693; 351.06853 643122; 351.3748 719789; 351.41183 127209; 351.62651 21365; 351.70751 51301; 351.7718 49985; 351.87867 1807138; 351.88684 1724289; 351.90919 3687; 351.94435 6414; 352.14985 2292727; 352.18526 3377281; 352.22565 3224; 352.36709 178658; 352.4575 43465; 352.60557 315826; 352.6291 31055; 352.80861 5612; 353.099 22235392; 353.49187 1623832; 353.65861 9411458; 353.68092 12860; 353.87412 1944549; 354.28583 28478; 354.88886 357; 354.94849 3225; 355.01678 1695099; 355.3456 46732; 355.64306 12353; 356.00309 2019142; 356.13168 527268; 356.19039 137703; 356.21566 56994; 356.43492 166195; 356.61466 5152; 356.66685 20104; 356.68121 2326468; 357.09328 57376; 357.24823 77951; 357.44796 55909; 357.45376 4271879; 357.46044 8255; 357.4663 25801; 357.60032 41751; 357.69002 3508098; 357.8421 14116243; 358.24281 3798711; 358.60602 42675; 359.06551 58367; 359.13904 197621; 359.1927 8846; 359.29548 60396; 359.60689 2395980; 359.81795 85202; 360.22866 652233; 360.26113 25053; 360.41789 117689; 360.46181 139035; 360.6093 4432563; 361.03685 5190463; 361.11386 958249; 361.20892 4805; 361.21507 96543; 361.22068 1349697; 361.48541 5556; 361.65823 227030; 361.97634 24115065; 362.15621 49352; 362.34215 4020007; 362.46211 65045; 362.48777 144341; 362.75202 500040; 362.83253 2864; 363.32575 145015; 364.20855 5516489; 364.2257 43266; 364.26521 42420; 364.70379 1865687; 364.73296 226584; 364.79954 3375; 364.81455 7252; 364.83614 2139985; 364.91944 6309209; 364.97237 7237877; 364.97392 42375; 365.11884 911159; 365.35872 338232; 365.47666 380373; 365.91213 3620370; 366.17311 740312; 366.65574 23428; 366.75537 34173; 366.89549 10538799; 367.1485 7251; 367.19779 148123; 367.32283 1566; 367.38279 1658192; 367.62162 3165; 368.02275 7224166; 368.08064 8573; 368.19249 543937; 368.45782 1799; 368.49103 113209; 368.77361 58884; 368.93068 9667; 368.93914 238439; 369.86386 2526891; 369.89448 95994; 370.16588 681312; 370.24015 1264376; 370.31193 2550703; 370.41341 1251; 370.45543 45461; 370.74975 113212; 370.8526 66809; 371.50643 538428; 371.89199 5889807; 372.10354 25808; 373.1872 73443; 373.23093 2857; 373.31948 30342; 373.38878 26355; 373.5433 7752; 373.57162 5839; 373.57285 27382; 373.59831 27820; 373.64954 6522820; 373.71951 52696; 374.08837 1475935; 374.16869 966378; 374.38371 1618538; 374.8599 604807; 374.88339 2790; 374.95414 29235; 374.96249 986114; 375.17379 132560; 375.22255 25213; 375.24042 752074; 375.57992 23820; 375.60568 87778; 375.84479 931434; 375.95568 49144; 376.01476 1732609; 376.1613 29832; 376.32679 77698; 376.37851 1179311; 376.53068 4647826; 377.05375 20425; 377.07274 58497; 377.11021 285256; 377.47968 535598; 377.55057 2508618; 377.56799 3141802; 377.76416 1122497; 377.91604 51818; 378.11473 10686; 378.2371 2730808; 378.48233 15766; 378.55183 2340; 379.28898 74143; 379.29707 132331; 379.44103 71034; 379.82302 5692; 379.99113 7663446; 380.27863 1038455; 380.32712 28854; 380.81065 3308426; 380.91669 4797899; 381.15965 43703; 381.19156 31850; 381.25741 7484197; 381.39735 9401153; 382.65141 6665767; 383.28937 14742; 383.66051 2391073; 383.83272 4729722; 384.09814 9696454; 384.10388 7655313; 384.14852 16199; 384.2108 23079; 384.28432 1464; 384.43801 193888; 384.52455 66697; 384.76591 24619244; 384.7935 46978; 384.82125 1606609; 384.86678 28524; 385.22509 6250; 385.29186 67773; 385.33771 1227637; 385.51114 1496152; 385.65457 20533; 386.07707 4917022; 386.69563 23269; 386.79239 22404; 386.88757 2771; 387.0801 144129; 387.41968 858715; 387.4216 54083; 387.88782 191968; 387.96979 1925357; 388.08653 1000870; 388.25934 2508747; 388.44856 17534; 388.49433 18796; 388.5356 25414; 388.57665 6556; 388.63672 975804; 388.84551 604; 388.97297 14458; 389.20495 196971; 389.42473 1611224; 390.05803 3607159; 390.22241 1682672; 390.36675 20058; 390.60822 239272; 390.61163 21913; 390.73132 24974; 390.73343 1524984; 391.07988 7401; 391.1784 5257; 391.23584 77626; 391.3645 64047; 391.37297 29419; 391.56266 14646; 391.70537 69438; 391.9428 7582930; 392.08605 28946; 392.27077 186620; 392.47611 203402; 392.56891 1313; 393.03366 27336; 393.52527 537116; 393.59656 108024; 393.61806 6196; 393.87814 25440; 393.87824 22152; 393.92496 5777; 394.1123 75305; 394.20642 26394; 394.42704 913727; 394.48768 574746; 394.74404 72898; 395.16033 1099026; 395.16159 23695; 395.31702 53702; 395.48488 24583; 395.92058 74995; 395.97879 4751849; 396.30638 51524; 396.35087 164152; 396.36967 17161758; 396.48597 642660; 396.56087 589653; 396.58363 741587; 397.26082 168203; 397.5339 6850207; 397.77405 76993; 398.36706 1706825; 398.38114 3045442; 398.6213 22768; 398.69741 118567; 398.71241 6526779; 398.83591 157010; 398.87457 3253; 399.06273 1197120; 399.1807 1454028; 399.31362 3908; 399.55123 43966; 399.73367 9148; 399.76873 48202; 399.97238 2869651; 400.38664 13598; 400.49805 197297; 400.64805 2344122; 400.86053 12575; 401.48512 23603337; 401.56914 410238; 401.93042 4480; 401.9653 72051; 402.42045 166043; 402.55916 2089951; 402.71206 26421; 402.8858 8466; 403.0052 4654; 403.03598 21548; 403.11244 3594; 403.59648 1305116; 404.12795 162434; 404.28631 18311402; 404.52412 8121006; 405.05429 63712; 405.18383 74089; 405.26138 7710518; 405.33298 279805; 405.34492 6518; 405.36183 4985531; 405.37757 154548; 405.61043 4032210; 405.98249 52228; 406.09558 3033656; 406.13948 35044; 406.24585 6995; 406.61811 55564; 406.64665 3599; 406.73287 23393; 407.20559 855847; 407.20613 488216; 407.22735 20349; 407.32588 1425858; 407.33525 3572666; 407.55864 17081; 407.60623 368; 408.03273 1039232; 408.44161 33026; 409.00964 37317; 409.57288 3421762; 409.73019 710518; 409.80011 7253; 409.97679 6407; 409.99328 184174; 410.23024 1387485; 410.32744 7873129; 410.41802 42825; 410.4988 25164; 410.72218 60050; 410.89699 2070; 411.27741 56633; 411.31649 638186; 411.43924 22610; 411.45245 1599929; 411.57483 51895; 412.00093 11355739; 412.07666 3634888; 412.3062 9959; 412.95526 293066; 413.01384 1213; 413.33879 1646916; 413.36454 1568706; 413.44966 1242792; 413.87202 554699; 414.00945 24407; 414.45783 56929; 414.57046 1140947; 414.72613 1271300; 414.8589 151824; 415.22454 320525; 415.26496 4400; 415.30996 79277; 415.31139 2014500; 415.4476 2355; 415.93029 23023; 416.21512 1616362; 416.2414 245793; 416.31027 62348; 416.35779 786; 416.38814 222352; 416.54699 11172727; 416.64699 28937; 416.67941 1088735; 417.06032 8713418; 417.14332 9764; 417.35769 8429; 417.39242 1228393; 417.61992 58612; 417.63318 31666; 417.63385 6458; 417.70616 10596; 417.79427 4524750; 418.15553 1639; 418.31621 1122788; 418.73418 1991234; 418.7345 898747; 418.9003 53977; 419.02146 63436; 419.09874 1677499; 419.45467 5674006; 419.91549 61615; 420.36754 28041; 420.55537 4442808; 420.5979 84227; 420.61973 10027; 420.66724 3396162; 420.67893 4144540; 420.81071 45309; 420.91342 46409; 420.92783 1087811; 421.0728 27447; 421.12162 12322; 421.37559 37311; 421.60501 16236; 421.87902 53928; 421.91364 144689; 422.06845 29805; 422.08622 46392; 422.09113 1464556; 422.1525 59296; 422.35792 54130; 422.59632 16872; 422.61461 19395; 422.69741 162875; 422.98608 46337; 423.07989 9132917; 423.08242 43452; 423.22246 1074233; 423.35489 35312; 423.75421 3290970; 424.27369 25926; 424.37815 2722; 424.47926 471197; 424.49215 3753878; 424.92794 13032215; 425.40824 1532964; 425.47022 4740116; 425.49067 7451173; 425.70462 4944229; 425.73436 34654; 426.47096 80263; 426.64829 8731510; 426.66404 1190672; 426.86269 32716; 426.87393 6371; 427.00765 453; 427.1197 1169969; 427.27054 1089465; 427.47051 1437; 427.48452 6782010; 427.48634 2792; 427.6391 3389; 427.65616 56201; 427.83842 926777; 428.08121 2834376; 428.35018 1850344; 428.382 1491559; 428.44896 32517; 428.72904 6566711; 428.93677 7925256; 429.0351 37925; 429.09356 79812; 429.38284 198150; 429.4057 188924; 429.54558 6878; 429.92617 1618124; 430.13429 65958; 430.28208 255226; 430.29249 746839; 430.38425 7293; 430.40813 22910; 430.4761 3259847; 430.5541 9294; 430.87343 2146778; 431.17899 74869; 431.66121 8999388; 431.69261 483517; 431.77335 56558; 431.9476 38539; 432.31796 44222; 432.42554 3639171; 432.52422 30796; 432.56002 23067; 432.67672 165166; 432.80274 3350768; 433.37917 1907; 433.40303 3788275; 433.6249 38399; 433.66832 471528; 434.0074 103876; 434.07812 4129; 434.15303 79557; 434.18138 1983750; 434.28126 5923977; 434.73142 2923360; 434.8258 921587; 435.14929 1328287; 435.22653 66879; 435.2587 66173; 435.45156 354384; 435.64779 148202; 435.68503 6892; 436.01885 39164; 436.15937 3817219; 436.25142 104199; 436.28343 1884995; 436.44856 4768467; 436.52395 1104296; 436.6353 6323; 436.75673 1011073; 436.92737 28115; 436.98267 43977; 437.00742 59448; 437.04974 69409; 437.34047 1642; 437.39092 8247; 437.42152 104370; 437.51572 73305; 437.59468 20212180; 437.67796 526118; 437.78637 23518; 437.81169 17420; 438.00641 57923; 438.03439 18073; 438.08082 16469; 438.1075 51223; 438.11656 73517; 438.2528 8920981; 438.35261 49887; 438.81812 1264372; 439.03587 347634; 439.07689 28940; 439.36748 24761; 439.59055 9342376; 439.6447 1301434; 439.81533 62108; 439.89271 105315; 440.0362 21232; 440.24365 636908; 440.29217 39977; 440.34159 75320; 440.43712 17474; 440.86278 3103621; 441.01046 23078; 441.03365 3293; 441.15935 4181; 441.89024 923227; 441.91778 975861; 442.19045 244799; 442.23284 1792664; 443.1048 21530; 443.30293 4547; 443.38781 72172; 443.50215 7561; 443.62963 1634478; 443.71641 45326; 444.16813 31784; 444.27723 69332; 444.28511 55654; 444.75543 17761; 445.16644 1228943; 445.38905 65791; 445.51057 111957; 445.53623 1954660; 445.67867 3245547; 445.84668 4982336; 446.186 911780; 446.29674 25293; 446.44948 452; 446.6752 2606090; 447.1707 9488; 447.27331 11274105; 447.28972 2643; 447.45902 3774894; 447.76415 31683; 447.90089 50111; 448.31129 60263; 448.71097 8963352; 448.82213 5250117; 448.85627 36489; 448.88366 5998; 448.97252 12903; 449.03795 9956713; 449.14426 26987; 449.16341 37157; 449.16808 2981248; 449.21171 60629; 449.56013 3607; 449.64143 20728; 449.7887 57888; 450.1672 1512283; 450.21698 5262339; 450.32064 12758; 450.33207 36259; 450.69409 3664799; 450.81356 89862; 451.36692 3143; 451.3915 2595256; 451.4741 4752586; 451.70296 4445069; 451.9532 1352144; 452.00691 79121; 452.27889 8495137; 452.33094 52562; 452.44336 26242; 452.68849 27277; 452.7101 156868; 453.0534 15934; 453.09556 30383; 453.29179 938788; 453.30519 25755; 453.61481 7368; 453.7248 9429; 453.85187 202086; 454.04736 1386978; 454.4657 148803; 454.57616 51906; 454.96458 1657587; 455.08084 246639; 455.23837 2487781; 455.26135 8792; 455.86349 2550; 456.08825 38809; 456.37757 40590; 456.81197 8724; 456.8578 46643; 456.93065 4047727; 457.07438 77060; 457.22299 119722; 457.2423 31196; 457.26319 1169893; 457.33509 2075817; 457.42834 34823; 457.72897 74092; 457.87715 4559184; 457.94953 317102; 457.98414 4279501; 458.19457 24328; 458.70342 2375; 458.73805 75186; 458.81864 4591228; 458.85215 6428462; 458.97757 9720981; 459.04381 1064669; 459.06121 973284; 459.08685 42070; 459.19877 21231; 459.31853 12453; 459.63493 15084; 460.10702 56581; 460.41221 103715; 460.61457 18581; 460.6287 13035209; 460.6844 22813477; 460.73702 1897434; 460.88371 44065; 460.93247 2832081; 461.18216 29658; 461.20407 43707; 461.35649 18504; 461.45891 28918; 461.48669 31231; 461.81069 1909681; 461.85813 143112; 462.09068 39833; 462.25336 1099037; 462.51713 357637; 462.54548 1405398; 462.58421 2998; 463.0799 30970; 463.54198 3528199; 463.70641 4613279; 463.77851 28269; 463.84161 50742; 464.93461 8200; 465.02579 115730; 465.4218 96948; 465.59545 1724710; 465.63574 5452244; 465.77651 1626106; 466.25668 64145; 466.87789 78186; 467.31227 39344; 467.4194 18872; 467.49294 15440; 467.50539 1939209; 467.86934 2136342; 467.94103 6704; 467.99203 52232; 468.17508 25635; 468.17584 81199; 468.29382 6767; 468.63451 1922911; 468.6633 132296; 469.45055 5907500; 469.50479 1088155; 469.59235 1441040; 469.60371 976513; 469.67945 1311707; 470.07249 60805; 470.18054 67353; 470.20574 108318; 470.25468 2190177; 470.32903 1569908; 470.4445 10074; 470.46691 4736491; 470.93743 3125; 471.12401 3985305; 471.21962 19133; 471.30327 23000; 471.69378 156863; 471.77657 31768; 471.89432 10147; 472.15273 5223431; 472.2143 3519149; 472.22731 49841; 472.26829 87688; 472.57639 1819853; 472.59728 360499; 472.59783 13046; 472.63279 49712; 472.92557 2121; 472.94459 17252; 473.08611 622417; 473.11612 1977424; 473.13234 11828053; 473.22578 989; 473.25095 320139; 473.26464 21820; 473.27335 75308; 473.48448 21003; 473.52877 1205; 473.89186 54138; 473.95148 4204747; 474.12582 65567; 474.36896 5007; 474.45875 23118; 475.03389 41506; 475.36374 1115802; 475.50866 8767733; 475.7269 27731758; 475.76496 24688; 476.22012 12886; 476.28684 7028354; 476.52887 27638; 476.68447 37726; 476.69197 610006; 477.01714 50313; 477.16494 78176; 477.30791 5074; 477.47775 771968; 477.54886 7871; 477.59435 7966543; 477.66533 3032684; 477.6669 34818; 477.81558 685354; 477.97508 11224214; 478.03879 60717; 478.47863 846711; 478.55162 135073; 478.58142 2100; 478.63988 75440; 478.74842 29351; 478.92345 867272; 479.00457 2166510; 479.35661 2290172; 479.65386 7538130; 480.02511 20988; 480.32102 63951; 480.47451 159077; 480.5133 991499; 480.71817 61307; 480.83579 55510; 481.06989 1006181; 481.1302 688731; 481.17626 5184231; 481.38802 7114585; 481.72792 546; 481.92415 4963992; 482.06034 3525180; 482.1196 8320; 482.15075 635083; 482.15213 3903562; 482.2543 28760; 482.54786 28581; 482.67511 3595; 482.68308 4268; 482.78801 14601; 483.40235 1944; 483.58939 472502; 483.67256 137590; 483.72898 1220; 483.92207 63768; 484.08541 4992109; 484.21458 25128; 484.38037 484007; 484.38562 1491945; 484.40724 41943; 484.62038 26559; 484.66567 55534; 484.66706 139698; 484.92445 198513; 485.51287 180664; 485.69137 11856; 486.00447 2576261; 486.14851 144985; 486.18942 64231; 486.72297 5725382; 486.86074 3462874; 486.97017 960; 487.20732 1300162; 487.22875 450051; 487.41866 7677; 487.45081 16853363; 487.67289 6518692; 488.16665 32208; 488.18683 8161963; 488.21632 1974859; 488.88913 16973; 489.07267 25256; 489.15035 29697; 489.21052 37079; 489.4973 31518; 489.54189 7914732; 489.9277 9705596; 490.09394 41706; 490.10658 4561029; 490.70385 48008; 490.92537 4269519; 491.10214 20958; 491.4848 45422; 491.77055 4331309; 491.7757 1782976; 492.03941 7148; 492.40452 812191; 492.52077 12766; 492.67102 4436394; 492.71547 12380; 492.74733 1974882; 493.18547 11392; 493.20013 60602; 493.36353 6483; 493.40777 137578; 493.59306 79522; 493.77248 68277; 494.46631 176394; 494.61093 114271; 494.67755 38853; 494.71468 23758; 495.1142 7918041; 495.25801 8685; 495.38145 335; 495.44714 907073; 495.7809 68080; 496.17858 2706998; 496.2523 971683; 496.78901 1167765; 496.85365 4170; 497.07264 1212708; 497.29009 2068509; 497.40419 15395804; 497.41683 47832; 497.64641 26413; 497.69228 1235812; 497.77761 3565063; 498.08954 9482; 498.64062 29433; 498.96984 505295; 499.13891 18401; 499.27566 2910190; 499.36761 1404665; 499.37518 721287; 499.39352 49257; 499.51168 165958; 499.63562 5039; 499.65426 1354142; 499.78801 74946; 499.81078 156964 +<6, 7>: 0.15711 57942; 0.22518 1095; 0.26641 17886259; 0.59184 9224446; 0.71144 50698; 0.78675 4996002; 1.05169 47680; 1.25987 53180; 1.26971 111296; 1.42707 210217; 1.49851 654706; 2.15177 29431; 2.42709 15613; 2.70999 4639; 2.88069 56799; 3.36557 10907; 3.40789 25010; 3.53141 363368; 3.91114 2721860; 4.19896 403910; 4.41621 55078; 4.46484 30155; 4.49229 71630; 4.60437 21572; 4.62821 27851; 4.65691 8249; 4.79087 833458; 4.80552 18712; 5.01176 65932; 5.02371 45118; 5.1695 20768; 5.31742 7671969; 5.32718 6123; 5.60476 24125; 5.60918 4637623; 5.79642 26906; 5.90408 36623; 6.12906 1449909; 6.14993 2948; 6.16921 62782; 6.17643 4889164; 6.43332 2662790; 6.5793 1306; 6.79873 1995639; 6.9469 60479; 7.13103 64588; 7.22469 3426435; 7.29684 4667697; 7.84994 4575195; 8.14133 24008; 8.21799 421645; 8.41877 357571; 8.48031 4666038; 8.5839 1135; 8.76373 1519458; 8.77499 39111; 8.7998 120878; 8.85736 69757; 8.89592 43874; 8.96096 52040; 8.96461 22519; 9.07176 15445997; 9.29505 3547789; 9.4279 11327; 9.54688 29087; 9.76931 62811; 9.93518 167656; 10.11544 16507; 11.22684 363; 11.39369 1446073; 11.46834 58227; 11.57867 199394; 11.62605 3639; 11.68088 3447542; 12.10947 34708; 12.39741 33697; 12.52388 5563; 12.74771 197846; 13.15797 1177074; 13.67982 1241663; 14.9717 196149; 15.02488 50188; 15.09142 54956; 15.68079 2110479; 15.73495 208281; 15.88301 119665; 15.95168 190376; 16.20083 23376; 16.408 19239; 16.84786 2167554; 17.09294 4929625; 17.26499 4299; 18.0426 6018; 18.06138 187682; 18.06258 36436; 18.07191 44677; 18.42783 26913567; 18.44751 1809854; 18.48325 3010905; 18.49611 243150; 18.51727 53805; 18.58712 27924; 19.03933 2947; 19.79902 27876; 19.91014 3659; 20.08807 184564; 20.64849 68933; 20.7254 11758531; 20.91324 20621344; 21.22619 32483; 21.23537 2520423; 21.52306 3086; 21.57291 841130; 21.9559 8699; 21.983 375384; 22.11315 6421674; 22.55532 13424406; 22.87354 47241; 23.04454 1340010; 23.05392 4214510; 23.45083 56493; 23.48172 9981194; 23.67764 73652; 23.95586 4712075; 23.95993 36564; 24.09086 22211; 24.09658 69638; 24.29269 2306532; 24.3908 35073; 24.50532 348179; 24.57654 59697; 24.79123 18673; 24.88935 9281; 25.12558 29474; 25.81906 38232; 26.05701 76695; 26.48593 48694; 26.60919 58966; 26.821 68010; 27.05831 299136; 27.13518 284862; 27.18741 7526873; 27.21237 16244; 27.50184 2287; 27.7786 17851593; 28.04272 14211; 28.2222 3841; 28.47675 9558; 28.48369 32307; 28.54292 8664; 28.62628 2423963; 28.71871 1626; 28.72045 70814; 28.84958 8243; 28.96681 66491; 29.13808 1123781; 29.34822 3021012; 29.54029 1979068; 29.6908 14787; 29.78602 9265; 29.7913 23519; 29.84985 1948759; 29.91204 11712; 30.0055 1749982; 30.18405 33720; 30.3126 7877459; 30.48821 2875944; 30.75072 1421257; 30.81326 10897; 30.82847 34874; 30.87811 79572; 31.81593 3561024; 32.34214 7599866; 32.49338 24006; 32.68309 758447; 32.70723 9731441; 32.74617 8051163; 32.74808 3138538; 32.85927 28745197; 32.95244 55196; 32.98249 9906; 33.09522 10058554; 33.10697 40927; 33.1156 1312319; 33.15486 1654854; 33.226 52091; 33.322 464434; 33.39172 39887; 33.51295 2894; 33.61485 519226; 33.67808 40627; 33.76748 8133; 33.95546 25594; 34.16711 5022; 34.32028 3609; 34.62104 9066; 34.73202 548551; 35.31009 25339; 35.45274 23394; 35.70944 39030; 35.72462 777320; 36.16281 1963373; 36.21065 78769; 36.34358 49401; 37.16563 3453; 37.22494 116332; 37.27703 62679; 37.39151 11574; 37.49812 4497053; 37.60681 9422407; 37.6504 72791; 37.78177 730814; 37.89997 788051; 37.91584 312158; 37.94838 36521; 38.2518 394536; 38.33578 121906; 38.41786 1844; 38.94568 26547; 39.10098 711190; 39.24011 113141; 39.44145 1714163; 39.51859 8284; 39.5652 1080350; 39.59601 1113; 39.9741 9683; 40.19119 5942; 40.30015 70200; 40.43624 20640; 40.46412 152500; 40.57322 6058644; 40.5926 35954; 40.60951 139613; 40.70918 40759; 41.04588 150666; 41.22715 1540620; 41.42748 1739071; 41.53563 28533474; 41.72738 3147; 41.74856 9948; 41.83839 24655; 42.01261 2474749; 42.20228 1819626; 42.23172 4764; 42.25061 1514940; 42.31077 15170; 42.39579 5824762; 42.41203 6998; 42.69243 136323; 42.76854 63381; 43.10875 152233; 43.19573 1654485; 43.35249 74387; 43.37865 3673; 43.4415 6748; 43.47165 1874367; 43.49113 77758; 43.49294 40750; 43.56761 28948; 43.66699 2724001; 43.77263 244472; 44.12731 72694; 44.18007 17097; 44.30136 2650626; 44.36247 27499; 44.53066 56692; 44.64543 173363; 44.79896 45; 45.10614 144061; 45.14602 4315; 45.17095 1896033; 45.20309 73469; 45.2758 66699; 45.50564 22523389; 45.62001 2512242; 45.65602 8219842; 45.70865 16512006; 45.85231 16628657; 46.56969 15560; 46.84808 115843; 47.18912 30567; 47.21169 135778; 47.38173 175509; 47.53898 23037; 48.0539 17064; 48.94105 1300678; 49.29912 1078611; 49.49575 9865160; 49.55152 26819; 49.75842 64630; 49.85903 15178313; 50.03602 16080; 50.30143 36371; 50.31753 21042061; 50.37287 63567; 50.39685 914789; 50.7718 1405211; 51.19671 12461; 51.36791 162069; 51.55086 21139509; 51.66761 3091957; 51.7104 41123; 51.85072 73067; 51.95696 22445; 52.51418 52062; 52.73854 21676; 52.8937 99741; 53.13628 16994; 53.18271 10888; 53.33571 32350; 53.34349 21952; 53.49729 40604; 53.8191 64030; 53.82704 2200667; 54.17748 24220; 54.56622 29341; 54.59088 1364252; 54.80064 28126; 55.04589 5489; 55.2416 475689; 55.32478 4388; 55.50334 44142; 55.5196 400; 55.77361 29618; 55.82386 7576418; 55.86938 3735315; 56.29336 61235; 57.15255 534093; 57.27142 53758; 57.574 23463; 57.69329 1066962; 57.84099 67913; 58.00442 24538; 58.23233 1764221; 58.81339 76773; 59.02574 23346; 59.16298 1876008; 59.71304 108542; 59.76275 5947; 59.80613 62291; 59.8248 13781; 59.84837 29047287; 60.11298 1874756; 60.12988 484827; 60.15394 1697770; 60.37951 28149; 60.46775 28816; 61.00206 1902076; 61.01255 20156; 61.0327 203749; 61.13326 35659; 61.2916 191257; 61.39082 56591; 61.49671 52392; 61.75417 436059; 61.8798 23235; 61.88031 8887; 62.35854 24279155; 62.55645 268490; 62.62782 57368; 62.94599 2970494; 63.03409 38510; 63.20214 27602046; 63.26297 54971; 63.38815 36856; 63.62922 27289; 63.64645 80335; 63.7391 79078; 64.05148 28596; 64.15327 571344; 64.20784 773986; 64.27222 28772; 64.82914 289; 65.02584 26295; 65.0391 52429; 65.04232 56154; 65.34165 183730; 65.39152 32905; 65.56456 996296; 65.58765 1331; 65.61556 4948; 65.70278 7275803; 65.71054 3562435; 65.81054 28678; 65.81723 53892; 66.0197 544420; 66.37108 5317; 66.38864 166848; 66.7888 679176; 66.95719 78072; 67.23231 26068; 67.35678 9386; 67.37803 129201; 67.42207 3400339; 67.42447 128089; 67.4882 68583; 67.58173 1488829; 67.74164 6761073; 67.80999 46657; 67.84718 48843; 68.11853 78980; 68.20076 7428; 68.41089 28718; 68.87442 194919; 68.88099 66431; 69.01537 23431; 69.04519 68008; 69.54706 18851; 69.67157 5432439; 69.82142 27647; 69.95411 29396; 69.98399 169877; 70.2254 24346; 70.39809 5640383; 70.62852 14906; 70.801 2473; 70.91514 32325; 71.3641 6635; 71.42122 77196; 71.50063 29204; 71.57195 429774; 71.61772 803716; 71.68851 1749034; 71.9274 9852; 71.94632 6263366; 71.97231 56823; 72.13602 1545752; 72.21154 523117; 72.29296 2400; 72.43889 2280; 72.65388 30333; 72.85211 822851; 73.03379 44458; 73.66594 18404; 73.68983 1144; 73.69803 7853; 74.00074 32452; 74.02571 1585478; 74.10413 32442; 74.36939 28669; 74.47039 77411; 75.63556 4137; 75.90778 486726; 75.9518 111640; 76.14296 26016; 76.30763 360496; 76.58278 73931; 76.89867 51643; 77.07172 19627; 77.14122 54156; 77.15383 1214676; 77.32377 4701766; 77.41344 1916488; 77.47368 34334; 77.56998 74193; 77.72749 14775; 77.76657 2688050; 77.81583 1487379; 77.95291 26597; 78.39496 72644; 78.44069 1248111; 78.56884 743464; 78.73733 43925; 78.83351 7252; 79.02727 9321; 79.12697 47180; 79.3312 17195; 79.79629 9761426; 80.0752 4940809; 80.2767 20673; 80.41625 64819; 80.48204 21165458; 80.53706 24820; 80.61966 8243439; 80.67987 747255; 81.17149 1307348; 81.31463 7894168; 81.45418 383852; 81.51559 6659941; 81.76605 14820; 82.30295 172161; 82.31907 1299313; 82.54842 29001; 82.60676 171829; 82.61234 5302459; 82.79404 15923; 82.80925 332143; 82.94635 22412; 83.58292 6424; 83.58537 22458; 83.64532 1125124; 83.78405 3835772; 83.97396 55120; 84.03629 3378; 84.07062 5683979; 84.19098 20429; 84.19143 2297671; 84.21397 37869; 84.4642 5620343; 84.61843 67051; 84.77759 8871; 84.84728 27036; 85.24218 32047; 85.33322 311769; 85.44945 82499; 85.48483 9260607; 85.51846 5378314; 85.7895 56977; 86.58034 1201035; 86.83896 1255718; 86.92026 147291; 86.99271 7011; 87.17204 43091; 87.55087 101395; 87.61187 104536; 87.84918 1367877; 88.28493 8433764; 88.31174 1304284; 88.3335 3434353; 88.65639 4005; 88.69844 185727; 89.41407 40558; 89.48231 7182940; 89.49093 1470414; 89.80959 143591; 90.38725 51892; 90.54198 1181144; 90.55624 1002; 90.93745 3710516; 91.56414 65021; 92.08423 6689181; 92.102 326642; 92.22359 67466; 92.22555 1064344; 92.40293 6763312; 93.0234 6171711; 93.02907 1796343; 93.03542 3429483; 93.10443 60346; 93.33286 2514408; 93.34617 192985; 93.55263 680235; 93.81209 66384; 93.9631 2729120; 94.02708 29531; 94.05778 1659378; 94.26372 716184; 94.40834 19435; 94.56891 2405; 94.78081 4221033; 94.79882 132275; 94.95193 4061048; 95.12609 2346954; 95.62087 70441; 95.72244 34759; 95.76792 3500402; 95.99867 24249; 96.32912 850725; 96.56257 1347220; 96.69776 156301; 96.90602 1005182; 97.17431 460509; 97.85464 1844061; 97.94795 17625564; 97.96294 44764; 98.34443 1403964; 98.47332 3252; 98.51827 22213; 98.59332 539183; 98.94104 16812; 99.17171 194998; 99.23179 560942; 99.57561 77670; 99.71517 44520; 100.05247 40024; 100.51527 3013478; 100.64101 2486; 100.89912 7758422; 100.94368 6666412; 101.09998 20357; 101.24142 55248; 101.27587 227908; 101.48895 4545; 101.59564 1513887; 101.771 8079; 101.98882 3874002; 102.46457 6892; 102.66029 6399478; 102.77262 13591057; 103.16031 1861635; 103.21256 1211064; 103.22085 72189; 103.47322 29594; 103.65364 28479; 104.04992 60209; 104.80116 27730; 105.00963 99140; 105.06805 1210183; 105.44667 1219161; 105.45463 77681; 105.49259 196838; 105.75487 1815193; 106.03101 153193; 106.08124 1172922; 106.1879 16521871; 106.27713 51891; 106.2863 27267; 106.37223 27347; 106.42972 35735; 106.76953 7727229; 107.08742 20114; 107.15014 3224; 107.35368 5296; 107.48345 3699; 107.66952 4456816; 107.83651 120456; 107.85943 26394; 108.04058 1971410; 108.13231 9708; 108.1957 572834; 108.4012 21998629; 108.61771 7943464; 109.18057 3040; 109.22576 5885; 109.37236 90732; 109.4829 21343; 109.48333 991303; 109.58771 6876624; 109.76372 43816; 109.91133 25529; 110.38522 24025; 110.52532 62162; 110.62312 12619; 110.68561 4076; 110.75587 2392; 110.86727 1936639; 110.88341 195392; 110.95734 9715042; 111.16942 5044008; 111.2482 6226; 111.35566 4144431; 111.43864 5500750; 111.58199 5933; 111.82667 5937953; 111.832 4073; 111.98629 23793; 112.30484 334377; 112.63493 6454; 112.64334 7288; 112.89912 1248546; 112.93727 8278; 113.00047 47785; 113.07567 1051325; 113.25817 837767; 113.45733 4981; 113.46453 8103; 113.8607 438074; 113.89359 3900066; 113.92959 886; 114.04153 23223605; 114.089 29799; 114.31916 55191; 114.62104 40300; 114.70554 2194786; 115.02248 49231; 115.0368 2397440; 115.13277 16273; 115.18563 527; 115.28212 8158213; 115.36171 3805504; 115.5203 19266; 115.88184 60343; 115.95273 1881094; 116.15547 11116148; 116.36249 19796; 116.54426 866162; 116.64935 55182; 116.89713 720018; 117.24676 72512; 117.67438 47909; 118.03684 6527; 118.22937 581838; 118.8925 120570; 119.02507 2187768; 119.10496 782; 119.13322 30628; 119.13824 2317886; 119.27158 14001402; 119.53588 44095; 119.6025 545947; 119.86157 4512635; 119.9775 38292; 120.16095 457607; 120.17902 502039; 120.18752 1819959; 120.19953 23638; 120.35144 2152500; 120.51535 4558690; 120.72609 69211; 120.81218 100062; 120.81433 70129; 121.09583 5266; 121.11153 8312; 121.49254 119543; 121.52867 278948; 121.72208 29510; 121.89143 82735; 121.92989 14536127; 121.93592 953; 121.94404 9011; 122.04403 23673861; 122.22653 211; 122.34485 4290; 122.40454 115183; 122.74324 928435; 123.53357 75789; 123.54478 28043; 123.60825 47906; 123.67524 79268; 123.72537 383271; 123.86046 119284; 124.19182 2919697; 124.28864 1896; 124.57968 22901; 124.65944 19982; 124.73656 8871; 124.9069 45145; 125.0042 5396544; 125.04508 31718; 125.11611 4609735; 125.15952 6501446; 125.53706 61058; 125.59906 64106; 125.99305 69951; 126.07876 6240; 126.1622 60562; 126.25689 57289; 126.47683 1966979; 126.52223 18669; 127.05766 250465; 127.10745 6411; 127.6978 9361274; 128.33335 2529; 128.53415 4247527; 128.61764 1798100; 128.66065 1606003; 128.68708 803313; 128.75441 8489297; 128.8814 4896403; 129.61049 23832; 129.64105 20795; 129.65383 57348; 130.02353 34419; 130.04529 3273; 130.16493 20364; 130.26837 2389693; 130.79589 1709733; 130.9481 7067183; 131.09833 44667; 131.11501 5300; 131.26891 7707; 131.28182 61108; 131.4336 21719; 131.45268 21412; 131.51905 189250; 131.54256 41077; 131.57376 74851; 131.64608 46863; 131.66823 192786; 131.67714 3400624; 131.71116 68955; 131.77408 17718; 131.8995 31850; 132.22396 11891560; 132.59355 1520; 132.96999 25720976; 133.01651 1063162; 133.02507 28511; 133.07155 168224; 133.1634 54143; 133.18914 50047; 133.24159 183233; 133.32667 2209; 133.37322 1010264; 133.54286 1220713; 134.31025 211044; 134.6285 37099; 135.04223 20063; 135.13811 40370; 135.40052 1808150; 135.4644 8119515; 135.58629 2949047; 135.70942 27712; 135.7285 3261759; 135.75429 1168069; 136.02248 799; 136.26939 32362; 136.47266 2772938; 136.52618 80639; 136.73525 5267877; 136.83092 23609; 136.86406 184093; 136.89443 165299; 136.94122 76049; 136.9736 26434; 137.01032 69286; 137.11489 284865; 137.25903 27988; 137.3207 1268543; 137.46003 30756; 137.47919 2419; 137.61735 1521; 137.63962 14268; 137.69453 436410; 138.13291 181801; 138.37423 2134; 138.43762 57554; 138.57444 25031; 138.58837 221731; 138.68059 1136; 138.84478 279291; 138.88925 72779; 138.91083 5086; 139.06941 26341; 139.09015 1071344; 139.2567 14626; 139.31463 1191617; 139.32228 535288; 139.39928 5172; 139.71392 43574; 139.94739 22126886; 140.09788 37150; 140.11092 3035934; 140.12846 356881; 140.25006 43562; 140.25008 34459; 140.39263 617431; 140.48724 2601; 140.53158 75303; 141.42518 5407005; 141.43706 45950; 141.49235 795070; 141.60328 67710; 141.66146 38084; 141.90986 20345; 142.71067 110; 142.78409 1367455; 142.94403 4393; 143.06935 30130; 143.77332 64181; 143.98136 59908; 144.17114 12124587; 144.25521 29059514; 144.3653 833027; 144.43902 119627; 144.5365 145783; 144.57038 28883; 144.66539 56677; 144.66959 97342; 144.70968 2603218; 144.79692 38967; 144.81915 4068585; 144.9103 924559; 145.08696 16121; 145.34191 52665; 145.43679 138409; 145.87765 68282; 146.40813 672106; 146.94916 295478; 147.00458 12885; 147.04208 913728; 147.09715 99108; 147.31031 72409; 147.41779 25303; 147.45375 1910266; 147.76877 86367; 147.88947 64284; 147.91742 891328; 147.94148 4667750; 148.01623 42364; 148.05156 26789; 148.42012 39440; 148.44684 1507509; 148.89811 51783; 149.57807 52465; 149.72111 5714108; 149.76139 23289; 149.8839 64313; 150.07396 15501981; 150.11831 61181; 150.14329 1199080; 150.67641 1638420; 150.70804 23285; 150.9143 4496466; 150.96308 30303; 151.07093 1135780; 151.1463 424692; 151.51046 34933; 151.54856 1986851; 151.61319 23990; 151.80669 49470; 152.0233 149246; 152.18178 21833538; 152.38107 32900; 152.57303 8506; 152.60207 4759721; 152.8894 20567; 152.90375 13088; 153.01841 65187; 153.02477 3782913; 153.50213 64484; 153.64544 9380; 153.69196 236718; 154.40094 2371; 154.79429 18862810; 154.83343 3586661; 154.91277 67754; 155.00817 2040518; 155.07284 969869; 155.23141 7378; 155.38447 61622; 155.43123 2133309; 155.75363 28478; 155.86381 28820786; 156.50792 195187; 156.52555 4244; 156.58714 3352050; 156.80206 49561; 157.18149 16151; 157.43773 152937; 157.50546 32614; 157.61489 1937453; 157.65585 9569425; 157.68869 17548; 157.87221 18730; 158.04186 22786; 158.05912 9760; 158.51862 2823; 158.76474 5349995; 158.83114 49707; 159.01757 41500; 159.08034 154537; 159.09442 7741; 159.12877 48305; 159.29724 62307; 159.47288 69189; 159.49119 2612305; 159.91491 77770; 159.96066 6053301; 160.09327 20767; 160.82228 3299644; 160.86422 168377; 160.9615 176341; 160.98496 4134368; 161.02765 48784; 161.12444 815660; 161.335 28950; 161.80463 29004; 161.8418 21648; 161.98828 192745; 162.02669 6232035; 162.09278 6960; 162.23779 707848; 162.4238 9703267; 162.43176 1216; 162.61259 451642; 162.70638 15526; 162.78442 7177; 162.84724 2074714; 162.95621 3512714; 163.34497 381366; 163.38289 4717453; 163.53446 27461; 163.6365 551348; 163.64242 23497; 163.9199 72582; 164.16139 14691055; 164.55864 399384; 164.8903 111422; 164.93007 580882; 164.94071 6804276; 165.06486 61626; 165.28938 1154542; 165.54919 47528; 165.93693 2020578; 165.95962 7613; 166.25183 40155; 166.35353 35320; 167.05621 30212; 167.25239 565828; 167.26748 2449131; 167.30956 185792; 167.58375 190134; 168.35698 173962; 168.47471 1234370; 168.5505 16762335; 168.6771 10697865; 168.79638 24399; 168.83716 230; 168.86541 25479; 168.93212 23839; 168.94185 2988; 169.66767 39840; 169.7266 22875; 169.83285 12511; 169.85274 3128; 169.89356 4191778; 170.15295 41260; 170.20305 18682; 170.23031 701686; 170.28037 6162226; 170.30166 15551; 170.96823 79472; 171.11062 56543; 171.65026 860; 171.94065 28493; 171.95894 31569; 172.0539 4539644; 172.32321 24184; 172.45824 4119; 172.82153 4542; 173.05448 1455700; 173.05688 29942; 173.08187 2501518; 173.28432 24606; 173.58703 1561; 173.64898 66110; 174.12405 8196; 174.20637 386523; 174.43553 5727; 174.50372 49444; 174.53795 7569808; 174.56727 1633676; 174.98696 36085; 175.30476 1301843; 175.35584 5154509; 175.86569 2084; 175.94543 145327; 175.94768 5833; 175.95543 1152346; 176.1119 56263; 176.18252 7146799; 176.58261 60700; 176.72191 68432; 176.91847 3656018; 177.04443 368071; 177.18607 27256; 177.30122 18749; 177.51425 29696; 177.82408 480985; 177.83511 42344; 177.93253 1875569; 177.95842 15800; 178.25584 16992; 178.65991 935872; 178.7842 5120023; 178.93022 1709037; 179.08706 7902243; 179.41948 4511441; 179.89175 2991; 180.01389 18085; 180.04625 54260; 180.06333 26463; 180.62582 18245504; 180.83168 5433; 180.86971 303001; 181.11544 110084; 181.2006 3189109; 181.83739 782746; 182.02601 5213; 182.06062 10779458; 182.30446 60073; 182.3092 1760701; 183.01141 37194; 183.18714 27905; 183.29495 54042; 183.69439 7917274; 183.7489 4812290; 183.89164 1683652; 183.94294 19378; 184.01708 26706; 184.08855 40327; 184.38315 4630812; 184.63333 7342938; 184.78508 36103; 184.92935 89096; 185.20172 7423495; 185.25624 1591221; 185.42662 687297; 185.52622 26580369; 185.76476 23400; 185.80567 17545; 185.82025 266157; 186.24375 46505; 186.43887 1507295; 187.16345 55605; 187.20467 874; 187.41895 25727022; 187.5671 18380; 187.84595 292880; 188.36962 263645; 188.5256 166878; 188.89587 1348184; 189.08817 75399; 189.10957 17521; 189.18 56964; 189.31649 45510; 189.47449 36059; 189.60528 21010; 189.93608 1003221; 190.3498 3618853; 190.53249 39293; 190.80001 7657; 190.96983 69181; 191.00671 35361; 191.20357 57873; 191.21908 8822; 191.28708 113712; 191.90817 7520; 192.12719 132073; 193.04347 22770; 193.13766 1015; 193.14053 50783; 193.47172 5562503; 193.5156 181597; 193.6805 4315; 193.70884 55675; 193.75752 9214; 194.11373 35004; 194.14597 632485; 194.64834 12701; 194.97837 4333; 195.05715 15904; 195.27505 185160; 195.32787 1448973; 195.3857 6426570; 195.70153 22068; 196.05758 152941; 196.3211 41535; 196.37045 25859; 196.41574 5406324; 196.71138 181502; 196.80919 938962; 196.83482 5664194; 197.26973 8705; 197.70374 6247; 197.72488 50767; 197.73653 2716298; 197.74874 364557; 198.13526 27324; 198.27231 6593; 198.36667 61625; 198.38818 24127; 198.5385 75745; 198.63815 56669; 198.68192 22060; 198.80134 69135; 198.83424 185393; 198.88507 41782; 199.06552 7313994; 199.25903 6383; 199.34395 22033; 199.49028 1590884; 199.82987 4334; 199.85191 239684; 200.45751 4491210; 200.86586 9826; 200.91319 812055; 201.15282 1563626; 201.50093 14412; 201.51921 1963453; 201.58111 3043055; 202.12317 69475; 202.15632 478925; 202.40036 1790251; 202.61805 1615400; 202.68328 1077464; 202.80788 7057; 202.85651 1596620; 203.10722 4968494; 203.11211 3921; 203.13949 4947022; 203.14875 18453; 203.192 60091; 203.23975 3481765; 203.29443 10402; 203.42863 1582104; 203.44026 41020; 203.48617 9922266; 203.4921 174086; 203.80827 73670; 203.96108 2332566; 204.19536 59274; 204.38973 9661; 204.43905 3784330; 204.91793 5179910; 205.07376 141895; 205.22524 6145701; 205.27624 2775410; 205.34641 1781351; 205.48733 49302; 205.49391 75046; 205.64736 6905289; 205.87211 169408; 205.89167 5439; 206.15035 66923; 206.25825 19546478; 206.28145 1003; 206.47743 6627; 206.5985 58708; 207.50935 4377316; 207.6105 950791; 207.70859 5878; 207.72375 1765; 207.76155 1682; 207.80064 67968; 208.24331 744239; 208.24866 8708780; 208.31107 699207; 208.42052 709525; 208.44736 26080; 208.51301 2368; 208.54362 69104; 208.62009 468; 208.86652 41605; 209.13122 8133148; 209.1353 26193; 209.24589 5529; 209.29927 4861922; 209.94893 806777; 210.03338 22169082; 210.04466 16638; 210.07923 3792; 210.14181 9604; 210.19254 1875400; 210.32745 32934; 210.3936 4996368; 210.41539 42651; 210.42992 7482; 210.726 819620; 210.77829 20883; 210.80499 138527; 210.98985 1300747; 211.01907 7452827; 211.24177 22444; 211.31048 49180; 211.36909 46851; 211.50336 9223739; 211.7397 18684; 211.94031 28243; 212.08332 985658; 212.2567 20201; 212.68483 26248; 212.72985 2377070; 213.34574 24910; 213.57349 8686107; 213.63565 13458; 213.81177 768600; 214.00202 738908; 214.50983 3119; 214.67376 24937; 214.72575 554869; 214.88516 249310; 215.07201 5877019; 215.11886 20107; 215.45826 1206006; 215.59072 302063; 215.67391 55766; 215.73677 29226; 215.96461 858847; 216.25919 64492; 216.56735 40671; 216.63102 78702; 216.71099 52929; 216.8144 7176; 216.82548 2536; 216.89981 16886; 216.90818 90447; 216.97663 171773; 217.62485 4303232; 217.73458 58144; 217.73871 570148; 217.73998 101138; 218.00373 7272953; 218.17459 1666522; 218.25819 2252; 218.37495 177607; 219.08355 22041106; 219.25449 655977; 219.44097 51336; 219.70704 20058; 219.84836 4034050; 219.95695 37726; 219.98325 20313; 220.03747 1087944; 220.67671 88602; 220.72393 5405305; 220.91334 73167; 221.05572 57900; 221.20737 1867442; 221.26043 24249; 221.43159 21874206; 221.50571 19931; 221.55351 73847; 221.90782 1892187; 222.16378 3629; 222.16736 38116; 222.49467 2023594; 222.85798 7365; 222.97715 4404; 223.27479 8079010; 223.38892 3763; 223.45005 192247; 223.57826 23439; 223.96047 27688; 224.06995 2711; 224.12824 19176; 224.31414 10147; 224.4025 2008; 224.40798 83746; 224.46789 27775; 224.57268 1980633; 224.81363 3060666; 225.01444 34616; 225.34906 83392; 225.37016 8011; 225.58343 52355; 225.59896 603323; 225.67305 25396907; 225.70381 1313208; 225.80092 148141; 226.13718 5715; 226.80631 55426; 226.87132 13756; 226.93894 26932573; 227.7973 8605906; 227.89346 24207; 227.89894 21621; 227.90174 3034; 228.10517 1106775; 228.11645 923980; 228.16851 116691; 228.48374 177657; 228.66049 9476098; 228.7494 4966029; 228.84818 398490; 228.9063 76051; 228.9413 45473; 228.96462 1151410; 229.04947 9629268; 229.09493 17785; 229.14476 42677; 229.26826 508; 229.39238 1978072; 229.40235 5158609; 229.51422 5510102; 229.52267 28160; 229.55199 1768427; 229.63897 821336; 229.95181 8664; 230.22252 5354610; 230.26296 62770; 230.32229 22702; 230.59391 16221451; 230.74189 26315199; 231.24867 33582; 231.59897 167324; 231.65712 35752; 231.87647 1404021; 231.8822 20560; 231.89233 5217; 231.97487 679718; 232.00292 19160; 232.12381 117167; 232.13614 1367929; 232.42563 70046; 232.4373 54940; 232.62354 78855; 232.67197 8215; 232.83603 7191; 232.96871 260614; 233.1899 7180; 233.2649 5423360; 233.7528 537260; 233.83313 4505; 234.02417 1708433; 234.13262 8212284; 234.14218 58820; 234.14839 38650; 234.29427 4828331; 234.29781 20660364; 234.43887 3990045; 234.55523 9656263; 234.81054 981778; 234.85962 409964; 235.1939 6910; 235.27392 30445; 235.31321 3642; 235.42824 188561; 235.55571 7474; 235.56212 4359; 235.62478 793319; 235.64221 62031; 235.67763 68510; 235.90435 3292016; 235.93114 42250; 236.66811 7894987; 236.80405 8944796; 236.95385 118406; 237.12132 14474; 237.21013 790429; 237.26547 3680; 237.42534 59087; 237.43403 208379; 237.5902 10330; 237.61975 606273; 237.75854 15206737; 237.91177 79108; 238.34472 4392411; 238.3976 25068; 238.56665 9220204; 238.79674 39626; 238.93682 44482; 238.96636 20692; 238.98202 29646; 239.0561 4617; 239.10565 7065796; 239.63766 1186909; 239.71376 70661; 240.20664 36998; 240.35601 5239; 240.45659 6260058; 241.0641 39; 241.14018 7712556; 241.4043 9904512; 241.56034 76091; 241.68678 3315; 241.78717 63404; 241.98876 7613272; 242.33421 52153; 242.50237 5387594; 242.56684 72743; 242.82796 25332; 242.82959 340413; 242.83132 5598381; 242.8421 339642; 243.30551 2240; 243.41366 4491964; 243.56105 691414; 243.58672 20758; 243.77217 29483; 243.88557 9641237; 243.88844 1592265; 244.00214 857261; 244.24193 21476224; 244.24221 6177; 244.32983 42007; 244.49495 1083173; 244.51633 58714; 244.55848 72725; 244.6062 28311847; 244.83154 796450; 245.32534 5397; 245.40896 8324; 245.52669 4384; 245.89206 3473428; 245.89309 871469; 246.14419 52964; 246.15914 164006; 246.56465 7313; 246.57517 25110; 246.57696 15494885; 246.62259 21528; 246.64169 25061; 246.7667 28409; 246.8881 40472; 247.08561 2212890; 247.1208 31094; 247.1549 18198; 247.37035 140795; 247.45346 3409038; 247.56947 4146015; 247.66329 39838; 247.9242 76767; 248.07642 4007; 248.46063 16092246; 248.80323 7698; 248.84054 26915; 248.88456 77389; 249.08685 8431487; 249.49841 28903; 249.58008 23991; 249.75113 1631646; 249.9302 47485; 249.95168 3892613; 250.15632 22174769; 250.57078 2782; 250.71015 25951; 251.20109 1416481; 251.68125 46720; 251.84753 61609; 252.17228 111167; 252.2277 117273; 252.27131 212523; 252.27455 27152; 252.59907 4197; 252.67237 17184; 252.78391 4982126; 252.88005 1903816; 253.2256 47721; 253.28125 2050519; 253.39082 917241; 253.49153 26093; 253.62236 7547677; 253.69155 73434; 253.69403 18896; 253.98673 8646; 254.09159 1231955; 254.60141 447717; 255.06402 25717; 255.28571 8405420; 255.69195 5532; 255.69844 9033; 255.78073 9053936; 255.91573 1774421; 256.14945 4901; 256.24738 3147; 256.67004 33760; 256.73539 155216; 256.77376 9768491; 256.84022 1309644; 256.96556 1442098; 257.09832 8806; 257.44932 169475; 257.50033 1326; 258.33814 3109930; 258.44781 20136; 258.45073 66548; 258.48487 69778; 259.03714 35557; 259.37189 2455890; 259.39888 13577; 259.45219 1870631; 259.56089 5433265; 259.68134 411896; 259.68403 9430; 259.71551 55334; 259.98618 669749; 260.08197 76157; 260.30564 1845831; 260.44337 5329; 260.51036 29007; 260.75634 1118633; 261.27882 289642; 261.42575 1917663; 261.61565 730891; 261.678 76796; 261.73192 6109597; 261.74249 45809; 262.30853 1669373; 262.31523 42586; 262.70097 193663; 262.87583 1596155; 262.97428 65427; 263.05566 184449; 263.3939 979663; 263.39896 2369388; 263.48094 4532429; 263.74386 343; 263.87121 606237; 264.14988 8598909; 264.26342 4520578; 264.31479 5627371; 264.89264 12977; 265.01736 2922; 265.31566 7746549; 265.75056 6534; 266.00928 33423; 266.33977 40804; 266.41542 1057187; 266.60453 1245373; 266.72826 41730; 266.74639 29174; 267.22241 23526; 267.50048 6025909; 267.67406 20452; 267.87455 58408; 268.02727 27306; 268.09464 35896; 268.39488 24865; 268.91563 524973; 269.02935 3063; 269.24151 1647361; 269.39131 3272204; 269.42433 69000; 269.58717 9167; 269.59684 66586; 269.87772 67190; 269.90414 57921; 270.04916 626020; 270.11084 54114; 270.34042 104440; 270.47398 50198; 270.48244 1475254; 270.69225 1678798; 270.74001 2842346; 270.80329 3472223; 270.82555 3595; 270.88414 1353292; 271.15372 238146; 271.39646 27612; 271.48359 4625616; 271.80862 61311; 272.00221 1171440; 272.86821 866398; 272.88251 71682; 273.06216 70175; 273.0785 1943795; 273.50673 70803; 273.61084 2570447; 273.641 5328; 274.12707 120565; 274.30379 496232; 274.7037 521636; 274.92673 768551; 275.05706 2717; 275.06419 31458; 275.12984 6584545; 275.39548 16623167; 275.47972 28983; 276.10928 7898; 276.17175 1904831; 276.2746 17013; 276.67145 25536; 276.71162 2938994; 276.80204 93569; 277.2877 26143; 277.32531 16247; 277.57641 409771; 277.95301 20319; 278.11407 57133; 278.12654 802140; 278.73124 26559; 278.79697 6148; 278.96456 475974; 279.21056 5462349; 279.25518 61898; 279.42672 98499; 279.67036 28190; 279.67795 1324722; 279.80754 3775148; 279.85005 53910; 280.08159 219326; 280.106 34304; 280.13349 21205; 280.43908 6516; 280.64319 20178; 280.72084 8423; 280.73088 901; 280.75712 71246; 281.22164 289; 281.45123 619049; 281.52352 18018; 281.6229 4815; 282.33797 4532566; 282.71445 4447; 282.72933 27393; 283.08612 4516492; 283.1065 4836; 283.30107 105280; 283.5355 38169; 283.57258 2879; 283.93304 1979935; 283.946 5628; 284.24326 427093; 284.33289 25587; 284.3728 23401; 284.59954 9764435; 285.14756 16581; 285.31471 28827; 285.5024 90826; 285.6166 4464; 285.7971 4218957; 285.82051 51137; 286.07438 5050734; 286.14416 183978; 286.14927 50116; 286.4424 60052; 286.47513 7398; 286.58953 776573; 286.73399 21973; 286.82212 24485; 286.95948 9427; 287.32493 28895; 287.33151 1097126; 287.39999 383992; 287.51723 1604670; 287.52242 27200; 287.71553 26977; 287.78474 423933; 288.41584 59002; 288.53994 82948; 288.7198 34276; 288.73072 47725; 289.50947 70488; 289.52044 1210905; 289.65881 37413; 289.66984 3449605; 289.67833 227036; 290.24458 53151; 290.24879 7196983; 290.27299 13352; 290.61472 22408732; 290.76333 28115; 290.78575 58882; 290.92719 3892672; 291.16758 2576276; 291.92519 666666; 291.99211 1984947; 292.59568 6408; 292.92807 3407; 293.49442 790099; 293.86013 2669802; 294.09541 26292; 294.10032 3204859; 294.1298 1461634; 294.34856 54465; 294.52345 42823; 294.54251 2467; 294.65496 272356; 294.74651 8005; 295.05879 12799; 295.06076 3068; 295.08779 6469001; 295.23946 340017; 295.75573 1935628; 296.63864 23604; 296.8095 3232315; 296.85997 5118187; 297.09099 50858; 297.11517 19828; 297.1451 2846379; 297.26477 1721862; 297.34317 9525; 297.74236 4670189; 297.75422 23428; 297.76949 44827; 297.90342 17766; 297.98822 5445; 298.40897 33109; 298.47623 61940; 298.76585 76531; 298.83464 5806091; 299.03283 7154347; 299.04357 3899357; 299.07374 68141; 299.22937 1816899; 299.4414 184969; 299.49745 29248; 299.63778 259; 299.74532 4789757; 299.79093 118869; 300.14484 94522; 300.32058 24805; 300.34997 3508; 300.38314 24392; 300.52364 17921275; 300.56308 77936; 300.70513 177; 300.77105 148774; 300.80441 3580; 301.07691 38683; 301.21896 53158; 301.2593 21955; 301.29246 108398; 301.45358 451215; 301.56104 334480; 301.90192 186631; 302.284 19074; 302.54212 180537; 302.6034 2730452; 302.86375 4083; 302.86525 46311; 302.98678 15556; 303.51411 36296; 303.62669 181128; 303.74996 2288; 304.04971 7568; 304.76708 29932; 304.77993 5916244; 304.81257 23909; 304.95531 76152; 305.00623 34632; 305.30201 9554864; 305.32228 11131; 305.56558 25110; 305.90684 1561281; 305.92514 73938; 305.98667 7162; 306.01737 634470; 306.17807 3543527; 306.26813 23173520; 306.69674 24839; 306.72852 3511; 306.8684 3992; 306.87431 6697; 307.57198 23253; 307.64333 6701; 307.72713 5488122; 307.88368 8662; 308.37846 6119; 308.37858 87244; 308.5398 94554; 308.61248 49234; 308.79688 780529; 308.83551 4365413; 308.98262 5248; 309.33797 10119; 309.50213 29038; 309.5635 2266; 309.69732 5589723; 309.75663 830580; 309.82257 1837436; 309.82816 33817; 310.08398 38604; 310.29555 17606; 310.32383 6208; 310.55791 3901; 310.56825 67433; 310.61109 790194; 310.61675 1723745; 310.70874 165425; 310.71018 28287; 311.07523 660440; 311.22395 2505688; 311.405 3876371; 311.40784 192524; 311.72425 851809; 311.77163 37086; 311.79209 290611; 311.95179 6593; 312.07027 29807; 312.35467 76187; 312.47838 46003; 312.85731 978250; 312.94211 8339820; 313.0683 1066; 313.30416 354758; 313.39258 126440; 313.919 18046; 313.92051 9540; 313.98843 64461; 314.12435 117416; 314.1645 66503; 314.18519 105573; 314.92005 51149; 314.95701 9491; 315.09004 3547; 315.12301 58288; 315.2524 23635; 315.93903 1097048; 316.09895 560632; 316.66787 42765; 316.93993 73771; 317.0389 1797566; 317.15196 4585000; 317.26694 9371277; 317.76709 5454049; 317.77522 8658; 317.9371 111970; 318.37149 549570; 318.46633 58; 318.52012 100432; 318.76452 7929; 318.7708 196445; 318.94455 16078395; 319.06087 26707; 319.44606 9813; 319.65721 16374; 320.36259 15361; 320.56388 60215; 320.87922 1088510; 321.0848 4264191; 321.12725 342584; 321.17108 544784; 321.83905 704247; 322.38173 26364; 322.5938 347; 323.03246 659245; 323.27252 1540018; 323.27956 523558; 323.39104 998259; 323.4554 9468; 323.57762 130180; 324.15093 21485; 324.31602 937000; 324.33203 128102; 324.40291 1585607; 324.65244 29361; 324.79873 17109; 324.84278 14202278; 324.88072 1973892; 325.97841 1892189; 326.26157 88456; 326.26547 172948; 326.48514 66419; 326.64875 5088213; 326.74979 16779975; 327.05832 19975148; 327.24324 1653275; 327.9239 2382; 328.63444 1154522; 328.84787 58612; 328.92247 1376388; 329.03042 1036433; 329.51207 54570; 329.56884 4241; 329.9687 58259; 330.58294 953561; 330.58574 87830; 330.73671 1462536; 330.91191 45341; 330.92584 14161051; 331.31573 4459; 331.82132 134620; 331.85616 31752; 331.99136 434068; 332.05014 1945570; 332.11753 36409; 332.31638 48807; 332.46576 7287; 332.60003 29914; 333.66084 9528335; 333.78031 1129421; 333.86919 7856747; 334.13734 20360; 334.52715 1411845; 334.78479 60239; 335.02498 4722295; 335.03233 23136; 335.27404 3051878; 335.28724 1446564; 335.31629 4910; 335.36205 6284; 335.36494 4126790; 335.76003 3435485; 335.93483 60840; 336.00561 4076493; 336.05635 4453; 336.32939 1285617; 336.50429 1743253; 336.77728 1064142; 336.92919 51141; 337.30687 72475; 337.31094 20938; 337.41506 65343; 337.47074 610555; 337.72307 1348050; 337.90272 14068; 337.98747 383; 338.20009 33752; 338.73089 812; 339.02023 160491; 339.02081 26548; 339.43578 824; 339.60525 47063; 339.61189 1829608; 339.70002 2689057; 339.81612 1443193; 340.14835 58889; 340.59488 4383871; 340.66352 16827551; 340.70694 62658; 340.88262 72346; 341.27135 28407; 341.30957 46013; 341.96054 37572; 342.3202 1931913; 342.35516 5040; 342.85159 3840950; 342.89626 5178; 343.08095 1609859; 343.2353 68219; 343.24819 9267; 343.29107 2004; 343.38846 67777; 343.43092 9795; 343.51319 2882; 343.67051 6475; 343.68373 12216864; 344.06915 2330; 344.10324 7648857; 344.4814 9966594; 344.50211 13491; 344.71831 6036; 344.73128 57357; 345.53105 5669; 345.54874 2177905; 345.70617 176850; 345.77117 8659262; 345.77592 1382625; 345.84096 25603; 345.96304 64568; 346.11791 64951; 346.40701 1061787; 346.74657 6956125; 346.78845 19439958; 346.80045 7372; 347.08298 1493885; 347.48439 43894; 347.70563 79781; 347.73323 42509; 347.75299 55361; 347.81291 33361; 348.14006 49731; 348.23195 27835; 348.31122 22648; 348.52331 3913; 348.67692 39143; 348.71799 42034; 348.87381 1199973; 349.239 829; 349.24069 10877848; 349.32676 58726; 349.35639 423836; 349.38282 46818; 349.5459 143053; 349.75533 2218845; 349.90623 24947; 350.12646 9287; 350.39754 8327594; 350.46698 929; 350.50503 5077; 350.70528 51075; 350.88977 66090; 351.1766 44493; 351.28063 354447; 351.60324 9287509; 352.09243 26638; 352.27468 62090; 352.52544 615211; 352.63465 70770; 352.79367 17104; 352.80246 407596; 352.97539 52281; 353.01071 3817; 353.15287 56007; 353.3017 73349; 353.39709 1808; 353.6737 2598; 354.24182 633967; 354.26086 5393920; 354.32341 54223; 354.34797 32213; 354.38529 874724; 354.55655 37416; 354.6042 8789; 354.70034 8350797; 354.71052 4435; 354.78902 5368; 354.84301 25848; 354.98063 33098; 355.01755 3377315; 355.13402 4441; 355.37204 1800; 355.41307 1920899; 355.55667 967351; 355.83469 63532; 355.8945 1032684; 356.2548 12498; 356.27164 1527772; 356.54743 573024; 356.88901 28741; 357.23069 516; 358.13354 67003; 358.17179 96502; 358.24118 1208805; 358.26767 1673265; 358.34965 57647; 358.39586 60402; 358.44216 9648442; 358.62612 29461; 358.72503 2248090; 358.80421 54497; 358.93801 33962; 359.08971 38483; 359.26864 56817; 359.39488 31983; 359.41426 27885; 360.0349 2919089; 360.23433 27595; 360.64143 2343221; 360.9591 902627; 361.201 912; 361.5201 1460693; 361.68932 1133; 361.82556 76528; 362.23936 326660; 362.25273 1103431; 362.47242 1911269; 362.52044 23344; 362.52354 8367; 362.71232 47178; 362.98936 54537; 363.00303 119052; 363.04125 9801; 363.11953 9560; 363.16744 38390; 363.30145 0; 363.70192 26890; 363.75958 1541883; 363.90748 3881852; 364.07644 25928; 364.17481 1539966; 364.21225 43011; 364.37802 502973; 364.41339 184377; 364.43975 9600; 364.63492 2395; 364.82955 1897926; 365.06413 44047; 365.15608 9671410; 365.26082 2144; 365.58552 1555; 365.67283 4812649; 366.09106 15458; 366.15383 181542; 366.17035 29269; 366.24346 9305; 366.3978 18126; 366.75535 8145581; 366.90731 4591809; 366.93307 5793606; 366.95511 1822625; 366.98403 629642; 367.12508 331209; 367.18526 798728; 367.54349 2349; 367.55396 15245; 367.56105 2994; 367.80335 3605038; 367.90142 39521; 367.91705 6564; 367.99907 7831; 368.68349 8286294; 368.78832 44282; 368.99569 2026; 369.20086 28392; 369.23903 71966; 369.72034 1033365; 369.74069 815843; 370.1139 330086; 370.21394 1620051; 370.60158 647390; 370.64157 189236; 370.70708 24124; 370.93354 768889; 371.12484 1330474; 371.14232 2970; 371.28775 190699; 371.31768 8868165; 371.32442 7891564; 371.77429 222329; 371.85819 50252; 371.88948 9069; 372.22515 190854; 372.4292 6184; 372.4454 142295; 372.53087 322; 372.53721 10401; 372.6126 23706; 372.87281 27488; 372.87603 132830; 372.89743 77192; 373.20022 6201; 373.21499 30126; 373.25296 254269; 373.25397 4984634; 373.46459 28942; 373.77581 4709577; 373.84702 22922; 374.04401 33206; 374.12226 2534909; 374.25999 77323; 374.27233 1164335; 374.27722 1423512; 374.46828 55176; 374.58032 158719; 374.81938 4197173; 375.20306 2427727; 375.22598 8167129; 375.23058 332498; 375.75475 77919; 375.96574 69192; 375.98679 5726; 376.05338 21765; 376.40835 220622; 376.53588 1455825; 376.73776 47535; 377.32625 74530; 377.53743 541194; 377.60457 46855; 377.62635 5593; 378.24266 38444; 378.45707 63276; 378.46189 65725; 378.50856 197683; 378.62914 860129; 378.80046 2273645; 379.07104 63005; 379.30458 48962; 379.41389 4543682; 379.41686 321108; 379.4287 92262; 379.47161 14304; 380.63177 9801460; 380.74259 5920117; 380.75118 128288; 380.75942 7822114; 380.89467 163578; 380.90248 94575; 380.9238 1785; 381.17102 1246296; 381.31273 2752572; 381.38714 329985; 381.64719 6393; 381.71695 4102179; 381.72087 1975584; 381.98677 5601772; 382.57281 13808; 382.65436 1532856; 382.91442 5497555; 383.08394 26290; 383.09171 15116; 383.22797 7455; 383.30237 16655; 383.3204 833784; 383.64728 186; 383.68118 9952; 383.77546 188392; 384.01093 34990; 384.09449 19935292; 384.40135 20691; 384.41294 44172; 384.60022 460837; 384.62126 7228899; 384.82296 6511584; 384.86775 63874; 384.96143 1741946; 385.00046 15085; 385.06916 1540; 385.16893 290784; 385.25307 19627; 385.36191 20116736; 385.48561 4935689; 385.87501 778397; 386.01213 43471; 386.18503 70638; 386.65727 13746; 386.71841 1407502; 386.82439 46876; 387.19923 8990360; 387.58197 14571; 387.95932 148340; 388.17542 130155; 388.33932 1060167; 388.52625 10943; 388.79541 4345; 388.84915 16521; 389.07972 2079442; 389.31528 1660775; 389.5725 4090; 389.74783 23221; 389.76312 44933; 390.0077 29183; 390.50548 193085; 390.79368 3766; 390.84965 430; 390.9836 802192; 391.00955 4830741; 391.4071 16539; 391.49204 6766592; 391.66777 166264; 391.70877 1976; 391.7199 435217; 391.81653 4103308; 392.26745 4580131; 392.62217 3049430; 392.70947 3263; 392.86174 579726; 392.86798 115128; 392.97588 4055; 392.99156 2249; 393.3202 60576; 393.40126 1643663; 393.58157 27856; 393.70285 70439; 393.88131 74262; 394.129 28870929; 394.18839 9974; 394.30335 21482; 394.31278 26279; 395.05379 3377; 395.16306 889950; 395.2492 9441761; 395.33669 48203; 395.38742 3175055; 395.43856 65112; 395.5016 78584; 395.94739 123419; 396.10622 277943; 396.27408 31221; 396.30829 6731304; 396.34244 869573; 396.48469 4772737; 396.55054 61774; 396.64099 25810; 397.05011 4399463; 397.05851 15182; 397.16642 37288; 397.2677 8891866; 397.31502 59279; 397.68677 3862; 397.68982 1614967; 397.94171 8593; 398.14158 60065; 398.17427 4757679; 398.31214 8015; 398.72159 1291820; 398.85883 4603239; 399.14552 37808; 399.17707 8136; 399.88957 4139426; 400.24586 79551; 400.27833 13820; 400.33061 1113; 400.3406 81946; 400.39507 66981; 400.40232 29526; 400.57093 21869194; 400.76335 6193; 400.82354 476275; 400.8913 97998; 400.96575 29362; 401.37178 2368; 401.48229 750869; 401.56827 736923; 402.24269 6103; 402.34639 4402029; 402.42523 4319759; 402.51187 36690; 402.91846 12075; 402.94382 1562468; 403.1721 612469; 403.75381 8230605; 403.81074 32490; 403.84712 126420; 403.99151 154927; 404.06892 228373; 404.271 1401; 404.45589 1450388; 404.46107 6187357; 404.52793 5763; 404.61688 70462; 404.97119 88352; 405.15851 14062512; 405.59632 21749; 405.63634 3491023; 405.80385 27778; 405.84473 2722028; 405.97011 5503; 406.07975 344428; 406.31939 848516; 406.91498 4144609; 406.97031 43493; 407.28215 5035; 407.48985 1266; 407.90638 4890; 407.95067 7354; 407.958 102939; 408.00005 69018; 408.14324 58630; 408.31581 40426; 408.54587 9876751; 408.60052 63943; 408.76507 66873; 408.89065 94052; 408.95963 58068; 409.09155 3823314; 409.11017 7509771; 409.17999 43487; 409.21091 6830060; 409.30711 31071; 409.34627 1346188; 409.43046 2149683; 409.53184 69272; 409.70046 137874; 409.88137 2913937; 410.22398 33860; 410.23399 7101512; 410.60661 34453; 411.00596 1925141; 411.11632 3721161; 411.132 3655431; 411.20062 805619; 411.50204 51528; 411.58067 76697; 411.67854 24155; 411.95844 18615643; 412.01155 6384421; 412.34025 2304; 412.57615 2171868; 412.65893 4366524; 412.78672 19797; 412.82146 1773; 413.4997 8858826; 413.57051 1859905; 413.87985 9030667; 414.09352 3926261; 414.39892 731311; 414.42174 902388; 414.56904 4607; 414.82173 257555; 415.22702 11437; 415.55284 154204; 415.6375 479109; 416.15071 22693; 416.3938 2737; 416.6342 17799; 416.74835 40540; 417.11652 4240; 417.17095 32767; 417.34394 29947; 417.41769 16741302; 417.62656 3051; 417.7919 3210263; 418.12886 34656; 418.29475 22695; 418.40628 51482; 418.45971 188408; 418.49861 42816; 418.78082 5019; 418.82627 21516; 418.86243 55462; 419.39052 1625542; 419.53368 197707; 419.53639 51079; 419.54281 57444; 419.75992 3160669; 419.83462 15109374; 419.87403 37853; 419.9851 56887; 420.14848 6592079; 420.18046 6188272; 420.83526 22865; 420.88008 7089733; 421.2589 16610; 421.3304 73165; 421.36006 5796572; 421.43492 41849; 421.77775 105797; 421.87458 2330352; 422.07702 35393; 422.51214 6342; 422.60638 1710; 422.60695 17698; 422.6739 5724266; 422.83091 7874416; 422.83936 30672; 422.96589 49120; 423.65669 6631838; 423.95009 45202; 424.07132 21959; 424.11737 1571699; 424.1495 23047; 424.2334 3123527; 424.34391 40942; 424.47545 4688444; 425.35637 59694; 425.44096 7051; 426.29099 16991; 426.38889 16067; 426.70219 5949561; 426.70781 573676; 427.01397 7842391; 427.05527 8984361; 427.43755 3474226; 427.56148 28843; 427.86742 41332; 427.99456 1924094; 428.22692 32566; 428.42788 766940; 428.46709 18021; 428.76361 17757; 428.87902 53270; 429.04041 68875; 429.09539 5514048; 429.18087 4852503; 429.20089 18279; 429.84083 69777; 429.87913 1121; 430.02741 1490655; 430.0311 39738; 430.07339 4245147; 430.14114 41349; 430.32163 86507; 430.63526 6217102; 431.50467 1476254; 431.60011 1293435; 431.76781 7247052; 431.78869 163497; 431.93941 26248716; 431.9408 18027; 432.39255 70704; 432.53852 79987; 432.54052 82951; 432.57665 45143; 432.64103 2226794; 432.68408 17817; 433.03345 6577; 433.12377 1392; 433.41363 6617; 433.52679 9876; 433.61987 1395894; 433.72089 26582; 433.74438 777832; 433.75389 6866014; 434.18342 35942; 434.55692 137047; 434.57491 24258; 434.9601 7600; 435.11532 10136; 435.16701 8884; 435.22322 8065; 435.37213 7713; 435.45563 4248695; 435.50799 9093169; 435.7205 2719882; 435.93667 24600; 436.243 22586; 436.3903 1417925; 436.61298 1818793; 436.87386 8194; 437.36964 21436; 437.59684 80778; 437.73968 6268845; 437.7846 1039250; 437.88574 9257754; 438.0105 6005436; 438.11514 1766012; 438.28855 6345606; 438.38311 190206; 438.60763 9868948; 438.73018 1786998; 438.79789 768662; 438.83618 29548814; 438.92716 26462; 439.19991 1866097; 439.33992 4286; 439.41108 4209609; 439.51289 43324; 439.83478 3925; 440.16648 1913577; 440.16716 1292882; 440.3322 6353; 440.37385 448670; 440.46712 84444; 440.5511 73530; 440.59909 79306; 440.97497 40520; 441.00902 7193375; 441.20401 71581; 441.30855 9609; 442.08072 2711; 442.24258 13304; 442.60385 1563911; 443.02072 14075; 443.02184 2338; 443.03369 4372121; 443.17006 3916568; 443.32949 1840300; 443.36094 4303; 443.48253 2809; 443.73251 935766; 443.95125 798545; 443.97603 39246; 444.06918 29439; 444.30531 5142; 444.32707 163054; 444.33707 2963025; 444.42876 49358; 444.53034 526683; 444.64326 575185; 445.16914 26577; 445.3357 1156515; 445.45638 69954; 445.83519 64776; 446.0542 26386; 446.11234 74036; 446.2609 594860; 446.455 170582; 446.4911 3371318; 446.54893 30813; 446.593 8770; 446.92274 18431; 447.07133 5952099; 447.08075 11150; 447.1222 1876472; 447.42757 60275; 447.55999 2540; 447.60673 24506; 447.9673 69091; 448.02459 8531; 448.13517 71028; 448.25204 2813092; 448.30672 6166282; 448.82308 37918; 449.19839 148905; 449.28723 55124; 449.42243 4072; 449.63672 11017; 449.6563 155719; 450.02067 28186; 450.20127 52969; 450.2387 28953056; 450.30696 62616; 450.33554 124665; 450.47384 61552; 450.65769 43913; 450.76655 885785; 450.77729 2572375; 450.85249 70151; 450.86989 29749; 451.12222 198074; 451.3411 32496; 451.43983 1832740; 451.62261 4273242; 451.92427 30508; 452.26692 543722; 452.36171 25280258; 452.50357 6979; 452.61606 4016197; 452.66493 4163; 452.71033 2377888; 453.24056 125684; 453.34271 454304; 453.57666 29127636; 453.8505 871493; 454.81506 4177152; 454.94932 64676; 455.06463 44370; 455.40376 20229; 455.41632 41443; 455.50239 591024; 456.3951 7373; 456.41053 5028784; 456.56487 22682; 456.56853 110547; 456.57663 1618461; 456.64713 45865; 457.11528 3571; 457.52038 9842828; 457.94891 58534; 458.29661 65134; 458.35527 70152; 458.52944 589; 458.603 74; 458.61143 668457; 458.69143 1009503; 458.76368 9191; 458.96685 3545944; 459.14939 18341; 459.44982 1391257; 459.48941 2700123; 459.8609 2369; 460.03609 6861; 460.06922 2073334; 460.20187 1905838; 460.29333 35508; 460.2943 153678; 460.47786 4496; 460.6676 1997382; 460.91079 2735616; 461.12384 61605; 461.48183 1241104; 461.65487 142145; 461.77797 307331; 462.05123 20712; 462.06964 29928; 462.39021 40081; 462.59271 633351; 462.6789 282; 462.68415 73107; 462.72288 5035; 462.90908 61583; 462.9737 1704645; 463.08881 117370; 463.10375 3709368; 463.13435 3295; 463.45215 166634; 463.52822 56084; 463.55317 8715; 463.90933 36246; 463.93882 2610; 463.9456 8021442; 464.04426 161117; 464.13468 4741537; 464.2842 13432763; 464.37689 540822; 464.52998 15717; 464.54553 186805; 465.0167 72684; 465.20932 1353; 465.35767 3050578; 465.7318 1303414; 466.18309 49093; 466.19151 182008; 466.47367 665715; 466.58948 1277; 466.77284 195839; 466.90653 5399; 466.96237 735465; 467.07214 28771; 467.20959 182372; 467.21571 14109453; 467.91096 175245; 467.92592 25599; 467.99856 10441; 468.1015 215958; 468.16306 64772; 468.28149 37431; 468.33748 171411; 468.75081 24101; 468.90249 627631; 469.10417 3037; 469.39934 248784; 469.41054 1111183; 469.71856 1860653; 470.29141 163491; 470.32621 63444; 470.39766 3943147; 470.54419 49936; 470.61609 70041; 470.73552 3582082; 470.94863 49085; 471.16746 618758; 471.18743 28774; 471.39141 31138; 471.41894 1046453; 471.87763 113933; 471.91668 8981955; 472.01649 20504; 472.2285 4322821; 472.27239 77341; 472.50946 3216338; 472.55471 3299477; 472.7202 226071; 473.59113 1840; 474.0431 51296; 474.05542 170937; 474.21298 287561; 474.2559 9693425; 474.4349 992421; 474.56446 28710; 474.6602 305726; 474.80569 75774; 474.96489 2700798; 475.24715 604582; 475.24907 24968; 475.31182 14634; 475.38789 2855369; 475.43039 25143; 475.46791 451361; 475.86661 4085467; 476.23627 28230; 476.24235 982; 476.33695 4452; 476.36222 3595873; 476.38547 40410; 476.48541 704099; 476.53684 56319; 476.61391 3196; 476.61745 1091251; 476.64658 7782038; 476.71746 20982; 476.81083 184290; 476.921 22557; 477.30835 76806; 477.32804 1647874; 477.34792 64971; 477.38756 3002179; 478.02296 23506; 478.0772 94911; 478.08398 777872; 478.09393 2736221; 478.24278 756216; 478.27763 60348; 478.46654 32434; 478.60399 47142; 478.67648 95155; 478.80485 12246; 479.48174 6505039; 479.81729 4617532; 479.88473 701039; 480.50663 1988416; 480.53558 497573; 481.19247 63405; 481.21549 40615; 481.4153 98809; 481.49964 26812983; 481.64091 739994; 481.68475 1586347; 481.70658 1229182; 481.75068 4328703; 481.785 2061408; 481.78673 17928478; 481.82413 1505597; 481.83282 23234; 481.90364 21205; 481.93876 486617; 481.96338 6746; 482.04121 4561; 482.56628 5725737; 482.62978 50801; 482.82583 90591; 482.99892 9186244; 483.09467 6752682; 483.31469 6779040; 483.56532 4942537; 483.60117 16716588; 483.68572 47111; 483.72635 113020; 483.93735 1520019; 484.03553 55702; 484.29188 7914581; 484.39047 1445110; 484.46135 12936; 484.68604 934660; 484.97018 46115; 485.15889 22295; 485.6399 20900; 485.72291 22467; 485.91539 24705; 485.9581 58041; 486.38544 1092252; 486.64291 304184; 486.71957 11959; 486.83617 167498; 487.33327 40727; 487.59137 27451; 487.65171 4400; 488.21039 7863; 488.63377 47586; 488.6662 15939; 489.12706 64; 489.29953 21531; 489.3383 6569; 489.49071 9095; 489.54215 2779; 489.55065 1747; 489.76084 50616; 489.7654 3125425; 490.07625 75474; 490.45858 43507; 490.4824 1562182; 490.55209 28486; 491.04707 9167; 491.06391 3757; 491.34253 37415; 491.58125 55139; 491.70534 820026; 491.71079 685739; 491.82505 25725; 491.85957 59874; 492.04063 84685; 492.19073 3076; 492.66681 5902555; 492.7658 571138; 492.80498 59259; 492.87647 784604; 493.93463 9433607; 494.22757 28822; 494.35617 4165387; 494.76613 50784; 494.80283 8652; 495.26462 7253; 495.57836 23548; 495.89346 41184; 496.05444 20027; 496.38131 12788; 496.53684 52315; 496.57357 7178558; 496.6117 65990; 496.69357 972928; 496.77331 78970; 496.79713 8693; 496.89397 417922; 496.91867 1959267; 497.06573 143245; 497.19067 2814800; 497.30845 7372695; 497.32914 16483; 497.48391 5434144; 497.50069 6192645; 497.58309 1755196; 497.78939 103619; 497.79035 35911; 497.83971 48742; 498.44084 109746; 498.60023 1180516; 498.64102 303512; 499.0884 3208; 499.42626 4908; 499.72428 7514; 499.87959 794; 499.94321 51828 diff --git a/traffic/traffic_5e9_7.txt b/traffic/traffic_5e9_7.txt new file mode 100644 index 0000000..6866b5f --- /dev/null +++ b/traffic/traffic_5e9_7.txt @@ -0,0 +1,7 @@ +<7, 0>: 0.17478 21689; 0.28343 5973; 1.4673 3219227; 1.78154 6636735; 2.28118 2019; 2.64432 1340756; 2.68118 19574; 2.72346 2031260; 2.72367 163059; 2.77262 8925; 2.89596 9958; 3.01502 3765707; 3.18933 2977655; 3.36704 3078937; 3.80887 21450; 4.29033 65886; 4.46783 136836; 4.50947 730182; 4.80626 1787389; 4.93063 54399; 5.05775 9949556; 5.14955 1482561; 5.28046 189851; 5.49328 191322; 5.50411 7892118; 5.505 8140; 5.82562 81467; 5.83312 19847; 5.85249 35717; 5.93033 1289; 6.37907 2520; 6.58152 299054; 6.59318 9968006; 6.63652 54557; 6.78088 4486352; 6.80927 1041431; 7.00126 307541; 7.33182 1729869; 7.38242 118807; 7.39071 59937; 7.54147 11319813; 7.678 3205; 7.71032 8124; 7.77665 1531287; 7.81823 70396; 7.99271 4223; 8.04452 116390; 8.16627 22387; 8.17866 26264; 8.41311 9992773; 8.72907 66760; 8.75086 257955; 8.82237 21500; 9.22775 2731780; 9.2403 4226924; 9.39105 1436613; 9.66321 6997; 9.70992 411492; 9.71049 1408706; 10.02201 132779; 10.14625 862119; 10.38262 29122456; 10.55251 6043; 11.27261 57814; 11.3691 4813; 11.48022 30440; 11.99288 1103074; 12.16006 58130; 12.19188 916470; 12.59832 47460; 13.18711 680605; 13.25359 23720; 13.33471 28423; 13.50587 2712685; 13.58371 92325; 13.65249 18802403; 13.83073 970669; 14.40005 6635; 14.69571 21252; 14.83804 7567; 14.89224 63111; 15.30111 40426; 15.38806 9814; 16.27877 986131; 16.35597 62036; 16.48898 28461665; 16.9851 60254; 17.15604 556282; 17.18541 8279; 17.33603 7022188; 17.51503 1795623; 17.67734 4989733; 17.79682 78349; 17.85904 3834385; 17.89946 166197; 18.04639 49838; 18.2171 9678087; 18.22502 54173; 18.30851 1354055; 18.38447 91670; 18.40476 575173; 18.58239 24282; 18.73169 148568; 18.92318 1497108; 19.06771 14907; 19.26461 52362; 19.34435 18685; 19.54351 12561; 19.87041 23904623; 19.93884 9585436; 19.99367 5059334; 19.99814 21398; 20.05862 29700; 20.1607 250019; 20.43255 4951357; 20.47766 5864; 20.69134 29704; 20.70581 25145; 20.80944 774496; 21.02226 46888; 21.06924 20372; 21.52522 7526; 21.71546 26484; 21.75601 82267; 22.00474 68392; 22.14535 16136; 23.40199 73337; 23.94472 66299; 24.09152 22930; 24.20095 1399894; 24.3091 1302; 25.10786 220001; 25.56037 25381; 25.84566 6050666; 25.96461 284874; 26.04425 1793807; 26.4022 445165; 26.52243 1011246; 27.15345 29858277; 27.24062 9800; 27.26503 7006778; 27.98489 8136197; 28.04992 20372; 28.12017 5481; 28.13552 1129634; 28.13919 674419; 28.1933 3967; 28.54919 68594; 28.57342 63325; 28.95558 39300; 29.08262 5844217; 29.2395 444857; 29.75897 66328; 29.80611 8495356; 29.81022 1868665; 29.96934 13462153; 30.52178 5473; 30.52702 14820935; 30.62323 1664334; 30.83509 48622; 30.84236 10417; 31.34825 68822; 31.53022 37602; 31.55678 51563; 31.62325 61879; 32.08134 476314; 32.16624 61726; 32.24105 5163042; 32.36822 28544; 32.43287 54357; 32.43437 29534; 32.45281 1094; 32.74958 2002400; 33.01625 4643509; 33.05174 8388190; 33.43624 4635043; 33.72455 53341; 33.76632 129601; 33.79871 9682626; 33.81357 410128; 33.93033 901; 33.9768 58925; 34.17117 14344; 34.22131 67596; 34.42379 225198; 34.44314 5266; 34.46861 150431; 34.58494 1684408; 34.65031 8667; 34.76818 7156; 34.78697 4749526; 35.29586 203828; 35.31308 25104; 35.48055 2559369; 35.53077 36933; 35.56496 28511; 35.67609 2634465; 36.18072 44190; 36.24305 1562136; 36.32075 1585905; 36.46285 2106299; 36.58667 66319; 36.93106 4995483; 37.14694 3973874; 37.15199 6309893; 37.20492 65721; 37.47862 107439; 37.50017 191275; 37.78797 75592; 37.83417 45006; 38.01397 6889146; 38.37177 7405; 38.84496 3242548; 38.84803 810119; 38.9663 27826775; 38.99914 26123; 39.03265 1364938; 39.06573 1709265; 39.15914 55859; 39.2258 78209; 39.30943 732578; 39.47603 973; 39.49103 347438; 39.72069 4801; 39.98609 16341; 40.24859 191067; 40.27538 23434; 40.36133 16205035; 40.4225 151240; 40.6212 116992; 40.76871 3936273; 40.95805 37134; 41.29038 1682; 41.34933 9900; 41.66702 25047; 41.9157 9276742; 41.96804 7273083; 42.11599 3626; 42.15963 29961; 42.44611 6705882; 42.46486 163848; 42.47799 75094; 42.50527 873; 42.65881 8818; 42.95942 4045308; 43.25928 42243; 43.48215 464473; 43.56314 198016; 43.78025 29724; 43.78777 6504; 44.31139 6219536; 44.68201 108477; 44.86057 889388; 45.09056 1852895; 45.39734 48191; 45.76661 105555; 46.15308 4888938; 46.38851 1418389; 46.58084 197; 46.65623 39456; 47.02768 5560960; 47.36759 3719; 47.63591 15864; 47.87101 16562421; 48.09168 29641; 48.26987 2935; 48.30542 56350; 48.41187 67966; 48.65526 4174851; 48.84527 6751785; 49.21484 4902; 49.8681 14818; 50.04526 23363; 50.1822 455965; 50.31664 43421; 50.5637 874590; 50.69892 3945; 50.71545 12842; 50.75635 4367124; 50.81238 3409787; 50.84888 78706; 51.18071 40147; 51.42544 2888305; 51.43998 20323; 51.48407 4077725; 51.76406 2153710; 52.08974 41778; 52.24631 68266; 52.67656 65210; 53.07006 13162; 53.1233 4853; 54.05411 1886339; 54.3898 61180; 54.64014 7026; 55.03078 3604535; 55.07086 187744; 55.69402 25282; 55.8766 570132; 56.11802 10191; 56.30682 25136698; 56.52474 12136; 56.62667 9757; 56.74996 119063; 57.82842 3816; 58.25089 9552415; 58.27682 1329; 58.49805 24561; 58.84613 1427270; 58.9158 4759210; 59.18103 7115; 59.47814 313534; 59.5688 79393; 60.11311 3316436; 60.36943 2929515; 60.53621 66403; 60.61854 172603; 60.68762 598471; 60.89834 8713229; 61.17595 8230248; 61.32519 6577; 61.83073 7119814; 61.94808 67723; 62.00445 22470; 62.03096 1594620; 62.08908 11282557; 62.10612 25639; 62.12395 59273; 62.17527 70180; 62.32473 7876; 62.33743 31977; 62.35631 3980078; 62.55836 1442; 62.64061 80206; 62.65007 510196; 62.85175 13098; 63.00343 24771; 63.31197 1753; 63.46605 18057; 63.90026 794494; 63.98377 25314; 64.09939 8338394; 64.41657 1623170; 64.47217 7702662; 64.61826 691040; 64.69148 4129; 64.89941 23222; 65.11549 70703; 65.4771 112094; 66.0875 37459; 66.20619 77483; 66.64125 24882; 66.79309 6273; 67.28804 71569; 67.38986 1340380; 67.44387 21953186; 67.46897 3047132; 67.47617 20958; 67.66149 7865; 67.85829 73841; 68.04745 7414; 68.06296 5767; 68.10188 6107971; 68.27312 5069; 68.439 1749; 68.47486 80360; 68.85586 7306; 69.45997 66752; 70.05428 53489; 70.61659 2630822; 70.80671 21718; 70.96128 508; 71.1501 67710; 71.28863 3445280; 71.42167 4028; 71.44336 168536; 71.72179 4283562; 71.79476 159845; 71.89637 4341; 71.91131 16561309; 71.96581 29432; 72.24376 8024463; 72.4093 1534368; 72.46288 4696038; 72.5004 5673; 72.60325 4445; 72.71362 5141; 72.91525 314998; 73.00128 3889; 73.01458 2052; 73.18304 101241; 73.29376 26421; 73.67438 197007; 73.96908 42249; 73.99092 25023858; 74.15062 70003; 74.24221 10725; 74.26113 2868073; 74.29265 8476; 74.44338 25640; 74.70616 1955639; 74.7735 836; 74.91286 1184733; 74.97428 15603; 75.00578 4115; 75.26356 54244; 75.28368 59299; 75.35176 2388232; 75.39902 142846; 75.96078 27190; 76.04095 29543; 76.04721 34223; 76.64791 1192097; 76.8117 9710783; 76.86899 50319; 76.87111 27682; 76.87603 8665; 76.97968 5402; 76.98996 5735; 77.06239 1563; 77.14846 38150; 77.49931 17884836; 77.59388 580241; 77.59428 108941; 77.67408 25431; 77.9557 289097; 78.1741 34234; 78.45064 11294; 78.4632 339195; 78.46854 71338; 78.99836 101930; 79.17719 294113; 79.32382 14670; 79.44004 60992; 79.90073 118873; 80.04302 4271; 80.10012 10942; 80.43031 962030; 80.66395 21564; 80.69425 4474022; 80.91121 17457; 81.19308 1872643; 81.52744 746870; 81.67249 8877; 81.6738 7307552; 81.76164 242084; 81.82593 309132; 81.91016 6983; 81.91803 64787; 82.02161 3290; 82.07704 1573719; 82.1628 62697; 82.34428 28725; 82.82754 48018; 82.91008 4844562; 83.05712 62815; 83.80416 1698669; 83.94233 2592; 84.23058 190411; 84.37439 5049486; 84.53529 509429; 84.56834 189365; 85.02141 7065730; 85.19789 9809357; 85.38154 69721; 85.44762 1172257; 85.60398 9560589; 85.86193 138239; 86.02549 889455; 86.24035 71293; 86.26485 21209; 86.26501 586449; 86.53159 8188; 86.85617 1626506; 86.96344 24563; 87.23477 139121; 87.2829 1134130; 87.3628 7735618; 87.37221 2286540; 87.46346 39544; 87.80272 6744736; 88.01919 1207326; 88.02414 2294; 88.31569 364327; 88.48891 55047; 88.52089 1591377; 88.88241 2134956; 88.98048 793182; 89.16419 43461; 89.24853 26677; 89.57285 51071; 89.78083 9037460; 89.81378 29260; 90.14314 50401; 90.15145 842615; 90.1784 1486525; 90.25108 15594; 90.43556 61921; 90.44724 30575; 90.46871 60960; 90.70164 24192; 90.74851 57622; 90.85343 1688; 90.88333 6701208; 90.95083 24890; 91.20043 20865; 91.36716 58168; 91.41479 62135; 91.53983 25381; 91.73992 198265; 91.92703 6166197; 92.15357 3122; 92.24755 553618; 92.44012 548861; 92.45698 7550; 92.46098 7414311; 92.54964 13849275; 92.98657 4598673; 93.17838 77184; 93.34206 8342356; 93.35353 3130811; 93.54801 25221; 93.56665 6832810; 93.58372 33625; 93.58544 6948; 93.62525 29291; 93.67061 22597; 93.68062 28817; 93.75396 172319; 93.85289 4677194; 94.27688 74603; 94.70049 3246928; 94.72247 12225; 95.12416 86171; 95.19757 8963; 95.39539 30782; 95.49903 73708; 95.5781 3536540; 95.85051 3299; 95.99257 23394; 96.38985 2567; 96.47898 282741; 96.4992 2670872; 96.66487 24950; 96.88401 45290; 97.09867 867662; 97.72778 44991; 97.85065 7044609; 97.88226 26162; 98.5913 9336579; 98.84823 62399; 99.19994 1495; 99.31529 446016; 99.31796 45883; 99.44877 1541605; 99.55272 5907; 99.61521 236735; 99.62347 110782; 99.81844 1055779; 100.07683 1957316; 100.37578 4305415; 100.50465 30358; 100.55434 74363; 100.58116 3829345; 100.6868 5021; 100.71359 1896998; 100.90448 1405079; 100.91907 1733064; 101.24481 4718; 101.25826 75; 101.37008 147744; 101.74578 64357; 101.99919 387213; 102.02108 1044705; 102.36107 71631; 102.42011 29958; 102.51735 12233; 102.6257 1067651; 102.65131 5009152; 102.7462 21035653; 103.26556 55304; 103.32051 2824294; 103.36649 78203; 103.386 4578604; 103.457 314338; 103.45994 94301; 103.71881 67527; 103.78737 347000; 103.94738 2377; 104.38397 689602; 104.45495 684; 104.78318 55602; 104.81431 6798; 104.89093 52778; 104.93089 738532; 105.41413 8062; 105.52829 185448; 105.53698 37316; 105.68028 822627; 105.72049 10289; 105.78889 1464027; 105.79182 20734; 105.9592 19445; 106.35493 1090470; 106.45721 60535; 106.61109 1734582; 106.79692 11615; 106.97554 70209; 107.11699 2566720; 107.44499 604; 107.7738 4116; 107.8518 31546; 107.90763 46167; 107.96387 50962; 107.99574 56010; 107.99887 26376; 108.40443 54640; 108.4187 1222282; 108.61732 3871972; 108.6222 4101891; 108.83442 113024; 109.04483 277355; 109.29862 27889; 109.38679 690660; 109.58275 131307; 110.01748 7711818; 110.04514 1409668; 110.41304 313346; 110.64952 28945; 110.92687 22145; 110.99654 63951; 111.45224 36178; 111.8963 168100; 112.32616 4459; 112.55313 75865; 112.76547 7646812; 113.00304 1074115; 113.30534 5355; 113.78981 8792152; 114.03513 2026552; 114.2421 6568; 114.29166 835561; 114.60231 22930; 114.87924 22497; 115.12118 46272; 115.14191 57967; 115.21291 1612941; 115.49774 1785861; 115.52058 191334; 115.88125 2797; 116.13597 2498; 116.15686 1733951; 116.33636 22051; 116.37089 90709; 116.73322 168315; 116.91716 8424070; 117.14706 2631133; 117.17521 6212; 117.50049 1144734; 117.67812 48286; 117.78586 965722; 117.84507 84550; 117.88429 192808; 117.89235 1140060; 117.90394 276614; 118.16197 15124705; 118.32773 1875264; 118.3467 3614382; 118.36817 2952104; 118.48201 29088; 118.88568 41586; 118.91673 8871029; 119.01011 1212177; 119.1045 69116; 119.26473 168326; 119.29247 3726370; 119.38904 18918; 119.4117 7423090; 119.42249 132197; 119.53966 11740; 119.63441 87036; 119.63583 1098436; 119.70304 159716; 120.07555 42190; 120.11748 72170; 120.3361 14978; 120.48881 8351589; 120.50228 6550333; 120.87683 1634; 120.89474 70815; 121.90111 381704; 122.59707 2724007; 122.85391 2351084; 123.16017 70685; 123.17874 1818591; 123.22809 98017; 123.25388 2459651; 124.05421 29408; 124.10315 4009; 124.15277 8913; 124.21314 12429; 124.37768 51475; 124.38966 927358; 124.49833 39741; 124.51183 3206762; 125.38451 319137; 125.41895 1300915; 125.63385 24047; 125.83715 9796853; 126.51742 2576189; 127.09247 8953; 127.26191 1703983; 128.00048 41870; 128.10092 1574952; 128.16364 38447; 128.19247 3912172; 128.29341 65582; 128.34012 8909; 128.43259 1500; 128.50628 70733; 128.68057 5089; 128.70274 591216; 128.72654 9207; 128.89598 7187598; 129.14363 32343; 129.33923 32995; 129.3837 73435; 130.24309 11237; 130.3579 553899; 130.47371 25712; 130.90984 3887; 130.93389 4974; 131.09027 25676; 131.19145 3061; 131.26246 135143; 131.34578 18450; 131.48016 54843; 131.6463 702621; 131.67336 3901630; 131.69892 16048; 131.82842 67839; 131.87191 1358170; 131.88686 22024; 132.068 479793; 132.41357 189572; 132.50384 60633; 132.51534 335865; 132.84258 530979; 132.91264 249977; 133.04303 3917681; 133.43609 45736; 133.6696 106679; 134.03588 112328; 134.17461 21289; 134.37655 1053213; 134.6244 2463; 134.79718 1947494; 134.82104 65085; 135.02512 35562; 135.03424 60869; 135.1362 4947246; 135.26866 4902122; 135.34824 49472; 135.63993 105961; 135.68069 5408819; 136.38179 17914; 136.47811 7456380; 136.49731 70081; 136.79348 3014763; 137.07154 23990; 137.20755 12841558; 137.31305 3508274; 137.46468 9907; 137.48535 72081; 137.53816 55759; 137.64654 65673; 137.70794 65595; 137.75597 464947; 137.77403 4640; 137.96286 157971; 138.1678 54320; 138.63946 411743; 138.64482 77535; 138.67305 55740; 138.69896 2399750; 138.75793 43900; 138.867 17796443; 138.90361 2429088; 138.94278 6610; 139.05465 3885535; 139.25178 1483430; 139.45937 47637; 139.63343 155045; 139.69166 1012200; 139.80618 27292; 139.84361 31227; 139.86733 16895; 140.00497 616047; 141.10566 4002; 141.26999 1541931; 141.40098 73438; 141.46195 55645; 141.4734 98161; 141.51704 502705; 141.71142 34402; 141.76536 5901; 141.84235 592424; 142.07983 40849; 142.30518 51370; 142.54305 57283; 143.23295 8013032; 143.88632 13887591; 143.95937 2981; 144.26025 8510; 144.46679 765329; 144.7498 999434; 145.02322 42228; 145.23382 50507; 145.38662 5204; 145.43842 101208; 145.48171 58015; 145.491 1259317; 145.82934 771448; 146.26826 5104870; 146.28263 1980665; 146.68045 34; 146.83314 20403; 147.10497 9878; 147.19775 892121; 147.21354 1847996; 147.56335 77428; 147.64889 80753; 147.87238 1404741; 148.26325 58929; 148.39459 54984; 148.48847 895809; 148.75794 42999; 148.78235 48944; 148.82015 75295; 148.82222 2009; 148.93023 758019; 149.03432 1920577; 149.31587 3892251; 149.8052 26971; 150.13037 149003; 150.3311 57910; 150.52791 156690; 150.75179 50789; 150.94969 1649094; 151.05216 307403; 151.18536 16460; 151.3498 72023; 151.58075 1002089; 151.59545 19781; 151.69157 128086; 151.86013 28521; 151.88451 6465; 152.0859 2209601; 152.248 655513; 152.83224 10946; 152.85369 11370; 152.88061 5005; 153.03248 346604; 153.17759 22942593; 153.35903 67229; 153.60194 7075345; 153.78184 667; 153.90081 21699; 153.97008 1139356; 154.09947 71445; 154.39451 169751; 154.42224 7774; 154.55205 26354; 154.63762 4133; 154.71402 41075; 154.88753 187419; 155.09864 1119700; 155.39248 2071071; 155.48924 52641; 155.50278 7500; 155.75016 67680; 155.79193 1720296; 156.16142 6858; 156.16965 31885; 156.26879 22423175; 156.62376 1269; 156.91586 34539; 157.04197 42468; 157.31145 967541; 157.50025 61167; 157.60196 9904741; 158.29426 33401; 158.43566 1452202; 158.57545 3052; 158.65161 6582764; 158.7177 1881; 158.81306 1453919; 159.64196 4300; 159.65818 352471; 159.73793 3411; 159.8195 3581244; 160.17521 9677234; 160.63142 51503; 160.8348 1976031; 160.86021 60979; 160.95623 13046187; 161.6174 6025160; 161.72981 50810; 161.91362 5131890; 161.9904 15683; 162.0337 25743; 162.12218 38355; 162.23908 9588; 162.31232 568082; 162.33504 38205; 162.34796 45548; 162.63459 22764; 162.65615 14476411; 162.69186 40129; 163.17683 19058; 163.23152 7851; 163.28444 676886; 163.3853 55076; 163.57355 20219559; 163.77039 26547; 163.89813 47162; 164.33497 12303; 164.47569 9593; 164.59401 698826; 164.81458 1549158; 165.01834 3719370; 165.21741 25603; 165.3426 2912877; 165.4091 2423820; 165.6473 4212345; 165.79864 68421; 165.87832 13271; 166.43087 1618254; 166.54411 19003; 166.80324 5536976; 167.41432 6003; 167.46469 31532; 167.55999 47972; 167.85077 145380; 168.20179 78232; 168.50629 79043; 168.51444 5824; 168.85172 156400; 168.85621 4217390; 168.93131 14865191; 168.93229 9192562; 169.54043 48646; 169.56493 10584; 170.11101 49847; 170.21008 10295; 170.50451 143867; 170.89611 2170979; 171.08335 8030; 171.19392 28735; 171.20743 28444; 171.23777 76644; 171.2576 492593; 171.40675 4972178; 171.57595 27443; 171.65089 711570; 171.85496 5559; 172.63675 7954178; 172.71856 2869956; 172.88724 2447416; 173.04533 26685; 173.30336 29540; 173.30694 5267260; 173.50445 5306782; 173.57957 8407; 173.66435 13924; 173.70612 13617; 174.00094 3248; 174.12179 52667; 174.13808 3017196; 174.93354 1711453; 175.1189 6385474; 175.38256 8355; 175.49164 7462; 175.84828 6284330; 175.87648 39092; 175.88631 4870858; 176.15032 23935; 176.15169 3974805; 176.60058 23302; 176.61787 184292; 176.67973 25710; 176.68266 1386795; 177.02456 290284; 177.13991 2552052; 177.35626 810702; 177.42018 113387; 178.01621 78557; 178.15894 15014; 178.53413 40570; 179.2607 56768; 179.4926 72187; 180.00176 105722; 180.05836 41411; 180.22255 51188; 180.246 1090805; 180.41769 16926; 180.43201 1892; 180.44659 48177; 180.46879 13860; 180.48093 6096330; 180.55079 27744; 181.15658 120338; 181.57673 1923067; 181.61824 11495431; 181.95053 37349; 182.22432 9637088; 182.29103 38717; 182.39799 11921; 182.5771 107910; 182.59136 27271; 182.75727 36639; 182.79134 119472; 182.82832 743586; 182.85599 3789494; 183.07813 57055; 183.23545 287001; 183.84999 38820; 183.92643 565727; 184.39464 78597; 184.42721 34964; 184.62723 8596; 184.63151 11544; 184.73573 10431; 185.31997 686607; 185.39233 1368725; 185.66359 24315; 185.78468 6080; 185.81305 19795; 185.82944 477546; 186.25753 109649; 186.53885 3639665; 186.56867 9238044; 186.65197 4022; 186.663 16770; 186.67196 74447; 186.69027 1303852; 187.32461 6772; 187.35601 78233; 187.41939 79839; 187.58012 31007; 187.66256 2414165; 187.73808 52320; 187.84533 8520859; 187.88745 1794387; 188.41164 40604; 188.44313 59994; 188.58972 70980; 188.79464 181371; 189.23761 78413; 189.91751 4524; 189.95178 24635452; 190.10415 65085; 190.21288 382475; 190.37813 25600; 190.50188 921035; 190.50661 937960; 191.22273 169722; 191.33287 23115; 191.55229 2711054; 191.66805 25843; 191.92215 1243733; 192.48138 26000; 192.48359 1768134; 192.51439 2304413; 192.54733 5232; 192.59576 3856029; 192.69895 118484; 192.76358 2334358; 192.97825 77782; 193.00248 36617; 193.02191 337401; 193.3905 3381876; 193.68389 13957; 193.76686 1283633; 194.07606 9407; 194.14076 45261; 194.18221 4664432; 194.64544 1624079; 194.91414 504272; 194.91523 39160; 195.19326 61536; 195.30492 10325; 195.40764 724333; 195.4876 590519; 195.51087 17928; 195.61658 70902; 196.00279 8893921; 196.05013 201921; 196.1336 6332403; 196.24215 2205683; 196.3696 7369; 196.43491 6721099; 196.73303 5720; 197.39501 1931880; 197.39817 65781; 197.80407 49705; 197.81213 30694; 197.91812 2779026; 198.28911 11553; 198.43544 17187; 198.82535 42261; 198.84883 1530313; 198.9213 25978; 199.40943 22182867; 199.63074 25254; 199.77989 60261; 200.33932 4727119; 200.88212 7175123; 200.89423 7858863; 201.00028 581482; 201.33776 64100; 201.56983 2261; 201.77975 4096144; 201.79181 1644965; 201.82844 887694; 201.91141 1392403; 202.21392 157975; 202.38771 328086; 202.40896 944; 202.45361 28588; 202.46768 215894; 202.82626 680425; 203.10016 28454; 203.16281 6056482; 203.50475 62576; 203.60001 124653; 203.92309 16560960; 203.96415 20099; 204.03217 147085; 204.04467 71885; 204.29037 36586; 204.39015 1190154; 204.55851 78912; 204.60071 1375434; 204.76875 4622; 204.79719 53313; 205.49204 18038; 205.66095 71291; 206.02573 20004; 206.15835 724943; 206.41498 53668; 206.7002 3651; 206.70737 37867; 206.76502 70780; 207.06409 1488225; 207.08213 572; 207.26184 2472762; 207.36515 677204; 207.57694 3728; 207.61934 7395; 207.69992 44431; 207.70047 53711; 208.01627 20642; 208.2069 22195664; 208.42204 2035765; 208.45289 1064609; 209.02317 65178; 209.03889 5475; 209.04653 30919; 209.14992 40133; 209.29437 816237; 209.52522 7197; 209.64659 72871; 209.65357 65238; 209.67818 895072; 209.90565 6601; 209.93659 40538; 210.01472 44706; 210.12246 79381; 210.19279 1753393; 210.34956 2690; 210.3614 1974934; 210.5838 53229; 211.22504 4235126; 211.43395 68167; 211.49849 99314; 211.85164 23049; 211.86055 468324; 212.14246 4645353; 212.29471 3163093; 212.29608 8219; 212.39302 3552937; 212.43454 195208; 212.54265 175715; 212.56703 711; 212.8019 4879921; 212.98453 19675; 213.02212 44158; 213.1853 2437916; 213.28045 10242830; 213.63866 643263; 213.86446 36368; 214.40219 8528; 214.42403 2127; 214.56195 10556; 214.70262 1467282; 214.87065 19371; 215.03376 39503; 215.31176 4478065; 215.40514 46355; 216.45609 48784; 216.83278 9194851; 216.91515 22036; 217.63605 16570; 217.65575 69670; 217.91169 6696795; 218.04521 17665896; 218.52188 316968; 218.62984 4135377; 218.93683 2420503; 218.97382 26542; 219.36718 7213670; 219.37023 1849246; 219.47074 66718; 219.53014 23256; 219.63857 24268; 219.72818 26111; 219.88905 47906; 220.0939 63392; 220.27442 2077; 220.28037 9241290; 220.50584 35091; 220.6799 22299; 220.99212 1220982; 221.15476 941184; 221.1851 8426421; 221.22578 2893751; 221.74025 46020; 222.04502 15806; 222.04886 114285; 222.06925 3049; 222.09961 35024; 222.24079 119497; 222.55817 3023832; 222.56603 704763; 222.63908 19537; 222.82131 9526531; 223.13097 9307317; 223.19766 31303; 223.28184 14609; 223.29021 5695138; 223.65542 76751; 223.89261 42625; 224.11215 56258; 224.17718 60987; 224.18574 1698083; 224.43399 600273; 224.83616 68330; 224.96208 18334; 225.12406 318893; 225.19925 52062; 225.26074 9881; 225.34306 764704; 225.36244 58036; 225.41689 1559101; 225.49087 6375192; 225.5819 39031; 226.21825 1042; 226.47575 7212; 226.58945 14665; 226.62044 12042; 226.80002 3752; 227.07746 50391; 227.17645 7115311; 227.34399 12294263; 227.47286 43390; 227.60465 1341665; 227.655 53647; 227.68558 9093; 227.76078 547624; 227.81405 64791; 227.981 455407; 228.13065 6461; 228.39122 8631; 228.54627 3211; 228.80073 5799; 228.81962 31728; 228.88891 55147; 229.49602 29166; 229.5917 77501; 229.8729 4856911; 229.92147 9540350; 230.30004 16924079; 230.33633 32039; 230.57268 2582393; 230.58273 47857; 231.06433 6163147; 231.19689 2513934; 231.70759 344739; 232.11181 53198; 232.34696 2398953; 232.50638 2125279; 232.6268 31137; 232.82175 1022561; 232.89643 129993; 232.89822 236241; 232.91234 510751; 233.03894 721994; 233.06114 4910236; 233.39744 62504; 233.53547 656119; 234.16134 6832; 234.2613 3004401; 234.32661 1185685; 234.37494 11; 234.70421 295368; 234.7755 48013; 234.82151 489; 234.95634 46831; 234.9741 54783; 235.1562 64642; 235.26843 511417; 235.50766 60472; 235.72143 277560; 236.13888 75631; 236.17222 32912; 236.33611 48578; 236.35884 6388; 236.3851 70673; 236.77277 353418; 236.90968 73592; 236.95702 56456; 237.10097 31811; 237.56357 1020777; 237.63593 41625; 237.69497 5764788; 237.74766 43916; 237.87156 9773000; 237.96725 29125; 238.34306 23435453; 238.55317 4006518; 238.73728 939586; 238.8448 754; 239.2741 25337; 239.51986 1965463; 239.69374 34593; 239.77353 555168; 239.77609 9573; 239.96969 28837; 240.0892 7104020; 240.09484 29432; 240.38229 180391; 240.60194 73524; 240.70035 87601; 240.92422 35745; 241.22772 112274; 241.29953 64248; 241.99246 55260; 242.15974 82750; 242.20904 101025; 242.37559 7898; 242.57833 20495; 242.76633 166534; 242.848 3811639; 242.93103 2012021; 243.54104 1687578; 243.89988 46767; 243.97283 182422; 244.10577 1981800; 244.14111 8017; 244.16596 65644; 244.24006 3166; 244.38859 4536; 244.81087 8541272; 245.14629 27728; 245.24774 56667; 245.31109 64172; 245.32541 74372; 245.7591 8439075; 245.82552 909; 246.10038 1387379; 246.1206 66449; 246.23787 20684; 246.24043 55436; 246.41451 2868266; 246.49033 4540344; 246.5399 3528619; 246.70703 3944511; 246.84559 41453; 247.12263 1004213; 247.38676 29644; 247.52662 20076; 247.95627 229017; 248.07051 15512624; 248.31866 29447; 248.33706 1962202; 248.35577 8455476; 248.60676 2019423; 248.62116 6708229; 248.70221 88876; 248.74041 1992318; 248.79688 22201608; 248.91239 7743; 248.92446 98837; 248.94041 4040549; 249.05559 514; 249.29111 1432546; 249.46029 825; 249.83766 5636863; 249.89342 198796; 250.07096 141777; 250.5113 125817; 250.53585 9615290; 250.86603 9766; 250.89018 25103; 251.06591 350171; 251.33559 4227346; 251.3638 26504458; 251.45066 39409; 251.51356 25115; 251.66631 6771; 251.74244 919952; 251.76656 41759; 251.99116 33114; 252.04404 135004; 252.20073 22373289; 252.59843 136192; 252.91064 9541638; 252.93943 67919; 253.01526 7625289; 253.1901 71637; 253.27046 8183543; 253.27585 672151; 253.43032 11685687; 253.61299 4982; 253.7563 18016; 253.8732 561025; 254.09182 998541; 254.22277 7736; 254.2327 193306; 254.26404 3510160; 254.90917 584432; 255.31247 5787424; 255.4735 20647; 255.52975 60548; 255.65773 3289417; 255.75636 5883238; 255.80876 1153070; 256.13539 4366; 256.31696 6129175; 256.32892 778269; 256.35638 8457; 256.3582 34253; 256.37228 73314; 256.44897 24038; 256.52801 78931; 256.53974 9623; 256.68553 7008549; 256.78123 54473; 256.79304 705830; 257.47497 58383; 257.51654 23583; 257.96719 75796; 257.97179 42555; 257.98306 59852; 258.31305 75365; 258.50502 1802752; 258.96892 11113607; 259.31878 607812; 259.39055 3327432; 259.49001 9490600; 259.53827 1790251; 259.54233 56355; 259.99805 49162; 260.1805 1560925; 260.31386 741164; 260.33102 8601; 260.47345 88278; 260.78707 331222; 260.97183 20039; 261.24138 3120264; 261.49386 25295305; 261.53888 462909; 261.56752 1133281; 261.84527 3792793; 262.03937 24508901; 262.26808 128601; 262.32983 1571767; 262.34339 1717084; 262.45183 62979; 262.4853 4182546; 262.6773 1574009; 263.1266 60714; 263.19565 59407; 263.57719 1891369; 263.71992 6188; 263.85105 8478; 264.24588 2973654; 264.71273 73117; 264.78245 2919467; 264.85667 1788728; 264.97117 63434; 265.13477 45911; 265.24971 45480; 265.51286 176201; 265.61274 3359135; 265.80215 244165; 265.85867 3704801; 266.03721 9308; 266.08 2920802; 266.1031 52280; 266.13284 21239; 266.16175 8205; 266.27571 3195; 266.34901 13442614; 266.59537 12091; 266.62653 5895542; 266.68409 79023; 266.77036 9004170; 266.79429 4759195; 266.81951 3167979; 267.243 7073; 267.28357 145034; 267.29834 1601; 267.43551 53642; 267.45148 5618034; 267.51443 3668601; 267.65083 5839841; 268.30626 52124; 268.3247 5895492; 268.33498 38887; 268.34282 400378; 268.44552 28266; 268.48745 193365; 268.51873 65718; 269.12221 9587; 269.20443 243042; 269.36004 42850; 269.48219 12875; 269.48491 73687; 269.57884 2054711; 269.61609 1088057; 269.66354 44450; 269.72439 55458; 269.73214 4359358; 269.74444 8265; 269.76641 12966; 270.05728 4569; 270.1589 2581741; 270.20851 109649; 270.25806 2843535; 270.80564 6123; 270.98467 33583; 270.98488 74596; 271.37075 24101; 271.62851 52546; 271.64995 3009715; 271.72554 133763; 271.83539 44035; 272.1665 60761; 272.2005 25653; 272.45636 292759; 272.63251 789; 272.84402 206170; 272.91832 1357923; 273.00174 155428; 273.25119 5981002; 273.4206 9610573; 273.59674 1742328; 274.04939 3154; 274.1151 7021; 274.21222 22551; 274.33818 28786; 275.06001 52676; 275.42885 17191291; 275.47033 1050152; 275.61005 518758; 275.65579 54116; 275.77472 86879; 275.81537 1500399; 275.93274 192357; 276.00868 83828; 276.14921 1663622; 276.39291 1516582; 276.48696 2433; 276.83917 59538; 277.43354 63035; 277.45218 318759; 278.05714 1365448; 278.58279 95039; 278.75599 32270; 278.86462 601073; 279.04536 52872; 279.30605 1992262; 279.31531 23269; 279.41055 179934; 279.64014 23730; 279.86317 630240; 280.61872 56922; 280.71844 1692076; 280.71867 286194; 280.76592 665416; 281.13043 6007371; 281.31815 174782; 281.51685 25764; 281.57185 169612; 281.61393 824286; 281.69647 203478; 281.77294 29130; 281.83399 7531; 281.87724 69353; 282.26184 694055; 282.55396 3691812; 282.71092 37390; 282.76249 898469; 282.78444 191930; 282.78497 202699; 283.05626 118649; 283.31909 25322; 283.62251 41146; 283.78366 140125; 283.878 25081751; 283.93264 1826040; 284.12782 1804451; 284.70484 52832; 284.74193 5761; 284.8939 1110911; 284.93225 27906; 284.93319 1442; 285.33685 5757; 285.36345 67161; 285.43802 31683; 285.59689 424; 285.79012 34955; 285.9588 135156; 286.13223 75665; 286.23908 27386; 286.50353 26244; 287.12976 104472; 287.2399 1709353; 287.32032 1851351; 287.48739 1426842; 288.00631 33636; 288.0278 400912; 288.36001 1043806; 288.56675 65687; 288.73172 1039981; 289.29621 6065; 289.37197 60150; 289.41057 1283; 289.4719 63182; 289.48509 100744; 289.72533 3994842; 290.0874 3336944; 290.31279 20160; 290.66613 5559; 290.74122 7212; 290.7461 44126; 291.1976 27472; 291.50175 17986; 291.66901 47129; 291.73353 5975601; 291.75267 780; 291.8696 68255; 291.90344 480674; 292.09153 1963209; 292.14918 1240605; 292.24212 194377; 292.30707 7511823; 292.39328 49745; 292.45097 43814; 292.46181 72800; 292.53841 1144635; 292.71815 1885427; 293.15554 103162; 293.23273 2856709; 293.27303 364202; 293.31539 4811685; 293.40212 5577; 293.54288 37634; 293.6882 68779; 293.84964 804184; 293.93843 10483; 294.01623 75778; 294.1447 78495; 294.16696 71805; 294.47131 32774; 294.4849 41379; 294.60804 10692377; 294.60828 1954533; 294.75697 72326; 294.85241 17088287; 294.89146 39886; 295.04733 4391519; 295.27857 2010333; 295.65696 5400; 295.80604 35826; 296.03498 2620999; 296.04535 34268; 296.14498 13915; 296.8248 46988; 296.96173 20094; 297.2374 7170249; 297.32289 105550; 297.33829 91723; 297.34938 1808714; 297.41903 2225996; 297.44917 3853255; 297.59164 201741; 297.61253 64152; 297.90471 506305; 297.9639 21947; 298.01921 1087442; 298.28659 46296; 298.58242 77658; 298.88533 143806; 298.98881 4748917; 299.13645 71754; 299.1387 73973; 299.17669 25010667; 299.28766 64520; 299.5187 51706; 299.52135 75043; 299.62147 3186; 299.63929 26711; 299.70465 25463; 299.7115 8131; 300.44189 29829487; 300.58293 18424; 300.66359 12640637; 300.76712 49222; 301.25276 4540621; 301.50345 838; 301.72513 32354; 301.80007 3382; 301.87283 97382; 301.89637 21015; 302.01556 58207; 302.14911 79314; 302.20856 12124; 302.54695 61174; 302.67283 150412; 302.91888 142191; 303.06534 1904587; 303.31238 1389135; 303.62747 5855; 303.69657 30617; 303.88261 765790; 304.03194 54551; 304.23671 2375; 304.28479 60906; 304.30269 69938; 304.45132 4077759; 305.0346 901468; 305.1695 6174111; 305.24892 528119; 305.35321 4924; 305.92342 348344; 306.04234 57279; 306.12167 74381; 306.19112 29536; 306.28059 1401952; 306.30672 29932; 306.64714 6934448; 306.7568 31518; 306.8728 68713; 307.04957 1798059; 307.05275 1814229; 307.18381 10436; 307.28232 443272; 307.69298 18883; 307.85807 658248; 307.87388 13084; 308.06212 6978638; 308.31749 698457; 308.61039 26610; 308.82629 9693343; 308.87909 6402844; 309.30793 1147; 309.45187 63420; 309.46321 58604; 309.46352 9884721; 309.49164 70436; 309.56163 567395; 309.56294 54169; 309.72396 1921831; 309.97647 28949; 309.98232 53205; 310.17404 203108; 310.22859 3660365; 310.89566 41928; 311.14304 5002170; 311.51692 76803; 311.5493 1425553; 311.63261 1281459; 311.72381 5462122; 312.11803 1441907; 312.23022 4666740; 312.27734 28835; 312.40436 79792; 312.45211 7420033; 312.56423 28032; 312.63871 26318; 312.6497 2594163; 312.65649 1895601; 312.83821 1646448; 313.15832 394190; 313.27793 9096; 313.28787 228937; 313.64445 41450; 314.03478 153792; 314.48966 3480524; 314.98632 11178; 315.02079 2433943; 315.031 35275; 315.11409 30663; 315.29605 46208; 315.40137 1486; 315.44103 70032; 315.52603 3375; 315.54534 72808; 315.54662 1755169; 315.58467 16203; 315.82031 9235645; 315.92587 26510; 316.10863 64476; 316.16236 1060581; 316.21737 33327; 316.34112 72442; 316.41358 118454; 316.43851 63671; 316.6264 6603900; 316.75635 68647; 316.76406 171552; 316.8508 351191; 316.91372 23272; 317.01647 931706; 317.01926 113856; 317.03551 29108; 317.50092 1041252; 317.56865 562283; 317.61041 3012383; 318.0306 29303; 318.2052 549827; 318.45014 4294437; 318.55053 3589013; 318.71375 151183; 318.72663 1244598; 319.0037 1310673; 319.03624 21462; 319.22716 68335; 319.95026 1933270; 320.01908 27784; 320.48536 99374; 320.70031 4284; 320.72116 25499; 320.74981 23611; 320.8897 2679336; 321.22414 71688; 321.31185 1554622; 321.32131 139100; 321.49438 4528726; 321.53649 197497; 321.55559 5786; 321.69841 468590; 321.69935 166720; 321.7085 53377; 321.78706 5652868; 321.83435 25903; 322.07938 26975; 322.10174 28856; 322.17862 24661; 322.23356 89320; 322.29213 104741; 322.40208 5705; 322.4127 129670; 322.5991 48521; 322.82727 6894; 323.63538 12764; 324.19172 65977; 324.49799 62301; 324.71056 7531; 325.02587 483776; 325.14015 79244; 325.86097 127309; 325.9453 3182416; 325.98007 25118972; 325.99538 90648; 326.16626 28539765; 326.26879 5217; 327.09598 41954; 327.11503 1354453; 327.31408 28181148; 327.32644 8613718; 327.50837 1673981; 327.70115 2759; 327.81145 824; 327.8936 705861; 328.14543 9632; 328.40369 3124; 328.44533 25153179; 328.58026 59471; 328.75583 2731848; 328.81534 174033; 328.92814 29809; 329.10248 79677; 329.39355 201394; 329.67239 408; 329.69148 10240; 329.95143 62614; 330.06091 60593; 330.41986 7815104; 330.47874 4043936; 330.56331 9844; 330.64134 64682; 330.75896 20827; 330.76639 79112; 330.87506 24374; 330.95045 558703; 331.08001 51880; 331.21649 323597; 331.29458 875132; 331.43283 37959; 331.57945 638886; 331.61818 2009; 331.65145 24938; 331.68304 5585; 332.13908 10379; 332.16799 8886891; 332.4801 1133323; 332.72862 16324; 333.00595 1575355; 333.22945 5053487; 333.2662 3259295; 333.30813 822218; 333.44745 1726092; 333.50928 1046; 333.64876 3803443; 334.44284 430371; 334.64038 4097600; 334.82225 34948; 334.8797 40392; 334.94891 55281; 335.10269 319942; 335.15794 1805909; 335.30896 75576; 335.4902 56791; 335.66645 3057; 335.73363 5641362; 335.82772 6001; 335.8853 46092; 335.95885 25828610; 336.13326 19425; 336.14586 74771; 336.15129 199681; 336.3044 52439; 336.48328 125449; 336.74294 1157200; 336.85767 2569255; 337.03749 132559; 337.16509 23155; 337.25985 77385; 337.66306 250411; 337.84343 29814; 337.8594 629501; 337.91587 28550; 338.01885 974303; 338.27108 2808567; 338.35055 30855; 338.52681 974250; 338.66229 4008; 338.79742 6590346; 339.13202 1375684; 339.28094 6996; 339.3785 30819; 339.48182 38212; 339.50918 1895645; 339.51202 1087248; 339.99525 3994; 340.05151 18822; 340.13967 6967; 340.1526 3013655; 340.54212 1702218; 340.79703 793460; 340.93695 823245; 341.12145 74358; 341.36214 2686715; 341.39582 22714; 341.42767 66492; 341.42892 159364; 341.45404 3434723; 341.60448 910242; 341.62533 4514436; 341.89779 1619357; 342.22874 38393; 342.31577 4126; 342.53324 18356; 342.72316 3811860; 343.40319 20211; 343.65355 6476525; 343.89214 181893; 343.988 6047; 344.12295 7140477; 344.59784 840627; 344.59796 11337; 344.6859 43104; 344.7073 64323; 344.88127 27582; 344.93889 627664; 344.9965 48752; 345.26396 21757256; 345.45843 58651; 345.77119 146646; 345.86723 52655; 345.99849 863935; 346.03389 57913; 346.19524 70579; 346.22385 15165; 346.60593 7815106; 346.67928 28343; 346.97108 17695; 347.18772 5169315; 347.41381 1829279; 347.54134 5760; 347.91189 2731258; 348.04905 69072; 348.11801 1640236; 348.14651 929609; 348.23449 10815210; 348.56983 3336; 348.76047 4973; 349.01933 59646; 349.04739 35178; 349.65373 3492320; 349.67487 25251207; 350.05386 30154; 350.08571 23969; 350.16702 206232; 350.17864 322511; 350.37655 49742; 350.54571 6488; 350.57991 25328; 350.70844 4338222; 350.97217 133; 351.15564 166471; 351.5211 8603; 351.53658 4279; 351.79354 3803381; 352.62321 9921; 353.14397 21602; 353.42034 78172; 353.95002 7599781; 354.54809 1835716; 354.95408 9760519; 355.10529 9040; 355.15096 9396; 355.86757 5096822; 355.90299 21820; 355.94765 3325813; 356.02128 29630; 356.07699 769652; 356.08131 2928639; 356.09964 79678; 356.76833 22996; 356.91222 4363775; 356.91778 13301; 357.1032 1422879; 357.12133 22874602; 357.34482 695932; 357.44177 8610584; 357.45264 495; 357.60255 20459; 357.70922 22165; 357.81665 155164; 357.96934 22416; 358.29226 5978; 358.30327 41163; 358.30855 3865643; 358.36258 1398100; 358.48742 9407934; 358.51644 62920; 358.96936 6370822; 359.15801 3540; 359.47809 77624; 359.89234 3957943; 359.95995 9275016; 359.98096 1868; 360.04554 8233564; 360.15539 13368367; 360.23484 14330; 360.25976 2037866; 360.32905 724109; 360.51355 185987; 360.81928 2398; 360.86669 200417; 361.05539 34841; 361.31208 14910; 361.46313 9166461; 361.54951 13996; 361.62159 3724555; 361.76397 630663; 361.91113 2292289; 361.94126 3269924; 362.88254 37367; 362.99512 187399; 363.23599 136767; 363.24528 1035253; 363.30699 49515; 363.83383 54141; 363.93278 1206033; 363.96689 56518; 364.06887 748824; 364.87863 37479; 365.33046 42862; 365.54968 59800; 365.55286 17997; 365.57567 20449; 365.69863 9004570; 365.8545 926677; 365.89418 6420990; 366.55809 139022; 366.78209 1930; 367.12276 24128; 367.24126 33286; 367.26998 141041; 367.28577 12410583; 367.42339 5592152; 367.46564 934982; 367.52875 612741; 367.58246 73169; 367.59281 5843; 367.71617 8623103; 367.89869 10463831; 368.39215 17090; 368.40346 96234; 368.68922 32360; 368.84936 30090; 369.10587 9634218; 369.42799 3876414; 369.72009 1529844; 369.88201 935818; 370.18606 454227; 370.24572 17880; 370.31933 2840784; 370.39948 3264434; 370.53518 1933809; 370.89047 76522; 370.98015 55115; 371.03616 3257; 371.6452 47245; 371.68594 78569; 371.83567 22659; 372.18739 3981262; 372.24921 44873; 372.30407 8204; 372.42006 7887; 372.54776 61726; 372.57449 5470; 372.63792 6115041; 372.91899 4082; 373.013 5067661; 373.0479 4778220; 373.1357 8872; 373.34065 13034291; 373.62556 43604; 373.7057 1845897; 373.8004 4167; 373.82535 66428; 373.87834 751; 373.96361 939607; 373.97674 22896903; 373.98278 71317; 374.15333 3622962; 374.20085 6209641; 374.23631 72189; 374.27273 5953; 374.42299 181951; 374.59537 62597; 374.73103 805410; 374.75694 4680053; 375.03011 32747; 375.06114 41298; 375.07753 23763; 375.14728 118540; 375.36073 409097; 375.76969 1636823; 375.80098 622646; 375.86216 5654; 375.98018 928027; 376.34897 22023; 376.43199 137980; 376.80925 5991; 376.88535 24731; 376.91953 70692; 377.01742 25162; 377.31266 1325165; 377.31708 952485; 378.03562 42949; 378.10386 344695; 378.16012 18840; 378.20126 28293; 378.49192 28874; 378.95128 9262429; 378.97151 578; 379.00427 1614; 379.10349 2854615; 379.34905 3969404; 379.41369 206045; 379.63821 690730; 379.77366 5637; 380.1145 69430; 380.15617 53606; 380.81306 1119342; 381.10969 8145159; 381.11699 14217601; 381.53345 20640; 381.57824 351616; 381.90686 27983851; 382.27613 373036; 382.39544 1930185; 382.98038 762123; 383.02005 9005; 383.33305 64992; 383.42151 22614; 383.57143 1370961; 383.7385 920895; 383.78181 14677; 384.20433 54463; 384.47733 80886; 384.7617 44815; 384.85529 2504999; 385.15782 68490; 385.22304 160473; 385.3994 2177874; 385.42235 49657; 385.53896 11385; 385.58586 1108128; 385.75226 891; 385.89348 742979; 385.91599 9813; 386.03781 8779; 386.3885 37260; 386.40813 46453; 386.47346 43157; 386.68533 6842779; 386.97028 4159619; 387.12067 26418; 387.13218 20891; 387.24336 2570; 387.31614 1745940; 387.8913 4052114; 388.42782 41357; 388.46356 1188042; 388.91771 1397013; 389.13222 1846657; 389.8766 27252838; 389.90019 1281163; 390.01659 3934; 390.11553 4563845; 390.13677 53700; 390.51876 4006968; 390.83915 20587; 391.12638 6255513; 391.17803 1057832; 391.23278 79021; 391.93652 220664; 391.96312 28514; 392.06263 44610; 392.06532 4599967; 392.50478 4205; 392.59387 6148; 392.69068 28671; 392.76021 8448625; 392.80878 39412; 392.90047 22177; 393.01455 623867; 393.15764 23290992; 393.50143 38194; 393.96573 2380; 393.9847 4364101; 394.06579 87410; 394.43323 4068400; 394.50179 12609; 394.57604 4060890; 394.66207 9102; 394.67992 16396097; 394.69478 24473; 394.70293 58716; 394.75098 428697; 394.84793 41107; 394.88611 16565077; 395.23144 6091; 395.41417 1129685; 395.44093 49812; 395.55755 1412721; 395.59991 60817; 395.83214 30838; 395.88604 4093279; 395.95739 9774; 396.00778 46548; 396.13461 57056; 396.37669 2300; 396.439 22403; 396.53598 46063; 396.89568 29563; 397.13846 76617; 397.24313 69665; 397.70829 4274; 397.79994 1758557; 398.13215 7890801; 398.30845 3370; 398.4922 4914; 398.53011 1298590; 398.69001 1895005; 398.78931 47310; 398.82491 2453413; 399.0936 343138; 399.48611 26886; 399.54411 8301; 399.55407 29268; 399.70717 688569; 399.96145 16321; 400.16407 2467084; 400.23189 31043; 400.30676 1936499; 400.53654 796795; 400.9553 2628408; 401.14301 169275; 401.4496 64453; 401.56747 25366; 401.69626 1051136; 401.70591 53122; 402.1423 929591; 402.18024 236158; 402.21499 1218845; 402.22243 39; 402.27772 4513906; 402.87257 44538; 402.89453 1614821; 402.93272 1975118; 403.38055 1621928; 403.57213 3632; 403.96217 5441668; 404.11155 41436; 404.22143 25079; 404.40762 8107; 404.55891 508916; 404.64995 1791323; 405.19959 4351447; 405.20717 7308; 405.23943 468074; 405.71655 148261; 405.75113 57651; 405.76498 24750; 405.85284 51534; 406.03212 3512789; 406.15768 44308; 406.70072 47891; 406.83775 19763; 407.05735 13757; 407.10359 37475; 407.13556 606107; 407.20692 14915; 407.27859 7835; 407.57849 8373061; 407.76878 14520; 407.80853 23805; 407.83693 137854; 408.88794 960671; 408.92322 8885204; 408.99027 159987; 408.99711 70903; 409.06582 75950; 409.39837 6232; 409.73874 1203095; 409.81394 24341; 409.81979 6181703; 410.2348 1478248; 410.26399 7655379; 410.57069 859317; 410.63987 4783055; 410.76046 4674517; 410.89683 5170965; 410.92086 1432811; 411.21489 42008; 411.23396 76563; 411.2707 66308; 411.28537 163355; 411.32114 6398597; 411.94787 123411; 412.32385 360676; 412.32694 45500; 412.51101 151717; 412.52776 4258077; 412.62837 5917508; 412.66687 212753; 412.73239 8009; 412.84431 28932; 412.86715 6599; 413.15922 12441; 413.29954 22633; 413.35498 46268; 413.62966 40884; 414.50815 677782; 414.60511 8226; 415.17237 1605717; 415.5848 20564; 415.86759 3453839; 416.11864 19623; 416.25155 7658; 416.35339 106142; 416.43113 17860; 416.63339 26396; 417.24968 5437935; 417.31685 28037; 417.39285 72577; 417.48772 6080; 418.03438 22176; 418.04709 1543481; 418.18709 21497; 418.33206 1259542; 418.34151 1001887; 418.72794 127121; 418.76408 26684; 418.8447 8312; 419.07342 261018; 419.38929 2783; 419.42944 3634; 420.06153 55960; 420.08067 34565; 420.28512 49233; 420.39935 46887; 420.58609 5984; 420.69625 574; 420.79934 1458827; 421.5856 66963; 421.70331 2297554; 421.94126 128661; 422.16069 704077; 422.296 7339; 422.36471 57827; 422.45746 3400920; 422.46187 29670; 422.4874 27694; 422.71636 6020; 422.87103 1311612; 423.05894 198933; 423.26281 21914; 423.37869 43740; 423.52684 61838; 423.72934 1025; 423.91817 12578; 424.24936 363655; 424.26635 27600; 424.59265 16601; 425.11437 9690; 425.21556 7886; 425.33702 3166; 425.45009 762564; 425.49183 2613241; 425.70619 25742; 425.78364 24510; 425.81882 7426; 425.89077 78908; 426.12563 2863; 426.1975 3976379; 426.74744 18466; 426.7925 94967; 426.93424 34136; 427.01913 70250; 427.07355 1805002; 427.2588 71339; 427.26202 1515967; 427.2967 1661733; 427.47114 51925; 427.74598 79854; 427.95305 25505357; 427.97528 919627; 428.15772 15320851; 428.16604 209121; 429.05466 28145; 429.12833 14193; 429.26039 30582; 429.6485 9625254; 429.69435 2544580; 429.80632 9886; 429.85603 1887; 429.97359 2893358; 429.99482 1312707; 430.56205 231889; 430.6034 78499; 430.7235 9958; 431.07655 36772; 431.08096 12214; 431.18544 54175; 431.20279 3721833; 431.21584 197238; 431.32999 16292; 431.53256 1537896; 431.64186 1881462; 431.77066 9354128; 432.04613 15521; 432.17162 21822; 432.27927 51489; 432.3512 1774655; 433.07206 6499; 433.07621 591485; 433.16289 34832; 433.20049 7646; 433.42339 3361895; 433.43495 27220; 433.45731 1483508; 433.55025 6734502; 433.62224 369486; 433.65462 608611; 433.69068 112262; 433.8346 3486022; 433.96201 69538; 433.99043 61568; 434.21315 24791; 434.42943 1966; 434.45153 28076; 434.60122 3184; 434.79009 42776; 434.84489 79771; 434.96285 19282; 435.05429 4178; 435.22975 4993837; 435.90153 22662; 436.01715 68125; 436.2437 1977593; 436.25282 3799647; 436.36241 72608; 436.45577 1962293; 436.89137 8149; 436.99525 6787400; 437.36682 6776; 437.61049 26098; 437.72435 5093439; 437.73912 855752; 437.74424 5264; 437.76212 509438; 437.94873 68646; 438.4691 70814; 438.76339 744; 438.79703 4902736; 439.28453 29749; 439.3069 24179; 439.44332 674143; 439.51987 9013; 439.69302 74734; 439.79326 34396; 439.80599 2614799; 440.03672 21720; 440.08445 7323871; 440.27146 46414; 440.29229 8624; 440.40717 90; 440.4878 3711; 440.52669 32845; 440.55352 121085; 440.56687 44218; 441.05811 3898; 441.09536 19526; 441.25393 1831429; 441.30405 23964; 441.61923 3773419; 441.63826 19153; 441.8249 22596; 441.86545 12611; 441.8827 684586; 441.90615 1863008; 442.08432 165295; 442.20618 760; 442.37953 1349774; 442.45597 4855392; 442.53359 6802; 442.59041 42009; 442.82509 2320438; 442.94256 35869; 442.94969 1620595; 443.01913 34005; 443.13874 1961539; 443.17005 52686; 443.18655 38931; 443.21755 15708491; 443.23179 24496841; 443.23233 23034; 443.59137 65153; 443.73144 59400; 444.51207 62162; 444.55263 8977085; 444.66529 729608; 444.68006 25044; 444.69349 37262; 445.05502 3102845; 445.20111 199792; 445.31753 27159; 445.53358 70810; 445.70333 63534; 445.73006 1018293; 445.77941 48155; 445.92474 5096; 446.47935 4107; 446.75892 2123982; 446.88116 40496; 446.93258 74683; 447.02083 4987465; 447.07884 1893369; 447.20442 1014874; 447.33478 52013; 447.40628 46302; 447.44519 28505261; 447.59108 77697; 447.60452 238389; 447.65089 31853; 447.66902 16695; 447.67464 30622; 447.71339 4752984; 447.79594 29254; 448.52573 493900; 448.61995 5800; 448.97395 599648; 449.18203 1571691; 449.21342 3784; 449.44295 28595328; 449.51706 29200; 449.87201 63098; 449.96305 29819; 450.59746 13265; 450.75741 6716; 451.08484 1445; 451.21567 25273; 451.31729 61397; 451.41211 1886228; 451.44485 1734182; 451.45593 131674; 451.56573 24339; 451.64039 52863; 451.83118 839203; 452.21633 22821; 452.29886 1736; 452.41652 67193; 452.64754 18046624; 453.15792 6897; 453.15872 38966; 453.2565 725364; 453.32725 8645; 453.84957 85754; 454.1185 58903; 454.43555 51087; 454.49179 112055; 454.52976 1602545; 454.79212 78734; 454.87094 29536; 454.93792 79819; 455.67343 6869057; 456.05931 753663; 456.12053 11536982; 456.14432 791522; 456.40968 125007; 456.41107 185423; 456.43917 1886192; 456.71443 1012; 457.02008 35408; 457.03467 36639; 457.05875 2025091; 457.38049 655633; 457.57642 4771810; 457.79863 57245; 457.9329 35976; 458.17222 433598; 458.5018 29892; 458.70567 66333; 458.82166 1347584; 458.8611 18786; 458.90676 68095; 459.25056 3397; 459.47078 7359; 459.71476 6522; 459.89025 145299; 460.40437 164862; 460.67929 20763173; 460.76227 9917; 460.91135 85393; 461.19457 45219; 461.35523 1331; 461.49978 138124; 461.85499 20470; 461.93174 6369106; 462.03276 107106; 462.22188 1810754; 462.73251 207734; 463.19633 1913933; 463.30612 1298434; 463.52921 474; 464.24816 2429; 464.46639 41003; 464.71439 439; 464.95339 7726; 465.02057 411748; 465.16931 3700688; 465.22816 995797; 465.23978 37683; 465.28679 3547; 465.28915 27773; 465.60249 1201904; 465.61534 1148940; 466.36224 43537; 466.40981 28930; 466.67001 8155580; 466.71175 3020; 467.01004 6105512; 467.19615 2507; 467.34512 2758798; 467.49443 22936; 467.55895 2727; 467.73285 9149; 467.99003 34967; 468.11585 1747963; 468.57877 617563; 468.67756 73403; 468.73944 58751; 468.74579 23321; 468.93644 34236; 469.09517 74520; 469.11957 25105; 469.41222 1782368; 469.61947 29447; 469.71839 759442; 469.97425 94434; 470.06211 2791623; 470.48758 30426; 471.02587 76822; 471.31763 4922196; 471.36837 3586292; 472.02153 52388; 472.22219 910594; 472.25848 8461; 472.32821 28939; 472.37325 5264; 472.51389 6400786; 472.69061 1953403; 472.8096 62105; 473.29273 2482; 473.5771 930486; 473.79775 2241; 473.80322 21152; 473.96701 4614; 474.01289 690946; 474.04348 1869038; 474.16024 24946; 474.22305 4608; 474.42117 4693461; 474.45998 71138; 474.5825 25390; 475.31986 8452; 475.6356 72954; 475.74851 40738; 475.90449 241; 475.93865 50512; 476.2023 156023; 476.38264 6681472; 476.38871 8481; 476.39509 86823; 476.75803 4658210; 476.8408 49245; 477.32084 5788886; 477.39 19455; 477.61311 40048; 477.72528 1003593; 477.83887 2209956; 477.93313 1553; 478.06778 201563; 478.42663 28714; 478.46328 6096632; 478.52871 25527; 478.70286 20706; 478.87165 11737; 478.98424 589; 479.45373 186720; 479.46734 177601; 479.54475 56531; 479.58497 74674; 479.73042 9886; 480.16004 43479; 480.20335 21386; 480.34334 27706; 480.34719 467543; 480.42802 37665; 480.83113 2711165; 481.76936 69251; 481.95777 19182; 482.11399 19456; 482.1215 15912; 482.18101 1245; 482.19639 7045; 482.26408 26156; 482.4076 44165; 482.67475 79538; 482.76498 22370; 483.0308 48166; 483.05186 1461; 483.07845 2275; 483.50435 22528; 483.69518 519298; 483.80639 2061977; 483.87664 29530932; 483.94122 8906985; 484.10942 29087; 484.17533 3568437; 484.17712 1110106; 484.36507 33959; 484.3949 27720; 484.49874 7456002; 484.62318 97655; 484.83334 6034251; 484.83893 19029; 484.942 24526285; 485.36686 57348; 485.6901 936650; 486.38584 28961; 486.45209 9550203; 486.49564 22520; 486.55347 2675087; 486.96341 566978; 486.98489 4190; 487.06485 192764; 487.17424 923901; 487.59134 1294152; 487.62494 46862; 487.8837 24194; 488.27688 458032; 488.4787 28919; 489.28041 8979444; 489.31308 20319; 489.59816 3819; 489.64737 199541; 489.67021 3620562; 489.92159 199283; 490.07332 65365; 490.82028 54560; 491.30638 680381; 491.3205 27345; 491.37977 29278; 491.38055 25537; 492.00928 6265192; 492.03848 49277; 492.12959 1018577; 492.2117 66158; 492.31572 8272; 492.5522 31783; 492.84359 3122946; 492.95416 25228806; 493.28997 61290; 493.35003 1740521; 493.4189 23688; 493.53365 1119131; 493.79037 616338; 493.82035 41784; 493.82579 5408001; 493.99157 47787; 494.0908 62609; 494.10999 2684971; 494.14439 32388; 494.40438 40826; 494.43556 11024; 494.69545 36022; 494.80428 21520977; 494.80764 44444; 495.36109 46719; 495.4265 125; 495.62302 1105216; 496.00139 45059; 496.16973 74813; 496.43805 435592; 496.46353 128175; 496.98676 27195; 497.26837 53801; 497.27364 11730; 497.44188 310272; 497.49574 628612; 497.5355 724582; 498.03637 837; 498.31945 23249; 498.35451 103779; 498.36433 4822299; 498.47661 1558600; 498.91357 68745; 499.10717 26486; 499.40238 64239; 499.77164 2516668; 499.93264 521805; 499.98764 68703 +<7, 1>: 0.12964 3991469; 0.32137 184544; 0.9111 56949; 1.05587 1202658; 1.27339 9062183; 1.28751 2012; 1.44685 72715; 2.26863 1385922; 2.39033 18170; 2.61092 16954; 2.62016 569448; 2.90727 74149; 3.0214 1057804; 3.11774 587309; 3.20033 75801; 3.25419 3804305; 3.58146 154868; 3.58822 88664; 3.76009 73772; 3.81156 74390; 4.02634 29705; 4.17552 1803595; 4.38777 27957; 4.44854 2586; 4.54337 657486; 4.59312 147832; 4.65754 7540; 5.03077 32296; 5.36439 854589; 5.45791 56619; 5.71785 4569357; 6.06446 1845; 6.2315 4421884; 6.37795 22615; 6.45585 23628; 6.64236 45482; 6.90124 183473; 7.38629 31944; 7.39012 22805; 7.55337 802184; 7.60653 3353552; 7.65198 6489942; 7.69427 697819; 7.79117 425365; 7.79204 7776; 7.80583 3113301; 8.22415 4443; 8.33933 45160; 8.58659 54680; 8.81684 1449986; 9.17681 3452611; 9.31948 47955; 9.51277 1077085; 9.59304 596; 9.8783 70374; 9.91044 2430067; 9.96214 4380; 10.33652 389863; 10.56181 34296; 10.98733 16101; 11.17147 7981998; 11.37084 47081; 11.48808 549581; 11.56115 7412; 11.57373 7901; 12.3613 59074; 12.37604 317518; 12.39832 264933; 12.61073 21045; 12.85955 13798; 13.02568 1413584; 13.07299 2883630; 13.08042 3056; 13.17209 46533; 13.53427 42810; 13.72147 8117568; 13.75543 156461; 14.15973 5961; 14.30387 60817; 14.42216 168150; 14.48379 76956; 14.54824 4852; 14.66117 3186554; 14.86 11472; 15.04021 4562588; 15.14926 8621733; 15.24951 1531271; 15.31096 2175906; 15.38922 8370; 15.94319 15612; 16.12019 28093; 16.1258 2987180; 16.33777 3106719; 16.34921 8756734; 16.35997 42632; 16.57081 3540114; 16.57388 6818138; 16.76369 6910; 16.77664 1982661; 16.93531 1818427; 16.95893 3787066; 16.9768 67055; 17.3385 55795; 17.73622 3181; 17.96252 2755111; 18.24409 9142; 18.39079 29826; 18.44068 4857; 18.44636 451984; 18.56003 2648463; 18.82666 479683; 19.29701 5406; 19.54285 12359; 19.63146 187396; 19.74931 3857416; 20.02844 216435; 20.31089 3460831; 20.62925 213579; 20.67258 25068; 20.73059 7253540; 20.92569 8645363; 21.07705 26728999; 21.36268 3187; 21.37592 703; 21.39955 162539; 21.54925 6143; 21.87681 90968; 21.88805 1169901; 21.93796 3406; 22.28022 439256; 22.4069 20712; 22.88363 8472; 22.95936 423; 22.99878 1738154; 23.00104 38387; 23.5058 1061; 23.65492 1649243; 23.77845 43696; 23.88092 1099686; 24.11565 1473352; 24.17724 719841; 24.25948 6067; 24.28024 31144; 24.70802 60260; 24.98551 123327; 25.25699 2916; 25.35417 4098; 25.3741 3791983; 25.43419 451; 25.45928 2413364; 25.49427 42792; 25.66698 58655; 25.74029 6215132; 25.74086 60133; 26.20892 55826; 26.28646 196323; 26.43066 52729; 26.57159 56986; 26.62348 595707; 26.62562 566330; 27.08862 11614174; 27.44343 1342295; 27.55496 4069462; 27.69057 8173; 27.71385 8777391; 27.72043 71153; 27.72694 5274983; 28.12118 1804694; 28.13389 2272717; 28.14495 578566; 28.23751 1555; 28.23785 592895; 28.50571 491951; 28.55353 70618; 28.64234 943033; 28.76581 27306; 28.94662 136604; 28.972 17417; 29.0601 1299651; 29.12973 28678; 29.17575 1136143; 29.31436 508803; 29.38255 6719; 29.4769 67745; 29.6254 3559829; 29.81216 36621; 30.1433 3008275; 30.48051 6533; 30.72508 1218350; 30.80112 60244; 30.91288 1934744; 30.92712 89145; 31.06101 46818; 31.17865 65808; 31.37992 199128; 31.4958 9909883; 31.52807 41563; 31.60248 1365331; 31.62192 3490698; 32.02296 28365; 32.15919 199454; 32.45963 3222350; 32.46916 13377; 33.00169 23080; 33.03853 58937; 33.04886 582578; 33.09302 31617; 33.19643 4361303; 33.3478 26690; 33.46077 30425; 34.09407 215; 34.2303 9799628; 34.29072 6302; 34.47571 709461; 34.66325 8243875; 34.69152 161669; 35.05158 9650918; 35.05882 163482; 35.22567 40877; 35.29288 75567; 35.33615 21351; 35.45895 1895652; 35.6907 4216787; 35.98144 3342; 36.00844 5315979; 36.31453 2347450; 36.43673 5425467; 36.4952 1942917; 36.55664 1105662; 37.46909 470135; 37.94312 8448; 38.20941 19269; 38.21742 56574; 38.51011 28405; 38.76557 10657; 39.12507 3066938; 39.13743 1702854; 39.31279 2897; 39.49906 3652597; 39.54865 32114; 39.83886 71305; 40.10931 23825; 40.12235 18733; 40.19446 3224245; 40.37154 14806; 40.52387 4074; 40.69909 292495; 40.7905 25845; 40.84346 36710; 40.95255 29109; 40.98275 1017847; 41.10998 609709; 42.0401 40292; 42.10128 20321; 42.36024 2440; 42.42939 239004; 42.63971 8993; 42.67585 7397554; 42.95284 13696; 43.0875 26800; 43.30971 26158728; 43.31632 7603; 43.34454 97014; 43.77284 28347; 43.85383 12046; 43.8766 47206; 44.27873 3081208; 44.53868 5180369; 44.66213 4439; 44.80722 133734; 44.88524 22911; 45.34661 72316; 45.73609 1336238; 45.75375 143587; 45.78493 41132; 45.96395 21818097; 46.11208 7872; 46.13754 43035; 46.29667 3240537; 46.71302 9144; 46.82526 5633815; 46.87069 8304; 46.90143 12410; 47.01961 6387; 47.04765 5275; 47.21144 50646; 47.21172 21700; 47.27431 8128; 47.42732 6886034; 47.71636 54785; 47.76569 4561; 47.97441 55150; 48.26888 869635; 48.39857 4700200; 48.55939 28520395; 48.56023 22525; 48.76765 1571092; 48.76778 58212; 48.98391 77868; 49.09726 40187; 49.34149 29138; 49.38508 9053; 49.75567 723261; 49.76513 7796278; 49.77668 73193; 49.83056 3274701; 50.01611 6721; 50.02465 1616; 50.17178 8630; 50.2028 1772380; 50.40711 5593; 50.56686 1602; 50.85301 74787; 50.86445 1116481; 51.05678 71181; 51.08897 29209; 51.09115 8885; 51.20536 2930; 51.41156 3961; 51.5081 5884062; 51.98086 26790; 52.09586 11251; 52.10545 19996; 52.1252 2335; 52.28593 3049120; 52.35624 555179; 52.58365 316345; 52.67586 302783; 52.69997 60825; 52.83441 34557; 52.83959 817894; 52.85157 82716; 53.35201 3290859; 53.72201 24531; 53.83263 2457269; 54.18724 13517076; 54.23634 2401273; 54.84443 7662; 54.90583 8102952; 54.93358 6097143; 55.23281 17221; 55.5917 25804; 55.60477 7802584; 55.76331 54061; 55.78188 3905109; 55.85561 9808; 55.92588 36083; 56.03609 43813; 56.26152 1331572; 56.38269 3522166; 56.39053 8075; 56.77521 9496954; 56.80952 177169; 56.87442 5730; 56.90055 120970; 56.97452 1520; 57.09827 174997; 57.28969 886386; 57.341 9263; 57.50179 277269; 57.517 33687; 57.56723 64376; 58.37438 1679024; 58.40546 14511; 58.4401 21562; 58.47783 1528837; 58.62164 6068228; 58.65479 49825; 59.14447 8711370; 59.2633 1221; 59.89244 72408; 59.90559 21722; 60.0112 129461; 60.20382 7413; 60.40152 29468; 60.46149 31758; 60.47074 17567066; 60.53858 135013; 60.82162 7395150; 61.55423 1073; 61.58028 5571383; 61.66452 37448; 61.82758 49877; 61.90901 2173; 62.23986 889512; 62.38204 1251259; 62.50864 38037; 63.18599 7510453; 63.28713 20787; 63.39601 3790092; 63.41999 113099; 63.68324 70930; 63.72708 168735; 63.97466 24402; 64.10033 61828; 64.57088 19197181; 64.57658 23944; 64.59872 51517; 64.75785 43881; 64.80604 25120; 65.33178 20080; 65.38689 299; 65.46008 9416; 65.48361 178418; 65.51389 866871; 65.8741 29290; 66.01948 93713; 66.33556 9909269; 66.48626 44800; 66.72414 1261947; 66.86187 3790185; 67.01505 41730; 67.05738 26616; 67.47153 1518; 67.84186 1242038; 67.96595 3002487; 68.40447 1447488; 68.64757 38105; 68.69541 43571; 69.37105 3895641; 69.41578 27804629; 69.41676 1564506; 69.55134 564343; 69.83693 12010; 69.85222 25025; 69.91615 1469263; 70.29924 49960; 70.66571 29093; 70.7826 144208; 70.81941 7935; 70.98576 4129698; 71.02373 1203259; 71.16829 19270; 71.1795 45265; 71.18137 27528; 71.37492 68170; 71.41602 49921; 71.64808 193422; 71.94374 1144182; 71.99108 8978350; 72.23021 21483; 72.36704 569854; 72.79152 90173; 73.16826 55542; 73.3442 58572; 73.40476 1102991; 73.48644 114425; 73.58742 40409; 73.72239 23655; 74.02103 886877; 74.264 8298; 74.30021 57234; 74.37025 6914738; 74.51768 911248; 74.66688 2287; 75.04135 3608836; 75.08092 9609; 75.15511 851994; 75.18104 1138; 75.338 69663; 75.61757 2163772; 75.97076 713; 76.26923 3885301; 76.38973 1182343; 76.90432 9527132; 77.03534 33999; 77.09513 1756915; 77.27676 28610; 77.5706 1973550; 77.63976 3975; 77.69512 4414341; 77.70941 685581; 77.71506 3800219; 77.88129 5499483; 78.67982 1599510; 78.79617 4001455; 78.80474 6984856; 79.19027 7584816; 79.23172 3857717; 79.42318 3955; 79.70901 445237; 79.72354 264610; 79.75517 573; 79.96252 893540; 80.33732 70627; 80.3973 877285; 80.57286 27750; 80.66067 4742078; 80.85374 26808; 81.28616 29395; 81.74648 65033; 82.16202 9043383; 82.41228 4967127; 82.47646 4814407; 82.83978 2614; 82.88251 3974; 82.95177 37177; 82.98859 189170; 83.04482 2028587; 83.05118 1097467; 83.55252 1350117; 83.70458 4398168; 84.11407 3068367; 84.12442 986678; 84.24003 1477393; 84.5632 7209; 84.57708 5486; 84.64703 60121; 84.98204 2601; 85.09229 6366; 85.09299 25778898; 85.20246 2407308; 85.68647 1547337; 85.71946 27925; 86.15203 7077; 86.44302 1612347; 86.47273 68967; 86.77584 1511810; 86.88346 61007; 86.97711 33446; 87.07417 1884125; 87.10917 91997; 87.24435 53750; 87.52355 2897172; 87.53925 32843; 87.80247 410; 88.00433 19657; 88.42993 42912; 88.65884 552022; 88.96374 61688; 89.02495 28924; 89.07778 1249931; 89.24285 9382136; 89.40116 1082495; 89.41167 15995935; 89.65668 37402; 89.81752 179913; 89.82573 1179082; 90.08277 40211; 90.31902 79502; 90.55299 4149861; 90.56584 6747521; 90.58807 67978; 90.68494 905; 90.69751 1319221; 90.75255 1250; 90.98747 21047; 91.01679 1157419; 91.12786 691985; 91.31636 7762909; 91.35072 23133470; 91.9573 8153582; 92.42985 25007; 92.46536 79571; 92.53156 26286; 92.60335 3961183; 92.66819 5719810; 92.70442 27232113; 93.18475 2480208; 93.35322 71455; 93.57216 1053; 94.0071 54386; 94.00864 4950; 94.02867 7617892; 94.26791 1092762; 94.50724 52357; 95.00254 72041; 95.18134 6689009; 95.20103 616803; 95.27867 1888043; 95.37326 44727; 95.43338 42888; 95.63428 36192; 95.64731 21351; 95.7053 3773445; 95.74706 1003934; 96.10397 95202; 96.21086 201764; 96.44981 71622; 96.47364 27461; 96.59154 15418; 96.59467 5580804; 96.8239 172791; 96.84797 6359; 97.22836 9067; 97.26321 16891; 97.31426 7728067; 97.44671 3189; 97.54247 49952; 97.62928 13114; 97.7643 61625; 97.82698 47247; 97.9157 162656; 98.02069 49890; 98.29734 17217; 98.57966 1172454; 98.60184 118360; 98.67921 970564; 98.766 71807; 98.95329 4931148; 98.96655 1632750; 99.45662 69521; 99.53902 6194; 99.60434 1350448; 99.63361 15961; 99.8019 8602669; 100.32302 13727072; 100.49795 3340401; 100.92251 7007278; 100.9252 7106; 101.11885 3318; 101.23835 73309; 101.35645 915967; 101.36874 21973; 101.889 266658; 101.97627 6180; 102.07244 1857; 102.16642 47602; 102.26567 7019; 102.58078 6323856; 102.60979 798315; 103.07579 5382211; 103.132 21467; 103.51355 130778; 103.56171 31998; 104.13846 42856; 104.7487 74270; 104.95371 2648566; 105.09313 74981; 105.12433 29544515; 105.32563 120333; 105.37005 80157; 105.84086 15774486; 105.91459 4922546; 106.00368 28986; 106.06401 49185; 106.19378 22507622; 106.424 313; 106.44566 7211132; 106.61931 2891; 106.78068 28513; 107.02975 28753194; 107.12352 24096; 107.18568 195537; 107.38257 11610; 107.7973 1086624; 107.93491 9652008; 108.08296 68126; 108.10867 79385; 108.11217 187562; 108.28661 32686; 108.35431 14441; 108.5215 189917; 108.5256 4603944; 108.73317 47087; 109.32194 38058; 109.35481 670; 109.48805 234278; 109.65748 31969; 109.7939 47133; 109.83541 14967; 110.00514 1122692; 110.09989 34446; 110.2437 1770819; 110.30401 11986; 110.38798 338136; 110.64855 68642; 110.72771 68769; 111.36542 13045; 111.43975 4452; 111.8378 49834; 111.92241 68580; 112.02125 60239; 112.11285 100602; 112.6545 47616; 112.67047 65842; 112.67342 2193597; 112.75398 132225; 112.84426 1288739; 113.25061 25760; 113.34624 156955; 113.69655 2948977; 113.73829 146825; 113.85616 51381; 113.93852 3277; 114.04205 22005; 114.10197 68505; 114.36432 5744; 114.53705 3700208; 114.61279 169541; 114.76828 168147; 115.16479 9350; 115.23219 57549; 115.70637 2237021; 115.79526 599778; 115.87837 25326; 116.10836 24682; 116.11549 107106; 116.13305 6731748; 116.25379 999951; 116.27791 21240; 116.29816 22368; 116.43388 1137064; 116.45883 5383; 116.58722 23857; 116.72593 6621; 116.94299 1199069; 117.08515 1687; 117.25789 1234720; 117.51665 47626; 117.68394 2697358; 117.70443 24197; 117.77611 918772; 117.80963 74505; 117.92737 3422305; 118.02345 452646; 118.12718 26853; 118.15284 70046; 118.16337 1974093; 118.31277 23999; 118.39036 4085226; 118.50302 7071; 118.74295 60403; 118.78358 75498; 118.9623 22200; 119.01854 5610; 119.01951 3972188; 119.16029 79375; 119.30689 4553275; 119.47743 23960; 119.58819 843889; 119.68667 73449; 119.69965 776682; 119.93608 8767165; 120.0929 82600; 120.21722 37740; 120.25921 67809; 120.51185 394803; 120.51436 3959; 120.53854 21058; 120.85862 46451; 120.95564 22923; 121.26943 300022; 121.37618 465717; 121.72136 7812; 121.93834 75380; 121.94652 30522; 121.98751 2254; 122.40536 5411061; 122.43661 29078; 122.56168 78521; 122.63239 41053; 122.95918 20348975; 122.97303 303100; 123.49769 259661; 123.64916 4872; 123.86902 27726913; 123.96228 841593; 124.20653 9887; 124.21217 11714; 124.61278 1673725; 124.70309 1950995; 124.90836 3585; 124.99115 4443908; 125.21417 28099; 125.23407 28066; 125.25066 774253; 125.37269 23280; 125.50715 5728140; 125.52279 1619364; 125.54282 333; 125.95077 38692; 126.08128 26510; 126.0958 22824820; 126.29876 19566; 126.40789 3884; 126.44742 19510; 126.69443 21851514; 127.06803 1480548; 127.0779 3072851; 127.1555 33252; 127.24361 814225; 127.30622 9850203; 127.50907 24949; 127.55404 51175; 127.6522 5686969; 127.70853 19874; 128.39678 79623; 128.76771 22691; 128.82463 207; 129.79043 32705; 129.79592 1442862; 130.61877 4865738; 130.69421 1301257; 130.69543 53576; 131.00146 28466; 131.38753 79101; 131.53275 19427; 131.75543 73946; 132.04918 4554; 132.07038 4079740; 132.17404 858392; 132.49521 25912578; 132.52546 2363; 132.53595 1087907; 132.63026 3592; 132.63069 24574; 132.74993 53932; 132.81192 29911; 132.91282 164660; 133.15311 1662090; 133.20385 1984608; 133.2323 9505; 133.72238 18357479; 133.89219 43375; 133.94794 78356; 134.31101 20964; 134.44815 1530773; 134.44901 755798; 134.84897 17189; 134.85994 100536; 135.09266 1827603; 135.157 48152; 135.23117 4948204; 135.44798 116460; 135.7256 54385; 135.77113 7949930; 135.85774 25080; 135.91411 65516; 135.93847 1336; 136.0149 1959241; 136.15874 4384734; 136.21279 4681006; 136.22222 27157; 136.49408 134137; 136.52623 13813; 136.9444 34303; 137.1913 52879; 137.652 40987; 137.87514 33866; 138.31259 11504; 138.54254 718; 138.75272 6162; 138.97118 1598802; 139.12844 57667; 139.26959 237463; 139.32869 57509; 139.37126 19923; 140.38141 2947917; 140.41189 9276570; 140.44199 26744; 140.47833 60083; 140.66415 192354; 140.82078 47493; 140.86824 406; 141.15998 1376022; 141.34098 17701; 141.48436 51739; 141.62298 32071; 141.70387 17115; 141.9735 25928; 142.0181 25476; 142.02336 981726; 142.38414 19623; 142.50687 179941; 142.54903 3889383; 142.56093 346; 142.64575 161306; 142.71429 2501; 142.86421 11572; 142.94396 163403; 142.96917 4494446; 143.9926 1871519; 144.11774 12558234; 144.12537 7433; 144.93361 3291660; 145.22966 4378917; 145.30862 3532566; 145.40561 1781137; 145.54665 399481; 145.71834 87174; 146.63972 3632667; 146.71163 193418; 146.77609 14882; 147.06355 46936; 147.21893 474752; 147.94183 7956484; 147.96373 11224; 147.96374 5310135; 148.28571 21671; 148.44704 1215597; 148.45665 1097007; 148.73444 3934; 148.75971 4703469; 149.08386 69765; 149.23467 33984; 149.33912 1824379; 149.39539 1767068; 149.55676 26651; 149.71289 1946793; 149.90933 584706; 150.14896 1631380; 150.41636 3366; 150.47013 2345; 150.4871 242232; 151.70829 9862; 151.90099 6701; 151.9887 24587; 152.08552 366503; 152.20577 7331; 152.35763 138251; 152.84682 15538; 153.0589 2941; 153.13 8787220; 153.13153 729766; 153.31618 141646; 153.44171 41575; 153.61972 3088; 153.77116 121711; 153.94313 883576; 154.52486 1060099; 154.56533 1041791; 154.59934 27221; 154.77341 3729758; 154.86886 1543329; 155.17891 35908; 155.44859 29405; 155.60675 81489; 156.00011 34816; 156.07746 12443; 156.1094 2226839; 156.3033 18117; 156.50799 70935; 157.05422 74985; 157.36027 52350; 157.37334 186444; 157.4171 29398; 157.70838 31380; 157.92786 111444; 157.97809 1478654; 158.03688 77115; 158.68998 45398; 158.77073 78220; 158.78898 1485; 158.80996 8290; 158.93967 1760479; 159.17578 57520; 159.22772 3771540; 159.56971 4099674; 159.87295 19563449; 159.88995 2378707; 159.9363 71271; 159.99141 8726; 160.14612 7940; 160.45176 1588706; 160.63017 378147; 160.72276 1550638; 160.83956 2841442; 161.53614 1017496; 161.70846 868493; 161.76153 371028; 161.83355 4630755; 162.01391 52530; 162.10579 1075390; 162.55222 31259; 162.77687 2810365; 162.86098 3038769; 162.97084 1103737; 163.55849 68190; 163.63747 1991; 163.65839 3675360; 163.68496 700127; 163.70232 553366; 163.75168 487626; 163.79879 47253; 163.83395 33087; 164.11313 41191; 164.1327 361604; 164.22043 37620; 164.60349 49493; 165.26012 28859; 165.36747 47401; 165.54751 1056598; 165.61963 1130; 165.6848 60654; 165.87928 7327113; 166.3591 7170; 166.38112 43464; 166.40088 1096874; 166.4913 343776; 166.656 318146; 166.73138 4444167; 166.75809 6838445; 166.92139 8131; 166.94764 168452; 167.11909 23258; 167.13294 70932; 167.34246 11617678; 167.57047 9108; 167.70572 153163; 167.72273 50646; 167.90786 24747; 168.07885 38633; 168.18521 4557; 168.33891 14387; 168.3746 30067; 168.38609 23690; 168.51991 45238; 168.54008 12327; 168.61286 31840; 168.91281 1085654; 169.08283 118; 169.09437 285360; 169.18985 9599; 169.36211 5167561; 169.43602 33452; 169.44967 3968; 169.57178 8730778; 169.60106 74727; 169.62143 4671; 169.98758 26069666; 170.45758 38987; 171.14242 173215; 171.42548 3903; 171.47427 45115; 171.56615 48551; 171.62976 13849; 171.9973 6129; 172.14344 5848252; 172.34556 63774; 172.35672 17849; 172.42423 6799249; 172.43541 1810411; 172.99561 113324; 173.09008 55122; 173.11721 1358567; 173.47697 713875; 173.51604 69107; 173.62791 5837956; 173.651 33034; 173.80556 19516; 173.82254 33921; 174.06921 6499; 174.09281 24269; 174.13634 35741; 174.24774 79298; 174.38501 5323; 174.52903 1261589; 174.6751 1017071; 174.85316 25127; 174.8564 952473; 174.88112 207985; 174.8902 1190907; 174.99285 70625; 175.17214 30502; 175.22906 1484953; 175.33297 8955710; 175.42552 418959; 175.45442 72199; 175.46488 20026; 175.60348 36988; 176.03454 89646; 176.05037 7222; 176.1797 59968; 176.5144 18350; 176.57112 128389; 176.59125 6189120; 176.90509 2199; 176.9385 52842; 177.23713 1379; 177.31692 9382569; 177.45869 72455; 177.46443 20782; 177.51097 675159; 177.87467 25803; 177.98701 22234; 178.1953 1845893; 178.21497 145619; 178.30989 23973; 178.55319 78674; 179.10304 61626; 179.50242 255246; 179.78601 39341; 179.85724 59276; 180.17595 51296; 180.25379 2334669; 180.67218 159236; 180.79248 322905; 181.09016 4733423; 181.18598 75455; 181.29944 1174673; 181.47695 1524019; 181.619 46104; 182.13343 63638; 182.17536 189711; 182.20493 43988; 182.30415 4974224; 182.36402 40893; 182.47807 2215; 183.23414 8697353; 183.28778 2138280; 183.30969 3660801; 183.39715 510312; 183.41205 1438015; 183.48354 7011781; 183.60943 3360541; 184.22382 59298; 184.32827 2213649; 184.45672 70128; 184.79828 37584; 185.12561 3799; 185.12611 66124; 185.14313 24846; 185.18149 47955; 185.28735 1074904; 185.31382 12802; 185.38408 60450; 185.43059 34715; 185.48925 28218; 185.51412 67606; 185.6378 11811; 185.73214 253910; 185.80429 2304631; 185.8051 1756; 186.08429 3352; 186.09035 71539; 186.16932 731841; 187.17681 29516; 187.30377 3563; 187.42987 16550; 187.51173 130307; 187.65035 29641; 187.71736 51304; 187.72118 894223; 187.83317 42489; 187.86822 9626588; 187.92048 75246; 188.06297 2450300; 188.36651 67769; 189.15953 22915; 189.33168 4897139; 189.33613 8192813; 189.36449 57075; 189.44683 7156996; 189.54843 1246544; 189.68681 75105; 189.82369 47185; 189.85471 58784; 190.26167 21902; 190.42707 28112; 190.68825 66584; 190.95524 42559; 191.38467 18722; 191.55717 48444; 192.06747 17470; 192.10144 70532; 192.14461 4537; 192.53051 672482; 192.64319 332339; 192.74832 10350794; 192.74882 24026; 192.94675 29830; 193.02623 8234; 193.05369 27651; 193.30138 747290; 193.98449 34879; 194.20966 15638777; 194.25209 4975850; 194.29172 9077574; 194.41273 988; 194.45753 691043; 194.74202 19911; 194.86792 3987430; 194.94763 47264; 195.15301 907832; 195.44713 518950; 195.56464 491417; 195.88996 8851331; 195.9315 1268236; 196.04656 64197; 196.4795 6253; 196.50841 39256; 196.55927 74278; 196.55994 1093571; 196.70966 9152; 197.10538 4411; 197.26829 2367546; 197.32846 52200; 197.4044 1390299; 197.47499 20276534; 197.48487 24753; 197.54282 157224; 197.54567 625067; 197.54719 34278; 197.70941 1620206; 198.05455 21634055; 198.49746 44350; 198.53669 7974113; 198.85567 36579; 198.95836 7923562; 199.35387 59420; 199.77101 3346185; 199.92849 3248; 199.95252 7052; 200.4198 60114; 200.48351 2976; 200.59789 12230; 200.76223 7074609; 201.0604 49036; 201.19579 17160; 201.4629 64532; 201.61917 5900762; 201.72483 4917; 201.74233 1626; 202.14243 1270832; 202.31992 3993931; 202.5784 1334927; 202.72546 21958; 203.19896 16518; 203.21333 46983; 203.5676 59991; 203.84952 35559; 203.93528 55160; 204.17448 6909430; 204.19071 97122; 204.20536 74199; 204.24312 14009; 204.3729 4260821; 204.54905 56590; 204.57934 110533; 204.76187 266919; 204.77036 35834; 205.13751 508386; 205.60314 195433; 205.94361 34131; 206.29411 26164; 206.31143 752; 206.56457 10027; 206.6486 42595; 207.16678 57650; 207.41163 20175; 207.51238 48864; 207.80075 44339; 207.9045 421; 207.94666 1398987; 208.12948 11445; 208.19317 242189; 208.29673 2768078; 208.30556 3312356; 208.38631 1773702; 208.53694 46289; 208.79543 666057; 208.85909 29517; 209.07703 4075623; 209.18629 1101; 209.76644 7040074; 209.80974 4918; 210.00811 9307; 210.1893 73606; 210.28505 1121001; 210.32882 3496873; 210.60458 26590; 210.63408 1463215; 210.71731 1159107; 210.90208 11893; 210.95521 2885022; 211.14095 4688811; 211.16654 3740845; 211.28612 9893950; 211.32902 55672; 211.42863 215; 211.48391 36847; 211.8683 28864; 212.07772 3718117; 212.84261 12662443; 213.08208 34410; 213.3091 167627; 213.56593 24204; 213.70652 1573757; 214.16612 4032867; 214.50615 4401352; 214.81318 2621; 215.14353 34785; 215.23309 1824348; 215.56077 5588; 215.56735 7828; 215.58023 1850; 215.9322 1300981; 215.97526 163388; 216.04167 24343; 216.31918 271122; 216.53406 20384; 216.70703 1556366; 216.86496 76095; 217.05032 271383; 217.10908 178930; 217.15379 153587; 217.22568 193274; 217.40129 1195554; 217.54898 20349; 217.65235 24594; 217.65888 61015; 217.84669 8610; 218.06207 12387; 218.30293 5463; 218.36125 2363217; 218.36948 112126; 218.38507 8262; 218.4145 109065; 218.66357 74850; 218.86615 9658; 219.08324 83004; 219.60382 58225; 219.65459 26205545; 219.93714 1844; 219.9683 5999961; 220.13454 6080; 220.40708 26640; 220.47719 4633; 220.60206 483084; 220.76781 1041921; 220.83354 23753; 220.83415 28532; 221.2817 16572145; 221.67969 245058; 221.9587 41670; 222.07861 32106; 222.07979 74216; 222.33785 26631; 222.36411 580299; 222.39193 28934; 222.62081 20000; 222.62115 49651; 223.14963 3426328; 223.32197 46568; 223.34752 66164; 223.68808 327920; 223.86381 2635363; 223.98491 329117; 224.88386 72035; 224.91039 479639; 225.03992 3398; 225.07439 51252; 225.10699 43801; 225.44356 53334; 225.75273 78324; 225.84048 125739; 226.02492 1988713; 226.09062 49894; 226.23128 390808; 226.62413 8493; 227.15983 255826; 227.73314 2849252; 227.75065 135140; 227.88522 13150; 228.35756 69599; 228.55003 31822; 229.00489 28106; 229.10116 5008; 229.1846 2918770; 229.30695 18261563; 229.40836 1533133; 229.48718 27562589; 229.59616 10342; 229.70845 40762; 229.87801 1074762; 230.15127 70813; 230.35762 619; 230.84598 36469; 231.01686 2156910; 231.1921 5816; 231.20238 525202; 231.21933 390; 231.259 29172; 231.43712 27805; 231.69857 8123264; 231.84695 48929; 231.88247 70704; 232.1482 24600; 232.19147 337466; 232.21407 29410; 232.24456 3208121; 232.52552 34852; 232.66193 23029; 232.69007 24135116; 232.96857 35934; 233.66738 31437; 234.11433 54324; 234.28086 3744646; 234.41014 664066; 234.60774 1650807; 234.6333 3339152; 234.71854 176575; 234.7595 65898; 234.92861 26183132; 234.98701 1187222; 235.02377 39179; 235.12769 3710545; 235.2902 29452; 235.36665 397269; 236.08925 6787798; 236.1784 106984; 236.18527 8579; 236.47362 888197; 236.61963 9155; 236.65802 18757829; 236.89688 902; 236.91577 346; 237.412 1190539; 237.49824 2516; 237.61535 931673; 237.63747 34337; 237.69142 2327048; 237.84849 816002; 237.86685 5060; 238.06763 2460257; 238.14143 13692; 238.29948 95178; 238.51817 56281; 238.57175 529575; 238.59781 10844226; 238.64962 76982; 238.74668 6386440; 238.81274 9281323; 238.99013 30792; 239.11017 69955; 239.17075 131288; 239.17492 1062456; 239.23506 51063; 239.37914 170786; 239.63523 15485; 239.77022 5582293; 239.83086 5738; 239.98342 1273639; 240.14469 1813106; 240.17654 5871845; 240.41721 20972; 240.69618 4116803; 241.07516 940; 241.2292 125496; 241.50008 2714; 241.66191 9000; 241.82183 7018919; 241.98474 26132; 242.03237 6118; 242.04689 30932; 242.10175 50980; 242.12132 9163281; 242.13021 191026; 242.15783 4900; 242.24084 892; 242.24447 7846467; 242.47629 1668607; 242.48922 85818; 242.50925 5457740; 242.62945 52928; 242.91928 9013; 243.30427 4038502; 243.54632 615; 243.5538 3040; 243.57562 69254; 243.60956 60953; 243.78608 2606; 243.94097 73970; 244.01896 1584; 244.12444 3465897; 244.37836 28494; 244.51387 29088; 244.71803 3197929; 245.05425 72699; 245.30379 537; 245.48744 38814; 245.62577 5184; 245.6704 156571; 245.70191 116653; 245.81763 5512075; 245.82328 222818; 245.92684 1945987; 245.9351 1773527; 246.09386 21238; 246.16832 2202; 246.53158 984054; 246.80984 604; 246.81421 7218; 246.89209 1672517; 246.91728 326728; 247.04138 51592; 247.20204 4864; 247.20741 45499; 247.36248 118404; 247.54767 1640937; 247.63014 153648; 247.79126 24987; 248.19161 6079037; 248.20481 38911; 248.22158 5626580; 248.32328 146815; 248.60429 7206634; 249.15502 79950; 249.46115 862; 249.50744 8648005; 249.56265 7705; 249.73919 8734; 249.74314 2485; 249.86892 1441560; 249.99092 277095; 250.13162 7378358; 250.31267 7534; 250.79496 94925; 250.97375 67528; 250.97547 56384; 251.1076 1623; 251.45783 8691819; 251.47531 49252; 251.62362 75372; 252.47345 193220; 252.69899 6633201; 252.70983 3416036; 252.75802 9834; 252.83309 29311; 252.98768 72542; 253.17414 3030683; 253.2548 121757; 253.35111 1570352; 254.10401 2984030; 254.25455 3838622; 254.31115 7599; 254.4541 27569; 254.71882 1697282; 254.92895 1667794; 254.95702 35912; 255.13354 739558; 255.31728 9404881; 255.60242 10780; 255.82491 1366537; 256.01077 624134; 256.02047 42047; 256.03616 94532; 256.07884 273349; 256.10539 6214; 256.1719 47689; 256.26856 5675330; 256.30427 6157384; 256.35195 3990199; 256.48485 64729; 256.72277 69408; 256.75551 3789; 256.76844 24288; 256.78896 16235; 256.88802 2251096; 257.1365 9200792; 257.28272 9420255; 257.73706 1234759; 257.80892 30115; 257.99943 39973; 258.02167 2414; 258.03794 72775; 258.04323 195842; 258.608 11446; 259.55286 899; 259.83684 6898; 259.85123 470083; 259.94858 1383406; 260.04663 20394; 260.26865 7821; 260.41339 28661; 260.54528 78734; 260.66475 76482; 260.86851 395560; 261.00079 4204; 261.06067 57215; 261.21448 17602281; 261.26163 21898; 261.27183 66309; 261.28908 794243; 261.41991 74179; 261.48771 28704; 261.90731 184486; 261.94234 33348; 261.99215 840807; 262.00665 180520; 262.11461 61831; 262.34589 101630; 262.8247 613107; 262.87498 16967; 263.04482 621647; 263.22385 5967474; 263.23576 21789; 263.42041 8335149; 263.64673 55888; 263.66514 7724; 263.77492 2801559; 263.79199 210921; 263.91814 45399; 264.14735 1619462; 264.21992 40251; 264.46394 29346; 264.531 24092483; 264.63933 1269618; 264.69059 3690661; 264.77822 8120; 264.79435 257818; 264.88242 1823977; 264.89077 2536927; 265.03679 1939624; 265.27764 1376463; 265.33943 88638; 265.3845 17108; 265.65722 3588754; 265.91792 12048; 266.2409 134804; 266.51496 23820; 266.53251 6907; 266.65127 1490289; 266.66196 51047; 266.74678 9830; 266.97072 127903; 267.05707 24759; 267.32747 63803; 267.47674 190781; 267.88169 4462642; 268.02477 1182616; 268.04074 995929; 268.05178 471415; 268.39452 3074; 268.52336 181838; 268.54201 703636; 268.91093 597057; 268.94664 22423; 269.14478 4919384; 269.22596 7909; 269.44158 24520; 269.54914 3095410; 269.95154 3801915; 270.42467 22216; 270.5724 2463; 270.58481 29464; 270.61089 65126; 271.1349 4318231; 271.16506 1974678; 271.47978 169860; 271.64836 8779; 271.66573 34656; 271.69578 17998711; 271.90438 697945; 271.99796 21678; 272.29947 932804; 272.31382 2377782; 272.48338 27082; 272.71468 938785; 272.71707 9741283; 272.94396 1965329; 273.12624 7333108; 273.38707 25422; 273.45678 3759098; 273.48237 7538; 273.57184 69518; 273.78479 31115; 273.85681 146637; 273.87561 25075818; 274.62105 13836; 274.91044 1264964; 275.10602 21948; 275.1855 8876; 275.84663 64848; 276.01127 12163; 276.35981 78707; 276.64426 2853098; 277.16905 1842414; 277.2241 13075874; 277.51034 43765; 278.5144 4460440; 278.62876 6914; 279.12877 2672; 279.16009 9110; 279.18516 1185247; 279.2803 27259; 279.33526 4192945; 279.42578 67531; 279.4559 1750317; 279.52962 2604869; 279.72622 72750; 280.06587 1063161; 280.38498 55888; 280.40905 3726; 280.69384 1174322; 280.78321 31569; 280.8182 8266140; 280.81913 8358434; 281.05273 1072796; 281.2856 38341; 281.78481 16854; 281.80742 6506741; 282.23038 455181; 282.35166 1475746; 282.76542 8120; 282.79078 26187; 282.89275 3101977; 282.89584 173; 283.00376 3908; 283.01149 711661; 283.38839 36253; 283.52829 679013; 283.80673 53083; 283.81197 1282450; 284.20615 3998196; 284.24079 8447; 284.37714 74218; 284.41599 55070; 284.48134 8121; 284.74096 3237741; 284.79691 1483144; 285.25624 76098; 285.42163 20870; 285.51441 7349; 285.6291 244006; 285.6459 80665; 286.02321 24751; 286.18807 1824148; 286.354 37244; 286.59627 1288331; 286.93855 7434; 287.04422 32640; 287.14594 14040961; 287.73124 43063; 287.77762 109035; 287.83638 78247; 287.94942 59741; 288.02432 4420; 288.23659 39873; 288.26207 8802; 288.29754 159896; 288.57313 6949; 288.79435 8847475; 289.25352 826; 289.85992 26824; 290.23887 2760; 290.3085 14583; 290.44938 27259; 290.7766 809217; 290.86021 352033; 290.87271 52428; 291.09005 231148; 291.68134 19746014; 291.8176 601961; 291.87738 165488; 291.88551 1381731; 292.13251 23915; 292.1872 487875; 292.39215 9881; 292.40146 62197; 292.5557 164131; 292.67138 1504378; 292.71744 38804; 292.78355 26080; 292.89383 6161181; 293.37951 53725; 293.39692 2734997; 293.56663 21529; 293.63074 655816; 293.69753 4889816; 293.98997 29716269; 294.00261 32008; 294.43444 7340365; 294.44592 1649795; 294.72673 27523; 295.05992 537902; 295.26684 10422963; 295.42114 28050; 295.45784 1210118; 295.57359 948565; 295.71874 27871; 295.82084 53624; 295.89669 70167; 296.31221 4183687; 296.54353 27467; 296.93395 34704; 297.05453 72962; 297.11841 20595; 297.59509 6065303; 297.78041 29645; 298.1683 615411; 298.41882 6389829; 298.57336 3840413; 298.68984 1669930; 298.85312 5505; 299.01758 55164; 299.25627 7850; 299.29301 905512; 299.40371 110066; 299.6824 726373; 300.10466 9522468; 300.23503 967138; 300.34438 2074535; 300.92082 3624269; 301.07535 72819; 301.73718 26675; 302.17713 1489512; 302.40458 4386597; 302.76509 1698059; 302.84531 145875; 302.93276 176574; 303.01962 40377; 303.16802 16969; 303.20284 53; 303.22275 766313; 303.54245 36825; 303.65702 145429; 304.40161 51840; 304.6483 15261; 304.99145 4772529; 305.03871 7351; 305.25874 20240; 305.64525 956105; 305.98728 587353; 305.99983 1313801; 306.07782 59962; 306.15537 13558; 306.62184 4170265; 306.71187 14258; 307.18051 28659; 307.34483 728768; 307.43457 3887804; 307.47645 26101; 307.49271 4583; 307.56208 71174; 307.64647 67286; 308.19433 3229950; 308.21315 19623; 308.36303 13039971; 308.46655 2440; 308.56553 1278087; 308.58748 23439; 308.5964 4655338; 308.63472 8618545; 308.72291 1953; 308.83338 1701; 309.03773 75880; 309.14391 1738728; 309.71562 2311544; 309.74268 12888; 310.21029 74250; 310.37646 692015; 310.97288 5116; 311.45835 627598; 311.55469 1463886; 312.39457 1947167; 312.41608 8609; 312.57714 8088; 312.65574 955529; 312.74935 21960; 313.26366 65793; 313.27751 97020; 313.69054 4341973; 313.9426 6843; 314.76126 8082; 314.88592 2328; 315.12342 128720; 315.42728 1325884; 316.11656 4687204; 316.13774 67772; 316.20137 12089; 316.22552 65903; 316.35531 569486; 316.45032 171627; 316.56089 4425; 316.58748 8056; 316.60656 24683943; 316.76788 21792; 316.90363 60820; 316.96724 14631; 317.08428 1317140; 317.23682 20962; 317.26953 883134; 317.6338 42621; 317.83275 113007; 317.98907 3594058; 318.11955 9729998; 318.27137 968772; 318.47862 372; 318.84526 28597; 318.93869 1344442; 318.94713 7514760; 319.14945 1037613; 319.54186 2409; 319.78263 5929; 319.93819 31274; 319.97878 1784049; 320.20627 75397; 320.27736 4471283; 320.38096 31224; 320.48622 875481; 320.51227 6350785; 320.67699 1622767; 320.95509 3351033; 320.96553 67706; 321.16222 40161; 321.18937 56435; 321.21881 49717; 321.27609 1306188; 321.36856 5553229; 321.43604 9211; 321.48813 32644; 321.56119 1160381; 322.25518 895560; 322.39573 1127554; 322.64664 6875; 322.80092 451; 322.96604 37575; 322.97856 500232; 323.00614 425; 323.08263 477343; 323.17987 34446; 323.25866 23129; 323.39917 27153; 323.45977 7771; 323.63411 61061; 323.82373 4848153; 323.93526 20529; 323.99831 28523; 324.13465 32465; 324.58565 638324; 324.62691 11193487; 324.638 1898572; 324.65183 1494; 324.94956 1962111; 324.97065 203227; 325.06717 915623; 325.10774 35757; 325.132 1934158; 325.15711 60713; 325.17107 4366303; 325.19413 5275; 325.24226 2616505; 325.34807 1956755; 325.39088 1847897; 325.93456 406491; 325.98134 36884; 326.17754 133845; 326.31238 3300377; 326.39589 7856; 327.4611 513109; 327.55573 19439; 327.57214 53066; 327.95366 8180941; 327.98011 8262; 327.98979 35116; 328.14976 3840241; 328.23607 27451; 328.3922 44166; 328.55228 561; 328.56205 6188761; 328.79242 6010071; 328.89394 19871; 329.01807 26276255; 329.04713 29150; 329.12864 8832; 329.16081 68143; 329.18951 2121; 329.33307 4744188; 329.41419 68510; 329.53193 9474879; 329.6508 25107; 329.88378 2922; 330.07216 344081; 330.21599 7895456; 330.24307 68641; 330.3649 1878556; 331.04398 1859; 331.09965 1541827; 331.26101 7579336; 331.45631 2891122; 331.47508 3409; 331.49376 26141; 331.52438 5851; 331.63465 91; 331.67962 67925; 331.84572 44700; 332.19265 68241; 332.41061 2779; 332.52414 974101; 332.74594 2208437; 332.81337 29290; 332.9568 425175; 333.41871 6635851; 333.43398 28614181; 334.05724 177504; 334.38048 26946; 334.42278 62206; 334.56861 21989; 334.65018 56075; 334.72634 8813382; 334.88302 1397070; 334.95013 4961897; 334.96553 1679154; 335.18348 49893; 335.4404 3859971; 335.44878 75308; 335.67347 65563; 336.04592 1354680; 336.09159 26128; 336.09624 65139; 336.11617 1338344; 336.25442 14318; 336.41351 60861; 336.63071 24240; 337.03558 8807748; 337.26876 28496; 337.50185 25947887; 338.06053 2702563; 338.25668 60293; 338.2776 48500; 338.44604 26601; 338.66302 4087382; 338.79458 62173; 338.84274 8766730; 338.89469 65054; 339.23649 35221; 339.34844 27218; 339.37217 23577; 340.04344 79164; 340.13009 2824781; 340.23678 1686573; 340.44857 5384860; 340.5152 21025; 340.78116 1928134; 340.98093 7772; 341.19603 187957; 341.48213 8647; 341.55454 54830; 341.67029 21077; 341.813 109231; 341.92082 48816; 341.93883 39342; 342.02023 14462936; 342.04889 7245798; 342.10039 1318108; 342.19468 1314579; 342.36141 8439; 342.67338 587864; 342.82973 9071582; 342.90864 498116; 343.06301 73770; 343.10605 376416; 343.3952 9016; 343.71326 50420; 343.97058 1063092; 344.04135 23525; 344.79473 662984; 344.9585 1570998; 345.1185 3617705; 345.24468 9938; 345.55051 68652; 345.63628 16751327; 345.89473 7256384; 345.90908 4387; 346.01204 6617; 346.09223 71759; 346.14761 168626; 346.15388 7056; 346.64065 45793; 346.74494 2515230; 346.79229 112910; 346.96656 4610214; 347.23674 39790; 347.33628 685626; 347.79338 1762469; 347.87915 5563022; 347.89123 1698080; 348.37406 27855419; 348.44815 829; 348.88366 1844648; 348.91421 44267; 348.94285 50367; 349.45744 5635; 349.64237 27820; 349.67712 5918390; 349.89518 27252; 350.02685 487795; 350.06322 18544; 350.39518 650622; 350.41032 71442; 350.42193 1852890; 350.43957 1121; 350.63347 3007452; 350.83651 21326; 350.87491 14091498; 350.98479 9186; 351.1673 7970415; 351.42084 8986; 351.59021 121218; 351.67507 1280226; 351.70163 3919; 351.84567 21961; 351.9419 70267; 352.01657 16863; 352.05692 8107712; 352.32539 57372; 352.56671 193028; 352.90714 126301; 353.18588 77990; 353.19063 27440; 353.54788 621519; 353.56779 89167; 353.70964 22918580; 354.07569 9126100; 354.17394 9879; 354.254 40609; 354.36969 2616390; 354.58605 24092; 354.62304 19512; 354.84341 7171183; 354.91341 816298; 355.33049 19420049; 355.44855 932929; 355.53236 51764; 355.62024 4166529; 355.68484 6409; 355.71803 21112; 355.77516 1859443; 356.05675 22563623; 356.22178 1307473; 356.28073 8439; 356.33733 3338646; 356.39626 1996236; 356.45361 35932; 356.49787 19198458; 356.54355 6176189; 356.65554 1724622; 356.66088 1656664; 356.68012 10164772; 356.86287 5488379; 356.8902 28129; 357.47545 1354265; 357.73922 17209; 358.0803 136267; 358.1317 1515653; 358.23248 103952; 358.39036 47481; 358.99703 2143418; 359.76565 5806335; 360.00475 1790090; 360.06008 547993; 360.09334 59147; 360.18212 48262; 360.21425 776690; 360.26675 96805; 360.31692 863819; 360.3428 163217; 360.3577 24736; 360.51668 74263; 360.60778 11898; 360.68836 24180202; 360.94737 94766; 361.13272 51224; 361.18052 3349255; 361.29969 42074; 361.82053 84955; 361.98457 59640; 362.06067 3728; 362.49396 5480; 362.59986 5946; 362.83696 34889; 363.00133 1914; 363.20857 61011; 363.29746 1991157; 363.45967 178940; 363.64076 167483; 363.67287 8806; 364.08186 1950113; 364.79878 34071; 365.20802 10908; 365.25399 3388; 365.31484 28190; 365.41678 3774; 365.4758 19367; 365.48723 60364; 365.65315 2716287; 366.06143 18908; 366.19356 4480; 366.25384 63803; 366.29656 60467; 366.6033 452285; 366.65612 39634; 366.66633 2130; 367.15583 83212; 367.24624 30065; 367.42112 8346172; 367.55518 76175; 367.68152 188918; 367.91522 26298; 367.9775 157361; 368.27477 40676; 368.63238 68986; 368.64432 29208; 368.74417 5194; 368.78671 2190; 368.8643 6311683; 368.96275 46737; 369.21794 63798; 369.45225 20901; 369.4684 557; 369.60106 6782; 369.63624 7038; 369.78137 56960; 369.85819 4590; 370.003 39798; 370.16066 697483; 370.39983 27525; 370.41464 29270; 370.62243 22035; 370.69054 866667; 370.77525 6275900; 370.81627 2257; 371.24774 6758; 371.26345 71046; 371.27124 1122705; 371.2958 49583; 371.32564 11067; 371.38765 1568; 371.63337 3184889; 371.67854 23085; 372.00997 4145020; 372.32999 26484; 372.44973 9210; 372.49904 67178; 372.7833 1634361; 372.93914 494322; 373.37105 2320945; 373.79314 1891801; 374.019 105164; 374.08797 23294; 374.20235 4315658; 374.28046 72398; 374.30268 3226348; 374.32846 4032; 374.53017 583984; 374.57671 75402; 374.63778 9384102; 374.69345 1697429; 374.81567 6750071; 374.82257 45686; 375.29095 144556; 375.38348 3824760; 375.68402 25; 376.01319 652351; 376.15844 41028; 376.18703 2052385; 376.28838 9894291; 376.7655 64107; 377.00967 7648602; 377.24728 9952152; 377.30234 13071; 377.49877 4969238; 377.71298 110906; 377.76021 108050; 378.25699 115943; 378.45166 73083; 378.49492 3416430; 378.56333 35992; 378.89644 2986408; 379.50458 62253; 379.63298 4772121; 379.65309 100289; 379.77843 5285327; 379.83658 1152333; 379.84708 34170; 379.86231 446822; 379.88563 22850504; 379.93204 4384740; 379.96378 1079811; 380.09245 27320; 380.49776 43274; 380.55792 358306; 380.793 23290; 380.81858 25353; 380.90056 3343825; 381.05085 27936; 381.15129 31869; 382.04221 77898; 382.18602 269287; 382.22497 2456875; 382.2389 7079; 382.24259 7023; 382.30263 57685; 382.30417 158772; 382.69913 24676; 382.81816 9116; 383.08531 4287134; 383.22738 1375728; 383.38731 5587; 383.41162 16182; 383.63037 24119; 383.90756 24151479; 383.91227 39396; 384.36663 29366; 384.59586 641060; 384.60914 907405; 384.68579 3618718; 384.76115 28925; 385.01274 28919; 385.19829 7876144; 385.31493 1663068; 385.33988 1442744; 385.36855 2330; 385.6379 53410; 385.81845 2436414; 386.01112 73091; 386.11717 3102; 386.16127 60259; 386.2265 4222; 386.42619 50753; 386.58499 7242387; 386.74663 47742; 386.78267 187328; 386.93956 25736; 386.95178 53152; 387.16993 1913025; 387.17156 5032718; 387.30145 363970; 387.57737 41926; 387.65769 4472947; 387.67969 552900; 388.03746 7732182; 388.05069 23746; 388.24983 84325; 388.28547 1933043; 388.30842 2233251; 388.39041 5570527; 388.57174 31009; 388.82886 74897; 388.93052 25502804; 389.0088 3445565; 389.21002 1900977; 389.47836 3929; 390.47938 5800843; 390.50221 13174495; 390.66865 29863619; 390.77057 6126; 391.00452 76179; 391.08374 17617916; 391.27281 29732; 391.6374 206122; 391.69984 20053776; 391.74535 4235941; 391.75409 1946068; 391.7941 742; 392.16899 3817507; 392.19219 40534; 392.26252 10028; 392.47393 16428436; 392.48367 9584; 392.63035 16441; 392.73811 44784; 392.80308 47664; 392.91902 2976470; 393.01413 24574; 393.7357 10283; 393.95178 1501798; 393.96143 29241; 393.9667 7301611; 394.02707 19707; 394.05649 633465; 394.23201 2771455; 394.34814 139188; 394.97487 11015; 395.21169 48817; 395.2134 18659237; 395.23544 1158974; 395.29593 1662845; 395.36265 39637; 395.38007 345359; 395.51464 1879; 396.0188 14598082; 396.23088 21170; 396.64281 753023; 396.64844 4775697; 396.98199 38324; 397.27693 29688; 397.39366 58772; 397.7247 1045279; 397.89275 25011; 397.92156 12014777; 398.06253 77029; 398.09427 3429569; 398.38283 588666; 398.61438 7441466; 398.70648 7341318; 398.77009 2144197; 398.82423 1884966; 399.05433 1586335; 399.30943 1672; 399.31417 438481; 399.45882 35247; 399.51667 178072; 399.59653 13488; 399.59721 169244; 399.60185 157744; 399.61701 15020; 399.68984 115612; 400.00066 3901192; 400.14881 106064; 400.62367 44480; 400.67962 6313; 400.8314 4876018; 400.91412 5214176; 401.01499 28057; 401.24901 1098010; 401.36264 31001; 401.82967 68432; 401.83787 35521; 402.02162 33101; 402.25717 42718; 402.629 906171; 402.70854 10063; 402.8966 42883; 402.90255 1443481; 403.08114 133157; 403.43335 79662; 403.60476 63415; 403.81152 11946768; 403.99627 22484; 404.0283 6834; 404.08557 1847928; 404.11618 73578; 404.29064 2605411; 404.37805 43231; 404.40821 3373733; 404.99587 865930; 405.24722 60122; 405.32753 3231981; 405.49073 946; 405.94633 41449; 406.01918 1451; 406.55555 49881; 406.77015 32801; 407.07836 1252117; 407.92079 4404077; 408.62831 7067871; 408.64576 1151982; 408.72166 29888; 408.92949 226052; 408.95827 67665; 409.1711 25415890; 409.32775 8522542; 409.5889 26197; 409.592 18547900; 409.92603 14392; 410.01157 79047; 410.14049 39783; 410.15439 1279583; 410.59334 31857; 410.66647 72705; 410.76473 53385; 411.69808 88287; 411.71408 286948; 412.05915 185959; 412.16088 3813922; 412.18787 41070; 412.52339 65739; 412.60098 76759; 412.65298 2193373; 412.80151 70028; 413.20601 3408577; 413.45977 40019; 413.47644 1949370; 413.85013 61015; 414.04656 1415173; 414.23634 812469; 414.91163 12954; 415.16012 1071; 415.47118 67791; 416.36525 48617; 416.42214 18596; 416.5345 10978; 416.6149 1312571; 416.67282 26187; 416.71624 79298; 417.17432 11989; 417.23036 84731; 417.55058 7675; 417.73885 1028529; 417.7561 405149; 418.26001 150352; 418.30572 27237; 418.35553 55750; 418.38676 52142; 418.86496 6813; 419.2819 718543; 419.35166 27245; 419.45907 167357; 419.68961 1508347; 419.70334 1531573; 420.05901 23686; 420.3143 7130226; 420.47026 50679; 420.79067 19528; 420.87192 1402792; 420.9958 44511; 421.04793 94694; 421.35847 27408; 421.37458 49409; 421.43503 34866; 421.49008 26112; 421.59158 29571; 421.71994 50362; 421.79192 123060; 421.79685 5173; 422.42186 1089338; 422.60262 4735673; 422.69473 6946069; 422.97057 284641; 422.9901 56199; 423.07808 57357; 423.0787 5584289; 423.08047 3948; 423.32449 3112; 423.4563 64104; 423.48748 3283848; 423.58105 65133; 423.59588 27078; 423.60466 24259; 423.71554 5027; 424.13286 69695; 424.59084 1421455; 424.66847 50318; 424.70447 27029; 424.70477 2052919; 425.00328 130077; 425.07353 33275; 425.22834 2872486; 425.32016 3684312; 425.39301 869571; 425.47599 73674; 425.71966 8134551; 425.88633 1884; 425.98889 3155094; 426.21125 65132; 426.28273 2070; 426.9867 1200; 427.06451 76139; 427.17993 59701; 427.36881 34934; 427.47385 70139; 427.54748 8039; 427.5545 16699; 427.60264 4145; 427.61591 150234; 427.71888 20593; 428.30068 157373; 428.30851 1692168; 428.41395 8512; 428.60175 6261; 428.69848 155397; 428.88505 11224; 428.90371 1484445; 429.11773 3017363; 429.15504 21858268; 429.51735 827170; 429.53316 7779428; 429.65521 4207587; 429.97075 45497; 430.22963 9097; 430.32829 11279; 430.48131 1661651; 430.64283 1366358; 430.6868 30720; 430.70378 76222; 431.31614 29179; 431.70692 39886; 431.80298 878785; 431.88253 68457; 432.5163 55782; 432.53257 37245; 432.95851 2099; 432.9676 54107; 433.06847 1668996; 433.63761 70990; 433.67729 16787582; 434.22617 1991749; 434.75131 18302851; 434.86142 7823729; 435.26124 14673328; 435.33379 28235596; 435.65956 7426; 435.70032 380913; 436.07254 8998; 436.16541 6109482; 436.66934 7094; 437.41841 928518; 437.67788 7438127; 437.72869 71186; 437.77502 313; 437.87689 620692; 437.94977 52750; 438.48284 2640189; 438.50213 37326; 438.722 23508; 438.87745 916346; 439.10553 74622; 439.14553 160129; 439.38939 73922; 439.39697 3373803; 439.43295 240848; 439.84102 75166; 439.87162 49452; 440.02496 5258; 440.15831 49083; 440.24641 1976471; 440.291 5779231; 440.6683 907; 441.29895 7224; 441.54126 1460417; 441.64792 4630725; 441.74319 1031411; 441.97915 474112; 442.36384 3276828; 442.79859 29635041; 442.96349 75790; 442.96584 545866; 442.99989 5455545; 443.20195 2393; 443.30783 375; 443.34718 1909244; 443.37318 58774; 443.45261 5946801; 443.5801 384874; 444.17337 2203514; 444.21996 1751189; 444.22569 57133; 445.12593 1695986; 445.16376 1338712; 445.28529 42872; 446.10112 889059; 446.1058 10964; 446.13067 29339; 446.21041 51683; 446.25925 61898; 446.26752 9354; 446.35982 4125382; 446.65231 65658; 446.96791 1636; 447.64285 111027; 447.87916 64706; 447.91041 416; 448.49695 1776; 448.87877 4508; 449.26046 15580937; 449.82645 38443; 449.82806 1257796; 449.86302 25415; 449.91121 20839; 449.96931 192207; 449.97316 58663; 450.20267 26473; 450.68905 2756752; 451.25194 20117; 451.32055 1740360; 451.36793 3982; 451.4961 2065365; 452.0703 77484; 452.32118 9720397; 452.32344 63180; 452.41826 44589; 452.65114 51325; 452.86351 2554; 452.8977 1088; 453.06416 75438; 453.16089 19595; 453.40673 4838; 453.50369 77904; 453.66205 206248; 453.76242 66871; 453.85672 3108; 453.8579 2718497; 453.97802 53566; 454.05873 105231; 454.73674 980549; 454.87041 28639; 454.8753 1395240; 454.93932 27504; 454.99969 16876; 455.1597 583706; 455.17784 1907946; 455.37172 3928136; 455.681 9629; 455.92484 33041; 456.36783 220609; 456.48466 656836; 456.88751 890641; 457.16638 1162610; 457.33445 79134; 457.39094 2021; 457.86607 4325379; 457.97907 46440; 458.03335 2751804; 458.20234 79823; 458.50172 57346; 459.06837 75893; 459.1167 3313; 459.13831 172596; 459.23255 41040; 459.44165 1180412; 459.67483 3597; 459.85453 35353; 459.97035 24589; 460.3461 184145; 460.8123 14842768; 461.00011 61523; 461.09381 52256; 461.42191 79547; 461.50204 2505; 461.5948 2137; 461.74257 805201; 461.98986 43558; 462.00027 569111; 462.10475 9853151; 462.31919 49853; 462.69426 746751; 462.82077 66466; 464.09657 9473155; 464.34139 5009570; 464.75016 64425; 464.78107 20332; 464.78945 291506; 464.82569 57616; 464.83038 3805450; 464.91993 3983; 465.23131 99950; 465.24772 6480; 465.38325 20868; 465.38999 5638; 465.71913 25054; 465.73198 69652; 465.84458 2552; 465.96045 15265; 465.98661 59031; 466.27142 20793707; 466.33694 37914; 466.5268 65421; 466.53449 1699; 466.63066 8844; 466.65941 23022; 466.83246 2828047; 466.84534 517691; 466.91675 69921; 467.13935 104925; 467.30396 36811; 467.4629 5265456; 467.66492 196128; 467.71341 2887327; 467.7618 61424; 468.15816 2604475; 468.3102 4289891; 468.39018 127053; 468.40765 3395742; 468.44666 8813176; 468.64632 994628; 468.75014 1960691; 468.8151 6526662; 468.81778 91359; 468.82076 9883632; 468.84506 1641742; 468.94497 1873096; 469.14828 4648437; 469.18372 27059; 469.64052 57941; 469.67599 6258216; 470.04703 68264; 470.15901 265584; 470.23785 4206; 470.32131 4855361; 470.35799 23313; 470.41049 54711; 470.60085 579668; 471.31591 3673; 471.9439 8539; 472.10169 45439; 472.1033 45432; 472.34741 701225; 472.77322 8642416; 472.77913 71150; 472.99285 8589; 473.59118 19311; 473.62332 55111; 473.79132 2199062; 473.80519 69419; 473.85625 9882; 474.19533 69000; 474.3177 11136437; 474.50314 33703; 474.53704 28549; 475.07891 1235; 475.14883 3166471; 475.1616 14904359; 475.1648 920083; 475.43965 2908; 475.75338 744500; 475.90989 23304426; 475.94622 94536; 476.00443 293882; 476.09574 4950337; 476.29252 167286; 476.35057 12504; 476.40577 1564280; 476.42081 66897; 476.84547 8609; 476.86807 37035; 476.88699 1194177; 477.03966 247016; 477.39099 48245; 477.42377 24335; 477.61196 100520; 477.65211 3912; 477.77495 28615; 477.94008 1034914; 478.12397 5747; 478.54546 159035; 478.62188 51509; 478.66637 1676605; 478.80799 68905; 478.83676 4189612; 479.52876 6275684; 479.60476 46301; 479.64297 5799376; 479.7557 1174918; 479.7663 760529; 479.79506 23153; 480.05851 650715; 480.1019 536881; 480.24859 47975; 480.33365 1743843; 480.37576 5872; 480.59427 116777; 480.60137 4262401; 480.80757 9183608; 480.84169 62865; 480.94458 91970; 481.01664 73451; 481.07435 573260; 481.38849 52064; 481.65155 249; 481.89065 4135058; 482.0355 123377; 482.24438 4448; 482.31886 10416092; 482.3373 41210; 482.52233 66343; 482.87647 53533; 482.88054 9983; 482.96206 862566; 482.98003 9872; 483.02847 88133; 483.08467 43770; 483.32327 1143822; 483.44139 146717; 483.68076 20593; 483.94544 4322426; 484.04247 5792; 484.24673 22998; 484.4778 70711; 484.72011 8701436; 484.74632 5334; 484.9522 534833; 484.95787 231; 484.97977 2686235; 485.05654 10105; 485.12781 7122; 485.20265 6058; 485.44716 62696; 485.51318 2793; 485.89305 8024651; 485.98507 19675; 485.98954 1008593; 486.28868 36458; 486.34246 2568060; 486.4935 7637; 486.58439 570447; 486.58964 9148263; 486.63221 2233173; 486.76275 6331; 486.79777 5657; 486.82202 122237; 487.30134 939090; 487.3583 28855; 487.42865 8432; 487.58972 44771; 487.79105 175872; 488.04941 4092; 488.0755 1720059; 488.51907 5501; 488.65248 39061; 488.68318 75543; 488.92572 9804032; 489.09474 48416; 489.16895 37054; 489.21836 1504943; 489.36557 837554; 489.47406 19148; 489.80988 1604920; 490.07737 9081; 490.2315 1158713; 490.338 22458; 490.34736 72836; 490.56444 362150; 490.56478 118453; 490.6587 31761; 490.66876 50538; 490.95542 58284; 490.9924 3068757; 491.70204 94; 492.19908 49288; 492.74091 221205; 492.91818 20157236; 492.92683 4910; 492.99547 60645; 494.22046 9521902; 494.32465 58940; 494.41374 4078533; 494.46485 22643; 494.53211 77190; 494.59896 1939719; 494.7294 5938732; 494.94813 21065085; 495.14994 5613941; 495.83908 24446523; 495.96763 860642; 496.28471 1478865; 496.32371 615018; 496.35844 65856; 496.46627 56910; 496.59836 1001245; 496.75989 18138; 496.8872 51882; 496.90385 1033060; 497.58982 1370696; 497.98381 1332257; 498.0607 52368; 498.13364 64429; 498.71437 557777; 498.93619 23208751; 498.97924 3187; 499.14253 3356811; 499.14846 24517; 499.80869 8301; 499.81983 3290966 +<7, 2>: 0.44379 74430; 0.67848 1781715; 0.71349 70232; 0.7998 43583; 1.04886 56000; 1.09962 144616; 1.16862 56922; 1.22453 2704151; 1.42323 115989; 1.59016 3490696; 1.62371 4529726; 1.96885 35184; 2.31632 1190770; 2.34949 128896; 2.43015 7675; 2.65276 29758; 2.85295 99942; 3.0173 158580; 3.05788 165183; 3.08904 1473817; 3.6653 23501; 3.68168 36313; 4.01455 9675278; 4.30095 64444; 4.39914 1035988; 4.62283 7918921; 4.78473 1811782; 5.05243 29572; 5.33302 8284; 5.75093 24118; 5.86442 5443782; 6.1743 52223; 6.26975 498; 6.57859 843689; 6.97855 1877; 7.02292 4428257; 7.10009 8374; 7.21115 499467; 7.25204 43991; 7.34079 13182; 7.36387 3116555; 7.95569 1757678; 8.12087 602629; 8.40468 9711; 8.6711 23776; 8.83904 14326; 9.02802 1818317; 9.05756 22022962; 9.52793 58500; 9.72982 7680; 9.91014 1748718; 10.1449 1075453; 10.20478 2686828; 10.23135 1969140; 10.60492 5131329; 10.6276 393556; 10.66505 586204; 10.70622 882828; 10.80636 1550437; 10.89715 54832; 10.93496 16838; 11.17177 2249; 11.33221 30377; 11.45245 45197; 11.50743 69385; 11.54489 8096; 11.62298 1449371; 11.87874 39186; 12.27806 20772; 12.28428 688558; 12.59451 1314387; 12.65357 733; 12.80631 8736245; 13.47209 193123; 13.53099 2657540; 13.78153 4680551; 14.00452 1825166; 14.29542 1982; 14.55761 5577907; 14.78066 8565472; 14.98845 36376; 15.26603 17924; 15.35233 42853; 15.3583 41211; 15.42786 174401; 15.45473 7931016; 15.55001 9669947; 15.58836 5691; 15.66365 8056; 15.84452 610768; 16.66112 20181; 16.97532 30932; 17.12811 70821; 17.23313 1625274; 17.23359 2072; 17.27569 142991; 17.32288 1101751; 17.38229 563247; 17.6084 27068; 17.69639 21625; 17.83772 1496; 17.84675 7859146; 17.92419 17333; 17.97526 47745; 18.11091 6372; 18.28222 69293; 18.55184 29325; 18.83381 6157; 18.91221 24865; 18.91978 9622; 18.97943 4329339; 19.13753 24588; 19.31809 164026; 19.3557 42459; 19.41019 59428; 19.71917 10497; 19.87867 2785002; 19.87955 25028; 19.9977 537682; 20.03198 33636; 20.09254 69674; 20.28962 2385; 20.4407 13950; 20.48244 4295; 20.48841 37814; 20.53182 197586; 20.8397 31353; 20.91662 15196832; 21.05283 54866; 21.1811 60298; 21.33205 23189; 21.36308 71486; 21.38822 35955; 21.74323 132632; 22.10143 111668; 22.13248 72213; 22.16609 196859; 22.55402 473946; 22.68563 51684; 22.77426 5224374; 22.84777 29341; 23.25367 3332243; 23.48287 75343; 23.48822 3463316; 24.03686 17898332; 24.05743 43685; 24.13726 68400; 24.15711 38485; 24.22732 28377; 24.27028 26314; 24.49379 4466; 24.5866 383013; 24.7951 1185788; 24.81227 580; 24.91922 33670; 25.19279 5510; 25.25991 8146; 25.29498 946106; 25.41741 3212155; 25.54862 76464; 26.03248 169015; 26.42333 3789698; 26.43681 1546828; 26.58669 60161; 27.22563 196; 27.4522 76959; 27.51663 25138; 27.62767 427289; 28.00352 1763070; 28.09117 1683875; 28.12135 74226; 28.23109 14190; 28.38663 20446; 28.44294 1057828; 28.49251 1777086; 29.41561 3471953; 29.62385 62324; 29.71931 828217; 29.77484 1360120; 29.98037 52521; 30.24054 1544271; 30.40871 51956; 30.61538 36029; 30.89888 4035; 30.95426 13136; 31.06708 66271; 31.35249 279256; 31.57622 7169; 31.59264 99827; 31.60156 1853; 31.62521 3080614; 31.63306 418176; 31.69675 105554; 31.99335 1980066; 32.02824 2244; 32.15458 9008893; 32.16985 3387106; 32.18632 4800; 32.3893 385121; 32.46168 33139; 32.47894 24260; 32.58501 20039; 32.65919 747341; 33.04017 332573; 33.08929 795906; 33.18057 1606844; 33.26299 19172; 33.26738 1619542; 33.35108 3232815; 33.46837 9547; 33.50678 28400; 33.64412 27350; 33.75866 3904; 33.84857 2388; 34.02312 11786; 34.26881 20755; 34.32976 3800351; 34.33358 63896; 34.90197 47134; 35.17977 22234; 35.46818 1294111; 35.81278 25591; 35.94513 23019; 35.98377 186103; 36.25428 317326; 36.61813 51956; 36.62778 1109473; 36.65942 1372088; 36.68185 995125; 36.76979 54201; 36.88332 23696; 36.88513 39704; 36.96409 8387599; 37.40262 3128737; 37.59235 869022; 37.63255 4219724; 37.65377 53809; 37.65712 69596; 37.71557 6756; 38.38057 44883; 38.64112 26356; 38.84895 7894062; 39.02263 9212; 39.14031 950720; 39.28347 6502; 39.3022 91852; 39.30659 6605100; 39.48315 41731; 39.54571 53665; 39.65598 3765441; 39.89523 24998; 40.39082 970273; 40.42251 8687; 40.76751 40854; 40.85857 76175; 41.16161 4306127; 41.20739 7219; 41.49076 8547; 41.77497 1164; 41.83864 1171111; 41.98791 2527433; 42.00114 3567554; 42.03805 5532; 42.36798 3593528; 42.53743 7526307; 42.56361 5492213; 42.74282 9166975; 43.1678 274504; 43.3637 3190114; 43.38121 1754627; 43.66433 53399; 43.70502 2833768; 43.77378 46203; 43.80572 9628; 43.85412 15123657; 44.19227 52552; 44.32217 41906; 44.55975 76026; 44.90581 7595; 45.38804 456281; 45.45032 60550; 45.70023 15783045; 46.09795 464535; 46.13119 9255; 46.31443 1338129; 46.50318 35291; 46.83422 8829250; 47.185 35699; 47.26219 51092; 47.35958 2898240; 47.40339 53042; 47.51732 50386; 47.59772 26142; 47.7352 2681858; 47.77722 453176; 47.87298 2001116; 48.21903 7429; 48.5376 33579; 48.68447 64859; 48.74339 170984; 49.11025 1783033; 49.43789 2189408; 49.45372 22136; 49.60379 154660; 49.62136 3349056; 49.6576 4609; 49.7177 632837; 49.80244 8314; 49.84641 1411212; 50.29424 3319974; 50.39883 139; 50.4545 37708; 50.45587 43032; 50.68831 4802; 50.73076 53097; 51.0191 2574370; 51.39263 22888; 51.46184 391488; 51.50341 6967716; 51.51803 7484; 51.73691 5526172; 51.80094 10854935; 51.87923 10501; 52.08306 4837343; 52.4268 28252; 52.43811 21049; 52.52884 21118; 52.72586 1457361; 52.74281 4852; 53.08194 8278948; 53.37895 1818233; 53.54181 8701168; 53.68689 2449932; 53.71463 62537; 53.89202 423034; 54.01042 945984; 54.14796 8346577; 54.21139 2492276; 54.45657 70923; 54.65123 579205; 54.67886 29047; 55.45392 60436; 55.45448 4224; 55.5763 6881; 55.82063 16649; 56.23373 3556607; 56.29059 31414; 56.37324 869712; 56.55328 12883325; 56.59884 66727; 56.65521 9021083; 56.78362 166265; 56.89501 8609; 57.31483 51881; 57.41088 524337; 57.52305 57051; 57.57488 53828; 57.58784 32818; 57.81453 3917549; 58.01411 48067; 58.04314 8007820; 58.1043 121916; 58.14359 58317; 58.20487 4879771; 58.37301 1198783; 58.58393 26571; 58.729 4316; 58.9665 7886; 59.03288 9447026; 59.17603 22592; 59.17656 857240; 59.26566 164593; 59.53521 52426; 59.62928 67133; 59.88487 546104; 60.11157 160093; 60.29126 2438753; 60.50682 5929; 60.58466 30169; 60.63536 1120597; 60.6925 1653881; 60.88903 7308567; 61.17175 28457165; 61.301 1464; 61.32274 30996; 61.60903 430694; 61.62201 85559; 61.99671 80; 62.10688 57; 62.9984 1077697; 63.0096 2243; 63.04911 5825590; 63.0892 11666; 63.10324 29176; 63.41282 23799; 63.53888 1978407; 63.83777 511042; 64.50598 34845; 64.72723 863424; 64.76783 75886; 64.9093 9056810; 65.00977 5832; 65.0764 26097; 65.10166 1699; 65.50457 45916; 65.53897 50313; 65.70154 56912; 65.90653 40403; 65.99204 792536; 66.1734 6820940; 66.65536 3082; 66.66739 4358; 67.0958 68753; 67.32101 47485; 67.33041 8700531; 67.33982 55044; 67.44002 19543507; 67.74512 6602; 67.77665 87057; 67.94868 79599; 67.95271 3321; 68.07378 18543; 68.45969 519; 68.54755 4874812; 68.68626 16060601; 68.94398 41017; 69.42887 114595; 69.49332 9223531; 69.69761 6745452; 69.80974 2047; 69.95182 787063; 70.06649 3013713; 70.10604 58591; 70.40816 538935; 70.55104 1744243; 70.77059 656109; 71.00119 53790; 71.20852 100629; 71.51386 9461690; 71.63233 22150; 71.69376 6583705; 71.98139 47961; 72.00063 4467426; 72.46101 36441; 72.48761 9476928; 72.51925 6341; 72.55379 157543; 72.80308 1500258; 72.83455 40661; 73.03491 54068; 73.12575 117548; 73.28533 7847276; 73.46968 180058; 73.53147 8745; 73.82935 41169; 73.93517 1862842; 73.99692 5338; 74.08233 31553; 74.19652 42088; 74.22693 4903508; 74.2522 29076; 74.4197 77817; 74.89738 7628; 75.01136 1802273; 75.22062 90194; 75.5008 46973; 75.68239 9663; 75.90244 9710115; 76.11331 1774; 76.17485 714372; 76.31701 30935; 76.48489 4775632; 76.71684 7512458; 76.82513 115; 77.29139 5381841; 77.53244 10303; 77.56707 1188357; 77.63276 444337; 78.03784 48195; 78.20398 473575; 78.27834 1176; 78.65054 2687288; 78.80824 4311; 78.85787 1139787; 79.02022 603288; 79.09716 2334; 79.19913 23283; 79.22817 1242245; 79.24244 5886363; 79.42027 59361; 79.76985 4215217; 79.81736 4037999; 80.04861 6182991; 80.13041 38125; 80.16007 910; 80.62603 6521200; 80.87602 42184; 80.89589 2062997; 81.18073 38718; 81.24721 68131; 81.26983 25920; 81.28777 3265512; 81.33979 44168; 81.76809 70403; 81.85627 4059287; 82.07094 4667988; 82.55851 1267866; 82.60592 2501283; 82.67048 54386; 82.68191 22128337; 82.92742 26833; 83.04246 35262; 83.37392 18191; 83.41061 7347; 83.4444 6660126; 83.77865 2845389; 83.87906 35021; 83.93461 6557; 84.02054 2880573; 84.02411 4215; 84.24067 61799; 84.25633 5987526; 84.35708 580527; 84.45652 1989003; 84.48405 1898533; 84.49135 1932; 84.73834 18630; 84.98515 7494; 85.44273 38593; 85.49096 1486154; 85.59771 16893; 85.6721 414142; 86.29766 1925789; 86.39426 1382477; 86.69105 3599; 86.83061 683570; 87.2871 4978537; 87.55181 12522499; 87.56105 147213; 87.72024 86426; 88.1326 3750; 88.24834 5522; 88.61643 29419; 88.83799 3792671; 89.30155 20459868; 89.32817 1124850; 89.38868 29331361; 89.89669 1187; 89.96842 2968710; 89.97767 2061; 90.10503 3961107; 90.15127 4077047; 90.16857 28141; 90.16937 4975536; 90.1983 3077838; 90.74428 75066; 90.7809 1186918; 91.45556 3959252; 91.55859 63002; 91.71638 191459; 91.75324 4053591; 91.77127 946023; 92.08405 7154679; 92.10063 4269844; 92.27937 26067; 92.76602 26589; 92.79279 1467063; 92.81443 180901; 92.93432 1042531; 93.43948 30467; 93.58525 165056; 94.08661 46952; 94.21944 54834; 94.34069 1774051; 94.64887 49232; 94.85309 28697; 94.98728 5308559; 95.01334 63705; 95.28563 8739; 95.49905 178005; 95.51225 1208579; 95.60452 179538; 95.7654 59270; 95.9177 20598; 95.94425 30041; 96.07517 334; 96.10909 34010; 96.21371 8564627; 96.42362 8595; 96.46979 4170523; 96.54792 8951490; 96.60105 30392; 96.68506 74108; 96.91118 36460; 97.07813 20784; 97.09877 27070; 97.30775 26267; 97.34041 210081; 97.4576 8454; 97.66803 1180186; 97.68541 73013; 98.06852 38190; 98.17833 60943; 98.50285 12296; 98.62059 928150; 98.74007 8870; 98.90245 1413761; 98.92473 1314944; 98.93071 11045; 99.06841 417788; 99.57956 9752; 99.63825 448018; 99.70661 72574; 99.8317 6429; 99.85265 6001; 100.01741 384035; 100.07416 79721; 100.3209 29928; 100.44533 222603; 100.58512 829774; 100.90322 4665297; 100.93095 5253650; 101.23887 439298; 101.32741 363362; 101.62356 3181307; 101.66336 8827; 101.74224 3236; 101.79625 39115; 102.03332 392902; 102.26241 614793; 102.30086 44399; 102.74191 1886795; 103.04781 3166289; 103.20464 145669; 103.29749 60198; 103.6351 125827; 103.68142 766218; 103.69079 73889; 103.7648 5445190; 104.18849 43257; 104.42038 32177; 104.42129 3017686; 104.59982 37455; 104.81923 22576; 104.96545 18675; 105.06023 19718; 105.17726 2828976; 105.26354 27157; 105.52067 61875; 105.84862 1326486; 105.9889 35798; 106.17993 75022; 106.62539 1461816; 106.70548 18732; 106.78884 2642047; 106.98773 434160; 107.47387 7214; 107.50132 1729028; 107.72569 14558; 108.26174 4439478; 108.40226 35745; 108.83105 31307; 109.06487 24915; 109.45467 54560; 109.4723 53205; 109.73714 69885; 109.93508 49253; 109.98938 52425; 110.22413 78617; 110.49546 52632; 110.63331 431683; 110.64265 2666325; 110.72859 111323; 110.78857 38197; 110.82561 34076; 110.92149 5147124; 111.09757 4058221; 111.20771 173439; 111.29717 23519; 111.36444 48941; 111.6508 1415944; 111.80679 35305; 112.00873 368370; 112.24529 23592; 112.26347 22755; 112.74128 25049; 112.93412 1349; 113.00471 52944; 113.05919 8374059; 113.40289 1632105; 113.48848 1587663; 113.579 626303; 114.27112 15369; 114.56284 27157; 114.95171 1130374; 115.00203 9942158; 115.10023 64789; 115.21533 436054; 115.36922 6163288; 115.62105 915379; 115.99412 26568; 116.0519 61042; 117.01619 102951; 117.03365 1267024; 117.22021 986122; 117.23306 75239; 117.51565 2184148; 117.71976 6145; 117.89727 53564; 118.24593 25496; 118.53139 20327; 119.13138 6155954; 119.3799 29311709; 119.7043 20942; 119.76606 49406; 119.87698 9116; 120.36532 97700; 120.56959 128216; 120.63894 14343; 120.75138 350093; 121.08263 72352; 121.49923 42973; 121.75724 51705; 122.38877 229707; 122.47543 40551; 122.64424 2511027; 122.89214 57526; 123.34772 552318; 123.40085 215749; 123.45367 3047; 123.56794 106509; 123.60884 5362985; 123.65036 7357722; 124.5672 74514; 124.63545 1054256; 124.88766 41671; 124.96141 32335; 125.09217 4148; 125.09717 1683889; 125.14488 21455; 125.31293 21692; 125.47746 23013; 125.60288 39875; 125.74719 8139; 125.78275 2651988; 125.79994 9383381; 125.86475 4658763; 126.27133 38687; 126.2958 51578; 126.31541 69166; 126.59141 32491; 126.87144 197645; 127.06423 9128; 127.43598 616267; 127.47025 25473; 127.81089 33426; 128.10701 36792; 128.29468 3710698; 128.37722 52211; 128.66631 79836; 128.7579 1147857; 128.82444 8413443; 128.89725 3980190; 129.26731 27736; 129.3107 9902; 129.37093 3714846; 129.42472 18730; 129.6944 5365; 129.85906 4193808; 130.00979 9703077; 130.02869 6937; 130.29516 70297; 130.29997 71445; 130.31645 25273; 130.4763 77286; 130.85122 15749; 131.15803 10646; 131.2379 2007861; 131.63538 8129; 131.85364 4617; 132.04216 66278; 132.12646 8669956; 132.62975 1417334; 132.71776 526703; 132.80671 33520; 132.98709 9909621; 133.01886 1378367; 133.15 106671; 133.63513 4944; 133.66977 108576; 133.73446 1446275; 134.10901 7605; 134.32732 25704361; 134.32828 5729282; 134.42644 469664; 134.70762 946441; 134.7894 21578; 134.8193 283069; 135.47366 36690; 135.58317 60703; 135.81895 493960; 136.03419 1913; 136.26175 2492084; 136.33814 49857; 136.45069 28188; 136.73322 52835; 136.79325 762474; 136.86514 18136; 137.02432 78676; 137.29562 7146520; 137.36642 56827; 137.4979 1288681; 137.51243 63178; 137.92373 218364; 138.07265 2134870; 138.24483 2637492; 139.05861 32208; 139.23537 70940; 139.29102 4849515; 139.46779 3866842; 139.79013 6792094; 139.8902 371315; 140.02191 2616406; 140.1002 1190505; 140.47443 9398447; 140.47493 39741; 140.54982 52856; 140.60633 4072485; 140.64146 74715; 140.64969 48545; 140.7611 36649; 140.95808 360301; 140.96631 1273077; 141.04319 28892; 141.22122 21353155; 141.26555 173321; 141.53381 13721590; 141.9435 63822; 142.19056 1313624; 142.48377 8674; 142.78203 129864; 142.9525 151168; 143.2642 6906325; 143.47438 42073; 143.51313 796205; 143.94349 41937; 144.12758 2174800; 144.15137 3978536; 144.43871 36022; 144.55991 6595; 144.97553 6995722; 146.0487 34630; 146.13763 22014; 146.16092 55847; 146.40511 32770; 146.42342 67381; 146.51967 41151; 146.68232 212772; 146.82556 5324363; 147.10378 682319; 147.1461 1046662; 147.25452 1427388; 147.71235 1705163; 147.80564 21663890; 147.81396 71146; 148.04487 785378; 148.39864 29452; 148.44177 11002; 148.50002 73104; 148.92571 8355126; 148.94221 7040297; 148.95036 6144; 148.95743 6662; 149.07073 1935379; 149.14283 14605; 149.33839 9339007; 149.59873 20633; 149.68371 3689; 150.58438 26930; 150.70076 6101395; 150.71447 1641789; 150.85461 214; 151.06132 29745; 151.78078 400175; 152.22259 1495860; 152.26513 7545583; 152.50933 8509973; 152.54976 9864060; 152.65673 5483; 152.65961 818533; 152.71737 26233; 152.83361 29671; 153.10659 6069; 153.18838 69097; 153.36451 24552572; 153.83544 1787409; 154.23742 72874; 154.29571 7537; 154.5277 25139; 154.65489 16768; 154.80617 6550080; 154.81327 1316495; 154.91676 5849215; 155.03495 833552; 155.22179 579; 155.22902 13109922; 155.27166 27953; 155.42526 28202; 155.54325 675138; 155.65661 50315; 155.72683 15926; 156.17658 83186; 156.21942 4257859; 156.26812 986631; 156.35273 6298; 156.40238 5436; 156.5277 733095; 156.58973 7640; 157.08185 6255; 157.10626 5546712; 157.14384 1714698; 157.26525 28972; 157.91396 4942196; 158.0559 181943; 158.2574 13244; 158.29634 1189032; 158.34515 78235; 159.01353 21900; 159.35454 23879778; 159.38133 68498; 159.68994 50306; 160.46392 44071; 160.63603 4316; 160.64985 27829; 160.67434 335754; 160.81722 1771356; 160.98016 33857; 161.04711 3126; 161.26065 27037; 161.27145 49847; 161.5281 65583; 161.69387 578225; 161.70005 15824; 162.1564 1564272; 162.15983 207052; 162.41252 4780950; 162.91125 7355; 162.97908 27269; 163.11785 6992061; 163.22295 3049119; 163.51659 25692; 163.90395 24510; 164.02704 1584324; 164.27463 1648603; 164.34252 4473396; 164.51097 20078; 164.68411 978766; 164.76106 1789534; 164.80401 1956939; 164.82229 6492781; 164.91049 186949; 165.04522 954; 165.15862 2506021; 165.28988 168863; 165.5974 5401327; 165.62207 6645798; 165.67226 334; 165.89464 182317; 165.95354 20543; 166.08387 3924; 166.31419 81306; 166.36782 405; 166.46988 27771; 167.23933 1792690; 167.30778 7709; 167.45873 8164870; 167.49802 977195; 167.51407 17218; 167.53881 308499; 167.68979 3758; 168.13624 42189; 168.16275 2123; 168.17941 75243; 169.45703 52974; 169.70526 79050; 169.89331 20542; 169.90348 586955; 170.03612 2629792; 170.31959 52123; 170.32662 56681; 170.50876 2849; 170.71302 84346; 171.02284 8721; 171.0262 3942178; 171.11331 620521; 171.34121 742282; 171.49059 7630; 171.61459 7685; 171.89496 7379951; 172.4634 11664; 172.52489 580; 172.78231 2396529; 172.88749 4362546; 173.223 9718; 173.25575 12412320; 173.35808 1371; 173.60979 110201; 173.68514 1128068; 173.69062 2932; 173.81087 1281; 173.87181 303618; 174.02585 17065; 174.08684 3353; 174.40015 21679; 174.48253 44535; 174.69563 2896; 174.77082 69240; 174.82151 25503; 175.32764 3301; 175.60719 36513; 175.65312 61874; 175.67464 5927; 176.30464 13776; 176.35396 8340303; 176.53211 23179; 176.78715 8187236; 176.84556 771312; 176.95303 9671123; 177.08572 8807320; 177.12039 6466656; 177.51984 1639022; 177.52644 131703; 177.60681 700228; 177.66489 157929; 178.19506 60308; 178.39952 24975; 178.44229 6168; 178.81841 7293; 178.88043 17183; 178.95383 153738; 179.0445 687027; 179.20982 8873738; 179.2612 112321; 179.2619 3740042; 179.32397 197; 179.44783 78726; 179.61033 7989; 180.41295 7928; 180.76236 1837800; 181.38831 36473; 181.7359 1396012; 181.84084 28661; 182.72021 10407; 182.79366 3638686; 182.83071 76034; 183.04209 4558; 183.05703 8513; 183.16323 2236315; 183.32496 4219; 183.50402 1158315; 183.68231 12789760; 183.74615 42784; 183.80283 23828; 183.83451 90141; 183.93644 2081486; 184.02876 863233; 184.28095 417800; 184.41361 5639297; 184.42386 50884; 184.47959 9503; 184.61887 24907; 184.86129 78883; 184.9366 2456; 185.10531 994792; 185.14599 761470; 185.18728 12368; 185.20844 530924; 185.40518 5532; 185.62105 9794544; 185.67842 49940; 185.79707 792; 185.88069 2550107; 186.20029 1696933; 186.43141 122729; 187.04291 24601; 187.37061 1736393; 188.113 65024; 188.31606 2388; 188.33451 4202776; 188.39068 79456; 188.57764 29292; 188.74103 31275; 188.91818 2562202; 189.19331 28138; 189.28878 8442; 189.31841 345856; 189.38 4365028; 189.57867 6297; 189.59998 2485; 189.78511 449697; 189.99015 26334552; 190.02947 16080; 190.12738 16900; 190.66142 41281; 191.04613 18682; 191.06361 7277; 191.34261 38017; 191.36936 2969179; 191.58547 4571843; 191.61119 11129; 192.10532 6891232; 192.11894 20995; 192.27412 79005; 192.31081 27578; 192.50996 65022; 192.56776 9846; 192.59548 326312; 192.72256 180804; 192.84072 1131010; 192.99952 42621; 193.16591 49558; 193.35216 10663; 193.45792 2205573; 193.62515 142779; 193.67008 21487; 193.6724 23309; 193.78949 8914254; 193.88059 78198; 194.0641 1078740; 194.77861 2077761; 195.0201 20834; 195.04958 9793265; 195.21811 7408562; 195.29673 55700; 195.32656 77012; 195.59833 438438; 195.8188 576122; 196.01368 2701537; 196.07885 61752; 196.45908 1543; 196.5022 147861; 196.69984 540801; 196.76544 6202810; 196.82702 26119; 196.98147 52536; 197.39483 607318; 197.42094 1409116; 197.56692 11215; 197.70596 23176261; 197.71324 25693; 197.78762 904257; 198.00432 24081; 198.13549 5639; 198.43708 9589; 198.5923 148439; 198.83192 158345; 199.15018 1300313; 199.2226 311009; 199.46683 11996; 199.5545 2210; 199.57498 26635840; 199.78413 3228926; 200.51495 6962772; 200.57878 1940544; 200.67338 56484; 200.81477 4720167; 201.01062 200122; 201.13926 1876627; 201.14506 6659536; 201.36849 1733008; 201.54397 46715; 201.64209 7358755; 201.65005 25981; 201.85611 8467708; 202.04918 1374; 202.15089 43101; 202.26607 8491259; 202.29709 24553; 202.48497 25411; 202.73821 63817; 203.10221 387898; 203.12429 4202735; 203.21978 1054395; 203.26337 4414162; 203.36126 49715; 203.49267 1048447; 203.58376 1297859; 203.98405 1805724; 204.13235 60063; 204.14909 36861; 204.25039 47278; 204.28922 633106; 204.82997 1664; 205.33881 14272; 205.50194 28629; 205.59519 836480; 205.72428 2324; 205.8764 21109; 205.9983 7566; 206.00179 52901; 206.04297 40342; 206.08789 152691; 206.33882 31633; 206.5542 6445718; 206.75909 1995280; 206.92531 519538; 207.05473 55702; 207.07812 42567; 207.1808 21777; 207.26726 121362; 207.31199 6619254; 207.59578 21005; 207.70701 21390; 207.71205 28815; 207.75484 1899; 208.03685 17656; 208.1036 2848; 208.33226 18328; 208.54391 56217; 208.85734 54779; 209.03082 844870; 209.12993 75808; 209.23194 4459096; 209.36501 33025; 209.4655 54668; 209.60323 5960867; 209.7324 55897; 210.02013 7564029; 210.13055 29532; 210.77041 228191; 211.32721 2079757; 211.53123 36309; 211.55126 133298; 211.67149 1443398; 211.70892 73002; 211.73281 332399; 211.73714 576875; 211.82679 268757; 212.0427 4842; 212.83911 4964; 212.89532 3203680; 212.9979 160866; 213.39475 1082897; 213.47839 325738; 213.52498 9178907; 213.82881 23515; 214.31071 9695; 214.45943 49903; 214.5087 38707; 215.21592 1063262; 215.25597 3671870; 215.49331 3726559; 215.6375 34926; 215.71351 4065822; 216.13963 3584405; 216.191 59778; 216.26478 6461003; 216.36969 6586439; 216.53316 27429; 216.64887 39259; 216.76748 1502053; 217.17216 53136; 217.2776 24319; 217.37328 17691489; 217.50807 29308103; 217.67904 3200512; 217.83232 18854; 217.98729 3469204; 218.03325 833439; 218.03593 9841939; 218.20637 36240; 218.32955 2022448; 218.67187 181980; 218.68062 1992977; 219.31299 7113044; 219.67501 7971; 219.74318 1895156; 219.74501 2883709; 219.75896 5645224; 220.2279 6292361; 220.26384 13938; 220.359 25991; 221.17731 2702716; 221.72005 892768; 221.84703 31225; 221.88458 46025; 221.98794 64410; 221.99663 3384; 222.01244 2794518; 222.36899 28838; 222.93335 162550; 222.95893 28454; 223.03551 8749; 223.16467 5300; 223.20628 23845; 223.21843 75647; 223.23097 50561; 223.41689 626034; 223.83055 9616782; 223.83152 1699584; 223.9549 118115; 224.01812 4905262; 224.69136 78109; 224.7394 47701; 224.81647 16891405; 225.12363 54392; 225.22679 23864; 225.592 10480794; 225.95921 1049; 225.9931 45037; 226.44579 4757; 226.5602 43133; 226.64767 70061; 226.6639 1162; 226.73805 25900; 226.78606 19977; 226.99444 3454193; 226.99998 32853; 227.04051 4056076; 227.08507 5552343; 227.21252 61976; 227.61464 97205; 227.6422 9069376; 227.83191 71851; 227.89778 8438; 227.96014 2718; 228.02602 1325057; 228.25362 270652; 228.62929 21597; 228.78466 71059; 229.38708 3823; 229.82313 1574651; 229.86087 1714; 230.18626 41482; 230.20239 97930; 230.23717 42002; 230.44165 44856; 230.77266 1146; 231.14621 4624621; 231.26582 988419; 231.54462 4550; 231.78781 125013; 231.8849 3107324; 232.02624 22323; 232.21814 1773966; 232.579 38960; 232.70313 33080; 233.02498 12311; 233.20762 19223991; 233.21221 21631; 233.29264 565166; 233.37711 29977; 233.41929 49006; 233.46876 9808; 233.86636 20067; 234.07616 45215; 234.20756 1309270; 234.23285 97410; 234.36177 1063984; 234.59427 743; 234.95815 20491; 235.14795 49371; 235.17506 79097; 235.29915 56053; 235.57064 4120; 235.6101 4738215; 235.73001 597; 236.05297 3638218; 236.17263 38731; 236.27409 57197; 236.29501 464801; 236.35291 1472553; 236.43988 43367; 236.60796 8462482; 236.61286 145612; 237.34092 1676839; 237.704 24120313; 237.72484 25588; 238.23178 57441; 238.4222 1167; 238.69666 96029; 239.00023 22796; 239.00449 47588; 239.30571 62583; 239.31239 21241; 239.41281 8787662; 239.5753 71112; 239.57926 549724; 239.78467 8086862; 240.2519 519316; 240.47714 23430; 240.77623 1866208; 241.28345 42579; 241.6046 45302; 242.23859 10589; 242.31286 4531095; 242.52573 3801774; 242.62212 499579; 242.97184 748628; 243.05562 9461; 243.07055 2830375; 243.39109 1782274; 243.42182 483; 243.64509 23978; 243.80057 4530828; 243.89328 20690311; 243.89576 6865723; 244.05276 72937; 244.1882 621940; 244.20287 500976; 244.3067 25861; 244.4796 21804; 244.48411 430114; 244.83094 1074171; 244.88268 662965; 245.0032 8726826; 245.14619 55475; 245.49583 1572357; 245.57586 36496; 245.64553 17748; 245.64734 452577; 245.72695 9126; 245.94215 2251155; 245.99827 722666; 246.27416 1888943; 246.53077 443772; 246.65722 119711; 246.69671 4733; 246.84678 62072; 247.22559 75059; 247.33021 783283; 247.44255 904514; 247.78536 21726; 247.94343 85621; 248.00693 18993962; 248.02137 48124; 248.05206 42876; 248.06289 24907; 248.07628 4487775; 248.08104 44116; 248.17583 10859; 248.30978 20519; 248.31897 119513; 248.32419 21700; 248.79724 26050561; 248.8783 308638; 249.16671 29979; 249.20413 21831; 249.51071 32803; 249.51642 2463615; 249.91458 43309; 249.94657 7590989; 249.9726 391956; 249.98387 33338; 250.13744 61241; 250.41928 18010; 250.90235 117482; 250.9294 689362; 251.25285 8232562; 251.42203 29590; 251.60692 21354; 251.99532 24607; 252.06887 13301; 252.21658 137457; 252.6159 23682; 253.11112 2287777; 253.19517 65031; 253.23911 4820; 253.36276 52219; 253.56838 28534; 253.62267 5097; 253.67524 4912; 253.88311 58728; 254.01609 4840; 254.04609 2900055; 254.06296 30293; 254.10348 1108719; 254.47236 822386; 254.99916 19236; 255.06526 3606491; 255.0839 8010; 255.19057 9212634; 255.34343 157757; 255.41816 1136420; 255.67596 8195083; 255.9693 22643; 256.06122 6728; 256.09354 21970570; 256.10607 47652; 256.19467 56724; 256.41881 888488; 256.49151 8957770; 256.77233 24383417; 256.91992 22299; 257.02151 20733; 257.07886 3423973; 257.14957 69627; 257.27462 688868; 257.34455 129776; 257.63504 46097; 257.68811 64981; 257.72322 8475; 257.76966 1690449; 257.81586 424595; 257.91606 5595; 258.03504 70210; 258.28894 89875; 258.36701 5382511; 258.94816 1820473; 258.96906 22449; 259.34038 20439; 259.3443 50124; 259.35099 28228; 259.57211 2533; 259.74764 13252; 259.77805 74342; 259.79688 26204365; 259.84904 192738; 260.16366 7618; 260.4052 29571; 260.63294 73664; 260.8899 2658229; 260.93384 56813; 260.94266 47216; 261.42776 6893; 261.59446 306989; 261.97574 6414283; 262.05751 36074; 262.28608 21685; 262.38289 3461213; 262.50573 5795927; 262.64019 4510064; 262.65136 21538359; 262.77362 45261; 262.87441 498572; 262.92866 1151716; 262.97009 798190; 263.336 542221; 263.58748 21815; 263.60319 4162122; 263.75187 9874; 263.94215 10588; 264.0142 124118; 264.36889 52936; 264.37602 4224705; 264.77716 2461583; 264.87304 52133; 265.0699 4652914; 265.33576 3755; 265.52852 6411229; 265.87069 36125; 266.12494 58697; 266.22451 42989; 266.53146 7783; 266.77421 4421; 266.88427 8346386; 266.89722 315101; 267.0007 61615; 267.58568 4206; 267.63784 60360; 267.81848 1622333; 268.62956 6745072; 268.76253 18815; 268.84515 1489555; 268.96528 7540; 268.99836 21748378; 268.999 19555; 269.41219 182851; 269.45841 38775; 269.51072 183242; 269.68805 4595159; 269.74515 15289648; 269.79557 54960; 269.91051 42585; 270.08882 5645864; 270.67692 3366853; 270.96902 34783; 271.43624 60636; 271.58314 784244; 271.67659 2165758; 272.21722 19424; 272.69971 6855; 272.77612 55580; 272.78775 5879288; 272.79353 2733; 272.98888 68742; 272.99997 1481; 273.00581 46345; 273.18673 1103; 273.37155 59582; 273.39093 101469; 273.79944 33470; 273.8259 1158; 274.06272 2151323; 274.31067 47375; 274.42429 1443123; 274.46662 2261433; 274.66108 3439883; 274.69496 43136; 274.75878 2449215; 275.27302 8969; 275.28242 12616; 275.30799 1746994; 275.35057 70353; 275.43846 3273; 275.55867 1311289; 275.58173 3353983; 275.62898 829293; 276.0946 3438690; 276.2043 13457120; 276.40254 91392; 276.54589 76405; 276.96325 9781; 276.97503 33644; 277.10273 1516324; 277.55349 1115184; 277.57751 4290; 277.59088 1784049; 277.63411 979545; 278.42658 2119266; 278.92838 3062370; 279.16811 3191; 279.36281 58876; 279.40766 4746; 279.59376 77259; 279.68764 26174; 280.05349 75632; 280.17838 4581999; 280.48367 262478; 280.93295 1362381; 280.97143 28198; 281.05906 34822; 281.25186 47454; 281.44745 1347; 281.53885 1837567; 281.77376 23502; 281.8986 7175; 282.01416 3998841; 282.03065 30309; 282.06781 37725; 282.23241 4387317; 282.47666 629980; 282.52223 76283; 282.57118 11640; 282.77207 2656700; 284.01083 38166; 284.02344 58124; 284.18353 4188956; 284.24404 1131285; 284.31858 24464; 284.32658 18128; 284.35768 26117; 284.39261 11920; 284.58229 6717; 284.67444 8874; 284.90251 43397; 285.08661 9490735; 285.25702 68770; 285.89785 55615; 285.92269 3790; 286.27818 22331018; 286.6675 77451; 286.75233 57385; 286.78347 7985; 286.80224 35208; 287.33921 12718; 287.44258 2475306; 287.52333 67521; 287.80905 5226; 287.93207 859091; 288.01905 417169; 288.35159 61885; 288.46691 1268573; 288.52482 3375; 288.54932 1194912; 288.93604 7638; 289.04472 182167; 289.20942 66525; 289.55958 231311; 289.59961 32181; 289.83759 8267307; 289.91886 17638370; 290.14949 286; 290.22624 41155; 290.79826 11390; 290.81936 71771; 291.34284 301569; 291.34466 79101; 291.6102 86; 291.70396 3645; 291.70421 7790882; 291.74005 25926; 292.31523 1112830; 292.33095 2913; 292.56639 66961; 292.75853 6070; 292.77871 24202; 292.79154 642044; 292.85376 12364; 293.09177 1575845; 293.15208 1005; 293.28773 13028; 293.37701 873783; 293.48188 19762; 293.8364 7911239; 293.95018 30961; 294.014 4910532; 294.0748 45633; 294.32943 3620; 294.56969 48146; 294.65143 5233; 294.72343 289765; 294.72903 33976; 294.78655 1292985; 294.92448 1482708; 295.19281 78203; 295.48341 2418997; 295.62079 711035; 295.73661 22935; 295.78991 7322; 295.96014 73069; 296.11911 33150; 296.457 2670; 297.08823 19919; 297.19805 3604568; 297.3199 9167; 297.54871 59730; 297.80041 238932; 297.81995 628269; 297.86945 1096134; 298.75065 1925371; 298.83581 1641518; 299.29051 9218; 299.62449 22723; 299.8596 75327; 299.96638 20287; 299.98833 7776431; 300.30439 4769; 300.88144 820955; 300.91426 6048177; 300.98338 731903; 301.32536 2078; 301.44914 23473; 301.79893 48753; 301.90181 3255805; 301.92789 1503262; 302.09567 69642; 302.19502 1909589; 302.46137 23316; 302.55967 1399883; 302.56277 8669522; 303.09913 7707; 303.28756 2102; 303.38258 23218; 303.90945 11708; 303.91047 8157; 303.9993 2748452; 304.18733 656959; 304.29547 3962; 304.39115 25498; 304.45024 37376; 304.47348 18708; 304.76827 15783; 304.85655 69600; 305.16984 5003539; 305.19205 5130186; 305.63531 19277; 305.74242 843; 305.84814 78665; 305.95827 24632100; 306.0532 687828; 306.19802 37313; 306.20723 34456; 306.29115 62986; 306.4106 73026; 306.46637 613528; 306.6276 2701; 306.88018 64109; 307.0657 7766007; 307.10637 1434904; 307.12767 2915; 307.41579 47673; 307.43479 6099; 307.50414 54786; 307.74235 1623064; 307.91959 8632945; 307.97084 54936; 308.10065 712; 308.13669 898196; 308.17492 32389; 308.23479 2577; 308.30496 1200805; 308.31947 7243; 308.39714 42309; 308.42499 656707; 309.13568 8927; 309.53123 2312955; 309.53415 20829; 309.6103 1189072; 309.7393 68161; 309.78755 2710742; 310.31848 900866; 310.33426 5321; 310.36767 30794; 310.39524 18613; 310.41335 1109943; 310.49129 76500; 310.77488 1623463; 310.92621 72021; 311.216 48463; 311.64928 599; 311.75538 36989; 311.92493 39801; 312.04886 1217510; 312.08162 54392; 312.12874 33602; 312.15804 403300; 312.40012 23838; 312.50653 1900296; 312.79234 4894514; 313.35156 2019493; 313.45886 75948; 313.48838 58552; 313.59869 152953; 313.61178 109118; 313.62724 25116; 313.6302 38078; 313.7752 57641; 314.0231 20769; 314.22592 1557419; 314.2614 65956; 314.28997 1357089; 314.47875 9023475; 315.13213 2618; 315.41683 716375; 315.47187 15667; 315.5092 19008; 316.79554 149767; 317.24547 6837; 317.36072 65230; 317.47745 3254; 317.80998 76234; 317.82685 24034; 317.89355 601274; 317.95245 2562296; 318.25799 1386613; 318.34852 181197; 318.42672 28950; 318.58585 1256202; 318.90817 103736; 319.05688 25874; 319.10552 11580; 319.19388 48946; 319.36287 21717; 319.4242 95632; 319.49374 10523; 319.5034 50136; 319.62374 5900011; 319.94899 1150430; 320.14721 38237; 320.351 7283; 320.42662 1533270; 320.46881 2813352; 320.47935 42604; 321.25767 8652399; 321.46543 40229; 321.5179 92967; 321.70969 70573; 321.78616 7382; 321.90535 69572; 322.01538 8837; 322.05947 4650102; 322.32152 576802; 322.47004 1882429; 322.71725 21124; 322.87084 13570; 323.13877 3517206; 323.44289 17468; 323.97188 1681478; 324.38401 5992; 324.42894 41405; 324.53731 27848; 324.66509 25920; 324.84063 1994669; 324.87301 6268819; 325.12589 1884444; 325.18901 14130; 325.58196 152490; 325.61456 1417944; 326.58996 2392187; 326.77284 30324; 326.86437 1207978; 327.20638 1344600; 327.59709 1904370; 328.13018 16997293; 328.3853 8989589; 328.59069 5760088; 328.66646 100953; 328.80058 275912; 329.16421 27676; 329.18784 3423; 329.73975 44303; 329.75618 90874; 329.79001 41838; 330.01905 21406; 330.04133 4171; 330.05195 1482704; 330.25072 79124; 330.93075 1158674; 330.96606 52331; 331.60354 8290; 331.65324 78500; 331.7172 21931; 331.99374 7635210; 332.07865 1994570; 332.10539 1103301; 332.209 6974379; 332.37955 15986; 332.59086 58965; 332.8116 1335264; 332.83485 52824; 332.8594 52878; 332.89985 13615; 333.07445 52170; 333.32021 396238; 333.54267 4163577; 333.70401 57744; 333.73381 122278; 333.88395 24203; 334.1623 9263; 334.50994 15239; 334.97804 4943568; 335.35715 15783; 335.36483 14138; 335.41105 3331743; 335.61614 9200693; 335.62927 24429; 335.67228 43263; 335.68594 7032031; 335.95315 1897687; 336.03977 508322; 336.14645 1208126; 336.18721 73607; 336.39591 21388; 336.85155 54110; 336.89282 7919766; 336.97846 27466; 337.43775 27058; 337.49197 5458165; 337.65858 66639; 337.65947 102926; 338.25253 36954; 338.31158 161070; 338.40534 3886; 338.40762 49568; 338.5019 123765; 338.51467 3899008; 338.75043 58224; 339.08311 758619; 339.13813 19283; 339.64233 8019890; 339.91608 4050054; 339.97599 8946; 340.02446 23044; 340.17744 7194888; 340.37287 29746313; 340.5773 19502302; 340.79668 15979193; 340.84189 149831; 340.96017 72242; 341.51197 3424; 341.57937 974; 341.84512 4905790; 342.06522 57554; 342.08333 1495; 342.76485 12155; 343.24641 2433076; 343.36472 13000001; 343.44934 9813126; 343.6671 43894; 343.86425 1371562; 344.06641 299052; 344.09216 2795827; 344.10224 235918; 344.32041 888; 345.1997 74712; 345.44685 958873; 345.51071 91906; 345.57323 1863548; 345.57553 66488; 345.71705 8516697; 345.78702 172302; 345.81559 426; 346.1138 212657; 346.30768 188178; 346.33008 4269463; 346.36152 170097; 346.4466 208; 346.53946 39279; 346.5471 27214; 346.63582 784535; 346.9026 57632; 346.95918 21057; 347.05759 58285; 347.24824 682872; 347.40703 561023; 347.67062 1009696; 347.81173 21259; 347.88604 98271; 348.74241 28308; 348.80498 342048; 349.21842 49743; 349.22341 8369; 349.22803 25930; 349.27868 4400080; 349.56648 4100950; 349.73717 6581055; 349.76147 10984; 349.82469 9788984; 349.84588 10582; 349.89954 38117; 349.95196 807077; 350.15905 2717; 350.34102 4340736; 350.35641 121416; 350.5479 19101; 350.63329 1386085; 350.74654 75917; 350.86785 940215; 350.92735 6969499; 351.02906 13024; 351.10319 1007282; 351.17883 145772; 351.25282 3987688; 351.52034 93; 351.85791 2367; 352.55831 64144; 352.56124 28409; 352.77217 24225; 353.0715 12430; 353.27019 25979; 353.28815 1747762; 353.67984 293168; 353.71459 2629384; 353.81768 77207; 354.17211 1748992; 354.20341 23860; 354.21608 27647829; 354.4305 2703231; 354.59777 841389; 354.66411 2219766; 354.69917 9868; 354.73713 3959; 355.07357 7102; 355.40423 980272; 355.59895 37006; 355.94354 28935640; 355.98062 8527894; 356.01023 16656790; 356.03114 55996; 356.22512 10525; 356.32145 677620; 356.3412 1631920; 356.51265 2508; 356.62674 108237; 356.63679 11027; 356.73787 9949110; 356.75289 3253970; 356.88719 52449; 357.1014 40224; 357.10667 73936; 357.15461 335901; 357.23073 3763; 357.3066 45179; 357.51696 19975; 357.52284 2421; 357.54882 907707; 357.59462 5331705; 357.71684 8303; 357.85725 47909; 358.18073 4544790; 358.19236 21008; 359.07 152737; 359.17216 947755; 359.23718 56722; 359.38474 446771; 359.41152 9629885; 359.45952 1582745; 359.53459 43338; 359.7051 27072; 359.81429 4100; 359.99678 591495; 359.99707 60374; 360.00009 4775935; 360.09042 4799156; 360.11926 22960; 360.12377 588387; 360.17981 10787; 360.19108 65435; 360.30749 4626873; 360.42841 415054; 360.92217 8897; 361.05473 2497061; 361.33962 8316; 361.52417 2163116; 361.59432 5473904; 361.66742 67286; 361.81187 19861; 361.8315 8969593; 362.1814 3807357; 362.51804 9898; 362.63739 390; 362.96558 41703; 363.02034 45116; 363.09561 8546; 363.23915 2694829; 363.27566 2436323; 363.4274 12735; 363.4434 4612367; 363.81772 164955; 364.04171 4150154; 364.13747 17882; 364.16013 29740; 364.2245 849922; 364.59086 78898; 364.59781 2684685; 364.61561 22047169; 364.64666 61721; 364.75323 2315; 364.80903 4119; 365.37486 1719670; 365.39794 1985315; 365.82682 109760; 366.11779 2992; 366.27512 814252; 366.31198 13795; 366.49601 40432; 366.62424 5066; 367.03369 23334; 367.15157 217608; 367.77245 8305; 367.93122 3809270; 368.0853 76957; 368.08624 53668; 368.1564 11959; 368.21857 38980; 368.41041 46310; 368.8126 157358; 369.45084 10063; 369.59884 24867; 369.70824 35769; 369.9036 20011; 370.29748 189018; 370.39264 9135; 370.46869 375984; 370.58561 41286; 370.62987 1325794; 370.63464 667046; 370.72964 45581; 370.76077 7394; 371.23595 70477; 371.36797 139687; 371.41527 46932; 371.4727 7522; 371.47793 9747; 372.03433 31525; 372.17952 2787913; 372.37161 7141446; 372.54477 16692; 372.55706 13076; 372.66764 4085989; 372.7044 25071; 373.50275 4376; 373.61656 19134; 373.69583 216178; 373.71555 6055; 373.82604 6646170; 374.01753 24409; 374.09442 3343112; 374.58373 49319; 374.5872 25191; 375.23572 2219; 375.40427 4684993; 375.52506 981035; 375.6251 8030063; 375.64459 103728; 375.70033 49944; 376.01602 1955231; 376.11495 8399; 376.20641 672501; 376.41195 8394714; 376.4819 4190283; 376.67118 1583809; 376.68251 13596; 376.74474 389336; 376.79026 54803; 377.00665 14228; 377.05955 30776; 377.17621 79789; 377.29865 147540; 377.35226 1104360; 377.37173 1374718; 377.45417 4634690; 377.49109 4873; 377.59693 6798068; 377.75718 2250938; 377.78109 3201738; 377.98272 1990988; 378.04145 1367916; 378.20475 54091; 378.61351 46604; 378.75536 3081392; 378.91324 38541; 379.32612 51655; 379.45292 3096; 379.45488 26648; 379.52197 28547; 379.55521 12407; 379.87586 52176; 380.09409 31040; 380.40375 1574015; 380.42935 4699094; 380.55345 1721; 380.81681 7166; 381.05809 97628; 381.2523 39330; 381.34568 165428; 381.35361 15128; 381.7397 23150; 382.01077 2332046; 382.11209 573307; 382.15479 141827; 382.2242 41432; 382.2457 68955; 382.55648 52083; 382.7076 3350; 382.77846 1434734; 382.83594 67485; 383.06131 26212; 383.15603 56825; 383.27015 129567; 383.70782 822973; 383.74712 4791057; 384.23279 7155; 384.32672 27326884; 384.35468 78378; 384.36163 5321; 384.47779 4085; 384.65593 34397; 384.72792 54496; 384.7635 48287; 384.78872 9285130; 385.32479 77489; 385.33166 1161; 385.73652 270381; 385.81065 1898211; 386.20207 1314161; 386.43875 9306; 386.48761 4786; 386.81722 588942; 387.02512 20216; 387.06797 1175537; 387.17973 484450; 387.7776 863532; 387.83232 74026; 387.91374 2122; 388.01649 6483997; 388.06131 31317; 388.09399 8114; 388.18226 1721296; 388.25784 117693; 388.78416 18064; 388.9096 13213692; 389.06139 496855; 389.09438 27940; 389.1866 142086; 389.4387 22273880; 389.50909 68617; 389.56728 15799562; 389.84167 1863706; 389.99056 29363; 390.12946 24313; 390.26586 1715640; 390.57056 36559; 390.69069 8531344; 390.87368 29749; 391.04115 2651458; 391.09393 3559728; 391.24292 3419188; 391.33601 79270; 391.3784 30578; 391.50263 6895308; 391.76019 125266; 391.87609 1993473; 391.90397 1263822; 391.9796 76797; 392.00722 3400361; 392.23129 3040; 392.26739 2738041; 392.3218 6094; 392.44603 1757251; 392.48657 8827; 392.84104 386; 392.84281 30082; 393.18053 4359903; 393.40397 29988; 393.54292 21092993; 393.69943 2720; 393.97572 41404; 393.9947 4029476; 394.09417 20468; 394.1544 26547004; 394.22466 876813; 394.37001 1406770; 394.44896 4402215; 394.53752 2771; 394.60949 3119117; 394.70908 22974; 395.3082 26412; 395.66397 8029; 395.74628 46408; 396.00981 27137; 396.2721 75835; 396.3305 759887; 396.4917 8607; 396.84628 10137; 396.97753 3366270; 397.27547 1938511; 397.54757 72707; 398.04643 26920945; 398.19782 1917811; 398.49111 1444255; 398.59085 1000274; 399.12844 1624061; 399.34693 20696346; 399.49267 439147; 399.55634 189294; 399.55915 67308; 399.58195 20635; 399.70214 10269; 399.89117 75378; 400.07103 22740; 400.42189 42093; 400.48929 2318308; 400.80146 15021; 400.84615 365402; 400.96676 59287; 401.09418 3517061; 401.10984 2639742; 401.24781 133206; 401.32256 1515050; 401.51479 79690; 401.55805 24716; 401.59205 15938; 402.04864 76030; 402.13384 520357; 402.16256 18376; 402.17858 26310; 402.38724 12585; 402.50163 2518023; 402.51697 55; 402.56458 8184518; 402.59097 3584743; 403.34308 4089; 403.39171 5193321; 403.46511 10215; 403.48024 11689; 403.54595 19653; 403.59003 8403614; 403.73292 345924; 404.29439 4950630; 404.82696 1354590; 404.94243 6861235; 405.48549 29542; 405.67741 4830852; 406.25315 4424; 406.34352 2132117; 406.46569 20199; 406.5423 1214940; 406.62156 70555; 406.81447 732630; 406.92068 138655; 406.93425 4640729; 407.50146 7480; 407.5434 14265; 407.54663 54474; 407.74462 24827550; 407.76805 32115; 407.95918 76958; 408.01997 56380; 408.4334 870242; 408.43848 72096; 408.48077 708507; 408.59826 5484092; 408.63916 74169; 408.77803 4014119; 409.21613 74329; 409.5352 4294135; 409.65131 562573; 410.0101 1726445; 410.1464 7692078; 410.37091 1424447; 410.46892 266; 410.49802 27819661; 410.62566 1698737; 411.10244 59106; 411.15436 8603667; 411.30783 32245; 411.37963 139654; 411.41854 42104; 411.44529 4466; 411.52279 708410; 411.52647 951814; 412.01131 19618; 412.70876 952; 413.08778 173379; 413.09315 1230091; 413.28018 20754; 413.34033 22665; 413.8139 39972; 414.15963 364492; 414.32259 2294; 414.39964 1038798; 414.46916 9661; 414.58065 3152958; 414.61294 2527300; 414.79009 2876; 415.04265 30290; 415.22465 50483; 415.46425 1793360; 415.48376 9243574; 415.48764 64633; 415.61809 14795; 415.94887 106071; 415.95966 5691414; 415.99718 98266; 416.17965 25601; 416.41847 63235; 416.6377 18454; 416.69722 15897; 417.02566 7431387; 417.03396 562502; 417.40822 1226; 417.66688 75249; 417.78043 8651550; 418.27622 43152; 418.27831 758; 418.46804 619922; 418.70426 4174; 419.05646 2937403; 419.10042 19468; 419.47481 170715; 419.50943 4438; 419.54691 14866; 419.55835 5961; 419.64322 3967; 419.84439 33541; 419.99407 14109; 420.00916 1846688; 420.02473 10481493; 420.36778 44192; 420.3686 32494; 420.58924 3936; 420.75256 3384661; 420.9763 51223; 421.43142 47664; 421.87514 20025; 421.88323 2223576; 421.94124 1169690; 421.98709 1980352; 422.0018 1216501; 422.00487 4273; 422.13031 26930; 422.22831 2433003; 422.23659 33156; 422.316 44672; 422.50466 6542; 423.21111 985464; 423.36664 6482; 423.44059 3601874; 423.4668 66950; 423.55379 2016147; 423.55783 5616; 423.82727 61167; 423.85052 1774095; 423.87929 6769; 423.89726 6932825; 424.00076 2503534; 424.00853 4656; 424.02938 993679; 424.03701 4683848; 424.08273 1362325; 424.27118 27187; 424.6365 468089; 424.82894 57491; 424.84446 70208; 424.952 26406; 425.20869 3583783; 425.41309 64185; 425.65861 64572; 425.74432 1105154; 425.75846 53316; 426.0703 72338; 426.12751 23672; 426.18248 32795; 426.50553 6141850; 426.7924 1083956; 427.03447 6928; 427.18313 1876293; 427.31178 4634062; 427.5385 174693; 427.89781 575056; 427.93928 57460; 428.26126 8257129; 428.40041 1404558; 428.56455 364553; 428.8995 20980; 429.29214 196514; 429.47217 7849585; 429.73441 989; 430.06867 5198954; 430.12646 29280; 430.36566 123317; 430.41074 85261; 430.4645 51369; 430.79424 23603; 430.82052 74101; 430.85591 349970; 430.88626 5998360; 430.90396 3189; 430.9945 1404597; 431.02949 21901; 431.16044 88817; 431.16636 28248; 431.22287 4603883; 431.28779 196631; 431.33981 2927846; 431.37365 97834; 431.73296 13985; 431.84533 1793881; 432.05584 29632; 432.09644 470191; 432.51594 1670939; 432.68474 36993; 432.82846 9029638; 432.94705 1158680; 433.04078 790175; 433.21737 27190; 433.35797 798992; 433.40731 1012; 433.59707 1742; 434.41305 34489; 435.00143 33141; 435.25992 13075; 435.32031 18848; 435.34892 7298543; 435.58969 3743933; 435.95885 1301944; 436.28336 62155; 436.47365 47420; 436.73875 68964; 436.77172 25355; 436.8763 78497; 437.02779 635139; 437.15517 2125; 437.22016 3235468; 437.94491 124172; 437.97109 5579916; 438.21646 27591; 438.23326 7353340; 438.57923 33334; 438.59907 24008; 438.62486 1558713; 438.78809 6591743; 438.87857 40679; 439.16757 7038203; 439.40858 71146; 439.43345 27239; 439.62696 4893636; 439.90155 5024; 440.00495 74467; 440.62035 48889; 440.67623 18757; 441.06435 801711; 441.06889 1196764; 441.46367 6700567; 441.7493 2965287; 441.83611 81033; 441.97798 4302; 442.48365 31548; 442.55152 501225; 442.57101 4540181; 442.68842 56641; 442.70892 68800; 442.87742 15213; 443.23142 21909108; 444.02814 39880; 445.06077 771686; 445.3102 1995849; 445.55276 52474; 445.57061 38204; 445.80697 1932; 445.82751 11112; 445.99811 15229; 446.02062 21483; 446.212 1335058; 446.3532 384474; 446.38352 8078210; 446.73227 13330; 446.73375 4982742; 446.76616 20620; 446.79655 232410; 447.22956 204140; 447.37418 40921; 447.78912 697559; 447.92597 28357; 448.27953 79140; 448.28886 22027; 448.45209 186409; 449.30368 344; 449.34986 26603; 449.50708 195750; 449.7307 2078087; 449.74884 489296; 449.75466 14935; 450.14613 2725604; 450.18239 47167; 450.35959 804477; 450.38241 58599; 450.58377 12181; 450.58813 921469; 450.74313 3572009; 450.86131 1211862; 451.01676 1472837; 451.26342 671625; 451.44286 381040; 451.45288 6986; 451.79107 1761627; 452.02528 4085075; 452.2344 69165; 452.33493 423192; 452.46463 6661742; 452.54856 60456; 452.86188 685476; 453.13088 79263; 453.51766 17534; 453.6062 680559; 453.70296 9364; 453.85278 8290; 453.98416 899284; 454.01013 23002; 454.33986 8035058; 454.36887 64126; 454.42598 61878; 454.958 4619820; 455.33392 40745; 455.85717 4670522; 456.00644 6864567; 456.74969 73150; 456.89484 67529; 456.98438 3054682; 457.20981 8297645; 457.39054 2919011; 457.40818 1734007; 457.48 1668380; 457.67556 171; 457.76491 4694; 457.78863 25306135; 458.00609 1363077; 458.19183 928793; 458.24083 1801645; 458.39247 4198448; 458.86402 1532287; 459.2472 1793698; 459.45367 75366; 459.45469 7757742; 459.63762 4667; 459.7247 143237; 459.77813 161525; 460.04157 2325056; 460.24943 40902; 460.29827 465329; 460.59636 9274778; 460.72577 26917; 460.78425 5897778; 460.79484 9202; 461.08835 286471; 461.5478 62063; 462.16992 1991673; 462.19914 30148; 462.23626 3543643; 462.33454 8850; 462.64471 7591226; 462.96608 97653; 462.99161 4441; 463.16735 7912; 463.42922 1819609; 463.51307 1025409; 463.67572 6682468; 463.90373 71694; 464.25508 17129; 464.82878 1104227; 464.9277 2519; 465.22826 29677; 465.52539 2937005; 465.81766 30976; 465.9342 3972111; 466.02435 66832; 466.24599 4891044; 466.28765 9953; 466.35425 26120; 466.4174 28510; 466.45721 1954009; 466.98489 6352; 467.28951 45683; 467.30156 625026; 467.38611 4111642; 467.77723 1410514; 467.80511 4681438; 467.88105 593; 468.05642 78283; 468.098 540665; 468.13906 915; 468.47596 3698; 468.64865 514538; 468.68213 16704547; 468.7012 20884; 468.89687 12488850; 468.98431 1649370; 469.39702 12078; 469.78331 78135; 469.82509 29504; 469.86655 918805; 470.10555 662048; 470.49208 26954; 470.70966 1751808; 470.82502 151495; 470.96322 1785614; 471.20128 125593; 471.52183 26882; 471.7248 25443369; 471.73363 2635917; 471.77043 1977159; 471.77808 9320; 471.7817 9133545; 471.84569 1240637; 471.85238 1120716; 471.86002 1673; 471.91404 12676; 472.13874 4663; 472.761 51963; 472.83475 1523; 473.20339 4330045; 473.46343 28554; 473.58243 2733204; 473.73516 5542; 473.86628 1488902; 474.27125 2134563; 474.43501 13562; 474.4383 21528078; 474.75872 273825; 474.76176 407324; 475.06698 1875302; 475.26743 59921; 475.35502 24377; 475.50763 27140; 475.63253 45103; 476.16518 86985; 476.31522 3918902; 476.45067 9591452; 476.80143 2395197; 476.83182 162; 476.85441 9140432; 477.09 9588; 477.16389 2464; 477.22596 1140887; 477.75026 1996388; 477.757 1103990; 477.83228 3828461; 478.08174 1421845; 478.14738 51498; 478.21218 62732; 478.26236 1935402; 478.66353 75412; 478.67254 51262; 479.60952 74532; 479.64558 48480; 479.79766 3142236; 480.02781 6974463; 480.22746 2845; 480.32508 2629492; 480.68633 706952; 480.70763 7126571; 480.78653 1585654; 481.26025 2183134; 481.37563 5105339; 481.79821 5936309; 481.93689 22587; 481.96045 759536; 481.97965 28850; 482.48147 21175; 482.59273 7392458; 482.92965 34976; 483.42283 49478; 483.85861 38018; 484.32835 20359; 484.3917 6761850; 484.80762 1973113; 485.17806 227687; 485.60063 795; 485.69155 58725; 485.74548 53837; 486.14864 26317; 486.23496 243849; 486.38913 12474; 486.4956 77717; 486.68537 100117; 486.86571 39330; 487.22197 1603; 487.29979 3071647; 487.36673 68477; 487.3674 63620; 487.39321 24083; 487.45127 50590; 487.46489 58310; 487.60121 48354; 487.70622 27; 487.83436 8371; 487.98112 58163; 488.06098 23619; 488.4365 43451; 488.51833 560895; 488.56945 63849; 488.8421 7049173; 488.8896 7362031; 488.97131 108301; 489.18577 1012501; 489.53556 65401; 489.61823 66375; 489.84849 6960; 489.94531 7592573; 490.09861 1454; 490.23851 81647; 490.36741 9779505; 490.38991 70131; 490.43499 27170; 490.53399 4656649; 490.61668 198; 490.67911 7378373; 490.79717 28403; 490.89749 28835; 491.029 10909648; 491.08926 7840210; 491.18579 50149; 491.21782 5125; 491.31118 26280; 491.33557 888164; 491.80035 79465; 491.85221 1388354; 491.90835 12343952; 492.36636 3393; 492.40068 17289; 492.44746 293475; 492.59844 43985; 492.63342 864845; 493.35171 380254; 493.38135 1611489; 493.47404 47312; 493.54568 8475773; 493.93616 3408998; 494.13222 20441; 494.13655 75344; 494.39363 6503076; 494.46237 5752; 494.4721 2786; 495.03298 534217; 495.15082 1957508; 495.15186 2825185; 495.28623 24245; 495.3896 31687; 495.58615 24797; 495.60771 23728; 495.71004 28014880; 495.82499 56784; 495.98058 3887290; 496.24579 9245496; 496.31841 26348; 496.70518 24016767; 496.83462 46255; 497.03097 147682; 497.13855 19718; 497.27172 26325; 497.49099 69420; 497.57545 1588417; 497.59816 27625; 497.65898 8122224; 497.75244 30602; 497.78908 3099858; 498.33015 1838; 498.81428 124247; 498.83575 27449; 498.85701 1680955; 498.8848 832656; 498.94004 48113; 498.98889 1389483; 499.03971 3254180; 499.2365 385358; 499.33945 7906; 499.35543 21003309; 499.64691 13034203; 499.72172 5767927; 499.86508 2784089; 499.9746 6262 +<7, 3>: 0.10576 57250; 0.29405 28351; 0.60511 3688285; 0.60987 39888; 0.62901 11969; 0.69471 48359; 1.44217 70992; 1.6185 603; 1.65939 4840; 2.20498 28646; 2.32004 4027425; 2.78195 9771471; 2.80793 677563; 2.84149 6244; 2.89343 2289269; 3.12735 28533; 3.32438 56255; 3.42196 283697; 3.46727 58834; 3.69137 3484557; 3.69493 3280662; 3.71764 20103122; 4.0315 1955005; 4.03592 5643819; 4.04971 41860; 4.05978 1479506; 4.28102 126504; 4.38005 5223; 4.85206 1813408; 4.89236 14189; 5.23739 1336806; 5.55942 21768; 5.58225 9860; 5.8369 423621; 5.91454 9079157; 6.27551 5986301; 7.01737 4551503; 7.07259 61668; 7.07392 1994; 7.08118 357509; 7.41671 502421; 7.78011 322420; 7.81209 1006849; 8.02954 51893; 8.0326 344656; 8.24587 55553; 8.27851 6936488; 8.5288 20713; 8.59147 76408; 8.6758 74055; 8.68744 4964887; 9.05029 1954273; 9.06897 112332; 9.1686 52149; 9.3467 68323; 9.36773 50229; 9.54476 737395; 9.70378 817469; 9.94934 5626579; 10.27228 1584330; 10.27972 1718; 10.47048 909560; 10.53988 39089; 10.90383 22487; 11.55684 82876; 11.60779 1323321; 11.63657 5152; 11.63854 3152; 12.2023 4059856; 12.61458 39653; 12.7778 60761; 12.87726 1422591; 13.14305 3893; 13.2129 1217375; 13.28642 318053; 13.2995 100991; 13.44553 28228; 13.5069 1142934; 13.62669 15875; 13.89181 774; 14.11435 17732; 14.12752 5985; 14.31527 54340; 14.49851 5476; 14.54402 24546; 14.80442 674539; 14.81925 60926; 15.58527 2516156; 15.7363 1215095; 15.79488 2252; 15.94195 9749; 15.9571 72764; 16.08623 978394; 16.22553 374814; 16.37393 4089755; 16.85406 63303; 17.031 9059; 17.90291 1936072; 17.93193 49641; 18.03628 6166833; 18.06891 24838; 18.08819 629; 18.29342 1968480; 18.54045 7185; 18.60309 48899; 18.62218 127798; 18.64606 8555; 18.79392 27432; 18.93526 1021; 19.0447 11681; 19.83018 2545384; 19.92291 13531; 20.01536 110187; 20.01868 9970; 20.02101 1173583; 20.206 25177840; 20.29776 1835265; 20.30931 8158; 20.58932 20040; 20.78853 52729; 20.92052 7394358; 20.93784 3090; 21.01992 76659; 21.07114 10541; 21.26902 17416; 21.30205 90044; 22.12039 7863917; 22.31324 1380206; 22.50676 31321; 22.56912 4608; 22.7646 2602; 22.7874 597338; 23.53545 4297538; 23.60304 4442; 23.87639 41115; 24.40313 20981287; 24.95813 1851594; 25.04874 8353; 25.13026 68808; 25.13725 157903; 25.17487 7522; 25.2716 172; 25.48007 73483; 25.53595 33046; 25.68246 6987; 25.77636 1929890; 25.85719 11537; 26.15268 3190935; 26.29648 5432; 26.89077 1838; 27.07194 1972629; 27.11942 1181354; 27.1587 16264; 27.30861 133052; 27.48099 654; 27.62025 3182; 27.796 6925965; 27.83182 69382; 27.98013 3950775; 28.01392 5088; 28.19668 7954117; 28.34162 28663; 28.68747 37846; 29.84116 48670; 29.95365 2584971; 30.0953 22813; 30.14335 408413; 30.32176 1177829; 30.41705 2494872; 30.57971 5515036; 30.97317 7821493; 31.03512 62987; 31.03772 3360985; 31.13337 5217; 31.18761 1923; 31.40721 147808; 31.5914 13744; 31.81208 1277559; 32.25499 2703813; 32.4993 28327; 32.53356 423; 32.75429 21293; 32.81531 4806739; 33.25028 44683; 33.27142 113561; 33.47038 9540347; 33.70876 12661081; 33.7374 34767; 33.9817 26801; 34.1869 6286203; 34.21976 4361108; 34.317 5185734; 34.36408 70089; 34.41688 1525695; 34.45929 22414; 34.62656 41037; 35.33771 62003; 35.39601 1062205; 35.42225 5185; 35.44868 15894; 35.46639 16266; 35.62949 1303; 35.8168 70350; 36.1503 3907083; 36.27965 1121758; 36.31698 36490; 36.34875 7807464; 36.42999 22116; 36.55658 803509; 36.65531 29335; 36.8467 28739; 37.16523 1583773; 37.16885 20536; 37.67026 5081; 38.38081 6546226; 38.41503 25562; 38.53397 88385; 39.19928 14472; 39.25941 573452; 39.30402 32122; 39.7323 1723438; 39.79322 72183; 39.86228 51843; 39.96958 109598; 39.99297 9554064; 40.30852 72551; 41.46172 5720799; 41.47994 47640; 41.5903 3975433; 41.59827 100939; 41.90054 1370444; 42.47893 13943515; 42.5116 26970; 42.60467 46075; 42.69449 189156; 42.77332 7109; 43.10056 561587; 43.29251 6100; 43.58674 6755; 43.61551 96356; 43.68741 15475; 43.94617 26636; 44.00178 156881; 44.00401 2085591; 44.24417 71259; 44.51362 8490615; 45.02903 21354; 45.06906 56116; 45.3302 15184; 45.46327 58125; 45.78436 6812; 45.80629 195107; 45.84654 2802628; 46.48963 27335; 47.1119 9485; 47.45542 136904; 47.74901 105117; 47.94787 78958; 47.94916 20358; 48.09422 61352; 48.1643 176656; 48.18332 71410; 48.51809 36180; 48.654 30437; 48.73128 28421327; 48.9572 149656; 49.02788 1081; 49.04272 31724; 49.24185 706208; 49.64271 8854; 49.75692 36392; 49.99137 168645; 50.04894 45274; 50.17273 40941; 50.2106 2367039; 50.28535 18053996; 50.30803 1079952; 50.41339 725; 50.73179 57927; 50.78504 1254429; 50.94124 302478; 50.98111 3944737; 51.04765 6078; 51.42292 663668; 51.4828 7578069; 51.59318 20041; 51.61036 73671; 51.80178 1170079; 52.06301 25899; 52.09497 43133; 52.42413 132001; 52.92744 115844; 53.0284 51422; 53.08446 7996; 53.10956 308986; 53.20681 25103; 53.28267 350820; 53.28714 2816; 53.70172 26921; 53.80724 53771; 54.096 1034877; 54.35939 3196727; 54.41722 6825; 54.46638 1460713; 54.47024 44916; 54.52476 20750; 54.79447 31310; 54.8245 62802; 55.03325 1660366; 55.07297 794682; 55.08055 4533; 55.22242 54215; 55.68365 2217557; 55.80034 143465; 56.1177 54647; 56.30132 9225; 56.39854 7949; 56.41752 47180; 56.42958 3137612; 56.68388 58269; 57.07174 1872419; 57.19606 9231475; 57.70012 433; 57.93375 718386; 58.0903 78681; 58.20932 191650; 58.29443 8031980; 58.34563 2289072; 58.62536 188385; 58.83838 124127; 59.11494 1844985; 59.17159 3352767; 59.37907 195831; 59.63345 3879567; 59.74733 20398; 60.16429 684230; 60.2461 64665; 60.43132 1170618; 60.57797 49115; 60.64727 22686; 60.84951 22112; 60.85805 1642534; 61.51352 4703543; 61.73549 878306; 61.98606 581719; 62.02526 715109; 62.04662 4430; 62.17427 45728; 62.19679 54392; 62.2254 28240; 62.37273 1799920; 62.67625 16304; 62.81517 30902; 63.04691 12715; 63.09936 16769; 63.11003 1024425; 63.34562 8759; 63.48074 5605; 63.60463 3684; 63.70433 61131; 63.83335 9213073; 64.13357 3025627; 64.22048 417; 64.22079 54653; 64.24506 72549; 64.39243 39255; 64.44881 37830; 64.83021 4003; 65.42056 1011; 65.53471 3080595; 65.8742 5753; 66.02157 34883; 66.23398 24593; 66.31413 33330; 66.55086 2866; 66.61687 60999; 67.06856 73595; 67.07735 1030790; 67.27064 4395827; 67.48024 69912; 67.61307 43622; 67.69818 26506; 67.90046 79974; 67.97317 9172240; 68.05504 65756; 68.24465 5158885; 68.83164 3159073; 68.90656 47614; 69.09879 861759; 69.21171 66842; 69.37902 69419; 69.57655 14447; 69.5955 9531; 69.60066 20053543; 69.75455 2816018; 69.85139 29231; 70.08289 4102344; 70.8722 425839; 70.94082 140572; 70.95917 4614693; 71.50976 27237; 71.57544 3119226; 71.58621 6029; 71.90905 826748; 72.1508 1845877; 72.16275 807795; 72.3045 49061; 72.40214 1427; 72.61488 4005436; 72.84758 3420714; 73.18905 1018574; 73.22408 4290862; 73.28266 17091; 73.31578 71510; 73.4719 1870278; 73.6876 1332311; 73.71489 1319531; 74.12754 61078; 74.51117 72918; 74.82996 26450241; 75.01109 9757902; 75.06531 50595; 75.23399 9757; 75.34485 604979; 75.36328 27580; 75.37075 354838; 75.37367 7466; 75.77096 40572; 75.87651 26852; 75.90384 45218; 76.16364 19918519; 76.18059 28514575; 76.53253 27342911; 76.69984 2856763; 76.76517 4566568; 77.25804 9793; 77.47376 5707; 77.47377 29621; 77.48003 7024006; 77.61768 47907; 77.87961 216; 78.03303 74766; 78.54102 9539896; 78.68036 77006; 79.31459 3080273; 79.38069 405; 79.3888 7474; 80.12679 150667; 80.58095 77781; 80.64112 1203; 80.64132 25297; 81.07235 28326; 81.09421 1588902; 81.2231 18236; 81.29917 9761184; 81.46588 45031; 81.74861 162285; 81.82832 7504936; 81.92971 21710; 81.98219 59387; 82.05737 226119; 82.07939 25861; 82.1834 4621683; 82.34075 28598; 82.72092 21974; 82.74734 5373; 82.88454 27508785; 82.91749 49598; 82.98963 179848; 82.99763 76167; 83.10989 28336; 83.17237 3602990; 83.17891 7737; 83.52495 64757; 83.77114 41101; 83.78128 25152; 83.8225 25110; 83.8922 51874; 84.00543 1965730; 84.03478 15794; 84.06666 5844542; 84.49721 150090; 84.52308 77299; 84.63196 5198827; 84.77775 1167023; 84.91162 27043731; 85.31073 33020; 85.477 406150; 86.16103 656701; 86.19899 1903; 86.20825 47689; 86.36143 6737161; 86.42123 27094; 86.56371 1918811; 86.8903 63600; 86.89104 20298; 86.91604 1668006; 87.08918 178649; 87.19368 67052; 87.33888 857; 87.50473 679769; 87.54406 2629578; 87.83177 633953; 87.83268 29709; 87.99111 2640535; 88.08608 25333; 88.1073 60609; 88.1175 167754; 88.80456 4382431; 88.81863 9742044; 88.85237 36422; 88.91693 385317; 89.04591 12795141; 89.11215 1904598; 89.62696 3596132; 89.70718 2620502; 89.75867 8886718; 89.8665 13576; 89.99359 379018; 90.00613 2305; 90.14023 186404; 90.1606 17229895; 90.21668 14317; 90.52069 8842216; 90.79036 2706904; 91.09424 21919; 91.19556 56720; 91.32185 538322; 91.39322 1173065; 91.77395 40540; 92.13704 31013; 92.15896 3321; 92.2108 966332; 92.24873 3366146; 92.34586 14847; 92.5075 52793; 92.54003 1754625; 92.59771 2541469; 92.61745 1187194; 92.97479 54177; 93.041 55297; 93.30888 8519; 93.4635 9182; 93.63948 21153; 93.90785 3108698; 94.03192 9698255; 94.22159 2038506; 94.25307 30980; 94.79257 20749; 95.38632 33794; 95.71074 27155; 95.74235 13554; 95.82332 5368749; 96.17947 6843; 96.24182 4547450; 96.24695 63558; 96.32339 991243; 96.39828 27352; 96.80521 79710; 96.83 107; 96.97169 23592492; 97.62382 800232; 97.69547 2191324; 99.15066 21123; 99.19328 1997363; 99.32905 6791; 99.4325 52457; 99.51064 28869; 99.74728 521335; 99.83323 23358; 99.9129 47254; 99.92263 25309; 99.97516 8320; 100.06614 2797126; 100.39094 9711300; 100.68981 53088; 100.74748 42442; 100.99623 21019; 101.06832 7355; 101.10697 4969245; 101.48516 24863; 101.51471 7753228; 101.64828 28551; 101.80092 14399; 101.85406 1335841; 101.96565 3282987; 101.99105 169866; 102.12866 1641089; 102.22591 1453395; 102.41163 9878219; 102.58966 37746; 102.92116 128127; 102.92916 18573; 102.9986 2659; 103.09273 695322; 103.21857 5019301; 103.55913 568683; 103.68606 20086; 103.76833 19326; 103.94841 43469; 104.02156 1570467; 104.48873 1700254; 104.54288 1018942; 104.85546 7668; 105.20932 1263563; 105.2589 27530772; 105.28621 13210535; 105.54325 2847646; 105.64797 1169774; 105.77233 3899115; 105.77687 2591; 105.86801 2413858; 105.92934 31361; 105.9561 9336; 106.06933 8930283; 106.26299 12974; 106.46057 1083588; 106.50516 69120; 106.68063 4472; 106.7607 67684; 106.78245 6906; 106.99208 37618; 107.13579 533360; 107.20858 2735126; 107.37018 78188; 107.51928 655646; 107.79947 36599; 107.91134 18981; 107.94998 156727; 108.4306 2353; 108.46546 865; 108.72261 25477; 108.7583 1916; 108.76791 15452450; 108.88025 47665; 108.91523 56915; 109.33918 23264; 109.35704 4097840; 109.63547 7379; 109.66184 43312; 109.69669 2992079; 109.77798 59694; 109.88762 185632; 110.26416 46240; 110.91225 1140110; 110.91772 432076; 111.06044 1862875; 111.11988 60399; 111.13712 1759283; 111.39698 45268; 111.39849 3115804; 111.49672 702423; 111.69056 2411; 111.82073 2003570; 111.82224 2787876; 111.86122 723094; 111.87331 6810310; 112.19687 18233877; 112.74133 14712; 113.06907 1825522; 113.08513 898; 113.11499 11025; 113.33896 195114; 113.6132 7414; 113.62609 3539; 113.7102 4916866; 113.89452 27217; 114.04653 63116; 114.62769 44907; 114.85922 69696; 115.18104 1381; 115.46381 740102; 115.49819 1546837; 115.79616 3077481; 116.01046 5322; 116.09021 102684; 116.19964 7673473; 116.50417 76110; 116.51457 1846016; 116.77237 509174; 117.2189 2496740; 117.59459 7080158; 117.65509 5608; 118.09241 1697241; 118.14254 812328; 118.21689 9231; 118.30077 33397; 118.41699 65654; 118.46502 1950984; 118.80348 24762; 118.88638 912400; 119.34075 1839216; 119.75512 128160; 119.8897 786256; 120.18451 8470; 120.25714 4528819; 120.39436 6187859; 120.53855 1993; 120.77306 26229; 121.40677 33936; 121.47596 60796; 121.55819 16893; 121.95055 8410695; 122.12159 6561; 122.16461 52898; 122.43896 28904; 122.5085 1639034; 122.61095 9216048; 122.64383 79671; 122.69048 39942; 122.71142 71563; 123.18301 239952; 123.34783 3283; 123.49419 21045; 123.55669 5366; 123.72099 4131399; 124.16786 1396935; 124.22983 1684792; 124.39328 11143152; 124.42384 22911; 124.51275 237857; 124.58229 9067379; 124.72334 135899; 124.72419 7993764; 124.78275 98446; 124.80824 73439; 124.92083 5403897; 125.05397 16541; 125.29507 34436; 125.64053 5749; 125.66219 21376; 125.6913 118668; 125.71593 3858; 125.83981 34184; 126.02304 4865660; 126.08525 21941; 126.09793 513791; 126.2839 36335; 126.58885 4730; 127.0597 583467; 127.27073 98146; 127.35128 78366; 127.37961 223893; 127.43642 615844; 127.64884 36378; 127.72445 1602642; 127.75026 75067; 127.83766 53307; 128.14286 1895020; 128.23342 2557721; 128.2886 12304; 128.38703 1413162; 128.45184 27509; 129.24067 5431; 129.44975 49594; 129.75459 29791; 130.20258 6953; 130.40005 1603902; 130.60071 708; 130.63083 21105; 130.82918 13843789; 130.92247 24892; 131.03925 30847; 131.07536 624691; 131.45038 6178813; 131.60077 34015; 132.09142 65707; 132.13932 7690190; 132.28403 5720456; 132.70651 628020; 132.77594 2205171; 133.16581 519949; 133.61644 39101; 133.6224 49183; 133.70331 8330; 133.79873 30141; 133.97242 18744; 133.99417 4957891; 134.16973 10689; 134.43031 59234; 134.44365 4351712; 134.56365 4677650; 134.64962 66287; 134.8158 471; 134.94632 13161660; 135.19184 2277591; 135.23948 4458905; 135.66484 713818; 136.24378 41063; 136.33227 45787; 136.347 168917; 136.60279 4519693; 136.70772 1647844; 136.71812 1487623; 136.77759 73025; 136.86948 22016; 137.08611 7669; 137.13705 1565943; 137.17563 5200309; 137.21978 19837; 137.30814 1024830; 137.4457 3866175; 137.4823 415; 137.50648 450703; 137.89249 9397912; 137.90765 4406220; 137.92067 1288646; 138.38705 1266337; 138.53036 6952; 138.57563 8470993; 138.68244 3315131; 138.76181 2388; 138.78813 137001; 139.25716 30572; 139.39681 6042236; 139.73339 3992108; 139.77371 65770; 139.81853 189399; 139.84291 76286; 139.89026 11375; 139.90099 5642177; 140.11529 2845680; 140.12516 7245518; 140.28907 73991; 140.3126 23720; 141.08581 74804; 141.24718 64000; 141.26303 74592; 141.2688 941369; 141.47895 143019; 141.77936 25656; 141.81413 1667; 141.82631 1166404; 142.23436 9812; 143.05953 65007; 143.36468 5759857; 143.37887 62408; 143.42108 27587; 143.58316 6300; 143.63964 52977; 143.95447 4833; 144.03475 2896332; 144.05932 184; 144.25326 20391; 144.33291 28682; 144.64997 582478; 144.83445 16676104; 145.03151 47934; 145.16889 4457862; 145.19322 56071; 145.3393 24047; 145.76862 24599813; 145.81793 28027; 145.96435 354140; 146.00501 26974; 146.11825 72455; 146.13983 1807798; 146.34816 1409904; 146.51001 348820; 146.5222 2837; 146.78492 20516; 147.08894 9192; 147.2609 3656286; 147.29476 1668397; 147.30126 21070; 147.38258 71062; 147.44332 60375; 147.53836 2862699; 147.70281 71376; 147.93431 25977; 148.28456 31602; 148.31382 25165; 148.60759 441148; 148.9342 15668; 149.08241 2295783; 149.17107 45283; 149.22843 75; 149.23987 8508; 149.34264 4831114; 149.49136 2224376; 149.74415 24491; 149.95292 264264; 150.39394 528288; 150.69158 2108242; 151.22084 2592; 151.43975 23448; 151.44568 137758; 151.5018 708386; 151.65823 20547; 152.09207 14384; 152.50805 41546; 152.85196 4939274; 153.50205 4274181; 153.64058 3435; 154.25382 5675; 154.3539 162669; 155.36117 6193; 155.39338 6350330; 155.40716 4663751; 155.51723 5983630; 155.53453 129805; 155.57255 8302203; 155.64499 101313; 155.79818 3795; 155.90276 20613939; 156.04208 12197186; 156.21572 63158; 156.28175 151330; 156.72048 18529; 157.07753 59965; 157.49213 9349425; 157.50117 69975; 157.68991 75878; 157.81261 175249; 158.05723 2853; 158.06681 29193; 158.19428 56097; 158.32248 40243; 158.41394 16484224; 158.474 602106; 159.14582 1404099; 159.17294 56097; 159.20873 128754; 159.33832 14035; 159.44939 4235823; 160.16219 12077; 160.23321 1212718; 160.34261 555394; 160.70803 1568; 160.81921 3233848; 161.22045 46899; 161.52081 5771; 161.67373 37156; 161.76383 45969; 161.818 1086199; 161.83577 267; 161.99432 28630; 162.09895 9589; 162.46062 30693; 162.71044 12431; 162.87911 48948; 162.99781 4918; 163.24756 933673; 163.64353 10306144; 163.68129 22981; 163.71669 25847; 163.75255 29832; 163.83053 3507; 164.18928 519730; 164.35225 61612; 164.7242 3513; 164.74619 1962244; 164.76993 2932478; 164.98937 5500962; 165.1727 39386; 165.19585 1147709; 165.20458 2825939; 165.45434 12729; 165.50754 523389; 165.55831 134842; 165.70586 118263; 165.97715 587637; 165.97859 31353; 166.15426 7379594; 166.39525 59292; 166.70089 1917728; 166.74145 39586; 166.8954 52077; 167.17963 4839278; 167.75209 1596; 167.79434 48960; 168.30773 21785; 168.30847 852; 168.54519 1918959; 168.56308 1082557; 168.56595 3686; 168.60371 39859; 169.28765 50509; 169.38922 162697; 169.74204 131835; 169.94579 1810494; 170.18992 76360; 170.2312 2417230; 170.24721 5038; 170.46389 6524245; 170.49987 54620; 170.53374 294111; 170.67676 519051; 170.79993 784805; 170.86408 32132; 170.97723 3130; 170.99805 868676; 171.38711 172177; 171.60641 347127; 171.80969 1961227; 171.83342 79539; 171.83515 3681060; 172.12828 4585; 172.50063 3577201; 172.91756 307099; 172.9354 67276; 172.954 39746; 173.34931 61250; 173.35591 37479; 173.51528 3625843; 173.52893 7634710; 173.67794 3325; 173.69046 4169988; 173.83992 179944; 173.95871 1624828; 173.98501 22144; 174.14502 69327; 174.25683 8403; 174.42635 51297; 174.48878 188957; 174.49427 76318; 174.68846 25421; 174.99691 2163; 175.38244 62257; 175.674 1233396; 175.80189 9224; 175.84002 50315; 175.94125 2972774; 176.16206 75957; 176.25854 5363; 176.30425 257988; 177.01628 21489; 177.46812 3443; 177.73867 71315; 177.79805 68274; 177.80755 27207; 177.81655 4251997; 177.84058 51930; 178.04432 1581314; 178.26 5174; 178.27833 9919; 178.27917 25251; 178.99117 45334; 179.13065 69184; 179.36316 5034162; 179.71383 47392; 179.76763 3198687; 180.10232 25265; 180.35001 11543692; 180.62095 7402986; 180.72797 17596; 180.88417 5689358; 180.92972 69932; 181.24673 2847; 181.64856 26594; 181.92408 27405; 181.92846 73279; 182.08661 73623; 182.31871 190303; 182.38472 313121; 182.396 30159; 182.40723 1149406; 182.4593 36032; 182.48065 68064; 182.62975 848; 182.85596 1232795; 183.12832 46134; 183.38269 1805; 183.57414 7089707; 183.60558 5551; 183.8221 1780633; 183.82453 166235; 184.23401 1601595; 184.23443 19016; 184.28304 46664; 184.36405 67156; 185.04762 80378; 185.29093 43515; 185.32284 7373422; 185.57984 3319476; 185.61512 3537; 185.74425 58845; 186.1126 28145; 186.24712 22925369; 186.4397 4135504; 186.52015 66074; 186.99273 13666425; 187.01906 18532073; 187.58829 8010; 187.67703 962; 187.72829 145780; 187.82987 1553047; 188.06432 45644; 188.08721 9149316; 188.64475 54555; 188.93169 23047; 189.0744 62679; 189.12914 3669; 189.16701 25689; 189.47894 19861; 189.80529 151493; 190.06901 9377275; 190.15134 6150862; 190.24559 29937; 190.30649 1034819; 190.46607 21819; 190.53587 2415980; 190.54664 9275008; 190.65742 29930; 191.18326 6415; 191.45678 18666; 191.91964 72655; 191.92592 402; 191.9887 156322; 192.02784 646247; 192.09141 4718; 192.09309 752577; 192.18489 1934089; 192.37007 1265422; 192.37629 4670689; 192.47932 8071; 192.5027 64269; 192.65327 470014; 192.92586 18664; 193.03485 1788651; 193.16268 71625; 193.38666 4658061; 193.75631 57805; 193.81635 5432128; 193.85227 8279652; 194.05448 935630; 194.13702 62111; 194.39846 9123; 194.43036 5983724; 194.61353 69534; 194.73694 3056929; 194.86497 58748; 194.96624 1543; 195.39146 975364; 195.61398 76996; 196.01226 23863241; 196.15536 16472; 196.47671 126836; 196.50321 6291; 197.52608 56290; 197.60834 59489; 197.61367 8879529; 198.01402 738292; 198.03862 7809; 198.51155 65271; 198.83391 17541; 199.09431 1178986; 199.16675 21964; 199.19947 42593; 199.31473 1754; 199.32456 946724; 199.61493 151767; 199.79685 114747; 200.13141 59308; 200.36555 3449044; 200.51494 542246; 200.81668 802197; 200.94839 179230; 200.96335 282252; 201.33825 1338156; 201.59055 52103; 201.73539 4736978; 201.89124 6401; 202.00037 34250; 202.38009 9855375; 203.23982 72265; 203.44531 2770; 203.73575 6044023; 204.02055 4365708; 204.57288 131238; 204.57538 68111; 204.6966 641322; 204.71181 800805; 204.94271 634425; 205.28279 4488198; 205.39027 1557672; 205.45754 1843; 205.613 137724; 205.86593 61346; 206.15327 308827; 206.25147 9455542; 206.42038 196542; 206.43368 25004; 206.51369 1093962; 206.6174 16404; 206.66373 89373; 206.70054 2816339; 206.9181 176820; 207.18636 135219; 207.20839 9644; 207.30244 95141; 207.33843 9090; 207.52827 1974236; 207.59332 69580; 207.96248 25439; 208.29709 20879; 208.46211 364317; 208.50925 32791; 208.57025 4325995; 208.92437 132585; 209.32808 888625; 209.39095 157798; 210.0036 4171; 210.23344 8039411; 210.27389 870968; 210.36772 2437972; 210.36818 31942; 210.44025 639599; 211.19471 1608208; 211.33242 52766; 211.43582 65616; 211.67672 1073269; 211.74004 23456; 212.02575 2879665; 212.07223 23584; 212.21453 54871; 212.35608 29057; 212.37431 26426; 212.44143 55219; 212.8002 29010; 212.80743 178437; 212.87879 32043; 212.89013 3534528; 212.89152 534503; 213.12777 7711; 213.15854 61495; 213.30327 27752; 213.4058 2589; 213.44555 167776; 213.56861 68082; 213.96651 366; 214.19577 2198851; 214.19712 10114; 214.28572 13537704; 214.39425 2387242; 214.52672 40387; 214.58343 192587; 214.59627 23448; 214.60418 150949; 214.72739 2104304; 214.79326 14030; 215.25815 29923; 216.04932 7069480; 216.05186 4279227; 216.29237 615625; 216.36061 27578; 216.8951 12401; 217.10685 7884757; 217.13195 4090181; 217.22809 67360; 217.29848 29144; 217.54652 4614116; 218.13691 720101; 218.65599 57469; 218.81388 58141; 219.48163 28605; 219.79687 1730789; 219.84219 4440481; 220.14261 576074; 220.34205 62152; 220.75944 121156; 220.90377 30185; 220.90833 1467129; 221.05941 54518; 221.06621 5115; 221.43931 1412236; 221.95453 2141103; 222.26948 5118512; 222.27897 3704292; 222.28065 5764684; 222.43022 74413; 222.59129 14263850; 222.75332 37858; 222.84331 7962765; 222.94574 91959; 223.09017 8034842; 223.10537 68521; 223.28809 21889; 223.32571 7791; 223.67664 814061; 223.73079 675135; 223.91984 51381; 223.96427 11451; 223.98681 3145997; 224.04479 29886; 224.11199 70271; 224.58632 23940; 224.60045 8433; 224.92303 41666; 225.07815 20662; 225.08691 169401; 225.10066 61369; 225.12224 9533606; 225.45818 1392488; 225.47667 24716; 225.80728 144800; 225.84367 1090653; 225.88895 16215; 226.02178 10388; 226.34345 27978; 226.40303 829538; 226.52809 21926; 226.82609 2662395; 227.00859 16968577; 227.07077 592870; 227.16251 61626; 227.39011 79762; 227.45386 123035; 227.88848 947343; 228.02921 75697; 228.29622 28602; 228.35498 3665359; 228.39902 50351; 228.53522 8244; 228.68672 3991568; 228.7039 1523184; 228.91614 151482; 229.1434 1640174; 229.67876 1478977; 229.79821 48767; 230.11963 75112; 230.17897 106; 230.4941 1892901; 230.6542 19945; 230.65598 21767957; 230.69893 8888; 230.70734 6518519; 230.77106 5792842; 230.89166 2359383; 230.98756 13575; 231.32987 21083; 231.34995 47260; 231.47537 918734; 231.50518 184162; 231.62497 6276; 231.85701 51113; 231.98507 1357328; 232.16447 3936248; 232.75031 60480; 233.03903 78425; 233.04379 20490855; 233.14671 5846944; 233.32833 1169911; 233.33363 15571; 233.38889 44545; 233.49486 132874; 233.63323 2994; 233.65998 49120; 233.70407 1609385; 233.80524 1580; 233.85099 3879; 234.20074 1939632; 234.2709 25944; 234.52822 4927756; 234.54519 499938; 234.62908 9653930; 234.64247 10659; 235.06982 4604; 235.16261 7339; 235.2666 329218; 235.47193 7362726; 235.73402 7814301; 235.80106 1031542; 236.26776 518134; 236.27788 53174; 236.31655 188764; 236.33792 133687; 236.54115 3385315; 236.57966 4580936; 236.66402 24092; 236.95114 3006538; 237.19844 1837626; 238.10275 643552; 238.20619 180; 238.38163 1659990; 238.56168 94698; 238.69257 41792; 238.75158 25141; 238.78646 780462; 238.84276 928494; 238.96108 30274; 239.56352 8031096; 239.8887 186869; 239.98214 41236; 240.11572 847629; 240.24612 25374; 240.329 56979; 240.50632 6203561; 240.69032 905291; 240.78563 2694625; 240.95737 79711; 241.03783 1225629; 241.86726 329258; 242.13481 13038460; 242.18137 37207; 242.37743 7838; 242.39292 1464986; 242.407 9927; 242.48413 78888; 242.54301 701486; 243.03719 22128; 243.08503 62878; 243.08631 44490; 243.84172 741935; 244.07211 1928886; 244.17856 1347513; 244.18605 3350414; 244.21775 2740939; 244.25526 10838; 244.29748 4422457; 244.71326 1225447; 244.73089 27531; 244.78277 408201; 244.82629 1074788; 245.701 1514381; 246.05496 2443306; 246.25346 1259087; 246.73451 26609; 247.093 21716; 247.19663 1349326; 247.241 7464790; 247.28656 20071; 247.30926 5500640; 247.42364 102245; 247.73152 61039; 247.84991 10113; 247.99169 5815; 248.53532 1811562; 248.58934 28032; 248.81596 6534478; 249.17672 79385; 249.2735 50659; 249.32942 45358; 249.36759 75650; 249.39805 10257037; 249.98374 26403; 249.99107 9009; 250.03356 52221; 250.09242 730091; 250.23693 821977; 250.25702 5549; 250.38546 184627; 250.39898 9385; 250.57717 730243; 250.64938 6023; 250.66958 1861596; 250.74459 30563; 251.03128 3191775; 251.20277 6787106; 251.25918 40958; 251.46262 1709429; 251.49629 35282; 251.6416 8274; 252.04394 2937036; 252.14483 25851; 252.29258 2422; 252.33066 26944; 252.60366 100; 252.75583 19106; 252.84526 33785; 252.92671 15010; 252.95152 23151; 253.43692 8077; 253.82388 159112; 253.98607 68470; 254.54115 21225; 254.74042 23166; 255.0265 290606; 255.16631 1353516; 255.29826 9481; 255.76729 44071; 255.80707 517085; 256.26202 3853592; 256.31264 813589; 256.64769 786686; 256.73601 386620; 257.10492 5150480; 257.28661 21191; 257.33962 37349; 257.68107 23870; 257.95683 58094; 257.95762 1206165; 257.97292 1469219; 257.97838 7706; 258.52688 148384; 258.68395 1335561; 258.74446 2260801; 259.30318 843889; 259.57484 58739; 259.67612 72287; 260.0926 15592; 260.29257 55500; 260.34696 27833; 260.87442 774914; 261.02634 1960882; 261.11773 76571; 261.12486 11547; 261.17686 1594488; 261.2102 40169; 261.29074 6338831; 261.35993 3148219; 261.38691 22094; 261.42329 751604; 261.43784 5514436; 261.47754 74830; 261.74749 48117; 261.76497 1074566; 261.78605 5541148; 261.92363 33935; 262.26069 121248; 262.41602 7951131; 262.75912 52409; 263.22638 314340; 263.49936 37824; 263.73281 1969361; 264.07607 56773; 264.19813 6907255; 264.30687 27239; 265.07819 3394481; 265.09206 34225; 265.30206 214851; 265.31651 398184; 265.97994 17690; 265.99813 1067225; 266.19252 49374; 266.25836 140339; 266.40204 26511; 267.14081 18829; 267.34332 1390239; 267.72682 35910; 267.75892 786963; 268.16778 18809; 268.20988 13790940; 268.24364 8565895; 268.39638 39740; 268.41974 73304; 268.73951 1988494; 268.9304 56391; 269.05714 24729; 269.19524 7744; 269.24558 3859; 269.68405 3697; 269.70093 26309; 269.85939 468471; 269.91033 1213; 270.48884 1830374; 270.5588 16517793; 270.68991 2829; 270.80363 21273; 271.24006 858878; 271.34456 23562; 271.7382 73616; 271.86377 4648396; 272.00365 41560; 272.02125 50547; 272.34503 1332355; 272.47063 945747; 272.60978 1075985; 272.69425 854688; 272.86619 219204; 273.36014 42398; 273.50787 26707; 273.54413 29615985; 273.55069 192964; 273.60469 42940; 273.77976 22344; 274.24814 5064343; 274.45332 2795794; 274.46168 20271; 274.48306 519206; 274.49901 2641447; 274.53715 169052; 274.5571 6924; 274.91416 6845927; 275.25601 52886; 275.47265 75597; 275.50992 974321; 275.55203 104024; 275.72654 28564; 275.80563 3855; 276.00003 3019489; 276.165 3927; 276.35642 27723; 276.44931 308952; 276.50834 73539; 276.52373 33594; 276.56678 2270441; 276.57778 11922; 276.73112 233; 276.7948 3452468; 276.85814 21988; 276.88474 374037; 276.88962 273551; 276.96705 579565; 277.4541 11576; 277.60575 75105; 277.68548 15725; 277.73487 5660; 278.39564 715201; 278.89008 2448; 279.32947 30121; 279.37788 1699878; 279.44738 774; 279.71535 22731; 279.84709 2405088; 279.97553 1520185; 279.99752 68862; 280.08466 1394553; 280.17059 1303008; 280.38629 33768; 280.39806 25894; 280.44948 1588133; 280.74907 59415; 280.79873 62952; 280.83741 3608; 280.879 106253; 281.16721 22245; 281.59244 5230966; 281.86343 24161366; 281.88707 1782044; 282.08969 70010; 282.11431 19; 282.11898 30358; 282.17297 48223; 282.43406 1346903; 282.56393 12298; 282.73911 986862; 282.9316 15769; 283.10641 12219; 283.18804 55; 283.35436 173363; 283.35785 548190; 283.39184 5468; 283.53865 46936; 283.79993 548231; 284.10043 1114292; 284.18621 49055; 284.25723 4611; 284.25778 29914; 284.40475 2830; 284.68498 67628; 284.79923 3325; 285.19063 5083350; 285.79209 2579292; 285.94454 639498; 286.09592 18523; 286.10266 2843897; 286.35722 64368; 286.55434 9504302; 286.55838 1113625; 286.5732 25448; 286.63908 4679; 286.73069 102563; 287.10673 739019; 287.3953 41495; 287.60989 41043; 287.74804 1030; 288.28646 27710; 288.65388 44848; 288.6739 7073; 288.72255 5582906; 288.79736 10897; 288.96999 2082; 289.00435 69481; 289.2867 3325297; 289.42036 340; 289.44172 13548; 289.723 15419; 289.87611 7599; 290.0867 1300; 290.15325 8534174; 290.32304 1064920; 290.39527 826557; 290.42984 1451353; 290.58591 1510424; 290.76984 6448571; 291.10304 6429320; 291.14374 6656698; 291.2788 214880; 291.49681 6621; 291.54683 79324; 291.69798 2417445; 291.85314 4600; 292.00826 2892; 292.11434 142435; 292.42747 11012; 292.50692 26132; 292.61593 895071; 292.80547 3439934; 292.91097 62836; 293.10095 1535614; 293.60077 57611; 293.7769 18220; 293.82501 67098; 293.87433 78269; 294.09091 28408; 294.13192 5691; 294.13445 5329; 294.56669 113577; 294.58731 175822; 294.65126 512005; 294.96943 3575005; 295.0066 414038; 295.24006 12708; 295.36727 4195112; 295.38862 18395419; 295.87763 4336982; 296.02593 9837037; 296.2354 7068785; 296.56713 44585; 297.17097 23109078; 297.19027 47332; 297.35994 1490970; 298.03248 1099027; 298.1015 761444; 298.38071 49331; 298.40042 56347; 298.51346 23751; 298.66407 796836; 298.68517 12867; 299.01117 1125885; 299.45073 8007; 299.57024 12482; 299.85145 1720653; 300.26943 1533399; 300.3804 12855; 300.5834 29788; 300.61115 53647; 300.6232 16989879; 300.7984 4962239; 300.84706 68924; 301.06222 1223845; 301.40872 34030; 301.98796 3799533; 301.9957 68154; 302.2347 25204; 302.2991 19982; 302.42487 1376; 302.57818 1345665; 302.60795 39090; 302.69961 1527742; 302.82069 2311650; 302.8248 15032; 302.88554 1399158; 302.91465 1391; 302.94628 38259; 303.25835 744115; 303.37736 39428; 303.44415 77474; 303.44914 179799; 303.53949 95075; 303.5708 4144974; 303.90722 1416027; 304.09442 4862211; 304.20092 367334; 304.47213 2839428; 304.50162 1540; 304.59054 595973; 304.66779 4337564; 304.81066 8817; 305.00005 1296744; 305.03184 64851; 305.32457 9995; 305.34242 3654011; 305.5393 4242115; 305.62449 2647390; 306.37543 27381; 306.40431 8792; 306.65604 24664029; 306.84349 1744191; 307.36918 926532; 307.54033 2681227; 307.7521 12799; 308.04376 78897; 308.09712 29369; 308.48288 5080634; 308.48927 3040763; 308.55865 21009; 308.62525 4285; 308.75153 3824; 309.10724 1078704; 309.18822 2375331; 309.28228 515514; 309.78765 66883; 309.80716 27622; 310.06014 8394162; 310.35284 8960; 310.4647 3420774; 311.02266 73117; 311.05722 5270; 311.16424 2187; 311.49241 132327; 311.72937 15972; 312.0165 4108; 312.0672 4192182; 312.09695 1035694; 312.4343 2024448; 312.4429 33910; 312.47915 40747; 312.65183 219025; 313.51932 2396241; 313.67455 64280; 313.98331 79637; 314.25825 19633; 314.40942 15974; 314.57997 67602; 314.71348 4417395; 314.97832 330; 315.05173 60750; 315.08027 40032; 315.2912 71323; 315.29792 2136912; 315.30106 55356; 316.5395 57386; 316.55616 1029672; 316.62441 3651692; 316.87128 21943; 316.88834 3639277; 316.99502 104030; 317.08389 8554668; 317.28076 3610; 317.3564 25402; 317.52139 14813; 317.54404 6103650; 317.55469 1065775; 317.83235 81117; 317.8732 33662; 317.89078 4107; 317.90499 770857; 318.12733 3636761; 318.23246 278688; 318.2628 107196; 318.33912 195171; 318.37899 21806137; 318.64278 145233; 319.01766 26556; 319.54685 18386; 319.55371 2099; 319.57538 1302565; 319.96285 7030618; 320.06149 3388313; 320.12162 3709367; 320.15945 2486; 320.16379 1145; 320.69077 1617; 320.70388 42418; 320.96409 1298995; 321.09293 5681; 321.47213 1284854; 321.53892 20901; 321.54605 130089; 322.27227 71897; 322.30782 2676701; 322.35131 74366; 322.7829 462; 322.94382 1568543; 323.20584 23449; 323.24216 4546148; 323.30059 769413; 323.81711 164697; 323.84967 34567; 323.94086 4762; 324.02194 6040; 324.07779 4490; 324.18948 3282808; 324.24764 340630; 324.24892 819582; 324.29236 387044; 324.34882 2543773; 324.36101 659071; 324.55166 1056979; 324.5626 6040; 324.77807 2561834; 324.9242 6256; 325.18432 4287065; 325.19549 25070; 325.24721 4659824; 325.2618 25017; 325.45629 2922720; 325.66898 25195; 325.79884 38873; 325.83415 1075565; 325.85787 6495; 325.86347 16796253; 325.9046 63413; 326.34398 670788; 326.46382 33823; 327.28497 81621; 327.39584 3681; 327.44092 4768565; 327.58283 34802; 328.39491 3082666; 328.91752 1345065; 328.97573 70527; 329.0889 7250198; 329.40059 7439; 329.44597 57009; 329.56176 2841693; 329.69619 69631; 329.84843 66613; 329.86651 1574363; 329.92891 1956391; 329.96968 6797578; 330.05988 36098; 330.0867 168091; 330.1858 13881; 330.587 3995; 330.67246 17313; 330.83275 9094152; 331.4414 6161; 331.76159 9671020; 331.83261 129202; 331.95435 27716; 332.03669 2863192; 332.1846 9356; 332.56126 28225; 332.71977 25897; 332.7718 4617; 332.86021 60801; 333.41561 45053; 334.19696 43464; 334.29799 1240518; 334.39358 84783; 334.59472 56418; 334.93673 4358069; 335.49937 75428; 335.53487 2341247; 335.83397 3822600; 335.91352 31697; 336.05219 9172; 336.16896 7898397; 336.56988 7228264; 336.67998 259775; 336.68332 8116565; 336.92065 309715; 336.9694 944499; 337.22542 1853919; 337.26906 60237; 337.43685 55237; 337.5818 14965; 338.05283 78237; 338.19822 17298; 338.3526 4103; 338.5129 45800; 338.77251 1224149; 339.14182 21255; 339.14705 5573; 339.53866 22674; 339.69106 777106; 340.02725 1162889; 340.09141 43431; 340.1708 5824; 340.22669 22388853; 340.69 10303041; 340.71919 1574457; 341.20858 64851; 341.22451 67862; 341.50212 18659; 341.56552 213093; 341.96588 42409; 342.04409 55330; 342.18948 31826; 342.64796 1935035; 343.371 58095; 343.55847 9517278; 343.81244 1663465; 344.24682 7234392; 344.26273 27322; 344.30974 188971; 344.31183 48537; 344.52421 3256390; 344.55927 13157446; 344.77458 75587; 345.38529 19786; 346.75485 388464; 346.82737 8893459; 347.08378 280; 347.08763 58483; 347.24642 76026; 347.25771 1142254; 348.78685 25639; 348.83899 7697335; 348.99399 1270578; 349.03266 10930; 349.09241 5612240; 349.13745 37710; 349.20679 30005; 349.32385 79030; 349.37558 7753210; 349.40584 7088; 349.63762 2372; 350.01416 8147; 350.02219 37382; 350.79134 48007; 351.4124 28559047; 351.46143 1192097; 351.47473 15048; 351.7666 3636579; 351.78861 101165; 351.82578 5741; 351.93418 53280; 352.51801 1093759; 352.53686 1074476; 352.59551 1557; 353.11824 347; 353.2789 6432; 353.45181 6858217; 353.50406 7639267; 354.05141 376687; 354.55657 23177; 354.7434 129289; 354.83696 169168; 355.04919 830685; 355.31751 58854; 355.35307 13396; 355.93627 813993; 356.00583 6950789; 356.37916 66630; 356.59334 234991; 356.61484 20510; 356.7128 8844270; 356.8479 20562; 356.97477 836341; 357.05611 427746; 357.06128 19289; 357.09017 35611; 357.45562 2971635; 357.53698 2297337; 357.65595 2097930; 357.75154 76717; 357.80094 2893630; 358.12033 362634; 358.16479 19863; 358.82272 13332; 358.84397 4742923; 358.99563 70211; 359.03174 1810990; 359.18783 45685; 359.37644 18374993; 359.49452 14277; 359.62392 3596549; 359.77245 69975; 359.81701 1076143; 359.96448 26987; 360.10883 29091849; 360.39626 5436; 360.62174 54876; 360.70558 2255; 361.7325 1769925; 361.81287 17272; 361.90184 165368; 361.93942 5574; 362.66674 7575; 362.86787 3967124; 363.03608 4779432; 363.78635 49221; 363.86327 860987; 363.90927 14750; 364.04181 42013; 364.13197 5716; 364.50038 1856141; 364.61688 1248411; 364.9465 1639072; 365.09805 5800; 365.64556 723063; 365.64816 95664; 365.68678 1460204; 365.86357 1660; 365.86694 6319528; 366.13543 7628; 366.47003 2023; 366.64709 35726; 366.81933 23126; 367.03026 98172; 367.14856 13373; 367.2347 26240; 367.37615 118286; 367.63029 4274568; 367.826 7458102; 368.06047 1453058; 368.43716 1296; 368.46717 3419; 368.51364 73000; 368.77928 58590; 368.84146 3345758; 369.34085 61433; 369.38333 15326047; 369.58877 430849; 369.67053 436941; 369.95851 215748; 370.28943 1244600; 370.39849 68825; 370.51956 11404; 370.6171 5896716; 370.67224 1776898; 370.869 22589231; 370.91067 90261; 370.98048 710088; 371.49464 5597890; 372.33325 24028; 372.44685 3174820; 372.53015 66359; 372.53295 4948654; 372.60584 8710; 372.62338 3604065; 372.7766 4556521; 373.07792 1543; 373.10979 31109; 373.54239 741949; 373.77619 467183; 373.85557 664476; 374.02586 24235; 374.2553 1201790; 374.26238 1646694; 374.2645 8171; 374.50277 26396190; 374.80512 309684; 374.98275 7905; 375.08342 69469; 375.24566 29210; 375.31606 852; 375.41685 75291; 375.59794 20712; 375.72642 27006762; 375.82286 47461; 376.13954 65288; 376.24728 55735; 376.68043 76961; 376.92564 7367; 377.80639 3413608; 378.31908 40526; 378.58017 2893522; 378.63616 64415; 378.7475 651047; 378.84413 1447447; 379.39716 456115; 379.43201 6507116; 379.47665 126; 379.63178 5645622; 379.64257 76108; 379.65114 732189; 379.69381 73480; 379.70642 159825; 379.79077 9260; 379.9389 4454629; 380.51384 1546069; 380.58883 9596; 380.72724 4780071; 380.75105 1770574; 381.0471 1805328; 381.34259 793980; 381.37549 6091; 381.80341 4487369; 381.93385 2123217; 382.29509 6926324; 382.44527 65397; 382.61004 544725; 382.90573 29757; 383.08703 165170; 383.27519 785794; 383.29217 20604; 383.59059 9256; 383.70226 1538137; 383.80381 30322; 383.84769 1028693; 384.01271 1608876; 384.08811 73610; 384.14815 8956893; 384.3934 8907; 384.68378 6038; 384.79308 1796086; 385.07339 137472; 385.29076 22067; 385.45661 25686; 385.45748 17958; 385.65137 20436218; 386.02091 789249; 386.27428 54588; 386.32991 5103820; 386.55786 44276; 386.68158 7620085; 387.17682 340495; 387.18628 164110; 387.25444 2852518; 387.36818 1019111; 387.59671 63960; 387.62915 1512330; 387.84818 22619; 387.88259 170131; 388.00081 1960986; 388.19169 21290; 388.21241 1704317; 388.67276 71111; 388.68606 1590055; 388.73649 399978; 388.88445 37875; 389.75101 44383; 390.09865 647247; 390.3976 26562551; 390.46343 17094; 390.57135 13539; 391.5848 23096; 391.85008 34690; 392.00417 7419; 392.11364 1087935; 392.29539 41906; 392.29703 15412; 392.30588 14546; 392.40719 3540445; 392.45101 20911; 392.51827 888838; 392.59079 41120; 392.6124 5219; 392.7722 68337; 392.9905 167535; 393.04645 6078649; 393.14931 49350; 393.35732 2548; 393.39721 123481; 393.41164 2596402; 393.47442 88141; 393.48933 4694; 393.6066 27300380; 393.71883 11203629; 393.8968 669278; 393.9852 3528890; 394.03022 9927; 394.62996 9042134; 395.1885 1980476; 395.75203 19288346; 395.8786 1705175; 396.01388 47897; 396.10434 7009; 396.55717 18878; 397.161 61440; 397.3734 56640; 397.43645 3988695; 397.43836 4999906; 397.44679 8724; 397.70571 71149; 397.97381 31646; 397.97852 5304; 398.25985 4010303; 398.42583 11951035; 398.46373 663696; 398.50377 292900; 398.74961 323722; 398.80383 8254; 399.56538 162285; 399.58191 46974; 400.25225 9168993; 400.7835 50633; 400.86554 45247; 400.96289 39727; 401.14171 31500; 401.23691 64107; 401.49074 25557; 401.55477 9448859; 401.75339 4362179; 401.86743 158635; 402.45977 7690; 402.54863 9835; 402.90386 19898; 403.23242 1970126; 403.38042 5411; 403.47849 68308; 403.71681 1310209; 403.96505 34346; 404.3642 1661600; 404.47744 1734702; 404.47875 9025; 404.96645 9268069; 404.97113 32711; 405.35463 20207; 405.37657 12946; 405.46061 1049187; 405.46368 77182; 405.93075 581258; 405.97801 1424893; 406.20547 2790787; 406.2169 8180; 406.60127 3387; 406.62802 1915876; 406.82953 3845298; 407.45162 145585; 407.52401 27599; 407.61398 2577406; 407.73897 20009; 407.80675 81502; 407.84145 33090; 408.03372 6090; 408.14215 1501; 408.43731 42522; 409.21325 773329; 409.32508 3703569; 409.37925 1721561; 409.50207 43546; 409.51647 9204006; 409.63396 4186; 409.84958 37182; 409.92881 6973; 409.96084 608714; 409.9817 9808591; 410.33849 454; 410.54537 1366965; 410.75439 25053; 410.89177 4440955; 410.9427 1906544; 410.97429 59772; 411.5191 9816; 411.8905 63521; 412.08851 4732; 412.14235 4129762; 412.16932 5583; 412.50306 37924; 413.00402 136040; 413.57392 136917; 413.77604 7274; 414.08624 5491; 414.13138 7101377; 414.31792 9946896; 414.44073 812712; 414.65767 36296; 414.71387 26110; 414.73067 560513; 414.7478 61220; 414.77245 137882; 414.81915 9475115; 414.83445 506563; 415.09425 97152; 415.16752 7260; 415.30353 9411; 415.38349 28095463; 415.45922 28215129; 415.57845 1988787; 415.69609 35792; 416.0545 54363; 416.1813 1210695; 416.29466 4141; 416.5968 7444; 417.3685 24418; 417.46949 21246; 417.65891 4940; 417.83456 3487495; 417.96824 2272441; 418.00207 3029; 418.07561 413298; 418.52908 3350; 418.74345 38199; 418.983 11076; 419.08342 1902796; 419.25345 1418118; 419.88138 20589; 420.22581 61198; 420.34124 34001; 420.72659 42382; 420.94261 26192; 421.40564 24947; 421.58278 925; 422.16642 28652903; 422.32176 62515; 422.40571 17953; 422.47421 8805; 422.55011 177493; 422.61217 5562; 422.78701 1880; 422.79031 9496112; 422.8003 4417; 422.81369 4562609; 423.08908 12060; 423.32188 61497; 424.09084 62536; 424.58325 71762; 424.59367 4564; 425.01324 459754; 425.1563 24769; 425.17181 20200; 425.24007 15162; 425.25273 1447; 425.63912 101; 425.78405 70051; 425.98785 63328; 426.29698 30490; 426.35617 58603; 426.55224 15125; 426.60216 57347; 426.70677 53446; 427.04437 2297366; 427.42525 4568621; 427.68944 100688; 427.6976 37120; 427.82838 6549; 427.85145 9297; 427.85532 687457; 427.89576 6398; 428.21955 28648656; 428.27871 14301681; 428.5186 64556; 428.91687 65517; 429.80649 1063140; 429.97856 9657215; 430.05149 1529190; 430.31093 1874848; 430.37776 44075; 430.39379 3249225; 430.40724 2687742; 430.51202 72262; 430.69253 315147; 430.77827 41075; 430.78688 27554; 430.89752 39378; 431.08085 192918; 431.33071 29502; 431.38922 237439; 431.56456 1280677; 431.85782 75857; 432.04568 7097; 432.13916 62987; 432.28194 1838553; 432.32364 97909; 433.21786 1337671; 433.25643 8010; 433.94612 49790; 434.16387 2367017; 434.35291 8488; 434.62081 8573645; 434.76098 2052936; 434.7686 65269; 435.15502 21427; 435.42473 1142757; 435.64771 50047; 435.71702 72950; 436.13683 55203; 436.36193 62521; 436.49077 56668; 436.87898 1094012; 436.98321 167001; 437.15659 180251; 437.40103 25082654; 437.47834 3654433; 437.55509 49012; 437.63124 10595; 437.85156 318039; 437.98697 1596805; 438.01458 8103215; 438.0857 2403460; 438.14306 154929; 438.20953 23279; 438.30751 4614793; 438.36553 4928688; 439.19766 64362; 439.21548 3028349; 439.31848 5226951; 439.35287 3227606; 439.57715 8964; 440.00081 27797424; 440.02925 23005549; 440.33225 9034483; 440.94943 687825; 441.05501 105316; 441.13591 424531; 441.24907 5987255; 441.33392 3821597; 441.41114 12880; 441.43141 5070201; 441.44607 629532; 441.70416 7249; 441.72121 23610918; 441.73922 52944; 441.84219 9201; 441.87823 556208; 441.91444 7797; 442.2957 171998; 442.57905 70749; 442.65811 246021; 443.09 1175676; 443.30964 857293; 443.4267 2231; 443.56426 9937; 443.70056 53915; 443.98007 22902; 443.98238 1022318; 443.98665 1388352; 444.06574 2144; 444.07252 9744591; 444.11783 53900; 444.29395 14092; 444.63473 4776; 444.74675 183; 444.77627 114173; 444.93782 175464; 445.10731 29139; 445.29397 8554613; 445.34665 6045; 445.64365 72078; 445.82343 5034; 446.35861 62530; 446.46414 4711; 446.6054 276592; 446.85409 228322; 447.02681 4135067; 447.18665 440357; 447.55101 43947; 447.56571 196654; 448.20115 3114422; 448.37296 199887; 448.49834 1759107; 448.50417 917915; 448.5411 119097; 448.72809 8993; 448.79693 29159; 448.94458 647467; 449.64992 18134997; 449.71469 5910; 449.90413 22155023; 449.90909 29584; 450.16578 906100; 450.25725 1913340; 450.28265 896928; 450.43176 199207; 450.47457 22404; 450.59525 55292; 450.78817 920182; 450.91387 8671924; 451.46134 12862; 451.4767 1302015; 452.07719 91346; 452.25857 946990; 452.62199 13156; 452.98939 17084351; 453.04737 10086; 453.26825 61356; 453.42179 74573; 453.54973 85631; 453.79916 1150; 453.95848 7431564; 453.99235 7534; 454.05572 28185; 454.14565 39120; 454.26847 54525; 454.85487 3108; 455.16284 6335; 455.28764 62248; 456.05585 16050540; 456.05806 9341; 456.08244 26154945; 456.11848 68478; 456.63498 1789396; 456.66096 28849; 456.69694 4717778; 457.23757 135234; 457.44546 46677; 457.74895 6012763; 457.99781 1335955; 458.01933 32127; 458.07976 63728; 458.0958 5504872; 458.61353 51542; 458.6946 102935; 458.74141 23356; 459.02251 853554; 459.09003 64998; 459.43113 1269210; 459.46139 3020177; 459.90478 1173109; 460.02925 9931325; 460.25557 77360; 460.59228 10270; 460.73711 26918; 460.91869 7905; 461.34089 18160; 461.84716 502525; 461.94537 677774; 462.17615 74115; 462.22402 64381; 462.86908 919863; 462.90299 2524116; 463.50972 39836; 463.62496 18212501; 463.73129 9265; 463.9039 73298; 464.33817 9895996; 464.5194 27678840; 464.58393 82480; 464.59866 3422421; 464.65285 22786; 465.41827 1630972; 465.67453 1824790; 465.74134 7830; 465.75024 1292815; 465.86809 3891705; 466.185 1968222; 466.51443 120554; 466.56961 1630354; 466.69221 41570; 466.7043 3831790; 466.72095 138462; 466.86336 1596911; 467.45425 2859263; 467.97209 1004015; 467.98386 3575076; 468.10697 27828; 468.14975 6006282; 468.50491 4917356; 468.53489 46803; 468.58532 73521; 468.62467 2246184; 468.73037 152859; 468.79934 889614; 469.38687 37977; 469.7857 1868350; 470.06507 1549590; 470.10555 25593791; 470.11162 1236252; 470.34658 51676; 470.38558 76689; 470.61278 8323993; 470.69199 20262; 470.72776 1619888; 470.76422 51341; 471.19295 13585; 471.19751 5445; 471.22248 23781766; 471.53609 32432; 472.26982 6957915; 472.45219 25699; 472.8487 8498; 473.34891 3441; 473.7929 55224; 473.83056 183208; 473.87737 779908; 474.34783 84564; 474.45099 5263599; 474.77616 35689; 475.16324 107305; 475.19607 3380759; 475.89308 63770; 475.99316 1906706; 477.08257 4102137; 477.19056 1048331; 477.22123 4822827; 477.26975 7299622; 477.31138 7305846; 478.13731 5237633; 478.24166 804876; 478.2855 1931771; 478.93951 11068931; 478.94772 508080; 478.96504 6287; 478.97403 676667; 479.01273 105536; 479.08637 17826; 479.10718 26346; 479.33987 5690; 479.59159 90219; 479.60006 22929; 479.67829 30702; 479.78486 703754; 480.34647 55735; 480.4255 11043; 480.61447 43792; 481.06739 13880; 481.20153 40910; 481.32789 46964; 481.73623 41530; 481.78563 10039; 481.90249 4820; 481.94032 9303; 481.98104 8762; 482.04722 25807; 482.20923 9038510; 482.43465 198150; 482.55598 2491178; 482.57426 90303; 482.84138 3450784; 483.28011 9415; 483.3076 79836; 483.44708 55895; 483.54593 12502; 483.71021 27672; 483.96968 49172; 484.1858 50753; 484.432 1563617; 484.4377 88637; 484.7751 34257; 484.81284 5610488; 484.94288 2066832; 485.04891 21738; 485.19189 8545; 485.44999 3276263; 485.64569 6358263; 485.77425 6320320; 485.8304 65277; 485.91189 679206; 486.01532 2258807; 486.02064 26560; 486.62122 21098; 486.80488 6493; 486.82762 2249840; 486.93959 22307; 487.15308 9838378; 487.36788 15257825; 487.3769 866; 487.39829 4733140; 487.4186 33135; 487.67357 980655; 488.094 67654; 488.10109 1150226; 488.10711 471296; 488.15355 9579; 488.38696 111240; 488.42141 15306; 488.66934 5167; 488.68901 14987; 489.09008 4359260; 489.24362 69357; 489.3975 2087; 490.03885 237950; 490.35064 65253; 490.56228 171271; 490.602 99064; 490.70313 15640; 490.87729 40239; 491.48734 45919; 491.5916 873; 491.87446 28184; 491.97141 60156; 492.06175 74172; 492.20653 5925932; 492.43248 6081; 492.55926 4252431; 492.58069 24635; 492.74143 4750705; 493.16788 21831; 493.30501 62866; 493.4718 51827; 493.53959 21405; 493.71548 416323; 493.72545 38628; 493.75417 3856957; 493.81139 4120756; 493.87103 732; 494.27372 1412298; 494.49186 16; 494.66968 200868; 494.81936 79279; 495.13758 6424; 495.14761 1404808; 495.28945 9684; 495.46677 323403; 495.492 83; 495.55439 849556; 495.75854 644670; 495.84061 65499; 496.19865 587274; 496.27267 4416772; 496.30424 48733; 496.32692 79126; 496.34063 21209767; 496.44275 521219; 496.47068 71757; 496.57718 59842; 496.62665 3240756; 496.74098 9954; 496.88166 78192; 497.01522 4693557; 497.1118 4443176; 497.13184 25779; 497.40024 919101; 497.57169 79837; 497.71407 3530894; 497.88741 58172; 498.07976 159610; 498.12056 5040875; 498.80427 1041; 499.02596 184904; 499.25781 219; 499.6831 65261 +<7, 4>: 0.02737 1742336; 0.03226 335471; 0.15142 7443856; 0.30639 48535; 0.32305 8705319; 0.65005 3763324; 1.42957 16180160; 1.52523 31506; 1.86221 14638; 1.86657 1211981; 2.23822 157333; 2.5774 29136; 2.59807 70590; 2.81606 9211544; 3.24145 44585; 3.26465 6061; 3.37828 22771; 3.55062 7163952; 3.56444 49036; 4.22544 1900794; 4.2727 914474; 4.27596 4846077; 4.31421 39677; 4.4488 6268; 4.58397 53489; 4.86719 35252; 5.02801 784456; 5.21957 2020; 5.24101 7668; 5.74581 8764; 5.8105 1227287; 6.19041 22982310; 6.2031 275634; 6.27792 1850888; 6.36181 17668; 6.44961 38824; 6.86113 40463; 6.94228 3638124; 7.20226 29917; 7.26501 517657; 7.61624 54721; 7.64444 68049; 7.65968 7157; 7.8965 197710; 7.90216 4033187; 8.49139 39684; 8.68107 4625668; 9.33746 28525; 9.54328 3987; 9.65042 4996021; 9.6735 17351; 9.68491 48397; 9.71486 1789545; 9.78136 21359; 9.88024 25039; 10.29018 4668201; 10.30355 510375; 11.03542 5420; 11.29176 34660; 11.34602 60334; 11.37193 23831; 11.57395 970054; 11.6909 5285; 11.99759 74658; 12.01764 622806; 12.102 6516175; 12.44083 188407; 12.65836 4719717; 12.70935 32338; 13.16291 2880; 13.41644 3971157; 13.61659 33511; 14.12853 51974; 14.61702 44072; 14.64544 653; 14.78098 27003; 14.81464 3821362; 14.83392 371538; 15.53654 9661; 15.65456 4061099; 15.7488 9529; 15.83883 3613493; 16.0345 8812398; 16.27799 677448; 16.72627 139635; 17.06344 20753881; 18.01654 4790632; 18.34736 71927; 18.41301 18441; 18.82039 3072460; 18.90654 1134; 19.02992 965689; 19.07841 24737372; 19.30823 724846; 19.59774 9063975; 19.78322 9441; 20.14399 232258; 20.39218 1512100; 21.09045 1157621; 21.35596 41941; 21.64209 78210; 21.83081 31923; 21.9809 35162; 22.37554 15488; 22.4779 679341; 22.50549 33787; 22.50814 6989; 22.78622 1022393; 22.96563 1745; 23.52256 1446607; 23.6887 10941; 23.95437 309832; 24.17523 36008; 24.75156 9958496; 24.87829 143037; 24.98044 23242; 25.06722 26904530; 25.07082 34913; 25.08546 48188; 25.13383 24688569; 25.35648 6258234; 25.49786 46100; 26.21726 64340; 26.64481 28086; 26.91249 10892; 26.95044 21869; 27.0847 22799; 27.20537 64409; 27.44731 73842; 27.57962 27538; 27.71325 3685465; 28.07608 32459; 28.64228 4562; 28.65811 1045121; 28.84625 1828102; 28.91788 7133735; 29.0631 9607; 29.50885 27909; 30.02695 269931; 30.04168 24666; 30.11353 875574; 30.28437 3582515; 30.32863 2686496; 30.3706 7353752; 30.42205 6057896; 31.19936 59436; 31.3134 9503; 31.41015 3941; 31.50538 127497; 31.53921 6292; 31.63086 5636; 31.67635 9026; 31.85137 1017033; 32.38385 36426; 32.43066 21909; 33.19737 225397; 33.30789 472169; 33.3926 2715706; 33.59874 53620; 33.59922 63795; 34.05143 30873; 34.26194 70363; 34.269 79276; 34.58956 40771; 34.86867 8439; 35.09259 59338; 35.57826 174891; 35.61775 34169; 35.72197 1249312; 35.78231 6864006; 35.82377 7074627; 35.91535 3689050; 36.42163 43851; 36.46515 7248; 36.56978 11684; 36.70219 75602; 37.2521 19625; 37.35378 179097; 37.4242 13000; 37.46583 3237178; 37.47087 42121; 37.50774 1715629; 38.49726 77394; 38.60226 2224161; 38.74584 21844; 39.17972 1782679; 39.19897 61795; 39.50491 1831599; 39.60451 1358405; 39.73489 11892; 39.78166 9922; 40.43604 3135553; 40.4764 1976649; 40.80134 71157; 40.86353 949790; 40.88561 8335244; 41.15471 79968; 41.56047 48926; 41.56862 28934265; 41.72754 14839; 41.75565 1297405; 41.75674 1617699; 41.79345 14003; 41.87966 19730; 41.96838 475377; 42.00047 9073; 42.03444 116623; 42.08958 563; 42.21713 22669; 42.47943 65465; 42.5443 724400; 42.58912 62400; 42.68286 47746; 42.71889 24671; 42.84516 958634; 43.02287 2964361; 43.03518 25258; 43.3129 1663619; 43.32 1794082; 43.51551 3979; 43.59886 2768; 43.67614 13438733; 43.79604 3108721; 43.89037 57571; 43.96457 84833; 44.05765 280637; 44.3473 135734; 44.36832 792752; 44.56134 52765; 44.61603 18580; 44.61698 40701; 44.72871 17612; 44.75798 48691; 44.76011 1095452; 45.0108 9387; 45.02279 27523; 45.05564 347937; 45.11173 7989445; 45.22159 12708; 45.34571 49288; 45.62735 197575; 45.74548 24942; 45.78363 1729287; 45.92025 4132; 46.00171 4902227; 46.34553 122609; 46.67968 1153708; 46.68964 23653; 47.18669 1911647; 47.31882 4371872; 47.39528 5706805; 47.48136 187406; 47.74862 6151190; 47.85771 7276; 47.98175 7512077; 48.05234 8867315; 48.13321 27111; 48.44927 29837; 49.26111 47757; 49.59649 3899907; 49.67377 1565685; 49.80011 41352; 49.84722 801868; 49.873 26171; 50.10616 78269; 50.32917 893; 50.34292 3904905; 50.54156 19322525; 51.02103 4840; 51.17083 578343; 51.38122 1314384; 51.6991 251491; 51.71644 3052305; 51.94637 79857; 52.02989 38482; 52.21897 94896; 52.26639 1280399; 52.34902 4161452; 52.72642 867775; 53.08146 8090; 53.13655 65706; 53.1703 4123668; 53.17796 3250326; 53.19782 5231; 53.26459 22696; 53.44635 7602162; 53.55048 8622; 53.66646 28719; 53.98717 36486; 54.1241 7986617; 54.14219 8843; 54.1876 27537; 54.25019 4622; 54.62042 8353; 54.7093 68705; 54.77621 944568; 54.9965 2390029; 55.06289 38501; 55.47435 4522246; 55.68577 28622; 55.70246 3267477; 55.85081 1379722; 55.89919 46394; 56.00026 33993; 56.22364 12349421; 56.31224 48096; 56.37427 4232; 56.44595 63474; 56.80983 21990; 56.93933 6964308; 58.41843 2260202; 58.49705 557923; 58.57117 1428299; 58.6891 102702; 58.92964 669; 59.08033 8263; 59.16038 45756; 59.4674 1078574; 59.47942 15402; 59.69292 45166; 59.70844 16833; 60.10038 855279; 60.1013 11388684; 60.12737 57802; 60.14686 7123; 60.25655 1952669; 60.36112 2835503; 60.441 431816; 60.50324 45880; 60.51555 38941; 60.53093 182758; 60.70834 49376; 61.25343 3421722; 61.47479 3576; 61.80148 57888; 61.90753 4901188; 62.32978 917809; 62.57521 353946; 62.60499 9887065; 62.76247 60155; 62.8257 976; 63.60474 434131; 63.8128 146769; 63.92115 67987; 64.21577 136799; 64.30235 8425479; 64.44234 114811; 64.46767 3931; 64.565 7885; 64.57448 9253752; 64.80066 72561; 65.10994 736; 65.8368 820488; 66.14742 48336; 66.28886 1924; 66.39513 33415; 66.45671 891155; 66.6761 21372; 66.72098 655010; 66.87547 8598461; 66.96744 1701106; 67.01845 74269; 67.60761 518336; 67.62033 2456347; 67.85898 1940; 67.86767 3168103; 67.9016 26452; 68.15313 460503; 68.22295 9342; 68.26975 639634; 68.41882 2840; 68.6499 2861; 68.91972 51927; 68.9752 52766; 69.27372 4848278; 69.31578 41931; 69.38462 1325943; 69.48957 761306; 69.53061 62114; 69.60156 2795509; 70.08098 68661; 70.48107 22789; 70.7884 5718869; 71.29018 7893021; 71.30606 30329; 71.33351 4539; 71.68475 9368; 72.0822 79547; 72.17394 7792; 72.23681 1618480; 72.52097 9890; 72.84784 66817; 73.09496 1269; 73.58009 7744630; 73.84079 2261889; 74.05958 1443652; 74.09794 2264; 74.14719 26539; 74.51311 129872; 74.5907 15169; 74.60795 22707; 74.97845 2146938; 75.22697 66491; 75.65703 5932938; 75.7161 2734602; 75.79959 21877; 76.19675 29329; 76.32406 2335703; 76.46342 32809; 76.66123 1055558; 76.90306 6877; 77.19035 9847; 77.31806 59870; 77.36793 24708; 77.58203 8668; 78.52766 5566391; 78.753 10793; 78.7862 9314; 78.85801 11857; 79.17759 5933; 79.19058 1221727; 79.21763 3995750; 79.3919 1558805; 79.66006 28816; 80.01477 9644472; 80.02352 45451; 80.18237 185998; 80.19835 10347; 80.42834 14024; 80.48711 2906358; 80.79386 40404; 80.86622 881899; 80.9036 2245573; 80.99372 21957915; 81.52035 57250; 81.64287 2685034; 81.6452 1638; 81.75682 952560; 81.86975 353086; 81.89021 9726388; 81.92688 8379; 81.95932 3001; 81.98912 2946468; 82.24878 26722; 82.27509 79585; 82.3268 1953741; 82.45908 20100413; 83.04286 42623; 83.13966 24526; 83.15489 306040; 83.23785 822328; 83.41941 161535; 83.70403 172552; 83.75192 15715020; 83.84621 7168994; 84.90138 470540; 84.92809 24806; 85.17511 495750; 85.28609 186340; 85.95901 5285; 86.35398 71930; 86.35467 22193; 86.88764 25006; 86.95802 1704912; 87.50313 17562; 87.53443 498699; 87.57878 135437; 87.83058 63184; 87.9096 23272; 88.13384 57238; 88.23732 25228; 88.35889 1425857; 88.3717 723586; 88.87927 26782; 88.8827 353327; 89.0934 56055; 89.74894 41292; 89.79566 73563; 90.0228 1186146; 90.04964 976853; 90.1493 1229338; 90.48333 6751; 90.59772 22778; 90.69591 78714; 90.82868 2492508; 90.99538 1796245; 91.34952 560307; 91.41996 1229677; 91.87306 2895; 91.88293 678425; 92.13994 32588; 92.20561 76214; 92.21129 1448405; 92.32592 1952958; 92.33852 38053; 92.70426 1012; 92.88686 1255290; 92.99975 933790; 93.28219 1429624; 93.45901 70005; 93.52729 66053; 93.70039 105413; 93.76422 1740994; 94.19877 6414424; 94.55277 6665644; 94.86371 5336; 94.97652 29636; 95.10527 721; 95.25731 3815; 95.2863 5144; 95.39205 48464; 95.41914 3048861; 95.57818 28011; 95.64406 57146; 96.66909 9463527; 96.92837 1832083; 97.06445 9112036; 97.21372 60652; 97.24701 213544; 97.737 3242902; 97.96276 78748; 98.28485 23593; 98.35416 4705761; 98.4265 1089394; 98.51965 1394770; 98.52284 192549; 98.58153 8824756; 98.67178 64114; 98.67945 781793; 98.88333 445859; 99.0758 2963; 99.3039 5563; 99.43862 449638; 99.47572 7339; 99.69109 1082231; 99.82475 195662; 99.99652 994; 100.76671 9970; 101.04898 13276; 101.15068 3362777; 101.27384 65905; 101.29765 75460; 101.31257 16508; 101.44703 6385; 101.48401 985339; 102.23447 5804; 102.51794 4225735; 102.69531 962971; 102.81468 21120; 102.96963 543217; 103.04022 726; 103.14526 1063483; 103.9214 57400; 104.1055 22521; 104.26042 4617454; 105.64086 5231; 106.02012 24981; 106.02484 26158; 106.18439 10802; 106.41058 1995711; 106.41307 143937; 106.57934 1242384; 107.15204 74707; 107.20741 1570141; 107.25589 701410; 107.33862 973540; 107.64385 8709815; 107.91856 1886201; 107.9666 7291659; 108.14787 49596; 108.30309 55444; 108.65227 7431; 109.02747 2049867; 109.05238 691639; 109.06762 6782173; 109.24402 6417; 109.3546 19419; 109.63489 3476114; 109.68998 37211; 109.7858 912637; 109.83559 33135; 110.02279 8099; 110.48386 8688; 110.54725 41625; 110.6943 56525; 110.7484 22512; 110.82349 2257405; 111.31712 59401; 111.35842 9479; 112.05188 5296; 112.09569 1877695; 112.17335 5065; 112.28176 4305; 112.52926 62673; 112.6107 43665; 113.0905 20975; 113.28888 9940817; 113.35258 1034815; 113.37752 4817688; 113.52948 4363; 113.73256 4517; 114.05571 2070942; 114.06646 2580699; 114.12598 4217; 114.18707 29604; 114.21403 1932165; 114.67167 9526594; 114.71264 28108; 114.84233 180510; 115.02272 166796; 115.05589 2282; 115.3175 108954; 115.32092 52606; 115.36804 163657; 115.55655 2998; 115.85429 157681; 116.41453 42487; 116.71981 1155561; 116.90943 18217; 116.94002 3761; 117.39191 22647; 117.39532 5496; 117.49727 1837457; 117.49975 19546; 117.5013 69995; 117.6871 53636; 117.72049 4307160; 117.7949 24632; 118.02568 2191768; 118.3872 14458; 118.43582 38690; 118.59956 382614; 118.60109 923198; 118.6927 60827; 118.76667 2843464; 119.06377 59981; 119.06595 2073; 119.1326 1902011; 119.61376 1893752; 119.6483 66981; 119.88665 4977662; 120.14305 4580; 120.26197 6852; 120.59913 2188; 121.00019 3798; 121.01837 414190; 121.2038 1290266; 121.27144 24621; 121.74206 3756; 121.82237 24168; 122.00726 915919; 122.88796 24730; 123.18693 8103; 123.2336 24405; 123.27804 470; 123.29945 176988; 123.41538 5596312; 123.74909 35728; 124.30023 44353; 124.51218 28091; 125.23934 77306; 125.53223 3177452; 125.69397 16716; 125.89502 26072; 126.16097 2975; 126.85189 1496851; 127.15746 55009; 127.19321 38744; 127.76787 949927; 127.77116 8202157; 128.00556 61357; 128.13184 7385463; 128.85929 18630; 129.07785 1898610; 129.27537 10764; 129.5012 3583; 129.81187 3965; 129.84223 8046; 129.98391 1893668; 130.05196 38014; 130.08345 3596284; 130.41418 23439281; 130.44491 4097; 130.5502 445945; 130.87215 4038400; 130.92563 9327; 130.96078 9008; 131.4768 26738; 131.50122 1382; 131.59132 66685; 131.67799 51659; 131.92981 3364855; 131.94113 441871; 132.06355 56831; 132.12511 29349; 132.13738 2518; 132.2963 22676; 132.32988 72489; 132.45561 6848773; 132.97579 650585; 133.10554 3955178; 133.16309 1511417; 133.19846 49486; 133.19924 24574; 133.27634 1825503; 133.34352 49351; 133.41121 8035523; 133.42407 9262863; 133.58474 814192; 133.77653 44064; 134.33522 31055; 134.37284 4188935; 134.68436 356318; 135.32602 26836; 135.4778 7865; 135.60147 821136; 135.63026 455803; 135.67956 4510054; 135.73245 8369278; 135.74113 24721; 136.10943 19806; 136.58549 4623; 136.65472 70959; 137.00573 16805; 137.01265 8045707; 137.2603 1745275; 137.29752 2784; 137.43377 4402280; 137.59929 4422; 137.62794 4226; 138.1631 530941; 138.40194 508234; 138.63336 3587919; 138.67634 1678076; 138.81694 1608737; 138.84074 1319498; 138.86429 72659; 138.87101 1625167; 138.99722 51842; 138.99966 1277416; 139.11887 7641627; 139.43453 782; 139.581 7007; 139.73213 323637; 139.95493 256650; 140.01566 71285; 140.07851 13745257; 140.10511 41240; 140.11445 22660; 140.18254 636314; 140.25723 9271; 140.77266 37287; 140.98552 47081; 141.04694 270726; 141.81558 175671; 141.92914 26915; 142.09326 27324; 142.32423 120382; 142.35246 10038; 142.38903 20928; 142.58937 4234614; 142.92442 1182254; 143.11367 69125; 143.12093 5440101; 143.65929 29391; 143.76552 1611822; 143.81448 26773; 143.95759 6892; 144.40189 19331711; 144.63523 120; 144.75719 5778; 145.00778 994413; 145.38828 71715; 145.59603 64733; 145.77995 40525; 146.01659 39126; 146.07235 5056; 146.29156 25857; 146.52036 53421; 146.62774 18987531; 146.96205 4921676; 146.98737 38304; 147.04909 22751216; 147.61315 62708; 148.09118 4637571; 148.19546 71792; 148.43047 94086; 148.50962 26029411; 148.52324 9846149; 148.60372 120420; 148.61158 22121; 148.64948 5937; 149.16283 22010618; 149.27244 2625; 149.36228 7704; 149.52173 32287; 149.60571 2680933; 149.89912 1099763; 150.04908 63757; 150.20772 78154; 150.29712 62259; 150.47796 74322; 150.66731 8160619; 150.78401 27229; 151.27088 2721813; 151.4337 2067934; 151.71693 119397; 151.73105 425; 151.91872 19146039; 152.13468 24937; 152.7353 16158; 152.96352 27639; 153.00489 79371; 153.04568 19443; 153.06504 1795582; 153.07671 21516; 153.08956 249313; 153.16361 15957914; 153.37173 9942851; 154.15914 65613; 154.20479 8827; 154.31836 28081627; 154.34464 22526; 154.36143 9233697; 154.37163 1263185; 154.61178 49133; 154.61534 3770946; 154.67488 9404; 154.69496 1490; 155.01017 26059; 155.14502 339236; 155.1854 75856; 155.20276 27519097; 155.29102 46391; 155.33041 6656406; 156.009 441760; 156.20149 3178; 156.26628 284; 156.29974 55781; 156.48576 21651; 156.60237 2318; 156.81658 29839; 157.09334 4741489; 157.21167 3461830; 157.73079 53689; 157.84051 1401314; 157.91798 1421635; 157.92795 60657; 157.98153 1277816; 157.99293 49445; 158.09387 9486; 158.10863 25459; 158.36437 20986; 158.41396 4485059; 158.5233 10440; 158.64539 39190; 158.87285 3143771; 159.47827 167991; 159.52647 42872; 159.56385 67719; 159.61049 9087; 159.66488 198244; 159.99506 27953; 160.18023 6672; 160.45317 2085123; 160.60524 1884512; 160.71058 26299; 160.71402 3628; 160.77714 8528; 160.77736 27837; 160.80086 1286412; 161.31939 728872; 161.67779 21848984; 161.74412 254885; 162.00107 213728; 162.0465 2764821; 162.08526 108617; 162.29832 1988427; 162.40047 9719; 162.47648 12412; 162.59543 6440; 162.95656 8966662; 163.20678 68718; 163.29869 63115; 163.30981 8507855; 163.45439 57912; 163.58856 6916; 163.61327 4482782; 163.79392 4731; 164.18725 4330; 164.27545 20734; 164.52772 1902120; 164.61189 26461; 164.90656 309819; 164.9927 13841; 165.10895 784440; 165.28315 28152; 165.55768 50425; 165.56145 8962151; 165.73941 106104; 166.20389 2337; 166.23872 7225631; 166.42409 13472; 166.48793 2970450; 166.71683 73688; 166.74186 46789; 166.76233 3925; 166.92941 561022; 167.01188 5943; 167.45019 47782; 167.50901 4108385; 167.79721 1703793; 167.84392 8942; 168.0437 8143220; 168.11585 466451; 168.61289 52588; 169.34911 21600; 169.47117 1071152; 169.75636 1745688; 169.86779 9831455; 169.87991 8854; 170.12249 769460; 170.31196 5309548; 170.41675 16439300; 170.62892 1888916; 170.69106 25238; 170.75638 73143; 171.00155 965147; 171.02432 1426282; 171.37837 44050; 171.73126 27045; 171.99406 65608; 172.05796 14593; 172.17684 23132; 172.21684 10008; 172.55792 9508736; 172.61691 25803; 172.76739 1005907; 172.97643 807251; 173.10207 5217; 173.61046 3921713; 173.88995 45027; 173.92993 4797346; 174.09818 446615; 174.67896 1279794; 174.77791 40251; 175.09555 119028; 175.33768 19116; 175.34948 2875449; 175.44623 38216; 175.54888 3294546; 175.99858 8787; 176.07959 199890; 176.25775 2722910; 176.29162 79040; 176.37523 6022182; 176.47954 4121616; 176.74988 24505; 176.79287 3205062; 176.83552 7648; 176.948 73982; 177.17042 5708106; 177.80668 414357; 178.16436 41471; 178.24167 2232; 178.33277 176299; 178.41566 133339; 178.43511 29628; 178.80271 782; 178.83627 1698804; 178.96048 928211; 179.05747 23169; 179.29664 78043; 179.36322 49954; 179.53116 227; 179.57137 2017829; 179.67386 31848; 179.72866 66717; 180.20554 6982; 180.45895 21312; 180.75108 50731; 180.89712 3703; 181.1305 106331; 181.16894 1832143; 181.46917 1832774; 181.56765 113135; 181.7107 9521904; 182.02574 1275852; 182.14699 927936; 182.24797 8309; 182.38969 14860; 182.42144 122000; 182.84823 4136764; 183.01911 771184; 183.17956 46810; 183.20697 466121; 183.27779 9; 183.39531 51093; 183.4348 9359307; 183.91482 299429; 183.93088 156147; 183.93293 9359365; 183.97723 24162; 184.09334 2463169; 184.10417 529557; 184.18041 11437; 184.89417 40118; 184.91421 1436522; 185.22779 40006; 185.2859 34829; 185.94984 5551523; 185.99058 24383; 186.10618 2486452; 186.39094 24389; 186.42828 9924; 186.6619 40510; 186.7334 239446; 186.74224 25927; 187.02493 47789; 187.04137 1756364; 187.08078 30282; 187.10396 4430; 187.11618 40596; 187.13637 76312; 188.57578 191959; 188.66697 57453; 189.2442 8654055; 189.60217 15381; 190.24461 3411375; 190.25459 37393; 190.29314 10588; 190.49019 28189; 190.49896 4508341; 191.08312 2771; 191.17061 8664; 191.2026 25763; 191.42825 68986; 191.59445 2579695; 192.16201 5788; 192.54883 9237628; 192.99935 1261270; 193.04976 21590; 193.09412 52249; 193.09572 54863; 193.11829 7781391; 193.37307 2805393; 193.41555 252761; 193.90028 44445; 194.15409 37581; 194.5008 56473; 194.911 4303771; 195.10052 50669; 195.23553 7689864; 195.28916 16448; 195.64746 32749; 195.70072 2774; 195.91679 828318; 195.98282 653344; 196.12626 31108; 196.37436 45498; 196.80195 7139885; 196.87962 8406753; 196.97592 9065269; 196.98141 72921; 197.03621 1005260; 197.18928 1621628; 197.69611 2232065; 197.7373 26894; 198.71147 61634; 198.72577 58339; 198.76094 34464; 198.84344 19730878; 198.91868 464238; 199.01427 16386489; 199.46805 9254823; 199.50736 684230; 199.53378 4653852; 199.79535 80718; 199.80989 62057; 199.86595 3851214; 199.87694 35467; 200.01437 4835917; 200.26565 1666643; 201.35393 715371; 201.47218 190884; 201.52913 6242661; 201.53121 1247755; 201.66842 53704; 201.90192 598306; 201.98879 22855; 202.06217 52532; 202.17117 1820; 202.22042 3824; 202.35923 10477; 202.41766 748887; 202.5502 816; 202.66689 158474; 202.70156 1948994; 202.7937 185456; 203.01847 23640; 203.05433 3073875; 203.24316 1952870; 203.46193 10034905; 203.53417 95877; 204.45421 21387; 204.52431 16226637; 204.81046 23773; 204.87953 60087; 204.89708 31764; 204.91884 1755; 205.05937 161176; 205.31779 3865252; 205.37148 46715; 205.38053 1892251; 205.4779 72372; 205.54558 1827602; 205.9936 1475383; 206.02555 179958; 206.14553 21984; 206.20511 5075; 206.22417 7140; 206.24209 4814896; 206.25815 1418818; 206.31961 10288; 206.40547 66271; 206.43424 22242; 206.45192 4599; 206.61455 9809; 206.90366 687225; 207.0219 92246; 207.17183 35918; 207.63073 9099; 207.80087 68206; 207.87841 42997; 207.91652 29014; 208.68511 43701; 208.78896 188631; 209.005 16698028; 209.21343 1701927; 209.27346 9501; 209.32436 671045; 209.60236 48907; 209.83796 39273; 210.03263 6492099; 210.05745 5909704; 210.07089 48798; 210.10639 342458; 210.24218 31784; 210.26998 16072; 210.8008 726268; 211.36273 34075; 211.36359 4493743; 211.4368 6535147; 211.58575 3155472; 211.80013 20469; 211.8288 2036569; 211.94079 8643; 211.97487 36790; 212.11918 5436417; 212.52675 20354; 212.67087 165653; 212.70188 43672; 212.74585 29674; 212.79473 8848; 212.94391 29558; 213.11235 630855; 213.4843 29510; 213.83422 696499; 213.99801 3726; 214.00387 36284; 214.04781 30228; 214.35997 23897; 214.42562 2533; 214.73528 4447306; 214.79551 1832177; 215.38444 1850582; 215.78435 36823; 216.27487 3680643; 216.35818 50324; 216.39661 91054; 216.51181 16867; 216.55188 29195; 216.55907 6633568; 217.18093 3951; 217.43516 3130; 217.48816 49846; 217.73784 46918; 218.23042 22110; 218.55096 921841; 218.55599 26166; 218.8879 2934563; 219.04376 27198; 219.16077 62345; 219.24209 760739; 219.39747 8487131; 219.46506 797840; 219.68056 9839; 220.2734 1444749; 220.33696 3283; 220.93716 21680; 221.05606 45433; 221.15996 5455248; 221.51363 5226; 221.92707 32303; 222.17909 5135308; 222.34535 15058; 222.4368 24522; 223.07944 4728783; 223.18695 3807; 223.60158 1077125; 223.70494 34299; 224.20425 140956; 224.32856 4592713; 224.33693 132130; 224.89495 18126; 224.99058 12286; 225.14294 33459; 225.26739 1871124; 225.53539 5096425; 225.57658 34412; 225.85522 9388591; 225.95676 9178; 226.07066 99762; 226.0748 6130; 226.16397 1478664; 226.18897 2829330; 226.29033 1509954; 226.39399 6826; 226.67443 8998; 227.36375 47185; 227.55981 9028167; 227.62726 75385; 227.71608 3113029; 227.90556 1021768; 228.13741 172376; 228.14536 20401484; 228.4557 69456; 228.84511 4997970; 229.12735 54689; 229.23372 27371; 229.30559 807648; 229.30836 9028037; 229.35222 984939; 229.3759 7315; 229.59289 3042; 229.78771 22156; 229.86846 4331108; 230.01156 538960; 230.31074 603435; 230.52799 30930; 231.15685 2440069; 231.36551 12461; 231.61426 29126; 231.82146 4509; 232.062 118326; 232.21813 12915; 232.2329 65005; 232.67792 63800; 233.15556 15914; 233.21853 667207; 233.25939 5640; 233.49571 56692; 233.57133 1588966; 233.70397 68225; 233.8404 29650; 233.96051 689997; 234.16929 13109; 234.53414 20434; 234.65428 76136; 235.07235 6810; 235.15272 666717; 235.48291 7904188; 235.84303 38184; 235.94387 53133; 236.09963 187315; 236.45442 32253; 236.56387 56805; 236.69002 1856968; 236.81805 70486; 237.12502 63219; 237.44857 4347; 237.60042 110859; 237.66037 2749089; 237.77708 47328; 237.80488 380635; 237.82045 223282; 237.94814 77849; 238.12704 46637; 238.42756 51276; 238.50518 26935; 239.01748 2515735; 239.15433 8624; 239.26425 2908737; 239.32784 3514320; 239.4274 6654065; 239.4311 11870; 239.45794 62682; 240.18715 29367; 240.22206 65127; 240.42173 152639; 240.50705 7418; 240.74942 45829; 240.75662 24632158; 240.82935 5461836; 240.93057 36465; 241.18981 52906; 241.33842 18609; 241.40235 257482; 241.60787 7868; 241.80569 3160904; 241.90381 3963; 241.92512 7384; 242.02771 26278; 242.24863 3816147; 242.39907 4944770; 242.43299 115911; 242.77584 7743; 242.81384 58492; 242.8223 10471; 243.30303 23747; 243.30814 37955; 243.41151 5493; 243.62102 3865800; 243.75296 57279; 243.97927 415962; 244.08049 463620; 244.24242 324529; 244.28983 22599011; 244.37378 78283; 244.49328 26282; 244.65852 17140497; 244.6781 54084; 245.04084 168013; 245.20979 180158; 245.2599 33440; 245.27476 35901; 245.46596 4630248; 245.50544 47169; 245.50731 414231; 245.99952 3914; 246.00655 19108929; 246.67164 623994; 246.90006 4578838; 246.96571 5286; 247.57426 7441; 247.63227 9421596; 247.8567 185105; 248.08626 59913; 248.13865 588736; 248.76546 2332; 248.7916 909206; 248.841 925562; 248.87971 197195; 248.89505 25390; 249.12634 2033139; 249.32074 860558; 249.57335 7100; 249.89969 8678; 250.34263 2792792; 250.37193 3759746; 250.44318 4920389; 250.70521 562370; 250.73937 121288; 250.77547 28091; 250.91 66236; 251.0976 65986; 251.18204 8113; 251.40009 27184; 251.60642 40351; 251.86435 20099; 252.06676 1683926; 252.5035 23895; 252.6303 6393135; 253.23494 16784; 253.93305 1398705; 253.99413 848521; 254.16108 7470845; 254.36533 20; 254.9823 39587; 255.02369 43691; 255.24427 70221; 255.66702 174835; 255.88682 32569; 256.20033 1639922; 256.20948 9196791; 256.4279 63195; 256.46646 28676; 257.45401 6753227; 257.59324 3851084; 257.88709 4048740; 258.55934 1890516; 258.74316 6895; 259.30472 2235; 259.3167 41099; 259.33627 49127; 259.47912 764760; 259.48905 6518; 259.49501 3465434; 259.66265 35911; 259.80405 53371; 259.94591 105862; 259.9789 14701; 259.99255 623479; 260.20531 51351; 260.55639 1745055; 260.69028 47337; 260.70149 119434; 260.71817 1117489; 260.89203 67068; 261.0866 57911; 261.12065 33415; 261.25106 56003; 261.6427 2961345; 261.75477 166196; 261.77935 2183036; 262.02976 14539608; 262.84525 40471; 263.14645 91923; 263.55458 757765; 263.78058 5887939; 264.24251 56990; 264.26838 6347764; 264.6354 52361; 264.7273 354081; 265.64622 4193; 265.91085 171838; 265.97085 17631; 266.22742 44496; 266.39346 27070; 266.4321 734283; 266.45818 2856214; 266.51911 11433; 266.70259 1087925; 266.79712 38606; 266.84491 66442; 266.86706 1903272; 267.01701 3537; 267.13212 24089; 267.66635 3459; 267.91331 28383; 267.93512 952667; 268.30513 7413; 268.31555 18134; 268.3415 20070; 268.52147 182088; 268.54776 1520651; 268.58754 26174; 268.8114 34242; 268.99718 9291385; 269.42598 70544; 269.48888 79529; 269.73224 1281064; 270.15801 921693; 270.22017 372; 270.45453 994998; 270.56436 16345; 270.58468 6605943; 270.89214 65741; 271.08322 7681401; 271.35148 2606211; 271.40905 5917893; 271.52499 48507; 271.78669 1247334; 271.85728 1006769; 271.88344 24498; 272.02936 2080; 272.13168 11391; 272.30526 576827; 272.64048 58851; 272.67375 4214515; 272.75911 73535; 272.90415 30286; 273.02657 1970442; 273.17975 6312698; 273.57416 2035536; 273.9724 79521; 274.09457 34411; 274.24049 3556822; 274.62926 1285; 274.69468 32036; 274.77972 18347; 274.98048 28894; 274.98379 3772206; 275.05491 5216581; 275.45116 1215356; 275.55378 592120; 275.64798 73623; 275.77818 17250651; 276.04765 140822; 276.14327 44094; 276.25033 201; 276.43759 10091294; 276.5125 2660734; 276.67589 71039; 276.70004 2227705; 276.73331 64519; 276.85319 9356855; 277.1899 2525340; 277.19573 144474; 277.24722 43115; 277.33126 6696; 277.37743 580926; 277.79026 9941; 277.82765 2679; 277.94841 40652; 278.23124 21528; 278.30183 22307; 278.33263 76025; 278.55935 1781015; 279.01689 196543; 279.02704 8337; 279.06498 1845813; 279.13888 6334280; 279.19326 3472; 279.28855 101980; 279.40991 64675; 279.52183 48927; 279.69286 1189789; 279.80374 47639; 279.8637 9194; 279.86575 7015770; 279.96823 21306101; 280.12066 29933; 280.2982 749953; 280.407 4961896; 280.54266 43509; 280.62949 966459; 280.97508 5993187; 281.44257 159616; 281.84375 21724; 282.60756 1931959; 283.18908 29123; 283.24077 28953; 283.43789 1180902; 283.49707 21108; 283.62828 1599480; 284.32023 24876759; 284.51234 14289; 284.73727 1658879; 284.76198 1236; 284.86697 24493; 285.1035 29794; 285.22579 50330; 285.28688 56862; 285.4496 2513; 285.54982 835; 286.13285 142616; 286.17476 15631; 286.33985 47938; 286.40085 53523; 286.44931 38977; 286.45856 60809; 286.61312 4011426; 286.634 28045; 286.65013 160209; 286.83559 2992085; 287.22593 12894; 287.23268 27294; 287.34504 5391377; 287.40907 5521805; 287.48867 4150849; 287.63365 1406938; 287.76763 14679; 288.21205 2457219; 288.75649 6484649; 288.93249 327872; 288.93912 73872; 288.99528 1343004; 289.04726 73247; 289.56663 3214131; 290.08223 784467; 290.13473 14173; 290.18563 4087; 290.25211 16440; 290.4593 1546052; 290.56318 6596887; 290.61313 35032; 290.84817 8447347; 291.07141 31849; 291.08008 827484; 291.12227 1932232; 291.58892 1208419; 291.60524 2481431; 291.95364 3324913; 291.99921 61631; 292.07871 5249; 292.11088 8277732; 292.28401 38532; 292.63803 746167; 292.77783 1203972; 292.80732 7620; 293.19758 7212542; 293.20977 10265; 293.32066 10966; 293.52831 48545; 293.55833 8885050; 293.70964 43434; 293.92744 3626996; 293.99333 20255344; 294.22672 170439; 294.32429 24303; 294.41416 14197; 294.48202 2198324; 294.53351 4684; 295.05066 47670; 295.06444 1490134; 295.10794 4645; 295.25215 56120; 295.42965 31557; 295.4712 53833; 295.65688 16868; 295.68555 18524; 295.72287 9370; 296.00823 52788; 296.27398 352799; 296.30939 116962; 296.51846 3330162; 296.99172 58502; 297.01846 194077; 297.03962 24079; 297.1745 178852; 297.25765 50453; 297.31303 58544; 297.63117 9420; 297.761 5537; 297.79669 43460; 298.37217 188476; 298.41083 17188; 298.89309 75076; 299.07483 2318786; 299.35478 31357; 299.45659 28475904; 299.46128 284114; 299.54379 33548; 299.68515 53350; 299.80629 2650164; 299.99468 3231407; 300.00156 118720; 300.07821 26610; 300.21241 13463512; 300.36145 135644; 300.41721 418042; 300.5612 969915; 300.76378 63281; 300.86707 5788; 300.92204 111462; 300.98636 4125099; 300.99168 75524; 301.39751 3083; 301.57656 25377; 301.70156 5182371; 301.87232 29790; 301.98453 1467823; 302.11993 67594; 302.88561 6114; 302.95418 25542; 304.12762 964982; 304.18409 8987041; 304.63209 35511; 304.70428 42921; 304.79995 217391; 304.80753 38765; 305.00147 22746; 305.18157 23111; 305.95762 1187005; 306.05318 192; 306.07035 5510998; 306.16641 18436; 306.59296 4413694; 306.85054 73604; 307.00158 47460; 307.23349 3560242; 307.26938 4524419; 307.26964 17198; 307.34113 33377; 307.42798 2185442; 307.45192 3015; 307.71955 59044; 307.85696 46304; 307.86727 7643; 307.91975 197123; 308.08201 8430; 308.22112 543721; 308.5797 75037; 309.05692 40778; 309.1001 28466038; 309.35516 25029; 309.47463 19137; 309.58741 11298339; 309.71225 2638408; 309.78307 35151; 309.97403 1390028; 309.9932 5301; 310.21563 64068; 310.30676 3810; 310.33512 129820; 310.71292 550973; 310.93025 48642; 311.05985 203059; 311.29943 22596; 311.59148 4792; 311.63746 4193314; 311.82896 1668152; 311.89678 23747; 312.09172 104411; 312.12879 23196; 312.27011 44523; 312.35987 4139810; 312.42606 3144; 312.60556 6067; 312.78382 324009; 313.56851 4405500; 313.64045 21929; 313.78905 4100628; 313.97242 10970; 314.15837 109333; 314.24189 5109; 314.74327 558116; 314.86361 115506; 314.9154 114785; 315.25252 9193; 315.32466 21139; 315.46345 2598088; 315.49478 4979107; 315.9562 1557; 316.06814 9241458; 316.07589 19248; 316.35793 40485; 316.41841 1916706; 316.49564 29044; 316.55898 132514; 316.81038 16134710; 317.11153 9137; 317.16995 3641029; 317.23978 28643; 317.31169 69574; 317.40498 182473; 317.59134 11958; 317.69491 8688; 317.76414 114854; 317.77398 2829; 318.11894 26691759; 318.86933 347976; 319.09026 21231; 319.20046 20393; 319.3085 14523; 319.36453 2419293; 319.43421 5059794; 319.62747 7276; 319.65928 1117782; 320.01149 1495842; 320.42926 1711166; 320.82487 45709; 320.90215 5939; 321.12465 2294619; 321.33901 23417; 321.58544 1003762; 321.67244 1433145; 321.71872 1038289; 321.72874 9497314; 321.7527 8525747; 322.02057 4337948; 322.04371 1937601; 322.11295 5137886; 322.14237 48480; 322.37308 37060; 322.55487 8914; 322.5691 5111; 322.73294 184103; 322.86086 57700; 323.07129 15422; 323.11524 9471128; 323.30073 6829; 323.33888 65936; 323.57108 23965; 323.80451 3491414; 323.96146 22263674; 324.00841 6441; 324.53715 29728; 324.63865 9014; 324.72832 3012; 324.73344 92162; 324.89703 152391; 324.94716 83702; 325.23318 262409; 325.25154 816181; 325.27523 16118; 325.29345 326413; 325.33488 28802; 325.51742 2176688; 325.62081 49509; 325.96868 1108771; 326.14232 14401704; 326.25075 3700431; 326.60076 5337; 326.75663 719064; 327.35564 11953535; 327.52719 6006; 327.6379 1024230; 327.74901 18865; 327.76454 12321373; 328.29939 8005; 328.73274 671495; 329.08249 78653; 329.14941 4782212; 329.18507 4285017; 329.25671 29834; 329.32869 36420; 329.54081 9375; 329.5915 15608; 329.66527 42124; 329.91479 28289; 330.31078 6038946; 330.63761 73024; 330.76377 2007821; 331.15467 9525633; 331.20548 29048; 331.38077 325445; 331.38365 1977153; 331.42783 1424778; 331.5268 2817429; 331.82667 9384402; 332.07004 47488; 332.18545 25612; 332.36308 34472; 332.65184 406720; 333.03929 1774441; 333.08064 7642; 333.27421 123332; 333.70377 7753; 333.75612 277225; 333.88094 31511; 334.00031 2518; 334.1225 69136; 334.65529 9306439; 334.82851 7002909; 334.88639 18012246; 335.72993 193590; 335.757 33458; 335.90055 7681495; 336.04182 22393; 336.13103 34636; 336.18227 25946; 336.23636 44713; 336.29747 42495; 337.00256 69079; 337.01834 532344; 337.11686 4228781; 337.15903 73256; 337.27841 982; 337.72877 1693217; 338.02574 26339755; 338.04603 1209758; 338.10039 5226955; 338.40251 4277; 338.40695 18097; 338.87478 8011691; 339.23089 20496864; 339.35085 7660243; 339.89968 55274; 339.92619 21310; 340.11524 27395; 340.28614 1364686; 340.28862 3907700; 340.76572 7774; 341.07141 974724; 341.08207 6449123; 341.29398 3066081; 341.33733 48157; 341.53315 5504; 341.62998 61089; 341.83038 34982; 341.84719 5706124; 342.268 1482761; 342.37536 7503154; 342.70594 5918828; 342.77695 26354; 342.88922 5645768; 342.93574 3004178; 343.03987 54417; 343.04003 4107; 343.06719 18; 343.08937 108861; 343.21132 54417; 343.39272 59178; 343.48908 55896; 343.51182 11640; 343.62675 1981038; 343.71343 112447; 344.05643 70399; 344.23543 955984; 344.28241 7315; 344.33914 2004282; 344.4064 51743; 344.71818 45888; 344.72928 575075; 345.14633 55129; 345.35468 9374; 345.55293 38110; 345.79285 1473536; 346.14734 16418345; 346.30071 1566308; 346.54896 66865; 346.76063 856126; 346.80137 78041; 346.82761 984718; 347.25066 26960; 347.45941 47761; 347.56824 40157; 347.60807 1933501; 347.6845 66142; 347.77775 1427019; 347.81545 1008018; 347.82713 7410; 348.01958 1413598; 348.18239 23613; 348.20269 322450; 348.27977 738392; 348.31864 2745199; 348.51261 73434; 348.54427 325238; 348.622 8042; 348.83625 10159337; 349.06167 21588218; 349.08363 2402619; 349.15686 4082771; 349.28623 94997; 349.36595 39486; 349.36697 10428; 349.45493 1928907; 349.49588 3649238; 349.5978 1578315; 349.69184 14688; 349.74865 6585391; 349.96713 29494; 350.32963 6033399; 350.40456 26838; 350.898 44963; 351.23665 30374; 351.52984 23132; 351.70632 975162; 351.82501 4262417; 352.02514 312725; 352.07297 17273; 352.2266 25088; 352.76301 22764; 352.8199 48699; 352.95915 105641; 352.96504 315163; 353.11509 4997617; 353.11864 1180361; 353.15408 35349; 353.16527 4227889; 353.32931 1634; 353.63508 3647; 353.71275 6155703; 353.77451 176644; 354.03006 1635220; 354.18254 9653; 354.65415 54304; 354.9304 8816119; 355.00294 29849; 355.4884 65078; 355.51227 14982; 355.54425 383081; 355.89908 24804; 356.41168 1200826; 357.02095 16130; 357.04481 265186; 357.56679 3682336; 357.59593 13077709; 357.71039 2230066; 357.73384 59528; 357.83412 1560433; 358.26191 916939; 358.28497 8434; 358.77294 21653; 358.90504 1840780; 359.10999 4481388; 359.28132 4356959; 359.68626 22137; 360.27188 259084; 360.30942 1136305; 360.47872 159300; 360.6572 26726; 360.93757 48825; 360.95398 41621; 361.07562 67931; 361.35649 1029366; 361.94101 22477; 362.68161 133767; 362.7943 51090; 362.82451 2821155; 363.11086 1; 363.18157 1539110; 363.36858 8838037; 364.15732 1994093; 364.27683 14440; 364.48244 515590; 364.65689 30198; 364.93591 3759523; 365.02353 34340; 365.37231 5642; 365.41499 20263041; 365.46229 37879; 366.02777 451192; 366.30379 9305028; 366.57828 566328; 366.76879 23984119; 366.90982 3229820; 367.19596 66232; 367.64964 42857; 367.72942 9892839; 367.7337 994; 367.99059 1984007; 368.05622 7336174; 368.25901 50299; 368.56095 26901; 368.69332 79828; 368.74674 9802; 368.76098 52175; 369.53339 1785; 369.83533 1512678; 370.55541 159363; 370.73607 2839461; 371.13438 43430; 371.29239 78848; 371.66769 88891; 371.88392 38172; 371.96618 23750; 372.45401 22413; 372.58756 29131; 372.61005 6599; 372.91907 880008; 373.09584 75812; 373.34628 3628036; 373.37553 52722; 373.37594 183687; 373.54263 154052; 373.68957 58996; 373.99751 11091; 374.01351 29249; 374.07822 3403; 374.2518 1214208; 374.26752 5083; 374.58152 7578; 374.81056 50584; 375.57605 56746; 375.70358 24185256; 375.88325 21851; 375.93722 1952818; 376.2021 58555; 376.26828 6529949; 376.28964 39976; 376.6066 1241210; 376.69594 3643929; 376.73315 24865012; 376.83 25693; 377.00774 9129535; 377.03285 41345; 377.09397 63886; 377.45242 28905; 377.85035 3058633; 377.9591 1910698; 378.1537 56490; 378.15593 24535; 378.39932 172831; 378.60035 22862659; 378.66224 41761; 378.77928 272544; 378.89452 4255; 378.98486 51441; 379.02639 21704; 379.11222 105510; 379.24331 9642; 379.26149 3483515; 379.30375 4665511; 379.38839 4214; 379.54415 194586; 379.72289 67473; 379.89297 8703; 379.99893 1986279; 380.35703 38883; 380.49246 1948; 380.49595 508229; 380.72054 76072; 380.78485 7165609; 381.06837 65091; 381.20246 15197; 381.47421 1129910; 381.68526 6624584; 381.71024 921977; 381.8812 54559; 381.94819 1318570; 382.00155 19297; 382.00936 182879; 382.11436 78962; 382.26967 970565; 382.5114 68155; 382.87992 9883403; 382.91419 144048; 382.97483 42040; 383.14423 2970; 383.34585 2354; 383.37646 8861; 383.49669 5231; 383.52655 20616; 383.65785 1626924; 384.0822 125438; 384.41773 109144; 384.53123 143161; 384.53417 5549607; 384.64952 368540; 385.03413 51568; 385.06831 1926807; 385.28042 50019; 385.36793 64951; 385.47811 5796; 385.59599 16900; 386.22366 18843125; 386.35015 2024678; 386.55061 20372; 386.56073 65830; 386.59797 1599191; 386.65412 14865; 386.65824 24013; 387.01517 70176; 387.10404 904394; 387.23407 738589; 387.40266 377; 387.95936 1409046; 388.08181 170188; 388.08893 4740549; 388.76137 20219682; 388.85418 57263; 389.00862 51479; 389.02296 33819; 389.15276 7759; 389.26585 20469; 389.38952 197931; 389.45093 1218703; 389.8362 881429; 389.84714 4640; 389.98232 64640; 390.3231 3315; 390.516 58725; 390.54999 9769188; 390.71514 45387; 391.00454 962300; 391.12397 1175641; 391.13552 6561737; 391.23934 4447604; 391.65256 24658; 391.67326 629824; 391.70495 616887; 391.70685 15189; 392.15883 103727; 392.1787 60474; 392.3034 34170; 392.48758 234434; 392.69512 3595072; 392.8829 19895; 393.07901 20171; 393.08792 20789340; 393.17401 8184009; 393.20049 30215; 393.50324 33483; 393.61528 29616; 393.73916 907601; 393.80604 195007; 393.85079 24346; 394.06335 37178; 394.82581 435035; 395.12865 1660540; 395.32336 9111; 395.51256 285; 396.34375 8002116; 396.46115 9161; 396.74176 1311953; 396.91332 30292; 396.98355 9479050; 397.02451 5808699; 397.3332 4163; 397.58045 7417585; 397.98917 53531; 398.56741 4858; 398.92182 9974; 398.95588 6414429; 399.05511 2524968; 399.09491 1795883; 399.11957 174; 399.12886 585541; 399.26325 9906; 399.31571 58613; 399.43171 21846; 399.5423 1562092; 399.96024 3698005; 400.23927 133818; 400.49427 41363; 400.69432 39187; 400.81688 6781432; 400.9176 16586; 400.93589 65237; 400.97143 4666752; 400.98527 2724; 401.45358 3080963; 401.48367 34527; 401.56062 1063568; 401.61732 129193; 401.62466 61240; 401.91052 27779; 401.94209 4406675; 401.97626 345907; 402.33689 27947; 402.34003 4535072; 402.34008 694; 402.72117 18713; 402.93185 1631006; 402.99195 76456; 403.00455 450198; 403.12767 3610302; 403.40893 5361; 404.49769 2385; 404.70191 12572; 404.74135 8396; 404.96809 2521; 405.02337 25755; 405.60457 36207; 405.7267 39695; 405.81521 27709; 406.03095 12863534; 406.27399 1569351; 406.75225 4570941; 407.09579 2307; 407.33384 67191; 407.41487 4448412; 407.73995 1714081; 407.76034 25394663; 408.104 10043; 408.35887 20967; 408.48609 5491; 408.55038 71252; 408.66932 19219; 408.95897 4668752; 409.23084 155165; 409.40431 32298; 409.43378 35676; 409.57672 23233; 409.66512 81; 409.77979 1740715; 409.8662 955910; 410.28689 3418991; 410.70475 27510296; 411.2242 13777; 411.29228 5515362; 411.31923 16554; 411.33106 7683487; 411.46374 47411; 411.71469 32489; 411.7289 24979; 411.99376 74113; 412.04625 43223; 412.56563 2859919; 412.60513 22031; 412.76656 45463; 412.9156 54397; 413.14959 33080; 413.34359 36101; 413.51689 42606; 413.76012 294873; 413.95203 7265; 413.97398 939160; 414.07498 57799; 414.43439 43316; 414.78867 1380; 414.8738 40302; 414.96255 171618; 415.01516 36182; 415.03949 289695; 415.77137 1305562; 415.85152 7813; 415.96003 206324; 416.05297 19393; 416.15415 55313; 416.53156 7905340; 416.76076 951; 416.77942 14775; 417.02368 22322; 417.13195 50605; 417.22562 105967; 417.36486 44358; 417.49949 148134; 417.5883 3374663; 417.67792 179433; 417.6826 600340; 417.69429 60029; 417.97244 1460379; 418.06196 378538; 418.0663 2877; 418.18819 6317577; 418.75669 9; 418.86645 6345354; 418.883 48064; 419.05486 20604; 419.07511 16334413; 419.17856 744840; 419.22272 993137; 419.27177 113090; 419.29382 21578; 419.37712 4452139; 419.66551 22086; 419.80484 22283; 420.06154 6440; 420.32195 46186; 420.32324 35350; 420.33355 30176; 420.34477 6476908; 420.39085 54022; 420.80603 5608; 420.86971 164770; 421.37247 399190; 421.54647 51757; 421.75712 6160; 421.90538 4394550; 422.02704 1538889; 422.66855 416775; 423.26556 77636; 423.40451 39505; 423.43049 1341636; 423.46035 2274; 423.52859 3054968; 423.61244 44201; 423.84211 2534165; 423.91644 1523657; 424.11753 180560; 424.28851 4748265; 424.40064 8709051; 424.41076 1413419; 424.44725 6950905; 424.46496 3478156; 424.4851 235026; 424.62391 697998; 424.83714 1654927; 424.94471 14871; 425.06896 649930; 425.30195 1698; 425.35764 2844; 425.63529 18202; 425.69185 3053267; 425.77111 28995; 425.86599 5512915; 425.91316 1071213; 426.01208 64441; 426.2074 7830; 426.40289 4800; 426.44833 15012194; 426.52817 8329; 426.55603 141658; 426.80153 42338; 427.29598 4388; 427.55867 1768696; 427.62114 38922; 427.64088 72933; 427.67394 9342; 427.83245 29227; 427.97681 58848; 428.2358 32811; 428.24232 78332; 428.35205 9578; 428.454 689435; 428.53898 120772; 428.59059 7382; 428.67461 6746954; 429.02152 28061; 429.10719 20689; 429.11367 2701085; 429.11664 74992; 429.30706 1355616; 429.33815 7018; 429.6002 27384567; 429.73635 1317334; 430.13344 74813; 430.36853 8715933; 430.55018 5187; 430.56594 6433119; 430.85792 2664177; 431.03222 5201690; 431.13269 3336190; 431.18878 60443; 431.51178 64052; 431.56621 23328; 431.66785 35580; 432.01177 2704355; 432.15871 4713; 432.32542 3532; 432.53669 30905; 432.58674 2786; 432.60654 8655504; 432.76271 803424; 432.76583 69247; 433.48317 1688272; 433.51991 26147; 433.75362 2751908; 434.15597 31158; 434.23713 1181008; 434.26588 37079; 434.29531 4697205; 434.42931 1853050; 434.64544 883950; 435.0594 1761; 435.29839 28415; 435.346 28524; 435.68619 111807; 435.77654 192040; 435.92332 2907791; 436.01576 11303; 436.10384 68215; 436.15886 15127; 436.32502 76123; 436.51502 26970; 436.67177 2803; 436.79248 3709781; 436.95551 13521; 437.03217 5387; 437.18243 10747942; 438.00391 6330972; 438.38225 8569525; 438.71347 5563; 438.76324 66627; 439.00491 2579; 439.49253 27762; 439.52352 77592; 439.5519 9711905; 440.2209 7357168; 440.30494 555702; 440.63712 54462; 440.91569 14613; 440.98692 7121; 441.08286 27850; 441.12903 6794421; 441.28219 23975; 441.29377 30481; 441.34817 9178720; 441.39387 192741; 441.51468 163814; 441.58358 2079531; 441.89108 7654; 441.89282 10580; 441.99213 34041; 442.06568 39212; 442.19004 21988; 442.21435 2402; 442.28406 4797133; 442.43825 4462539; 442.58491 76964; 442.84254 26168385; 442.97333 23820; 443.04628 4836829; 443.05001 955096; 443.30679 2377; 443.35534 3197237; 443.36468 23547; 443.48141 83328; 443.72216 13222; 443.88347 4260531; 444.45704 76591; 444.50246 6384909; 444.60139 75466; 444.66543 40072; 444.80003 7038; 444.94522 2617031; 444.96004 41634; 445.20588 938901; 445.90335 1979002; 446.00938 139670; 446.42659 26438398; 446.52725 1338846; 446.55014 2367056; 446.86939 13082; 447.14923 823563; 447.49129 3377272; 447.62018 10274; 447.80553 12804365; 447.88923 747900; 448.2154 6303; 448.74258 8457566; 448.75832 618152; 449.10813 856067; 449.12732 28021474; 449.66499 1958340; 450.22882 69606; 450.35109 20869; 450.86237 591761; 450.88221 51027; 450.92621 3790274; 450.93706 188195; 450.956 28053; 451.19155 14253; 451.40217 639691; 452.1946 706; 452.34957 19776; 452.37528 1835980; 452.4686 3832700; 452.51618 22841; 452.7543 1515715; 453.96964 17761106; 454.04303 118469; 454.05607 4425; 454.13905 2292; 454.40768 75367; 454.56616 4926922; 454.59047 8261; 454.85469 4082229; 455.30289 71473; 455.59306 7652651; 455.93081 4377957; 456.09293 75426; 456.11698 28663; 456.1865 14709; 456.39614 655; 456.44444 539535; 456.59617 6549929; 456.66721 1670840; 456.78107 1780902; 457.28504 22318; 457.48256 8375; 457.68077 59282; 457.68891 17234; 457.70836 4403998; 458.09197 979039; 458.11256 3704; 458.68076 24145; 458.90355 33745; 459.02339 8246535; 459.06015 62668; 459.29561 60409; 459.34989 1628844; 459.35807 67561; 459.39464 1223052; 459.56587 370980; 459.62854 175251; 459.77845 6358185; 459.92735 51636; 460.14464 1232787; 460.45401 310397; 460.60464 59086; 460.62091 506434; 460.8501 21185; 460.86115 946602; 460.87016 1864422; 461.06848 1533594; 461.20027 70413; 461.35391 16827; 461.43196 927699; 462.17491 23158; 462.19702 34420; 462.22505 1552995; 462.39744 714489; 462.52013 2063888; 462.53469 2020; 462.5488 22542169; 462.65594 27965; 462.74011 27076614; 462.95453 18799; 463.15933 65842; 463.39167 22373; 463.73256 59072; 463.81179 57340; 463.87427 72011; 464.05522 2228656; 464.06374 4849; 464.12034 62646; 464.35594 1151367; 464.63692 51977; 464.68106 13979; 464.68382 1574064; 464.83858 2659; 464.95516 32089; 464.98519 54582; 465.07976 23170; 465.12827 18646; 465.1558 2651343; 465.24964 75033; 465.36165 71558; 465.60924 752037; 465.75543 9375; 466.47828 719691; 466.49898 222671; 466.62945 150745; 466.82762 7475187; 466.98765 1146349; 467.47401 5213; 467.65795 1436; 467.8207 47529; 467.92976 486847; 468.14766 1807; 468.40178 2626037; 468.6626 3172976; 468.78269 12718969; 468.87502 10774; 468.89146 2880535; 468.9053 907391; 469.37775 94786; 469.6715 57929; 469.70503 4039728; 469.75043 18884; 470.26933 30367; 470.43499 74617; 470.70468 791712; 470.77681 121949; 470.91224 27390; 470.97219 333474; 471.01071 7842901; 471.03423 130432; 471.25187 28795; 471.28812 6677; 471.48352 1481099; 471.5369 23587; 471.83983 1619415; 471.88151 1772418; 472.12687 31720; 472.15306 49842; 472.30151 183875; 472.70129 3391693; 472.81547 890798; 472.97149 29227; 473.11194 75412; 473.37805 59407; 474.12076 1347264; 474.76285 1671947; 474.82683 10054113; 475.7623 553687; 475.77766 47246; 475.81433 402103; 475.85938 303516; 475.88221 1247164; 476.13023 67963; 476.6815 4437688; 476.98491 51017; 477.22209 293188; 477.56425 59211; 477.57528 5847; 477.57578 4343218; 478.19671 65266; 478.66309 553955; 479.01409 169609; 479.63592 57772; 480.13201 355; 480.19928 30136; 480.51566 225906; 480.59356 1057; 480.67232 4313303; 480.70437 45910; 480.87602 645844; 481.05951 38537; 481.17205 3529104; 481.35987 5095888; 481.51828 9500; 481.89009 2496884; 481.97244 4785312; 482.04882 35800; 482.08263 89881; 482.18194 39693; 482.62851 971985; 482.95724 79853; 483.06751 38298; 483.11425 64133; 483.17811 8104; 483.61513 431730; 483.99608 1771658; 484.42618 3698; 484.58885 969346; 484.84439 74660; 484.98603 24379966; 485.08951 573; 485.34081 7358446; 485.36339 247540; 485.37125 1444314; 485.60653 3320045; 485.61344 59234; 486.0428 27491; 486.11608 49971; 486.32542 1091738; 486.59069 61552; 486.63534 13817; 486.81052 38939; 486.8851 56501; 487.11715 7025; 487.24907 7508; 487.37036 7231; 487.46442 12813; 487.54988 1573304; 487.96472 70956; 488.18063 9436572; 488.34787 48084; 488.35337 1757162; 489.15557 134435; 489.23414 31846; 489.53908 20496; 489.70255 1161369; 489.71215 7065; 490.20147 2685440; 490.43961 34005; 490.46976 56634; 490.51991 8676679; 490.92598 12253444; 491.17409 15059714; 491.54255 1593369; 491.71849 1171758; 491.80758 9803806; 492.08495 628265; 492.13473 47192; 492.23105 71308; 492.32859 3194946; 492.33173 5561; 493.03006 721486; 493.20159 145719; 493.22285 8962955; 493.37644 11982; 493.42011 160546; 493.56706 457810; 493.87905 1029; 493.88835 78267; 493.89415 952385; 493.91138 4998867; 494.19568 458440; 494.37744 1406987; 494.96927 2497284; 495.3921 62564; 495.42815 5987460; 496.07439 1045798; 496.14082 5074746; 496.2211 18904; 496.79257 3324796; 496.80093 618949; 497.22228 68333; 497.37869 42368; 497.46781 76130; 497.53817 40184; 497.82667 1215738; 497.827 2006068; 497.85242 4234444; 497.8803 2317; 497.99648 1889789; 498.07742 2806653; 498.34131 23328180; 499.3332 706067; 499.38996 75008; 499.94887 63550 +<7, 5>: 0.10043 29828; 0.13494 780; 0.2908 62955; 0.29869 44762; 0.32822 431187; 0.46524 9483594; 0.65166 37220; 0.76664 41469; 1.25327 27130; 1.36635 31037; 1.3727 63551; 1.41504 2028; 1.4494 3464990; 1.72936 8325506; 1.7362 5403; 2.03138 21623326; 2.06864 4711356; 2.10889 42538; 2.31248 2637128; 2.55084 33574; 2.66379 116977; 2.77222 67077; 2.86177 132069; 2.91645 53281; 3.0766 13644; 3.27989 32292; 3.46202 22148; 3.73931 96955; 3.89424 9039; 4.16114 8772822; 4.18106 734036; 4.27032 140420; 4.4792 33621; 4.76945 4718; 4.77193 40906; 5.45069 6329562; 5.46583 53733; 6.39505 8660; 6.5354 8567533; 6.55076 55797; 6.56478 14538; 6.70896 147892; 7.22961 38354; 7.65255 367905; 7.81917 169679; 7.92495 52853; 8.0079 1084189; 8.08859 24689; 8.13817 69804; 8.56838 3611; 8.62156 6214219; 8.7034 2988720; 8.74838 109531; 8.87959 8199132; 9.21961 1712266; 9.36158 2028; 9.73918 2876927; 9.76428 3303446; 10.40612 59645; 10.47398 11924; 10.53086 75614; 10.91192 4244; 11.13611 40581; 11.1679 6261289; 11.26562 55515; 11.27606 3013627; 11.42751 660; 11.79259 67518; 11.84276 2468099; 11.87724 9364912; 12.12183 17352; 12.59115 20601; 12.79451 3577671; 13.05945 7814922; 13.13035 14773; 13.44045 33099; 13.44197 28836; 13.48802 71592; 13.53303 310272; 13.78471 6844078; 13.90562 60452; 14.46263 74936; 14.58745 14721; 14.7458 1287373; 14.88905 3416; 15.31512 1787122; 15.33031 71130; 15.72407 119935; 15.84751 2379168; 15.9969 24295; 16.04066 850; 16.13957 28403; 16.41447 4019587; 17.19395 23335; 17.5377 78970; 17.67516 67652; 17.9149 4555034; 17.92196 4962122; 18.13937 4176; 18.23683 1704008; 18.42055 697284; 18.7866 942; 18.85646 854334; 18.93317 139945; 18.99709 29436; 19.31386 61589; 19.34402 6501; 19.51123 1068; 19.62191 9208091; 19.96674 28063; 20.09767 21861; 20.21868 1197625; 20.32899 57857; 20.35759 43528; 20.40896 20919; 20.6996 1522; 20.75554 76040; 21.58982 20481; 21.62422 5724; 21.66247 8819274; 21.84656 8217837; 22.40209 112420; 22.52269 65254; 22.70074 1997110; 22.71562 7911; 22.80309 4944; 23.13996 768113; 23.57268 391190; 23.66299 4028046; 23.79496 19658; 23.83224 75556; 23.90086 1096038; 24.23411 178276; 24.54275 1794660; 24.62901 8335; 25.0943 68407; 25.32316 25248296; 25.36317 27831; 25.55049 2980537; 26.26018 31464; 26.39025 3045323; 26.39909 32568; 26.74049 3686274; 26.91115 14533952; 27.13739 58484; 27.31226 9848622; 27.64697 1983862; 27.65117 535584; 27.72809 67967; 27.98389 24430; 28.1884 2414041; 28.32694 69617; 28.62813 10693925; 28.69313 69130; 28.80606 54279; 28.83723 5257; 28.96107 19989; 29.2362 50546; 29.31486 43221; 29.44441 47911; 29.45759 1179744; 29.66478 57570; 29.74545 9016281; 29.76159 1192791; 30.01762 7990216; 30.02408 123706; 30.04343 1441268; 30.10175 889865; 30.12554 1256981; 30.13183 684266; 30.43598 36353; 30.56636 2819447; 30.66163 681; 30.82762 7669; 30.87099 72354; 30.8729 77353; 31.15605 50704; 31.18186 1945050; 31.61381 30325; 31.94717 58286; 32.01124 9657561; 32.16587 3165444; 32.35509 58445; 32.42394 3302; 32.97885 1714143; 33.08686 23240; 33.90519 145979; 33.91214 19733; 33.976 27465; 34.22057 28102; 34.2347 50962; 34.23708 73292; 34.2884 1003384; 34.93142 73452; 35.0253 24953; 35.1084 9666960; 35.3445 508464; 35.76167 6020; 35.96492 174283; 36.71192 62202; 36.76958 4567690; 36.8824 79824; 37.26216 6298143; 37.46331 10681; 37.62349 268250; 37.65995 24794; 38.36539 2208; 38.60496 678; 38.79758 9613; 38.98076 7691; 39.24017 4548; 39.24218 76844; 39.28285 49458; 39.4534 21482; 39.49027 1609432; 39.61965 14725; 39.89763 177540; 39.9158 68244; 39.97279 3657243; 40.05281 135195; 40.08851 5833; 40.31766 7321; 40.4289 14494794; 40.44124 881707; 40.51968 3616; 40.55063 23783; 40.65382 8838; 40.71674 7552; 40.82711 1986074; 40.92399 900; 41.03543 52690; 41.08714 57275; 41.23311 73868; 42.37867 6977138; 42.41443 57292; 42.80887 75418; 42.98866 17666; 43.11722 563806; 43.26014 44876; 43.45732 18579; 44.12565 58175; 44.27118 37773; 44.33067 803250; 44.44035 418534; 44.50218 1972164; 44.86552 1046809; 44.93974 3500482; 45.52846 1624535; 46.00457 44297; 46.15629 29958; 46.60273 9589; 46.74612 1043859; 47.44786 7981821; 47.70407 77908; 47.76585 13605; 47.79163 74410; 48.15046 20101; 48.17547 18001; 48.30374 9943672; 48.30585 7683052; 48.40962 1318089; 48.52544 21177; 48.64241 456; 48.67653 23611; 48.68599 365683; 48.74623 6204; 48.93084 8620; 49.14049 9054; 49.35778 839981; 49.61129 26797; 49.86549 2343781; 49.99971 1445997; 50.04473 13448; 50.08441 6464; 50.31105 1523472; 50.34737 2407913; 50.71646 838211; 50.72171 20257; 50.75265 810322; 50.83039 5933123; 50.98612 1505924; 51.02786 912667; 51.11907 4172037; 51.16366 481255; 51.17943 6305; 51.26641 52055; 51.41048 63930; 51.9564 63884; 52.01855 79021; 52.18691 1599644; 52.2148 6672386; 52.58712 27267; 52.78005 8672; 52.78645 18742; 52.95836 17486490; 53.24951 197172; 53.3132 27955; 53.34676 22639229; 53.52618 66401; 53.66698 1512912; 53.77528 3549410; 53.84573 7623922; 54.0149 181332; 54.25895 100969; 54.33693 321250; 54.34458 70588; 54.61941 640630; 54.70818 1299801; 54.74644 8185; 55.21863 3350; 55.64232 3606342; 55.85863 41648; 56.25678 6574; 56.27302 41311; 56.28395 56569; 56.68616 75731; 57.15835 130140; 57.22969 9470; 57.55727 7594072; 57.56763 26155; 57.64932 61292; 57.78065 70161; 57.80433 15420; 57.88657 481217; 57.99017 4230522; 58.05774 33318; 58.13566 28525; 58.46276 1413015; 58.74187 9109074; 58.85152 9348; 58.85673 33547; 59.14318 26714; 59.33853 2444; 59.83535 372; 59.86979 26632; 60.02815 174631; 60.20753 685932; 60.46059 1038880; 60.65883 626060; 61.02508 2176473; 61.08285 13959; 61.37081 1433660; 61.45771 368605; 61.92268 137166; 62.14394 25709; 62.48035 24642; 62.6035 3308716; 62.63447 1991955; 63.05845 4590; 63.20905 24642; 63.26762 17868; 63.46774 54698; 63.51924 9031975; 63.54623 1016260; 63.5465 73123; 63.63346 1619590; 64.02465 9791731; 64.15052 1646753; 64.3521 4802107; 64.67326 23909; 64.97068 19684; 65.38765 894975; 65.80178 17300; 65.8634 7459356; 66.4324 195645; 66.44343 8618145; 66.45713 218739; 66.46755 72042; 66.58305 25912; 66.85121 18754; 67.10897 104271; 67.15974 6324; 67.24052 1108487; 67.40342 517752; 67.41411 67209; 67.56999 58322; 67.67749 5183; 67.88989 44531; 68.29969 2617435; 68.32447 17834; 68.34119 2697; 68.39204 25115; 68.46362 43135; 68.52435 590; 68.55221 56706; 68.63373 8023; 68.87501 171852; 69.28322 20139; 69.58865 59530; 69.79943 8604; 69.96508 8722; 69.99582 3680563; 70.18474 22035; 70.19488 17338; 70.21357 1629003; 70.63156 15108688; 70.72878 65744; 70.75716 8799; 70.82833 161244; 71.01847 25349; 71.05609 6270305; 71.21353 43850; 71.2187 11591; 71.31658 98956; 71.35245 33032; 71.54778 9493; 71.73753 37153; 71.89292 859852; 72.08 3618933; 72.72745 3293164; 72.89784 4519; 72.94222 127597; 72.97694 24767; 73.04812 8433; 73.08694 33565; 73.14798 24404; 73.51351 2388; 73.52298 14527135; 73.89705 25815; 74.09522 3070116; 74.38047 2312478; 74.56139 53585; 74.66092 54594; 74.80988 3193476; 74.81895 342161; 75.09373 51037; 75.40213 34690; 75.73443 100451; 75.78359 42362; 75.78493 9883018; 76.04315 7986503; 76.14461 4595663; 76.15398 764017; 76.20225 17431130; 76.24969 1028279; 76.32776 21877; 76.95896 35004; 77.02506 6610630; 77.07591 1229995; 77.13587 1992496; 77.31521 30089; 77.45263 7276; 77.47646 7112364; 77.66328 55044; 77.6861 16837; 77.68669 105732; 77.73007 726976; 77.73959 4785408; 77.90899 37849; 77.95642 1177; 78.14536 6129167; 78.15853 1457766; 78.16363 9887; 78.20694 2096264; 78.3616 55320; 78.53943 4266058; 78.78382 27358; 79.2856 6179; 79.32302 781787; 79.60902 6888; 79.65421 8078571; 79.67248 1022787; 79.71998 22842; 79.92512 23501609; 80.11376 60209; 80.15017 328722; 80.29425 79872; 80.63064 690989; 80.97838 598005; 81.26997 99930; 81.37156 21693; 81.45274 29689; 81.72735 7459349; 81.73204 174861; 82.17017 16652; 82.41259 66285; 82.615 55397; 82.67238 25556; 82.9091 8064; 83.01888 7541637; 83.10618 42259; 83.13364 8090645; 83.13516 44145; 83.31908 39809; 83.39791 155940; 83.59257 1382193; 83.73099 73951; 83.75619 29498; 83.92069 77689; 84.52619 168932; 84.5716 9989; 84.66076 1928472; 84.8143 74359; 84.84186 1605087; 85.063 1790384; 85.07825 1810436; 85.20811 24381; 85.24576 2827162; 85.44314 129785; 85.7173 9635840; 85.7637 7535367; 85.88832 1732701; 86.0107 3541258; 86.26536 1580648; 86.29537 7719; 86.5966 22527; 86.64973 974462; 86.71482 62481; 86.75536 103376; 86.8313 2480; 86.99703 168321; 87.17104 6561; 87.37528 35608; 87.45989 2999763; 87.87319 1112979; 88.23384 3051; 88.34418 7232172; 88.94477 14535586; 89.18649 11530; 89.22143 8490311; 89.28253 21163549; 89.62366 1741862; 89.69887 1193976; 89.99469 1337761; 90.095 7314; 90.15314 163401; 90.45162 3106699; 90.75219 8348; 90.96386 21966; 91.26713 44906; 91.39507 142796; 91.55324 15996; 91.58904 91170; 92.4762 105227; 92.66208 29767; 92.87964 687386; 92.99745 1879; 93.13534 10005; 93.29563 72805; 93.66176 51829; 93.75105 486141; 93.98968 3839; 94.01685 735579; 94.17212 6775359; 95.01884 9221790; 95.37481 26382957; 95.46578 4224961; 95.67073 3520552; 95.71579 93666; 95.76878 8457738; 95.97712 18997; 96.11246 42306; 96.19189 15675012; 96.3048 1538958; 96.46682 4873; 96.52497 50294; 96.55081 884122; 96.66479 20625; 96.78969 9685; 97.12542 4023; 97.18167 11234; 97.19238 781421; 97.39689 3459739; 97.71817 5527045; 97.92025 13972; 98.31229 36203; 98.3534 1288809; 98.39697 988786; 98.70331 4574; 99.82173 34752; 100.36913 5822; 100.61741 940383; 100.65578 1669266; 100.80387 8359496; 100.85694 22376; 100.96828 20405; 101.02137 2404; 101.24019 4986543; 101.40797 51644; 101.74748 10089; 101.89642 18780; 101.97455 3998060; 102.27417 53543; 102.31247 25348; 102.36867 4035; 102.3806 185833; 102.59545 806; 102.77997 21444; 102.81409 790; 102.94707 61900; 103.04369 1456; 103.09853 2283; 103.31212 861156; 103.4674 78698; 104.08779 1704554; 104.5226 43450; 104.59969 187593; 104.65433 14015; 104.8112 32549; 105.21113 977208; 105.27979 52752; 105.33259 363411; 105.45472 7018; 105.78093 189950; 105.88865 8918; 106.20301 3537; 106.21291 5318517; 106.38328 565654; 106.42129 2321; 106.61759 54178; 106.71977 26703291; 107.03584 28893152; 107.55748 100219; 107.84005 18652; 108.29418 8148; 108.35314 2015; 108.42192 12236; 108.42599 35932; 108.72989 1681006; 109.15582 6418462; 109.18992 60474; 109.27609 28294; 109.41421 5587; 109.55689 78633; 109.7359 37677; 109.8764 1573031; 109.89992 18558; 109.91341 1999271; 110.43989 8963; 110.59464 653; 110.83825 146938; 110.84606 161270; 110.92149 859298; 111.28195 1910683; 111.33761 29691; 111.85749 20895; 111.92539 6343; 111.98887 65102; 112.22189 71941; 112.33441 35040; 112.49724 170382; 112.52736 58048; 112.54762 3762; 112.98453 3440; 113.04025 35150; 113.15801 2318; 113.35568 29283; 113.58068 1068111; 114.27857 969719; 114.5185 56199; 114.69462 46064; 114.79405 707834; 115.25481 2981; 115.28537 47142; 115.46546 5882571; 115.60911 769190; 115.92329 26649761; 116.01443 57658; 116.14956 1735383; 116.18112 22019; 116.18507 4592; 116.21765 8143; 116.2343 30859; 116.23555 68166; 116.69883 97535; 116.96108 20284; 117.42285 8992; 117.692 62567; 117.89703 7232; 118.59815 1711376; 118.63425 61542; 118.70527 695668; 118.8328 644602; 118.87336 119473; 119.04586 4439639; 119.65337 29463602; 119.68026 933375; 120.13234 26212; 120.18211 19656; 120.25981 1801846; 120.42594 130639; 120.43816 60503; 120.53551 47921; 120.54555 13602; 121.00607 41448; 121.29878 343178; 121.38644 74084; 121.41842 2941814; 121.52228 621544; 121.76186 565867; 122.09778 62501; 122.16317 33766; 122.31202 4118; 122.35752 23344; 122.38696 73753; 122.44092 327; 122.4578 27101; 122.647 1896621; 122.70269 5786; 122.80574 2575886; 122.96501 70767; 122.97442 48574; 123.13253 13188; 123.40527 2561; 123.5822 4652797; 123.69044 52711; 123.69766 3717; 123.83122 20578; 124.30799 163146; 124.45758 50652; 124.50726 726331; 124.66879 72314; 124.69308 6896; 124.71729 17664; 124.77946 20263; 124.80838 229; 125.01619 1963900; 125.1538 44961; 125.1886 57997; 125.69848 20706; 125.78001 13476294; 125.89002 169762; 125.98812 9468106; 126.13755 39978; 126.32657 13494; 126.40037 64231; 126.85675 2782535; 126.92109 25437; 127.44846 53383; 127.63776 62702; 127.75048 7903705; 128.40563 52484; 128.53671 5236; 128.58683 91320; 128.59274 63710; 128.67114 1805238; 128.77006 5424978; 128.99498 37077; 129.07743 1680372; 129.20616 6978451; 129.25696 470607; 129.29298 1490365; 129.38957 43037; 129.70313 54318; 129.74965 41419; 130.42034 974; 130.5196 26525; 130.52218 758155; 130.60169 3003309; 130.62489 5429; 130.77399 56900; 131.2136 8498; 131.6933 35136; 131.72435 8908338; 132.01148 334836; 132.05282 1008237; 132.22166 345974; 132.35729 58868; 132.389 2147686; 132.49888 29806; 132.63618 29414; 132.77998 3845785; 132.9632 435450; 133.26585 28393; 133.3911 2284975; 133.41183 57027; 133.46777 9203295; 133.76544 4074; 134.01095 8721; 134.49025 1915095; 134.75871 1829882; 134.857 3577; 134.9627 66789; 135.09741 96106; 135.13407 1552; 135.42427 59219; 135.49447 364565; 135.57993 56634; 135.85034 23388; 135.86163 75554; 136.20614 639356; 136.33619 689; 136.82405 24117; 136.86771 9635; 136.91795 49211; 137.00076 7933800; 137.4866 6055831; 137.71652 3080271; 138.03252 126523; 138.38851 91706; 138.49175 74566; 138.9227 55498; 139.15488 126325; 139.26048 111323; 139.50842 2583263; 139.64324 56446; 139.76129 1062726; 139.86769 41784; 139.95501 25737; 139.99376 22349; 140.13285 26967; 140.15826 9483160; 140.18819 26803; 140.33914 16620; 140.36588 61839; 140.3921 1693611; 140.44395 20329; 140.50744 1326293; 140.66314 26473; 140.73562 49276; 140.88405 159909; 140.97646 96622; 141.03529 6625951; 141.20023 1537815; 141.23413 66777; 141.54531 26283237; 141.63343 48563; 141.80669 4001992; 142.30426 2749014; 142.6783 4045; 142.85597 8968058; 143.18329 23504; 143.71857 19570; 143.71889 25202; 143.78368 288055; 143.79449 8822598; 143.96791 12920; 143.96919 74926; 144.01321 243976; 144.11939 8037; 144.1371 10295; 144.46566 7263984; 144.56247 819486; 144.90265 76767; 144.95295 605; 144.96259 2736399; 145.21176 73654; 145.25198 3407459; 145.58571 18617; 145.91102 1856984; 146.1968 86236; 146.35618 25918; 146.68377 9388; 146.97768 2563; 147.14134 22825; 147.17592 52247; 147.31559 102452; 147.49322 841978; 147.51744 6072; 147.64089 15711; 147.91976 51872; 148.15169 2601715; 148.18654 23805; 148.55469 768759; 148.69654 142490; 148.74193 40866; 149.33552 157903; 149.449 72579; 149.49627 4857700; 150.31634 3390052; 150.52963 72530; 150.63204 296921; 150.68789 12326; 150.73454 4286862; 150.7468 125063; 150.90476 69283; 150.92965 917143; 150.96356 21440; 150.97555 811042; 151.17994 360665; 151.20694 1461776; 151.24824 1480736; 151.64935 3410536; 152.27867 64249; 152.60918 1077985; 152.75017 6460; 153.3159 21395594; 153.42895 48738; 153.73406 1517653; 153.75106 26988427; 153.80016 45047; 153.97471 12852; 154.02315 34478; 154.06679 59650; 154.16815 22620; 154.22974 174235; 154.23371 634002; 154.45843 4575; 154.62965 1804583; 155.07971 3566; 155.63097 75048; 155.92229 72762; 156.02676 2416039; 156.32663 1807; 156.66524 39981; 156.81776 569455; 156.83134 1490825; 156.95626 1943217; 157.20775 1154759; 157.35255 72179; 157.4898 1565319; 157.56519 15611; 157.76824 137373; 157.83974 7032; 158.01919 77039; 158.07632 76301; 158.25668 48836; 158.28738 306536; 158.40058 38722; 158.45111 134704; 158.7196 38795; 158.72876 2842; 158.85711 514043; 159.12222 3116; 159.50005 74720; 159.82507 14882; 159.88377 10893815; 160.0314 72968; 160.66013 25317; 160.73663 1308185; 160.87881 27059; 160.99331 28438020; 160.99387 74281; 161.53934 9976; 161.61122 6597; 162.00967 1581568; 162.16783 28811; 162.19772 3114972; 162.22787 26451; 162.50192 7308523; 162.52693 4059992; 162.57379 522837; 162.59151 8289790; 162.83443 35232; 162.99189 1381644; 163.27954 1042999; 163.44021 4980792; 163.48876 5171697; 163.64266 25924558; 163.79852 17118; 163.84898 1558433; 163.8803 2117547; 164.3433 5279963; 164.49034 45520; 164.78175 2888; 164.90171 4158495; 165.51176 12583; 165.74374 19881777; 165.88591 22185246; 166.19142 29367782; 166.363 16827968; 166.69542 2876593; 167.57762 3227; 167.59445 5463; 167.68956 9378028; 167.74378 4948; 167.78354 154281; 168.0716 46977; 168.38591 1846; 168.42538 6133696; 168.6789 17025058; 169.05519 7599038; 169.05637 1822404; 169.12893 10936; 169.13876 16457; 169.23219 16194; 169.35475 4327; 169.73692 293573; 170.06705 44823; 170.59394 5976487; 171.32997 2440363; 171.66415 76499; 172.12071 515929; 172.38314 5008; 172.41673 24287; 172.78832 44459; 173.15979 19522; 173.51914 266796; 173.52777 97134; 174.23031 138556; 174.47301 25547; 174.55956 359708; 174.62377 1786146; 174.96864 26466; 175.3563 36509; 175.45642 21925; 175.69214 2270; 175.73801 195285; 175.78797 20108327; 176.02632 34740; 176.5106 4174; 176.7013 6871; 176.70908 4266006; 176.94877 833915; 177.02192 2168981; 177.52671 128191; 177.6318 46876; 177.77473 5471; 177.84871 7958174; 177.96908 3085; 178.67124 74460; 178.7266 4878137; 178.94268 5071678; 179.33977 34745; 179.44076 1442725; 179.95615 2836674; 179.98257 3240433; 180.07637 20169; 180.39996 27238; 180.58344 1739250; 180.62907 160861; 180.86855 11871; 181.02496 763057; 181.30114 72688; 181.51659 69586; 181.60554 13131; 181.8378 63424; 181.93408 20540; 181.9921 1144; 182.03052 38013; 182.32758 6062149; 182.32819 58682; 182.37714 24113; 182.64901 441702; 182.84305 4330275; 183.08654 899316; 184.02773 4593106; 184.35119 64970; 184.36806 41639; 184.47355 976; 184.55862 49753; 184.55994 25556; 184.8164 51152; 185.27457 156660; 185.3902 5587; 185.54429 1928307; 185.80342 46979; 186.23816 6319659; 186.24673 51695; 186.26909 371700; 186.33829 1428; 187.1087 80829; 187.11266 191; 187.29616 74255; 187.38395 154248; 187.53681 1350372; 187.7281 19789; 188.15143 3144281; 188.28709 1912940; 188.36954 1576936; 188.56383 79401; 188.56735 8016923; 188.67718 36622; 188.78227 6103; 189.22959 24233; 189.33329 106704; 189.52739 463100; 190.20864 54010; 190.2375 254306; 190.34302 2149815; 190.39295 1937744; 190.46429 5437; 190.93152 11421367; 191.17387 59373; 191.30827 46442; 191.42502 47906; 191.70569 73870; 191.79817 6306253; 191.80872 1879083; 192.26664 1211444; 192.42847 5245068; 192.6605 3661; 192.83021 104830; 192.90866 22937773; 193.21693 3739173; 194.59961 28496; 195.05737 5126; 195.13884 5391080; 195.14289 1641462; 195.20152 23659; 195.23497 28571; 195.46661 4681808; 195.58763 8527611; 195.63504 73784; 195.68064 33346; 195.77801 8997556; 195.83811 23046095; 195.99827 20021; 196.01002 47372; 196.08508 817906; 196.1771 76644; 196.21209 134995; 196.30556 14307; 196.55269 5567; 197.02095 16975; 197.08157 28172; 197.25602 649914; 197.38501 55910; 197.48302 42119; 197.51769 4619747; 197.58186 5386; 197.77319 62723; 197.82516 23918015; 197.86868 71774; 198.28065 2003; 198.56779 9923; 198.98309 27317; 199.00641 46716; 199.2559 3426; 199.28073 63472; 199.30236 22197; 199.32632 65667; 199.62728 1869876; 199.70335 48455; 199.8721 71606; 199.88901 6926420; 199.93016 9644772; 200.12295 7296; 200.30849 73348; 200.34 167148; 200.72838 4517091; 200.79025 165211; 200.81776 2458859; 201.31717 46334; 201.56948 1571871; 201.64605 4675464; 201.90742 56914; 202.29409 40995; 202.42346 4757; 202.60007 25015; 202.78121 4634506; 203.03463 7389; 203.09087 63615; 203.45289 312673; 203.46548 27977; 203.49139 26770; 203.49376 18332; 203.64328 1184000; 203.80708 307111; 203.96946 74536; 204.08458 34657; 204.25587 4687701; 204.52886 43367; 204.84784 1799170; 205.27186 43553; 205.38374 75362; 205.42989 356623; 206.03826 3009; 206.04113 3566572; 206.18514 23047; 206.32419 21475; 206.33212 60392; 206.4262 1511074; 206.48212 17352258; 206.50652 102525; 206.62167 5212; 206.94712 9983; 207.01031 1776789; 207.13067 3656016; 207.28396 69194; 207.29947 169422; 207.41724 8910545; 207.67395 363254; 207.92893 4040709; 208.18043 1749547; 208.46877 588; 208.81811 73327; 209.03312 5786934; 209.2412 1727; 209.2683 4656425; 209.35788 4599429; 209.59169 22324; 209.85714 79360; 210.35593 62043; 210.39066 841314; 210.62298 8060; 210.74381 21583; 210.78199 1080469; 210.88906 116174; 210.9012 81710; 210.94111 100051; 211.1345 519280; 211.83941 6754; 212.28093 999448; 212.60468 77159; 212.65879 830646; 212.66656 10218653; 212.71512 31623; 212.8301 230499; 212.90204 42750; 213.06053 1438927; 213.18776 37031; 213.53117 44666; 213.71571 23188; 213.98391 4962; 214.02227 62338; 214.44793 24835; 214.62705 997064; 214.73649 858808; 214.98317 666427; 215.07343 18160; 215.83661 2447; 215.83725 3354625; 215.85307 458560; 216.21542 40449; 216.22527 46959; 216.30115 11198310; 216.38458 1002839; 216.79571 7839; 216.83884 125231; 217.08645 45119; 217.17265 1441; 217.2446 181623; 217.34163 67513; 217.64808 2346336; 217.86988 40388; 218.08723 8042257; 218.27713 4151425; 218.28801 4272; 218.38175 9784260; 218.43876 74530; 218.67944 21830; 218.72924 45682; 218.75233 6895; 218.7669 25751; 218.81647 5987; 218.92271 1229756; 219.14508 1011177; 220.0515 71638; 220.11281 51957; 220.20908 14773; 220.38097 199496; 220.64161 287281; 221.19885 1778999; 221.41606 43396; 221.75187 6849080; 222.02293 21105; 222.09786 331803; 222.5915 6411; 222.71147 79824; 222.73375 117018; 222.83661 71941; 223.08108 7293; 223.15731 12604; 223.33079 1823150; 223.69795 730300; 223.69965 2292; 224.08473 801546; 224.23294 26800923; 224.37042 549645; 224.5294 41321; 224.53217 3278; 224.74117 60460; 224.82905 862732; 225.17385 156117; 225.25797 26575; 225.27078 1228727; 225.3949 57938; 225.57415 62261; 225.64853 2765356; 225.89607 35320; 226.35859 1015578; 226.39837 9478; 226.59396 814235; 226.60211 47521; 226.75713 9813; 227.05499 7126; 227.22363 49371; 227.2841 79372; 227.36812 18787; 227.55142 5875; 227.55489 1960; 227.59162 27644; 227.66622 7737; 227.79337 122867; 227.79962 2106; 227.85955 1999602; 227.87215 127332; 228.04088 2125; 228.0525 2229; 228.35949 10638; 228.52669 12919; 228.53442 9035; 228.73229 9192; 228.82549 468300; 229.06661 3093; 229.18107 6327; 229.27094 5591874; 229.29646 60164; 229.31226 369053; 229.66887 3684055; 230.10508 9647584; 230.25183 6823; 230.35955 15260; 230.46296 77377; 230.81715 7085999; 230.82005 18095; 231.1051 6757004; 231.54168 26847; 231.60036 528367; 232.12083 3232; 232.26807 1241709; 232.35658 4471745; 232.93687 1234221; 233.18944 6562; 233.21433 57851; 233.65778 1182389; 233.96687 64682; 234.07483 3485923; 234.26618 455566; 234.27347 47913; 234.32959 52067; 234.37248 4363895; 234.86431 353; 235.1866 1241732; 235.45547 9624104; 235.69398 1658704; 235.79252 733174; 235.81944 1065200; 235.84448 55341; 236.07476 1778901; 236.17702 29112; 236.4523 26855; 236.92543 1668513; 237.01621 28065; 237.10869 62997; 237.2096 3596779; 237.28712 1500525; 237.59304 33; 237.69807 22929; 237.72834 18065939; 238.0217 1960501; 238.14064 45850; 238.347 3981422; 238.42975 26763; 238.5937 59796; 239.05953 35833; 239.54177 46818; 239.6166 735736; 239.62051 3166380; 239.86762 8352; 239.86863 113953; 239.91766 4130592; 240.03439 3090; 240.08725 668; 240.16082 25103; 240.24324 938869; 240.37961 45527; 240.66548 8601; 240.76257 211328; 240.98299 1810387; 241.31287 24279; 241.32881 2992819; 241.52247 4707; 241.92357 1584596; 241.94815 933213; 242.01589 24029; 242.05338 1458; 242.19439 1298604; 242.41065 592895; 242.53429 37986; 242.86959 2625412; 242.95763 8118; 243.24364 19262; 243.3111 1525282; 243.36376 11625696; 243.85268 103836; 244.06996 23395; 244.8594 6149160; 245.39951 6358852; 245.51835 350807; 245.58776 23642; 245.72742 69960; 245.9562 5958; 246.11766 1393856; 246.22784 3518871; 246.42916 45779; 246.65279 49332; 246.7244 44092; 246.84308 12969; 247.04275 79112; 247.04984 40611; 247.38276 925461; 247.6359 188; 247.76796 3112; 247.8038 3663; 247.82218 7886320; 247.96054 852123; 248.14606 5636; 248.3628 63938; 248.39544 605498; 248.40375 1231233; 248.6629 3891; 248.87422 33078; 249.26825 23190; 249.31392 79859; 249.72973 17952213; 249.84459 3157785; 250.07618 14028094; 250.13563 3161399; 250.4449 76312; 250.47541 9764438; 250.70992 47710; 251.11207 639867; 251.14492 4508115; 251.18602 2032; 251.27633 21028178; 251.33135 6689; 251.60644 41434; 251.96255 1981862; 252.00376 45216; 252.43454 148428; 252.53183 6339; 253.34564 27712; 253.54895 188113; 253.58478 1021123; 253.64843 4476; 253.79127 20981; 253.99611 20708574; 254.10758 33633; 254.16528 8099; 254.25681 44547; 254.32376 55286; 254.42243 5389030; 255.69987 7329743; 256.03159 360032; 256.08958 2841; 256.1181 16149; 256.22023 9413817; 256.32297 50472; 256.33001 82014; 256.38171 71558; 256.39271 7796866; 256.41611 5270040; 256.53877 6990; 256.67194 40679; 256.80187 1393; 256.85153 12840; 256.89682 84854; 256.91088 73912; 257.06669 536559; 257.15783 1157335; 257.20945 4930; 257.38751 49861; 257.42653 8872528; 257.47051 15195; 257.48087 62305; 257.65154 6989; 257.68222 6111693; 258.04841 43205; 258.06923 25503; 258.3205 3195791; 258.33533 49125; 258.69442 1994; 259.00526 2149875; 259.8193 3255397; 259.84341 44112; 259.86888 8234285; 260.04215 625; 260.09938 44057; 260.32741 17834; 260.55989 5685; 260.65766 150967; 260.86815 21817; 260.87706 19349836; 260.95851 1516153; 261.12472 4390004; 261.14358 54844; 261.47275 4730688; 262.05672 79204; 262.61568 6906579; 262.80956 32553; 263.38714 279126; 263.40655 761687; 263.65346 34247; 263.72513 59146; 263.95875 3107; 264.08185 21123; 264.48013 5437484; 264.96367 54139; 265.40089 4395; 265.61143 31159; 265.71364 57335; 265.72889 1651714; 265.79088 74209; 266.04854 21632; 266.2669 25856; 266.4836 3424683; 266.61249 241910; 266.76858 27108; 266.9975 109350; 267.23054 8412; 267.27988 1401376; 267.65843 1715498; 267.65921 22935976; 267.87746 20316; 267.9706 32934; 268.01946 37089; 268.47722 98355; 268.87498 30164; 268.89987 5340478; 269.42672 1230029; 269.67539 1371271; 269.70098 7343960; 270.25547 5606131; 270.26312 364378; 270.35392 59292; 270.47833 74063; 270.53505 2749142; 271.04907 12036; 271.14597 29984; 271.24768 8166; 271.31092 141111; 271.57333 1583376; 271.58355 49873; 271.61209 23509; 271.7759 9673; 272.043 79058; 272.10024 46266; 272.22121 8578; 272.23352 1493; 272.23388 11167; 272.42815 2257622; 272.60313 29021; 272.67318 4868988; 272.91331 1535738; 272.9678 3329082; 273.06064 22949; 273.14679 24438; 273.34364 70550; 273.3774 676228; 273.40714 4014; 273.47378 68119; 273.54657 39331; 273.70115 57018; 274.72454 20170; 275.28225 5148983; 275.41492 1374207; 275.4385 23999; 275.7738 18079; 275.83808 62490; 275.87934 4274184; 276.15646 5504; 276.16236 4148647; 277.38299 15003; 277.57044 1549717; 277.79265 1254; 277.86059 51077; 278.14757 506731; 278.56331 25983; 278.82006 7017; 279.46731 4199130; 279.48715 51941; 279.57083 29334; 279.9585 4370818; 280.09179 127974; 280.30994 167468; 280.48532 8854627; 280.78806 30295; 280.96944 644181; 281.06507 190355; 281.07651 32872; 281.08984 1112787; 281.51166 33539; 281.51319 27409; 281.79605 4267333; 282.41588 6049515; 282.59901 38801; 282.63202 8366; 282.72995 9399962; 282.84236 52426; 283.07253 69539; 283.15879 1621513; 283.41682 851830; 284.16963 3415449; 284.61102 266248; 284.64926 48445; 284.68237 41059; 284.81402 28021; 284.83146 12859; 284.91028 79238; 284.91511 976997; 285.40446 6041; 285.40788 124964; 285.71042 75390; 285.99083 369458; 286.11682 23142; 286.2435 181609; 286.42211 79426; 286.69019 52015; 286.95648 884640; 287.08364 88318; 287.92576 8323; 288.38883 4422920; 288.48412 4634; 288.49875 1771020; 288.53854 1231064; 288.55563 14426976; 288.64477 8905309; 288.65212 20315; 288.69115 324343; 288.8487 59081; 288.90977 26751; 289.02724 65508; 289.09087 16612; 289.10632 73765; 289.15907 61822; 289.34475 1550751; 289.35016 3006751; 289.5196 75936; 289.87521 187140; 290.26179 157065; 290.46431 49661; 290.57325 243956; 290.86598 4528; 291.00733 4133086; 291.18633 460702; 291.47055 13115; 292.04689 69870; 292.15589 2403560; 292.32288 2769250; 292.41528 17261; 292.51237 2148788; 292.80103 549476; 292.90841 52022; 293.26982 35829; 293.47098 261822; 293.72385 120471; 293.86237 3419660; 293.93139 2766789; 294.63741 71913; 294.71399 63575; 294.88524 99; 294.93543 312023; 295.87178 2191; 295.99848 2579134; 296.19891 11034; 296.27343 1788900; 296.37268 432763; 296.4084 7045; 296.58839 59121; 296.865 1292851; 297.26756 27289323; 297.42217 549361; 297.42468 624361; 297.43865 338478; 297.45341 43127; 297.79237 183140; 297.89569 28016; 298.13147 3261409; 298.22854 16653; 298.39252 194334; 298.43783 6132; 298.87552 18219507; 298.97885 30189; 299.03517 28985; 299.35083 150289; 299.79181 23574; 299.94116 27307; 300.04172 51651; 300.10816 29629102; 300.17141 40982; 300.32924 807354; 300.6648 833479; 300.72992 1946795; 301.13876 4784539; 301.26882 5882311; 301.31911 5978974; 301.34553 7206; 301.66711 29639; 301.96597 57115; 302.41628 323559; 302.57891 2171828; 302.63121 31660; 302.64567 7753907; 302.71969 82621; 302.79138 3532380; 302.88352 8137106; 303.00994 1712283; 303.29775 28923713; 303.33392 245139; 303.66052 27846; 304.01028 2355; 304.03991 302825; 304.28167 693; 304.45688 316898; 304.57301 6020; 304.67874 4046; 304.77368 5327; 304.84968 463; 305.13911 1843926; 305.23619 2394; 305.23774 26059; 305.7607 3268952; 306.20536 23060; 306.2174 9386; 306.84748 17669261; 307.23766 221185; 307.55163 9822320; 307.72739 820188; 307.74752 3839; 307.98649 6438; 308.15063 64936; 308.1751 1258749; 308.2217 56565; 308.46579 1866220; 308.60611 26076; 308.83297 9751; 308.83966 7695204; 308.87352 2583; 309.04754 24545; 309.14347 1274115; 309.69662 5058497; 309.69938 1321165; 309.77258 841235; 309.98333 60717; 310.10242 18421; 310.15997 9489480; 310.18425 5996; 310.34359 30956; 310.67653 674412; 310.91748 4647; 311.27286 27184; 311.42045 20675; 311.46012 4045409; 311.48508 761869; 311.60253 9338746; 311.81019 22174; 311.85422 42591; 312.12902 24966; 312.21963 27144; 312.44388 1081286; 312.80473 178467; 312.8298 7403429; 313.07269 1380292; 313.31461 8354127; 313.38139 3427701; 313.74914 7284; 313.76682 5710; 313.79142 4598012; 313.89085 75568; 314.35048 46303; 314.37775 4006; 314.42902 1218667; 314.43023 79137; 314.45516 405787; 314.46935 2619828; 314.88164 339159; 315.29386 53072; 315.34801 79142; 315.38763 2901987; 315.40849 867519; 315.63346 2530532; 315.69663 15755; 316.08659 20908; 316.1386 8426; 316.31428 6673; 316.43346 142537; 316.60884 52977; 316.9321 74118; 317.20203 85505; 317.24133 3053043; 317.404 1243; 317.55192 8080; 317.83486 9411325; 317.8497 49147; 318.00115 14181; 318.27591 44748; 318.3347 22786; 318.40896 44779; 318.80016 1539; 318.91212 681; 318.93254 62681; 319.46107 50061; 319.73282 6052; 319.83489 17478; 319.90324 21546; 320.05024 1425905; 320.05467 9027; 320.3567 7112; 320.41658 6539; 320.60833 1163600; 320.68942 18891; 320.71791 12662; 320.82448 6622; 320.86125 24630; 321.15084 38729; 321.28042 17138; 321.45161 1193740; 321.87433 3507667; 321.884 53127; 322.01392 179752; 322.12823 5000856; 322.30036 73168; 322.35082 523157; 322.35889 47002; 322.39954 48541; 322.42963 44109; 322.63636 18172247; 322.72093 21727; 322.96323 21778; 323.06403 1601457; 323.1133 1684; 323.4389 51286; 323.49801 37123; 323.7295 74813; 324.2933 53281; 324.64344 340405; 324.70779 45230; 324.91176 4563988; 325.41156 67731; 325.46911 37939; 325.52312 3757258; 325.57059 162308; 325.58459 2414; 325.59437 6943; 325.95526 128; 326.17791 382020; 326.69199 1711045; 326.70156 52105; 326.74056 38699; 326.97857 12536; 327.31011 1204313; 327.35365 27419; 327.39142 1634662; 327.49956 156102; 327.61134 38714; 327.87864 7684117; 328.15443 741; 328.46898 69423; 329.10734 79939; 329.14638 41853; 329.16578 48984; 329.22114 897; 329.353 12605; 329.50091 18922; 329.50276 63335; 329.67653 1383346; 329.83527 12608; 329.83565 1527110; 329.84158 406812; 330.08361 292810; 330.12799 8313; 330.31993 21895; 330.40427 337868; 330.50538 4538; 330.86821 6941; 330.93893 81526; 331.15378 613235; 331.42896 54476; 331.53338 40618; 331.54473 970670; 331.54951 1736257; 331.58763 94338; 331.83228 63543; 332.03093 78585; 332.06635 655614; 332.25496 804158; 332.60383 6383412; 332.74036 3799; 332.74445 4511445; 332.86487 68661; 333.10825 175766; 333.27537 347893; 333.28722 360456; 333.35036 2593265; 333.4649 1531062; 333.51081 60866; 333.84361 54459; 334.11542 26018429; 334.27902 3398530; 334.38307 11859; 334.79693 3086; 334.90344 12486; 335.00798 213270; 335.09279 31968; 335.70013 47326; 335.76007 31228; 336.15614 8902; 336.64971 1610805; 336.71994 1051382; 337.05937 1660486; 337.39343 73162; 337.53396 32644; 337.56473 18349626; 337.64661 459091; 337.73016 1532281; 337.9794 25880; 337.98747 19034; 338.29758 19246; 338.35869 28736; 338.54505 40247; 338.5778 2414914; 338.61353 1108988; 338.6181 2275438; 338.76347 1311578; 338.8351 5586; 338.86971 14135402; 338.87899 3257059; 338.91742 4540; 339.05004 39281; 339.20927 2903032; 339.25259 42560; 339.42146 4453699; 339.90885 37760; 339.91239 1212565; 340.04884 42446; 340.16595 5567326; 340.24255 59372; 340.6539 19439217; 340.72094 43565; 340.76879 1652256; 341.30852 793363; 341.48079 27714; 341.55252 2998396; 341.76135 23187; 342.08044 123792; 342.10863 154769; 342.60992 25618087; 342.62125 25315; 342.6879 29741; 342.82582 670626; 342.9432 6906124; 343.02079 33881; 343.05624 60585; 343.88284 2942502; 343.88821 23486; 343.90489 1134540; 343.91179 10558; 343.96914 52822; 344.00505 2303560; 344.34745 165219; 345.08118 25625; 345.09688 5483535; 345.449 918804; 345.93613 463477; 346.09506 77274; 346.29234 3445; 346.33 30423; 346.48166 26406; 346.79825 9427; 346.8305 7807607; 347.01634 58552; 347.40225 59773; 347.40957 1157453; 347.76245 3321772; 347.80138 997083; 348.0331 25348; 348.1177 9899563; 348.13553 3373155; 348.23545 468674; 348.48594 7304; 348.56836 1416682; 349.05421 2365985; 349.12598 8820; 349.16525 728; 349.23522 162458; 349.29983 2586381; 349.4556 21054; 349.84383 66236; 349.98138 18968; 350.01956 48954; 350.05907 4586970; 350.13916 2523363; 350.36121 4011335; 350.88526 26883; 350.9675 12110153; 351.03543 16424; 351.10889 2619322; 351.36545 8353; 351.38521 355875; 351.57036 75080; 351.59927 54856; 351.63694 68592; 352.22768 7404534; 352.23647 2256713; 352.26882 77343; 352.32753 1765117; 352.5367 47499; 352.56777 17050; 352.7284 4153343; 352.73521 21638; 352.80768 2772930; 352.84381 2998; 353.04489 152634; 353.17572 1723871; 353.27837 164564; 353.46179 502999; 353.716 159325; 353.74193 1134970; 353.75814 25023; 354.18164 320914; 354.31036 5939850; 354.33949 855847; 354.35451 1632566; 354.69486 42618; 355.02293 3692619; 355.23317 11138; 355.24342 53829; 355.36583 8563699; 355.44823 18396; 355.63147 33897; 355.6693 16385586; 355.72166 25789; 356.07886 740306; 356.12878 68981; 356.35225 1719431; 356.46376 4625; 356.58286 49032; 356.62913 1415651; 356.67855 2860824; 356.70495 63908; 356.92236 46632; 356.95915 6989690; 357.00587 278715; 357.34512 727854; 357.60612 9959; 358.50011 943032; 359.33962 42499; 359.45311 1917144; 359.7657 22655359; 359.88907 89849; 359.97065 2911; 360.24028 632734; 360.37281 89162; 360.44141 5950; 360.60185 79815; 360.97992 9180; 361.35118 1553469; 361.42147 3662928; 361.80824 61287; 361.86121 9541; 361.94706 13503; 362.14947 16552; 362.16184 43589; 362.27734 54369; 362.62541 2454; 362.95374 70351; 362.99623 17378; 363.12501 934504; 363.13735 186016; 363.40838 1690582; 363.42913 50296; 363.60422 8990; 363.86715 182266; 364.06721 1907920; 364.58695 3882851; 364.65662 29012309; 364.89004 52506; 364.89591 52265; 365.06172 679505; 365.31468 1725843; 365.44887 2726712; 365.4528 59286; 365.70149 36194; 365.96968 15036; 366.52456 806716; 366.54518 2202; 367.35936 16709; 367.47013 641512; 367.75193 11130516; 368.01629 8472; 368.03816 4276; 368.1203 9199593; 368.14516 29723; 368.37214 1107358; 368.67474 4889; 368.75522 1358902; 368.8115 6440; 368.89537 5317819; 368.91194 29818; 368.92863 147221; 368.95262 9104198; 368.9662 25580; 369.01827 6554123; 369.01889 1955648; 369.26414 247779; 369.40247 8650218; 369.89091 1463384; 370.53157 8889953; 370.58134 142517; 370.67709 34675; 370.80687 47658; 371.12484 585065; 371.26092 49199; 371.32327 1374; 371.67698 1394546; 371.70892 78937; 371.95353 4357; 372.01179 2889; 372.07889 20064; 372.4923 43397; 372.60806 141709; 372.78452 3508; 373.00454 175928; 373.23245 3638; 373.26804 1226803; 373.30184 264934; 373.45759 18174; 373.67261 669757; 373.92633 40834; 374.22959 758518; 374.58442 16584625; 374.60482 3058730; 374.85291 57426; 374.92626 22610; 375.07894 4894; 375.22454 67712; 375.23161 34742; 375.29721 468343; 375.54812 59476; 375.59359 153672; 375.67678 171723; 375.81535 918926; 376.04041 72751; 376.05383 25169; 376.2089 5017; 376.24233 5462; 376.29634 3867; 376.44535 16103; 377.1546 77657; 377.38263 1712784; 377.42233 26303; 377.42756 59346; 377.60511 45550; 377.77358 3265721; 377.79433 29715; 377.86587 13122796; 377.92209 46381; 378.24654 8319; 378.33726 2673; 378.35953 734; 378.45258 42168; 378.70581 76496; 378.80943 2903935; 378.93685 11930; 379.11887 38444; 380.00045 78266; 380.13487 30589; 380.29398 1994; 380.45133 24870; 380.72487 20469; 380.82412 23084; 380.87527 43298; 380.88118 9238; 381.30529 22637; 381.32262 674312; 381.67641 4627122; 381.75546 19587; 382.20482 8899; 382.4509 48250; 382.71763 3940033; 382.77693 20134; 383.30827 8681750; 383.35512 24341; 383.71602 28683; 383.88752 101301; 384.13124 38927; 384.21282 169429; 384.51498 1326263; 384.793 69899; 385.53957 730579; 385.79379 8255871; 385.79803 27353; 386.00681 23450; 386.01504 588824; 386.31079 1248080; 386.31375 62811; 386.98475 65058; 387.103 59901; 387.14474 6312485; 387.53204 36513; 388.03118 95876; 388.09064 16678; 388.60752 55171; 388.75697 7733; 388.96546 27996; 389.08452 513899; 389.11236 44164; 389.23295 3687464; 389.41168 441439; 389.4296 9425774; 389.75822 19679; 389.76741 6644317; 389.92447 4292485; 390.22647 138578; 390.22787 41345; 390.24295 185470; 390.26128 32700; 390.28409 27327; 390.29565 1097670; 390.61323 38535; 390.67678 36055; 390.7314 2743383; 390.73346 536083; 390.76928 68780; 390.85253 2823; 390.96617 46105; 391.61261 14144; 391.7775 9462611; 391.80899 8459; 391.81844 4208372; 391.83855 24284; 392.07276 6106; 392.10007 6729638; 392.10367 27942; 392.59353 546438; 392.89475 3963; 393.78708 15723; 393.88312 617; 393.93637 66379; 394.02583 1443219; 394.08675 51875; 394.21022 1616630; 394.24564 36989; 394.77074 639564; 394.8447 1540508; 395.34856 6658610; 395.85229 10169; 396.02804 18820; 396.26302 1938541; 396.28876 29888; 396.33617 1878270; 396.37164 120233; 396.64416 1752389; 397.08759 23943; 397.14284 532284; 397.19489 8484141; 397.42656 1463679; 397.72237 29591; 398.23334 822990; 398.2397 5189; 398.2464 156434; 398.69334 22874173; 398.76709 29860; 399.25463 57288; 399.40623 99826; 399.83039 71756; 400.3373 1681; 400.81911 74060; 400.99257 31928; 401.19066 317368; 401.19646 26053; 401.2268 8004020; 401.24542 25021; 401.52106 4757; 402.03362 2664644; 402.11927 141681; 402.35359 60810; 402.63186 2487671; 402.73864 57092; 402.74829 65984; 402.89624 24849; 403.12298 6154722; 403.20255 51207; 403.21142 16257931; 403.26979 5655646; 403.33147 1467223; 403.56813 6018062; 403.74444 8584; 404.21746 111270; 404.43741 6218; 404.50926 8109212; 404.52888 2647962; 404.76369 1440852; 405.04496 2519560; 405.10211 2113856; 405.45696 2504089; 405.77771 138269; 406.54778 5749598; 406.55856 3182107; 406.62478 66104; 407.03262 1842175; 407.14409 17937; 407.43699 24866; 407.45714 145881; 407.56362 49666; 408.31689 338; 408.41817 2582924; 408.43269 9129; 408.62336 3121085; 408.75036 26099739; 408.80243 17334; 408.85483 48590; 409.05738 9801; 409.22904 31870; 409.33488 748841; 409.3759 7630448; 409.46824 22796698; 409.68616 7662; 409.73874 50838; 409.97961 3121011; 410.12794 149423; 410.22677 2558; 410.29388 22137; 410.39502 2205; 410.42529 1709; 410.49683 69987; 410.79845 993193; 410.81453 772363; 410.93366 22718; 411.13 11193; 411.42667 1128479; 411.47251 56407; 412.01653 43369; 412.03791 24990; 412.18565 1312891; 412.3632 199806; 412.45448 34475; 412.87435 3529516; 413.2285 10532; 413.55489 938012; 414.01108 38002; 414.04392 117; 414.18036 6602; 414.37732 163198; 414.83188 46849; 414.95202 3919935; 415.20455 42465; 415.40189 8010940; 415.66837 71632; 416.39866 385342; 416.50007 5777; 416.64413 1670767; 416.64533 1407460; 416.73992 22057; 416.80619 1766592; 416.84216 109546; 417.18333 6668912; 417.3257 593815; 417.33993 1350377; 417.89967 29811632; 418.12474 191321; 418.58297 69582; 418.69942 32772; 418.75927 68821; 418.91687 618863; 419.07342 4964872; 419.34558 17743; 419.67283 49391; 419.75412 12145855; 419.78647 2994214; 419.97969 7238227; 419.99934 69602; 420.05136 31206; 420.39116 1692649; 420.42506 21641; 420.81897 6884233; 420.88379 32437; 421.17963 3006; 421.30851 44309; 421.35291 28938; 422.1888 4921; 422.25335 5142; 422.3235 3691508; 422.6784 2779; 423.01094 18486299; 423.23101 33333; 423.702 4671323; 423.72344 20638; 423.82618 304427; 423.84963 172963; 423.90923 26011; 424.08088 46555; 424.36502 74447; 424.44737 25917670; 424.79419 8812255; 424.83601 74089; 425.02424 48742; 425.21213 4238127; 425.4109 44763; 425.59372 41894; 425.63093 1477; 425.63705 74450; 425.72785 15841; 425.82629 29526643; 425.83503 21741; 425.85661 29776678; 426.1068 474962; 426.1324 751501; 426.33883 19743; 426.36996 16235; 426.43279 963688; 426.51116 64753; 426.63038 14921; 426.69664 1017; 426.76536 590679; 426.79176 30747; 427.06697 86310; 427.62317 72033; 427.67536 584642; 427.68679 3833; 427.78165 2285; 427.8652 1491; 427.98208 4805178; 428.0238 3195198; 428.43672 3463525; 428.5925 54888; 428.69697 626325; 428.81131 53769; 428.91488 147043; 428.91738 165753; 429.14817 142037; 429.28118 4979; 429.3062 1519036; 429.62796 45977; 429.83232 7818; 429.86892 49730; 429.87364 664702; 429.99748 3077; 430.11616 65884; 430.18781 46552; 430.32152 4789669; 430.88403 6635; 431.2909 72619; 431.29799 1260513; 431.40517 1453344; 431.58261 31822; 431.6321 67958; 431.65505 24335562; 431.91482 7957; 431.95339 3489910; 432.22934 72330; 432.36076 5278; 432.58706 27381; 432.73712 297; 432.84213 2708; 432.96448 20294; 433.05586 2226953; 433.29853 167559; 433.5505 2846; 433.55896 1169719; 433.72781 619; 433.99486 1864960; 434.02404 6910756; 434.05642 130433; 434.11481 1456457; 434.16027 21865; 434.17088 21260100; 434.42533 2061733; 434.89824 74793; 434.99012 55975; 435.01897 5375; 435.08529 69546; 435.18446 794803; 435.81906 1779438; 436.00834 77943; 436.15702 1658772; 436.23865 2632453; 436.2419 308576; 436.41665 46745; 437.33902 14305; 437.68543 43266; 437.80146 14937; 437.83947 1432441; 437.90682 2739966; 438.08072 13653; 438.12695 2915988; 438.32279 2714286; 438.34634 58314; 438.65903 66316; 438.71218 705181; 438.73921 18236; 439.63327 66246; 439.72205 61448; 439.87427 161403; 439.89084 1991738; 440.14846 1575461; 440.16022 431366; 440.17449 12230; 440.21082 3263; 440.8183 786995; 440.9083 33174; 441.18442 51276; 441.19764 2899960; 441.25097 2870051; 441.50368 668296; 441.59412 21522; 441.71852 105205; 441.84665 1204267; 442.05657 21584; 442.1848 1055063; 442.27654 20295; 442.51585 32909; 442.72554 21478; 442.83536 1002371; 443.27698 46410; 443.33425 1058342; 443.48744 139476; 443.69874 5920239; 443.83549 86154; 444.0268 1390829; 444.1186 31085; 444.20037 4948; 444.24039 2469978; 444.37141 437158; 444.41439 30815; 444.47101 1336673; 444.62378 3235511; 445.45179 9558036; 445.50131 1397; 445.55415 9745; 445.70198 43070; 445.8213 16382; 445.94947 22260; 446.09738 274874; 446.19143 2362; 446.24929 53048; 446.58355 14566; 446.62358 457514; 446.63248 8218901; 447.65373 107132; 447.70327 21026; 448.31345 892148; 448.42581 68154; 448.68686 779567; 448.81009 71081; 448.82611 66723; 448.99405 6993597; 449.07783 76420; 449.145 51583; 449.17422 36870; 449.21941 12293; 449.35714 65379; 449.45775 48279; 449.58264 5217; 449.77076 52588; 450.19636 129756; 450.31902 22305; 450.55836 9959; 450.84382 141826; 450.88988 29837; 450.91955 1485; 450.93227 8114; 450.96851 53189; 450.97623 17452; 451.12676 41233; 451.29871 26493; 451.32097 27626; 451.39602 67519; 451.67209 46218; 451.69429 1385178; 451.8509 24181; 452.17151 182160; 452.28403 24115; 452.53233 3451; 453.07957 6546610; 453.26984 1383726; 453.29991 3717; 453.36565 160455; 453.62704 3189; 453.76326 33076; 453.76841 67137; 453.86492 7075497; 453.87358 1191357; 454.22427 2153; 454.48848 12389; 454.5924 46119; 454.62353 27273268; 454.6534 7358301; 454.68816 3531; 454.7547 57371; 454.75525 74972; 454.94022 5475110; 455.25146 188903; 455.56543 29417; 455.62248 13622; 455.65009 126661; 455.75611 839690; 455.77178 4415; 456.0545 29445; 456.15057 140542; 456.16178 7799871; 456.26509 66575; 456.53293 3225086; 456.85344 1198497; 456.89617 1520; 456.95852 3215009; 457.13335 28448; 457.57699 3302306; 457.66437 5619570; 457.71833 9174; 457.73307 56423; 457.75911 1723102; 457.93428 187459; 458.218 30416; 458.47216 3112351; 459.2873 725442; 459.45534 74869; 459.83658 12273; 459.83731 6475717; 459.83919 37731; 459.91092 5936574; 460.50421 3287934; 460.61683 47314; 460.66339 5138; 460.72611 28664; 460.91245 934891; 461.02363 17328; 461.28046 5094865; 461.34901 34838; 461.61956 3200; 461.7228 147357; 461.84048 80949; 462.2379 20029; 462.25225 32803; 462.27841 187722; 462.4205 4882; 462.46477 11933; 463.31613 36511; 463.51156 8949; 463.79732 2409785; 464.06743 8932594; 464.2588 334281; 464.32862 53516; 464.38684 3811; 464.41025 66558; 464.41155 2912; 464.70708 66919; 464.74879 17215; 464.76678 28631778; 464.88443 28815901; 464.89136 1556; 464.98837 392602; 465.3364 6322879; 465.35746 5948891; 465.3882 1520868; 465.56467 185275; 465.70247 522194; 465.97357 3103; 466.09411 42704; 466.12826 2070605; 466.14322 28666; 466.15068 941679; 466.24397 5355; 466.45325 9597475; 466.60789 18669; 466.74829 139820; 467.25126 147226; 467.45023 27498; 467.46963 1655997; 467.60662 1164185; 468.01729 47883; 468.36136 1461186; 468.41605 3639329; 468.98188 147154; 469.03198 22495; 469.04526 35357; 469.09822 76348; 469.10631 1460025; 469.17661 26884; 469.20765 26681; 469.30496 190693; 469.42513 1486082; 469.51787 48219; 469.56025 14122; 469.84055 6272233; 469.90311 1450092; 469.98371 2620396; 470.16627 189732; 470.44083 4319; 470.52143 4038330; 470.70888 13595; 471.4368 351; 472.25323 17402; 472.29199 6295; 472.54407 661978; 472.55138 69815; 472.60235 937483; 472.6175 1089474; 473.0477 14114; 473.32363 3439; 473.72838 33555; 473.84846 2124023; 473.89398 753739; 474.11748 7619842; 474.19917 63747; 474.23203 4131627; 474.31278 805057; 474.58263 131420; 474.64355 575; 474.7369 1875034; 474.87339 11775; 475.06009 6981; 475.07342 76748; 475.34161 56318; 475.35645 1279603; 475.408 29991; 475.65075 96099; 475.65835 50262; 475.82881 82830; 475.91514 56402; 476.41024 20323; 476.61027 79103; 476.61644 17209; 477.00345 26432; 477.14768 833738; 477.39584 1087536; 477.43699 9127; 477.53451 151081; 477.61994 8963; 477.6465 4739695; 477.74018 6695; 477.84964 13583; 477.94952 1108; 478.0269 1188020; 478.18153 63541; 478.26146 44159; 478.29363 24888824; 479.18934 421451; 479.21879 8219; 479.22556 2013391; 479.64916 74931; 479.75574 183640; 479.86102 1052960; 480.17119 21813918; 481.23615 52495; 481.2729 28903; 481.31619 3103180; 481.69452 9319; 481.84902 73843; 481.86721 156429; 482.02953 4879347; 482.30988 2739970; 482.43973 9176; 482.69674 3107489; 483.0501 5777981; 483.41044 3156055; 483.55257 54413; 483.8939 13184; 483.96433 7312685; 484.05787 30795; 484.08739 68100; 484.40492 2142043; 484.91743 1376324; 485.20279 3422818; 485.28314 154771; 485.3086 8382; 485.45379 29982; 485.58741 2882; 485.94789 80272; 485.99515 40425; 486.01932 11326; 486.06608 1697278; 486.23078 4316465; 486.32555 7993; 486.49203 250415; 486.58 108533; 486.72731 1887622; 486.78331 2677; 486.84467 102; 486.91946 41131; 487.12506 1269491; 487.41848 8643683; 487.59161 2473182; 488.01575 23363; 488.04297 4899162; 488.06072 10354; 488.49173 58599; 488.75878 35912; 488.80383 743; 489.43802 5325; 489.70721 920072; 489.71451 26593; 490.70973 1088; 490.98092 7993924; 491.14694 1050169; 491.32944 6154741; 491.34964 4104; 491.41216 34164; 491.57753 14787; 491.66143 44270; 491.82188 68423; 492.13357 1102017; 492.59726 68110; 492.88037 1953; 492.89582 643152; 493.13128 1797046; 493.16616 4953; 493.45914 38786; 493.78016 6373; 493.8516 23443; 494.17978 1840021; 494.24163 4431; 494.27419 25301; 494.33712 3705943; 494.3648 11546442; 494.38502 21527; 494.40993 69668; 494.4277 64434; 494.53549 119625; 494.56876 279895; 494.75116 6172557; 494.96773 57446; 495.09399 8406039; 495.24913 10413; 495.45383 14255; 495.47012 16592563; 495.62668 1617293; 495.74851 70447; 495.81921 2279724; 495.98135 1607524; 496.16707 77526; 496.44004 191699; 496.44161 368625; 496.94981 18574; 497.07657 711993; 497.2082 56567; 497.28513 524320; 497.46243 3567359; 497.68949 5405; 497.84099 11307; 498.17878 72204; 498.69159 2523519; 498.96135 60819; 499.0523 3655236; 499.3613 1521780; 499.36791 6686; 499.58015 45960; 499.80456 5277665; 499.81585 968428; 499.92019 1458345 +<7, 6>: 0.00722 1917250; 0.3197 1963914; 0.54853 3444511; 0.96084 40844; 1.08255 623998; 1.40092 40763; 1.5573 50108; 1.57511 18617651; 1.59189 31574; 1.71003 3329810; 1.74269 18838; 1.81807 1142998; 2.16192 1243335; 2.34543 88071; 2.48471 1149323; 2.68852 29965980; 2.96949 16167; 3.2378 8851121; 3.29624 978966; 3.33981 23191; 3.35227 1622328; 3.42154 585131; 3.53711 22045; 3.91304 70227; 3.95492 76409; 4.07528 30671; 4.14502 9338; 4.45343 1125; 4.55317 43502; 4.73242 46025; 4.93588 6496702; 4.95361 854126; 5.188 4594873; 5.28536 3368676; 5.38927 3314716; 5.59858 9647; 5.61779 93179; 5.98777 4348473; 6.03755 5646; 6.59339 2005036; 6.73153 1877690; 6.80379 12146; 6.90832 6822498; 7.03043 10; 7.26791 78422; 7.30323 33118; 7.33411 4043; 7.42836 576447; 7.90647 77051; 8.87626 155093; 9.00847 19290; 9.17354 22404; 9.42126 2532; 10.00159 36760; 10.04267 26164; 10.48655 1731215; 10.5715 4422553; 10.72475 24546; 10.84978 965733; 11.01541 8065; 11.06251 5813452; 11.36488 122813; 11.50525 85486; 11.59466 5397; 11.87283 3133539; 12.11057 588772; 12.38339 676082; 12.49913 4351390; 12.89832 16054195; 12.91918 7353; 13.05728 8647881; 13.15124 14953; 13.26164 116193; 13.34556 26768; 13.46767 4786789; 13.62776 1195445; 14.00027 2427050; 15.35933 41182; 15.74275 3628094; 15.77715 28581; 16.0057 28976; 16.03468 9076; 16.11248 40225; 16.12001 4051; 16.16118 1711663; 16.16948 1830848; 16.22679 1180757; 16.39938 336931; 16.56621 40916; 16.81598 22736; 16.96434 3346732; 17.0577 5343452; 17.19414 1971924; 17.30022 8908; 17.52093 8811715; 18.00375 867053; 18.11543 5083; 18.24269 1229706; 18.34333 53370; 18.48892 4154034; 18.62015 48649; 18.64241 8960668; 18.67564 56057; 18.72271 65961; 18.73193 32357; 18.80312 58781; 18.80539 21745; 18.96543 850945; 19.76395 21098; 19.79519 1972386; 19.82886 180609; 19.90666 6397467; 19.96921 6980; 20.08948 47698; 20.38341 59194; 20.47099 113642; 20.50013 3582; 20.54263 14715; 20.60101 4447; 20.68337 35440; 20.72077 52813; 20.77283 2273; 20.92646 686014; 21.21156 9526835; 21.26897 3852; 21.34409 903354; 21.71097 5345; 21.78117 279131; 21.88057 29538; 21.93735 6080815; 22.00091 1466373; 22.07591 1021080; 22.46871 49351; 22.57431 23539; 22.73414 29372; 22.94422 6079; 23.13124 22978; 23.23899 53410; 23.55326 14123942; 23.69567 1608481; 23.75616 851612; 23.77415 9083; 24.05115 48576; 24.17895 7708; 24.64119 9420; 25.01331 33604; 25.01554 34539; 25.02251 41160; 25.13952 841; 25.22201 7848813; 25.48925 79226; 25.77807 187048; 26.3118 29154; 26.43082 54741; 26.4985 34965; 26.59149 23280; 26.67386 78067; 26.85809 1376950; 26.91919 23810; 27.11617 44655; 27.24495 5008134; 27.26693 69906; 27.3961 37438; 27.5627 341; 27.73393 4347292; 27.79719 47872; 27.84404 3617185; 28.00719 8344288; 28.02483 152249; 28.13217 57094; 28.18551 9223; 28.49636 2881670; 28.66487 30210; 28.81721 7607183; 29.35518 34237; 29.4565 63765; 29.50221 3405520; 29.51216 22840; 29.53762 42127; 29.63597 4498855; 29.72797 4502791; 29.78068 15362; 29.94201 87; 30.0275 7764; 30.32725 932120; 30.60374 1649068; 31.09507 6688454; 31.17083 157413; 31.41064 2244189; 31.42607 66508; 31.67121 616051; 31.76785 1458843; 31.82122 322551; 31.83949 47388; 32.16612 305767; 32.34427 1955; 32.36223 55058; 32.38396 26089; 32.48926 8665; 32.6389 23985; 32.69532 7058; 32.74264 5384478; 32.77276 11604; 32.87819 210903; 33.98615 501; 34.02234 12636; 34.04389 50101; 34.3041 1943162; 34.72836 24712548; 34.94149 6581615; 34.97691 71706; 35.10905 23234051; 35.5767 1701822; 35.58795 9957; 35.6169 759629; 35.85567 14168; 36.1586 62990; 36.33247 1681; 36.39031 40057; 36.52444 3044557; 36.5327 58085; 36.54526 9393520; 36.54733 3805; 36.58931 15087; 38.26541 61539; 38.3038 1976; 38.64708 12030; 38.68903 2902; 38.71211 9245264; 39.38874 8202; 39.45658 6999; 39.58609 732192; 39.7017 1648; 39.84372 77545; 39.92862 3833840; 40.25954 1327640; 40.75314 39997; 40.99522 135297; 41.28124 6343030; 41.53476 740886; 41.65328 8466; 42.10141 1427; 42.21063 62346; 42.21856 20504165; 42.33321 26970; 42.38363 67417; 42.41644 2752492; 42.60745 4050; 43.1772 696485; 43.32983 9697; 43.69524 179082; 43.91886 115732; 43.94743 6543368; 44.23217 3314638; 44.3895 36245; 44.43376 66783; 44.68008 2043140; 44.73711 2359277; 44.91659 8371; 44.94844 8044183; 45.30589 955831; 45.30773 3570712; 45.47874 48683; 45.55273 57586; 45.56189 1394408; 45.75094 11208; 46.22973 11100; 46.25516 404357; 46.50182 49968; 46.82079 3859; 47.26258 3653807; 47.61145 1157; 47.9383 1229530; 48.33861 1481220; 48.4039 20603; 48.47212 12322487; 48.94472 5368; 49.08824 220909; 49.2609 23616; 49.52015 64007; 49.8271 1939884; 49.83376 113757; 49.92262 152989; 50.08523 7297; 50.18319 235943; 50.24742 1757053; 50.41718 3746; 50.95058 56529; 51.04844 24305886; 51.39128 45963; 51.4901 27743; 51.66884 1179954; 51.8995 9229; 51.94728 730950; 51.98295 2023377; 52.13636 104661; 52.2154 245720; 52.22543 6899; 52.40721 7694052; 52.57253 38651; 52.71381 7990; 52.77572 7736; 52.98511 7150229; 53.24315 71024; 53.28028 63152; 53.40396 7618501; 54.08637 6351; 54.16898 30706; 54.20441 4931181; 54.73353 55230; 55.04261 20291; 55.17763 32728; 55.31229 10383258; 55.38548 568450; 55.54235 7241; 55.78902 4206789; 56.41987 2819611; 56.53686 304883; 56.59538 120377; 56.66504 2518913; 56.80447 14276; 56.8938 227913; 57.16546 738999; 57.38371 7694; 57.46131 1823079; 57.75054 5028312; 57.81462 128; 57.90569 76268; 57.9249 1775215; 57.93019 27346964; 58.09292 818453; 58.09844 33756; 58.22805 21863; 58.61811 69177; 58.67475 2942200; 59.24172 17527057; 59.51497 8281; 59.52281 799172; 59.89583 65420; 59.91413 25278; 59.94985 6912; 60.07703 1523112; 60.21025 49615; 60.33957 788; 60.73432 4389647; 61.63481 4098159; 61.64653 1726; 61.70058 739179; 61.77295 61055; 61.89715 17816; 62.12557 143634; 62.13292 1766847; 62.54685 3670; 62.74311 48848; 62.83743 47629; 63.15278 2835; 63.15553 6644457; 63.35395 32906; 63.50229 70053; 63.87062 953172; 64.02789 17722; 64.44776 1019; 64.46279 190; 64.66244 3303; 64.70088 50935; 64.84535 2335; 64.89059 1685939; 64.95845 1103282; 65.20447 64194; 65.40899 1451288; 65.54761 1299170; 65.66656 27619; 65.67476 44722; 65.68247 24331; 65.68601 2590565; 65.83149 30885; 65.87544 3939; 65.97785 1340; 66.06124 40898; 66.08308 31043; 66.17781 3174746; 66.17783 4107613; 66.18642 12653; 66.36464 24632; 66.38964 20240578; 67.14858 4966173; 67.22251 286047; 67.46181 505466; 67.60449 8817157; 67.60507 18266494; 67.65559 21331; 67.70252 2924989; 67.89059 73571; 68.18184 8729372; 68.31961 1492; 68.44363 2710; 68.44535 23595; 68.7226 247156; 68.90561 48759; 69.11888 102483; 69.1446 39430; 69.23767 42327; 69.43338 4897429; 69.51298 184364; 69.5341 37111; 69.6831 141251; 70.00703 4108065; 70.12679 15900; 70.27793 3446836; 70.37172 676; 70.44122 1083; 70.91173 385; 70.95809 28850; 70.9595 7875; 71.06386 35498; 71.09135 23850185; 71.1696 65126; 71.20609 27351; 71.48547 4568862; 72.22631 34104; 72.65789 746352; 72.92195 7760; 72.99706 114458; 73.12495 3257901; 73.43285 2231; 73.55521 833217; 73.80761 23718; 74.34679 7428810; 74.62578 1523; 74.64223 67993; 74.97939 231406; 75.05366 8007345; 75.20742 21655; 76.13871 2468232; 76.6715 1882834; 76.82168 17803707; 77.07504 651629; 77.16301 72001; 77.41801 8290903; 77.67515 79749; 77.72268 5975; 77.75701 3836813; 77.91127 2229683; 78.06259 634388; 78.27356 8891774; 78.5002 449650; 78.51528 12271362; 78.57777 1682326; 79.00788 30014; 79.09397 772199; 79.50884 389582; 79.5776 1782906; 79.60774 32252; 79.65323 279; 79.77867 70894; 80.02299 4236; 80.49307 1552638; 80.71372 74900; 80.71808 2014332; 80.86157 6070422; 81.05191 8604; 81.0622 68857; 81.13116 12016; 81.15611 7364444; 81.19055 34640; 81.23444 12516275; 81.25866 851683; 81.36124 37646; 81.65048 1841777; 81.92117 1184488; 82.31879 28763; 82.45844 165430; 82.58863 49475; 82.66997 35526; 82.6955 49916; 82.72093 5841634; 82.77446 5116424; 82.80207 1064450; 82.83864 15210; 82.90323 74483; 83.00173 42179; 83.09481 2260014; 83.28006 4147378; 83.30956 1253767; 83.33614 8029340; 83.48666 17754; 84.13543 53745; 84.19666 553446; 84.20615 9287179; 84.30554 15961; 84.32988 164125; 84.34623 24072; 84.51927 3912225; 84.96857 8295; 85.12261 45345; 85.13681 68926; 85.52787 20924; 85.61209 74942; 85.8228 3563987; 85.84757 1962978; 85.87399 56805; 86.17648 2040; 86.22945 30640; 86.38138 62282; 86.51893 8506; 86.58233 58129; 86.6661 1111897; 86.78191 12268; 86.9293 47964; 87.12573 16263456; 87.14597 533468; 87.17311 3517536; 87.35293 31247; 87.64703 23614; 88.18875 8378910; 88.41172 1046289; 88.90168 3635523; 89.13868 498821; 89.20928 5921; 89.4398 3816257; 89.50905 1692671; 89.89945 13145; 89.99732 1904; 90.02202 5020; 90.31811 8292; 90.52494 44231; 90.87095 2294; 90.9939 50166; 91.02165 6724; 91.2463 66846; 91.72384 1348659; 91.75881 1387314; 92.12527 4560531; 92.12704 1430239; 92.18622 24954; 92.203 117708; 92.47819 114060; 92.52763 19447; 92.57251 13952; 92.6104 38985; 92.68558 1038139; 92.72016 5415006; 92.7859 7058; 92.82229 2101469; 93.02075 23259; 93.117 48733; 93.86004 29784; 94.10832 1557357; 94.23859 48695; 94.29142 24715; 94.34006 5672670; 94.44888 40857; 94.52392 26372; 94.52746 77859; 94.61711 6593171; 94.87749 4933; 94.95776 1114041; 95.04575 425331; 95.06999 5332; 95.08863 1917; 95.25603 7677644; 95.2864 25836; 95.31619 147597; 95.39773 30590; 95.61581 8629; 95.65233 36194; 95.92125 69516; 96.469 64355; 96.50934 178526; 96.89984 30572; 97.35487 54669; 97.42801 255762; 97.62865 93568; 97.70932 9886868; 97.75936 76617; 97.82844 70916; 97.86495 10749; 98.28451 13850; 98.90077 59861; 99.37432 3671003; 99.46019 8364; 99.56074 1254332; 99.82237 4402063; 100.15653 8064; 100.27054 11068765; 100.65782 7877; 100.93087 2286447; 101.01282 76722; 101.1088 572336; 101.45492 3364; 101.51824 6701759; 101.63937 205; 102.08234 2612; 102.80404 1875074; 103.13507 4360207; 103.16791 78497; 103.21414 73029; 103.32577 634; 103.6134 2300; 104.14636 411283; 104.20194 51782; 104.24489 2973043; 104.43719 8062; 104.4556 26489; 104.5119 1852956; 104.53813 197673; 105.20967 538092; 105.60222 37766; 105.61916 128237; 105.61959 4019; 105.67461 9239; 105.67535 7262; 105.76196 3524; 105.78653 66015; 105.89492 413606; 106.18864 63672; 106.23566 3769; 107.40464 7323232; 107.44003 42133; 107.96888 5804663; 108.36866 1504592; 108.41016 1181245; 108.453 101468; 108.52177 1818476; 108.59365 77102; 108.84244 59173; 108.95801 187579; 108.98623 1107909; 109.48972 93056; 109.84574 24707; 109.94347 25199; 110.00528 8864328; 110.39073 319021; 110.46181 30541; 110.46539 7029; 110.72094 3945346; 110.93955 23645; 111.17137 88782; 111.2031 3180088; 111.20451 4698236; 111.69777 1711029; 111.82127 9779500; 111.95679 31003; 112.06606 18485; 112.19355 25105983; 112.20451 448; 112.36839 61545; 112.48328 21267; 112.57682 41292; 112.6029 9304; 113.02588 9672475; 113.04285 1504603; 113.55564 852143; 113.86865 32440; 114.17653 29479; 114.65948 191536; 114.72971 6764; 114.77102 3453176; 114.80645 63830; 114.85557 23553; 114.90731 20037; 114.9792 23542; 115.06284 867509; 115.15114 69602; 115.1789 638871; 115.27551 1044; 115.29394 63009; 115.46287 35136; 115.5747 34862; 116.09824 48236; 116.16415 27577; 116.19131 2566; 116.4304 7310141; 116.45943 5160; 116.48569 512598; 116.63979 713621; 116.73348 49764; 116.86551 37162; 116.87385 9377; 117.49239 596101; 117.56346 21498; 117.65293 333669; 117.76467 1170527; 117.82286 50328; 118.15212 66606; 118.26577 20343290; 118.45291 56182; 118.55122 34987; 118.84225 17900; 119.15668 28690; 119.17896 801528; 119.41351 2024272; 119.61593 3236; 119.68352 73308; 119.73265 26619; 119.80075 1031920; 119.8824 9821221; 119.98121 1728914; 120.12279 1921594; 120.33108 2666; 120.57716 2539693; 120.68041 8065; 120.77111 43146; 120.87467 1731586; 120.91023 2730077; 121.1137 7630828; 121.33157 88549; 121.3386 70927; 121.39091 6662997; 121.66959 8887; 121.78618 4407664; 121.9854 79604; 122.09898 265; 122.15622 5241393; 122.23904 261911; 122.40095 72363; 122.51134 55306; 122.62946 1397904; 123.14463 26204; 123.27227 1501696; 123.32327 5219; 123.49906 3188835; 123.61504 1325874; 123.7757 1981; 123.82546 55268; 124.07762 26867; 124.08496 42374; 124.37504 72752; 124.47352 3116235; 124.51859 74754; 124.81151 6956; 124.81932 149837; 124.97254 62133; 125.03626 73627; 125.04359 31543; 125.23177 3690; 125.29846 3854; 125.52673 5970; 125.60462 1867; 125.62614 960562; 125.97826 13890; 125.98218 47852; 126.01905 3980; 126.18658 14708; 126.40817 17331; 126.43746 1475; 126.45132 79011; 126.45304 54978; 126.66357 488807; 126.77658 13682313; 126.79952 42337; 126.8065 1120523; 126.84586 8190; 126.9527 100170; 126.9875 154021; 127.05063 21738; 127.14644 21139; 127.27876 1112110; 127.71196 46910; 127.89195 3837; 128.2452 1283637; 128.44424 6725; 128.70356 30523; 128.93932 141003; 129.16117 1406517; 129.70766 416400; 130.14959 25775; 130.28797 5775622; 130.3403 8667087; 130.61971 43485; 130.63044 1866406; 130.85441 23753; 131.18026 47621; 131.21752 57149; 131.32781 72498; 131.41129 144724; 131.47263 14768; 131.55313 13276072; 132.02068 21864; 132.26259 44309; 132.29484 34829; 132.45571 77559; 132.55596 6290657; 132.59424 182165; 132.9211 63691; 133.33202 34408; 133.6912 1817879; 133.74351 1328785; 133.9079 3014779; 134.18745 152385; 134.22552 1510626; 134.59194 163637; 134.74557 1173; 134.81357 16193; 134.86591 9652; 134.87402 71805; 134.91956 216497; 135.16409 1621434; 135.47303 1248644; 135.58788 28619; 135.80903 19433557; 136.02849 817552; 136.10878 42593; 136.28302 22116; 136.52499 103837; 137.23041 598732; 137.24737 56091; 137.45169 1012092; 137.52935 52988; 137.66571 9425; 137.88787 778218; 138.05741 741171; 138.13061 45936; 138.26237 13707629; 139.02014 50214; 139.26522 25080; 139.41047 77404; 139.44526 54282; 139.47427 4307720; 139.93141 313023; 139.97374 65785; 140.14354 4645222; 140.19621 15121; 140.3076 15945; 140.46766 70877; 140.99023 71306; 141.06343 8930942; 141.15029 17633; 141.35152 483950; 141.72375 48266; 141.87846 3722; 142.01274 3978; 142.05626 945993; 142.115 16968; 142.12347 11238797; 142.27391 40061; 142.44 1706; 142.44468 30560; 142.44666 12450114; 142.46427 909544; 142.51909 4425491; 142.77615 21703; 142.77724 52695; 142.78171 15238; 142.87899 1238441; 143.22605 2189; 143.22973 1965439; 143.24669 1651; 143.28915 4638; 143.30495 3249616; 143.63748 152487; 143.85601 40558; 144.23093 7221; 144.33189 44711; 144.78846 24797; 144.86775 31764; 145.34386 4184389; 145.364 1592; 145.65548 2704962; 145.84687 4193078; 145.86463 3314249; 145.98808 18064; 146.00168 12500; 146.25869 178881; 146.27489 63581; 146.57499 23891; 146.67175 632425; 147.57248 77005; 147.66043 22297; 147.68838 4293; 147.70012 7340; 147.86556 4038581; 147.97687 5152; 148.01823 143491; 148.08263 8603; 148.35948 71946; 148.64451 57306; 148.95077 26017; 149.09583 29019; 149.55777 63278; 149.8911 16658; 149.96665 4116499; 150.41101 3595; 150.49046 3338; 150.75914 3347537; 150.80414 1743031; 151.02705 3161672; 151.10545 6489020; 151.16516 61843; 151.34238 16890; 151.52671 404350; 151.5547 1266541; 151.61935 3528106; 151.69448 9597516; 151.7115 31829; 151.80524 822384; 152.08877 36989; 152.11659 23454; 152.14263 5152; 152.15538 801533; 152.15718 1681020; 152.26085 22881; 152.50591 3754937; 152.81819 8029237; 152.86163 61547; 152.91598 3683040; 153.18682 4464168; 153.38697 25604; 153.50253 29440487; 153.6053 33746; 154.00756 354; 154.0349 6674629; 154.21055 44947; 154.41957 13843; 154.54704 45623; 154.6333 140314; 154.84621 7365; 154.95534 6133; 155.40178 29714; 155.47241 9828; 155.71396 4796; 155.86249 5887679; 155.9138 912396; 156.03049 40347; 157.05482 3610827; 157.06999 3467824; 157.1832 16378; 157.20542 1086520; 157.25161 886; 157.2852 3066256; 157.29203 86152; 157.32423 2127803; 157.79145 10271075; 157.97634 308873; 158.78142 14891; 158.83146 922678; 158.8348 4452; 158.93173 11866; 160.14374 423225; 161.00479 8293; 161.16227 243; 161.22081 68920; 161.25544 6142; 161.54446 1271242; 161.65138 2366660; 161.69637 102127; 161.78859 51205; 162.16876 20192; 162.34437 160726; 162.39928 1778; 162.72843 1584240; 163.75336 8654; 164.11353 747653; 164.1435 90466; 164.49053 25542; 164.57678 24973; 164.69708 15433; 164.74992 1655905; 165.2077 769359; 165.32278 9805491; 165.62903 67064; 165.62965 6757; 165.67343 59457; 165.83531 803356; 166.08403 27218; 166.15553 1158876; 166.33751 3135206; 166.60422 57149; 166.78972 1713; 166.93114 28370; 167.0591 1993189; 167.28637 3567587; 167.47967 59581; 167.75225 520312; 167.80043 2034714; 167.80828 5636261; 167.85759 4260798; 167.9049 7537783; 168.03655 71517; 168.37272 30809; 168.42169 29049; 168.57718 2725576; 168.62969 1986211; 168.76525 1515119; 169.20451 2464; 169.32294 75411; 169.33398 850575; 169.37226 76370; 169.39203 103609; 169.61758 2436; 169.79415 6318; 169.8921 515671; 169.91692 1747061; 169.94065 44143; 170.23745 79234; 170.31274 45054; 170.33329 40796; 170.52079 7904; 170.5512 28596; 170.61429 10009166; 170.7866 4158448; 170.94217 231689; 170.99385 4053; 171.06601 38038; 171.63988 75123; 171.65415 4490960; 171.70463 3070138; 172.2121 24537; 172.27622 26184; 172.40332 68478; 172.49937 70807; 172.535 78375; 172.54018 50080; 172.56706 5968; 172.82411 64519; 172.85411 7218; 173.06221 4972442; 173.19346 45100; 173.41838 778455; 174.02073 13703; 174.38279 6907264; 174.47822 35995; 174.51836 26459; 174.56163 4637571; 175.11554 4952200; 175.23018 17306; 175.56643 16865; 175.92897 71042; 176.10043 1502386; 176.39416 3665323; 176.48412 46395; 176.67993 12643; 176.82669 22361; 177.03776 5092; 177.10124 601; 177.16536 24360; 177.35008 14523741; 177.38437 386806; 177.69807 1539036; 177.768 20470; 177.93008 659340; 178.06103 1760946; 178.75942 3840; 178.79829 17302; 178.96732 2271334; 179.04986 176192; 179.08649 49701; 179.13748 44338; 179.49167 3454969; 179.84992 7358120; 179.86415 60001; 179.94024 43820; 180.12728 1724335; 180.22199 46915; 180.23887 4898; 180.30613 1625; 180.4189 2996988; 180.43127 399336; 180.53057 15554; 180.73045 174719; 180.84109 7814780; 180.93636 69934; 181.03625 136; 181.11217 76186; 181.59026 12592; 181.82243 58907; 181.85422 54644; 181.99868 491753; 182.04216 836188; 182.38667 21850; 182.41251 68157; 182.43422 37246; 182.49548 64725; 182.75282 11822; 182.77955 4973097; 183.23147 77127; 183.27368 47204; 183.45187 26022; 183.62347 6906; 183.78041 11701; 183.83821 21901; 184.08595 63501; 184.21348 57516; 184.22139 808555; 184.26057 48241; 184.37681 7561; 184.39872 7070; 184.54078 58703; 184.75584 26866; 184.75638 60311; 184.89933 1495099; 184.98752 26707; 185.51104 783951; 185.93479 4501485; 186.76933 28500; 186.91132 2417405; 186.96032 7105; 187.46204 20941; 187.8646 3569828; 188.47411 47164; 188.47981 20315; 189.18473 73584; 189.29988 9941528; 189.64489 93858; 189.74893 958751; 189.76233 5407925; 190.17643 3873; 190.22291 54229; 190.25337 106622; 190.47979 14908; 190.69326 10081; 190.70472 5484; 190.98283 70089; 191.33722 7996017; 191.47293 31370; 191.64152 7313971; 191.68862 1289212; 191.74608 36810; 191.79652 42277; 191.83376 5822013; 192.07704 1325483; 192.11817 1875092; 192.38194 23757; 192.77977 9363; 193.13416 6154; 193.31585 1608895; 193.59858 34044; 193.72336 459; 194.0328 1290084; 194.33985 140437; 194.46673 106289; 194.51737 7895829; 195.72136 29567; 195.72721 64653; 195.98053 1327528; 196.24432 982642; 196.5826 2814076; 196.78095 6816024; 196.87696 183570; 197.80907 46922; 198.03128 72199; 198.04696 6989; 198.05428 32332; 198.14155 23732; 198.3554 1449911; 198.48872 17868; 198.69951 61973; 198.75572 512413; 199.00653 60239; 199.27463 7099929; 199.38113 1917234; 199.7331 29636839; 199.78651 26186756; 199.8606 111564; 199.99639 7049969; 200.10113 144217; 200.1347 30218; 200.2034 1634; 200.4805 1941609; 200.84729 768728; 200.92414 28245; 201.01757 16494; 201.2662 7436; 201.64364 20186; 202.03693 17717; 202.11994 63237; 202.1429 4807; 202.15442 7473077; 202.24061 1236; 202.42382 786320; 202.4377 48317; 202.54271 35355; 202.75228 25243; 203.43436 61622; 203.54916 29772; 203.75187 7671779; 203.76234 44804; 204.68131 2995073; 204.69572 1260410; 205.00194 8744415; 205.46527 4728761; 205.47566 8853; 205.49399 908; 205.50069 24216; 205.78659 23527; 205.93161 29554917; 206.07659 31939; 206.44874 801301; 206.60954 1783276; 206.62998 7979; 206.69437 962; 206.84965 5645796; 207.07708 9973; 207.26326 11539; 207.44825 199233; 207.77116 28793729; 207.83652 2431510; 207.89527 4653; 207.91439 9913; 207.98017 6115; 208.11358 12791404; 208.12649 551340; 208.52131 28070; 208.81802 71518; 208.88001 931879; 209.05335 23175; 209.57222 1880493; 209.62656 4619; 209.63169 6678156; 209.66729 7767639; 209.74606 90254; 209.78001 1396395; 209.79893 5354664; 209.80382 79949; 210.0611 34605; 210.45542 45916; 210.5295 2045082; 210.60197 9815; 210.929 4351; 211.10156 100436; 211.19584 23651; 211.37743 9841339; 211.73629 14942; 211.97195 180643; 212.12691 72858; 212.16012 738061; 212.27094 293614; 212.43399 207935; 213.2015 1893671; 213.40582 5897415; 213.41883 35603; 213.52477 6722; 213.64858 20098; 213.81031 8260; 213.95469 30181; 214.01346 735622; 214.06057 77744; 214.24946 8797; 214.27701 9524; 214.49284 34731; 214.57766 248872; 214.64908 7354887; 214.6938 23697; 214.84046 8228; 214.87144 9031901; 215.00038 31447; 215.01549 1203; 215.23123 26869; 215.30426 25436; 215.40174 1650811; 215.50052 40275; 215.59869 12872268; 216.27512 52596; 216.39914 1322355; 216.49356 464320; 216.53712 4569008; 216.7583 882689; 216.86252 3223361; 216.90847 28937; 217.08401 62407; 217.25161 40620; 217.45003 21233; 217.67126 2220; 217.69114 1163907; 218.04452 1390571; 218.09656 22126; 218.11316 19400; 218.22045 3759; 218.33887 1560076; 218.61155 2313666; 218.61333 10458; 218.66955 9331; 219.2246 602770; 219.29566 60129; 219.68907 84536; 219.6932 1905588; 219.72555 52218; 219.81982 933; 219.99061 42163; 220.06498 718720; 220.11365 2992385; 220.17814 61088; 220.35638 1999072; 220.39316 24200; 220.67742 199108; 220.84781 18088; 220.86952 78318; 221.01746 27323; 221.28082 2775; 221.325 28267922; 221.77474 4041552; 221.78026 2836; 221.8926 1547386; 221.92784 3029881; 221.92785 23229; 221.92835 2881425; 221.95896 1188; 221.96554 1107667; 222.00035 10331; 222.14866 4087711; 222.43164 5894496; 222.78989 43194; 223.3147 169036; 223.45866 1478567; 223.63192 27728; 223.66749 187008; 223.98687 1671508; 224.16165 29070; 224.60935 55963; 224.81129 117969; 224.86204 928531; 224.86957 72350; 225.08971 40376; 225.70453 199123; 225.79313 249551; 225.8682 3124729; 225.953 28922; 226.10581 2708360; 226.52651 930430; 226.53243 77134; 226.65003 59174; 227.39877 22809; 227.43305 1134058; 228.02596 3740902; 228.08975 78623; 228.20275 2909; 228.97665 1984490; 229.54892 55366; 229.60622 990605; 229.67862 3944512; 230.04439 9685; 230.57044 15244889; 231.42625 36392; 231.72245 45391; 232.07768 22404; 232.29037 29516; 232.53738 6232; 232.65863 7337; 232.67961 7371834; 232.9761 449; 233.09514 1323056; 233.10063 71923; 233.12543 3555; 233.14765 21485; 233.24985 9767061; 233.91582 6787894; 234.23561 70492; 234.2505 1838097; 234.38293 2844437; 234.44323 66676; 234.5166 421124; 234.6166 46535; 234.65597 2637602; 234.99291 25340; 235.16338 17486; 235.47407 198699; 236.04466 1474998; 236.0681 125093; 236.08738 4806095; 236.08823 15131174; 236.17591 139145; 236.44328 41561; 236.48236 77647; 236.49005 23237; 236.66403 29462491; 236.99385 29444; 237.74087 16453; 237.87348 37188; 237.91602 422222; 238.02835 21782; 238.10788 3996441; 238.22958 1573974; 238.53643 1522258; 238.77042 2061063; 239.67735 51647; 239.93806 3479426; 240.03353 1169; 240.07638 9966148; 240.08266 1201978; 240.19694 174187; 240.35497 76109; 240.51185 26431; 240.62632 103910; 240.93251 9425; 240.97102 12684900; 241.08554 831858; 241.17509 33448; 241.22295 124115; 241.3111 31704; 241.57743 57395; 241.67249 1204412; 241.8475 23189; 241.9983 400017; 242.12045 19488; 242.21211 7646; 242.33117 51283; 242.42866 22148; 242.51335 7291; 242.6463 9985; 242.9963 44591; 243.05976 11102; 243.08688 1220242; 243.15079 1560; 243.27765 49019; 243.33862 1847755; 243.63312 55236; 243.76648 9943920; 243.91083 2928; 244.16349 11200; 244.2954 939416; 244.60568 1861527; 244.60995 58017; 244.7168 10171; 244.83148 824205; 244.86626 4310130; 244.87814 718; 244.93093 1007367; 245.1115 64301; 245.7236 14083; 245.85339 9157; 245.85612 2004669; 246.80173 22574; 246.84233 175841; 247.02672 32981; 247.20529 14311; 247.51095 776506; 247.59018 8778597; 247.72578 42164; 248.22397 29953; 248.24929 2604817; 248.36008 5903395; 248.36074 4260951; 248.45357 12883437; 248.46736 1285036; 248.47732 59207; 248.60169 454204; 248.99029 1516668; 249.23283 2983663; 249.39514 65148; 249.71055 239; 249.75281 38491; 249.79546 1591917; 249.80077 9005911; 249.81768 2521399; 250.11164 464612; 250.85153 1512729; 251.07436 4744093; 251.11064 811023; 251.83446 9409838; 251.96673 1539064; 252.02531 34074; 252.32315 27018; 252.7092 45439; 252.9899 59919; 253.12077 6417908; 253.26638 50087; 253.33206 20802; 253.59842 60137; 253.71303 46428; 253.79654 26928; 254.14461 22898; 254.45512 1703445; 254.48663 18347364; 254.50547 78857; 254.52998 62480; 254.73622 59411; 254.94486 1782944; 255.38271 714711; 255.5972 35571; 255.63512 25229665; 255.85786 72376; 256.36216 11151808; 256.4985 60348; 256.52953 35655; 256.54637 2820090; 256.54997 19140; 256.81968 24366; 257.01332 129883; 258.25444 504686; 258.28007 17532; 258.36341 46616; 258.42418 25411; 258.55386 5616; 258.66882 299808; 258.75402 46325; 259.31758 25795; 259.40869 62844; 259.48975 2744280; 259.54467 2357509; 259.65694 48991; 259.88753 9251; 259.98089 24764; 260.74885 17799; 260.89595 79330; 260.92234 43034; 261.12986 14398; 261.17806 9963; 261.45405 3518; 261.51625 2360427; 261.60227 1348841; 261.79301 515; 261.93431 4143997; 262.25547 62355; 262.28844 4396202; 262.51658 706451; 262.57594 13229962; 262.59329 422940; 262.8365 62233; 262.97492 23795; 263.09128 1111277; 263.22098 59356; 263.3996 4647; 263.7917 21751695; 263.82595 5557479; 263.97193 28401; 264.22192 3410; 264.34389 4133143; 264.46891 6621; 264.77585 314436; 264.79907 1356036; 264.84611 1807504; 265.15368 1175821; 265.48085 21279; 265.55529 34748; 265.74382 109093; 265.77295 13681; 265.87249 448232; 265.94002 67213; 265.9411 7646995; 266.04452 18571925; 266.13931 278; 266.30622 50610; 266.67844 163518; 266.74263 53700; 266.78876 37383; 267.34312 58236; 267.45447 1199867; 267.6962 18069; 267.69659 1978346; 267.83368 82187; 267.88103 6106; 268.088 73503; 268.22921 51626; 268.30746 46996; 268.4034 333761; 268.60586 20821; 269.0344 1490438; 269.12363 135197; 269.74905 15579654; 269.84925 1769521; 270.33722 1279140; 271.05938 117612; 271.24731 142727; 271.45166 18281; 271.56664 7452848; 272.06872 4533068; 272.42205 118; 272.48029 3666428; 272.52473 80821; 273.02403 26518; 273.19035 6904; 273.40755 3413; 273.77436 2980; 274.20087 492201; 274.23221 84318; 274.23519 23400; 274.26042 990623; 274.56368 1392350; 274.58579 188496; 274.88737 1032994; 274.97391 277822; 275.05197 41759; 275.0849 11980; 275.15375 55586; 275.35518 84229; 275.65532 42745; 275.69179 6594; 275.89442 18932; 275.89527 22678; 276.14307 704893; 276.28513 1813751; 276.53401 22571; 276.73814 1692894; 276.85016 65075; 276.88049 39472; 276.89492 4388455; 276.97349 26701; 277.01234 1093393; 277.34147 3348997; 277.60218 7978904; 277.81839 44912; 278.51567 5626; 278.65393 20618; 278.72492 9023; 279.19776 5843506; 279.5161 15154; 279.76455 1774; 279.78735 18017; 279.84945 47659; 280.06601 154279; 280.07324 7819374; 280.14665 16088; 280.31138 1624671; 280.71299 3823; 280.76821 75491; 280.94909 1304136; 281.03715 773024; 281.47903 284; 281.67656 2260647; 281.9165 23123411; 281.99785 22691; 282.15679 3157243; 282.17665 8996; 282.35548 678194; 282.94853 7611; 283.19874 28553; 283.45535 75418; 283.54516 149357; 283.86349 22157406; 284.33647 1406220; 284.75917 18895; 284.84777 1344147; 285.03899 46646; 285.12702 57789; 285.43705 3339183; 285.55013 5935539; 285.66833 18297130; 286.01672 1966331; 286.13473 3060666; 286.25431 850100; 286.27729 4916854; 286.41227 69325; 286.74625 1863919; 286.90126 6870; 287.14631 26578; 287.26214 34331; 287.37755 108697; 287.50944 41225; 287.63384 41401; 287.64595 45182; 287.66894 414; 287.76447 2857; 287.84433 45387; 287.9261 18633; 288.95179 125356; 289.48146 110989; 289.51292 271705; 289.58956 872126; 289.59738 15946; 289.60298 1665100; 289.84783 1407782; 289.90964 412934; 289.93448 8408; 289.9692 195061; 290.19432 908; 290.20064 1560956; 290.26392 9414776; 290.36423 2910354; 290.48012 8821963; 290.93451 3537859; 291.22896 1070; 291.37645 8733181; 291.52868 1782614; 291.76052 717050; 291.84576 9204; 291.87497 9481690; 292.05797 21270779; 292.17507 844683; 292.21057 519; 292.24321 398676; 292.25771 51641; 292.26618 11869; 292.48889 5279; 292.64526 66383; 292.6502 199282; 292.74176 838144; 292.75553 885899; 292.89188 853504; 293.00481 1929506; 293.04583 1420866; 293.13448 7160; 293.43122 19255536; 294.20848 4634; 294.58043 157717; 294.60968 13427; 295.37958 15111; 295.41202 538330; 296.12851 4255500; 296.14503 1497943; 296.18173 173446; 296.26646 8170; 296.36548 47909; 296.88959 480; 296.92759 2357249; 296.97238 4001; 297.13022 6293; 297.21208 1178155; 297.35837 838345; 297.40625 42514; 297.74372 12809; 297.81058 1552442; 298.27949 54036; 298.27973 29111; 298.66672 43904; 298.75898 1067499; 298.88735 6995; 299.05259 94425; 299.20308 7243; 299.61712 23535; 299.91682 3395565; 300.0269 38506; 300.06165 6781564; 300.31998 66912; 300.34677 1263895; 300.67292 27541216; 300.67457 141813; 300.74336 19366506; 300.97512 11212; 301.07025 32128; 301.50282 2432841; 301.52918 311; 301.62439 136837; 301.63264 28057; 301.82247 6479585; 302.14116 28689; 302.1935 23171; 302.27733 29968; 302.29261 1612417; 302.49781 3152706; 302.52859 48344; 302.80566 27007; 303.04276 1559002; 303.18852 1416911; 303.7836 9494; 304.02629 49740; 304.03049 20491; 304.38975 4161117; 304.4296 784559; 304.45491 47798; 304.56361 471415; 304.67244 7389; 304.91238 25879; 305.1185 25498373; 305.18356 2511875; 305.25824 1223607; 305.70226 61402; 305.70292 3597315; 305.83274 6638260; 306.0922 987220; 306.54834 59122; 306.6796 1542726; 306.8118 1449825; 306.88162 2393746; 307.01329 7553011; 307.53107 2467138; 307.60227 6389; 307.64483 553889; 307.95373 39068; 308.30388 1074068; 308.52666 53887; 308.5539 318953; 308.74812 2941694; 308.94926 21617; 309.09903 24348; 309.24573 169356; 309.97417 46421; 310.24423 47167; 310.27567 67580; 310.3361 7707; 310.52151 1310174; 310.97682 56242; 311.22191 187982; 311.22397 10650; 311.51915 76391; 311.93196 80773; 312.21179 33948; 312.30683 1237618; 312.36021 16690; 312.40404 8460; 312.65396 2677926; 312.6863 36122; 312.78059 368493; 312.84625 617435; 313.56581 8640; 313.81234 74120; 313.97112 2409; 313.98917 27457; 314.04238 161844; 314.10136 9600941; 314.53049 5947657; 314.614 7505; 314.92377 350754; 315.68164 2597; 315.87213 2773965; 315.90353 41200; 316.09425 953401; 316.11703 569884; 316.33646 71132; 317.019 2922315; 317.56769 53025; 317.65115 3354; 317.78555 51527; 317.9571 3528; 318.03413 4391068; 318.39316 38726; 318.42588 6781; 318.55377 73037; 318.62503 4561243; 318.66481 2212; 319.11849 830894; 319.43893 51539; 319.80444 480609; 320.05083 1161121; 320.18755 184062; 320.36915 2561560; 320.48838 65449; 320.52157 42115; 320.5504 44454; 320.67653 5052; 320.68858 52406; 320.8047 3046; 321.13301 148968; 321.20469 45958; 321.24878 6259282; 321.29028 3688909; 321.90817 925784; 321.9499 8280; 322.22303 1709854; 322.36074 13133; 322.47253 3436; 322.53079 8593; 322.59706 2071; 322.60036 23227; 322.68172 22659; 322.85264 33559; 322.89695 41779; 323.0021 7820394; 323.09771 78811; 323.11882 8490; 323.19854 549; 323.30979 26995; 323.46959 50473; 323.47971 13995; 323.76103 2175074; 324.01567 6364; 324.03959 4101; 324.24017 672128; 324.24062 63101; 324.45661 44542; 324.62117 7693; 324.86893 4351; 324.93687 597667; 325.0312 31996; 325.08852 24612; 325.48277 79845; 325.55376 1585317; 325.71998 27910; 325.80113 823156; 325.90793 7196824; 326.07514 186229; 326.47568 478845; 326.50181 1008544; 326.77213 28969407; 327.23189 6312; 327.34746 79743; 327.52047 148610; 327.67915 8816; 327.69539 79155; 327.95667 888184; 327.96248 2047792; 327.96383 6635; 328.16804 34547; 328.45972 1895529; 328.77337 328338; 328.95034 2644; 328.9855 16843262; 329.40199 29674; 329.54863 57289; 329.70802 1993044; 329.76338 148298; 330.02022 29909; 330.1439 36529; 330.35815 4280934; 330.39785 71204; 330.69041 714050; 330.88554 7139602; 331.23088 1529855; 331.48034 1632929; 332.0074 1874142; 332.15286 2748960; 332.19647 55391; 332.31995 44408; 332.47988 73427; 332.50173 623454; 332.5523 462384; 332.67838 21600; 332.7729 1342350; 333.20239 3014864; 333.55675 50899; 333.69126 13620; 333.8843 9255; 334.23957 29794; 334.5855 8450; 334.63333 52268; 335.02896 6142996; 335.05996 475602; 335.135 5718; 335.35187 71634; 335.9913 1035480; 336.08166 1009731; 336.24084 798242; 336.28528 1709595; 336.90666 89612; 337.8418 8871; 337.88291 6783; 337.92796 70443; 337.93767 6720; 337.99351 4485924; 338.03069 22937; 338.29817 8277; 338.36313 668924; 338.39672 603886; 338.68232 111100; 338.79122 417558; 338.81699 184417; 338.89631 782135; 338.97629 10821; 339.05831 28400; 339.11215 13548; 339.168 168724; 339.42089 43966; 340.02642 21152; 340.4305 9882; 340.92775 871818; 341.02318 2304902; 341.2612 378246; 341.34133 5123874; 341.37376 183901; 341.54413 109288; 342.20574 46600; 342.32062 4344; 342.44177 2021134; 342.62009 3340; 342.85018 23778; 343.03122 6040048; 343.04396 155162; 343.1867 66274; 343.24576 31352; 343.44899 184749; 343.50302 355824; 343.97964 4063; 344.36836 1909326; 344.42286 4689; 344.44938 145273; 344.49654 57113; 344.71307 1125228; 344.78746 1281608; 344.89001 1553631; 344.9111 14383816; 345.01753 14204933; 345.23469 39255; 345.28763 52104; 345.43549 1384880; 345.64569 541729; 345.903 32325; 345.99203 3483082; 346.06234 5290585; 346.20807 25067; 346.70575 78395; 346.77777 89316; 346.96021 12728; 347.0525 5423; 347.11508 32211; 347.46391 37317; 347.95507 9667; 348.01115 4711731; 348.17608 4306; 348.2222 5807652; 348.25519 27508; 348.33906 42310; 348.38227 1764; 348.51331 58657; 348.62748 6557; 348.75833 22538; 348.85763 50375; 349.03973 25697; 349.1503 3910; 349.27912 3066; 349.53485 51035; 349.5781 34864; 349.60251 662669; 349.6559 429312; 349.66849 77036; 350.18354 23808; 350.85924 72532; 350.89949 711688; 351.06564 2708761; 351.10924 11233819; 351.14936 3124760; 351.20745 3041740; 351.31669 35144; 351.5317 824; 351.76028 135168; 351.8095 74382; 351.9095 2847987; 352.068 64114; 352.63951 1927356; 352.65634 149810; 353.0239 158740; 353.19807 6860; 353.40729 32013; 353.46653 15187060; 353.67669 3685; 353.79882 4474221; 353.82338 21479528; 354.13906 51075; 354.30734 103; 354.37899 26820; 354.46645 22099976; 354.52954 17740; 354.61927 1109; 355.17361 34409; 355.28407 142171; 355.37398 23104; 355.5586 110596; 355.72807 6819544; 355.83218 2883; 355.86775 424905; 356.04262 65647; 356.06622 36772; 356.06832 3726152; 356.21544 88285; 356.30818 281379; 356.34433 5561; 356.40902 1891217; 356.41356 84293; 356.45994 54495; 356.84776 831160; 357.03867 56445; 357.11071 66297; 357.14028 163581; 357.33104 8803; 357.34412 1360840; 357.4875 14282; 357.78641 68082; 357.95332 1536885; 359.01347 835098; 359.42271 9123; 359.42602 1220658; 359.67983 6745; 359.68489 600246; 359.79558 1128040; 360.22469 8987889; 360.44025 9944; 360.75403 56336; 360.96945 8186136; 361.05468 6095; 361.08173 9766245; 361.3546 2356845; 361.37409 2376513; 362.02577 8515; 362.31121 2333760; 362.40326 205044; 362.50519 5512209; 362.51704 1451170; 362.73794 616226; 362.80873 43256; 362.83893 8081; 362.84895 1410075; 363.08067 282865; 363.51627 1978292; 363.52609 23222; 363.72414 28968508; 364.24282 26531401; 364.27192 5642; 364.43714 4332333; 364.46534 10078; 364.50745 47959; 364.52188 64338; 364.85118 61301; 364.85671 7997696; 364.88059 1920180; 364.98037 29628; 365.22914 839906; 365.23802 724771; 365.3113 24437; 365.34316 150872; 365.57275 1586969; 365.82081 6186749; 365.87915 440728; 366.21315 106335; 366.50579 6913; 366.67422 4589; 366.85333 1436740; 366.86638 3250; 367.1009 7906974; 367.65204 37956; 367.78182 3526868; 367.96371 19946515; 367.96835 33151; 368.1772 590225; 368.18066 2748; 368.41267 18987; 368.65106 74063; 369.13547 2114861; 369.15156 2478; 369.19619 7385207; 369.51391 200506; 369.86489 20055; 369.93574 4345; 370.3269 4496; 370.37422 737951; 370.48263 53553; 370.66825 2000979; 371.06646 24657; 371.43641 30478; 371.46898 875419; 371.51213 57333; 371.51768 53007; 371.79974 522281; 371.81555 4693; 371.9027 6374091; 371.9085 4995; 371.98298 325393; 372.00091 30583; 372.06696 8251714; 372.16735 26335; 372.21715 463938; 372.63706 4281; 372.74393 61428; 373.17429 20951; 373.52341 6567; 374.02367 7373; 374.25868 2042323; 374.33091 2892903; 374.47894 396718; 374.55712 67538; 374.57548 1367145; 375.00028 71529; 375.03473 25123644; 375.09694 1838285; 375.60295 42353; 376.60548 882660; 376.90856 28574; 376.97754 17401; 377.05643 187704; 377.19767 1880550; 377.35416 1177033; 377.50948 4565158; 377.59802 524023; 377.82017 9770647; 377.83305 54548; 377.92312 8177; 377.9687 4621098; 378.00179 6858750; 378.15402 64920; 378.37598 3717193; 378.59356 1332952; 378.68476 14564; 378.70363 962; 378.86049 39372; 378.92652 180302; 379.11539 79421; 379.14101 1755564; 379.3918 17839; 379.43135 4779473; 379.57118 143573; 379.87512 53625; 379.89758 18046; 379.97531 24183; 380.18526 13292; 380.20137 196045; 380.28385 56570; 380.31305 8833758; 380.66488 335346; 380.96915 1320358; 381.03977 607285; 381.04895 9499501; 381.5799 1778398; 381.61861 20651; 381.69667 198070; 381.86724 31765; 381.97894 44920; 382.3026 626609; 382.80384 5071728; 382.97385 28003; 383.19896 4014786; 383.20181 689; 383.41829 921326; 383.69635 8919; 383.92539 2301; 384.06925 8666; 384.17255 64403; 384.26912 20631090; 384.52692 1569123; 384.70651 10713; 384.8225 4551218; 384.90251 35754; 385.30875 18346; 385.61231 20476; 385.78469 55952; 385.83086 21030; 385.89681 69183; 385.92971 130979; 386.04546 72732; 386.25023 976949; 386.67389 70549; 387.0678 70488; 387.53685 47500; 387.54807 26198146; 387.78054 9443; 388.0012 2820; 388.42092 6490; 388.42479 41746; 388.65365 1441781; 388.74823 1764270; 389.52235 38489; 389.70407 70154; 389.84325 1118847; 389.94843 50535; 390.04269 3039906; 390.57321 1196; 390.97315 5993715; 391.31946 34272; 391.44728 44289; 391.55192 4648390; 391.70376 346941; 391.73567 1029054; 392.37144 8468950; 392.53848 9340; 392.57736 20160; 392.82874 1954305; 393.56249 48468; 393.62747 6404450; 393.65539 65325; 393.72408 20874943; 393.8445 3899; 393.86061 1143; 394.05201 73503; 394.16708 3259800; 394.18866 6944; 394.26793 122982; 394.36558 1723983; 394.44913 1135533; 394.6232 18880; 394.69505 30826; 394.80902 63682; 394.89903 5813; 395.12962 6391; 395.17719 45448; 395.17788 115244; 395.27937 1404464; 395.33262 77444; 395.42881 17911; 395.62776 11459; 395.62993 674024; 395.6978 43161; 395.75609 3357174; 395.80215 31697; 396.18211 1804355; 396.39226 8429460; 396.49543 9296078; 396.49939 6756804; 396.64692 6048277; 396.65326 19092077; 396.69235 4123348; 396.85806 870814; 397.16644 2436; 397.30433 482497; 397.62835 131290; 397.82791 353168; 398.19144 53256; 398.51853 29880; 398.87924 29407516; 399.32653 2925; 399.40832 3868063; 399.59529 16583; 399.68418 176832; 399.69533 4548; 399.79775 214; 399.93274 29386; 399.95351 4976; 400.28372 4972312; 400.32357 60456; 400.42895 74464; 400.54229 176258; 400.84804 33838; 400.87089 3326; 400.92341 1522045; 401.54047 7705203; 401.81134 5431; 401.94359 29621; 401.95378 2768772; 402.05354 76193; 402.12316 74133; 402.13434 380656; 402.82617 41660; 403.0068 3213636; 403.02761 850458; 403.30141 335117; 403.54042 176906; 403.94312 38115; 404.02033 49278; 404.41216 858176; 404.8304 8197; 404.98005 1496436; 405.58798 131754; 405.87633 117781; 405.96297 42924; 406.06342 73693; 406.40282 10720; 406.56912 2350; 406.58228 7843; 406.59893 123768; 406.65595 2890; 406.65791 651914; 406.70159 78523; 406.9288 3283; 406.99696 1424; 407.45803 54376; 407.4696 186439; 408.32008 49651; 408.45412 12688; 408.60352 3072; 408.73 51675; 409.14044 121871; 409.15021 14718057; 409.51614 1976000; 409.96034 1167871; 410.10336 77416; 410.20994 5924150; 410.31508 1158; 410.38878 71026; 411.34288 4235; 411.52952 739552; 411.58964 44425; 411.77708 65692; 411.80257 144734; 411.94888 196190; 412.06072 3283116; 412.06249 17097; 412.09527 3687007; 412.48807 4055; 412.52008 8897; 412.53311 4880376; 412.91078 16361; 412.92069 1779072; 412.96509 8295; 413.23978 187541; 413.55105 3307639; 413.62905 579659; 413.68408 1181349; 413.84108 1096075; 413.86627 5746165; 414.36175 9409198; 414.41058 36275; 414.62108 22730; 414.85428 8983; 415.00109 1706550; 415.04688 76967; 415.17845 1152091; 415.44961 1698629; 415.68885 1427574; 415.99026 252817; 416.1708 13522; 416.17654 15773; 416.28462 27510; 416.46708 12274251; 416.65444 37749; 417.15294 28118; 417.20741 37695; 417.52927 4417; 417.57033 8814821; 418.0134 17765285; 418.06475 52589; 418.22987 3662939; 418.25346 25195; 418.52724 657393; 418.87442 3921387; 419.18749 1516815; 419.5932 8781208; 419.77097 48099; 419.88584 38333; 420.21548 22642; 420.29955 29957; 420.84968 28334; 420.94171 1558418; 420.97377 74393; 421.04498 454133; 421.11604 71183; 421.52697 2011122; 421.78497 62276; 421.83597 7860472; 421.8898 148868; 422.07014 2656; 422.33684 7761961; 423.06143 7775; 423.26404 4938995; 423.30742 64399; 423.78772 6423810; 424.32448 3138026; 424.62643 3546599; 424.69865 434073; 424.84216 976014; 425.05067 23704; 425.09896 9484412; 425.16484 48555; 425.38365 53082; 425.5263 65205; 425.58588 959424; 425.62205 30547; 426.23432 860278; 426.3892 17633; 426.50847 77540; 426.99871 25635; 427.15821 9729; 427.17621 9229358; 427.44477 135309; 427.48218 812231; 427.49644 77142; 427.58519 1681219; 428.31105 6517; 428.61848 4861; 428.63427 3296692; 428.67071 5196; 428.95289 716822; 429.12852 67857; 429.16201 24979; 429.57222 797; 429.60572 20179; 429.79913 2229; 429.88824 120621; 430.10194 16151465; 430.10978 28176381; 430.24503 23795; 430.58376 22001; 430.80728 191267; 430.82238 454188; 431.1707 1726209; 431.36314 9444252; 431.37851 45774; 431.6888 2143836; 431.8039 73726; 431.82455 3598140; 431.88558 35702; 431.89169 5042; 432.14659 129121; 432.61514 1453446; 432.90431 22328; 433.13965 22797450; 433.17045 8336; 433.19993 12445; 433.41024 22898; 433.52642 25211; 433.66035 564020; 434.57525 9808811; 434.59503 1581600; 434.77406 7678725; 434.79106 11896; 434.90004 57561; 434.9071 50813; 434.91239 6882; 435.11491 28309; 435.39241 53084; 435.45004 1286545; 435.48351 24751; 435.79983 33750; 435.81455 13782854; 435.86044 44081; 435.984 267704; 436.00411 8979; 436.15826 4465756; 436.36915 16769087; 436.38796 23409; 436.39225 5407661; 436.49111 23477; 436.56704 4815743; 436.59716 9422150; 436.90429 79383; 437.1038 8273; 437.15966 122468; 437.30972 9934258; 437.34768 499; 437.37632 5727985; 437.49197 29916; 437.64212 8423520; 437.85871 20221; 437.88052 59860; 437.93576 1927; 438.27452 2075880; 438.49343 49773; 438.52167 1138768; 438.60404 75610; 438.70598 7631754; 438.71118 362649; 438.95215 6051508; 439.17462 37126; 439.34703 3113054; 439.40426 4687250; 439.86885 7177; 439.95269 6809695; 439.97927 8713; 440.08955 49410; 440.1653 1287589; 440.51976 72283; 440.63972 16889; 440.65165 364405; 441.34888 18286706; 441.60953 54826; 441.62552 70753; 441.80609 9415; 441.98378 76720; 442.70461 735151; 442.71759 28904; 442.90493 57075; 443.26329 73030; 443.52183 306572; 443.54218 50504; 443.81083 1462152; 443.88307 60373; 444.15001 912474; 444.25075 70597; 444.44548 45743; 444.51651 471869; 444.55305 27612; 445.07877 9652514; 445.2458 7167878; 445.33551 1388861; 445.54219 58856; 445.60985 139225; 446.04589 1384302; 446.0985 58386; 446.29156 20534; 446.3133 199579; 446.45062 20921; 446.70441 73835; 446.73726 50983; 446.85114 7552; 446.88822 5246; 447.49025 5899; 447.66716 25216; 447.75279 8789913; 448.32801 1888120; 448.38467 47295; 448.43639 528142; 448.46736 27939; 448.59018 33938; 448.82185 490215; 448.91403 54309; 448.99992 15026; 449.36931 6485088; 449.43665 6125; 449.52464 9972; 449.57343 61745; 449.91795 6413; 450.00783 7270; 450.09792 1591; 450.15744 37025; 450.25742 5730874; 450.26199 19456; 450.43745 36039; 450.58166 2395929; 450.72773 1922694; 450.77715 1301290; 450.83069 42167; 450.89908 24947; 451.47916 55105; 451.53784 223046; 451.54775 4776; 451.57402 5355; 451.686 898374; 451.83916 9283; 452.29187 60992; 452.3088 1116851; 453.22639 39432; 453.50235 14098; 453.62171 1084; 453.71858 1480303; 453.7339 37408; 454.12211 1701; 454.16688 24114; 454.38526 254842; 454.40542 41434; 454.65831 6600888; 454.76811 1462413; 454.78532 25429; 454.87267 2719; 455.4311 21438630; 455.52976 20746; 455.76966 70052; 455.80761 144622; 455.97483 36068; 456.21548 23384371; 456.58023 145257; 457.07468 7260875; 457.08699 43437; 457.23152 22119; 457.26418 40439; 457.33355 1753992; 457.51307 4202098; 457.6217 21447; 457.91616 34145; 458.02899 8817; 458.1018 26980; 458.1432 1915414; 458.28185 141827; 458.47511 24395; 458.48466 1644847; 458.74467 1333325; 458.90855 65372; 458.90876 5936310; 458.99644 5474; 459.21304 652; 459.27438 1220676; 459.41346 174735; 459.58437 2706; 459.64992 33324; 459.6874 27832470; 459.82317 7945; 459.98632 46490; 460.14636 118063; 460.29723 215983; 460.30231 112430; 460.31884 42904; 460.51937 32364; 461.30536 26472273; 461.33286 2534988; 461.57749 16097; 461.65009 1656609; 461.80524 66869; 461.97349 43626; 462.36686 46007; 462.98169 34238; 463.18192 52244; 463.24171 3694; 463.6662 24771; 463.74678 21717; 464.05238 738918; 464.11034 279875; 464.2734 684872; 464.34303 4479723; 464.55663 2721266; 464.55799 9323; 465.02619 69115; 465.15556 62392; 465.28427 61127; 465.48163 11365; 465.54718 61182; 465.61056 507031; 465.78588 703203; 465.98369 221; 466.18691 20352; 466.23549 16719; 466.40426 22933; 466.54187 774; 466.68691 7928370; 466.79268 4586774; 466.88323 6772; 467.17044 4184649; 467.1838 22317; 467.33379 1379832; 467.64745 68226; 467.81221 4411540; 468.28728 26348; 468.75522 244508; 468.83556 33568; 469.07674 346793; 469.09536 1670873; 469.20717 387725; 469.22062 66587; 469.3625 57970; 469.39776 2362366; 469.5883 25251774; 469.67461 12045; 469.81638 1029090; 470.06253 5966716; 470.40044 8933170; 470.50959 2875113; 470.51141 960552; 470.71046 71308; 470.72723 1181330; 471.06333 8865507; 471.34259 2243650; 471.61896 30846; 471.71288 7143; 471.75543 2049; 471.83994 76467; 471.84659 9415; 471.96136 3313164; 472.37376 2615226; 472.40373 983853; 472.47104 7750; 472.68004 936219; 472.79651 1525; 473.03431 4095; 473.24943 3980; 473.28276 71995; 473.36109 4890063; 473.385 116129; 473.56696 75338; 473.93165 15772; 473.97112 985281; 474.06229 281004; 474.30492 5194; 474.33794 8865; 474.61349 5457446; 474.77055 1680867; 474.99173 43906; 475.22902 2317743; 476.08238 77277; 476.20932 30027; 476.31402 47500; 476.40278 14466; 476.7054 133985; 477.07111 666498; 477.52878 1514312; 477.54528 3980527; 477.64085 2009362; 478.45811 24817; 478.88406 66142; 479.17093 38031; 479.28851 43953; 480.39775 58985; 480.69117 69625; 480.9824 9830534; 481.3015 1842597; 481.38485 47385; 481.44019 2077783; 481.46707 4100016; 481.63094 11646; 482.04505 320160; 482.17119 1497094; 482.49452 1909662; 482.7625 26793017; 482.8721 214493; 482.96266 656922; 483.04563 11727; 483.13272 585709; 483.27626 40428; 483.28577 44019; 483.68205 868; 483.71813 2707768; 483.76686 29798; 483.86926 28021; 484.21376 699183; 484.24411 7858; 484.58314 40437; 484.69237 5101; 484.97259 393367; 485.00296 26756; 485.19573 1073628; 485.23123 53646; 485.54835 4089039; 485.57833 12029; 485.69457 27278; 485.69643 14770; 485.72429 1247; 486.15126 152553; 486.17802 4797075; 486.22566 1299816; 486.25526 42315; 486.3415 1222417; 486.5098 76659; 486.74947 47190; 487.02564 5179959; 487.30477 28373697; 487.57745 696821; 487.88171 348296; 487.9231 14032472; 487.94263 1604729; 488.06758 1137; 488.40793 3694; 488.46492 25668; 488.53675 4451280; 488.87015 92150; 488.95531 2687; 489.27771 6000; 489.52045 62658; 489.63906 702940; 489.87976 66333; 489.90766 19549; 490.53208 20186569; 490.53275 14852; 490.75768 5832; 490.85591 9730376; 491.26294 63961; 491.4602 6795; 491.96739 66933; 492.11209 2498360; 492.14069 28665; 492.15777 21530; 492.22061 576274; 492.2761 84777; 492.34449 42371; 492.51467 269405; 492.51558 1889690; 492.59579 42893; 492.71326 1937066; 492.89302 26487546; 492.9249 9402198; 493.09481 4369676; 493.41628 2769209; 493.75443 2538614; 493.87185 5528; 493.87568 624733; 494.33359 72151; 494.48624 479922; 494.54317 4645389; 495.00716 199000; 495.4789 28281; 495.86313 311365; 496.11446 37488; 496.18449 7507; 496.19685 14699; 496.29861 4993; 496.41417 15140; 496.73966 1415324; 496.96123 1716920; 497.22343 387234; 497.24861 3483805; 497.552 36218; 497.57432 21292; 497.69922 4133; 497.74758 334281; 497.75416 447624; 498.05363 2284139; 498.15012 65961; 498.34073 26058; 498.68139 1837794; 499.18542 2211220; 499.23773 76355; 499.99605 29825843 diff --git a/verification/pom.xml b/verification/pom.xml new file mode 100644 index 0000000..012d6e9 --- /dev/null +++ b/verification/pom.xml @@ -0,0 +1,248 @@ + + + 4.0.0 + + org.msr.mnr.verification + verification + 0.1 + jar + + Flink Quickstart Job + http://www.myorganization.org + + + UTF-8 + 1.8.2 + 1.8 + 2.12 + ${java.version} + ${java.version} + + + + + apache.snapshots + Apache Development Snapshot Repository + https://repository.apache.org/content/repositories/snapshots/ + + false + + + true + + + + + + + + + org.apache.flink + flink-java + ${flink.version} + compile + + + org.apache.flink + flink-streaming-java_${scala.binary.version} + ${flink.version} + compile + + + + + + + + + + org.slf4j + slf4j-log4j12 + 1.7.7 + runtime + + + log4j + log4j + 1.2.17 + runtime + + + com.googlecode.json-simple + json-simple + 1.1.1 + + + javax.xml.bind + jaxb-api + 2.3.0 + + + org.antlr + antlr4-runtime + 4.7 + + + net.sourceforge.argparse4j + argparse4j + 0.8.1 + + + org.apache.flink + flink-connector-kafka_2.11 + 1.10.0 + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + ${java.version} + ${java.version} + + + + + + org.antlr + antlr4-maven-plugin + 4.7 + + false + true + + + + + antlr4 + + + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.0.0 + + + + package + + shade + + + + + org.apache.flink:force-shading + com.google.code.findbugs:jsr305 + org.slf4j:* + log4j:* + + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + org.msr.mnr.verification.Verifier + + + + + + + + + + + + + + + + add-dependencies-for-IDEA + + + + idea.version + + + + + + org.apache.flink + flink-java + ${flink.version} + compile + + + org.apache.flink + flink-streaming-java_${scala.binary.version} + ${flink.version} + compile + + + + + + diff --git a/verification/src/main/antlr4/org/msr/verification/SMTLIBv2.g4 b/verification/src/main/antlr4/org/msr/verification/SMTLIBv2.g4 new file mode 100644 index 0000000..31823e7 --- /dev/null +++ b/verification/src/main/antlr4/org/msr/verification/SMTLIBv2.g4 @@ -0,0 +1,1096 @@ +/** + * SMT-LIB (v2.6) grammar + * + * Grammar is baesd on the following specification: + * http://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.6-r2017-07-18.pdf + * + * The MIT License (MIT) + * + * Copyright (c) 2017 Julian Thome + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do + * so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + **/ + +grammar SMTLIBv2; + + +// Lexer Rules Start + + +Comment + : Semicolon ~[\r\n]* -> skip + ; + + +ParOpen + : '(' + ; + +ParClose + : ')' + ; + +Semicolon + : ';' + ; + +String + : '"' (PrintableCharNoDquote | WhiteSpaceChar)+ '"' + ; + +QuotedSymbol: + '|' (PrintableCharNoBackslash | WhiteSpaceChar)+ '|' + ; + + +// Predefined Symbols + +PS_Not + : 'not' + ; +PS_Bool + : 'Bool' + ; +PS_ContinuedExecution + : 'continued-execution' + ; +PS_Error + : 'error' + ; +PS_False + : 'false' + ; +PS_ImmediateExit + : 'immediate-exit' + ; +PS_Incomplete + : 'incomplete' + ; +PS_Logic + : 'logic' + ; +PS_Memout + : 'memout' + ; +PS_Sat + : 'sat' + ; +PS_Success + : 'success' + ; +PS_Theory + : 'theory' + ; +PS_True + : 'true' + ; +PS_Unknown + : 'unknown' + ; +PS_Unsupported + : 'unsupported' + ; +PS_Unsat + : 'unsat' + ; + +// RESERVED Words + +// Command names + + +CMD_Assert + : 'assert' + ; +CMD_CheckSat + : 'check-sat' + ; +CMD_CheckSatAssuming + : 'check-sat-assuming' + ; +CMD_DeclareConst + : 'declare-const' + ; +CMD_DeclareDatatype + : 'declare-datatype' + ; +CMD_DeclareDatatypes + : 'declare-datatypes' + ; +CMD_DeclareFun + : 'declare-fun' + ; +CMD_DeclareSort + : 'declare-sort' + ; +CMD_DefineFun + : 'define-fun' + ; +CMD_DefineFunRec + : 'define-fun-rec' + ; +CMD_DefineFunsRec + : 'define-funs-rec' + ; +CMD_DefineSort + : 'define-sort' + ; +CMD_Echo + : 'echo' + ; +CMD_Exit + : 'exit' + ; +CMD_GetAssertions + : 'get-assertions' + ; +CMD_GetAssignment + : 'get-assignment' + ; +CMD_GetInfo + : 'get-info' + ; +CMD_GetModel + : 'get-model' + ; +CMD_GetOption + : 'get-option' + ; +CMD_GetProof + : 'get-proof' + ; +CMD_GetUnsatAssumptions + : 'get-unsat-assumptions' + ; +CMD_GetUnsatCore + : 'get-unsat-core' + ; +CMD_GetValue + : 'get-value' + ; +CMD_Pop + : 'pop' + ; +CMD_Push + : 'push' + ; +CMD_Reset + : 'reset' + ; +CMD_ResetAssertions + : 'reset-assertions' + ; +CMD_SetInfo + : 'set-info' + ; +CMD_SetLogic + : 'set-logic' + ; +CMD_SetOption + : 'set-option' + ; + + + + +// General reserved words + +GRW_Exclamation + : '!' + ; +GRW_Underscore + : '_' + ; +GRW_As + : 'as' + ; +GRW_Binary + : 'BINARY' + ; +GRW_Decimal + : 'DECIMAL' + ; +GRW_Exists + : 'exists' + ; +GRW_Hexadecimal + : 'HEXADECIMAL' + ; +GRW_Forall + : 'forall' + ; +GRW_Let + : 'let' + ; +GRW_Match + : 'match' + ; +GRW_Numeral + : 'NUMERAL' + ; +GRW_Par + : 'par' + ; +GRW_String + : 'string' + ; + +Numeral + : '0' + | [1-9] Digit* + ; + +Binary: + BinaryDigit+ + ; + +HexDecimal + : '#x' HexDigit HexDigit HexDigit HexDigit + ; + +Decimal + : Numeral '.' '0'* Numeral + ; + + + +fragment HexDigit + : '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' + ; + + +Colon + : ':' + ; + +fragment Digit + : [0-9] + ; + +fragment Sym + : 'a'..'z' + | 'A' .. 'Z' + | '+' + | '=' + | '/' + | '*' + | '%' + | '?' + | '!' + | '$' + | '-' + | '_' + | '~' + | '&' + | '^' + | '<' + | '>' + | '@' + | '.' + ; + + + +fragment BinaryDigit + : [01] + ; + +fragment PrintableChar + : '\u0020' .. '\u007E' + | '\u0080' .. '\uffff' + | EscapedSpace + ; + +fragment PrintableCharNoDquote + : '\u0020' .. '\u0021' + | '\u0023' .. '\u007E' + | '\u0080' .. '\uffff' + | EscapedSpace + ; + +fragment PrintableCharNoBackslash + : '\u0020' .. '\u005B' + | '\u005D' .. '\u007B' + | '\u007D' .. '\u007E' + | '\u0080' .. '\uffff' + | EscapedSpace + ; + +fragment EscapedSpace + : '""' + ; + +fragment WhiteSpaceChar + : '\u0009' + | '\u000A' + | '\u000D' + | '\u0020' + ; + +// Lexer Rules End + +// Predefined Keywords + + + +PK_AllStatistics + : ':all-statistics' + ; +PK_AssertionStackLevels + : ':assertion-stack-levels' + ; +PK_Authors + : ':authors' + ; +PK_Category + : ':category' + ; +PK_Chainable + : ':chainable' + ; +PK_Definition + : ':definition' + ; +PK_DiagnosticOutputChannel + : ':diagnostic-output-channel' + ; +PK_ErrorBehaviour + : ':error-behavior' + ; +PK_Extension + : ':extensions' + ; +PK_Funs + : ':funs' + ; +PK_FunsDescription + : ':funs-description' + ; +PK_GlobalDeclarations + : ':global-declarations' + ; +PK_InteractiveMode + : ':interactive-mode' + ; +PK_Language + : ':language' + ; +PK_LeftAssoc + : ':left-assoc' + ; +PK_License + : ':license' + ; +PK_Named + : ':named' + ; +PK_Name + : ':name' + ; +PK_Notes + : ':notes' + ; +PK_Pattern + : ':pattern' + ; +PK_PrintSuccess + : ':print-success' + ; +PK_ProduceAssertions + : ':produce-assertions' + ; +PK_ProduceAssignments + : ':produce-assignments' + ; +PK_ProduceModels + : ':produce-models' + ; +PK_ProduceProofs + : ':produce-proofs' + ; +PK_ProduceUnsatAssumptions + : ':produce-unsat-assumptions' + ; +PK_ProduceUnsatCores + : ':produce-unsat-cores' + ; +PK_RandomSeed + : ':random-seed' + ; +PK_ReasonUnknown + : ':reason-unknown' + ; +PK_RegularOutputChannel + : ':regular-output-channel' + ; +PK_ReproducibleResourceLimit + : ':reproducible-resource-limit' + ; +PK_RightAssoc + : ':right-assoc' + ; +PK_SmtLibVersion + : ':smt-lib-version' + ; +PK_Sorts + : ':sorts' + ; +PK_SortsDescription + : ':sorts-description' + ; +PK_Source + : ':source' + ; +PK_Status + : ':status' + ; +PK_Theories + : ':theories' + ; +PK_Values + : ':values' + ; +PK_Verbosity + : ':verbosity' + ; +PK_Version + : ':version' + ; + +UndefinedSymbol: + Sym (Digit | Sym)*; + + + +// Parser Rules Start + +// Starting rule(s) + +start + : script EOF + ; + +response + : general_response EOF + ; + +generalReservedWord + : GRW_Exclamation + | GRW_Underscore + | GRW_As + | GRW_Binary + | GRW_Decimal + | GRW_Exists + | GRW_Hexadecimal + | GRW_Forall + | GRW_Let + | GRW_Match + | GRW_Numeral + | GRW_Par + | GRW_String + ; + + +simpleSymbol + : predefSymbol + | UndefinedSymbol + ; + +quotedSymbol + : QuotedSymbol + ; + +predefSymbol + : PS_Not + | PS_Bool + | PS_ContinuedExecution + | PS_Error + | PS_False + | PS_ImmediateExit + | PS_Incomplete + | PS_Logic + | PS_Memout + | PS_Sat + | PS_Success + | PS_Theory + | PS_True + | PS_Unknown + | PS_Unsupported + | PS_Unsat + ; + +predefKeyword + : PK_AllStatistics + | PK_AssertionStackLevels + | PK_Authors + | PK_Category + | PK_Chainable + | PK_Definition + | PK_DiagnosticOutputChannel + | PK_ErrorBehaviour + | PK_Extension + | PK_Funs + | PK_FunsDescription + | PK_GlobalDeclarations + | PK_InteractiveMode + | PK_Language + | PK_LeftAssoc + | PK_License + | PK_Named + | PK_Name + | PK_Notes + | PK_Pattern + | PK_PrintSuccess + | PK_ProduceAssertions + | PK_ProduceAssignments + | PK_ProduceModels + | PK_ProduceProofs + | PK_ProduceUnsatAssumptions + | PK_ProduceUnsatCores + | PK_RandomSeed + | PK_ReasonUnknown + | PK_RegularOutputChannel + | PK_ReproducibleResourceLimit + | PK_RightAssoc + | PK_SmtLibVersion + | PK_Sorts + | PK_SortsDescription + | PK_Source + | PK_Status + | PK_Theories + | PK_Values + | PK_Verbosity + | PK_Version + ; + + + +symbol + : simpleSymbol + | quotedSymbol + ; + +numeral + : Numeral + ; + +decimal + : Decimal + ; + +hexadecimal + : HexDecimal + ; + +binary + : Binary + ; + +string + : String + ; + +keyword + : predefKeyword + | Colon simpleSymbol + ; + +// S-expression + +spec_constant + : numeral + | decimal + | hexadecimal + | binary + | string + ; + + +s_expr + : spec_constant + | symbol + | keyword + | ParOpen s_expr* ParClose + ; + +// Identifiers + +index + : numeral + | symbol + ; + +identifier + : symbol + | ParOpen GRW_Underscore symbol index+ ParClose + ; + +// Attributes + +attribute_value + : spec_constant + | symbol + | ParOpen s_expr* ParClose + ; + +attribute + : keyword + | keyword attribute_value + ; + +// Sorts + +sort + : identifier + | ParOpen identifier sort+ ParClose + ; + + +// Terms and Formulas + +qual_identifer + : identifier + | ParOpen GRW_As identifier sort ParClose + ; + +var_binding + : ParOpen symbol term ParClose + ; + +sorted_var + : ParOpen symbol sort ParClose + ; + +pattern + : symbol + | ParOpen symbol symbol+ ParClose + ; + +match_case + : ParOpen pattern term ParClose + ; + +term + : spec_constant + | qual_identifer + | ParOpen qual_identifer term+ ParClose + | ParOpen GRW_Let ParOpen var_binding+ ParClose term ParClose + | ParOpen GRW_Forall ParOpen sorted_var+ ParClose term ParClose + | ParOpen GRW_Exists ParOpen sorted_var+ ParClose term ParClose + | ParOpen GRW_Match term ParOpen match_case+ ParClose ParClose + | ParOpen GRW_Exclamation term attribute+ ParClose + ; + + +// Theory Declarations + +sort_symbol_decl + : ParOpen identifier numeral attribute* ParClose; + +meta_spec_constant + : GRW_Numeral + | GRW_Decimal + | GRW_String + ; + +fun_symbol_decl + : ParOpen spec_constant sort attribute* ParClose + | ParOpen meta_spec_constant sort attribute* ParClose + | ParOpen identifier sort+ attribute* ParClose + ; + +par_fun_symbol_decl + : fun_symbol_decl + | ParOpen GRW_Par ParOpen symbol+ ParClose ParOpen identifier sort+ + attribute* ParClose ParClose + ; + +theory_attribute + : PK_Sorts ParOpen sort_symbol_decl+ ParClose + | PK_Funs ParOpen par_fun_symbol_decl+ ParClose + | PK_SortsDescription string + | PK_FunsDescription string + | PK_Definition string + | PK_Values string + | PK_Notes string + | attribute + ; + +theory_decl + : ParOpen PS_Theory symbol theory_attribute+ ParClose + ; + + +// Logic Declarations + +logic_attribue + : PK_Theories ParOpen symbol+ ParClose + | PK_Language string + | PK_Extension string + | PK_Values string + | PK_Notes string + | attribute + ; + +logic + : ParOpen PS_Logic symbol logic_attribue+ ParClose + ; + + +// Scripts + +sort_dec + : ParOpen symbol numeral ParClose + ; + +selector_dec + : ParOpen symbol sort ParClose + ; + +constructor_dec + : ParOpen symbol selector_dec* ParClose + ; + +datatype_dec + : ParOpen constructor_dec+ ParClose + | ParOpen GRW_Par ParOpen symbol+ ParClose ParOpen constructor_dec+ + ParClose ParClose + ; + +function_dec + : ParOpen symbol ParOpen sorted_var* ParClose sort ParClose + ; + +function_def + : symbol ParOpen sorted_var* ParClose sort term + ; + +prop_literal + : symbol + | ParOpen PS_Not symbol ParClose + ; + + +script + : command* + ; + +cmd_assert + : CMD_Assert + ; + +cmd_checkSat + : CMD_CheckSat + ; + +cmd_checkSatAssuming + : CMD_CheckSatAssuming + ; + +cmd_declareConst + : CMD_DeclareConst + ; + +cmd_declareDatatype + : CMD_DeclareDatatype + ; + +cmd_declareDatatypes + : CMD_DeclareDatatypes + ; + +cmd_declareFun + : CMD_DeclareFun + ; + +cmd_declareSort + : CMD_DeclareSort + ; + +cmd_defineFun + : CMD_DefineFun + ; + +cmd_defineFunRec + : CMD_DefineFunRec + ; + +cmd_defineFunsRec + : CMD_DefineFunsRec + ; + +cmd_defineSort + : CMD_DefineSort + ; + +cmd_echo + : CMD_Echo + ; + +cmd_exit + : CMD_Exit + ; + +cmd_getAssertions + : CMD_GetAssertions + ; + +cmd_getAssignment + : CMD_GetAssignment + ; + +cmd_getInfo + : CMD_GetInfo + ; + +cmd_getModel + : CMD_GetModel + ; + +cmd_getOption + : CMD_GetOption + ; + +cmd_getProof + : CMD_GetProof + ; + +cmd_getUnsatAssumptions + : CMD_GetUnsatAssumptions + ; + +cmd_getUnsatCore + : CMD_GetUnsatCore + ; + +cmd_getValue + : CMD_GetValue + ; + +cmd_pop + : CMD_Pop + ; + +cmd_push + : CMD_Push + ; + +cmd_reset + : CMD_Reset + ; + +cmd_resetAssertions + : CMD_ResetAssertions + ; + +cmd_setInfo + : CMD_SetInfo + ; + +cmd_setLogic + : CMD_SetLogic + ; + +cmd_setOption + : CMD_SetOption + ; + +command + : ParOpen cmd_assert term ParClose + | ParOpen cmd_checkSat ParClose + | ParOpen cmd_checkSatAssuming ParClose + | ParOpen cmd_declareConst symbol sort ParClose + | ParOpen cmd_declareDatatype symbol datatype_dec ParClose + // cardinalitiees for sort_dec and datatype_dec have to be n+1 + | ParOpen cmd_declareDatatypes ParOpen sort_dec+ ParClose ParOpen + datatype_dec+ ParClose ParClose + | ParOpen cmd_declareFun symbol ParOpen sort* ParClose sort ParClose + | ParOpen cmd_declareSort symbol numeral ParClose + | ParOpen cmd_defineFun function_def ParClose + | ParOpen cmd_defineFunRec function_def ParClose + // cardinalitiees for function_dec and term have to be n+1 + | ParOpen cmd_defineFunsRec ParOpen function_dec+ ParClose + ParOpen term+ ParClose ParClose + | ParOpen cmd_defineSort symbol ParOpen symbol* ParClose sort ParClose + | ParOpen cmd_echo string ParClose + | ParOpen cmd_exit ParClose + | ParOpen cmd_getAssertions ParClose + | ParOpen cmd_getAssignment ParClose + | ParOpen cmd_getInfo info_flag ParClose + | ParOpen cmd_getModel ParClose + | ParOpen cmd_getOption keyword ParClose + | ParOpen cmd_getProof ParClose + | ParOpen cmd_getUnsatAssumptions ParClose + | ParOpen cmd_getUnsatCore ParClose + | ParOpen cmd_getValue ParOpen term+ ParClose ParClose + | ParOpen cmd_pop numeral ParClose + | ParOpen cmd_push numeral ParClose + | ParOpen cmd_reset ParClose + | ParOpen cmd_resetAssertions ParClose + | ParOpen cmd_setInfo attribute ParClose + | ParOpen cmd_setLogic symbol ParClose + | ParOpen cmd_setOption option ParClose + ; + + +b_value + : PS_True + | PS_False + ; + +option + : PK_DiagnosticOutputChannel string + | PK_GlobalDeclarations b_value + | PK_InteractiveMode b_value + | PK_PrintSuccess b_value + | PK_ProduceAssertions b_value + | PK_ProduceAssignments b_value + | PK_ProduceModels b_value + | PK_ProduceProofs b_value + | PK_ProduceUnsatAssumptions b_value + | PK_ProduceUnsatCores b_value + | PK_RandomSeed numeral + | PK_RegularOutputChannel string + | PK_ReproducibleResourceLimit numeral + | PK_Verbosity numeral + | attribute + ; + +info_flag + : PK_AllStatistics + | PK_AssertionStackLevels + | PK_Authors + | PK_ErrorBehaviour + | PK_Name + | PK_ReasonUnknown + | PK_Version + | keyword + ; + +// responses + +error_behaviour + : PS_ImmediateExit + | PS_ContinuedExecution + ; + +reason_unknown + : PS_Memout + | PS_Incomplete + | s_expr + ; + +model_response + : ParOpen CMD_DefineFun function_def ParClose + | ParOpen CMD_DefineFunRec function_def ParClose + // cardinalitiees for function_dec and term have to be n+1 + | ParOpen CMD_DefineFunsRec ParOpen function_dec+ ParClose ParOpen term+ + ParClose ParClose + ; + +info_response + : PK_AssertionStackLevels numeral + | PK_Authors string + | PK_ErrorBehaviour error_behaviour + | PK_Name string + | PK_ReasonUnknown reason_unknown + | PK_Version string + | attribute + ; + +valuation_pair + : ParOpen term term ParClose + ; + +t_valuation_pair + : ParOpen symbol b_value ParClose + ; + +check_sat_response + : PS_Sat + | PS_Unsat + | PS_Unknown + ; + +echo_response + : string + ; + +get_assertions_response + : ParOpen term* ParClose + ; + +get_assignment_response + : ParOpen t_valuation_pair* ParClose + ; + +get_info_response + : ParOpen info_response+ ParClose + ; + +get_model_response + : ParOpen model_response* ParClose + ; + +get_option_response + : attribute_value + ; + +get_proof_response + : s_expr + ; + +get_unsat_assump_response + : ParOpen symbol* ParClose + ; + +get_unsat_core_response + : ParOpen symbol* ParClose + ; + +get_value_response + : ParOpen valuation_pair+ ParClose + ; + +specific_success_response + : check_sat_response + | echo_response + | get_assertions_response + | get_assignment_response + | get_info_response + | get_model_response + | get_option_response + | get_proof_response + | get_unsat_assump_response + | get_unsat_core_response + | get_value_response + ; + +general_response + : PS_Success + | specific_success_response + | PS_Unsupported + | ParOpen PS_Error string ParClose + ; + + +// Parser Rules End + +WS : [ \t\r\n]+ -> skip + ; \ No newline at end of file diff --git a/verification/src/main/antlr4/org/msr/verification/SimpleSMTLIBLexer.g4 b/verification/src/main/antlr4/org/msr/verification/SimpleSMTLIBLexer.g4 new file mode 100644 index 0000000..b9e5b7e --- /dev/null +++ b/verification/src/main/antlr4/org/msr/verification/SimpleSMTLIBLexer.g4 @@ -0,0 +1,134 @@ +/** + * SMT-LIB (v2.6) grammar + * + * Grammar is baesd on the following specification: + * http://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.6-r2017-07-18.pdf + * + * The MIT License (MIT) + * + * Copyright (c) 2017 Julian Thome + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do + * so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + **/ + +lexer grammar SimpleSMTLIBLexer; + + + +ParOpen : '('; +ParClose : ')'; + +PS_And : 'and'; +PS_Or : 'or'; +PS_Not : 'not'; +PS_Eq : '='; +PS_Lt : '<'; +PS_Le : '<='; +PS_Gt : '>'; +PS_Ge : '>='; +PS_Add : '+'; +PS_Sub : '-'; +PS_Div : '/'; +PS_Mul : '*'; + +PIPE : '|'; +DOUBLE_QUOTE : '"' ; + + +PS_False + : 'false' + ; +PS_True + : 'true' + ; + +GRW_Binary + : 'BINARY' + ; +GRW_Decimal + : 'DECIMAL' + ; +GRW_Exists + : 'exists' + ; +GRW_Hexadecimal + : 'HEXADECIMAL' + ; +GRW_Forall + : 'forall' + ; +GRW_Let + : 'let' + ; +GRW_Match + : 'match' + ; +GRW_Numeral + : 'NUMERAL' + ; +GRW_Par + : 'par' + ; +GRW_String + : 'string' + ; +GRW_Ite + : 'ite' + ; + +Numeral + : '0' + | [1-9] Digit* + ; + +Binary: + BinaryDigit+ + ; + +HexDecimal + : '#x' HexDigit HexDigit HexDigit HexDigit + ; + +Decimal + : Numeral '.' '0'* Numeral + ; + +fragment HexDigit + : [0-9a-fA-F] + ; + +fragment Digit + : [0-9] + ; + +fragment Sym + : [a-zA-Z_] + | '!' + | '$' + ; + +fragment BinaryDigit + : [01] + ; + +UndefinedSymbol: + (Digit | Sym | '.')+; + + +WHITESPACE: [ \t\f\r\n] -> channel(HIDDEN); // Ignore whitespaces. \ No newline at end of file diff --git a/verification/src/main/antlr4/org/msr/verification/SimpleSMTLIBParser.g4 b/verification/src/main/antlr4/org/msr/verification/SimpleSMTLIBParser.g4 new file mode 100644 index 0000000..7efb27a --- /dev/null +++ b/verification/src/main/antlr4/org/msr/verification/SimpleSMTLIBParser.g4 @@ -0,0 +1,92 @@ +/** + * SMT-LIB (v2.6) grammar + * + * Grammar is baesd on the following specification: + * http://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.6-r2017-07-18.pdf + * + * The MIT License (MIT) + * + * Copyright (c) 2017 Julian Thome + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do + * so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + **/ + +parser grammar SimpleSMTLIBParser; + +options { + tokenVocab = SimpleSMTLIBLexer; +} + +startBool + : boolExpression EOF + ; + +startArith + : arithExpression EOF + ; + +boolExpression + : ParOpen boolOp boolExpression+ ParClose + | ParOpen compOp arithExpression arithExpression ParClose + | ParOpen GRW_Let ParOpen varBinding+ ParClose boolExpression ParClose + | boundVar + | PS_True + | PS_False + ; + +boolOp + : PS_And + | PS_Or + | PS_Not + ; + +arithExpression + : ParOpen GRW_Ite boolExpression arithExpression arithExpression ParClose + | ParOpen arithOp arithExpression+ ParClose + | terminal + ; + +compOp + : PS_Eq + | PS_Lt + | PS_Le + | PS_Gt + | PS_Ge + ; + +arithOp + : PS_Add + | PS_Sub + | PS_Mul + | PS_Div + ; + +varBinding + : ParOpen UndefinedSymbol boolExpression ParClose + ; + +boundVar + : UndefinedSymbol + ; + +terminal + : UndefinedSymbol + | PIPE DOUBLE_QUOTE UndefinedSymbol DOUBLE_QUOTE PIPE + | Numeral + ; diff --git a/verification/src/main/java/org/msr/mnr/verification/GlobalSFAProcessor.java b/verification/src/main/java/org/msr/mnr/verification/GlobalSFAProcessor.java new file mode 100644 index 0000000..6cf6958 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/GlobalSFAProcessor.java @@ -0,0 +1,220 @@ +package org.msr.mnr.verification; + +import java.util.*; + +import org.apache.flink.api.common.state.ValueState; +import org.apache.flink.api.common.state.ValueStateDescriptor; +import org.apache.flink.api.common.typeinfo.TypeHint; +import org.apache.flink.api.common.typeinfo.TypeInformation; +import org.apache.flink.configuration.Configuration; +import org.apache.flink.streaming.api.functions.KeyedProcessFunction; +import org.apache.flink.util.Collector; +import org.msr.mnr.verification.dsfa.ConstraintTreeNode; +import org.msr.mnr.verification.dsfa.DSFA; +import org.msr.mnr.verification.expressions.BoolExpr; +import org.msr.mnr.verification.expressions.ArithExpr; +import org.msr.mnr.verification.expressions.Expr; +import org.msr.mnr.verification.utils.*; + +// Types: Key, Stream Type, Output Type +public class GlobalSFAProcessor extends KeyedProcessFunction { + private static final long serialVersionUID = 1L; + private static final int MAX_RTT = 0; // TODO: update this + + private BoolExpr filterExpr; + private HashMap mapFunction; + + private DSFA dsfa; + private transient ValueState> constraintTreeListState; + private transient ValueState currentStateState; + private transient ValueState lastTimeState; + + private transient ArrayList constraintBuffer; + + // Reordering support + private transient ValueState> pendingPacketState; + private transient ValueState maxTimeState; + + + /** + * Constructs a StateMachineProcessor from a JSON config. + * + * @param config The JSON config that specifies events and transitions + * @param filter An optional object that implements the FILTER command. + * Can be null if the state machine does not filter events. + * @param name The .sm filename. For debugging and notifications. + */ + public GlobalSFAProcessor(DSFA dsfa, BoolExpr filterExpr, HashMap mapFunction) { + this.dsfa = dsfa; + // System.out.println(filterExpr); + this.filterExpr = filterExpr; + this.mapFunction = mapFunction; + } + + /** + * Called on every packet (by Flink). Filters, reorders, and advances the state machine. + * + * @param p Input packet + */ + @Override + public void processElement(Packet p, Context ctx, Collector out) + throws Exception { + // Apply filter. We need to do this inside this KeyedProcessFunction because + // Filters remove keying. To guarantee packets are together, we apply the filter + // manually. + + if (filterExpr != null && !filterExpr.evaluate(p)) { + // System.out.println("filter blocks!!!!!!!!"); + return; + } + // System.out.println(p); + // System.out.println("filter allows"); + + for (HashMap.Entry entry : mapFunction.entrySet()) { + String key = entry.getKey(); + int[] value; + if (entry.getValue() instanceof Expr) { + value = (int[]) ((Expr) entry.getValue()).evaluate(p); + } else { + value = (int[]) entry.getValue(); + } + // System.out.println(key); + // System.out.println(value); + p.set(key, value); + } + + // System.out.println("!!!!!!!!!!filter allows!!!!!!"); + // Reorder packets. We need to do this here, after the KeyBy function, as keying + // causes shuffling, which reorders packets. + PriorityQueue pendingPackets = pendingPacketState.value(); + if (pendingPackets == null) { + pendingPackets = new PriorityQueue(); + } + pendingPackets.add(p); + Long maxTime = maxTimeState.value(); + if (maxTime == null) { + maxTime = p.getTime(); + maxTimeState.update(maxTime); + } else if (p.getTime() > maxTime) { + maxTime = p.getTime(); + maxTimeState.update(maxTime); + } + + Long lastTime = lastTimeState.value(); + if (lastTime == null) { + lastTime = Long.valueOf(0); + } + + if (dsfa.hasVariables()) { + // System.out.println("in variables"); + // If this is a new run, make a fresh tree + List constraintTreeList = constraintTreeListState.value(); + if (constraintTreeList == null) { + constraintTreeList = new ArrayList(); + constraintTreeList.add(ConstraintTreeNode.makeFreshTree(dsfa.startState, + dsfa.locationList, dsfa.variableList)); + } else if (constraintTreeList.size() == 0) { + constraintTreeList.add(ConstraintTreeNode.makeFreshTree(dsfa.startState, + dsfa.locationList, dsfa.variableList)); + } + assert (!constraintTreeList.isEmpty()); + + if (constraintBuffer == null) { + constraintBuffer = new ArrayList(); + for (int i = 0; i < dsfa.locationList.size() + dsfa.variableList.size(); ++i) { + constraintBuffer.add(null); + } + } + + // Actually advance the state machine to maxTime - MAX_RTT + // Process packets in order from there + Packet next = pendingPackets.peek(); + + while (next != null && next.getTime() <= maxTime - MAX_RTT) { + processElementTree(next, ctx, out, constraintTreeList); + + lastTime = p.getTime(); + pendingPackets.poll(); + next = pendingPackets.peek(); + } + + // Update state after getting through the batch + constraintTreeListState.update(constraintTreeList); + } else { + // System.out.println("in single"); + Integer currentState = currentStateState.value(); + // System.out.print("currentState in processElement: "); + // System.out.println(currentState); + if (currentState == null) { + currentState = dsfa.startState; + } + + // Actually advance the state machine to maxTime - MAX_RTT + // Process packets in order from there + Packet next = pendingPackets.peek(); + while (next != null && next.getTime() <= maxTime - MAX_RTT) { + currentState = processElementSingle(next, ctx, out, currentState); + + lastTime = p.getTime(); + pendingPackets.poll(); + next = pendingPackets.peek(); + } + + + // Update state after getting through the batch + currentStateState.update(currentState); + // System.out.print("updated state to: "); + // System.out.println(currentState); + } + + pendingPacketState.update(pendingPackets); + lastTimeState.update(lastTime); + } + + private Integer processElementSingle(Packet p, Context ctx, Collector out, + Integer currentState) throws Exception { + currentState = dsfa.advance(p, currentState); + + if (dsfa.checkInFinal(currentState)) { + // System.out.print("DSFA name Single: "); + // System.out.println(dsfa.name); + out.collect(new Notification("AlertSingle in invariant: " + dsfa.name + " " + p.toString(), 0, p)); + } + + return currentState; + } + + private void processElementTree(Packet p, Context ctx, Collector out, + List constraintTreeList) throws Exception { + boolean inFinal = dsfa.advanceConstraintTreeAndCheckFinal(p, constraintBuffer, + constraintTreeList); + if (inFinal) { + // System.out.print("DSFA name Tree: "); + // System.out.println(dsfa.name); + out.collect(new Notification("AlertTree in invariant: " + dsfa.name + " " + p.toString(), 0, p)); + } + } + + @Override + public void open(Configuration config) throws Exception { + ValueStateDescriptor> constraintTreeDescriptor = new ValueStateDescriptor<>( + "constraintTree", TypeInformation.of(new TypeHint>() {})); + constraintTreeListState = getRuntimeContext().getState(constraintTreeDescriptor); + + ValueStateDescriptor currentStateDescriptor = new ValueStateDescriptor<>( + "currentState", Integer.class); + currentStateState = getRuntimeContext().getState(currentStateDescriptor); + + ValueStateDescriptor lastTimeDescriptor = new ValueStateDescriptor<>( + "lastTime", Long.class); + lastTimeState = getRuntimeContext().getState(lastTimeDescriptor); + + ValueStateDescriptor> queueDescriptor = new ValueStateDescriptor<>( + "pendingPackets", new PriorityQueueSerializer()); + pendingPacketState = getRuntimeContext().getState(queueDescriptor); + + ValueStateDescriptor timeDescriptor = new ValueStateDescriptor<>("maxTime", + Long.class); + maxTimeState = getRuntimeContext().getState(timeDescriptor); + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/LocalSFAProcessor.java b/verification/src/main/java/org/msr/mnr/verification/LocalSFAProcessor.java new file mode 100644 index 0000000..57c77ae --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/LocalSFAProcessor.java @@ -0,0 +1,195 @@ +package org.msr.mnr.verification; + +import java.util.*; + +import org.apache.commons.lang3.tuple.Pair; +import org.apache.flink.api.common.state.MapState; +import org.apache.flink.api.common.state.MapStateDescriptor; +import org.apache.flink.api.common.state.ValueState; +import org.apache.flink.api.common.state.ValueStateDescriptor; +import org.apache.flink.api.common.typeinfo.TypeHint; +import org.apache.flink.api.common.typeinfo.TypeInformation; +import org.apache.flink.configuration.Configuration; +import org.apache.flink.streaming.api.functions.KeyedProcessFunction; +import org.apache.flink.util.Collector; +import org.msr.mnr.verification.dsfa.ConstraintTreeNode; +import org.msr.mnr.verification.dsfa.DSFA; +import org.msr.mnr.verification.expressions.BoolExpr; +import org.msr.mnr.verification.utils.*; + +// Types: Key, Stream Type, Output Type +public class LocalSFAProcessor extends KeyedProcessFunction { + private static final long serialVersionUID = 1L; + private static final int MAX_RTT = 0; // TODO: update this + + private BoolExpr filterExpr; + private BoolExpr negatedLocExpr; + + private ArrayList dsfas; + private transient MapState> constraintTreeListMap; + private transient MapState currentStateMap; + private transient ValueState lastTimeState; + + private transient ArrayList constraintBuffer; + + // Reordering support + private transient ValueState> pendingPacketState; + private transient ValueState maxTimeState; + + /** + * Constructs a StateMachineProcessor from a JSON config. + * + * @param config The JSON config that specifies events and transitions + * @param filter An optional object that implements the FILTER command. Can be + * null if the state machine does not filter events. + * @param name The .sm filename. For debugging and notifications. + */ + public LocalSFAProcessor(ArrayList dsfas, BoolExpr filterExpr, BoolExpr negatedLocExpr) { + this.dsfas = dsfas; + this.filterExpr = filterExpr; + this.negatedLocExpr = negatedLocExpr; + } + + /** + * Called on every packet (by Flink). Filters, reorders, and advances the state + * machine. + * + * @param p Input packet + */ + @Override + public void processElement(Packet p, Context ctx, Collector out) + throws Exception { + // Apply filter. We need to do this inside this KeyedProcessFunction because + // Filters remove keying. To guarantee packets are together, we apply the filter + // manually. + if (filterExpr != null && !filterExpr.evaluate(p)) { + System.out.println("filtered,1"); + return; + } + + // Reorder packets. We need to do this here, after the KeyBy function, as keying + // causes shuffling, which reorders packets. + PriorityQueue pendingPackets = pendingPacketState.value(); + if (pendingPackets == null) { + pendingPackets = new PriorityQueue(); + } + pendingPackets.add(p); + Long maxTime = maxTimeState.value(); + if (maxTime == null) { + maxTime = p.getTime(); + maxTimeState.update(maxTime); + } else if (p.getTime() > maxTime) { + maxTime = p.getTime(); + maxTimeState.update(maxTime); + } + Long lastTime = lastTimeState.value(); + if (lastTime == null) { + lastTime = Long.valueOf(0); + } + + // Actually advance the state machine to maxTime - MAX_RTT + // Process packets in order from there + Packet next = pendingPackets.peek(); + + // System.out.print("Tree list size in processElementTree: "); + // System.out.println(constraintTreeList.size()); + while (next != null && next.getTime() <= maxTime - MAX_RTT) { + boolean suppressible = true; + if (dsfas.size() == 0) { + suppressible = false; + } + for (int dsfaNum = 0; dsfaNum < dsfas.size(); dsfaNum++) { + DSFA dsfa = dsfas.get(dsfaNum); + if (dsfa.hasVariables()) { + suppressible &= processElementTree(next, ctx, out, dsfaNum); + } else { + suppressible &= processElementSingle(next, ctx, out, dsfaNum, lastTime); + } + } + + suppressible &= negatedLocExpr.evaluate(next); + if (!suppressible) { + out.collect(new Notification("Forwarding to Global", 0, p)); + } else{ + System.out.println("suppressed,1"); + } + + lastTime = p.getTime(); + pendingPackets.poll(); + next = pendingPackets.peek(); + } + + pendingPacketState.update(pendingPackets); + lastTimeState.update(lastTime); + } + + private boolean processElementSingle(Packet p, Context ctx, Collector out, + Integer dsfaNum, Long lastTime) throws Exception { + DSFA dsfa = dsfas.get(dsfaNum); + Integer currentState = currentStateMap.get(dsfaNum); + if (currentState == null) { + currentState = dsfa.startState; + } + + Pair res = dsfa.advanceAndCheckSuppress(p, currentState); + + currentStateMap.put(dsfaNum, res.getLeft()); + + return res.getRight(); + } + + private boolean processElementTree(Packet p, Context ctx, Collector out, + Integer dsfaNum) throws Exception { + DSFA dsfa = dsfas.get(dsfaNum); + + // If this is a new run, make a fresh tree + List constraintTreeList = constraintTreeListMap.get(dsfaNum); + if (constraintTreeList == null) { + constraintTreeList = new ArrayList(); + constraintTreeList.add(ConstraintTreeNode.makeFreshTree(dsfa.startState, + dsfa.locationList, dsfa.variableList)); + } + assert (!constraintTreeList.isEmpty()); + + // Note: don't need to check dsfa.locationList.size() as we are in a local SFA + if (constraintBuffer == null) { + constraintBuffer = new ArrayList(); + for (int i = 0; i < dsfa.variableList.size(); ++i) { + constraintBuffer.add(null); + } + } else if (constraintBuffer.size() < dsfa.variableList.size()) { + for (int i = constraintBuffer.size(); i < dsfa.variableList.size(); ++i) { + constraintBuffer.add(null); + } + } + + boolean suppressible = dsfa.advanceConstraintTreeAndCheckSuppress(p, constraintBuffer, + constraintTreeList); + + constraintTreeListMap.put(dsfaNum, constraintTreeList); + return suppressible; + } + + @Override + public void open(Configuration config) throws Exception { + MapStateDescriptor> constraintTreeDescriptor = new MapStateDescriptor>( + "constraintTreeLists", TypeInformation.of(Integer.class), + TypeInformation.of(new TypeHint>() {})); + constraintTreeListMap = getRuntimeContext().getMapState(constraintTreeDescriptor); + + MapStateDescriptor currentStatesDescriptor = new MapStateDescriptor( + "currentStates", Integer.class, Integer.class); + currentStateMap = getRuntimeContext().getMapState(currentStatesDescriptor); + + ValueStateDescriptor lastTimeDescriptor = new ValueStateDescriptor<>("lastTime", Long.class); + lastTimeState = getRuntimeContext().getState(lastTimeDescriptor); + + ValueStateDescriptor> queueDescriptor = new ValueStateDescriptor<>( + "pendingPackets", new PriorityQueueSerializer()); + pendingPacketState = getRuntimeContext().getState(queueDescriptor); + + ValueStateDescriptor timeDescriptor = new ValueStateDescriptor<>("maxTime", + Long.class); + maxTimeState = getRuntimeContext().getState(timeDescriptor); + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/Notification.java b/verification/src/main/java/org/msr/mnr/verification/Notification.java new file mode 100644 index 0000000..ce72216 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/Notification.java @@ -0,0 +1,21 @@ +package org.msr.mnr.verification; + +import org.msr.mnr.verification.utils.Packet; + +public class Notification { + String name; + int finalState; + Packet p; + long latency; + + public Notification(String name, int finalState, Packet p) { + this.name = name; + this.finalState = finalState; + this.p = p; + this.latency = System.currentTimeMillis() - p.getTime(); + } + + public String toString() { + return name + ": " + finalState + ", latency: " + Long.toString(this.latency); + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/NotificationSink.java b/verification/src/main/java/org/msr/mnr/verification/NotificationSink.java new file mode 100644 index 0000000..8ae4b36 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/NotificationSink.java @@ -0,0 +1,12 @@ +package org.msr.mnr.verification; + +import org.apache.flink.streaming.api.functions.sink.SinkFunction; + +public class NotificationSink implements SinkFunction { + private static final long serialVersionUID = 1L; + + @Override + public void invoke(Notification n) { + + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/PacketSocketSource.java b/verification/src/main/java/org/msr/mnr/verification/PacketSocketSource.java new file mode 100644 index 0000000..bdcbc32 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/PacketSocketSource.java @@ -0,0 +1,55 @@ +package org.msr.mnr.verification; + +import java.net.DatagramPacket; +import java.net.DatagramSocket; + +import org.apache.flink.streaming.api.functions.source.SourceFunction; +import org.msr.mnr.verification.utils.Packet; +import org.msr.mnr.verification.utils.PacketParser; + +/** + * A source function that reads strings from a socket. The source will read bytes from the socket + * stream and convert them to characters, each byte individually. When the delimiter character is + * received, the function will output the current string, and begin a new string. + * + *

The function strips trailing carriage return characters (\r) when the delimiter is the + * newline character (\n). + * + *

The function can be set to reconnect to the server socket in case that the stream is closed on + * the server side. + */ +public class PacketSocketSource implements SourceFunction { + private static final long serialVersionUID = 1L; + + private final PacketParser parser; + private final int port; + private volatile boolean isRunning = true; + + private transient DatagramSocket socket; + + public PacketSocketSource(String formatFile, int port) { + this.port = port; + parser = new PacketParser(formatFile); + } + + @Override + public void run(SourceContext ctx) throws Exception { + socket = new DatagramSocket(port); + byte[] receive = new byte[65535]; + DatagramPacket dp = new DatagramPacket(receive, receive.length); + + while (isRunning) { + Packet p = new Packet(); + + socket.receive(dp); + parser.parsePacket(dp, p); + ctx.collect(p); + } + } + + @Override + public void cancel() { + isRunning = false; + socket.close(); + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/PacketStringSource.java b/verification/src/main/java/org/msr/mnr/verification/PacketStringSource.java new file mode 100644 index 0000000..a64dd02 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/PacketStringSource.java @@ -0,0 +1,25 @@ +package org.msr.mnr.verification; + +import org.apache.flink.api.common.functions.FlatMapFunction; +import org.apache.flink.util.Collector; +import org.msr.mnr.verification.utils.Packet; +import org.msr.mnr.verification.utils.PacketParser; + +class PacketStringSource implements FlatMapFunction { + private static final long serialVersionUID = 1L; + private PacketParser parser; + + private static int time = 0; + + PacketStringSource(String formatFile) { + parser = new PacketParser(formatFile); + } + + @Override + public void flatMap(String data, Collector out) { + Packet p = new Packet(); + //p.setTime(time++); + parser.parsePacket(data, p); + out.collect(p); + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/Verifier.java b/verification/src/main/java/org/msr/mnr/verification/Verifier.java new file mode 100644 index 0000000..2507aba --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/Verifier.java @@ -0,0 +1,344 @@ +package org.msr.mnr.verification; + +import org.apache.flink.core.fs.FileSystem.WriteMode; +import org.apache.flink.streaming.api.datastream.DataStream; +import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; +import org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer; +import org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer; +import org.apache.flink.api.common.functions.MapFunction; +import org.apache.flink.streaming.util.serialization.SimpleStringSchema; + +import org.msr.mnr.verification.dsfa.GlobalSFAParser; +import org.msr.mnr.verification.dsfa.LocalSFAParser; +import org.msr.mnr.verification.utils.Packet; +import org.msr.mnr.verification.utils.PacketDeSerializer; +import org.msr.mnr.verification.utils.MyPartitioner; +import org.msr.mnr.verification.utils.StringKeySelector; +import org.msr.mnr.verification.parser.ParserFactory; + +import java.io.File; +import java.io.FileReader; +import java.io.FilenameFilter; +import java.io.IOException; +import java.security.InvalidParameterException; + +import net.sourceforge.argparse4j.ArgumentParsers; +import net.sourceforge.argparse4j.inf.ArgumentParser; +import net.sourceforge.argparse4j.inf.Namespace; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map.Entry; +import java.util.Properties; +import java.util.Date; + +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.JSONArray; + +public class Verifier { + private enum Mode { + LOCAL_FILE, LOCAL_SOCKET, LOCAL_FOLDER, GLOBAL_KAFKA, STANDALONE_FILE, STANDALONE_FOLDER, UNDEFINED + } + + public static void main(String[] args) throws Exception { + final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); + ArgumentParser argparser = ArgumentParsers.newFor("GlobalVerifier").build() + .defaultHelp(true).description("Create the verifier"); + argparser.addArgument("--config_dir").setDefault("out/").help("Config directory"); + argparser.addArgument("--out_path").setDefault("../out/").help("Output file"); + argparser.addArgument("--mode").setDefault("STANDALONE_FILE") + .help("Mode: LOCAL_FILE, LOCAL_SOCKET, LOCAL_FOLDER, GLOBAL_KAFKA, STANDALONE_FILE, STANDALONE_FOLDER"); + argparser.addArgument("--input_file").setDefault("../notebook/38-38.0.001000.csv") + .help("Input file needed for LOCAL or STANDALONE"); + argparser.addArgument("--input_folder").setDefault("out/globalInput/") + .help("Input folder needed for global"); + argparser.addArgument("--broker_address").setDefault("localhost:9092").help("IP:Port,... for kafka broker"); + argparser.addArgument("--local_socket_ip").setDefault("localhost").help("IP for reading from a local socket"); + argparser.addArgument("--local_socket_port").setDefault("10000").help("Port for reading from a local socket"); + argparser.addArgument("--parser").setDefault("firewall").help("Select parser"); + argparser.addArgument("--channel_per_invariant").setDefault("10").help("Channel Per Invariant"); + Namespace ns = argparser.parseArgs(args); + + + // Get all execution parameters + String configDir = ns.getString("config_dir"); + // String formatFile = configDir + "packetformat.json"; + String outputPath = "file://" + System.getProperty("user.dir") + "/" + + ns.getString("out_path"); + + String parser = ns.getString("parser"); + + + Mode mode = Mode.UNDEFINED; + switch (ns.getString("mode")) { + case "LOCAL_FILE": + mode = Mode.LOCAL_FILE; + break; + case "LOCAL_FOLDER": + mode = Mode.LOCAL_SOCKET; + break; + case "LOCAL_SOCKET": + mode = Mode.LOCAL_FOLDER; + break; + case "GLOBAL_KAFKA": + mode = Mode.GLOBAL_KAFKA; + break; + case "STANDALONE_FOLDER": + mode = Mode.STANDALONE_FOLDER; + break; + case "STANDALONE_FILE": + mode = Mode.STANDALONE_FILE; + break; + default: + throw new RuntimeException("Unknown Mode and Data Source: " + mode); + } + + System.out.println("config directory: " + configDir); + // System.out.println("format file: " + formatFile); + System.out.println("output folder path: " + outputPath); + System.out.println("mode: " + mode); + System.out.println("parser: " + parser); + + String inputPath; + if (mode == Mode.LOCAL_FILE || mode == Mode.STANDALONE_FILE) { + inputPath = "file://" + System.getProperty("user.dir") + "/" + + ns.getString("input_file"); + System.out.println("input file path: " + inputPath); + } else if (mode == Mode.LOCAL_FOLDER || mode == Mode.STANDALONE_FOLDER) { + inputPath = ns.getString("input_folder"); + System.out.println("input folder path: " + inputPath); + } else if (mode == Mode.LOCAL_SOCKET) { + inputPath = ns.getString("local_socket_ip") + ":" + ns.getString("local_socket_port"); + System.out.println("Reading data from a socket: " + inputPath); + } else if (mode == Mode.GLOBAL_KAFKA) { + inputPath = ns.getString("broker_address"); + System.out.println("Reading data from kafka: " + inputPath); + } else { + throw new RuntimeException("Unknown Mode and Data Source: " + mode); + } + + // Grab all state machine files + File[] smFolder = new File(configDir).listFiles(new FilenameFilter() { + @Override + public boolean accept(File dir, String name) { + return name.matches(".*\\.sm\\.([0-9]+|g)"); + } + }); + + System.out.println("Files in smFolder: " + Integer.toString(smFolder.length)); + HashMap> smFiles = new HashMap>(); + + String brokers = inputPath; + if (mode == Mode.LOCAL_SOCKET || mode == Mode.LOCAL_FOLDER || mode == Mode.LOCAL_FILE) { + // Local state machines should get all .sm.g or .sm.[0-9]+ files + for (File f : smFolder) { + String filename = f.getName(); + String basename = filename.substring(0, + filename.lastIndexOf('.', filename.lastIndexOf('.') - 1)); + + // System.out.println("Putting in smFiles: " + basename); + if (!smFiles.containsKey(basename)) { + smFiles.put(basename, new ArrayList()); + } + smFiles.get(basename).add(f); + } + } else { + // Global or standalone state machines only care about the global file + for (File f : smFolder) { + String filename = f.getName(); + if (filename.endsWith(".sm.g")) { + String basename = filename.substring(0, filename.length() - 5); + ArrayList arr = new ArrayList(); + arr.add(f); + + // System.out.println("Putting in smFiles: " + basename); + smFiles.put(basename, arr); + } + } + } + + // Start assembling the Flink pipeline + + // Input + DataStream parsedPackets = null; + HashMap>> parsedPacketsDict = null; + + HashMap>> finalOutputDict = new HashMap>>(); + + MyPartitioner customPartitioner = new MyPartitioner(); + HashMap sKeySelector = new HashMap(); + + if (mode == Mode.GLOBAL_KAFKA) { + parsedPacketsDict = new HashMap>>(); + // Set Kafka properties + Properties kafkaProps = new Properties(); + kafkaProps.setProperty("bootstrap.servers", brokers); + kafkaProps.setProperty("auto.offset.reset", "earliest"); + for (Entry> entry : smFiles.entrySet()) { + for (int x = 0; x < Integer.parseInt(ns.getString("channel_per_invariant")); x++) { + String channelName = entry.getKey() + ".sm" + Integer.toString(x); + System.out.println("Channel name: " + channelName); + FlinkKafkaConsumer kafka = new FlinkKafkaConsumer<>(channelName, + new SimpleStringSchema() { + @Override + public boolean isEndOfStream(String nextElement) { + if (nextElement.contains("EndofStream")) { + // throw new RuntimeException("End of Stream"); + Date date = new Date(); + //This method returns the time in ms + long timeMilli = date.getTime(); + System.out.println("End Time in ms: " + timeMilli + " with message: " + nextElement); + return true; + } else { + return false; + } + } + } + + ,kafkaProps); + kafka.setStartFromEarliest(); + if (!(parsedPacketsDict.containsKey(entry.getKey()))) { + + // System.out.println("Putting in parsedPacketsDict: " + entry.getKey()); + parsedPacketsDict.put(entry.getKey(), new ArrayList>()); + } + parsedPacketsDict.get(entry.getKey()).add(env.addSource(kafka).flatMap(ParserFactory.createNewParser(parser))); + } + + } + } else if (mode == Mode.STANDALONE_FILE || mode == Mode.LOCAL_FILE) { + parsedPackets = env.readTextFile(inputPath).setParallelism(1) + .flatMap(ParserFactory.createNewParser(parser)).setParallelism(1); + } else if (mode == Mode.STANDALONE_FOLDER || mode == Mode.LOCAL_FOLDER) { + parsedPacketsDict = new HashMap>>(); + File[] inFolder = (new File(inputPath)).listFiles(); + System.out.println("Files in input Folder: " + Integer.toString(inFolder.length)); + for (File f : inFolder) { + String filename = f.getName(); + String invName = filename.substring(0, + filename.lastIndexOf('.', filename.lastIndexOf('.') - 1)); + + String filePath = "file://" + System.getProperty("user.dir") + "/" + inputPath + filename; + if (!(parsedPacketsDict.containsKey(invName))) { + // System.out.println("Putting in parsedPacketsDict: " + invName); + parsedPacketsDict.put(invName, new ArrayList>()); + } + System.out.print("File: " + filePath + " on invariant: " + invName); + + // PacketKeySelector pKeySelector = new PacketKeySelector(filename); + sKeySelector.put(filename,new StringKeySelector(filename)); + parsedPacketsDict.get(invName).add(env.readTextFile(filePath).setParallelism(1).partitionCustom(customPartitioner, sKeySelector.get(filename)) + .flatMap(ParserFactory.createNewParser(parser))); + // parsedPacketsDict.get(invName).add(env.readTextFile(filePath).setParallelism(1) + // .flatMap(ParserFactory.createNewParser(parser))); + System.out.print(" Adding stream: "); + System.out.println(parsedPacketsDict.get(invName).get(parsedPacketsDict.get(invName).size() - 1)); + } + System.out.println("Out of loop"); + } else if (mode == Mode.LOCAL_SOCKET) { + parsedPackets = env.socketTextStream(ns.getString("local_socket_ip") , Integer.valueOf(ns.getString("local_socket_port"))).setParallelism(1).flatMap(ParserFactory.createNewParser(parser));; + } else { + throw new RuntimeException("Unknown Mode and Data Source: " + mode); + } + + + // Processing + HashMap> packetKafkaOutput = null; + if (mode == Mode.LOCAL_FILE || mode == Mode.LOCAL_SOCKET || mode == Mode.LOCAL_FOLDER) { + packetKafkaOutput = new HashMap>(); + } + + for (Entry> entry : smFiles.entrySet()) { + if (!(finalOutputDict.containsKey(entry.getKey()))) { + // System.out.println("Putting in finalOutputDict: " + entry.getKey()); + finalOutputDict.put(entry.getKey(), new ArrayList>()); + } + + if (mode == Mode.STANDALONE_FILE) { + File f = entry.getValue().get(0); + try (FileReader reader = new FileReader(f)) { + finalOutputDict.get(entry.getKey()).add(GlobalSFAParser + .makeDSFAProcessor(parsedPackets, reader, f.getName())); + } catch (IOException e) { + e.printStackTrace(); + } + } else if (mode == Mode.LOCAL_FILE || mode == Mode.LOCAL_SOCKET) { + finalOutputDict.get(entry.getKey()).add(LocalSFAParser + .makeDSFAProcessor(parsedPackets, entry.getKey(), entry.getValue())); + // System.out.println("Putting in packetKafkaOutput: " + entry.getKey()); + packetKafkaOutput.put(entry.getKey(), new FlinkKafkaProducer<>(brokers, + entry.getKey(), new PacketDeSerializer())); + + } else if (mode == Mode.STANDALONE_FOLDER || mode == Mode.GLOBAL_KAFKA) { + File f = entry.getValue().get(0); // Global SM file + if (!parsedPacketsDict.containsKey(entry.getKey())) { + System.out.println("No input file for invariant: " + entry.getKey()); + continue; + } + for (DataStream currentStream : parsedPacketsDict.get(entry.getKey())) { + // System.out.print("currentStream:" ); + // System.out.println(currentStream); + try (FileReader reader = new FileReader(f)) { + DataStream tempVar = GlobalSFAParser + .makeDSFAProcessor(currentStream, reader, f.getName()); + System.out.println("Creating Processor for: " + entry.getKey() + " invariant: " + f.getName() + " currentStream: " + currentStream.toString() + " with output: " + tempVar.toString()); + finalOutputDict.get(entry.getKey()).add(tempVar); + } catch (IOException e) { + e.printStackTrace(); + } + } + } else if (mode == Mode.LOCAL_FOLDER ) { + // System.out.println("Putting in packetKafkaOutput: " + entry.getKey()); + packetKafkaOutput.put(entry.getKey(), new FlinkKafkaProducer<>(brokers, + entry.getKey(), new PacketDeSerializer())); + for (DataStream currentStream : parsedPacketsDict.get(entry.getKey())) { + finalOutputDict.get(entry.getKey()).add(LocalSFAParser.makeDSFAProcessor(currentStream, + entry.getKey(), entry.getValue())); + } + } else { + throw new RuntimeException("Unknown Mode and Data Source: " + mode); + } + } + + + // Output + for (Entry>> entry : finalOutputDict.entrySet()) { + if (mode == Mode.LOCAL_FILE || mode == Mode.LOCAL_FOLDER || mode == Mode.LOCAL_SOCKET) { + for (DataStream sfaOutput : entry.getValue()) { + sfaOutput.map(new MapFunction() { + private static final long serialVersionUID = 6964249607698442117L; + + @Override + public Packet map(Notification value) throws Exception { + return value.p; + } + }).addSink(packetKafkaOutput.get(entry.getKey())); + + } + } else { + int counter = 0; + for (DataStream sfaOutput : entry.getValue()) { + System.out.println("writing to file invariant: " + entry.getKey() + " for output stream: " + sfaOutput.toString()); + sfaOutput.writeAsText(outputPath + entry.getKey() + Integer.toString(counter) + ".txt", WriteMode.OVERWRITE); + counter++; + } + } + } + + + //Getting the current date + Date date = new Date(); + //This method returns the time in ms + long timeMilli = date.getTime(); + System.out.println("Start Time in ms: " + timeMilli); + // System.exit(0); + System.out.println("Starting Flink execution..."); + env.execute("verification using stream with writing to file"); + } +} + + + + diff --git a/verification/src/main/java/org/msr/mnr/verification/dsfa/ConstraintTreeNode.java b/verification/src/main/java/org/msr/mnr/verification/dsfa/ConstraintTreeNode.java new file mode 100644 index 0000000..0e92a08 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/dsfa/ConstraintTreeNode.java @@ -0,0 +1,175 @@ +package org.msr.mnr.verification.dsfa; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; + +public class ConstraintTreeNode { + // null indicates "other" matches + int[] constraint; + ConstraintTreeNode parent; + ArrayList children; + + Integer currentState; + long lastTime; + + public ConstraintTreeNode(int[] constraint) { + this.constraint = constraint; + this.children = new ArrayList(); + + currentState = -1; + lastTime = -1; + } + + protected static void adopt(ConstraintTreeNode parent, ConstraintTreeNode child) { + if (parent != null) { + parent.children.add(child); + } + child.parent = parent; + } + + public static ConstraintTreeNode makeFreshTree(Integer startState, + ArrayList locationList, ArrayList variableList) { + ConstraintTreeNode root = new ConstraintTreeNode(null); + + ConstraintTreeNode current = root; + for (int i = 1; i < locationList.size() + variableList.size(); ++i) { + ConstraintTreeNode next = new ConstraintTreeNode(null); + adopt(current, next); + current = next; + } + current.currentState = startState; + current.lastTime = 0; + return root; + } + + protected ConstraintTreeNode clone(int[] newConstraint) { + ConstraintTreeNode newNode = new ConstraintTreeNode(newConstraint); + adopt(parent, newNode); + newNode.currentState = currentState; + newNode.lastTime = lastTime; + + for (ConstraintTreeNode child : children) { + adopt(newNode, child.cloneExact()); + } + + return newNode; + } + + private ConstraintTreeNode cloneExact() { + ConstraintTreeNode newNode = new ConstraintTreeNode(constraint); + newNode.currentState = currentState; + newNode.lastTime = lastTime; + + for (ConstraintTreeNode child : children) { + adopt(newNode, child.cloneExact()); + } + + return newNode; + } + + public Integer getCurrentState() { + return currentState; + } + + public String printTree(int depth) { + String result = "currentState: " + Integer.toString(currentState); + result += "lastTime: " + Long.toString(lastTime); + result += " constraint: " + Arrays.toString(constraint); + result += " depth: " + Integer.toString(depth); + result += " ==> children: \n" ; + for (ConstraintTreeNode child : children) { + result += String.join("", Collections.nCopies(depth, "\n")) + child.printTree(depth + 1); + } + return result; + } + + @Override + public String toString() { + return printTree(0); + } + + @Override + public boolean equals(Object other) { + if (other == null) { + return false; + } + if (!(other instanceof ConstraintTreeNode)) { + return false; + } + ConstraintTreeNode otherTree = (ConstraintTreeNode) other; + if (currentState != otherTree.currentState) { + return false; + } + + if (constraint.length != otherTree.constraint.length) { + return false; + } + + if (children.size() != otherTree.children.size()) { + return false; + } + + for (int i = 0; i < constraint.length; i++) { + if (constraint[i] != otherTree.constraint[i]) { + return false; + } + } + + for (int i = 0; i < children.size(); i++) { + if (!(children.get(i).equals(otherTree.children.get(i)))) { + return false; + } + } + + return true; + } + + @Override + public int hashCode() { + int hash = 3; + hash = 53 * hash + currentState; + for (int i = 0; i < constraint.length; i++) { + hash = 53 * hash + constraint[i]; + } + for (int i = 0; i < children.size(); i++) { + hash = 53 * hash + children.get(i).hashCode(); + } + return hash; + } + + public static ConstraintTreeNode removeDuplicates(ConstraintTreeNode root) { + // Create original children list + ArrayList oldChildrenList = new ArrayList<>(); + oldChildrenList.addAll(root.children); + + // Iterate through original children list + for (ConstraintTreeNode currentChild : oldChildrenList) { + + // If the original child is still present: + if (root.children.contains(currentChild)) { + + // Get all duplicates of the child + ArrayList duplicates = new ArrayList<>(); + for (ConstraintTreeNode selectedChild : root.children) { + if (selectedChild.equals(currentChild)) { + duplicates.add(selectedChild); + } + } + + // Remove all duplicates, and consolidate the children of all duplicates + for (ConstraintTreeNode selectedChild : duplicates) { + currentChild.children.addAll(selectedChild.children); + root.children.remove(selectedChild); + } + + // Add the child back to root. + root.children.add(currentChild); + } + // Remove duplicates from the child. + ConstraintTreeNode.removeDuplicates(currentChild); + } + + return root; + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/dsfa/DSFA.java b/verification/src/main/java/org/msr/mnr/verification/dsfa/DSFA.java new file mode 100644 index 0000000..2ff223f --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/dsfa/DSFA.java @@ -0,0 +1,299 @@ +package org.msr.mnr.verification.dsfa; + +import java.io.Serializable; +import java.util.*; + +import org.apache.commons.lang3.tuple.Pair; +import org.msr.mnr.verification.utils.Packet; +import org.msr.mnr.verification.utils.ParseIntArray; + + +// Types: Key, Stream Type, Output Type +public class DSFA implements Serializable { + private static final long serialVersionUID = 1L; + + public String name; + public Integer startState; + public HashSet finalStates; + + public ArrayList locationList; + public ArrayList variableList; + private boolean variables; + + // stateId -> {EventIndex -> nextStateId} + private HashMap> transitions; + + + /** + * Constructs a DSFA + */ + public DSFA(String name, Integer startState, HashSet finalStates, + HashMap> moves, ArrayList locationList, + ArrayList variableList) { + this.name = name; + this.startState = startState; + this.finalStates = finalStates; + this.transitions = moves; + this.locationList = locationList; + this.variableList = variableList; + variables = !locationList.isEmpty() || !variableList.isEmpty(); + // System.out.print("Start State: "); + // System.out.println(startState); + // System.out.print("transitions size:"); + // System.out.println(transitions.size()); + } + + public boolean hasVariables() { + return variables; + } + + private String mergeRecursive(ConstraintTreeNode current) { + // System.out.println("in mergeRecursive"); + if (current.children.isEmpty()) { + // System.out.print("empty tree: "); + // System.out.println(current); + return current.currentState.toString(); + } + // System.out.println("filled tree"); + + // Get all subtree string representations + ArrayList subtreeStrings = new ArrayList(); + for (ConstraintTreeNode child : current.children) { + subtreeStrings.add(mergeRecursive(child)); + // if (child.currentState.equals(startState)) { + // System.out.println("DELETE SUB"); + // } + } + + // Deduplicate + for (int i = subtreeStrings.size() - 1; i > 0; --i) { + int count = Collections.frequency(subtreeStrings, subtreeStrings.get(i)); + if (count > 1) { + // System.out.println("REMOVE SUB"); + current.children.remove(i); + subtreeStrings.remove(i); + } + } + + // Return my string representation + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < current.children.size(); ++i) { + sb.append("("); + sb.append(ParseIntArray.printString(current.children.get(i).constraint)); + sb.append(" "); + sb.append(subtreeStrings.get(i)); + sb.append(")"); + } + String treeString = sb.toString(); + // System.out.print("Tree String: "); + // System.out.print(treeString); + return treeString; + } + + // TODO: Make a list of the hash of ConstraintTreeNode.removeDuplicates(roots). If list count > 1, remove. + private void merge(List rootConstraints) { + // System.out.println("in merge"); + // Get all subtree string representations + ArrayList subtreeStrings = new ArrayList(); + for (ConstraintTreeNode roots : rootConstraints) { + subtreeStrings.add(mergeRecursive(roots)); + } + + // Deduplicate + for (int i = subtreeStrings.size() - 1; i > 0; --i) { + int count = Collections.frequency(subtreeStrings, subtreeStrings.get(i)); + if (count > 1) { + // System.out.println("REMOVE"); + rootConstraints.remove(i); + subtreeStrings.remove(i); + } + } + + for (int i = rootConstraints.size() - 1; i >= 0; --i) { + if (rootConstraints.get(i).currentState.equals(startState)) { + // System.out.println("DELETE"); + rootConstraints.remove(i); + } + } + } + + public Pair advanceAndCheckSuppress(Packet p, Integer currentState) { + + // if (transitions.get(currentState) == null) { + // System.out.println("transition moves are null"); + // System.out.print("Name:"); + // System.out.println(this.name); + // System.out.print("Current State:"); + // System.out.println(currentState); + // } + for (DSFAMove move : transitions.get(currentState)) { + if (move.condition.evaluate(p)) { + // String nofelOutput = "----------------------------------------\ninvariant name: " + name + "\nCurrent State: " + currentState.toString() + "\nPacket: " + p.toString() + "\nCondition satisfied: " + move.condition.toString() + "\n Moving to: " + move.to.toString() + "\n"; + // System.out.println(nofelOutput); + return Pair.of(move.to, move.suppress); + } + } + + throw new RuntimeException("[" + name + "] Did not find a valid move for state " + + currentState + " and packet " + p); + } + + public Integer advance(Packet p, Integer currentState) { + for (DSFAMove move : transitions.get(currentState)) { + if (move.condition.evaluate(p)) { + // String nofelOutput = "----------------------------------------\ninvariant name: " + name + "\nCurrent State: " + currentState.toString() + "\nPacket: " + p.toString() + "\nCondition satisfied: " + move.condition.toString() + "\n Moving to: " + move.to.toString() + "\n"; + // System.out.println(nofelOutput); + return move.to; + } + } + + throw new RuntimeException("[" + name + "] Did not find a valid move for state " + + currentState + " and packet " + p); + } + + public boolean advanceConstraintTreeAndCheckSuppress(Packet p, ArrayList constraints, + List rootConstraints) { + boolean suppressible = true; + for (int i = 0; i < rootConstraints.size(); ++i) { + suppressible &= traverseConstraintTreeAndCheckSuppress(p, rootConstraints.get(i), + constraints, 0, rootConstraints); + } + + merge(rootConstraints); + + return suppressible; + } + + public boolean advanceConstraintTreeAndCheckFinal(Packet p, ArrayList constraints, + List rootConstraints) { + boolean inFinal = false; + + for (int i = 0; i < rootConstraints.size(); ++i) { + + inFinal |= traverseConstraintTreeAndCheckFinal(p, rootConstraints.get(i), constraints, + 0, rootConstraints); + } + merge(rootConstraints); + + return inFinal; + } + + private boolean traverseConstraintTreeAndCheckSuppress(Packet p, ConstraintTreeNode node, + ArrayList constraints, int index, List rootConstraints) { + // DFS through the constraint tree, assembling the constraints as we go + constraints.set(index, node.constraint); + + // When we get to a leaf, advance it + if (node.children.isEmpty()) { + // Traverse through every possible move. May split. + for (DSFAMove move : transitions.get(node.currentState)) { + if (move.condition.evaluate(p, constraints, locationList, variableList, + node.currentState, rootConstraints)) { + // String nofelOutput = "----------------------------------------\ninvariant name: " + name + "\nCurrent State: " + node.currentState.toString() + "\nPacket: " + p.toString() + "\nCondition satisfied: " + move.condition.toString() + "\n Moving to: " + move.to.toString() + "\n"; + // System.out.println(nofelOutput); + node.currentState = move.to; + node.lastTime = p.getTime(); + return move.suppress; + } + } + + throw new RuntimeException("[" + name + "] Did not find a valid move for state " + + node.currentState + " and packet " + p); + } + + // Otherwise, just DFS + // Use counter iteration so that we catch new children + boolean suppressible = true; + for (int i = 0; i < node.children.size(); ++i) { + suppressible &= traverseConstraintTreeAndCheckSuppress(p, node.children.get(i), + constraints, index + 1, rootConstraints); + } + + return suppressible; + } + + // Note: All splits will be off of *, there's not ambiguity otherwise + // Note: All subtrees will have a * as we clone the entire tree + // Keep it at index 0 of every child array. + private boolean traverseConstraintTreeAndCheckFinal(Packet p, ConstraintTreeNode node, + ArrayList constraints, int index, List rootConstraints) { + // DFS through the constraint tree, assembling the constraints as we go + constraints.set(index, node.constraint); + + // When we get to a leaf, advance it + if (node.children.isEmpty()) { + // Traverse through every possible move + // May split + for (DSFAMove move : transitions.get(node.currentState)) { + + // System.out.println("Print tree in traverseConstraintTree (of " + transitions.get(node.currentState).size() + ": "); + // System.out.println(node.printTree(0)); + // System.out.println("Move: "); + // System.out.println(move); + if (move.condition.evaluate(p, constraints, locationList, variableList, + node.currentState, rootConstraints)) { + // String nofelOutput = "----------------------------------------\ninvariant name: " + name + "\nCurrent State: " + node.currentState.toString() + "\nPacket: " + p.toString() + "\nCondition satisfied: " + move.condition.toString() + "\n Moving to: " + move.to.toString() + "\n"; + // System.out.println(nofelOutput); + node.currentState = move.to; + node.lastTime = p.getTime(); + return checkInFinal(node.currentState); + } + } + + throw new RuntimeException("[" + name + "] Did not find a valid move for state " + + node.currentState + " and packet " + p); + } + + // Otherwise, just DFS + // Use counter iteration so that we catch new children + boolean inFinal = false; + for (int i = 0; i < node.children.size(); ++i) { + inFinal |= traverseConstraintTreeAndCheckFinal(p, node.children.get(i), constraints, + index + 1, rootConstraints); + } + + return inFinal; + } + + // TODO: Move this in ConstraintTreeNode class + private static ConstraintTreeNode find(List constraintList, int[] val) { + for (ConstraintTreeNode c : constraintList) { + if (c.constraint == val) { + return c; + } + } + + return null; + } + + public boolean checkInFinal(Integer currentState) { + return finalStates.contains(currentState); + + } + + public static boolean splitIfNew(ArrayList currentConstraints, int newIndex, + int[] newConstraint, Integer currentState, List rootConstraints) { + int[] searchVal = newIndex == 0 ? newConstraint : currentConstraints.get(0); + ConstraintTreeNode current = find(rootConstraints, searchVal); + if (current == null) { + // duplicate the entire subtree + rootConstraints.add(rootConstraints.get(0).clone(newConstraint)); + return true; + } + + for (int i = 1; i < currentConstraints.size(); ++i) { + // iterate through each level of the constraint tree and determine if it exists + searchVal = newIndex == i ? newConstraint : currentConstraints.get(i); + ConstraintTreeNode next = find(current.children, searchVal); + if (next == null) { + // duplicate the entire subtree + current.children.get(0).clone(newConstraint); + return true; + } + + current = next; + } + + return false; + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/dsfa/DSFAMove.java b/verification/src/main/java/org/msr/mnr/verification/dsfa/DSFAMove.java new file mode 100644 index 0000000..84b7967 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/dsfa/DSFAMove.java @@ -0,0 +1,37 @@ +package org.msr.mnr.verification.dsfa; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.HashSet; + +import org.msr.mnr.verification.expressions.BoolExpr; + +public class DSFAMove implements Serializable { + private static final long serialVersionUID = -6991744916243331573L; + BoolExpr condition; + boolean suppress; + Integer to; + boolean toFinal; + HashSet locationReferences; + HashMap variableComparisons; + + public DSFAMove(BoolExpr condition, boolean suppress, Integer to, boolean toFinal, + HashSet locationReferences, HashMap variableComparisons) { + this.condition = condition; + this.suppress = suppress; + this.to = to; + this.toFinal = toFinal; + this.locationReferences = locationReferences; + this.variableComparisons = variableComparisons; + } + + @Override + public String toString() { + String result = "Condition: " + condition.toString() + "\n"; + result += "To: " + Integer.toString(to) + "\n"; + result += "To Final: " + String.valueOf(toFinal) + "\n"; + result += "locationReferences: " + String.join(", ", locationReferences) + "\n"; + result += "variableComparisons: " + variableComparisons.toString() + "\n"; + return result; + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/dsfa/GlobalSFAParser.java b/verification/src/main/java/org/msr/mnr/verification/dsfa/GlobalSFAParser.java new file mode 100644 index 0000000..bf8043d --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/dsfa/GlobalSFAParser.java @@ -0,0 +1,236 @@ +package org.msr.mnr.verification.dsfa; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; + +import org.antlr.v4.runtime.CharStreams; +import org.antlr.v4.runtime.CommonTokenStream; +import org.apache.flink.api.common.typeinfo.TypeHint; +import org.apache.flink.api.common.typeinfo.TypeInformation; +import org.apache.flink.api.java.functions.KeySelector; +import org.apache.flink.api.java.tuple.Tuple; +import org.apache.flink.api.java.tuple.Tuple1; +import org.apache.flink.api.java.tuple.Tuple2; +import org.apache.flink.api.java.tuple.Tuple3; +import org.apache.flink.api.java.tuple.Tuple4; +import org.apache.flink.api.java.tuple.Tuple5; +import org.apache.flink.streaming.api.datastream.DataStream; +import org.apache.flink.streaming.api.datastream.KeyedStream; +import org.msr.mnr.verification.Notification; +import org.msr.mnr.verification.GlobalSFAProcessor; +import org.msr.mnr.verification.expressions.BoolExpr; +import org.msr.mnr.verification.expressions.ArithExpr; +import org.msr.mnr.verification.expressions.ExprBuilder; +import org.msr.mnr.verification.utils.Packet; +import org.msr.verification.SimpleSMTLIBLexer; +import org.msr.verification.SimpleSMTLIBParser; +import org.msr.verification.SimpleSMTLIBParser.StartArithContext; +import org.msr.verification.SimpleSMTLIBParser.StartBoolContext; + +public class GlobalSFAParser { + private static class Invariant implements Serializable { + private static final long serialVersionUID = 4756722778520575310L; + public ArrayList groupByFields; + public DSFA dsfa; + public BoolExpr filter; + public HashMap mapFunction; + // public String name; + } + + + public static DataStream makeDSFAProcessor(DataStream parsedPackets, + FileReader input, String name) throws IOException { + Invariant inv = parseStateMachine(name, input); + + switch (inv.groupByFields.size()) { + case 1: + return GlobalSFAParser.> + createAndAttachGroupBy(inv, parsedPackets, name, + TypeInformation.of(new TypeHint>(){})); + case 2: + return GlobalSFAParser.> + createAndAttachGroupBy(inv, parsedPackets, name, + TypeInformation.of(new TypeHint>(){})); + case 3: + return GlobalSFAParser.> + createAndAttachGroupBy(inv, parsedPackets, name, + TypeInformation.of(new TypeHint>(){})); + case 4: + return GlobalSFAParser.> + createAndAttachGroupBy(inv, parsedPackets, name, + TypeInformation.of(new TypeHint>(){})); + case 5: + return GlobalSFAParser.> + createAndAttachGroupBy(inv, parsedPackets, name, + TypeInformation.of(new TypeHint>(){})); + } + + throw new RuntimeException("Could not parse the state machine"); + } + + public static Invariant parseStateMachine(String name, FileReader input) throws IOException { + System.out.println("Parsing state machine: " + name); + BufferedReader bufin = new BufferedReader(input); + Invariant ret = new Invariant(); + + // Line 1: Negative location filter. Ignore for global + bufin.readLine(); + + // Line 2: initial state + Integer startState = Integer.parseInt(bufin.readLine()); + + // Line 3: final state(s) + HashSet finalStates = new HashSet(); + String[] toks = bufin.readLine().split(","); + for (String s : toks) { + // System.out.print("Adding to final: "); + // System.out.println(s); + finalStates.add(Integer.parseInt(s)); + } + + // Line 4: filter + // For globals, there shouldn't be a filter + String filterString = bufin.readLine(); + SimpleSMTLIBLexer lexer; + CommonTokenStream tokens; + SimpleSMTLIBParser parser; + StartBoolContext tree; + + if ("".equals(filterString)) { + // System.out.print("no filter"); + ret.filter = null; + } else { + // System.out.println("filterString: " + filterString); + lexer = new SimpleSMTLIBLexer(CharStreams.fromString(filterString)); + tokens = new CommonTokenStream(lexer); + parser = new SimpleSMTLIBParser(tokens); + tree = parser.startBool(); + ret.filter = ExprBuilder.buildBoolExpr(tree, null, null); + } + // System.out.println(ret.filter); + + // Line 5: groupby + // Build the GROUPBY transformation + // Due to the nature of Flink KeyedStreams, the executor that reads the KeyedStream (the + // StateMachineProcessor) needs to be typed to take the exact tuple size. Hence the + // many case statements. + ret.groupByFields = new ArrayList(); + toks = bufin.readLine().split(","); + for (String s : toks) { + ret.groupByFields.add(s); + } + // get a sorted, immutable list of the GroupByFields. + // We do this so that we can re-use keyedStreams. + Collections.sort(ret.groupByFields); + + // Line 6: locations + ArrayList locationList = new ArrayList(); + String locationStr = bufin.readLine().trim(); + if (!locationStr.isEmpty()) { + toks = locationStr.split(","); + for (String s : toks) { + locationList.add(s); + } + } + + // Line 7: variables + ArrayList variableList = new ArrayList(); + String variableStr = bufin.readLine().trim(); + if (!variableStr.isEmpty()) { + toks = variableStr.split(","); + for (String s : toks) { + variableList.add(s); + } + } + + int numberOfMaps = Integer.parseInt(bufin.readLine()); + ret.mapFunction = new HashMap<>(); + for (int i = 0; i < numberOfMaps; i++) { + lexer = new SimpleSMTLIBLexer(CharStreams.fromString(bufin.readLine())); + tokens = new CommonTokenStream(lexer); + parser = new SimpleSMTLIBParser(tokens); + StartArithContext mapTree = parser.startArith(); + // TODO: Pass fields here + Object mapFunc = ExprBuilder.buildArithExpr(mapTree.arithExpression()); + // System.out.println(mapFunc); + ret.mapFunction.put(bufin.readLine(), mapFunc); + } + + // Line 8+: transitions + // supress$from$to$guard + HashMap> moves = new HashMap>(); + while (bufin.ready()) { + toks = bufin.readLine().split("\\;"); + // System.out.println(Arrays.toString(toks)); + boolean suppress = false; + Integer from = new Integer(toks[1]); + Integer to = new Integer(toks[2]); + + lexer = new SimpleSMTLIBLexer(CharStreams.fromString(toks[3])); + tokens = new CommonTokenStream(lexer); + parser = new SimpleSMTLIBParser(tokens); + tree = parser.startBool(); + + HashSet locationReferences = new HashSet(); + HashMap variableComparisons = new HashMap(); + BoolExpr condition = ExprBuilder.buildBoolExpr(tree, locationReferences, variableComparisons); + DSFAMove move = new DSFAMove(condition, suppress, to, finalStates.contains(to), + locationReferences, variableComparisons); + if (!moves.containsKey(from)) { + moves.put(from, new ArrayList()); + } + moves.get(from).add(move); + } + // System.out.print("DSFA name: "); + // System.out.println(name); + ret.dsfa = new DSFA(name, startState, finalStates, moves, locationList, variableList); + return ret; + } + + @SuppressWarnings("unchecked") + private static DataStream createAndAttachGroupBy(Invariant inv, + DataStream parsedPackets, String name, TypeInformation ti) { + KeyedStream ks; + + HashMap, KeyedStream> streams = + new HashMap, KeyedStream>(); + + if (streams.containsKey(inv.groupByFields)) { + ks = (KeyedStream) streams.get(inv.groupByFields); + } else { + ks = parsedPackets.keyBy(new KeySelector() { + private static final long serialVersionUID = 1L; + + @Override + public T getKey(Packet p) throws Exception { + T tuple = (T) Tuple.newInstance(inv.groupByFields.size()); + for (int i = 0; i < inv.groupByFields.size(); ++i) { + int[] value = p.get(inv.groupByFields.get(i)); + int hashCode = 0; + for (int j = 0; j < value.length; ++j) { + hashCode = (int) (31 * hashCode + (value[j] & 0xffffffffL)); + } + tuple.setField(hashCode, i); + } + + return tuple; + } + }, ti); + streams.put(inv.groupByFields, ks); + } + return ks.process(new GlobalSFAProcessor(inv.dsfa, inv.filter, inv.mapFunction)).name(name); + } + + public static void main(String[] args) throws Exception { + FileReader input = new FileReader(args[0]); + // GlobalSFAParser.parseStateMachine("main()", input); + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/dsfa/LocalSFAParser.java b/verification/src/main/java/org/msr/mnr/verification/dsfa/LocalSFAParser.java new file mode 100644 index 0000000..da978ca --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/dsfa/LocalSFAParser.java @@ -0,0 +1,243 @@ +package org.msr.mnr.verification.dsfa; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; + +import org.antlr.v4.runtime.CharStreams; +import org.antlr.v4.runtime.CommonTokenStream; +import org.apache.flink.api.common.typeinfo.TypeHint; +import org.apache.flink.api.common.typeinfo.TypeInformation; +import org.apache.flink.api.java.functions.KeySelector; +import org.apache.flink.api.java.tuple.Tuple; +import org.apache.flink.api.java.tuple.Tuple1; +import org.apache.flink.api.java.tuple.Tuple2; +import org.apache.flink.api.java.tuple.Tuple3; +import org.apache.flink.api.java.tuple.Tuple4; +import org.apache.flink.api.java.tuple.Tuple5; +import org.apache.flink.streaming.api.datastream.DataStream; +import org.apache.flink.streaming.api.datastream.KeyedStream; +import org.msr.mnr.verification.Notification; +import org.msr.mnr.verification.LocalSFAProcessor; +import org.msr.mnr.verification.expressions.BoolExpr; +import org.msr.mnr.verification.expressions.ExprBuilder; +import org.msr.mnr.verification.utils.Packet; +import org.msr.verification.SimpleSMTLIBLexer; +import org.msr.verification.SimpleSMTLIBParser; +import org.msr.verification.SimpleSMTLIBParser.StartBoolContext; + +public class LocalSFAParser { + private static class Invariant implements Serializable { + private static final long serialVersionUID = 4756722778520575310L; + public BoolExpr negatedLocExpr; + public BoolExpr filter; + public ArrayList groupByFields; + public ArrayList dsfas; + + public Invariant() { + dsfas = new ArrayList(); + } + } + + private static HashMap, KeyedStream> streams = new HashMap, KeyedStream>(); + + public static DataStream makeDSFAProcessor(DataStream parsedPackets, + String name, ArrayList files) throws IOException { + Invariant inv = parseStateMachines(name, files); + // System.out.print("Parsing complete: "); + // System.out.println(inv.groupByFields.size()); + switch (inv.groupByFields.size()) { + case 1: + return LocalSFAParser.>createAndAttachGroupBy(inv, parsedPackets, name, + TypeInformation.of(new TypeHint>() {})); + case 2: + return LocalSFAParser.> + createAndAttachGroupBy(inv, parsedPackets, name, + TypeInformation.of(new TypeHint>(){})); + case 3: + return LocalSFAParser.> + createAndAttachGroupBy(inv, parsedPackets, name, + TypeInformation.of(new TypeHint>(){})); + case 4: + return LocalSFAParser.> + createAndAttachGroupBy(inv, parsedPackets, name, + TypeInformation.of(new TypeHint>(){})); + case 5: + return LocalSFAParser.> + createAndAttachGroupBy(inv, parsedPackets, name, + TypeInformation.of(new TypeHint>(){})); + } + + throw new RuntimeException("Could not parse the state machine"); + } + + public static Invariant parseStateMachines(String name, ArrayList files) + throws IOException { + Invariant completeInv = new Invariant(); + completeInv.dsfas = new ArrayList<>(); + for (File f : files) { + try (FileReader reader = new FileReader(f)) { + if (f.getName().endsWith(".sm.g")) { + LocalSFAParser.parseGlobalStateMachine(completeInv, f.getName(), reader); + } else { + LocalSFAParser.parseLocalStateMachine(completeInv, f.getName(), reader); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + return completeInv; + } + + public static void parseGlobalStateMachine(Invariant inv, String name, FileReader input) + throws IOException { + System.out.println("Parsing state machine: " + name); + BufferedReader bufin = new BufferedReader(input); + + SimpleSMTLIBLexer lexer; + CommonTokenStream tokens; + SimpleSMTLIBParser parser; + StartBoolContext tree; + + // Line 1: Negative location filter + String line = bufin.readLine(); + lexer = new SimpleSMTLIBLexer(CharStreams.fromString(line)); + tokens = new CommonTokenStream(lexer); + parser = new SimpleSMTLIBParser(tokens); + tree = parser.startBool(); + inv.negatedLocExpr = ExprBuilder.buildBoolExpr(tree, null, null); + + // Line 2: initial state. Skip for local + bufin.readLine(); + + // Line 3: final state(s). Skip for local + bufin.readLine(); + + // Line 4: filter + line = bufin.readLine(); + if (line.equals("")) { + // System.out.print("no filter"); + inv.filter = null; + } else { + // System.out.println("filterString: " + filterString); + lexer = new SimpleSMTLIBLexer(CharStreams.fromString(line)); + tokens = new CommonTokenStream(lexer); + parser = new SimpleSMTLIBParser(tokens); + tree = parser.startBool(); + inv.filter = ExprBuilder.buildBoolExpr(tree, null, null); + } + + // Line 5: groupby + // Build the GROUPBY transformation + // Due to the nature of Flink KeyedStreams, the executor that reads the KeyedStream (the + // StateMachineProcessor) needs to be typed to take the exact tuple size. Hence the + // many case statements. + inv.groupByFields = new ArrayList(); + String[] toks = bufin.readLine().split(","); + for (String s : toks) { + inv.groupByFields.add(s); + } + // get a sorted, immutable list of the GroupByFields. + // We do this so that we can re-use keyedStreams. + Collections.sort(inv.groupByFields); + } + + public static void parseLocalStateMachine(Invariant inv, String name, FileReader input) + throws IOException { + System.out.println("Parsing state machine: " + name); + BufferedReader bufin = new BufferedReader(input); + + // Line 1: initial state + Integer startState = Integer.parseInt(bufin.readLine()); + + // Line 2: final state(s) + HashSet finalStates = new HashSet(); + String[] toks = bufin.readLine().split(","); + for (String s : toks) { + finalStates.add(Integer.parseInt(s)); + } + + // Line 3: variables + ArrayList variableList = new ArrayList(); + String variableStr = bufin.readLine().trim(); + if (!variableStr.isEmpty()) { + toks = variableStr.split(","); + for (String s : toks) { + variableList.add(s); + } + } + // bufin.readLine(); + // bufin.readLine(); + // bufin.readLine(); + + // Line 4+: transitions + // suppress;from;to;guard + HashMap> moves = new HashMap>(); + while (bufin.ready()) { + toks = bufin.readLine().split("\\;"); + // System.out.println(Arrays.toString(toks)); + SimpleSMTLIBLexer lexer = new SimpleSMTLIBLexer(CharStreams.fromString(toks[3])); + CommonTokenStream tokens = new CommonTokenStream(lexer); + SimpleSMTLIBParser parser = new SimpleSMTLIBParser(tokens); + StartBoolContext tree = parser.startBool(); + + HashSet locationReferences = new HashSet(); + HashMap variableComparisons = new HashMap(); + BoolExpr condition = ExprBuilder.buildBoolExpr(tree, locationReferences, variableComparisons); + boolean supress = Boolean.parseBoolean(toks[0]); + Integer from = new Integer(toks[1]); + Integer to = new Integer(toks[2]); + DSFAMove move = new DSFAMove(condition, supress, to, finalStates.contains(to), + locationReferences, variableComparisons); + if (!moves.containsKey(from)) { + moves.put(from, new ArrayList()); + } + // System.out.print("move from: " ); + // System.out.println(from); + moves.get(from).add(move); + } + inv.dsfas.add(new DSFA(name, startState, finalStates, moves, new ArrayList(), + variableList)); + } + + @SuppressWarnings("unchecked") + private static DataStream createAndAttachGroupBy(Invariant inv, + DataStream parsedPackets, String name, TypeInformation ti) { + // System.out.print("in createAndAttachGroupBy \n "); + KeyedStream ks; + if (streams.containsKey(inv.groupByFields)) { + ks = (KeyedStream) streams.get(inv.groupByFields); + } else { + ks = parsedPackets.keyBy(new KeySelector() { + private static final long serialVersionUID = 1L; + + @Override + public T getKey(Packet p) throws Exception { + T tuple = (T) Tuple.newInstance(inv.groupByFields.size()); + for (int i = 0; i < inv.groupByFields.size(); ++i) { + int[] value = p.get(inv.groupByFields.get(i)); + int hashCode = 0; + for (int j = 0; j < value.length; ++j) { + hashCode = (int) (31 * hashCode + (value[j] & 0xffffffffL)); + } + tuple.setField(hashCode, i); + } + + return tuple; + } + }, ti); + streams.put(inv.groupByFields, ks); + } + + return ks.process(new LocalSFAProcessor(inv.dsfas, inv.filter, inv.negatedLocExpr)).name(name); + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/AddExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/AddExpr.java new file mode 100644 index 0000000..c4db0de --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/AddExpr.java @@ -0,0 +1,38 @@ +package org.msr.mnr.verification.expressions; + +import java.util.ArrayList; +import java.util.List; +import java.util.HashSet; + +import org.msr.mnr.verification.dsfa.ConstraintTreeNode; +import org.msr.mnr.verification.utils.Packet; + +public class AddExpr extends ArithExpr { + private static final long serialVersionUID = 4L; + + public AddExpr(Object left, Object right) { + super(left, right); + } + + @Override + public int[] evaluate(Packet p) { + int[] leftValue = evalSingle(left, leftType, p); + int[] rightValue = evalSingle(right, rightType, p); + return applyArithOp(leftValue, rightValue, "+"); + } + + + @Override + public int[] evaluate(Packet p, ArrayList constraints, + ArrayList locationList, ArrayList variableList) { + + int[] leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + int[] rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + return applyArithOp(leftValue, rightValue, "+"); + } + + @Override + public String toString() { + return "(" + left.toString() + " + " + right.toString() + ")"; + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/AndExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/AndExpr.java new file mode 100644 index 0000000..f2b6140 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/AndExpr.java @@ -0,0 +1,51 @@ +package org.msr.mnr.verification.expressions; + +import java.util.ArrayList; +import java.util.List; + +import org.msr.mnr.verification.dsfa.ConstraintTreeNode; +import org.msr.mnr.verification.utils.Packet; + +public class AndExpr extends BoolExpr { + private static final long serialVersionUID = 6611616845137066002L; + private BoolExpr e1, e2; + + public AndExpr(Object left, Object right) { + super(left, right); + if (left instanceof BoolExpr) { + e1 = (BoolExpr) left; + } else { + throw new RuntimeException("Unexpected expression left AndExpr."); + } + + if (right instanceof BoolExpr) { + e2 = (BoolExpr) right; + } else { + throw new RuntimeException("Unexpected expression right AndExpr."); + } + + } + + + @Override + public Boolean evaluate(Packet p, ArrayList constraints, ArrayList locationList, + ArrayList variableList, Integer currentState, + List rootConstraints) { + Boolean ret = e1.evaluate(p, constraints, locationList, variableList, currentState, + rootConstraints) + && e2.evaluate(p, constraints, locationList, variableList, currentState, + rootConstraints); + return negated ? !ret : ret; + } + + @Override + public Boolean evaluate(Packet p) { + Boolean ret = e1.evaluate(p) && e2.evaluate(p); + return negated ? !ret : ret; + } + + @Override + public String toString() { + return (negated ? "!" : "") + "(" + e1.toString() + " && " + e2.toString() + ")"; + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/ArithExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/ArithExpr.java new file mode 100644 index 0000000..9f4a52d --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/ArithExpr.java @@ -0,0 +1,43 @@ +package org.msr.mnr.verification.expressions; + +import java.util.ArrayList; + +import org.msr.mnr.verification.utils.Packet; +import org.msr.mnr.verification.utils.ParseIntArray; + +public abstract class ArithExpr extends Expr { + private static final long serialVersionUID = 202005082232L; + + public ArithExpr(Object left, Object right) { + super(left, right); + } + + public ArithExpr(Object left) { + super(left); + } + + @Override + public abstract int[] evaluate(Packet p); + + public abstract int[] evaluate(Packet p, ArrayList constraints, + ArrayList locationList, ArrayList variableList); + + public static int[] applyArithOp(int[] leftValue, int[] rightValue, String operand) { + long leftVal = ParseIntArray.getLong(leftValue); + long rightVal = ParseIntArray.getLong(rightValue); + switch(operand) { + case "+": + return ParseIntArray.fromLong(leftVal + rightVal); + case "-": + return ParseIntArray.fromLong(leftVal - rightVal); + case "*": + return ParseIntArray.fromLong(leftVal * rightVal); + case "/": + return ParseIntArray.fromLong(leftVal / rightVal); + default: + break; + } + throw new RuntimeException("Arith Operation not found: " + operand); + } + +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/BoolExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/BoolExpr.java new file mode 100644 index 0000000..30146cd --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/BoolExpr.java @@ -0,0 +1,38 @@ +package org.msr.mnr.verification.expressions; + +import java.util.ArrayList; +import java.util.List; +import java.util.HashSet; +import java.util.HashMap; + +import org.msr.mnr.verification.dsfa.ConstraintTreeNode; +import org.msr.mnr.verification.utils.Packet; + +public abstract class BoolExpr extends Expr { + private static final long serialVersionUID = 2806048939951936622L; + protected boolean negated = false; + + public BoolExpr(Object left, Object right) { + super(left, right); + } + + public BoolExpr() { + super(); + } + + public BoolExpr(Object left, Object right, HashSet locationReferences, + HashMap variableComparisons) { + super(left, right, locationReferences, variableComparisons); + } + + public void toggleNegated() { + negated = !negated; + } + + public abstract Boolean evaluate(Packet p, ArrayList constraints, + ArrayList locationList, ArrayList variableList, Integer currentState, + List rootConstraints); + + @Override + public abstract Boolean evaluate(Packet p); +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/DivExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/DivExpr.java new file mode 100644 index 0000000..44179bd --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/DivExpr.java @@ -0,0 +1,38 @@ +package org.msr.mnr.verification.expressions; + +import java.util.ArrayList; +import java.util.List; +import java.util.HashSet; + +import org.msr.mnr.verification.dsfa.ConstraintTreeNode; +import org.msr.mnr.verification.utils.Packet; + +public class DivExpr extends ArithExpr { + private static final long serialVersionUID = 3L; + + public DivExpr(Object left, Object right) { + super(left, right); + } + + @Override + public int[] evaluate(Packet p) { + int[] leftValue = evalSingle(left, leftType, p); + int[] rightValue = evalSingle(right, rightType, p); + return applyArithOp(leftValue, rightValue, "/"); + } + + @Override + public int[] evaluate(Packet p, ArrayList constraints, + ArrayList locationList, ArrayList variableList) { + + int[] leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + int[] rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + return applyArithOp(leftValue, rightValue, "/"); + } + + + @Override + public String toString() { + return "(" + left.toString() + " / " + right.toString() + ")"; + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/EqExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/EqExpr.java new file mode 100644 index 0000000..f7dc647 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/EqExpr.java @@ -0,0 +1,106 @@ +package org.msr.mnr.verification.expressions; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Arrays; + +import org.msr.mnr.verification.dsfa.ConstraintTreeNode; +import org.msr.mnr.verification.dsfa.DSFA; +import org.msr.mnr.verification.utils.Packet; +import org.msr.mnr.verification.utils.ParseIntArray; + + +public class EqExpr extends BoolExpr { + private static final long serialVersionUID = 3139893660332363038L; + + public EqExpr(Object left, Object right, HashSet locationReferences, + HashMap variableComparisons) { + super(left, right, locationReferences, variableComparisons); + } + + @Override + public Boolean evaluate(Packet p, ArrayList constraints, ArrayList locationList, + ArrayList variableList, Integer currentState, List rootConstraints) { + + // instantiate any packet fields. That way locations and variables are only + // dealing with int[]s + // System.out.println("ConditionA: " + this.toString()); + int[] leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + int[] rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + // System.out.println("Comparing: " + ParseIntArray.getString(leftValue) + " with: " + ParseIntArray.getString(rightValue)); + + // Now parse variables. Need to do this after the above so that we have the concrete int[] values + if (leftType == ExprType.VARIABLE || leftType == ExprType.LOCATION_VAR) { + int level; + if (leftType == ExprType.VARIABLE) { + level = locationList.size() + variableList.indexOf(left); + } else { + level = locationList.indexOf(left); + } + + if (constraints.get(level) == null) { + // Unconstrained, we may need to split, but only if we don't have an identical + // set of constraints already + assert(rightValue != null); + DSFA.splitIfNew(constraints, 0, rightValue, currentState, rootConstraints); + return negated; // normally false + } else { + // We have a constraint + leftValue = constraints.get(level); + } + } else if (rightType == ExprType.VARIABLE || rightType == ExprType.LOCATION_VAR) { + int level; + if (rightType == ExprType.VARIABLE) { + level = locationList.size() + variableList.indexOf(right); + } else { + level = locationList.indexOf(right); + } + + if (constraints.get(level) == null) { + // Unconstrained, we may need to split, but only if we don't have an identical + // set of constraints already + assert(leftValue != null); + DSFA.splitIfNew(constraints, 0, leftValue, currentState, rootConstraints); + return negated; // normally false + } else { + // We have a constraint + rightValue = constraints.get(level); + } + } else if (leftValue == null || rightValue == null) { + throw new RuntimeException("Unknown Eq Expression fields: " + left + " and " + right); + } + + // equal ^ negated = false + // equal ^ not negated = true + // not equal ^ negated = true + // not equal ^ not negated = false + + return (ParseIntArray.compare(leftValue, rightValue) == 0) ^ (negated); + } + + @Override + public Boolean evaluate(Packet p) { + // instantiate any packet fields. That way locations and variables are only + // dealing with int[]s + // System.out.println("ConditionB: " + this.toString()); + int[] leftValue = evalSingle(left, leftType, p); + int[] rightValue = evalSingle(right, rightType, p); + // System.out.println("Comparing: " + Arrays.toString(leftValue) + " with: " + Arrays.toString(rightValue)); + // equal ^ negated = false + // equal ^ not negated = true + // not equal ^ negated = true + // not equal ^ not negated = false + return (ParseIntArray.compare(leftValue, rightValue) == 0) ^ (negated); + } + + @Override + public String toString() { + if (rightType == ExprType.VALUE) { + return (negated ? "!" : "") + "(" + left + " == " + Arrays.toString((int[]) right) + ")"; + } else { + return (negated ? "!" : "") + "(" + left + " == " + right + ")"; + } + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/Expr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/Expr.java new file mode 100644 index 0000000..070903c --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/Expr.java @@ -0,0 +1,169 @@ +package org.msr.mnr.verification.expressions; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.HashSet; +import java.util.ArrayList; + +import org.msr.mnr.verification.utils.Packet; +import org.msr.mnr.verification.utils.ParseIntArray; + +public abstract class Expr implements Serializable { + private static final long serialVersionUID = 20200508215300L; + + public abstract Object evaluate(Packet p); + + protected enum ExprType { + PACKET, VALUE, ARITH, VARIABLE, BOOL, TIME, RHO, LOCATION_VAR; + } + + protected ExprType leftType, rightType; + protected Object left, right; + + private void init(Object _left, Object _right) { + this.leftType = parseType(_left); + this.left = correctValueType(_left, leftType); + + if (_right != null) { + this.rightType = parseType(_right); + this.right = correctValueType(_right,rightType); + } else { + this.rightType = null; + this.right = null; + } + + } + + private static Object correctValueType(Object obj, ExprType objType) { + if (objType == ExprType.VALUE && obj instanceof String) { + String s = ((String) obj).toLowerCase(); + s = s.replace("\"", "").replace("|",""); + return ParseIntArray.fromBytes(s.getBytes(), 0, s.length()); + } else { + return obj; + } + } + + private ExprType parseType(Object o) { + if (o instanceof ArithExpr) { + return ExprType.ARITH; + } else if (o instanceof BoolExpr) { + return ExprType.BOOL; + } else if (!(o instanceof String)) { + return ExprType.VALUE; + } else if (o instanceof NegativeContext) { + throw new RuntimeException("NegativeContexts should not get to this point"); + } + + String s = (String) o; + if (s.startsWith("$")) { + return ExprType.VARIABLE; + } else if (s.equals("META_rho")) { + return ExprType.RHO; + } else if (s.equals("TIME")) { + return ExprType.TIME; + } else if (s.contains("|\"") && s.contains("\"|")) { + return ExprType.VALUE; + } + + return ExprType.PACKET; + } + + public Expr(Object left, Object right) { + init(left, right); + } + + public Expr(Object only) { + init(only, null); + } + + public Expr() { + left = null; + right = null; + leftType = null; + rightType = null; + } + + public static int[] evalSingle(Object val, ExprType valType, Packet p) { + int[] outValue = null; + switch (valType) { + case PACKET: + outValue = p.get(val); + break; + case VALUE: + outValue = (int[]) val; + break; + case ARITH: + outValue = ((ArithExpr) val).evaluate(p); + break; + default: + System.out.println(valType); + throw new RuntimeException("Unexpected expression simple evalSingle. Got Unknown Type"); + } + return outValue; + } + + public static int[] evalSingle(Object val, ExprType valType, Packet p, ArrayList constraints, ArrayList locationList, + ArrayList variableList) { + int[] outValue = null; + int level; + // System.out.println(valType); + switch (valType) { + case PACKET: + outValue = p.get(val); + break; + case VALUE: + outValue = (int[]) val; + break; + case TIME: + outValue = ParseIntArray.fromLong(p.getTime()); + break; + case RHO: + outValue = p.getLocation(); + break; + case VARIABLE: + level = locationList.size() + variableList.indexOf(val); + outValue = constraints.get(level); + break; + case LOCATION_VAR: + level = locationList.indexOf(val); + outValue = constraints.get(level); + break; + case ARITH: + outValue = ((ArithExpr) val).evaluate(p, constraints, locationList, variableList); + break; + default: + System.out.println(valType); + throw new RuntimeException("Unexpected expression variable evalSingle."); + } + return outValue; + } + + + public Expr(Object left, Object right, HashSet locationReferences, + HashMap variableComparisons) { + init(left, right); + + if (leftType == ExprType.RHO) { + String s = right instanceof String ? (String) right : ParseIntArray.printString((int[]) right); + locationReferences.add(s); + rightType = ExprType.LOCATION_VAR; + } else if (leftType == ExprType.VARIABLE) { + String s = right instanceof String ? (String) right : ParseIntArray.printString((int[]) right); + variableComparisons.put((String) left, s); + } + + if (rightType == ExprType.RHO) { + String s = left instanceof String ? (String) left : ParseIntArray.printString((int[]) left); + locationReferences.add(s); + leftType = ExprType.LOCATION_VAR; + } else if (rightType == ExprType.VARIABLE) { + String s = left instanceof String ? (String) left : ParseIntArray.printString((int[]) left); + variableComparisons.put((String) right, s); + } + + } + + @Override + public abstract String toString(); +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/ExprBuilder.java b/verification/src/main/java/org/msr/mnr/verification/expressions/ExprBuilder.java new file mode 100644 index 0000000..bdc6a7b --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/ExprBuilder.java @@ -0,0 +1,191 @@ +package org.msr.mnr.verification.expressions; + +import java.util.HashMap; +import java.util.HashSet; + +import org.antlr.v4.runtime.tree.ParseTree; +import org.msr.mnr.verification.utils.ParseIntArray; +import org.msr.verification.SimpleSMTLIBParser.ArithExpressionContext; +import org.msr.verification.SimpleSMTLIBParser.BoolExpressionContext; +import org.msr.verification.SimpleSMTLIBParser.StartBoolContext; +import org.msr.verification.SimpleSMTLIBParser.VarBindingContext; + + +public class ExprBuilder { + private static boolean isValid(ParseTree ctx) { + return ctx != null; + } + + public static BoolExpr buildBoolExpr(StartBoolContext ctx, HashSet locationReferences, + HashMap variableComparisons) { + return buildBoolExpr(ctx.boolExpression(), new HashMap(), locationReferences, + variableComparisons); + } + + /** + * boolExpression + * : ParOpen boolOp boolExpression+ ParClose + * | ParOpen compOp arithExpression arithExpression ParClose + * | ParOpen GRW_Let ParOpen var_binding+ ParClose term ParClose + * | boundVar + * | PS_True + * | PS_False + * ; + */ + + public static BoolExpr buildBoolExpr(BoolExpressionContext ctx, + HashMap bindings, HashSet locationReferences, + HashMap variableComparisons) { + BoolExpr ret = null; + if (isValid(ctx.boolOp())) { + // ParOpen boolOp term+ ParClose + ret = buildBoolExpr(ctx.boolExpression(0), bindings, locationReferences, + variableComparisons); + if (ctx.boolOp().getText().equals("and")) { + for (int i = 1; i < ctx.boolExpression().size(); ++i) { + ret = new AndExpr(ret, buildBoolExpr(ctx.boolExpression(i), bindings, + locationReferences, variableComparisons)); + } + } else if (ctx.boolOp().getText().equals("or")) { + for (int i = 1; i < ctx.boolExpression().size(); ++i) { + ret = new OrExpr(ret, buildBoolExpr(ctx.boolExpression(i), bindings, + locationReferences, variableComparisons)); + } + } else if (ctx.boolOp().getText().equals("not")) { + assert (ctx.boolExpression().size() == 1); + ret.negated = true; + } + } else if (isValid(ctx.compOp())) { + // ParOpen compOp expression expression ParClose + Object left = buildArithExpr(ctx.arithExpression(0)); + Object right = buildArithExpr(ctx.arithExpression(1)); + + switch (ctx.compOp().getText()) { + case "=": + // Pass constraints in case there are any + ret = new EqExpr(left, right, locationReferences, variableComparisons); + break; + case "<": + ret = new LtExpr(left, right); + break; + case "<=": + ret = new LeExpr(left, right); + break; + case ">": + ret = new GtExpr(left, right); + break; + case ">=": + ret = new GeExpr(left, right); + } + } else if (isValid(ctx.GRW_Let())) { + // ParOpen GRW_Let ParOpen var_binding+ ParClose term ParClose + @SuppressWarnings("unchecked") + HashMap newBindings = (HashMap) bindings.clone(); + for (VarBindingContext vb: ctx.varBinding()) { + buildVarBinding(vb, bindings, newBindings, locationReferences, variableComparisons); + } + + assert(ctx.boolExpression().size() == 1); + ret = buildBoolExpr(ctx.boolExpression(0), newBindings, locationReferences, variableComparisons); + } else if (isValid(ctx.boundVar())) { + // boundVar + ret = bindings.get(ctx.boundVar().getText()); + } else if (isValid(ctx.PS_True())) { + // PS_True + ret = new TrueExpr(); + } else if (isValid(ctx.PS_False()) ) { + // PS_False + ret = new TrueExpr(); + ret.toggleNegated(); + } else { + throw new RuntimeException("Unknown boolExpression syntax"); + } + + // System.out.print("Return Boool: "); + // System.out.println(ret); + + return ret; + } + + /** + * arithExpression + * : ParOpen GRW_Ite boolExpression arithExpression arithExpression ParClose + * | ParOpen arithOp arithExpression+ ParClose + * | terminal + * ; + */ + public static Object buildArithExpr(ArithExpressionContext ctx) { + Object ret; + if (isValid(ctx.GRW_Ite())) { + // ParOpen GRW_Ite boolExpression arithExpression arithExpression ParClose + BoolExpr condition = buildBoolExpr(ctx.boolExpression(), new HashMap(), null, null); + Object left = buildArithExpr(ctx.arithExpression(0)); + Object right = buildArithExpr(ctx.arithExpression(1)); + + ret = new IteExpr(condition, left, right); + + } else if (isValid(ctx.arithOp())) { + // ParOpen arithOp arithExpression+ ParClose + if (ctx.arithExpression().size() == 1) { + assert(ctx.arithOp().getText().equals("-")); + Object only = buildArithExpr(ctx.arithExpression(0)); + ret = new NegativeContext(only); + } else if (ctx.arithExpression().size() == 2) { + ret = buildArithExpr(ctx.arithExpression(0)); + + for (int i = 1; i < ctx.arithExpression().size(); ++i) { + Object right = buildArithExpr(ctx.arithExpression(i)); + + if (ctx.arithOp().getText().equals("+")) { + if (right instanceof NegativeContext) { + NegativeContext negatedRight = (NegativeContext)right; + ret = new SubExpr(ret, negatedRight.value); + } else { + ret = new AddExpr(ret, right); + } + } else if (ctx.arithOp().getText().equals("-")) { + ret = new SubExpr(ret, right); + } else if (ctx.arithOp().getText().equals("*")) { + if (ret instanceof NegativeContext) { + NegativeContext negatedLeft = (NegativeContext)ret; + assert(negatedLeft.value instanceof int[]); + int[] val = (int[])negatedLeft.value; + assert(ParseIntArray.printString(val).equals("1")); + ret = new NegativeContext(right); + } else { + ret = new MulExpr(ret, right); + } + } else if (ctx.arithOp().getText().equals("/")) { + ret = new DivExpr(ret, right); + } else { + throw new RuntimeException("Unknown arithExpression syntax"); + } + } + } else { + throw new RuntimeException("Unknown arithExpression syntax"); + } + } else if (isValid(ctx.terminal())) { + if (isValid(ctx.terminal().UndefinedSymbol())) { + ret = ctx.terminal().getText(); + } else { + ret = ParseIntArray.fromLong(Long.parseLong(ctx.terminal().getText())); + } + } else { + throw new RuntimeException("Unknown arithExpression syntax"); + } + + return ret; + } + + /** + * varBinding + * : ParOpen UndefinedSymbol boolExpression ParClose + * ; + */ + private static void buildVarBinding(VarBindingContext ctx, + HashMap oldBindings, HashMap newBindings, + HashSet locationReferences, HashMap variableComparisons) { + newBindings.put(ctx.UndefinedSymbol().getText(), buildBoolExpr(ctx.boolExpression(), + oldBindings, locationReferences, variableComparisons)); + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/GeExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/GeExpr.java new file mode 100644 index 0000000..5fb71dd --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/GeExpr.java @@ -0,0 +1,41 @@ +package org.msr.mnr.verification.expressions; + +import java.util.ArrayList; +import java.util.List; + +import org.msr.mnr.verification.dsfa.ConstraintTreeNode; +import org.msr.mnr.verification.utils.Packet; +import org.msr.mnr.verification.utils.ParseIntArray; + +public class GeExpr extends BoolExpr { + private static final long serialVersionUID = -4459587590014092390L; + + public GeExpr(Object left, Object right) { + super(left, right); + } + + @Override + public Boolean evaluate(Packet p, ArrayList constraints, ArrayList locationList, + ArrayList variableList, Integer currentState, + List rootConstraints) { + int[] leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + int[] rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + + return (ParseIntArray.compare(leftValue, rightValue) >= 0) ^ (negated); + } + + @Override + public Boolean evaluate(Packet p) { + // instantiate any packet fields. That way locations and variables are only + // dealing with int[]s + int[] leftValue = evalSingle(left, leftType, p); + int[] rightValue = evalSingle(right, rightType, p); + + return (ParseIntArray.compare(leftValue, rightValue) >= 0) ^ (negated); + } + + @Override + public String toString() { + return (negated ? "!" : "") + "(" + left + " >= " + right + ")"; + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/GtExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/GtExpr.java new file mode 100644 index 0000000..56d3b38 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/GtExpr.java @@ -0,0 +1,41 @@ +package org.msr.mnr.verification.expressions; + +import java.util.ArrayList; +import java.util.List; + +import org.msr.mnr.verification.dsfa.ConstraintTreeNode; +import org.msr.mnr.verification.utils.Packet; +import org.msr.mnr.verification.utils.ParseIntArray; + +public class GtExpr extends BoolExpr { + private static final long serialVersionUID = 7867810668313318987L; + + public GtExpr(Object left, Object right) { + super(left, right); + } + + @Override + public Boolean evaluate(Packet p, ArrayList constraints, ArrayList locationList, + ArrayList variableList, Integer currentState, + List rootConstraints) { + + int[] leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + int[] rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + return (ParseIntArray.compare(leftValue, rightValue) > 0) ^ (negated); + } + + @Override + public Boolean evaluate(Packet p) { + // instantiate any packet fields. That way locations and variables are only + // dealing with int[]s + int[] leftValue = evalSingle(left, leftType, p); + int[] rightValue = evalSingle(right, rightType, p); + + return (ParseIntArray.compare(leftValue, rightValue) > 0) ^ (negated); + } + + @Override + public String toString() { + return (negated ? "!" : "") + "(" + left + " > " + right + ")"; + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/IteExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/IteExpr.java new file mode 100644 index 0000000..322991c --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/IteExpr.java @@ -0,0 +1,36 @@ +package org.msr.mnr.verification.expressions; + +import org.msr.mnr.verification.utils.Packet; + +public class IteExpr extends Expr { + private static final long serialVersionUID = 7L; + + private BoolExpr condition; + + public IteExpr(BoolExpr condition, Object left, Object right) { + super(left,right); + this.condition = condition; + } + + @Override + public int[] evaluate(Packet p) { + // System.out.println("input packet: "); + // System.out.println(p); + boolean branch = condition.evaluate(p); + // System.out.print("branch output: "); + // System.out.println(branch); + if (branch) { + // System.out.println("going in left"); + return evalSingle(left, leftType, p); + } else { + // System.out.println("going in right"); + return evalSingle(right, rightType, p); + } + } + + + @Override + public String toString() { + return "( ITE " + condition.toString() + " ? " + left.toString() + " : " + right.toString() + ")"; + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/LeExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/LeExpr.java new file mode 100644 index 0000000..1ad5486 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/LeExpr.java @@ -0,0 +1,46 @@ +package org.msr.mnr.verification.expressions; + +import java.util.ArrayList; +import java.util.List; +import java.util.Arrays; + +import org.msr.mnr.verification.dsfa.ConstraintTreeNode; +import org.msr.mnr.verification.utils.Packet; +import org.msr.mnr.verification.utils.ParseIntArray; + +public class LeExpr extends BoolExpr { + private static final long serialVersionUID = 8156224424081359464L; + + public LeExpr(Object left, Object right) { + super(left, right); + } + + @Override + public Boolean evaluate(Packet p, ArrayList constraints, ArrayList locationList, + ArrayList variableList, Integer currentState, + List rootConstraints) { + + int[] leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + int[] rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + + return (ParseIntArray.compare(leftValue, rightValue) <= 0) ^ (negated); + } + + @Override + public Boolean evaluate(Packet p) { + // instantiate any packet fields. That way locations and variables are only + // dealing with int[]s + int[] leftValue = evalSingle(left, leftType, p); + int[] rightValue = evalSingle(right, rightType, p); + + return (ParseIntArray.compare(leftValue, rightValue) <= 0) ^ (negated); + } + + @Override + public String toString() { + if (leftType == ExprType.VALUE) { + return (negated ? "!" : "") + "(" + Arrays.toString((int[]) left) + " <= " + right + ")"; + } + return (negated ? "!" : "") + "(" + left + " <= " + right + ")"; + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/LtExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/LtExpr.java new file mode 100644 index 0000000..14d601c --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/LtExpr.java @@ -0,0 +1,41 @@ +package org.msr.mnr.verification.expressions; + +import java.util.ArrayList; +import java.util.List; + +import org.msr.mnr.verification.dsfa.ConstraintTreeNode; +import org.msr.mnr.verification.utils.Packet; +import org.msr.mnr.verification.utils.ParseIntArray; + +public class LtExpr extends BoolExpr { + private static final long serialVersionUID = -4691041781105961880L; + + public LtExpr(Object left, Object right) { + super(left, right); + } + + @Override + public Boolean evaluate(Packet p, ArrayList constraints, ArrayList locationList, + ArrayList variableList, Integer currentState, + List rootConstraints) { + int[] leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + int[] rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + + return (ParseIntArray.compare(leftValue, rightValue) < 0) ^ (negated); + } + + @Override + public Boolean evaluate(Packet p) { + // instantiate any packet fields. That way locations and variables are only + // dealing with int[]s + int[] leftValue = evalSingle(left, leftType, p); + int[] rightValue = evalSingle(right, rightType, p); + + return (ParseIntArray.compare(leftValue, rightValue) < 0) ^ (negated); + } + + @Override + public String toString() { + return (negated ? "!" : "") + "(" + left + " < " + right + ")"; + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/MulExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/MulExpr.java new file mode 100644 index 0000000..081c284 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/MulExpr.java @@ -0,0 +1,34 @@ +package org.msr.mnr.verification.expressions; + +import java.util.ArrayList; + +import org.msr.mnr.verification.utils.Packet; + +public class MulExpr extends ArithExpr { + private static final long serialVersionUID = 3L; + + public MulExpr(Object left, Object right) { + super(left, right); + } + + @Override + public int[] evaluate(Packet p) { + int[] leftValue = evalSingle(left, leftType, p); + int[] rightValue = evalSingle(right, rightType, p); + return applyArithOp(leftValue, rightValue, "*"); + } + + @Override + public int[] evaluate(Packet p, ArrayList constraints, + ArrayList locationList, ArrayList variableList) { + + int[] leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + int[] rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + return applyArithOp(leftValue, rightValue, "*"); + } + + @Override + public String toString() { + return "(" + left.toString() + " * " + right.toString() + ")"; + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/NegativeContext.java b/verification/src/main/java/org/msr/mnr/verification/expressions/NegativeContext.java new file mode 100644 index 0000000..97bff35 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/NegativeContext.java @@ -0,0 +1,8 @@ +package org.msr.mnr.verification.expressions; + +public class NegativeContext { + Object value; + public NegativeContext(Object value) { + this.value = value; + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/OrExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/OrExpr.java new file mode 100644 index 0000000..fb0d847 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/OrExpr.java @@ -0,0 +1,50 @@ +package org.msr.mnr.verification.expressions; + +import java.util.ArrayList; +import java.util.List; + +import org.msr.mnr.verification.dsfa.ConstraintTreeNode; +import org.msr.mnr.verification.utils.Packet; + +public class OrExpr extends BoolExpr { + private static final long serialVersionUID = -2030011970325054536L; + private BoolExpr e1, e2; + + public OrExpr(Object left, Object right) { + super(left, right); + if (left instanceof BoolExpr) { + e1 = (BoolExpr) left; + } else { + throw new RuntimeException("Unexpected expression left OrExpr."); + } + + if (right instanceof BoolExpr) { + e2 = (BoolExpr) right; + } else { + throw new RuntimeException("Unexpected expression right OrExpr."); + } + + } + + @Override + public Boolean evaluate(Packet p, ArrayList constraints, ArrayList locationList, + ArrayList variableList, Integer currentState, + List rootConstraints) { + Boolean ret = e1.evaluate(p, constraints, locationList, variableList, currentState, + rootConstraints) + || e2.evaluate(p, constraints, locationList, variableList, currentState, + rootConstraints); + return negated ? !ret : ret; + } + + @Override + public Boolean evaluate(Packet p) { + Boolean ret = e1.evaluate(p) || e2.evaluate(p); + return negated ? !ret : ret; + } + + @Override + public String toString() { + return (negated ? "!" : "") + "(" + e1.toString() + " || " + e2.toString() + ")"; + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/SubExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/SubExpr.java new file mode 100644 index 0000000..5e65d3d --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/SubExpr.java @@ -0,0 +1,37 @@ +package org.msr.mnr.verification.expressions; + +import java.util.ArrayList; + +import org.msr.mnr.verification.utils.Packet; + +public class SubExpr extends ArithExpr { + private static final long serialVersionUID = 5L; + + public SubExpr(Object left, Object right) { + super(left, right); + } + + @Override + public int[] evaluate(Packet p) { + int[] leftValue = evalSingle(left, leftType, p); + int[] rightValue = evalSingle(right, rightType, p); + + return applyArithOp(leftValue, rightValue, "-"); + } + + @Override + public int[] evaluate(Packet p, ArrayList constraints, + ArrayList locationList, ArrayList variableList) { + + int[] leftValue = evalSingle(left, leftType, p, constraints, locationList, variableList); + int[] rightValue = evalSingle(right, rightType, p, constraints, locationList, variableList); + + return applyArithOp(leftValue, rightValue, "-"); + } + + + @Override + public String toString() { + return "(" + left.toString() + " - " + right.toString() + ")"; + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/TerminalExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/TerminalExpr.java new file mode 100644 index 0000000..3534491 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/TerminalExpr.java @@ -0,0 +1,104 @@ +package org.msr.mnr.verification.expressions; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Arrays; + +import org.msr.mnr.verification.utils.ParseIntArray; + +public abstract class TerminalExpr extends BoolExpr { + private static final long serialVersionUID = 8363964636619957082L; + + protected enum TerminalType { + PACKET, VARIABLE, RHO, LOCATION_VAR, TIME, VALUE; + } + + protected TerminalType leftType, rightType; + protected Object left, right; + + private void init(Object left, Object right) { + // System.out.println("left") + this.leftType = parseType(left); + if (leftType == TerminalType.VALUE && left instanceof String) { + String s = ((String) left).toLowerCase(); + s = s.replace("\"", ""); + this.left = ParseIntArray.fromBytes(s.getBytes(), 0, s.length()); + // System.out.println("Left: " + Arrays.toString((int[]) this.left)); + } else { + this.left = left; + // System.out.println("Left: " + left); + } + this.rightType = parseType(right); + if (rightType == TerminalType.VALUE && right instanceof String) { + String s = ((String) right).toLowerCase(); + s = s.replace("\"", ""); + this.right = ParseIntArray.fromBytes(s.getBytes(), 0, s.length()); + // System.out.println("Right: " + Arrays.toString((int []) this.right)); + } else { + this.right = right; + // System.out.println("Right: " + right); + } + } + + private TerminalType parseType(Object o) { + if (!(o instanceof String)) { + return TerminalType.VALUE; + } + + String s = (String) o; + + if (s.startsWith("VAR_")) { + return TerminalType.VARIABLE; + } else if (s.equals("META_rho")) { + return TerminalType.RHO; + } else if (s.equals("META_deltat")) { + return TerminalType.TIME; + } + + if (((String) o).contains("\"")) { + return TerminalType.VALUE; + } + + return TerminalType.PACKET; + } + + public TerminalExpr(Object left, Object right) { + init(left, right); + } + + public TerminalExpr() { + left = null; + right = null; + leftType = null; + rightType = null; + } + + public TerminalExpr(Object left, Object right, HashSet locationReferences, + HashMap variableComparisons) { + // TODO: Pass fields here + init(left, right); + + if (leftType == TerminalType.RHO) { + String s = right instanceof String ? (String) right : ParseIntArray.printString((int[]) right); + locationReferences.add(s); + rightType = TerminalType.LOCATION_VAR; + } else if (leftType == TerminalType.VARIABLE) { + String s = right instanceof String ? (String) right : ParseIntArray.printString((int[]) right); + variableComparisons.put((String) left, s); + } + + if (rightType == TerminalType.RHO) { + String s = left instanceof String ? (String) left : ParseIntArray.printString((int[]) left); + locationReferences.add(s); + leftType = TerminalType.LOCATION_VAR; + } else if (rightType == TerminalType.VARIABLE) { + // System.out.print("right: "); + // System.out.println(right); + // System.out.print("left: "); + // System.out.println(left); + // System.out.println(variableComparisons); + String s = left instanceof String ? (String) left : ParseIntArray.printString((int[]) left); + variableComparisons.put((String) right, s); + } + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/expressions/TrueExpr.java b/verification/src/main/java/org/msr/mnr/verification/expressions/TrueExpr.java new file mode 100644 index 0000000..9b46260 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/expressions/TrueExpr.java @@ -0,0 +1,28 @@ +package org.msr.mnr.verification.expressions; + +import java.util.ArrayList; +import java.util.List; + +import org.msr.mnr.verification.dsfa.ConstraintTreeNode; +import org.msr.mnr.verification.utils.Packet; + +public class TrueExpr extends BoolExpr { + private static final long serialVersionUID = -5278681248335478957L; + + @Override + public Boolean evaluate(Packet p, ArrayList constraints, ArrayList locationList, + ArrayList variableList, Integer currentState, + List rootConstraints) { + return !negated; // normally true + } + + @Override + public Boolean evaluate(Packet p) { + return !negated; // normally true + } + + @Override + public String toString() { + return (negated ? "!" : "") + "True"; + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/parser/FirewallParser.java b/verification/src/main/java/org/msr/mnr/verification/parser/FirewallParser.java new file mode 100644 index 0000000..f69daa8 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/parser/FirewallParser.java @@ -0,0 +1,117 @@ +package org.msr.mnr.verification.parser; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; + +import org.apache.flink.api.common.functions.FlatMapFunction; +import org.apache.flink.util.Collector; +import org.msr.mnr.verification.utils.Packet; +import org.msr.mnr.verification.utils.ParseIntArray; + +import java.text.NumberFormat; +import java.util.Locale; +import java.text.ParseException; + +public class FirewallParser implements FlatMapFunction { + private static final long serialVersionUID = -5308869395657847239L; + private static final NumberFormat format = NumberFormat.getInstance(Locale.US); + + @Override + public void flatMap(String data, Collector out) throws IOException { + if(data.startsWith("#") || data.length() == 0 || data.startsWith("time")) { + return; + } + // System.out.println(data); + System.out.print(System.currentTimeMillis()/1000.0); + System.out.println(",1"); + + // Remove this Try Catch to see the issue + // try { + Packet p = new Packet(); + String[] tokens = data.toLowerCase().split(";"); + int index = 0; + + p.setTime(Math.round(Double.parseDouble(tokens[index++]) * 1000.0)); + // index++; + + p.set("event_type", ParseIntArray.fromString(tokens[index++])); + // p.set("proto", tokens[index].getBytes(), 0, tokens[index++].length()); + p.set("transport_protocol", ParseIntArray.fromString(tokens[index++])); + + // if (tokens[index].length() > 0) { + // p.set("flow_id", ParseIntArray.fromString(tokens[index++])); + // } else { + // index++; + // } + if (tokens[index].length() > 0) { + p.set("flow_state", ParseIntArray.fromString(tokens[index++])); + } else { + index++; + } + + p.set("srcIp", tokens[index].getBytes(), 0, tokens[index++].length()); + p.set("dstIp", tokens[index].getBytes(), 0, tokens[index++].length()); + + + if (tokens[index].length() > 0) { + p.set("srcL4Port", ParseIntArray.fromString(tokens[index++])); + } else { + index++; + } + + if (tokens[index].length() > 0) { + p.set("dstL4Port", ParseIntArray.fromString(tokens[index++])); + } else { + index++; + } + + // if (tokens[index].length() > 0) { + // p.set("replied", tokens[index].getBytes(), 0, tokens[index++].length()); + // } else { + // index++; + // } + + // p.set("reverse_srcIp", tokens[index].getBytes(), 0, tokens[index++].length()); + // p.set("reverse_dstIp", tokens[index].getBytes(), 0, tokens[index++].length()); + + + // if (tokens[index].length() > 0) { + // p.set("reverse_type", ParseIntArray.fromString(tokens[index++])); + // } else { + // index++; + // } + + // if (tokens[index].length() > 0) { + // p.set("reverse_code", ParseIntArray.fromString(tokens[index++])); + // } else { + // index++; + // } + + // if (tokens[index].length() > 0) { + // p.set("reverse_id", ParseIntArray.fromString(tokens[index++])); + // } else { + // index++; + // } + + // if (tokens[index].length() > 0) { + // p.set("reverse_srcL4Port", ParseIntArray.fromString(tokens[index++])); + // } else { + // index++; + // } + + // if (tokens[index].length() > 0) { + // p.set("reverse_dstL4Port", ParseIntArray.fromString(tokens[index++])); + // } else { + // index++; + // } + + // if (tokens[index].length() > 0) { + // p.set("assured", tokens[index].getBytes(), 0, tokens[index++].length()); + // } else { + // index++; + // } + p.setLocation(ParseIntArray.fromString(tokens[index++])); + out.collect(p); + + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/parser/PacketParser.java b/verification/src/main/java/org/msr/mnr/verification/parser/PacketParser.java new file mode 100644 index 0000000..11b9820 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/parser/PacketParser.java @@ -0,0 +1,169 @@ +package org.msr.mnr.verification.utils; + +import java.io.FileReader; +import java.io.IOException; +import java.io.Serializable; +import java.net.DatagramPacket; +import java.util.*; + +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; + +public class PacketParser implements Serializable { + private static final long serialVersionUID = 1L; + private ParseNode root = null; + + public PacketParser(String formatFile) { + JSONParser jsonParser = new JSONParser(); + try (FileReader reader = new FileReader(formatFile)) { + JSONObject config = (JSONObject) jsonParser.parse(reader); + + // Parse the packet format + JSONArray fieldFormat = (JSONArray) config.get("fields"); + root = parseFormat(fieldFormat, null); + } catch (IOException | ParseException e) { + e.printStackTrace(); + } + } + + private ParseNode parseFormat(JSONArray fieldFormat, ParseNode last) { + ParseNode first = null; + + for (Object nodeObj : fieldFormat) { + JSONObject node = (JSONObject) nodeObj; + + if (node.size() > 1) { + ConditionalNode cn = new ConditionalNode(last); + + for (Object conditionStr : node.keySet()) { + Condition cond = new Condition((String) conditionStr); + JSONArray child = (JSONArray) node.get(conditionStr); + cn.children.put(cond, parseFormat(child, null)); + } + + last = cn; + } else if (node.size() == 1) { + Object entryObj = node.entrySet().iterator().next(); + Map.Entry entry = Map.Entry.class.cast(entryObj); + last = new Field(entry.getKey(), entry.getValue(), last); + } else { + throw new IllegalArgumentException("Empty field object?"); + } + + if (first == null) { + first = last; + } + } + + return first; + } + + public void parsePacket(DatagramPacket dp, Packet p) { + parsePacketHelper(dp.getData(), 0, p, root); + } + + public void parsePacket(String input, Packet p) { + byte[] data = new byte[input.length()]; + for (int i = 0; i < input.length(); ++i) { + data[i] = Byte.parseByte(input.substring(i, i+1), 16); + } + parsePacketHelper(data, 0, p, root); + } + + private int parsePacketHelper(byte[] data, int index, Packet p, ParseNode current) { + int nextIndex = index; + if (current instanceof Field) { + // If it's a simple Field, parse it and set nextIndex + Field f = (Field) current; + nextIndex = index + f.length; + p.set(f.name, data, index, nextIndex); + } else { + // If it's a conditional, traverse the correct child + ConditionalNode cn = (ConditionalNode) current; + ParseNode child = cn.getChildNode(p); + + if (child != null) { + nextIndex = parsePacketHelper(data, index, p, child); + } + } + + if (current.next != null) { + nextIndex = parsePacketHelper(data, nextIndex, p, current.next); + } + return nextIndex; + } + + // =========================================================== + // ================= Helper classes ======================= + // =========================================================== + + private abstract class ParseNode implements Serializable { + private static final long serialVersionUID = 1L; + public ParseNode next; + + ParseNode(ParseNode last) { + if (last != null) { + last.next = this; + } + } + } + + private class Field extends ParseNode { + private static final long serialVersionUID = 1L; + public String name; + public int length; + + Field(Object name, Object length, ParseNode last) { + super(last); + this.name = (String) name; + this.length = ((Long) length).intValue(); + } + } + + private class ConditionalNode extends ParseNode { + private static final long serialVersionUID = 1L; + LinkedHashMap children = new LinkedHashMap(); + + ConditionalNode(ParseNode last) { + super(last); + } + + ParseNode getChildNode(Packet p) { + for (Condition c : children.keySet()) { + if (c.field == null) { + return children.get(c); + } + if (p.get(c.field).equals(c.value)) { + return children.get(c); + } + } + + return null; + } + } + + private class Condition implements Serializable { + private static final long serialVersionUID = 1L; + String field; + int[] value; + + Condition(String condition) { + if (condition.equalsIgnoreCase("default")) { + field = null; + value = null; + } else { + String[] conditionTokens = condition.split("="); + assert (conditionTokens.length == 2); + + field = conditionTokens[0]; + if (conditionTokens[1].startsWith("0x")) { + value = ParseIntArray.fromHexString(conditionTokens[1].substring(2)); + } else { + value = ParseIntArray.fromLong(Long.parseLong(conditionTokens[1])); + } + } + } + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/parser/ParserFactory.java b/verification/src/main/java/org/msr/mnr/verification/parser/ParserFactory.java new file mode 100644 index 0000000..b931dfa --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/parser/ParserFactory.java @@ -0,0 +1,17 @@ +package org.msr.mnr.verification.parser; + +import org.msr.mnr.verification.utils.Packet; + +import org.apache.flink.api.common.functions.FlatMapFunction; + +public class ParserFactory { + public static FlatMapFunction createNewParser(String parserType){ + if(parserType == null){ + return null; + } else if(parserType.equalsIgnoreCase("firewall")){ + return new FirewallParser(); + } + + return null; + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/utils/MyPartitioner.java b/verification/src/main/java/org/msr/mnr/verification/utils/MyPartitioner.java new file mode 100644 index 0000000..665ba58 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/utils/MyPartitioner.java @@ -0,0 +1,17 @@ +package org.msr.mnr.verification.utils; + +import org.apache.flink.api.common.functions.Partitioner; + +public class MyPartitioner implements Partitioner { + @Override + public int partition(String key, int numPartitions) { + // System.out.println("incoming key is: " + key); + int out = key.hashCode() % numPartitions; + + if (out < 0) { + out = -out; + } + System.out.println("Input is: " + key + " Output is: " + Integer.toString(out)); + return out; + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/utils/Packet.java b/verification/src/main/java/org/msr/mnr/verification/utils/Packet.java new file mode 100644 index 0000000..60ee46e --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/utils/Packet.java @@ -0,0 +1,116 @@ +package org.msr.mnr.verification.utils; + +import java.util.Map; +import java.util.TreeMap; +import java.util.Arrays; +import java.time.LocalDate; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeFormatterBuilder; +import java.time.temporal.ChronoField; + +public class Packet implements Comparable { + private static final DateTimeFormatter FORMATTER = new DateTimeFormatterBuilder() + .appendPattern("HH:mm:ss").appendFraction(ChronoField.MICRO_OF_SECOND, 6, 6, true) + .toFormatter(); + + private Map fieldMap; + private long time; + private int[] location; + + public Packet() { + fieldMap = new TreeMap(); + } + + public Packet(int[] location, Map fieldMap, long time) { + this.fieldMap = fieldMap; + this.time = time; + this.location = location; + } + + public void set(String field, int[] data) { + fieldMap.put(field, data); + } + + public void set(String field, byte[] data, int start, int end) { + fieldMap.put(field, ParseIntArray.fromBytes(data, start, end)); + } + + public int[] get(Object field) { + if (!fieldMap.containsKey(field)) { + System.out.println("WARNING: unknown field " + field); + return new int[0]; + } + return fieldMap.get(field); + } + + @Override + public String toString() { + String output; + output = "(t" + time + "), location: " + Arrays.toString(location) + ","; + for (Map.Entry entry : fieldMap.entrySet()) { + if (containsIgnoreCase(entry.getKey() , "ip")) { + output += ", " + entry.getKey() + ": " + ParseIntArray.getString(entry.getValue()); + } else if (containsIgnoreCase(entry.getKey() , "entry_sequence_number")) { + output += ", " + entry.getKey() + ": " + ParseIntArray.printString(entry.getValue()); + } else { + output += ", " + entry.getKey() + ": " + Arrays.toString(entry.getValue()); + } + } + // System.out.println(output); + output = output.replace("\0", ""); + return output; + } + + public void setTime(String time) { + LocalTime lt = LocalTime.parse(time, FORMATTER); + this.time = lt.atDate(LocalDate.now()).getLong(ChronoField.MICRO_OF_DAY); + } + + public void setTime(long time) { + this.time = time; + } + + public Map getFieldMap() { + return fieldMap; + } + + public long getTime() { + return time; + } + + public void setLocation(int[] location) { + this.location = location; + } + + public int[] getLocation() { + return location; + } + + // Returns: the comparator value, negative if less, positive if greater + @Override + public int compareTo(Packet o) { + return Long.compare(time, o.time); + } + + public static boolean containsIgnoreCase(String src, String what) { + final int length = what.length(); + if (length == 0) + return true; // Empty string is contained + + final char firstLo = Character.toLowerCase(what.charAt(0)); + final char firstUp = Character.toUpperCase(what.charAt(0)); + + for (int i = src.length() - length; i >= 0; i--) { + // Quick check before calling the more expensive regionMatches() method: + final char ch = src.charAt(i); + if (ch != firstLo && ch != firstUp) + continue; + + if (src.regionMatches(true, i, what, 0, length)) + return true; + } + + return false; + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/utils/PacketDeSerializer.java b/verification/src/main/java/org/msr/mnr/verification/utils/PacketDeSerializer.java new file mode 100644 index 0000000..0c3aed2 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/utils/PacketDeSerializer.java @@ -0,0 +1,120 @@ +package org.msr.mnr.verification.utils; + +import java.util.Map; +import java.util.TreeMap; +import java.util.Arrays; +import java.util.ArrayList; +import java.util.List; +import java.util.Iterator; +import java.util.stream.Collectors; + +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.JSONArray; +import org.json.simple.parser.ParseException; + +import org.apache.flink.api.common.serialization.DeserializationSchema; +import org.apache.flink.api.common.serialization.SerializationSchema; +import org.apache.flink.api.common.typeinfo.TypeInformation; + +import java.io.UnsupportedEncodingException; + +public class PacketDeSerializer implements DeserializationSchema, SerializationSchema { + + private static final long serialVersionUID = 1L; + + @Override + public byte[] serialize(Packet p) { + JSONObject packetJSON = new JSONObject(); + packetJSON.put("time", p.getTime()); + int[] locations = p.getLocation(); + + JSONArray locationJson = new JSONArray(); + + for (int loc : locations) { + locationJson.add(loc); + } + packetJSON.put("locations", locationJson); + + JSONObject jsonFieldMap = new JSONObject(); + Map fieldMap = p.getFieldMap(); + + for (Map.Entry field_value : fieldMap.entrySet()) { + int[] values = field_value.getValue(); + JSONArray valueJson = new JSONArray(); + for (int val : values) { + valueJson.add(val); + } + jsonFieldMap.put(field_value.getKey(), valueJson); + } + + packetJSON.put("fieldMap", jsonFieldMap); + byte[] ret = null; + try { + ret = packetJSON.toString().getBytes("utf-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + System.exit(1); + } + return ret; + } + + @Override + public Packet deserialize(byte[] message) { + JSONParser parser = new JSONParser(); + JSONObject packetJSON = null; + System.out.print(System.currentTimeMillis()); + System.out.println(",1"); + try { + packetJSON = (JSONObject) parser.parse(new String(message)); + } catch (ParseException e) { + e.printStackTrace(); + System.exit(1); + } + + JSONArray locationJson = (JSONArray) packetJSON.get("locations"); + + long time = (long) packetJSON.get("time"); + int[] locations = new int[locationJson.size()]; + Map fieldMap = new TreeMap(); + + int i = 0; + for(Object loc : locationJson){ + locations[i] = ((Long) loc).intValue(); + i++; + } + + JSONObject jsonFieldMap = (JSONObject) packetJSON.get("fieldMap"); + + for (Object key : jsonFieldMap.keySet()) { + //based on you key types + String keyStr = (String) key; + JSONArray jsonValues = (JSONArray) jsonFieldMap.get(keyStr); + ArrayList values = new ArrayList<>(); + + for (Object val : jsonValues) { + values.add(((Long) val).intValue()); + } + int[] output = new int[values.size()]; + i = 0; + for (i = 0; i< values.size(); i++) { + output[i] = values.get(i); + } + + fieldMap.put(keyStr, output); + + } + + return new Packet(locations, fieldMap, time); + } + + @Override + public boolean isEndOfStream(Packet nextElement) { + return false; + } + + @Override + public TypeInformation getProducedType() { + return TypeInformation.of(Packet.class); + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/utils/PacketKeySelector.java b/verification/src/main/java/org/msr/mnr/verification/utils/PacketKeySelector.java new file mode 100644 index 0000000..cfd49a1 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/utils/PacketKeySelector.java @@ -0,0 +1,18 @@ +package org.msr.mnr.verification.utils; + +import org.apache.flink.api.java.functions.KeySelector; +import org.msr.mnr.verification.utils.Packet; + +public class PacketKeySelector implements KeySelector { + String filename; + PacketKeySelector(String _filename) { + super(); + filename = _filename; + } + + @Override + public String getKey(Packet p) throws Exception { + System.out.println("PacketKey is set to: " + filename); + return filename; + } +} \ No newline at end of file diff --git a/verification/src/main/java/org/msr/mnr/verification/utils/ParseIntArray.java b/verification/src/main/java/org/msr/mnr/verification/utils/ParseIntArray.java new file mode 100644 index 0000000..ea510ce --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/utils/ParseIntArray.java @@ -0,0 +1,313 @@ +package org.msr.mnr.verification.utils; + +import java.math.BigInteger; +import java.util.Arrays; +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.nio.ByteBuffer; + +// Utilities to convert to an int array. Much of this was taken from Java's BigInteger +public class ParseIntArray { + public static int[] fromBytes(byte[] data, int start, int end) { + int[] value; + + // Find first nonzero byte + int byteLength = end - start; + int keep; + for (keep = 0; keep < byteLength && data[start + keep] == 0; ++keep) {} + + // Allocate new array and copy relevant part of input array + int intLength = (byteLength - keep + 3) >>> 2; + value = new int[intLength]; + + int b = end - 1; + for (int i = intLength - 1; i >= 0; --i) { + value[i] = data[b--] & 0xff; + int bytesRemaining = b - keep + 1; + int bytesToTransfer = Math.min(3, bytesRemaining); + for (int j = 8; j <= (bytesToTransfer << 3); j += 8) { + value[i] |= ((data[b--] & 0xff) << j); + } + } + + return value; + } + + public static int[] fromHexString(String data) { + int value[]; + int cursor = 0; + final int len = data.length(); + + // Skip leading zeros and compute number of digits in magnitude + while (cursor < len && data.charAt(cursor) == '0') { + ++cursor; + } + if (cursor == len) { + return new int[0]; + } + int numDigits = len - cursor; + + // Pre-allocate array of expected size. May be too large but can + // never be too small. Typically exact. + int intLength = (numDigits + 7) >>> 3; + value = new int[intLength]; + + // Process first (potentially short) digit group + int firstGroupLen = numDigits % 8; + if (firstGroupLen == 0) { + firstGroupLen = 8; + } + String group = data.substring(cursor, cursor += firstGroupLen); + int valueCursor = intLength; + value[--valueCursor] = Integer.parseUnsignedInt(group, 16); + + // Process remaining digit groups + while (cursor < len) { + group = data.substring(cursor, cursor += 8); + value[--valueCursor] = Integer.parseUnsignedInt(group, 16); + } + // Required for cases where the array was overallocated. + return valueCursor == 0 ? value : Arrays.copyOfRange(value, valueCursor, intLength); + } + + public static int[] fromString(String data) { + int value[]; + int cursor = 0; + final int len = data.length(); + + // Skip leading zeros and compute number of digits in magnitude + while (cursor < len && data.charAt(cursor) == '0') { + ++cursor; + } + if (cursor == len) { + return new int[1]; + } + + int numDigits = len - cursor; + + // Pre-allocate array of expected size + int numWords; + if (len < 10) { + numWords = 1; + } else { + long numBits = ((numDigits * 3402) >>> 10) + 1; + if (numBits + 31 >= (1L << 32)) { + throw new ArithmeticException("BigInteger would overflow supported range"); + } + numWords = (int) (numBits + 31) >>> 5; + } + value = new int[numWords]; + + // Process first (potentially short) digit group + int firstGroupLen = numDigits % 9; + if (firstGroupLen == 0) { + firstGroupLen = 9; + } + // System.out.println("DATA: " + data); + // System.out.println("cursor: " + Integer.toString(cursor)); + // System.out.println("numDigits: " + Integer.toString(numDigits)); + // System.out.println("firstGroupLen: " + Integer.toString(firstGroupLen)); + // System.out.println("len: " + Integer.toString(len)); + value[numWords - 1] = parseInt(data, cursor, cursor += firstGroupLen); + + // Process remaining digit groups + while (cursor < len) { + int groupVal = parseInt(data, cursor, cursor += 9); + destructiveMulAdd(value, 0x3b9aca00, groupVal); + } + + // Remove any leading zeros + int vlen = value.length; + int keep; + for (keep = 0; keep < vlen && value[keep] == 0; keep++) + ; + if (keep != 0) { + value = java.util.Arrays.copyOfRange(value, keep, vlen); + } + + return value; + } + + private static int parseInt(String s, int start, int end) { + int result = Character.digit(s.charAt(start++), 10); + if (result == -1) { + throw new NumberFormatException(s); + } + + for (int index = start; index < end; index++) { + int nextVal = Character.digit(s.charAt(index), 10); + if (nextVal == -1) { + throw new NumberFormatException(s); + } + result = 10 * result + nextVal; + } + + return result; + } + + final static long LONG_MASK = 0xffffffffL; + private static void destructiveMulAdd(int[] x, int y, int z) { + // Perform the multiplication word by word + long ylong = y & LONG_MASK; + long zlong = z & LONG_MASK; + int len = x.length; + + long product = 0; + long carry = 0; + for (int i = len - 1; i >= 0; i--) { + product = ylong * (x[i] & LONG_MASK) + carry; + x[i] = (int) product; + carry = product >>> 32; + } + + // Perform the addition + long sum = (x[len - 1] & LONG_MASK) + zlong; + x[len - 1] = (int) sum; + carry = sum >>> 32; + for (int i = len - 2; i >= 0; i--) { + sum = (x[i] & LONG_MASK) + carry; + x[i] = (int) sum; + carry = sum >>> 32; + } + } + + public static int[] fromLong(long data) { + int[] value; + + int highWord = (int) (data >>> 32); + if (highWord == 0) { + value = new int[1]; + value[0] = (int) data; + } else { + value = new int[2]; + value[0] = highWord; + value[1] = (int) data; + } + + return value; + } + + public static int compare(int[] left, int[] right) { + if (left.length < right.length) { + return -1; + } else if (left.length > right.length) { + return 1; + } + + for (int i = 0; i < left.length; ++i) { + if (left[i] < right[i]) { + return -1; + } else if (left[i] > right[i]) { + return 1; + } + } + return 0; + } + + /** + * Returns the number of bits in the minimal two's-complement representation of + * this BigInteger, excluding a sign bit. For positive BigIntegers, this + * is equivalent to the number of bits in the ordinary binary representation. + * (Computes {@code (ceil(log2(this < 0 ? -this : this+1)))}.) + * + * @return number of bits in the minimal two's-complement representation of this + * BigInteger, excluding a sign bit. + */ + private static int bitLength(int[] array) { + int n; + int len = array.length; + if (len == 0) { + n = 0; // offset by one to initialize + } else { + // Calculate the bit length of the magnitude + int magBitLength = ((len - 1) << 5) + 32 - Integer.numberOfLeadingZeros(array[0]); + n = magBitLength; + } + return n; + } + + /** + * Returns the specified int of the little-endian two's complement + * representation (int 0 is the least significant). The int number can be + * arbitrarily high (values are logically preceded by infinitely many sign + * ints). + */ + private static int getInt(int[] array, int n) { + if (n < 0 || n >= array.length) { + return 0; + } + + return array[array.length - n - 1]; + } + + public static String printString(int[] array) { + if (array == null) { + return "null"; + } + int byteLen = bitLength(array) / 8 + 1; + byte[] byteArray = new byte[byteLen]; + + for (int i = byteLen - 1, bytesCopied = 4, nextInt = 0, intIndex = 0; i >= 0; i--) { + if (bytesCopied == 4) { + nextInt = getInt(array, intIndex++); + bytesCopied = 1; + } else { + nextInt >>>= 8; + bytesCopied++; + } + byteArray[i] = (byte)nextInt; + } + + BigInteger bi = new BigInteger(byteArray); + return bi.toString(); + } + + + public static long getLong(int[] array) { + if (array == null) { + throw new IllegalArgumentException("Array empty in getLong"); + } + int byteLen = bitLength(array) / 8 + 1; + byte[] byteArray = new byte[byteLen]; + + for (int i = byteLen - 1, bytesCopied = 4, nextInt = 0, intIndex = 0; i >= 0; i--) { + if (bytesCopied == 4) { + nextInt = getInt(array, intIndex++); + bytesCopied = 1; + } else { + nextInt >>>= 8; + bytesCopied++; + } + byteArray[i] = (byte)nextInt; + } + return toLong(byteArray); + } + + private static long toLong(byte[] value) { + ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); + final byte val = (byte) (value[0] < 0 ? 0xFF : 0); + + for(int i = value.length; i < Long.BYTES; i++) + buffer.put(val); + + buffer.put(value); + return buffer.getLong(0); + } + + public static String getString(int[] values) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DataOutputStream dos = new DataOutputStream(baos); + + for(int i=0; i < values.length; ++i) + { + try { + dos.writeInt(values[i]); + } catch(IOException e) { + System.out.println("Unable to convert to String"); + } + } + + return new String(baos.toByteArray()); + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/utils/PriorityQueueSerializer.java b/verification/src/main/java/org/msr/mnr/verification/utils/PriorityQueueSerializer.java new file mode 100644 index 0000000..bcbc6df --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/utils/PriorityQueueSerializer.java @@ -0,0 +1,113 @@ +package org.msr.mnr.verification.utils; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.PriorityQueue; + +import org.apache.flink.api.common.typeutils.TypeSerializer; +import org.apache.flink.api.common.typeutils.TypeSerializerSnapshot; +import org.apache.flink.core.memory.DataInputView; +import org.apache.flink.core.memory.DataOutputView; + +public class PriorityQueueSerializer extends TypeSerializer> { + private static final long serialVersionUID = 1L; + public static final PriorityQueueSerializer INSTANCE = new PriorityQueueSerializer(); + + @Override + public boolean isImmutableType() { + return false; + } + + @Override + public TypeSerializer> duplicate() { + return this; + } + + @Override + public PriorityQueue createInstance() { + return new PriorityQueue(); + } + + @Override + public PriorityQueue copy(PriorityQueue from) { + return new PriorityQueue(from); + } + + @Override + public PriorityQueue copy(PriorityQueue from, PriorityQueue reuse) { + return copy(from); + } + + @Override + public int getLength() { + return -1; + } + + @Override + public void serialize(PriorityQueue record, DataOutputView target) throws IOException { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(baos); + + oos.writeObject(record); + + byte[] rawQueue = baos.toByteArray(); + target.writeInt(rawQueue.length); + target.write(rawQueue); + + oos.close(); + baos.close(); + } + + @SuppressWarnings("unchecked") + @Override + public PriorityQueue deserialize(DataInputView source) throws IOException { + int length = source.readInt(); + + byte[] rawQueue = new byte[length]; + source.read(rawQueue); + + ByteArrayInputStream bais = new ByteArrayInputStream(rawQueue); + ObjectInputStream ois = new ObjectInputStream(bais); + + PriorityQueue pq = null; + try { + pq = (PriorityQueue) ois.readObject(); + } catch (Exception e) { + e.printStackTrace(); + } + ois.close(); + bais.close(); + + return pq; + } + + @Override + public PriorityQueue deserialize(PriorityQueue reuse, DataInputView source) + throws IOException { + return deserialize(source); + } + + @Override + public void copy(DataInputView source, DataOutputView target) throws IOException { + throw new RuntimeException("Unimplemented..."); + } + + @Override + public boolean equals(Object obj) { + return obj == this; + } + + @Override + public TypeSerializerSnapshot> snapshotConfiguration() { + return new PriorityQueueSerializerSnapshot(); + } + + @Override + public int hashCode() { + return 0; + } + +} diff --git a/verification/src/main/java/org/msr/mnr/verification/utils/PriorityQueueSerializerSnapshot.java b/verification/src/main/java/org/msr/mnr/verification/utils/PriorityQueueSerializerSnapshot.java new file mode 100644 index 0000000..6d9fa12 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/utils/PriorityQueueSerializerSnapshot.java @@ -0,0 +1,13 @@ +package org.msr.mnr.verification.utils; + +import java.util.PriorityQueue; + +import org.apache.flink.api.common.typeutils.SimpleTypeSerializerSnapshot; + +public class PriorityQueueSerializerSnapshot + extends SimpleTypeSerializerSnapshot> { + + public PriorityQueueSerializerSnapshot() { + super(() -> PriorityQueueSerializer.INSTANCE); + } +} diff --git a/verification/src/main/java/org/msr/mnr/verification/utils/StringKeySelector.java b/verification/src/main/java/org/msr/mnr/verification/utils/StringKeySelector.java new file mode 100644 index 0000000..caf6dc8 --- /dev/null +++ b/verification/src/main/java/org/msr/mnr/verification/utils/StringKeySelector.java @@ -0,0 +1,18 @@ +package org.msr.mnr.verification.utils; + +import org.apache.flink.api.java.functions.KeySelector; +import org.msr.mnr.verification.utils.Packet; + +public class StringKeySelector implements KeySelector { + String filename; + public StringKeySelector(String _filename) { + super(); + filename = _filename; + } + + @Override + public String getKey(String p) throws Exception { + // System.out.println("StringKey is set to: " + filename); + return filename; + } +} \ No newline at end of file diff --git a/verification/src/main/resources/log4j.properties b/verification/src/main/resources/log4j.properties new file mode 100644 index 0000000..e86a938 --- /dev/null +++ b/verification/src/main/resources/log4j.properties @@ -0,0 +1,23 @@ +################################################################################ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +################################################################################ + +log4j.rootLogger=WARN, console + +log4j.appender.console=org.apache.log4j.ConsoleAppender +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p %-60c %x - %m%n diff --git a/verification/verification.iml b/verification/verification.iml new file mode 100644 index 0000000..cad0ae4 --- /dev/null +++ b/verification/verification.iml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file