ScatterDraw: Some changes and more doc

git-svn-id: svn://ultimatepp.org/upp/trunk@6046 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
koldo 2013-05-10 19:24:31 +00:00
parent 60df74d16d
commit 794e26437e
13 changed files with 562 additions and 163 deletions

View file

@ -58,11 +58,12 @@ template <class Y>
class VectorY : public DataSource {
private:
Vector<Y> *yData;
double x0, deltaX;
public:
VectorY(Vector<Y> &yData) : yData(&yData) {}
VectorY(Vector<Y> &yData, double x0, double deltaX) : yData(&yData), x0(x0), deltaX(deltaX) {}
virtual inline double y(int64 id) {return (*yData)[id];}
virtual inline double x(int64 id) {return id;}
virtual inline double x(int64 id) {return id*deltaX + x0;}
virtual inline int64 GetCount() {return yData->GetCount();}
};
@ -70,11 +71,12 @@ template <class Y>
class ArrayY : public DataSource {
private:
Upp::Array<Y> *yData;
double x0, deltaX;
public:
ArrayY(Upp::Array<Y> &yData) : yData(&yData) {}
ArrayY(Upp::Array<Y> &yData, double x0, double deltaX) : yData(&yData), x0(x0), deltaX(deltaX) {}
virtual inline double y(int64 id) {return (*yData)[id];}
virtual inline double x(int64 id) {return id;}
virtual inline double x(int64 id) {return id*deltaX + x0;}
virtual inline int64 GetCount() {return yData->GetCount();}
};

View file

@ -9,7 +9,7 @@ using namespace Eigen;
struct Equation_functor : NonLinearOptimizationFunctor<double> {
DataSource *series;
ExplicitEquation *fSource;
Equation_functor() : NonLinearOptimizationFunctor() {}
Equation_functor() {}
int operator()(const VectorXd &b, VectorXd &fvec) const {
ASSERT(b.size() == unknowns);

View file

@ -109,7 +109,7 @@ ScatterDraw& ScatterDraw::SetAxisColor(const Color& axis_color)
return *this;
}
ScatterDraw& ScatterDraw::SetAxisWidth(const int& axis_width)
ScatterDraw& ScatterDraw::SetAxisWidth(int axis_width)
{
axisWidth = axis_width;
return *this;
@ -121,19 +121,19 @@ ScatterDraw& ScatterDraw::SetGridColor(const Color& grid_color)
return *this;
}
ScatterDraw& ScatterDraw::SetGridWidth(const int& grid_width)
ScatterDraw& ScatterDraw::SetGridWidth(int grid_width)
{
gridWidth = grid_width;
return *this;
}
ScatterDraw& ScatterDraw::ShowHGrid(const bool& show)
ScatterDraw& ScatterDraw::ShowHGrid(bool show)
{
drawHGrid = show;
return *this;
}
ScatterDraw& ScatterDraw::ShowVGrid(const bool& show)
ScatterDraw& ScatterDraw::ShowVGrid(bool show)
{
drawVGrid = show;
return *this;
@ -694,7 +694,7 @@ ScatterDraw &ScatterDraw::MarkColor(Color color)
return *this;
}
ScatterDraw &ScatterDraw::MarkWidth(const double& markWidth)
ScatterDraw &ScatterDraw::MarkWidth(double markWidth)
{
int index = series.GetCount() - 1;
@ -748,46 +748,46 @@ const String& ScatterDraw::GetLegend(int index)
return series[index].legend;
}
void ScatterDraw::SetDataColor(const int& index, const Color& color)
void ScatterDraw::SetDataColor(int index, const Color& color)
{
ASSERT(IsValid(index));
series[index].color = color;
Refresh();
}
Color ScatterDraw::GetDataColor(const int& index) const
Color ScatterDraw::GetDataColor(int index) const
{
ASSERT(IsValid(index));
return series[index].color;
}
void ScatterDraw::SetDataThickness(const int& index, const double& thickness)
void ScatterDraw::SetDataThickness(int index, double thickness)
{
ASSERT(IsValid(index));
series[index].thickness = thickness;
Refresh();
}
double ScatterDraw::GetDataThickness(const int& index) const
double ScatterDraw::GetDataThickness(int index) const
{
ASSERT(IsValid(index));
return series[index].thickness;
}
void ScatterDraw::SetFillColor(const int& index, const Color& color)
void ScatterDraw::SetFillColor(int index, const Color& color)
{
ASSERT(IsValid(index));
series[index].fillColor = color;
Refresh();
}
Color ScatterDraw::GetFillColor(const int& index) const
Color ScatterDraw::GetFillColor(int index) const
{
ASSERT(IsValid(index));
return series[index].fillColor;
}
ScatterDraw &ScatterDraw::SetMarkWidth(const int& index, const double& markWidth)
ScatterDraw &ScatterDraw::SetMarkWidth(int index, double markWidth)
{
ASSERT(IsValid(index));
series[index].markWidth = markWidth;
@ -795,72 +795,72 @@ ScatterDraw &ScatterDraw::SetMarkWidth(const int& index, const double& markWidth
return *this;
}
double ScatterDraw::GetMarkWidth(const int& index) const
double ScatterDraw::GetMarkWidth(int index) const
{
ASSERT(IsValid(index));
return series[index].markWidth;
}
void ScatterDraw::SetMarkColor(const int& index, const Color& color)
void ScatterDraw::SetMarkColor(int index, const Color& color)
{
ASSERT(IsValid(index));
series[index].markColor = color;
Refresh();
}
Color ScatterDraw::GetMarkColor(const int& index) const
Color ScatterDraw::GetMarkColor(int index) const
{
ASSERT(IsValid(index));
return series[index].markColor;
}
void ScatterDraw::NoMark(const int& index)
void ScatterDraw::NoMark(int index)
{
ASSERT(IsValid(index));
series[index].markWidth = 0;
}
bool ScatterDraw::IsShowMark(const int& index) const throw (Exc)
bool ScatterDraw::IsShowMark(int index) const throw (Exc)
{
ASSERT(IsValid(index));
return series[index].markWidth > 0;
}
void ScatterDraw::SetDataPrimaryY(const int& index, const bool& primary)
void ScatterDraw::SetDataPrimaryY(int index, bool primary)
{
ASSERT(IsValid(index));
series[index].primaryY = primary;
Refresh();
}
ScatterDraw &ScatterDraw::SetDataPrimaryY(const bool& primary)
ScatterDraw &ScatterDraw::SetDataPrimaryY(bool primary)
{
SetDataPrimaryY(series.GetCount()-1, primary);
return *this;
}
bool ScatterDraw::IsDataPrimaryY(const int& index) const throw (Exc)
bool ScatterDraw::IsDataPrimaryY(int index) const throw (Exc)
{
ASSERT(IsValid(index));
return series[index].primaryY;
}
void ScatterDraw::SetSequentialX(const int& index, const bool& sequential)
void ScatterDraw::SetSequentialX(int index, bool sequential)
{
ASSERT(IsValid(index));
series[index].sequential = sequential;
Refresh();
}
ScatterDraw &ScatterDraw::SetSequentialX(const bool& sequential)
ScatterDraw &ScatterDraw::SetSequentialX(bool sequential)
{
SetSequentialX(series.GetCount()-1, sequential);
return *this;
}
ScatterDraw &ScatterDraw::SetSequentialXAll(const bool& sequential)
ScatterDraw &ScatterDraw::SetSequentialXAll(bool sequential)
{
for (int i = 0; i < series.GetCount(); ++i)
SetSequentialX(i, sequential);
@ -868,20 +868,20 @@ ScatterDraw &ScatterDraw::SetSequentialXAll(const bool& sequential)
return *this;
}
void ScatterDraw::Show(const int& index, const bool& show)
void ScatterDraw::Show(int index, bool show)
{
ASSERT(IsValid(index));
series[index].opacity = show ? 1 : 0;
Refresh();
}
bool ScatterDraw::IsVisible(const int& index)
bool ScatterDraw::IsVisible(int index)
{
ASSERT(IsValid(index));
return series[index].opacity > 0;
}
ScatterDraw &ScatterDraw::ShowAll(const bool& show)
ScatterDraw &ScatterDraw::ShowAll(bool show)
{
for (int i = 0; i < series.GetCount(); ++i)
series[i].opacity = 1;
@ -893,20 +893,20 @@ ScatterDraw& ScatterDraw::Id(int id)
return Id(series.GetCount()-1, id);
}
ScatterDraw& ScatterDraw::Id(const int& index, int id)
ScatterDraw& ScatterDraw::Id(int index, int id)
{
ASSERT(IsValid(index));
series[index].id = id;
return *this;
}
int ScatterDraw::GetId(const int& index)
int ScatterDraw::GetId(int index)
{
ASSERT(IsValid(index));
return series[index].id;
}
void ScatterDraw::RemoveSeries(const int& index)
void ScatterDraw::RemoveSeries(int index)
{
ASSERT(IsValid(index));
series.Remove(index);
@ -928,7 +928,7 @@ Drawing ScatterDraw::GetDrawing()
return ddw;
}
Image ScatterDraw::GetImage(const int &scale)
Image ScatterDraw::GetImage(int scale)
{
#ifndef flagGUI
ASSERT(mode != MD_DRAW);
@ -941,17 +941,17 @@ Image ScatterDraw::GetImage(const int &scale)
return ib;
}
double ScatterDraw::GetXByPoint(const int x)
double ScatterDraw::GetXByPoint(const double x)
{
return (x - hPlotLeft)*GetXRange()/(GetSize().cx - (hPlotLeft + hPlotRight) - 1) + GetXMin();
}
double ScatterDraw::GetYByPoint(const int y)
double ScatterDraw::GetYByPoint(const double y)
{
return (GetSize().cy - vPlotTop - y - 1)*GetYRange()/(GetSize().cy - (vPlotTop + vPlotBottom) - GetTitleFont().GetHeight() - 1) + GetYMin();
}
double ScatterDraw::GetY2ByPoint(const int y)
double ScatterDraw::GetY2ByPoint(const double y)
{
return (GetSize().cy - vPlotTop - y - 1)*GetY2Range()/(GetSize().cy - (vPlotTop + vPlotBottom) - GetTitleFont().GetHeight() - 1) + GetYMin2();
}
@ -986,10 +986,11 @@ void ScatterDraw::Zoom(double scale, bool mouseX, bool mouseY)
}
xRange *= scale;
if (!IsNull(maxMajorUnitsX)) {
if (xRange < xMajorUnit)
if (xRange < 2*xMajorUnit)
xMajorUnit /= 10;
else if (xRange/xMajorUnit > maxMajorUnitsX)
xMajorUnit *= 10;
AdjustMinUnitX();
}
lastxRange = xRange;
}
@ -1007,13 +1008,14 @@ void ScatterDraw::Zoom(double scale, bool mouseX, bool mouseY)
yRange *= scale;
yRange2 *= scale;
if (!IsNull(maxMajorUnitsY)) {
if (yRange < yMajorUnit) {
yMajorUnit /= 10;
yMajorUnit2 /= 10;
if (yRange < 2*yMajorUnit) {
yMajorUnit /= 5;
yMajorUnit2 /= 5;
} else if (yRange/yMajorUnit > maxMajorUnitsY) {
yMajorUnit *= 10;
yMajorUnit2 *= 10;
yMajorUnit *= 5;
yMajorUnit2 *= 5;
}
AdjustMinUnitY();
}
lastyRange = yRange;
}
@ -1157,7 +1159,7 @@ ScatterDraw::ScatterDraw()
fastViewX = false;
sequentialXAll = false;
zoomStyleX = zoomStyleY = TO_CENTER;
maxMajorUnitsX = maxMajorUnitsY = Null;
maxMajorUnitsX = maxMajorUnitsY = 10;
SetMajorUnitsNum(5, 10);
Color(graphColor);
lastxRange = xRange;

View file

@ -12,7 +12,7 @@ NAMESPACE_UPP
#include "SeriesPlot.h"
#include "MarkPlot.h"
Color GetOpaqueColor(const Color &color, const Color &background, const double opacity);
Color GetOpaqueColor(const Color &color, const Color &background, double opacity);
void debug_h(); // Dummy function used to debug .h files
@ -86,9 +86,12 @@ protected:
static MarkPlot *GetNewMarkPlot(int index);
public:
Callback3<String&, int, double> cbModifFormatX, cbModifFormatDeltaX;
Callback3<String&, int, double> cbModifFormatY, cbModifFormatDeltaY;
Callback3<String&, int, double> cbModifFormatY2, cbModifFormatDeltaY2;
Callback3<String&, int, double> cbModifFormatX;
Callback3<String&, int, double> cbModifFormatDeltaX;
Callback3<String&, int, double> cbModifFormatY;
Callback3<String&, int, double> cbModifFormatDeltaY;
Callback3<String&, int, double> cbModifFormatY2;
Callback3<String&, int, double> cbModifFormatDeltaY2;
Callback WhenZoomScroll;
Callback WhenSetRange;
@ -115,25 +118,25 @@ public:
Font GetLabelsFont() {return labelsFont;};
ScatterDraw& SetLabelsColor(const Color& colorLabels);
ScatterDraw& SetPlotAreaMargin(const int hLeft, const int hRight, const int vTop, const int vBottom);
ScatterDraw& SetPlotAreaLeftMargin(const int margin);
ScatterDraw& SetPlotAreaRightMargin(const int margin);
ScatterDraw& SetPlotAreaTopMargin(const int margin);
ScatterDraw& SetPlotAreaBottomMargin(const int margin);
ScatterDraw& SetPlotAreaMargin(int hLeft, int hRight, int vTop, int vBottom);
ScatterDraw& SetPlotAreaLeftMargin(int margin);
ScatterDraw& SetPlotAreaRightMargin(int margin);
ScatterDraw& SetPlotAreaTopMargin(int margin);
ScatterDraw& SetPlotAreaBottomMargin(int margin);
ScatterDraw& SetPlotAreaColor(const Color& p_a_color);
ScatterDraw& SetAxisColor(const Color& axis_color);
ScatterDraw& SetAxisWidth(const int& axis_width);
ScatterDraw& SetAxisWidth(int axis_width);
ScatterDraw& SetGridColor(const Color& grid_color);
ScatterDraw& SetGridWidth(const int& grid_width);
ScatterDraw& ShowVGrid(const bool& show);
ScatterDraw& ShowHGrid(const bool& show);
ScatterDraw& SetGridWidth(int grid_width);
ScatterDraw& ShowVGrid(bool show);
ScatterDraw& ShowHGrid(bool show);
ScatterDraw& ShowLegend(const bool& show = true) {showLegend = show; return *this;}
ScatterDraw& ShowLegend(bool show = true) {showLegend = show; return *this;}
bool GetShowLegend() {return showLegend;}
ScatterDraw& SetLegendWidth(const int& width) {legendWidth = width; return *this;}
ScatterDraw& SetLegendWidth(int width) {legendWidth = width; return *this;}
int GetLegendWidth() {return legendWidth;}
ScatterDraw& SetMode(int _mode = MD_ANTIALIASED) {mode = _mode; Refresh(); return *this;};
@ -153,7 +156,7 @@ public:
double GetY2Range()const {return yRange2;}
ScatterDraw &SetMajorUnits(double ux, double uy);
ScatterDraw &SetMajorUnitsNum(int nx, int ny);
ScatterDraw &SetMaxMajorUnitsX(int maxX, int maxY) {maxMajorUnitsX = maxX; maxMajorUnitsY = maxY; return *this;}
ScatterDraw &SetMaxMajorUnits(int maxX, int maxY) {maxMajorUnitsX = maxX; maxMajorUnitsY = maxY; return *this;}
double GetMajorUnitsX() {return xMajorUnit;}
double GetMajorUnitsY() {return yMajorUnit;}
ScatterDraw& SetMinUnits(double ux, double uy);
@ -303,7 +306,7 @@ public:
const String GetDash(int index);
ScatterDraw &Fill(Color color = Null);
ScatterDraw &MarkColor(Color color = Null);
ScatterDraw &MarkWidth(const double& markWidth = 8);
ScatterDraw &MarkWidth(double markWidth = 8);
ScatterDraw &Hide() {series[series.GetCount() - 1].opacity = 0; return *this;}
ScatterDraw &Opacity(double opacity = 1) {series[series.GetCount() - 1].opacity = opacity; return *this;}
@ -311,47 +314,47 @@ public:
ScatterDraw& Legend(int index, const String legend);
const String& GetLegend(int index);
inline bool IsValid(const int& index) const {return (index >= 0 && index < series.GetCount());}
inline bool IsValid(int index) const {return (index >= 0 && index < series.GetCount());}
ScatterDraw& SetDrawXReticle(bool set = true);
ScatterDraw& SetDrawYReticle(bool set = true);
ScatterDraw& SetDrawY2Reticle(bool set = true);
void SetDataColor(const int& index,const Color& pcolor);
Color GetDataColor (const int& index) const;
void SetDataThickness(const int& index, const double& thick);
double GetDataThickness(const int& index) const;
void SetFillColor(const int& index, const Color& color);
Color GetFillColor(const int& index) const;
void SetDataColor(int index, const Color& pcolor);
Color GetDataColor (int index) const;
void SetDataThickness(int index, double thick);
double GetDataThickness(int index) const;
void SetFillColor(int index, const Color& color);
Color GetFillColor(int index) const;
ScatterDraw &SetMarkWidth(const int& index, const double& width);
double GetMarkWidth(const int& index) const;
void SetMarkColor(const int& index, const Color& pcolor);
Color GetMarkColor (const int& index) const;
void NoMark(const int& index);
bool IsShowMark(const int& index) const throw (Exc);
ScatterDraw &SetMarkWidth(int index, double width);
double GetMarkWidth(int index) const;
void SetMarkColor(int index, const Color& pcolor);
Color GetMarkColor(int index) const;
void NoMark(int index);
bool IsShowMark(int index) const throw (Exc);
void SetDataPrimaryY(const int& index, const bool& primary=true);
ScatterDraw &SetDataPrimaryY(const bool& primary);
bool IsDataPrimaryY(const int& index) const throw (Exc);
void SetDataPrimaryY(int index, bool primary = true);
ScatterDraw &SetDataPrimaryY(bool primary);
bool IsDataPrimaryY(int index) const throw (Exc);
void SetSequentialX(const int& index, const bool& sequential = true);
ScatterDraw &SetSequentialX(const bool& sequential = true);
ScatterDraw &SetSequentialXAll(const bool& sequential = true);
void SetSequentialX(int index, bool sequential = true);
ScatterDraw &SetSequentialX(bool sequential = true);
ScatterDraw &SetSequentialXAll(bool sequential = true);
void Show(const int& index, const bool& show = true);
bool IsVisible(const int& index);
ScatterDraw &ShowAll(const bool& show = true);
void Show(int index, bool show = true);
bool IsVisible(int index);
ScatterDraw &ShowAll(bool show = true);
void RemoveSeries(const int& index);
void RemoveSeries(int index);
void RemoveAllSeries();
ScatterDraw& Id(int id);
ScatterDraw& Id(const int& index, int id);
int GetId(const int& index);
ScatterDraw& Id(int index, int id);
int GetId(int index);
Drawing GetDrawing();
Image GetImage(const int& scale = 1);
Image GetImage(int scale = 1);
#ifdef PLATFORM_WIN32
void SaveAsMetafile(const char* file) const;
@ -360,13 +363,13 @@ public:
ScatterDraw& SetMinZoom(double x, double y = -1) {minXZoom = x; minYZoom = y; return *this;}
ScatterDraw& SetMaxZoom(double x, double y = -1) {maxXZoom = x; maxYZoom = y; return *this;}
ScatterDraw& SetFastViewX(bool set = true) {fastViewX = set; return *this;}
ScatterDraw& SetFastViewX(bool set = true) {fastViewX = set; return *this;}
double GetXByPoint(const int x);
double GetYByPoint(const int y);
double GetY2ByPoint(const int y);
double GetXPointByValue(const double x);
double GetYPointByValue(const double y);
double GetXByPoint(double x);
double GetYByPoint(double y);
double GetY2ByPoint(double y);
double GetXPointByValue(double x);
double GetYPointByValue(double y);
int GetCount() {return series.GetCount();}
bool IsEmpty() {return series.IsEmpty();}

View file

@ -0,0 +1,39 @@
topic "class CArray : public DataSource";
[ $$0,0#00000000000000000000000000000000:Default]
[i448;a25;kKO9; $$1,0#37138531426314131252341829483380:structitem]
[l288;2 $$2,0#27521748481378242620020725143825:desc]
[0 $$3,0#96390100711032703541132217272105:end]
[H6;0 $$4,0#05600065144404261032431302351956:begin]
[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:codeitem]
[{_}%EN-US
[ {{10000@3 [s0; [*@(229)4 CArray]]}}&]
[s1;@(0.0.255)0%- &]
[s1;:CArray`:`:class:%- [@(0.0.255) class]_[* CArray]_:_[@(0.0.255) public]_[*@3 DataSource]&]
[s2; &]
[s0; [2 A ][^topic`:`/`/ScatterDraw`/src`/DataSource`$en`-us^2 DataSource
][2 class based on simple double `* C arrays.]&]
[s3;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]
[s4; &]
[s5;:CArray`:`:CArray`(double`*`,int`,double`,double`):%- [* CArray]([@(0.0.255) double]_
`*[*@3 yData], [@(0.0.255) int]_[*@3 numData], [@(0.0.255) double]_[*@3 x0],
[@(0.0.255) double]_[*@3 deltaX])&]
[s2; Creates a CArray based on Y axis data array [%-*@3 yData], with
[%-*@3 numData] elements, with X axis values beginning from [%-*@3 x0]
and with [%-*@3 deltaX] between X axis values.&]
[s3; &]
[s4;%- &]
[s5;:CArray`:`:CArray`(double`*`,double`*`,int`):%- [* CArray]([@(0.0.255) double]_`*[*@3 y
Data], [@(0.0.255) double]_`*[*@3 xData], [@(0.0.255) int]_[*@3 numData])&]
[s2; Creates a CArray based on Y axis data array [%-*@3 yData], X axis
data array [%-*@3 xData] and with [%-*@3 numData] elements.&]
[s3; &]
[s4;%- &]
[s5;:CArray`:`:CArray`(double`*`,double`*`,double`*`,int`):%- [* CArray]([@(0.0.255) doub
le]_`*[*@3 yData], [@(0.0.255) double]_`*[*@3 x1Data], [@(0.0.255) double]_`*[*@3 x2Data],
[@(0.0.255) int]_[*@3 numData])&]
[s2; Creates a CArray based on Y axis data array [%-*@3 yData], X1
axis data array [%-*@3 x1Data], X2 axis data array [%-*@3 x2Data]
and with [%-*@3 numData] elements.&]
[s3; &]
[s0; ]]

View file

@ -0,0 +1,6 @@
TITLE("class CArray : public DataSource")
COMPRESSED
120,156,189,84,93,79,219,48,20,253,43,150,6,83,91,245,195,190,182,155,52,121,41,162,251,144,38,109,15,104,82,167,200,52,38,49,44,90,154,160,216,29,32,196,127,159,19,39,163,133,117,160,177,173,15,105,235,123,206,185,231,158,107,37,66,7,7,120,136,95,225,39,62,193,66,157,203,77,110,68,148,49,230,135,18,120,248,237,195,167,89,104,233,196,210,169,71,168,207,41,97,48,181,15,66,9,112,160,140,248,48,99,62,165,62,14,180,169,54,137,201,140,90,139,40,7,223,15,193,50,193,50,193,227,64,60,230,51,159,80,207,7,43,0,24,3,246,128,19,70,125,224,65,170,116,34,34,108,225,212,194,103,83,58,195,4,99,143,16,76,193,195,148,51,66,40,88,9,240,128,96,30,168,34,21,209,251,105,88,19,88,61,24,159,90,251,83,171,198,24,182,234,53,141,81,66,49,80,78,102,124,26,156,169,139,172,120,56,86,237,142,63,57,151,135,131,164,76,149,155,234,118,117,119,248,230,227,232,243,9,138,208,237,45,169,67,155,83,20,105,28,162,104,48,239,1,
204,250,12,29,31,85,149,188,17,226,238,238,181,136,52,9,231,61,60,198,99,224,188,143,15,71,200,157,5,14,20,7,113,144,228,82,235,192,86,162,123,32,106,14,197,42,26,116,106,171,96,181,93,191,220,156,229,89,82,3,108,255,133,52,242,164,220,84,137,18,181,58,132,77,147,218,19,160,35,36,162,83,83,94,102,137,237,53,137,39,39,137,52,70,85,139,74,94,197,19,93,37,241,228,158,29,31,168,34,30,109,244,41,108,73,90,62,56,59,232,76,106,149,162,178,64,58,91,95,230,10,165,165,117,161,80,108,77,34,89,187,212,227,198,0,13,221,156,93,68,111,123,4,252,254,187,230,57,39,93,92,232,184,44,220,141,41,43,180,80,70,102,121,151,25,115,19,240,237,152,218,95,61,215,52,30,196,195,172,48,241,176,253,219,125,247,155,32,127,166,214,219,206,204,65,196,42,30,52,169,221,212,51,138,225,78,236,86,178,205,180,216,172,127,81,239,36,26,200,53,254,93,53,85,185,145,75,209,111,55,114,92,41,105,148,70,178,181,118,31,230,23,36,175,51,141,
82,219,205,165,136,162,195,209,182,193,171,204,124,237,206,58,91,72,229,106,173,10,163,219,242,210,137,124,151,249,198,54,105,174,123,145,21,23,232,188,42,215,29,215,250,69,178,72,119,244,90,151,150,97,174,148,42,118,117,198,110,153,200,173,164,189,187,79,44,101,119,61,47,92,199,3,200,245,179,54,246,23,18,95,238,3,56,7,143,82,124,180,149,151,37,247,79,51,36,207,192,192,127,11,154,236,77,186,243,185,132,189,16,248,131,109,216,87,143,16,63,0,233,166,19,105,

View file

@ -67,9 +67,14 @@ parameter.&]
[s0; These equations are useful to represent closed functions as
circles, spirals and even epitrochoids.&]
[s0; &]
[s0; DataSource classes can be used to interface data sources and
containers and can be subclassed to be embedded in other classes
like [^topic`:`/`/ScatterDraw`/src`/ExplicitEquation`$en`-us^ ExplicitEquation].&]
[s0; [^topic`:`/`/ScatterDraw`/src`/DataSource`$en`-us^ DataSource
]classes can be used to interface data sources and containers
and can be subclassed to be embedded in other classes like [^topic`:`/`/ScatterDraw`/src`/ExplicitEquation`$en`-us^ E
xplicitEquation].&]
[s0; &]
[s0; Examples of [^topic`:`/`/ScatterDraw`/src`/DataSource`$en`-us^ DataSource
]classes are [^topic`:`/`/ScatterDraw`/src`/CArray`$en`-us^ CArray]
and [^topic`:`/`/ScatterDraw`/src`/VectorY`$en`-us^ VectorY] .&]
[s0; &]
[s3;%- &]
[ {{10000F(128)G(128)@1 [s0; [* Constructor Detail]]}}&]

View file

@ -1,10 +1,10 @@
TITLE("2. DataSource")
COMPRESSED
120,156,181,87,137,110,219,56,16,253,21,2,105,23,118,234,40,36,37,89,178,213,45,82,164,215,98,143,22,155,118,47,67,142,104,153,142,137,202,146,151,164,18,123,123,124,251,14,117,89,78,156,19,72,81,88,20,57,51,156,247,230,105,200,140,40,122,242,4,247,240,30,190,229,223,240,21,159,177,60,209,225,72,56,142,31,48,234,6,159,127,126,63,8,140,63,1,127,219,35,182,239,218,196,161,125,248,33,54,161,46,181,29,226,211,129,227,219,182,143,135,113,194,148,10,71,9,245,253,194,137,246,232,30,245,92,74,60,199,119,124,98,123,62,5,95,138,49,197,30,117,137,99,251,212,29,78,185,138,195,17,6,115,27,246,24,244,237,1,38,24,123,132,96,155,122,216,118,29,66,108,10,33,168,71,9,118,135,60,157,134,163,119,253,192,56,56,6,148,219,135,212,251,16,205,113,48,68,55,110,142,77,108,76,109,151,12,220,254,112,194,207,68,186,11,146,123,43,36,15,15,133,230,139,10,17,115,130,253,35,55,32,224,218,239,245,247,60,216,214,113,97,179,129,65,100,
131,27,165,125,119,64,92,7,82,114,48,29,74,254,111,46,36,95,240,84,87,17,4,33,148,4,19,226,5,144,194,247,239,223,45,226,224,146,41,15,114,33,24,242,166,4,230,0,135,71,220,1,30,184,62,241,177,237,57,212,245,0,250,146,73,182,168,144,76,28,26,84,56,252,158,191,215,39,125,96,20,251,144,191,59,128,0,24,64,192,19,136,116,225,191,237,15,117,229,108,252,140,211,160,55,216,3,146,108,23,123,3,236,57,158,235,0,18,74,250,4,136,196,6,63,148,97,152,102,114,193,146,112,244,229,244,219,211,215,191,29,124,58,65,35,244,229,11,49,90,57,178,209,72,225,0,141,246,143,58,148,14,186,14,122,197,52,59,201,114,25,243,48,252,246,237,135,112,164,236,0,153,7,9,134,155,181,104,24,149,50,25,62,61,64,163,163,14,182,176,5,57,119,109,84,137,199,70,167,225,104,223,110,135,51,65,112,25,11,30,39,217,130,151,198,92,161,148,243,41,82,133,153,66,217,12,77,193,11,205,50,137,166,146,93,136,244,172,87,206,176,148,37,107,37,20,
12,192,92,51,45,148,22,177,178,208,187,236,130,159,115,89,90,41,46,5,132,137,89,138,38,28,77,249,76,164,16,93,164,104,42,102,51,46,161,142,40,206,82,205,96,90,42,148,136,207,28,29,35,38,37,91,171,30,250,20,61,139,158,181,215,33,9,8,157,150,161,207,164,152,86,46,47,141,195,177,150,73,145,204,91,88,48,47,214,54,200,209,88,103,75,17,3,91,135,209,225,73,204,180,230,242,21,64,138,14,149,140,163,195,22,159,79,120,26,29,228,106,220,38,12,177,137,210,146,197,90,161,5,75,215,151,9,234,21,137,12,183,118,20,196,197,193,251,162,160,69,164,138,140,154,251,143,115,190,6,168,188,230,168,166,250,66,232,57,98,40,205,23,19,96,17,102,227,44,201,23,169,66,157,66,111,28,210,86,221,2,168,204,46,96,214,144,189,70,205,26,132,3,78,153,226,93,11,189,49,132,173,216,98,153,180,83,3,189,129,174,241,112,251,231,185,75,104,240,98,64,253,96,78,130,82,136,127,133,195,97,57,250,187,25,253,211,140,62,242,197,146,75,166,115,201,
155,57,98,145,102,236,184,205,48,58,176,157,230,133,210,102,104,91,27,27,106,111,162,108,44,104,203,192,218,196,240,252,141,113,219,218,169,62,147,157,53,120,189,90,38,34,22,26,65,19,1,185,102,105,93,137,151,104,150,167,177,153,65,107,20,253,136,102,157,21,233,161,21,237,33,203,178,186,232,98,14,66,133,21,208,186,158,27,17,47,161,97,26,229,158,51,41,216,36,225,69,49,74,151,162,160,198,74,164,87,237,84,173,200,215,101,77,148,177,174,11,115,240,181,25,20,73,56,43,4,226,183,255,219,158,181,163,253,85,52,166,102,137,194,16,152,69,228,90,192,31,74,77,72,17,95,129,220,25,141,231,90,47,203,143,1,228,110,93,136,207,98,201,167,130,69,86,38,207,162,67,243,30,29,110,34,68,167,117,136,49,122,35,179,5,250,179,118,8,187,64,224,242,234,86,70,186,12,197,185,60,231,134,58,134,36,95,74,174,128,144,102,25,106,161,231,50,203,207,230,141,151,2,193,26,51,5,157,166,32,50,206,50,57,21,41,211,229,39,98,166,150,153,72,117,243,
86,238,192,84,83,68,85,238,220,84,39,102,73,2,77,167,249,66,182,190,139,222,118,147,56,248,186,50,52,199,153,234,232,238,54,245,144,209,102,174,122,20,184,118,97,55,253,210,36,151,167,128,49,22,50,134,157,42,33,233,90,72,155,132,182,131,66,99,80,188,69,136,145,84,174,248,44,79,144,206,54,44,66,195,206,20,224,218,192,6,14,202,173,160,119,170,165,144,44,41,187,115,209,51,249,82,104,153,197,243,12,186,230,165,13,55,109,174,57,4,170,134,157,155,13,96,83,224,155,203,25,3,131,178,171,87,205,207,4,111,181,231,226,181,116,84,249,164,12,85,184,195,4,135,110,54,157,150,189,63,3,244,178,217,170,232,224,183,52,231,250,211,125,93,145,178,105,209,151,87,194,54,54,59,128,19,177,236,120,197,9,251,166,67,168,223,125,91,252,30,145,250,180,69,199,64,158,150,121,172,161,104,175,56,160,73,234,227,214,169,2,40,247,242,129,219,122,235,68,221,226,228,221,111,159,23,157,66,41,20,200,45,47,128,134,167,102,147,74,8,243,138,78,208,67,125,
50,66,9,219,231,230,100,109,86,140,191,213,198,115,87,96,31,242,9,144,131,126,229,197,81,242,11,156,208,183,3,91,71,29,168,118,223,169,64,109,174,19,232,92,72,157,195,221,101,107,114,154,193,30,60,60,133,221,214,97,103,116,58,46,156,199,168,120,152,105,184,213,136,105,88,179,241,59,135,243,34,45,245,63,19,82,233,214,193,85,125,207,109,252,163,167,7,85,0,88,130,47,58,201,185,213,186,6,93,143,98,245,96,20,171,123,162,80,28,42,59,125,44,24,105,129,35,234,61,20,76,10,104,90,75,16,166,66,147,134,61,116,47,156,21,134,180,128,240,56,104,65,122,101,238,15,211,222,206,21,72,68,223,71,125,187,154,121,113,35,219,62,208,1,83,141,83,135,119,150,228,67,209,173,238,141,238,58,85,62,34,188,90,170,15,6,121,179,86,239,135,255,102,181,62,30,11,179,135,23,121,118,67,145,87,59,65,150,25,86,152,248,229,219,45,154,48,115,252,194,224,234,125,180,133,108,117,119,100,127,112,115,122,69,207,43,132,47,30,134,241,116,92,198,25,163,
242,25,62,223,97,252,162,194,157,62,2,112,243,7,82,13,62,189,35,250,183,92,31,103,57,200,187,115,19,232,171,253,20,213,142,155,11,65,27,200,230,143,188,34,53,101,110,71,108,171,153,194,109,97,231,13,115,251,62,112,125,226,63,169,226,14,191,43,239,73,150,37,69,142,149,205,142,20,37,208,37,218,29,190,188,37,94,119,237,189,123,82,245,181,237,150,188,106,179,123,166,118,69,18,219,137,225,96,31,70,97,248,63,57,94,39,252,
120,156,181,87,11,111,219,54,16,254,43,4,210,14,118,234,56,36,37,89,178,213,21,25,146,180,29,246,104,177,180,219,58,67,137,104,153,142,137,202,146,71,82,137,189,62,126,251,142,122,59,113,154,7,154,32,176,40,242,238,120,223,221,199,227,105,76,209,147,39,184,135,119,240,45,127,163,35,62,99,89,172,131,177,176,109,207,103,212,241,63,254,242,102,232,27,125,2,250,150,75,44,207,177,136,77,7,240,67,44,66,29,106,217,196,163,67,219,179,44,15,143,162,152,41,21,140,99,234,121,185,18,237,209,29,234,58,148,184,182,103,123,196,114,61,10,186,20,99,138,93,234,16,219,242,168,51,154,114,21,5,99,12,226,22,236,49,28,88,67,76,48,118,9,193,22,117,177,229,216,132,88,20,76,80,151,18,236,140,120,50,13,198,175,7,190,81,176,13,40,103,0,174,15,192,154,109,99,176,110,212,108,139,88,152,90,14,25,58,131,209,132,159,139,100,27,36,231,86,72,46,30,9,205,23,37,34,102,251,187,7,142,79,64,117,208,27,236,184,176,173,237,192,102,67,131,
200,2,53,74,7,206,144,56,54,184,100,99,58,146,252,223,76,72,190,224,137,46,45,8,66,40,241,39,196,245,193,133,175,95,191,246,137,141,139,72,185,224,11,193,224,55,37,48,7,56,92,226,12,241,208,241,136,135,45,215,166,142,11,208,151,76,178,69,137,100,98,83,191,196,225,245,188,157,1,25,64,68,177,7,254,59,67,48,128,1,4,60,33,144,14,252,91,222,72,151,202,70,207,40,13,123,195,29,8,146,229,96,119,136,93,219,117,108,64,66,201,128,64,32,177,193,15,105,24,37,169,92,176,56,24,127,58,251,242,244,248,247,189,247,39,104,140,62,125,34,134,43,7,22,26,43,236,163,241,238,65,135,210,97,215,70,71,76,179,147,52,147,17,15,130,47,95,126,8,198,202,242,145,121,16,127,212,172,133,163,176,160,201,232,233,30,26,31,116,112,31,247,193,231,174,133,74,242,88,232,44,24,239,90,109,115,198,8,46,108,193,227,36,93,240,66,152,43,148,112,62,69,42,23,83,40,157,161,41,104,161,89,42,209,84,178,75,145,156,247,138,25,150,176,120,173,
132,130,1,136,107,166,133,210,34,82,125,244,58,189,228,23,92,22,82,138,75,1,102,34,150,160,9,71,83,62,19,9,88,23,9,154,138,217,140,75,200,35,138,210,68,51,152,150,10,197,226,35,71,135,136,73,201,214,170,135,222,135,207,194,103,237,117,112,2,76,39,133,233,115,41,166,165,202,79,70,225,80,203,56,119,230,21,44,152,151,254,38,200,241,169,78,151,34,130,104,237,135,251,39,17,211,154,203,35,128,20,238,43,25,133,251,173,120,62,225,73,184,151,169,211,118,192,16,155,40,45,89,164,21,90,176,100,125,53,64,189,220,145,209,198,142,130,56,216,127,147,39,52,183,84,6,163,138,253,187,57,95,3,84,94,197,168,10,245,165,208,115,196,80,146,45,38,16,69,152,141,210,56,91,36,10,117,114,190,113,112,91,117,115,160,50,189,132,89,19,236,53,170,215,192,28,196,148,41,222,237,163,151,38,96,43,182,88,198,109,215,128,111,192,107,60,218,252,121,238,16,234,191,24,82,207,159,19,191,32,226,223,193,104,84,140,62,212,163,127,234,209,59,190,88,114,
201,116,38,121,61,71,250,164,30,219,78,61,12,247,44,187,126,161,180,30,90,253,70,134,90,141,149,70,130,182,4,250,141,13,215,107,132,219,210,118,121,76,182,230,224,120,181,140,69,36,52,130,34,2,116,77,147,42,19,63,161,89,150,68,102,6,173,81,248,35,154,117,86,164,135,86,180,135,250,253,126,23,93,206,129,168,176,2,92,215,115,67,226,37,20,76,195,220,11,38,5,155,196,60,79,70,161,146,39,212,72,137,228,186,156,170,24,121,92,228,68,25,233,42,49,123,159,235,65,238,132,189,66,64,126,235,191,205,89,43,220,93,133,167,212,44,81,24,66,100,17,185,17,240,219,130,19,82,68,215,32,119,198,167,115,173,151,197,97,0,186,247,47,197,71,177,228,83,193,194,126,42,207,195,125,243,30,238,55,22,194,179,202,196,41,122,41,211,5,250,171,82,8,186,16,192,229,245,173,12,117,25,138,50,121,193,77,232,24,146,124,41,185,130,128,212,203,144,11,61,151,105,118,62,175,181,20,16,214,136,41,168,52,121,32,163,52,149,83,145,48,93,28,17,51,181,
76,69,162,235,183,98,7,166,234,36,170,98,231,58,59,17,139,99,40,58,245,9,217,56,23,189,205,34,177,247,121,101,194,28,165,170,163,187,155,161,7,143,154,185,242,145,227,218,134,221,212,75,227,92,150,0,198,72,200,8,118,42,137,164,43,34,53,14,109,26,133,194,160,120,43,32,134,82,153,226,179,44,70,58,109,162,8,5,59,85,128,171,129,13,49,40,182,130,218,169,150,66,178,184,168,206,121,205,228,75,161,101,26,205,83,168,154,223,179,50,162,160,186,56,202,34,159,25,167,192,81,200,17,151,51,6,18,197,77,80,22,76,227,80,171,164,231,175,133,162,202,38,133,169,92,29,38,56,84,192,233,180,184,47,82,136,152,172,239,168,188,234,223,226,118,117,220,143,203,64,54,206,95,93,9,174,196,163,62,158,192,163,239,20,27,147,195,91,76,29,230,183,88,99,166,120,15,242,8,221,162,250,39,143,116,42,63,52,186,229,68,128,218,200,44,31,250,131,162,254,231,253,198,203,14,161,94,247,85,254,123,64,170,222,3,29,2,149,180,204,140,1,116,196,33,79,
113,213,124,216,165,1,229,92,109,63,90,111,157,176,155,247,33,187,237,219,179,147,159,27,234,163,178,29,54,12,168,55,41,143,197,188,36,10,156,142,170,79,0,66,183,187,136,201,218,172,24,253,126,27,207,93,129,189,205,38,144,118,244,27,207,47,214,95,161,95,185,29,216,58,236,0,143,7,118,9,170,105,174,208,133,144,58,131,78,110,99,114,154,194,30,60,56,131,221,214,65,103,124,118,154,43,159,162,252,97,166,161,199,19,211,160,138,198,31,28,110,207,164,168,6,51,33,149,110,93,227,101,117,107,227,31,63,221,43,13,192,18,212,183,56,227,253,86,83,120,51,138,213,131,81,172,238,137,66,113,200,236,244,177,96,36,57,142,176,247,80,48,9,160,105,45,129,153,18,77,18,244,208,189,112,150,24,146,28,194,227,160,5,234,21,190,63,140,123,91,87,192,17,125,31,246,109,187,218,242,254,116,179,189,1,76,21,78,29,220,153,146,15,69,183,186,55,186,155,88,249,136,240,42,170,62,24,228,183,185,122,63,252,223,102,235,227,69,97,246,240,36,207,190,145,228,
213,86,144,133,135,37,38,126,181,215,71,19,102,26,11,24,92,239,206,91,200,86,119,71,86,220,177,225,243,18,225,139,135,97,60,59,45,236,84,119,118,240,124,139,240,139,18,119,242,8,192,205,231,98,5,62,185,35,250,87,92,31,166,25,208,187,243,45,208,215,235,41,170,20,155,134,160,13,164,249,228,205,93,83,166,239,99,27,197,20,186,133,173,253,246,102,63,112,179,227,63,171,252,139,102,155,223,147,52,141,115,31,75,153,45,46,74,8,151,104,87,248,162,201,187,233,35,224,238,78,85,13,233,45,126,85,98,247,116,237,26,37,54,29,195,254,46,140,130,224,127,155,118,136,48,

View file

@ -1193,6 +1193,49 @@ ataSource][2 .]&]
[s0; &]
[ {{10000F(128)G(128)@1 [s0;%% [*2 Public Member List]]}}&]
[s6; &]
[s5;:ScatterDraw`:`:cbModifFormatX: [_^Callback3^ Callback3]<String[@(0.0.255) `&],
[@(0.0.255) int], [@(0.0.255) double]>_[* cbModifFormatX]&]
[s3;%% If set this callback will give the String to be painted beside
every X axis grid line and in the pop window. The input values
are the X axis value set as int and double.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:cbModifFormatDeltaX: [_^Callback3^ Callback3]<String[@(0.0.255) `&],
[@(0.0.255) int], [@(0.0.255) double]>_[* cbModifFormatDeltaX]&]
[s3;%% If set this callback will give the String to be painted in
the pop window representing the delta between two X axis points.
The input values are the X axis value set as int and double.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:cbModifFormatY: [_^Callback3^ Callback3]<String[@(0.0.255) `&],
[@(0.0.255) int], [@(0.0.255) double]>_[* cbModifFormatY]&]
[s3;%% If set this callback will give the String to be painted beside
every main Y axis grid line and in the pop window. The input
values are the Y axis value set as int and double.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:cbModifFormatDeltaY: [_^Callback3^ Callback3]<String[@(0.0.255) `&],
[@(0.0.255) int], [@(0.0.255) double]>_[* cbModifFormatDeltaY]&]
[s3;%% If set this callback will give the String to be painted in
the pop window representing the delta between two Y axis points.
The input values are the Y axis value set as int and double.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:cbModifFormatY2: [_^Callback3^ Callback3]<String[@(0.0.255) `&],
[@(0.0.255) int], [@(0.0.255) double]>_[* cbModifFormatY2]&]
[s3;%% If set this callback will give the String to be painted beside
every secondary and in the pop window Y axis grid line. The input
values are the Y axis value set as int and double.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:cbModifFormatDeltaY2: [_^Callback3^ Callback3]<String[@(0.0.255) `&],
[@(0.0.255) int], [@(0.0.255) double]>_[* cbModifFormatDeltaY2]&]
[s3;%% If set this callback will give the String to be painted in
the pop window representing the secondary delta between two Y
axis points. The input values are the Y axis value set as int
and double.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:WhenZoomScroll: [_^Callback^ Callback]_[* WhenZoomScroll]&]
[s3;%% Callback called when the user does a zoom or a scroll.&]
[s1; &]
@ -1201,6 +1244,10 @@ ataSource][2 .]&]
[s3;%% Callback called when some of the control ranges is changed.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:WhenSetXYMin: [_^Callback^ Callback]_[* WhenSetXYMin]&]
[s3;%% Callback called when scatter plot origin is changed.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:SetSize`(Size`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_[* SetSize
]([_^Size^ Size]_[*@3 sz])&]
[s3;%% Sets the control size with [%-*@3 sz].&]
@ -1290,6 +1337,38 @@ axis ([%-*@3 yLabel]) and secondary vertical axis ([%-*@3 yLabel2]).&]
[s3;%% Sets [%-*@3 colorLabels] as the color of the labels.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetPlotAreaMargin`(int`,int`,int`,int`): [_^ScatterDraw^ ScatterDra
w][@(0.0.255) `&]_[* SetPlotAreaMargin]([@(0.0.255) int]_[*@3 hLeft],
[@(0.0.255) int]_[*@3 hRight], [@(0.0.255) int]_[*@3 vTop], [@(0.0.255) int]_[*@3 vBottom])&]
[s3;%% Sets the left([%-*@3 hLeft]), right ([%-*@3 hRight]), top([%-*@3 vTop])
and bottom ([%-*@3 vBottom]) margins of the scatter plots inside
ScatterDraw control.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetPlotAreaLeftMargin`(int`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetPlotAreaLeftMargin]([@(0.0.255) int]_[*@3 margin])&]
[s3;%% Sets the left [%-*@3 margin] of scatter plot inside ScatterDraw
control.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetPlotAreaRightMargin`(int`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetPlotAreaRightMargin]([@(0.0.255) int]_[*@3 margin])&]
[s3;%% Sets the right [%-*@3 margin] of scatter plot inside ScatterDraw
control.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetPlotAreaTopMargin`(int`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetPlotAreaTopMargin]([@(0.0.255) int]_[*@3 margin])&]
[s3;%% Sets the top [%-*@3 margin] of scatter plot inside ScatterDraw
control.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetPlotAreaBottomMargin`(int`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetPlotAreaBottomMargin]([@(0.0.255) int]_[*@3 margin])&]
[s3;%% Sets the bottom [%-*@3 margin] of scatter plot inside ScatterDraw
control.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetPlotAreaColor`(const Color`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetPlotAreaColor]([@(0.0.255) const]_[_^Color^ Color][@(0.0.255) `&]_[*@3 p`_a`_color])
&]
@ -1311,8 +1390,8 @@ axis ([%-*@3 yLabel]) and secondary vertical axis ([%-*@3 yLabel2]).&]
&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetAxisWidth`(const int`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetAxisWidth]([@(0.0.255) const]_[@(0.0.255) int`&]_[*@3 axis`_width])&]
[s5;:ScatterDraw`:`:SetAxisWidth`(int`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_[* Set
AxisWidth]([@(0.0.255) int]_[*@3 axis`_width])&]
[s3;%% Sets [%-*@3 axis`_width] as the width of the axis in pixels.&]
[s1;%% &]
[s6; &]
@ -1331,23 +1410,23 @@ axis ([%-*@3 yLabel]) and secondary vertical axis ([%-*@3 yLabel2]).&]
&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetGridWidth`(const int`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetGridWidth]([@(0.0.255) const]_[@(0.0.255) int`&]_[*@3 grid`_width])&]
[s5;:ScatterDraw`:`:SetGridWidth`(int`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_[* Set
GridWidth]([@(0.0.255) int]_[*@3 grid`_width])&]
[s3;%% Sets [%-*@3 grid`_width] as the width of the grid in pixels.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:ShowVGrid`(const bool`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* ShowVGrid]([@(0.0.255) const]_[@(0.0.255) bool`&]_[*@3 show])&]
[s5;:ScatterDraw`:`:ShowVGrid`(bool`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_[* ShowV
Grid]([@(0.0.255) bool]_[*@3 show])&]
[s3;%% If [%-*@3 show] is true the vertical grid is shown&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:ShowHGrid`(const bool`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* ShowHGrid]([@(0.0.255) const]_[@(0.0.255) bool`&]_[*@3 show])&]
[s5;:ScatterDraw`:`:ShowHGrid`(bool`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_[* ShowH
Grid]([@(0.0.255) bool]_[*@3 show])&]
[s3;%% If [%-*@3 show] is true the horizontal grid is shown&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:ShowLegend`(const bool`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* ShowLegend]([@(0.0.255) const]_[@(0.0.255) bool`&]_[*@3 show]_`=_[@(0.0.255) true])&]
[s5;:ScatterDraw`:`:ShowLegend`(bool`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_[* Show
Legend]([@(0.0.255) bool]_[*@3 show]_`=_[@(0.0.255) true])&]
[s3;%% If [%-*@3 show] is true it show the graphs name, color and style.&]
[s0;%% -|
@@image:1418&293
@ -1380,11 +1459,15 @@ axis ([%-*@3 yLabel]) and secondary vertical axis ([%-*@3 yLabel2]).&]
[s3;%% Returns true if legend is shown.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:SetLegendWidth`(const int`&`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetLegendWidth]([@(0.0.255) const]_[@(0.0.255) int`&]_[*@3 width])&]
[s5;:ScatterDraw`:`:SetLegendWidth`(int`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_[* S
etLegendWidth]([@(0.0.255) int]_[*@3 width])&]
[s3;%% Sets the [%-*@3 width] in pixels of every legend element.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetLegendWidth`(`): [@(0.0.255) int]_[* GetLegendWidth]()&]
[s3;%% Returns the legend element width.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:SetMode`(int`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_[* SetMode](
[@(0.0.255) int]_[*@3 `_mode]_`=_MD`_ANTIALIASED)&]
[s3;%% Sets the drawing [%-*@3 mode]. Values are:&]
@ -1419,6 +1502,20 @@ le]_[*@3 factorX], [@(0.0.255) double]_[*@3 factorY])&]
by factor [%-*@3 factorY].&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetZoomStyleX`(ZoomStyle`): [_^ScatterDraw^ ScatterDraw]_`&[* SetZoom
StyleX](ZoomStyle_[*@3 style]_`=_TO`_CENTER)&]
[s3;%% Sets the X zoom [%-*@3 style]. Valid values are:&]
[s3;i150;O0;%% TO`_CENTER: Zoom is centered to the control center.&]
[s3;i150;O0;%% FROM`_BASE: Zoom is centered to the X origin.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetZoomStyleY`(ZoomStyle`): [_^ScatterDraw^ ScatterDraw]_`&[* SetZoom
StyleY](ZoomStyle_[*@3 style]_`=_TO`_CENTER)&]
[s3;%% Sets the Y zoom [%-*@3 style]. Valid values are:&]
[s3;i150;O0;%% TO`_CENTER: Zoom is centered to the control center.&]
[s3;i150;O0;%% FROM`_BASE: Zoom is centered to the Y origin.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetRange`(double`,double`,double`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetRange]([@(0.0.255) double]_[*@3 rx], [@(0.0.255) double]_[*@3 ry],
[@(0.0.255) double]_[*@3 ry2]_`=_[@3 100])&]
@ -1443,6 +1540,68 @@ nst]&]
[s3;%% Returns the secondary y axis range.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:SetMajorUnits`(double`,double`): [_^ScatterDraw^ ScatterDraw]_`&[* Se
tMajorUnits]([@(0.0.255) double]_[*@3 ux], [@(0.0.255) double]_[*@3 uy])&]
[s3;%% Sets the horizontal ([%-*@3 ux]) and vertical ([%-*@3 uy]) distance
between grid lines.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetMajorUnitsNum`(int`,int`): [_^ScatterDraw^ ScatterDraw]_`&[* SetMa
jorUnitsNum]([@(0.0.255) int]_[*@3 nx], [@(0.0.255) int]_[*@3 ny])&]
[s3;%% Sets the horizontal ([%-*@3 nx]) and vertical ([%-*@3 ny]) number
of grid lines.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetMaxMajorUnits`(int`,int`): [_^ScatterDraw^ ScatterDraw]_`&[* SetMa
xMajorUnits]([@(0.0.255) int]_[*@3 maxX], [@(0.0.255) int]_[*@3 maxY])&]
[s3;%% Sets the maximum number of horizontal ([%-*@3 maxX]) and vertical
([%-*@3 maxY]) grid lines.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetMajorUnitsX`(`): [@(0.0.255) double]_[* GetMajorUnitsX]()&]
[s3;%% Returns the maximum number of horizontal grid lines.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:GetMajorUnitsY`(`): [@(0.0.255) double]_[* GetMajorUnitsY]()&]
[s3;%% Returns the maximum number of vertical grid lines.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:SetMinUnits`(double`,double`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetMinUnits]([@(0.0.255) double]_[*@3 ux], [@(0.0.255) double]_[*@3 uy])&]
[s3;%% Sets with [%-*@3 ux] and [%-*@3 uy] the first X and Y axis grid
lines location.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetXMinUnit`(`)const: [@(0.0.255) double]_[* GetXMinUnit]_()_[@(0.0.255) c
onst]&]
[s3;%% Returns the first X axis grid line location.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:GetYMinUnit`(`)const: [@(0.0.255) double]_[* GetYMinUnit]_()_[@(0.0.255) c
onst]&]
[s3;%% Returns the first Y axis grid line location.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:SetXYMin`(double`,double`,double`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetXYMin]([@(0.0.255) double]_[*@3 xmin],[@(0.0.255) double]_[*@3 ymin],[@(0.0.255) doub
le]_[*@3 ymin2]_`=_[@3 0])&]
[s3;%% Sets with [%-*@3 xmin], [%-*@3 ymin] and [%-*@3 ymin2] the X, Y
and secondary Y axis origin.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetXMin`(`)const: [@(0.0.255) double]_[* GetXMin]_()_[@(0.0.255) const]&]
[s3;%% Returns the X axis origin.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:GetYMin`(`)const: [@(0.0.255) double]_[* GetYMin]_()_[@(0.0.255) const]&]
[s3;%% Returns the Y axis origin.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:GetYMin2`(`)const: [@(0.0.255) double]_[* GetYMin2]_()_[@(0.0.255) cons
t]&]
[s3;%% Returns the secondary Y axis origin.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:Opacity`(double`): [_^ScatterDraw^ ScatterDraw]_`&[* Opacity]([@(0.0.255) d
ouble]_[*@3 opacity]_`=_[@3 1])&]
[s3;%% Sets the series [%-*@3 opacity] .from 1 (opaque) to 0 (transparent/invisible).&]
@ -1464,12 +1623,149 @@ onst]_[_^String^ String]_[*@3 legend])&]
[s3;%% Returns the legend for [%-*@3 index] series.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetDrawXReticle`(bool`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_
[* SetDrawXReticle]([@(0.0.255) bool]_[*@3 set]_`=_[@(0.0.255) true])&]
[s3;%% If [%-*@3 set] is true the small lines and texts beside every
X grid line are shown.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetDrawYReticle`(bool`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_
[* SetDrawYReticle]([@(0.0.255) bool]_[*@3 set]_`=_[@(0.0.255) true])&]
[s3;%% If [%-*@3 set] is true the small lines and texts to the left
of every Y grid line are shown.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetDrawY2Reticle`(bool`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_
[* SetDrawY2Reticle]([@(0.0.255) bool]_[*@3 set]_`=_[@(0.0.255) true])&]
[s3;%% If [%-*@3 set] is true the small lines and texts to the right
of every Y grid line are shown.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetSequentialX`(int`,bool`): [@(0.0.255) void]_[* SetSequentialX]([@(0.0.255) i
nt]_[*@3 index], [@(0.0.255) bool]_[*@3 sequential]_`=_[@(0.0.255) true])&]
[s3;%% If [%-*@3 sequential] is true, [%-*@3 index] series is considered
to be sequential so all data points are ordered following the
X axis.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetSequentialX`(bool`): [_^ScatterDraw^ ScatterDraw]_`&[* SetSequenti
alX]([@(0.0.255) bool]_[*@3 sequential]_`=_[@(0.0.255) true])&]
[s3;%% If [%-*@3 sequential] is true the last added series is considered
to be sequential so all data points are ordered following the
X axis.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetSequentialXAll`(bool`): [_^ScatterDraw^ ScatterDraw]_`&[* SetSeque
ntialXAll]([@(0.0.255) bool]_[*@3 sequential]_`=_[@(0.0.255) true])&]
[s3;%% If [%-*@3 sequential] is true all series are considered to be
sequential so all data points are ordered following the X axis.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:Show`(int`,bool`): [@(0.0.255) void]_[* Show]([@(0.0.255) int]_[*@3 index
], [@(0.0.255) bool]_[*@3 show]_`=_[@(0.0.255) true])&]
[s3;%% If [%-*@3 show] is true it sets the opacity of [%-*@3 index] data
series to 1. If false, the opacity will be set to 0.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:IsVisible`(int`): [@(0.0.255) bool]_[* IsVisible]([@(0.0.255) int]_[*@3 i
ndex])&]
[s3;%% Returns true if [%-*@3 index] data series opacity is greater
than 0.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:ShowAll`(bool`): [_^ScatterDraw^ ScatterDraw]_`&[* ShowAll]([@(0.0.255) b
ool]_[*@3 show]_`=_[@(0.0.255) true])&]
[s3;%% If [%-*@3 show] is true it sets the opacity of all series to
1. If false, the opacity will be set to 0.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:RemoveSeries`(int`): [@(0.0.255) void]_[* RemoveSeries]([@(0.0.255) int
]_[*@3 index])&]
[s3;%% Remove [%-*@3 index] data series from control. It does not delete
the series data.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:RemoveAllSeries`(`): [@(0.0.255) void]_[* RemoveAllSeries]()&]
[s3;%% Remove all data series from control. It does not delete the
series data.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:Id`(int`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_[* Id]([@(0.0.255) i
nt]_[*@3 id])&]
[s3;%% Sets the [%-*@3 id] of the last added data series.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:Id`(int`,int`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_[* Id]([@(0.0.255) i
nt]_[*@3 index], [@(0.0.255) int]_[*@3 id])&]
[s3;%% Sets the [%-*@3 id] if [%-*@3 index] data series.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetId`(int`): [@(0.0.255) int]_[* GetId]([@(0.0.255) int]_[*@3 index])&]
[s3;%% Returns the id of [%-*@3 index] data series.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetDrawing`(`): [_^Drawing^ Drawing]_[* GetDrawing]()&]
[s3;%% Returns the control Drawing.&]
[s1; &]
[s6; &]
[s5;:ScatterDraw`:`:GetImage`(int`): [_^Image^ Image]_[* GetImage]([@(0.0.255) int]_[*@3 scal
e]_`=_[@3 1])&]
[s3;%% Returns the control Image scaled at [%-*@3 scale].&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetXByPoint`(double`): [@(0.0.255) double]_[* GetXByPoint]([@(0.0.255) d
ouble]_[*@3 x])&]
[s3;%% Returns the X axis value of pixel [%-*@3 x] in data set units.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetYByPoint`(double`): [@(0.0.255) double]_[* GetYByPoint]([@(0.0.255) d
ouble]_[*@3 y])&]
[s3;%% Returns theY axis value of pixel [%-*@3 y] in data set units.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetY2ByPoint`(double`): [@(0.0.255) double]_[* GetY2ByPoint]([@(0.0.255) d
ouble]_[*@3 y])&]
[s3;%% Returns the secondary Y axis value of pixel [%-*@3 y] in data
set units.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetXPointByValue`(double`): [@(0.0.255) double]_[* GetXPointByValue](
[@(0.0.255) double]_[*@3 x])&]
[s3;%% Returns the X axis pixel value of [%-*@3 x] in data set units.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetYPointByValue`(double`): [@(0.0.255) double]_[* GetYPointByValue](
[@(0.0.255) double]_[*@3 y])&]
[s3;%% Returns the Y axis pixel value of [%-*@3 y] in data set units.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SaveAsMetafile`(const char`*`)const: [@(0.0.255) void]_[* SaveAsMetaf
ile]([@(0.0.255) const]_[@(0.0.255) char`*]_[*@3 file])_[@(0.0.255) const]&]
[s0; [*@(28.0.200)1 Windows]&]
[s3;%% Saves the control as a windows metafile in [%-*@3 file].&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetMinZoom`(double`,double`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetMinZoom]([@(0.0.255) double]_[*@3 x], [@(0.0.255) double]_[*@3 y]_`=_`-[@3 1])&]
[s3;%% Sets [%-*@3 x] and [%-*@3 y] as the minimum zoom factor. If [%-*@3 y]
is `-1, only [%-*@3 x] zoom is considered.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetMaxZoom`(double`,double`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&
]_[* SetMaxZoom]([@(0.0.255) double]_[*@3 x], [@(0.0.255) double]_[*@3 y]_`=_`-[@3 1])&]
[s3;%% Sets [%-*@3 x] and [%-*@3 y] as the maximum zoom factor. If [%-*@3 y]
is `-1, only [%-*@3 x] zoom is considered.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:SetFastViewX`(bool`): [_^ScatterDraw^ ScatterDraw][@(0.0.255) `&]_[* Se
tFastViewX]([@(0.0.255) bool]_[*@3 set]_`=_[@(0.0.255) true])&]
[s3;%% If [%-*@3 set] is true, only one point per screen pixel will
be drawn. The Y value of this point will be the average of all
data points between two pixels.&]
[s3;%% In case of big datasets and zoom in with big detail, this
option can accelerate strongly the control refresh.&]
[s1;%% &]
[s6; &]
[s5;:ScatterDraw`:`:GetCount`(`): [@(0.0.255) int]_[* GetCount]()&]
[s3;%% Returns the number of series loaded.&]
[s1; &]

View file

@ -290,51 +290,58 @@ COMPRESSED
133,149,10,43,172,249,152,94,133,60,199,15,228,237,202,107,5,140,88,255,230,89,113,73,148,32,242,9,63,254,246,118,139,96,226,130,194,27,5,129,207,246,228,3,24,241,178,62,162,4,10,42,28,54,135,26,141,155,162,243,103,51,42,145,177,237,77,36,100,40,48,129,112,51,15,186,122,71,35,106,12,247,100,166,101,45,157,63,115,114,124,5,156,120,92,29,244,133,112,35,141,36,69,250,55,153,140,16,43,90,213,87,31,146,9,91,32,216,30,142,95,103,195,202,160,243,207,31,146,44,207,43,33,165,125,25,130,221,88,144,225,121,5,17,170,21,103,66,194,113,242,211,111,8,75,100,50,249,47,169,201,83,240,166,85,211,114,34,53,135,154,230,135,248,232,143,93,140,79,215,52,122,166,32,222,222,189,171,95,31,110,72,127,126,203,44,217,54,93,80,119,71,249,172,151,233,182,6,206,124,222,176,36,18,233,7,209,86,42,103,2,133,243,11,149,200,96,51,75,91,214,154,32,32,75,194,41,231,174,24,154,115,190,216,76,152,76,165,194,184,138,113,222,146,146,105,
131,60,37,126,119,5,77,195,254,207,4,226,175,197,163,48,30,44,65,67,98,137,101,222,199,45,51,160,146,61,24,32,136,201,139,106,117,177,150,101,216,35,209,80,88,254,160,125,78,82,43,200,41,195,183,62,14,233,103,137,112,81,11,134,103,10,0,50,146,81,184,117,42,144,140,24,239,104,179,156,163,10,219,231,31,74,247,215,101,111,169,125,61,47,94,64,206,94,149,34,50,96,222,122,108,77,79,253,171,116,254,139,217,134,120,159,230,249,14,101,57,161,216,246,208,158,207,236,135,172,94,173,74,223,100,55,104,221,220,52,11,36,69,40,184,68,182,24,190,80,74,5,34,166,66,87,81,168,5,121,19,179,196,11,95,249,39,26,237,101,56,81,1,182,94,36,141,154,148,121,65,36,114,26,35,92,136,207,250,248,183,79,48,211,233,207,223,63,241,68,130,251,33,54,149,152,255,180,65,111,113,135,160,30,150,121,146,49,52,65,79,88,38,51,91,131,128,147,149,73,255,18,22,228,80,141,124,41,21,144,184,49,139,17,59,102,118,204,111,120,221,125,48,127,116,144,
172,102,191,37,125,143,56,214,66,21,74,106,140,106,2,135,102,14,34,163,113,41,62,140,82,14,150,203,6,80,175,74,158,181,219,90,208,30,221,228,135,17,28,114,14,129,34,28,12,129,25,61,193,3,169,64,182,64,165,136,128,171,24,252,250,79,254,59,28,34,170,211,123,10,8,58,111,243,175,192,78,65,20,77,225,117,92,122,137,51,237,206,233,16,201,194,208,160,2,224,129,252,60,98,14,161,226,105,24,148,68,178,220,204,161,9,164,140,230,35,28,83,226,11,251,29,180,180,166,175,134,8,199,170,90,3,33,182,44,92,252,152,202,224,43,77,77,231,227,106,8,54,226,79,23,127,225,115,16,17,60,39,48,176,233,34,226,207,43,152,114,141,36,114,142,135,139,241,188,192,196,22,4,123,159,65,136,1,201,242,191,63,214,193,207,144,15,138,215,80,59,147,85,32,196,78,228,208,238,125,191,96,100,37,106,236,165,143,253,247,163,36,103,171,30,34,244,158,40,3,45,112,211,50,23,141,203,37,158,243,66,34,100,223,249,25,109,188,43,26,43,180,176,18,73,46,
92,96,179,189,177,158,121,104,189,174,97,133,117,50,199,237,168,174,106,246,241,193,175,23,84,221,69,4,219,197,246,143,79,112,208,81,70,155,197,104,156,181,54,202,75,223,152,182,225,182,110,8,52,202,134,27,216,124,184,222,223,197,170,248,187,1,174,208,120,132,171,56,74,120,176,243,242,230,21,87,104,26,20,108,71,183,100,101,42,198,144,255,86,152,120,189,84,33,56,252,167,163,123,227,115,135,160,112,92,178,31,207,225,71,113,228,23,97,48,172,63,254,87,220,183,56,37,154,158,249,254,43,212,158,179,169,153,173,236,236,76,39,217,205,73,106,171,50,39,201,206,78,85,178,73,101,178,151,57,169,206,180,211,99,50,214,246,180,179,106,111,50,123,169,2,68,185,200,77,64,20,185,9,136,32,32,23,185,200,85,145,139,136,23,16,1,65,110,10,138,32,200,77,185,131,112,62,80,187,237,153,158,30,123,50,167,78,87,87,127,242,125,207,251,188,207,253,249,189,239,247,98,99,212,109,243,241,113,126,217,133,133,28,69,56,78,13,95,151,112,206,229,87,252,136,61,
18,157,191,172,222,90,93,139,105,24,50,122,136,203,157,107,54,77,173,233,18,80,188,146,140,224,194,165,147,168,1,122,19,184,211,156,10,250,53,140,24,72,180,201,72,117,130,165,229,1,43,185,163,134,13,235,77,24,37,56,52,77,195,150,17,89,250,25,186,33,195,90,51,110,8,154,232,6,110,46,122,110,49,11,14,38,195,179,244,75,194,206,81,100,100,199,110,157,157,22,179,98,132,235,126,226,115,250,114,62,201,129,174,156,201,67,23,59,191,185,99,89,112,217,16,140,101,151,168,210,86,120,111,111,78,198,212,179,244,244,19,154,203,128,68,46,186,70,249,218,83,165,131,18,46,237,210,228,155,0,106,0,218,209,10,32,77,67,162,203,106,115,135,205,109,234,146,121,102,156,238,224,5,105,170,76,108,250,34,141,1,144,234,212,25,137,6,0,243,45,255,249,140,152,210,54,210,154,124,173,21,101,72,196,53,72,66,195,121,180,210,152,17,109,140,79,88,121,164,189,54,99,185,120,186,171,30,206,227,89,230,81,204,244,178,98,7,183,114,153,201,29,159,101,224,88,
186,63,32,133,51,155,248,99,162,83,188,236,138,80,241,12,241,8,146,232,38,179,3,124,46,146,136,32,90,121,22,148,44,83,245,206,111,140,31,119,152,1,188,84,213,66,140,204,154,57,131,73,11,49,139,40,82,203,197,39,130,170,204,152,58,185,4,40,20,203,105,243,60,23,180,192,78,206,242,252,128,240,243,101,6,157,169,229,86,47,138,151,203,44,24,111,83,86,65,211,86,99,185,101,59,95,61,229,76,202,157,180,241,25,11,158,135,114,64,142,114,248,80,69,183,127,102,208,97,131,104,191,14,111,245,64,73,116,66,173,126,134,39,154,220,220,85,118,30,42,57,181,196,71,61,14,201,169,214,168,181,110,176,73,136,93,86,17,181,107,177,210,93,243,227,60,219,40,107,186,59,59,207,213,236,206,238,215,205,119,103,103,106,179,220,243,162,31,88,64,20,204,108,183,219,138,48,24,19,199,8,82,195,25,91,95,233,76,172,41,207,69,208,150,11,3,129,79,4,86,203,118,18,91,48,130,114,32,245,6,21,194,22,61,37,204,184,212,16,84,17,69,232,24,98,140,
171,238,34,25,90,113,227,248,84,182,138,136,56,59,26,218,73,49,35,173,179,178,16,27,58,235,72,27,207,17,237,142,142,158,102,77,214,136,220,130,52,224,121,115,40,60,192,128,206,51,202,42,177,152,219,31,137,64,18,97,71,178,41,18,10,215,29,142,56,52,196,155,117,0,158,138,243,186,203,191,60,172,184,161,237,152,208,7,104,65,90,178,147,0,145,186,18,109,117,152,2,235,13,148,1,217,149,39,221,93,149,201,42,186,170,167,107,0,53,128,153,176,6,158,59,126,22,182,205,194,99,14,235,57,179,67,38,56,116,174,174,202,8,206,18,99,253,220,26,217,60,191,56,1,100,13,18,184,8,14,16,166,192,130,16,179,3,96,77,110,152,168,27,14,53,15,138,174,226,238,48,42,56,187,113,75,30,70,17,128,147,12,11,50,103,65,178,137,128,133,19,233,89,127,163,153,34,193,99,65,247,2,121,51,191,121,34,59,178,49,90,213,137,232,190,252,100,36,68,61,4,86,59,116,50,133,96,97,175,157,25,12,225,41,167,191,113,234,134,194,98,2,139,203,222,193,
133,28,242,132,247,56,142,28,215,55,38,217,157,84,129,160,142,156,206,173,45,244,101,75,95,79,186,56,222,38,51,189,233,112,236,69,38,144,192,178,27,73,224,150,55,72,177,89,43,139,215,106,215,226,147,151,245,146,42,237,158,219,6,243,120,121,46,151,149,200,69,12,211,103,178,180,79,76,215,137,203,158,200,4,48,100,161,243,22,145,15,81,175,3,186,156,133,43,116,18,176,44,113,210,119,67,129,122,93,40,209,19,154,251,251,197,67,0,120,47,97,66,231,99,139,128,51,86,177,152,29,131,162,172,76,53,107,231,42,162,31,191,20,155,210,143,43,136,243,236,249,83,165,146,108,21,238,104,198,201,198,29,188,140,89,139,200,214,135,25,24,37,212,45,64,67,227,171,10,167,218,4,29,69,65,8,20,49,143,6,113,144,167,26,190,24,149,134,24,43,206,144,115,205,92,92,51,166,169,233,125,149,189,75,235,113,33,87,219,19,230,240,86,146,215,142,96,163,124,35,162,141,11,182,141,234,179,80,121,114,209,190,188,60,103,116,71,147,102,184,2,231,75,28,14,19,
121,104,167,96,140,48,59,49,177,55,49,81,141,42,3,9,184,131,190,89,222,245,198,177,107,99,176,233,200,254,62,107,97,142,188,41,149,249,76,123,123,10,222,188,8,182,227,129,187,167,26,88,161,76,96,34,218,23,1,24,51,179,163,156,158,218,154,8,162,60,254,178,91,97,1,7,194,11,243,176,75,92,78,190,63,105,94,24,63,222,157,47,186,192,138,37,49,100,30,185,157,74,25,69,166,69,153,98,126,94,84,108,50,60,228,192,177,237,252,156,40,220,154,29,57,76,150,129,150,71,36,144,72,188,169,29,105,58,103,30,214,175,26,160,11,155,156,164,168,169,65,207,72,57,158,145,188,121,202,67,114,1,166,75,78,218,49,86,194,209,244,204,120,90,1,49,213,82,41,249,236,154,154,105,156,66,100,203,52,136,101,76,98,179,237,240,101,132,37,38,99,57,31,53,129,197,78,91,76,1,68,4,225,156,44,218,103,139,24,85,109,49,89,62,219,191,160,55,171,151,37,31,179,185,157,95,85,17,229,9,130,175,93,89,193,209,29,248,236,44,197,83,191,72,173,59,
247,229,104,53,101,213,150,151,144,236,16,89,48,13,94,223,221,5,23,184,220,12,119,145,64,11,225,102,236,243,72,235,46,0,145,48,139,133,163,54,129,224,0,66,50,106,3,176,128,199,126,36,156,26,183,237,64,71,136,69,229,234,248,134,126,59,110,97,76,79,143,195,177,179,92,89,236,8,38,45,109,91,23,189,150,179,109,49,231,244,116,127,81,166,139,169,98,245,226,169,21,102,141,171,131,9,13,101,139,114,54,49,50,174,176,162,4,4,58,193,227,11,78,45,202,41,227,80,251,30,141,204,57,17,137,104,248,17,197,48,107,61,59,181,59,73,164,103,56,124,229,17,209,134,53,83,77,231,59,144,220,76,100,91,32,32,137,119,233,68,34,115,212,115,17,197,58,183,55,54,189,172,89,227,246,214,220,136,103,243,36,62,49,202,154,168,201,107,37,4,201,209,249,30,225,38,217,233,210,39,32,137,73,22,111,118,158,95,63,156,213,131,73,100,168,128,4,159,149,170,20,231,148,241,117,138,214,152,218,53,134,208,187,211,91,203,53,213,177,91,28,214,141,27,55,165,
136,45,17,202,186,51,60,33,182,229,1,108,51,78,53,74,143,225,44,43,10,181,218,94,152,83,107,118,212,114,8,108,242,168,118,116,62,1,199,210,44,37,217,196,5,170,32,240,194,142,39,161,147,156,217,213,184,204,108,61,134,53,230,157,244,243,9,168,105,102,142,15,22,240,165,44,36,106,42,76,132,64,161,188,185,170,177,118,114,130,21,27,176,84,108,76,32,217,136,195,88,35,20,171,22,109,71,238,206,241,69,139,246,181,18,24,178,234,69,89,69,51,78,62,152,63,26,93,39,55,77,59,244,75,203,134,120,211,186,24,223,116,89,92,1,172,148,70,1,128,144,209,194,135,109,219,46,9,16,22,94,161,110,197,224,234,213,11,18,99,150,51,63,11,128,189,92,50,126,140,36,144,1,64,35,128,169,81,188,237,105,244,28,99,93,147,244,236,11,20,114,226,170,37,235,67,140,193,32,219,37,188,125,181,129,101,65,215,34,172,100,51,14,33,208,182,14,41,173,93,227,24,212,140,100,219,165,89,6,222,98,153,157,220,92,219,92,119,83,76,245,58,11,134,36,42,
202,139,117,107,41,165,34,134,68,52,207,150,29,203,62,55,138,162,123,90,104,141,175,37,96,154,135,134,150,0,238,147,194,226,254,236,156,192,235,106,91,69,58,133,28,106,78,137,116,5,117,42,46,172,39,83,29,40,66,61,6,71,9,54,98,84,123,164,200,69,145,6,138,19,17,204,64,70,56,16,130,34,184,26,143,33,108,85,127,209,0,158,201,146,70,38,125,102,217,254,56,70,166,193,224,96,231,59,184,28,132,197,65,168,194,50,198,142,21,64,55,73,168,218,167,189,172,139,108,196,133,116,107,154,80,101,30,156,87,143,169,75,123,14,249,20,77,25,117,162,213,172,82,190,114,94,28,197,51,20,203,181,243,99,12,29,129,144,173,57,206,87,98,242,197,208,154,100,141,55,91,103,215,173,53,194,58,15,15,222,181,39,220,235,202,80,212,44,177,39,104,216,241,208,17,162,92,4,34,65,134,165,3,203,240,97,204,20,150,185,44,2,0,139,86,31,182,30,69,74,14,43,27,13,5,90,55,102,183,225,11,243,48,13,220,174,19,232,171,90,212,101,163,81,105,87,
163,240,9,184,53,16,8,156,237,4,214,2,130,14,204,161,231,13,222,201,152,131,162,160,40,182,92,39,52,77,105,77,48,222,70,242,45,174,181,211,2,22,42,48,197,52,29,48,101,181,198,45,26,141,190,162,91,56,151,168,43,91,91,52,71,9,186,17,187,94,231,159,157,10,125,98,180,47,95,196,45,215,215,233,240,139,243,77,9,220,185,113,72,236,108,131,17,50,35,132,139,17,17,146,36,229,29,175,40,73,155,60,62,117,146,81,76,49,44,243,78,54,59,137,54,59,15,182,181,165,52,128,84,180,208,74,14,171,99,44,101,37,180,122,68,31,214,149,11,235,52,249,201,22,7,231,89,70,45,70,205,163,153,173,48,242,133,253,176,1,244,67,43,151,39,79,82,243,74,79,122,191,88,144,78,134,139,46,30,19,220,154,46,248,128,94,23,104,40,183,241,254,198,40,150,47,171,16,121,35,136,201,78,95,243,242,86,22,86,16,200,68,221,82,244,144,39,38,128,198,97,155,153,189,194,79,75,147,12,49,7,150,47,98,237,52,191,142,175,229,78,21,58,0,131,196,
133,237,137,240,14,23,208,246,79,61,75,64,255,133,42,174,224,15,175,122,5,127,252,238,43,248,195,12,105,175,0,8,145,39,71,57,100,149,75,148,115,30,15,81,187,138,53,20,25,192,105,250,96,22,73,231,114,39,40,148,131,125,90,154,100,153,103,31,0,204,59,71,109,4,0,22,235,64,49,129,149,55,235,43,152,149,141,38,161,184,33,87,20,96,89,35,65,45,203,184,0,156,208,53,184,141,0,76,14,204,61,218,69,63,208,194,74,23,253,100,181,27,93,244,195,61,215,117,209,207,230,196,150,222,138,240,55,82,130,22,0,67,220,205,74,48,96,117,205,219,34,99,227,169,170,216,70,56,148,85,56,231,104,180,43,150,131,30,118,189,120,124,186,10,96,28,103,98,132,176,11,184,107,127,33,150,108,144,44,200,142,169,28,221,125,45,2,15,7,52,111,162,222,64,158,187,130,37,6,235,149,27,172,165,43,55,84,233,87,176,132,133,214,135,249,254,70,189,134,209,76,117,12,14,203,34,0,46,110,145,127,170,81,86,1,46,219,92,189,218,30,58,62,234,128,42,
231,164,69,130,52,140,177,221,132,156,104,1,227,203,111,238,206,47,110,156,133,1,32,111,131,153,166,240,29,160,100,180,242,106,117,17,222,132,113,3,64,166,65,224,22,59,48,14,128,40,58,49,177,43,25,172,3,106,0,63,103,5,213,125,57,212,26,25,23,162,125,132,237,121,67,160,16,35,181,43,171,108,122,210,82,178,111,10,45,23,192,170,192,30,179,70,38,228,106,223,60,210,109,153,182,118,128,36,156,85,213,104,106,249,195,213,49,24,121,1,117,114,196,210,123,194,98,188,216,49,81,183,148,118,207,12,142,18,234,132,224,38,151,80,59,82,112,80,132,101,161,215,9,76,94,215,16,225,4,38,193,108,71,46,13,21,21,155,205,206,100,70,12,249,43,224,20,65,94,1,39,167,246,10,56,193,1,239,122,215,157,206,2,124,85,152,56,210,166,87,196,186,122,74,168,108,71,217,85,173,96,92,231,194,28,74,89,151,171,35,75,75,212,133,81,33,146,47,111,46,44,112,22,23,71,19,58,162,157,48,189,65,228,97,157,71,146,232,70,139,50,171,141,198,71,70,
172,235,142,153,209,49,215,58,159,210,89,223,132,66,205,150,182,179,190,161,80,52,56,90,90,129,114,91,172,74,215,105,201,33,201,204,24,157,137,41,160,213,226,244,12,3,201,186,184,184,88,169,42,195,89,95,213,126,9,148,233,41,30,167,77,63,41,95,80,171,62,190,157,236,152,243,230,49,43,80,41,221,180,14,36,0,49,53,142,215,134,77,19,49,151,89,105,217,82,103,235,14,94,162,146,13,107,219,53,246,186,58,163,10,106,70,49,212,57,7,228,0,194,92,190,12,236,23,181,110,58,97,118,191,105,116,140,176,173,99,1,60,2,54,10,133,24,49,100,145,31,183,19,42,219,185,121,65,105,110,155,74,198,95,212,27,105,137,112,172,81,206,32,169,210,168,169,184,18,209,214,226,19,33,95,59,120,185,54,141,45,48,219,77,3,47,119,176,188,57,41,9,0,139,168,5,87,64,129,203,103,117,57,236,148,116,25,204,45,44,44,69,22,213,129,77,152,190,18,105,156,25,26,101,203,1,103,100,215,2,230,107,15,90,13,97,38,113,12,158,90,176,50,198,210,123,
11,212,197,184,124,195,237,92,185,116,232,184,57,224,230,24,127,117,68,158,112,50,22,143,17,152,132,214,135,0,236,227,114,33,229,1,89,204,74,7,176,216,116,120,165,230,183,172,59,225,200,116,19,123,156,242,204,111,139,54,84,204,45,234,146,132,60,210,62,170,174,165,188,194,77,248,230,38,102,111,124,98,77,131,99,100,20,48,254,12,16,125,185,227,169,5,246,206,34,129,64,80,101,195,173,148,2,181,190,190,177,17,12,168,11,28,151,128,205,130,242,173,30,18,157,33,174,73,151,92,4,181,241,120,221,201,84,23,216,107,82,167,69,83,74,170,188,235,62,31,117,129,189,72,14,137,195,211,84,106,90,225,70,241,165,205,106,158,115,200,181,140,184,138,89,146,35,10,240,83,23,147,241,29,30,179,25,83,160,162,235,235,91,91,205,70,102,120,169,35,134,101,158,9,212,205,34,226,104,107,113,27,35,14,107,209,84,216,146,131,62,236,180,77,44,237,85,145,124,30,22,136,223,10,98,119,213,234,82,217,25,98,201,186,187,52,14,231,107,13,177,41,119,192,125,196,
108,87,109,237,74,235,210,171,201,23,99,225,88,12,195,68,156,167,198,0,26,56,127,34,180,76,162,31,159,214,161,250,16,48,158,237,230,96,253,50,165,114,79,114,112,144,52,181,100,152,168,157,32,230,166,172,120,124,28,57,188,73,154,119,11,132,194,2,32,14,229,34,225,4,74,253,198,98,192,234,89,174,54,11,54,12,25,127,54,97,113,105,188,163,46,181,128,125,212,110,93,154,206,245,188,78,135,163,106,115,203,167,10,20,127,6,223,45,179,54,90,242,40,53,218,249,159,106,112,249,130,157,200,195,81,207,84,232,99,122,37,226,138,71,34,8,151,193,24,93,50,195,149,7,138,4,76,103,195,210,133,243,243,50,63,48,135,95,153,158,220,118,17,216,80,190,86,14,235,56,97,17,133,194,163,118,119,119,209,123,227,36,202,28,209,126,201,16,95,58,241,220,206,58,131,205,193,202,148,184,81,180,159,2,93,130,107,114,126,179,116,53,185,0,3,130,211,56,3,68,233,179,171,194,56,99,153,220,19,135,225,13,96,81,60,199,229,22,41,11,0,84,210,235,121,122,
175,208,231,156,86,152,145,23,238,192,206,142,116,185,243,235,226,205,240,28,46,160,176,71,243,83,11,60,248,78,72,221,172,74,177,27,167,22,36,49,163,26,163,186,2,48,91,185,236,46,163,41,242,72,245,104,9,3,36,29,71,153,60,129,44,184,55,37,6,5,251,108,127,81,37,84,243,171,198,32,138,88,175,172,148,218,25,5,62,2,217,108,8,24,161,202,60,143,145,95,12,0,53,254,108,63,35,7,242,96,77,184,227,50,141,76,134,102,150,185,181,16,86,102,72,9,132,211,208,185,189,147,246,5,50,2,132,243,136,35,45,25,54,236,37,89,44,112,187,140,102,44,212,1,67,163,214,210,40,12,93,87,214,240,75,217,131,229,112,82,101,133,128,173,163,52,48,188,121,132,91,81,5,2,80,4,32,215,218,2,225,210,145,85,176,119,170,190,149,149,22,119,207,30,221,17,10,153,173,250,124,117,193,179,48,69,12,168,252,6,195,248,201,90,102,233,0,171,199,197,154,135,171,195,234,102,120,165,221,148,203,8,116,83,180,89,45,224,86,92,77,41,233,188,85,54,
55,56,184,229,105,38,211,153,168,58,232,58,86,213,24,135,12,175,109,160,144,54,48,163,33,146,201,92,251,13,139,38,19,214,42,33,250,58,155,205,231,243,109,53,32,127,2,10,205,209,54,86,135,222,35,64,109,116,28,211,166,100,104,75,156,212,180,50,189,183,225,143,170,243,81,187,29,233,218,215,154,14,125,226,48,62,87,63,104,183,124,246,104,33,79,199,216,9,39,206,10,115,101,23,167,62,166,78,231,150,145,251,212,165,92,30,208,105,102,185,118,130,167,34,116,245,34,63,184,106,9,75,201,219,115,68,137,76,0,149,29,174,66,53,37,11,87,98,40,7,236,150,218,230,52,49,168,50,158,81,150,155,234,0,203,8,118,58,215,215,141,142,116,231,255,136,37,7,85,179,153,177,224,162,105,102,138,105,212,108,172,175,239,144,25,141,74,246,210,56,140,51,77,241,109,195,27,60,204,204,133,19,7,134,113,114,226,51,32,47,141,182,97,207,110,141,193,227,93,36,150,28,103,185,204,82,248,196,173,32,227,15,25,98,139,43,24,93,8,170,72,241,125,76,174,147,
55,184,163,114,40,57,193,218,225,237,58,153,96,170,137,13,175,92,28,43,114,7,45,111,210,119,224,77,20,147,59,99,81,74,130,33,219,112,122,192,107,88,218,188,226,188,150,106,250,119,13,149,72,88,40,2,162,112,228,0,178,78,4,150,30,242,225,61,135,99,214,78,204,170,49,209,81,78,209,50,140,136,180,234,167,60,204,158,107,11,108,204,3,30,69,75,129,52,148,232,243,38,12,207,65,7,210,128,172,93,2,130,111,95,158,168,26,206,133,22,57,143,103,230,241,168,11,179,208,178,59,27,22,38,137,136,253,225,160,42,35,15,88,17,229,102,121,63,177,51,183,133,207,237,123,189,35,86,172,223,204,220,41,69,26,57,238,252,197,40,154,98,10,154,50,211,242,132,195,88,219,108,154,153,45,105,124,3,65,42,97,19,21,230,168,30,106,176,131,229,75,197,240,233,174,35,173,243,51,148,142,212,146,214,178,77,141,156,56,104,72,108,221,167,17,135,1,11,102,206,109,26,52,153,56,189,20,78,21,137,139,37,88,130,113,212,178,16,157,250,74,72,113,17,84,157,
69,203,199,6,0,195,150,217,99,226,64,64,95,45,228,90,149,170,14,145,245,10,188,41,155,87,136,33,79,80,142,218,107,152,180,95,198,113,77,3,24,212,8,134,168,49,64,177,113,140,48,213,199,249,25,102,198,51,86,39,28,132,70,119,42,181,180,61,207,115,208,166,104,69,36,88,54,114,156,87,19,230,193,112,152,147,50,38,116,59,130,92,44,216,207,152,199,234,14,28,182,226,188,110,85,156,91,174,173,37,85,11,44,8,145,207,216,156,69,97,26,225,74,56,174,155,97,228,1,92,204,52,66,215,46,230,113,126,205,170,201,140,51,192,50,149,133,208,133,19,104,105,123,181,133,192,136,196,18,147,35,157,203,105,133,120,193,67,243,120,20,136,226,132,64,124,52,62,49,81,178,78,108,249,138,233,61,140,182,134,104,26,193,232,105,37,138,121,78,32,18,247,99,251,176,253,125,28,195,80,77,87,242,156,98,145,20,57,89,245,114,71,243,1,168,35,29,1,26,112,85,103,9,65,240,235,110,222,54,117,105,173,102,247,128,169,27,188,144,14,51,37,51,37,197,44,
136,31,128,196,92,217,100,104,177,81,62,155,44,31,111,209,52,23,250,11,156,67,87,220,221,44,72,150,182,130,121,185,124,63,84,140,68,196,162,114,202,187,55,182,100,28,77,33,225,188,108,88,119,80,242,122,115,41,26,208,37,113,23,105,153,197,12,199,102,2,62,165,208,37,48,65,185,203,36,43,161,48,61,61,109,40,87,233,206,26,164,16,153,246,134,29,155,146,21,92,115,185,145,149,7,60,104,131,229,244,116,108,82,156,63,139,132,99,135,91,20,96,25,153,200,113,39,35,16,147,87,181,225,84,224,205,86,247,164,36,130,158,159,219,19,122,147,44,23,20,146,33,192,124,94,47,229,124,97,150,81,206,69,194,235,108,180,131,174,141,43,66,218,5,233,170,150,134,50,210,20,73,188,214,154,106,210,84,226,147,180,100,165,168,218,32,168,206,207,207,189,158,202,36,141,13,196,139,42,183,220,16,107,19,243,228,96,54,90,150,202,156,142,68,72,115,81,57,219,246,67,34,146,131,149,72,116,148,6,111,212,109,216,22,61,177,69,225,56,162,204,38,100,14,130,159,
69,30,243,108,151,118,82,104,126,59,92,75,208,71,55,80,124,4,0,134,41,90,252,230,1,204,11,158,163,79,75,38,150,242,234,145,172,76,210,174,251,86,166,23,216,216,197,41,158,188,112,25,90,142,94,214,75,9,26,176,44,215,194,203,200,249,100,52,74,229,218,169,149,3,84,123,165,238,151,231,140,17,165,109,63,168,56,37,18,180,196,203,180,153,111,31,118,113,70,218,110,62,76,218,208,138,78,183,166,100,190,13,246,254,217,137,94,100,60,22,65,215,226,71,133,97,165,47,34,223,113,90,42,249,246,89,238,100,139,66,111,250,18,80,40,212,115,134,41,57,194,149,131,237,194,197,212,236,72,8,59,30,24,171,150,253,99,146,229,246,122,162,209,210,104,52,142,133,212,74,220,208,110,237,52,179,155,162,49,110,236,40,107,78,178,2,73,143,97,222,13,192,44,175,198,151,9,46,249,130,120,230,206,148,58,127,168,43,103,106,64,82,35,78,221,60,0,72,174,149,25,134,197,89,117,122,79,148,29,19,98,113,85,160,97,229,91,37,70,243,220,78,227,95,96,156,
43,204,196,133,178,165,105,86,85,20,51,102,9,25,81,159,238,206,242,151,166,2,46,132,116,41,176,86,192,49,0,196,122,104,115,175,143,115,106,212,90,137,53,140,91,62,28,230,206,92,228,70,38,35,234,230,57,115,83,86,5,58,197,244,252,130,112,113,39,16,169,167,211,11,107,66,4,228,98,213,161,195,205,45,167,60,30,62,201,17,49,212,163,150,230,121,99,162,196,135,69,245,54,70,13,192,76,154,249,45,193,146,217,41,30,51,20,119,249,202,128,85,0,147,78,249,184,147,161,61,232,188,211,80,9,5,51,170,140,44,89,214,97,12,123,19,8,96,229,41,6,160,228,33,123,229,178,136,115,119,118,165,89,132,166,102,109,76,96,78,48,179,109,236,9,2,19,164,138,228,9,172,214,13,163,213,252,196,45,212,246,176,109,52,113,228,196,229,91,173,244,101,250,224,200,82,202,76,6,39,19,167,204,97,198,56,15,0,135,198,164,117,153,213,1,138,163,77,91,117,51,120,145,58,140,108,235,107,64,252,75,136,23,21,160,136,207,206,205,17,166,23,248,130,153,212,
1,185,125,89,234,40,116,84,68,140,226,24,77,106,227,160,57,154,184,16,235,232,217,221,57,67,140,152,211,25,74,123,9,7,157,69,87,2,13,54,228,160,43,53,167,238,57,70,110,113,222,163,46,196,96,1,167,149,111,93,193,94,86,57,186,56,108,68,152,227,175,130,137,60,135,34,176,57,51,14,224,97,242,206,153,128,35,60,43,235,116,134,12,60,160,136,94,156,31,66,33,144,107,128,241,205,94,77,187,96,178,104,127,177,89,219,57,167,87,170,251,241,73,245,60,113,63,183,47,231,141,132,78,224,88,250,174,10,174,203,155,198,74,36,35,184,75,173,63,12,30,44,95,230,119,142,108,243,216,121,205,66,64,153,106,7,85,11,88,184,186,229,171,167,117,197,83,194,229,82,185,243,139,176,189,190,185,131,5,14,24,128,69,158,25,124,12,194,115,50,205,163,188,68,34,177,20,198,178,14,79,125,64,161,228,21,131,156,97,35,195,49,211,229,59,188,131,7,48,81,254,208,88,77,215,249,46,206,201,246,116,163,4,20,76,202,246,73,114,66,184,39,10,105,8,203,
25,60,149,218,240,184,15,157,94,143,71,95,176,68,136,254,179,197,77,241,166,219,110,95,93,110,120,27,237,114,70,6,89,92,154,245,205,206,82,179,90,100,205,185,82,247,74,34,205,130,218,202,93,241,187,233,142,58,47,200,106,156,156,150,151,50,65,111,218,238,70,90,58,152,45,201,47,83,207,246,137,249,232,137,223,93,158,240,69,230,253,169,21,0,148,141,239,47,198,173,155,171,195,163,11,97,173,87,1,148,61,64,81,157,9,192,15,23,76,127,66,15,148,77,137,250,16,10,85,113,209,244,224,242,102,113,199,60,54,41,97,128,245,181,69,181,22,121,182,236,149,242,218,5,92,187,173,175,198,198,18,78,102,102,5,0,15,64,144,46,71,219,41,229,241,41,204,4,76,59,163,128,82,42,20,74,254,128,104,159,53,28,23,179,161,154,179,173,108,201,143,86,90,85,206,248,30,67,95,197,47,180,42,237,203,138,191,153,213,225,114,158,49,255,176,58,84,14,106,116,240,114,54,60,50,230,69,195,171,245,24,56,198,222,139,199,227,243,70,13,151,203,77,217,143,145,
167,176,46,231,34,212,134,165,65,204,166,181,196,4,237,208,233,219,147,50,86,90,180,49,158,83,201,60,25,235,32,47,24,217,73,83,187,130,193,233,134,67,147,64,51,12,142,122,249,108,95,126,178,181,111,60,200,199,225,16,70,50,18,14,99,188,230,81,62,102,140,135,212,211,141,136,142,127,214,102,166,215,157,43,181,243,217,96,179,125,202,99,78,33,229,214,209,35,27,54,42,155,159,95,159,103,177,88,86,190,180,69,109,30,250,27,60,230,98,107,67,149,4,128,154,119,43,76,152,45,5,206,97,197,142,88,248,105,29,196,111,184,220,162,200,225,64,205,154,169,213,106,120,22,110,60,27,106,108,136,55,54,128,187,206,21,100,187,89,7,162,1,191,14,68,195,217,161,220,64,55,70,38,104,163,117,109,40,56,118,94,14,230,224,88,61,172,172,59,211,104,178,154,106,102,249,178,65,34,208,206,187,156,105,248,105,136,66,161,240,155,83,112,102,11,145,85,138,3,133,74,32,45,201,28,225,121,188,217,89,176,179,0,76,217,204,69,12,155,27,12,27,122,170,208,164,
84,11,78,60,239,40,71,0,220,90,210,132,206,90,133,248,198,68,149,101,5,199,92,170,25,39,15,143,0,114,131,85,152,146,142,30,130,207,97,122,161,176,145,70,9,197,73,207,188,158,24,180,102,99,20,229,73,163,9,169,199,119,53,36,102,171,10,25,147,214,107,42,117,53,127,8,78,140,159,82,40,20,198,140,83,102,99,65,85,65,117,129,197,9,224,106,90,136,177,10,216,15,179,230,226,168,109,60,39,3,173,59,143,231,151,14,154,23,153,64,84,41,90,89,89,105,239,155,18,204,5,177,248,100,12,60,50,50,226,23,9,4,1,148,6,113,152,109,88,33,168,137,49,178,232,48,91,115,224,23,203,12,26,77,164,207,69,244,219,84,21,116,100,140,213,17,19,6,184,219,25,146,112,130,245,76,78,123,58,119,99,103,53,9,134,214,90,199,200,242,216,201,214,148,230,124,118,109,197,114,14,88,219,15,14,82,149,192,138,1,80,26,187,61,143,7,8,103,0,59,43,252,75,217,58,157,86,143,89,144,156,150,13,183,151,47,66,161,77,232,25,120,91,90,152,158,
85,166,167,221,44,128,229,245,242,230,115,215,195,216,76,139,201,41,151,215,239,223,255,239,255,254,214,253,223,12,190,249,195,63,255,115,208,211,31,126,115,15,244,79,189,3,131,61,67,125,143,122,65,247,126,2,26,124,216,51,52,212,59,0,250,253,64,207,167,31,131,30,246,63,30,26,232,127,244,6,232,221,33,208,71,253,189,131,160,199,253,67,160,129,222,127,123,210,55,208,11,122,231,31,223,5,13,246,131,250,134,64,127,232,31,248,215,65,80,223,99,128,254,147,79,122,30,127,4,122,212,247,184,23,244,233,64,63,192,229,147,193,55,238,95,205,118,239,115,243,190,11,208,247,12,246,130,250,127,215,101,5,240,121,216,243,24,244,97,47,232,201,96,239,71,160,251,191,249,237,80,255,167,125,15,31,252,224,193,95,61,248,171,247,174,196,250,241,208,192,163,7,127,53,56,240,240,249,59,255,179,247,241,131,191,124,50,248,224,127,220,190,249,131,7,63,120,248,168,103,112,240,183,247,64,183,110,223,7,38,6,13,125,220,51,4,234,27,4,125,216,211,153,169,255,241,
13,193,79,6,122,254,112,37,237,91,159,55,210,45,10,208,71,61,67,61,157,225,125,143,31,62,122,242,17,192,1,208,252,133,226,118,168,175,197,253,9,48,230,189,254,39,3,15,123,111,164,5,228,122,118,179,35,214,141,157,174,103,126,235,135,157,11,232,63,255,243,173,55,129,63,127,247,218,91,247,190,255,250,59,221,127,127,244,22,232,70,176,191,184,7,250,113,255,227,193,161,129,39,15,135,250,7,64,63,233,29,234,233,123,116,227,233,191,238,114,24,252,222,15,127,112,91,30,192,46,183,63,190,246,224,245,31,0,124,110,43,120,255,181,215,59,227,190,211,153,225,221,199,125,67,125,61,143,250,254,3,112,254,208,199,189,160,174,73,223,120,38,31,32,199,221,196,252,229,147,15,31,245,61,4,253,188,247,147,15,129,240,250,89,223,224,208,87,138,249,207,31,247,62,254,63,253,253,159,188,247,16,136,193,71,128,148,31,252,246,199,61,143,30,125,216,243,240,95,127,11,186,249,233,254,7,128,240,207,83,222,127,42,253,13,17,16,89,143,30,1,142,250,3,64,215,
85,3,8,177,129,171,136,238,1,253,7,48,16,4,24,175,7,8,254,206,240,219,218,189,84,182,247,122,135,126,213,243,248,247,189,95,37,217,13,221,87,200,53,216,255,73,55,25,186,102,190,74,60,208,64,103,220,96,39,216,30,126,220,249,241,163,59,9,7,76,248,30,224,177,7,175,117,255,125,189,43,223,45,146,223,62,231,236,223,252,232,181,55,223,120,243,141,123,223,251,222,235,160,7,223,234,10,125,61,254,254,107,157,113,192,15,192,128,206,71,224,209,143,190,3,26,252,143,251,207,194,3,160,28,124,78,224,65,128,16,244,135,190,161,143,65,191,249,243,191,188,38,127,227,185,140,250,82,169,223,185,145,250,193,235,15,59,49,13,136,125,75,180,127,239,27,24,122,210,243,232,62,232,11,50,129,222,185,17,247,245,15,110,143,232,50,121,102,243,95,245,14,61,25,120,252,69,105,239,106,209,31,247,63,234,31,120,240,90,151,43,232,234,195,183,190,158,109,187,131,1,227,126,65,214,15,58,113,212,121,248,219,171,9,94,48,30,176,232,195,238,163,207,249,224,218,
218,87,207,64,111,244,12,94,87,240,78,148,253,126,160,255,9,80,148,187,207,238,232,11,128,231,175,251,134,30,245,222,232,251,222,208,64,223,227,223,127,93,133,187,172,190,76,225,43,214,191,189,158,226,197,42,15,117,25,188,88,229,171,103,160,167,26,119,63,223,61,228,174,213,236,42,246,245,228,3,189,243,84,195,215,191,16,109,95,148,233,110,134,255,59,32,66,111,140,223,253,249,79,49,125,135,193,151,153,191,243,236,183,221,41,94,108,250,223,1,79,126,253,18,243,63,123,222,113,65,87,209,238,189,87,12,180,111,46,187,158,177,251,19,83,236,101,90,223,34,120,166,246,80,239,31,135,94,41,203,222,121,206,217,215,234,190,212,33,160,119,158,115,233,23,227,173,83,221,190,224,132,175,116,193,207,122,62,236,125,52,248,133,100,255,246,87,124,254,92,206,252,123,127,223,71,55,94,184,226,248,167,228,252,31,187,44,238,127,251,235,166,37,192,226,179,111,138,197,189,251,31,60,248,219,15,30,252,217,131,63,123,65,235,123,212,85,245,166,115,127,220,63,208,247,31,
128,233,123,30,129,122,254,8,244,237,215,174,35,230,90,157,215,191,13,250,247,222,129,161,190,135,159,127,126,45,235,235,160,14,126,30,236,5,164,252,168,103,224,179,151,18,223,187,255,250,221,179,172,59,226,95,190,153,122,126,197,235,27,112,238,139,147,235,250,97,55,177,110,236,251,37,230,189,123,162,221,232,127,231,66,255,193,131,111,93,229,219,141,182,47,78,182,59,72,119,55,223,188,255,13,250,230,253,63,197,55,159,189,204,55,159,189,196,55,207,197,234,43,122,230,253,175,237,153,247,239,228,153,23,201,118,71,191,220,251,38,29,115,239,255,139,103,190,164,158,188,170,143,238,125,125,39,221,187,147,151,94,46,231,29,219,216,55,5,157,158,113,251,83,176,211,117,35,252,114,240,116,77,240,156,223,6,95,5,66,189,243,188,226,95,132,17,31,220,114,196,224,203,128,67,103,210,27,87,92,201,241,106,150,255,230,64,220,45,126,127,34,138,123,169,253,111,83,220,56,160,123,239,133,86,184,67,151,253,229,163,254,161,183,7,122,123,190,57,75,60,199,241,235,219,226,
211,7,31,244,60,248,224,101,75,199,219,20,55,182,248,252,234,177,99,150,79,1,129,64,61,128,68,119,183,202,219,64,14,127,115,22,121,202,237,235,91,163,83,84,94,110,141,219,20,47,140,140,167,117,169,187,195,245,151,255,245,163,31,245,125,210,243,251,222,31,252,205,247,254,250,91,223,125,243,175,193,195,53,240,42,248,233,159,42,143,150,161,172,102,135,165,91,120,171,46,142,13,151,215,240,33,168,57,79,195,242,32,254,132,52,196,73,55,37,2,82,128,66,192,110,177,86,45,135,20,93,171,154,179,238,224,217,147,18,216,228,166,38,2,121,198,8,13,6,215,10,16,172,27,229,245,50,188,43,171,10,210,54,177,124,184,216,108,199,90,35,6,245,54,81,89,50,216,148,72,118,174,129,145,194,221,150,58,182,117,176,23,192,10,234,25,169,155,128,171,170,10,222,21,179,77,128,219,152,139,9,199,84,11,203,45,86,73,131,179,202,87,5,75,26,198,20,6,27,184,68,19,185,179,68,127,201,236,168,156,165,119,82,19,137,181,225,225,67,239,5,219,62,183,147,146,
234,92,6,170,168,190,102,215,39,243,59,41,136,157,108,137,10,201,23,103,40,83,86,185,165,80,199,197,51,1,255,162,235,80,232,29,213,83,77,123,11,76,12,201,161,89,216,35,109,145,52,139,169,146,115,110,125,47,155,30,95,23,72,22,26,14,179,198,112,214,72,132,39,48,81,230,218,132,34,48,151,185,244,102,130,185,243,26,125,193,46,10,80,178,149,53,217,69,72,55,121,161,106,238,43,131,165,166,88,85,105,224,208,163,12,147,79,104,87,72,124,178,21,92,57,219,22,70,154,74,155,157,179,146,154,59,63,53,79,155,66,141,165,75,239,162,70,179,151,83,242,42,196,248,116,75,162,113,50,10,248,198,234,226,58,188,21,21,236,103,153,199,21,178,147,140,221,44,121,115,33,197,38,46,190,39,193,102,189,122,148,124,85,66,194,17,21,39,174,76,216,155,227,111,23,107,30,63,221,104,79,138,28,179,18,45,132,188,55,57,92,22,142,177,89,35,23,37,214,161,55,230,158,241,198,128,203,204,233,213,197,171,184,186,196,166,175,46,135,153,238,69,63,123,25,112,
120,4,28,86,140,87,247,166,163,83,59,41,2,101,39,37,3,254,106,164,41,89,89,216,26,1,79,174,54,243,175,148,56,255,220,247,209,208,199,55,137,211,247,245,219,217,83,94,47,78,155,91,183,186,147,60,151,41,127,232,142,123,89,166,92,81,220,100,74,247,211,237,76,233,108,145,127,218,247,199,87,170,165,239,12,244,125,244,205,85,141,167,220,190,126,213,248,61,192,226,229,85,227,54,197,11,171,70,135,224,133,85,227,59,127,3,84,141,55,193,195,101,176,241,86,213,144,208,50,147,171,153,97,227,20,222,122,201,133,211,220,75,48,221,12,98,131,133,22,90,232,177,208,154,227,2,135,192,203,165,139,34,97,9,49,57,182,63,74,105,159,97,201,88,223,94,177,8,47,161,153,78,128,129,180,195,229,48,54,154,44,239,146,172,98,243,138,0,73,138,83,206,183,160,211,151,7,58,187,14,237,62,131,110,187,103,105,114,240,48,113,43,58,181,37,165,8,215,70,121,83,104,29,118,237,162,157,240,65,168,39,179,163,244,147,81,234,201,40,161,115,137,108,251,42,225,
108,137,83,83,91,139,216,149,84,35,79,84,201,83,123,78,205,120,122,142,22,159,34,235,162,171,161,84,210,107,56,56,215,95,230,145,80,244,102,38,127,88,172,152,147,124,177,120,46,20,150,96,29,114,166,83,138,144,138,138,230,54,130,83,62,194,70,48,14,44,162,117,176,107,59,130,162,209,99,220,69,21,191,112,6,110,183,150,105,225,178,53,1,142,110,158,85,91,155,60,85,52,57,65,25,149,232,220,81,146,217,159,103,144,154,180,189,148,46,163,198,232,11,23,185,201,67,63,67,177,217,136,230,133,103,97,115,190,74,22,92,248,182,160,232,177,112,190,133,70,149,170,48,105,52,43,98,151,171,244,149,131,3,248,76,107,90,69,43,136,34,117,19,124,152,22,52,151,244,4,85,19,106,94,128,175,211,231,28,134,227,150,121,106,43,142,144,133,162,217,210,18,67,78,117,112,38,79,69,101,53,53,178,184,148,137,162,163,24,169,55,186,186,149,53,148,85,77,20,35,178,232,138,54,227,8,178,107,37,74,12,215,139,129,74,181,104,152,173,155,197,132,34,97,23,203,
164,22,34,136,75,42,249,104,175,205,17,153,119,139,4,246,34,102,76,96,70,96,177,222,205,98,218,37,141,218,147,117,123,24,62,114,14,241,68,19,78,167,199,16,163,214,51,165,160,10,165,5,139,40,35,116,50,86,91,219,194,168,182,48,216,70,61,106,63,52,135,102,204,219,33,224,210,60,172,162,113,66,191,94,246,74,153,243,77,149,141,167,188,94,169,108,92,37,194,203,202,198,109,138,23,150,141,14,193,171,151,141,143,251,255,240,79,29,145,111,52,255,176,191,255,209,215,83,253,134,211,87,234,125,53,197,205,219,17,96,216,45,141,223,253,221,211,247,32,157,7,157,23,57,67,3,79,122,159,95,146,94,105,58,216,37,121,124,119,61,255,254,27,211,243,239,255,159,234,121,107,83,228,107,106,250,179,222,223,247,62,254,102,84,189,98,245,53,116,237,108,0,222,166,232,168,119,7,3,244,13,117,111,92,71,116,207,167,31,15,130,30,247,124,210,251,237,235,182,208,221,236,27,250,236,250,229,192,231,154,194,91,223,125,235,251,223,186,247,191,190,3,29,62,2,75,
110,117,5,56,45,51,189,185,238,57,48,209,108,9,196,57,235,88,125,102,42,142,163,112,135,164,152,200,34,149,177,151,132,219,38,107,48,182,139,103,111,240,33,171,116,55,57,62,135,223,31,94,85,208,78,17,163,2,147,151,197,134,154,92,236,185,241,208,104,26,121,152,142,54,22,71,106,56,190,176,29,174,181,166,219,62,29,214,86,83,143,94,72,46,76,45,38,182,100,206,57,12,149,173,156,184,145,115,230,52,21,178,221,40,69,155,129,191,179,87,23,41,225,234,130,182,155,159,221,167,29,47,219,121,7,124,171,110,108,20,217,94,181,198,199,78,114,39,158,106,66,38,89,110,133,15,69,11,97,135,131,193,19,175,173,38,147,39,122,121,24,69,118,144,201,100,186,66,124,200,49,23,28,98,39,10,63,153,58,41,121,42,100,110,188,154,96,143,183,33,16,140,25,158,40,110,215,53,97,50,1,149,68,11,75,2,122,226,12,189,66,167,39,115,240,32,125,170,158,175,44,145,61,220,37,228,162,247,156,61,185,126,76,78,41,70,218,109,172,42,225,60,204,31,230,14,
120,222,68,189,144,142,239,201,118,207,8,202,52,202,59,30,68,31,77,165,45,137,181,149,122,24,97,206,205,78,237,7,47,120,179,213,141,162,231,204,99,135,155,152,13,158,129,174,209,72,247,155,59,251,200,88,108,231,200,231,141,44,181,219,249,220,50,227,252,124,198,61,175,227,185,224,136,9,96,10,63,145,231,56,60,217,174,53,46,82,94,111,34,59,26,61,83,212,196,251,154,165,36,41,41,245,150,21,9,19,219,55,26,228,10,198,84,227,163,145,117,169,26,177,77,180,47,31,5,51,230,70,154,27,11,166,66,126,18,131,168,160,96,252,254,11,124,98,107,123,100,51,62,78,105,55,245,231,154,92,57,27,11,235,154,205,121,202,252,206,200,170,99,198,43,15,44,150,248,176,128,191,137,154,155,227,197,157,118,181,157,166,97,167,244,214,115,209,244,33,225,98,79,178,148,44,201,235,241,200,46,218,120,96,198,11,150,56,97,244,24,190,52,199,246,174,141,224,34,5,139,77,210,100,58,153,168,125,17,177,52,106,28,217,96,166,163,76,196,105,138,144,16,9,206,76,
78,92,14,87,42,135,77,89,219,90,121,14,58,74,75,59,153,53,165,187,20,59,52,39,183,210,62,66,181,182,152,63,15,160,206,188,120,253,129,9,99,56,58,172,213,142,79,4,68,223,24,79,183,72,46,214,23,53,134,106,35,46,217,149,77,165,74,97,124,137,188,201,226,195,151,235,13,215,110,26,126,57,44,168,32,73,81,19,217,184,134,31,39,217,184,28,182,142,61,23,153,195,51,176,2,65,96,106,179,218,226,114,134,185,85,46,95,56,108,141,157,94,176,10,75,217,25,214,234,33,17,78,93,27,59,45,141,164,17,42,108,122,222,19,91,205,183,198,148,101,168,139,185,98,171,105,180,154,25,255,12,15,157,228,165,34,219,19,52,74,115,159,44,28,67,22,103,125,172,20,9,195,48,208,147,252,213,162,157,178,33,146,158,81,244,142,227,25,12,127,85,26,206,29,240,61,243,41,92,100,67,36,102,139,29,17,227,154,96,115,207,129,21,200,132,174,3,220,240,170,156,10,38,181,155,106,162,144,82,197,201,169,113,1,226,98,148,108,154,64,28,155,171,30,52,76,
34,57,242,59,100,206,230,52,190,194,155,139,185,165,238,176,53,133,165,167,206,241,75,24,141,146,73,59,246,112,180,140,66,105,116,202,196,72,91,37,167,164,28,24,106,221,104,243,54,227,169,84,106,58,132,229,186,115,243,109,242,248,50,22,155,42,94,212,21,2,31,99,129,64,56,94,150,176,168,57,67,187,24,150,180,46,3,200,137,230,4,124,92,33,221,141,77,201,240,48,129,103,132,143,130,205,153,151,27,190,205,189,131,160,71,228,169,250,230,33,187,41,95,74,185,165,30,1,67,226,81,1,210,222,196,36,253,4,86,76,187,228,138,175,228,163,80,255,37,63,187,164,155,153,153,225,232,245,122,161,48,157,211,241,43,84,14,167,113,105,199,105,149,113,100,50,87,110,23,249,180,157,181,148,251,178,17,62,178,76,95,56,215,90,102,4,115,5,15,200,82,133,19,184,59,51,71,51,213,60,126,82,226,131,151,178,194,250,214,170,157,83,33,16,109,172,244,196,182,229,164,81,69,34,149,35,187,236,152,115,82,114,114,224,160,105,204,171,154,221,139,196,114,187,69,67,
66,143,43,236,21,230,196,132,65,26,24,167,99,230,230,224,26,158,114,130,66,73,198,206,66,113,105,68,47,91,109,75,81,2,97,161,62,172,200,57,249,115,22,158,188,174,118,53,17,144,195,170,224,84,91,204,179,66,200,216,246,242,185,112,39,122,58,162,164,238,111,227,75,28,21,91,57,76,193,36,151,61,105,62,151,203,117,66,24,250,253,64,96,183,142,166,97,109,19,66,31,127,95,234,23,57,73,112,103,53,201,182,159,83,77,170,164,10,141,203,21,203,37,142,29,135,229,112,34,179,147,86,216,48,150,83,163,13,99,233,74,183,222,122,166,47,204,173,65,143,48,48,235,60,53,156,73,82,215,130,216,200,114,209,197,241,42,16,107,101,181,11,142,19,49,151,67,154,11,219,217,178,138,199,229,46,184,177,104,90,181,89,45,108,111,211,48,35,74,165,18,199,16,232,17,213,19,180,156,41,218,154,115,11,125,18,254,165,186,221,110,101,130,75,39,243,210,253,51,143,98,67,238,34,242,156,41,149,198,81,76,226,177,81,54,92,41,48,41,3,11,56,70,203,192,6,
147,27,231,11,225,74,78,81,92,169,22,236,166,246,236,182,200,190,187,209,222,82,77,138,195,168,106,5,133,132,141,10,89,167,130,29,39,93,91,42,215,50,65,212,232,232,168,67,195,92,113,174,238,203,19,23,167,171,130,67,214,238,49,117,133,146,137,232,107,68,72,142,68,64,96,124,156,11,90,189,168,165,111,111,155,183,139,190,67,197,244,132,102,210,229,129,217,112,76,235,74,57,19,136,70,89,80,221,142,16,43,246,204,81,23,97,110,62,115,249,50,206,54,113,185,173,237,70,83,82,55,110,109,161,195,83,217,74,173,157,131,77,30,164,24,82,14,202,98,15,185,148,198,145,212,240,194,162,173,224,96,65,118,242,38,165,122,231,104,88,39,152,65,232,4,23,59,81,83,6,131,57,227,179,207,248,22,228,88,206,101,173,226,218,211,82,96,156,148,147,95,132,79,136,61,126,227,37,86,96,194,78,75,243,52,134,23,86,225,35,199,160,58,65,119,164,50,106,234,142,36,158,241,187,35,183,20,33,76,27,50,205,132,156,238,221,253,228,199,173,54,255,249,61,230,78,
51,126,122,208,227,86,15,127,193,38,102,183,229,254,14,244,168,75,241,20,105,220,121,23,179,59,236,155,66,206,183,184,189,18,118,126,33,106,238,224,135,107,128,113,141,153,159,66,227,14,96,238,5,192,228,103,55,106,247,62,234,253,164,247,85,222,192,255,188,255,163,222,7,175,117,100,248,90,138,118,134,63,175,97,223,213,174,51,32,236,131,15,62,233,60,237,160,167,159,255,228,193,7,111,255,195,175,223,125,251,103,239,190,253,222,79,127,242,2,5,63,2,230,232,123,252,251,27,69,187,35,223,0,253,83,207,163,39,157,131,90,3,189,63,184,2,73,143,238,125,255,251,63,236,123,235,123,111,254,240,23,55,199,243,58,210,61,190,58,119,212,21,244,154,240,187,223,125,70,216,33,235,136,240,147,95,189,253,207,247,95,192,232,115,108,126,249,246,187,255,240,235,159,254,234,101,156,110,41,243,151,255,245,224,111,65,63,255,197,79,126,250,220,221,111,191,108,244,63,252,226,237,183,65,215,127,110,13,239,220,126,233,184,247,254,241,127,255,242,221,127,249,233,207,110,141,
185,185,117,255,206,233,118,229,241,207,39,90,223,179,151,5,87,62,125,241,107,130,27,55,117,252,211,89,186,125,212,255,240,73,39,224,174,78,66,94,7,196,107,175,223,41,235,254,174,111,232,215,253,157,115,144,15,94,235,98,238,47,59,82,240,148,238,249,64,187,41,13,64,180,188,255,5,136,254,187,158,71,131,183,49,250,175,122,7,129,229,214,245,65,198,63,94,191,81,239,32,240,207,174,247,168,158,98,248,247,159,2,120,0,232,247,95,33,248,158,71,143,110,16,124,231,0,232,27,253,143,111,31,37,187,99,178,117,14,41,62,120,237,163,254,39,31,62,234,125,240,237,174,198,223,126,169,222,157,1,207,171,124,53,248,102,105,210,81,232,115,7,28,110,217,4,88,122,189,120,225,242,165,35,128,58,242,85,75,157,142,72,131,221,215,0,131,160,15,63,123,186,236,233,74,2,216,188,123,16,245,217,154,239,209,103,183,236,218,145,231,233,210,168,99,249,155,53,240,115,84,29,25,110,168,238,90,196,186,39,55,159,89,246,250,250,165,7,84,174,206,137,126,185,93,175,
212,248,151,207,217,233,5,36,239,223,46,212,93,174,55,166,121,206,4,207,236,116,195,249,243,234,3,20,215,182,123,142,240,253,187,158,158,188,57,100,250,5,27,220,182,197,43,151,246,171,115,171,95,110,167,129,63,190,204,68,3,159,189,252,233,189,235,80,251,14,232,173,55,223,124,81,199,187,181,117,112,115,244,5,152,241,246,25,154,167,183,63,251,242,163,51,207,104,238,117,136,58,169,126,117,174,246,141,103,165,161,243,185,27,115,157,141,153,190,193,62,64,204,171,62,112,189,27,213,125,235,5,84,183,193,222,129,62,160,130,60,121,220,7,136,248,218,227,171,155,87,125,248,174,135,113,128,234,250,47,215,174,122,225,73,215,103,70,2,61,37,5,74,241,29,143,182,254,241,150,130,119,170,192,192,28,239,223,93,156,247,95,81,156,207,190,142,56,247,94,65,158,123,175,40,208,179,248,120,101,209,126,241,105,207,195,190,161,207,158,102,216,87,100,212,213,9,136,235,65,47,201,161,254,107,138,167,185,240,162,76,184,142,187,235,72,190,25,2,122,227,119,3,253,159,128,
222,2,189,6,220,249,183,235,110,245,38,232,181,33,64,169,193,79,1,196,244,120,232,175,250,30,95,199,243,93,227,243,249,221,182,235,67,47,119,210,245,101,155,107,95,60,32,210,85,254,10,178,126,181,198,215,116,175,168,66,7,210,126,251,85,244,120,65,21,124,145,82,207,240,109,223,227,143,122,63,95,3,191,182,202,207,235,10,250,221,179,102,112,53,205,181,77,94,225,92,200,45,59,252,105,7,156,239,98,133,47,57,224,115,181,40,249,19,149,121,175,231,223,123,223,30,252,121,239,80,207,239,250,158,29,75,127,248,113,207,192,131,191,120,241,247,5,158,246,250,231,70,126,229,74,236,138,229,77,143,239,140,248,178,111,21,116,32,249,95,252,232,181,123,223,239,60,122,243,205,215,223,2,253,51,160,89,255,31,6,159,21,158,206,220,207,127,227,160,167,243,141,147,63,92,209,129,62,185,22,170,211,67,110,186,126,103,198,187,59,248,199,253,79,158,158,249,121,49,144,239,82,124,25,146,127,252,164,251,109,28,160,199,93,103,219,163,254,158,143,238,248,37,147,119,7,
127,250,201,167,157,106,248,165,203,245,107,138,151,45,212,1,33,6,122,59,75,59,208,227,254,231,3,2,244,212,6,247,239,255,95,230,43,119,92,
92,96,179,189,177,158,121,104,189,174,97,133,117,50,199,237,168,174,106,246,241,193,175,23,84,221,69,4,219,197,246,143,79,112,208,81,70,155,197,104,156,181,54,202,75,223,152,182,225,182,110,8,52,202,134,27,216,124,184,222,223,197,170,248,187,1,174,208,120,132,171,56,74,120,176,243,242,230,21,87,104,26,20,108,71,183,100,101,42,198,144,255,86,152,120,189,84,33,56,252,167,163,123,227,115,135,160,112,92,178,31,207,225,71,113,228,23,97,48,172,63,254,215,220,155,120,37,126,229,251,162,255,10,235,190,119,122,37,103,165,115,146,234,211,231,246,75,191,251,86,231,116,186,115,179,86,247,233,94,157,62,125,82,175,87,37,101,170,76,226,187,150,214,85,171,147,234,123,239,90,130,3,131,76,130,162,40,131,224,0,130,34,40,40,163,19,32,226,0,34,34,8,130,130,3,136,34,168,204,32,188,253,3,84,172,82,163,85,213,233,91,43,43,192,239,183,247,119,127,167,253,221,159,239,158,196,73,179,234,237,237,208,184,9,15,223,114,117,27,101,92,133,215,216,23,154,
176,161,86,91,232,220,113,233,194,212,140,71,198,16,209,215,123,123,251,210,233,233,76,71,4,4,47,31,195,49,120,106,36,203,192,216,84,11,13,78,71,202,25,156,0,116,180,54,87,188,149,37,231,128,76,110,43,165,195,91,188,147,67,4,44,77,198,22,145,89,202,46,186,42,192,154,153,156,227,165,177,41,66,159,251,88,163,230,109,180,57,123,232,167,164,165,45,87,195,146,94,219,211,33,96,121,72,133,241,196,106,180,6,173,67,27,138,104,32,132,24,134,110,238,24,231,157,166,120,77,135,99,157,194,140,115,117,181,79,196,84,178,148,244,93,154,73,133,70,15,155,26,185,242,61,137,129,234,140,44,211,70,230,1,106,0,195,209,4,224,38,53,164,56,148,7,55,211,139,157,99,234,174,102,186,129,227,160,141,6,60,29,39,251,56,128,84,219,15,90,104,0,152,47,216,142,187,4,212,236,36,45,205,149,107,49,42,239,142,12,77,74,25,183,38,82,93,3,115,205,173,90,78,203,106,150,49,30,222,91,150,214,133,136,44,117,35,174,99,92,188,68,152,56,13,4,
183,15,2,72,60,221,102,23,34,153,105,226,54,217,40,24,55,185,58,137,12,65,3,154,108,166,176,237,220,94,52,25,69,214,114,52,24,81,32,110,233,159,107,222,134,136,1,90,163,241,35,15,133,213,117,80,47,60,242,104,6,92,137,224,78,171,99,52,208,36,245,141,1,129,60,65,121,136,99,66,28,177,125,61,28,27,96,190,63,202,160,51,229,189,241,147,240,233,56,171,158,51,47,138,97,105,83,158,224,184,158,43,109,55,250,70,140,180,230,46,13,145,131,49,192,183,130,196,245,152,98,237,64,165,192,59,176,54,5,81,187,130,104,161,147,18,201,3,34,121,218,220,59,197,14,33,134,246,52,59,141,43,134,161,61,249,164,92,59,199,110,65,45,179,194,152,101,141,150,110,234,111,230,232,26,89,29,185,214,57,166,116,174,117,155,162,63,215,58,83,126,216,123,28,182,129,4,226,72,205,54,155,181,40,213,164,119,27,213,146,50,122,102,39,160,134,101,209,62,23,86,115,162,34,113,201,32,91,214,183,176,121,13,24,3,90,169,26,69,233,220,123,164,46,147,20,
142,9,99,72,144,34,154,122,165,57,36,67,11,207,109,239,137,166,80,46,35,36,161,190,197,51,73,131,50,11,129,10,202,35,117,28,131,59,87,219,189,119,56,173,117,141,104,208,42,34,167,15,67,4,4,232,156,73,81,204,227,49,219,92,46,184,215,105,240,165,7,248,252,89,131,97,7,177,206,233,49,0,75,237,112,114,233,95,168,62,60,39,135,84,104,5,82,180,140,233,91,0,75,57,142,22,32,162,32,223,192,168,208,57,126,246,115,89,153,40,166,136,175,228,20,32,5,152,9,175,226,152,119,14,156,186,30,164,199,160,61,102,66,197,120,155,198,169,41,17,201,24,97,204,30,107,93,243,199,39,187,128,87,7,169,23,213,13,220,20,36,132,184,37,128,53,123,157,100,69,221,122,122,35,108,10,47,215,97,28,61,115,69,252,48,194,0,78,50,52,232,160,6,205,38,3,13,123,247,123,108,169,180,191,5,233,113,152,7,41,243,161,249,93,209,150,142,145,137,183,186,215,70,118,27,214,59,55,65,182,67,167,80,73,26,246,204,129,74,229,108,55,218,82,123,102,
68,189,135,167,49,233,33,92,216,77,105,181,108,239,160,155,149,169,54,54,212,85,224,152,45,163,113,97,1,123,154,81,38,125,166,110,75,154,185,63,111,48,172,186,90,209,32,237,70,147,122,163,115,45,158,30,45,139,147,201,38,118,218,78,147,145,209,125,115,223,98,45,135,19,234,237,101,121,131,46,85,199,129,104,223,42,160,43,4,209,21,87,43,168,50,8,173,34,114,225,210,89,32,203,129,51,70,111,1,105,137,145,190,188,110,79,38,249,67,74,82,122,109,45,188,9,128,247,24,110,253,184,105,24,24,99,10,143,91,82,137,163,18,127,58,113,60,74,182,17,199,60,237,202,102,49,185,159,221,191,39,145,80,180,252,37,89,51,101,114,137,40,98,38,92,162,217,58,6,78,130,48,243,176,136,157,41,177,81,58,141,104,196,192,73,84,1,135,6,55,80,218,83,86,79,39,13,213,20,238,162,4,211,193,29,89,147,44,161,180,198,86,79,181,219,71,193,196,42,63,72,212,182,88,244,40,54,198,218,48,48,119,194,214,117,90,53,157,156,145,129,181,145,104,223,164,
217,237,83,35,197,4,171,119,179,142,204,193,26,121,77,164,158,214,214,213,214,214,184,91,98,247,34,13,244,249,232,178,101,7,63,211,84,223,225,90,91,99,13,246,81,230,133,34,235,244,234,170,152,211,63,80,191,180,130,52,183,167,240,124,17,111,154,172,31,6,48,166,107,73,210,209,190,208,234,192,172,216,162,102,177,166,214,238,28,236,175,63,37,4,71,214,218,212,131,205,219,203,253,97,83,173,120,76,0,239,71,47,250,253,147,3,211,195,34,113,127,255,64,56,205,88,161,216,183,117,199,199,100,254,66,79,195,166,47,10,134,60,50,169,165,133,211,190,36,220,15,170,235,148,83,42,196,224,124,183,111,32,45,195,118,9,187,87,26,66,234,246,149,22,19,80,157,175,77,143,211,146,182,58,186,154,247,197,240,233,132,223,63,210,51,35,101,78,182,163,14,163,52,184,166,105,72,167,91,226,138,72,99,76,198,120,200,61,93,43,48,234,60,98,224,17,164,99,202,192,26,123,128,17,151,135,125,209,131,181,19,122,58,126,26,177,50,211,139,161,169,81,242,136,151,100,
205,198,38,8,116,3,241,176,135,186,146,60,241,207,26,215,70,176,82,234,148,46,52,212,162,135,139,28,251,181,179,203,203,181,71,189,189,129,222,97,18,109,157,208,165,239,71,107,151,1,68,194,13,31,109,101,73,36,3,112,73,183,14,96,129,21,253,22,191,189,89,183,132,104,32,135,37,83,205,115,202,197,29,13,163,163,163,25,137,239,233,21,121,182,234,133,145,69,237,176,69,115,176,40,232,222,219,91,27,22,41,60,163,158,100,120,79,91,175,221,145,58,188,50,234,2,245,160,181,161,89,172,197,240,72,116,210,138,213,209,62,60,66,109,70,232,87,105,148,238,221,129,1,26,177,65,92,199,154,61,108,95,110,35,211,3,221,92,201,22,89,135,87,119,78,31,47,193,131,93,174,69,30,175,69,176,76,39,147,153,141,43,39,110,188,113,113,110,222,194,234,153,92,92,232,107,88,153,223,221,105,109,100,181,38,70,18,17,84,139,1,58,71,56,79,49,154,148,94,184,183,141,197,233,233,231,38,55,123,148,181,45,20,4,175,5,217,35,28,21,31,83,155,103,169,242,
73,255,242,228,58,118,185,99,97,60,49,186,109,22,56,21,205,147,243,66,212,194,0,70,187,84,215,42,208,133,0,182,105,238,156,20,110,35,89,90,12,102,42,59,216,39,149,45,73,71,224,245,109,91,137,173,227,86,36,158,166,137,136,90,79,48,71,60,75,253,118,27,162,173,187,103,106,71,164,214,110,215,167,250,141,244,227,86,196,116,87,31,183,150,199,21,178,208,152,118,39,25,142,64,112,250,226,147,137,221,93,188,64,133,239,196,123,120,67,115,59,245,172,6,170,86,142,213,163,151,251,184,3,195,250,153,72,45,124,202,130,209,14,116,25,185,181,220,70,247,44,37,61,189,68,63,213,204,9,230,181,195,59,243,38,141,201,142,23,210,168,0,8,77,106,184,245,139,186,83,18,156,69,20,75,51,30,164,116,234,164,133,209,211,221,223,3,192,94,208,183,179,141,38,81,0,160,225,213,75,49,156,197,14,108,31,99,86,230,91,89,227,137,71,200,83,154,67,43,170,169,30,190,24,33,234,167,82,120,22,98,198,197,242,165,119,224,36,218,194,38,53,179,60,217,132,
80,163,217,122,225,33,131,168,209,244,180,205,207,204,207,154,169,211,201,36,171,30,77,22,71,135,147,218,136,127,148,188,62,64,91,89,208,227,217,199,147,3,238,85,57,34,193,149,147,112,233,77,85,134,135,180,10,235,119,108,135,125,60,139,41,171,29,80,136,71,16,106,255,128,226,72,234,223,225,39,125,126,8,138,116,110,215,186,73,58,178,91,190,37,14,186,209,42,170,17,229,8,192,27,186,225,36,177,99,106,199,131,210,197,109,97,85,109,215,97,75,67,155,85,45,90,107,198,137,100,56,66,253,241,18,33,8,103,117,163,70,157,34,198,146,22,160,27,31,66,106,149,159,38,7,116,228,193,253,76,7,41,206,220,56,142,111,119,142,173,26,70,218,105,18,183,17,43,101,69,66,177,227,112,35,145,33,30,79,28,111,227,232,40,148,104,198,112,60,225,25,25,94,159,25,154,225,244,36,217,73,109,130,52,203,33,214,46,235,189,230,89,201,186,91,61,164,247,210,240,205,235,91,168,104,24,120,130,8,79,7,105,120,29,174,29,207,28,31,0,128,69,174,116,106,183,
92,17,131,150,141,69,128,161,27,183,156,178,58,57,184,20,97,217,8,198,85,57,230,52,149,138,101,227,110,100,43,82,107,183,219,15,150,236,51,118,30,4,115,232,33,149,165,205,99,160,138,169,226,5,211,46,77,22,153,225,53,103,209,92,141,105,102,239,8,143,224,77,123,100,16,152,210,106,119,52,50,153,50,166,24,60,30,146,198,22,22,104,134,8,98,206,83,200,243,15,246,248,86,1,214,26,10,19,198,147,179,116,228,201,241,252,16,210,56,183,73,134,166,193,72,129,6,210,73,195,0,186,69,200,217,158,144,180,204,115,184,157,109,140,176,159,161,233,55,178,217,62,172,218,184,177,40,143,236,3,164,34,71,196,130,120,5,99,236,112,136,150,116,41,157,138,232,209,44,109,100,119,161,155,176,50,142,25,118,171,27,3,11,78,244,149,227,97,10,140,135,218,94,206,136,175,51,36,89,217,95,11,31,9,219,156,97,19,135,89,155,233,56,178,130,177,206,158,146,44,18,109,169,70,60,87,20,35,115,26,80,109,208,184,102,225,76,12,78,160,208,222,164,38,188,66,
105,109,5,3,135,174,171,39,143,159,198,218,24,130,238,250,80,24,175,167,217,20,92,121,111,251,17,4,48,90,122,235,87,7,136,6,19,24,246,247,86,198,192,248,139,16,231,225,15,39,158,135,63,54,115,30,254,48,215,229,121,0,66,230,140,96,12,162,216,41,198,216,79,132,75,77,225,4,134,2,112,154,210,113,136,166,247,246,182,82,169,27,107,180,253,22,77,63,123,3,16,135,182,218,240,0,22,131,160,24,79,203,233,177,30,169,37,169,52,41,60,55,34,62,170,63,156,36,73,69,1,19,192,9,57,133,235,72,160,113,208,118,99,14,253,32,142,38,114,232,231,80,62,151,67,63,189,199,138,28,250,153,111,93,80,106,81,182,148,159,151,1,48,196,156,142,57,236,90,83,191,206,213,212,236,143,11,116,164,77,81,172,251,24,139,53,121,130,136,205,156,21,183,247,166,0,198,49,122,27,72,203,192,92,107,131,30,95,170,69,131,134,84,101,200,205,107,145,56,4,48,120,147,149,42,74,95,30,150,168,180,121,51,104,35,121,51,196,233,121,88,194,194,42,157,92,
91,42,153,192,201,218,33,133,215,31,162,0,21,243,128,173,61,21,29,5,38,155,159,202,79,15,109,111,65,160,202,216,166,25,66,171,154,216,102,82,112,96,16,103,13,205,47,247,15,207,29,56,1,144,215,213,79,183,19,33,160,52,169,229,36,146,3,196,105,156,25,0,153,20,169,55,12,193,56,0,81,20,2,114,142,179,122,8,212,0,59,31,242,226,107,35,8,173,171,153,143,181,146,22,251,85,246,35,79,75,54,54,197,166,251,52,17,253,60,95,115,2,178,2,189,71,235,106,29,145,90,251,209,102,77,135,22,2,146,72,86,92,38,75,132,54,167,154,234,41,131,152,221,45,150,114,197,41,32,10,12,173,73,77,100,249,64,101,136,96,118,73,102,74,4,179,36,172,117,12,224,89,216,89,18,147,147,83,132,211,139,243,50,179,174,83,85,108,148,205,102,7,2,13,170,80,30,56,185,208,121,224,100,148,231,129,19,18,88,215,50,107,52,30,33,167,248,222,45,249,254,132,64,145,244,243,37,89,55,59,46,231,53,43,76,184,77,33,235,116,170,97,108,172,115,176,
145,143,230,142,164,7,7,187,135,135,27,189,10,178,158,212,49,71,230,224,141,91,67,238,185,12,181,71,238,222,105,104,208,206,26,186,26,155,76,179,92,42,148,223,172,175,167,51,114,40,191,161,82,101,4,218,190,24,99,214,104,37,166,189,136,97,40,208,53,105,244,182,131,161,150,160,100,168,90,180,195,195,195,177,184,196,121,104,141,235,79,65,152,110,231,116,103,233,187,209,147,206,184,149,171,167,24,250,44,33,220,4,66,72,159,158,5,29,128,236,111,38,202,157,211,173,30,147,90,162,89,144,30,38,13,28,111,236,208,41,207,38,216,179,210,192,168,67,214,136,235,236,51,192,55,224,204,241,83,251,90,88,110,166,147,122,214,210,147,134,6,182,182,201,78,68,213,55,34,224,147,56,202,128,141,176,180,30,213,247,134,120,145,190,197,78,10,241,36,153,218,31,226,55,165,162,1,116,167,208,61,29,158,112,201,19,59,173,235,214,172,227,116,166,3,127,196,204,166,85,156,224,198,248,124,219,144,29,36,81,131,38,187,152,16,58,84,4,241,237,194,241,218,222,163,193,
49,215,176,212,62,95,175,140,185,82,7,170,84,84,179,209,221,176,172,169,229,202,55,50,41,126,192,187,93,219,62,168,101,52,237,175,14,118,14,239,140,204,153,141,19,167,6,69,111,16,60,108,226,78,53,140,120,141,140,225,109,20,206,43,183,162,128,126,76,38,244,136,93,228,209,210,1,22,235,112,78,36,108,154,89,35,18,189,159,198,111,251,87,250,23,7,230,70,153,11,157,99,67,148,134,236,86,124,198,111,225,207,35,231,231,113,171,205,173,51,50,2,35,32,174,231,118,1,239,11,110,183,15,178,151,134,73,36,210,232,161,51,227,23,99,102,103,231,230,28,118,233,81,183,137,199,102,33,184,218,149,22,58,67,144,16,142,153,72,210,201,237,89,35,83,122,196,158,17,26,53,178,136,111,212,50,107,181,118,14,178,135,41,235,2,103,71,103,231,190,216,140,225,10,211,241,80,247,102,175,166,193,20,62,108,49,184,1,61,105,216,183,179,196,97,166,61,98,140,123,118,118,97,33,157,10,212,141,65,108,104,250,153,32,110,134,81,91,11,195,139,56,129,83,142,237,
172,31,51,208,235,140,186,214,177,213,56,154,203,193,3,255,141,161,150,167,180,166,81,61,67,48,52,107,142,52,35,185,114,149,167,221,108,55,111,49,179,113,93,54,150,57,181,200,66,97,143,211,227,193,49,81,199,254,38,80,6,201,109,93,31,111,161,111,239,37,17,202,117,80,159,109,238,198,219,68,18,201,234,208,198,134,111,58,35,194,185,245,36,65,175,95,75,36,238,160,235,230,91,250,205,60,62,255,8,176,67,61,241,26,65,168,159,27,182,107,87,198,227,233,35,29,142,66,60,104,213,152,100,150,70,147,148,199,222,202,102,78,167,143,149,28,104,132,235,148,7,199,247,196,24,110,23,49,23,102,117,52,223,150,191,17,250,75,53,132,208,145,158,204,33,116,30,140,98,183,233,49,151,105,199,229,66,153,84,147,238,49,53,82,178,33,246,214,43,116,120,58,191,191,95,100,3,109,216,36,251,109,139,38,18,27,193,149,143,212,67,70,24,198,96,136,152,229,229,101,236,106,115,11,181,143,172,63,101,8,78,141,196,94,40,207,96,119,227,69,18,66,35,214,70,69,
140,33,101,65,155,90,56,229,27,172,7,206,57,217,5,188,244,226,83,60,217,165,105,91,21,56,145,41,144,20,247,245,246,134,169,131,0,42,41,149,28,165,133,111,53,118,136,213,232,19,179,125,105,73,56,14,93,23,175,70,6,9,118,177,222,29,106,31,228,32,151,214,165,233,184,16,63,183,167,65,147,3,163,77,157,38,123,189,46,26,53,71,177,212,17,87,124,107,12,7,58,93,183,196,183,11,31,52,207,15,169,196,236,131,181,225,81,190,148,27,159,116,96,200,201,216,68,36,27,16,19,93,240,249,20,143,177,30,235,231,48,66,195,118,16,227,15,214,2,35,160,31,204,240,151,76,211,13,109,235,93,227,189,137,117,188,72,229,231,241,59,16,125,171,187,217,19,180,11,184,115,131,97,127,168,78,181,234,99,177,106,179,81,44,99,48,9,20,141,153,217,199,224,232,138,168,140,27,57,220,24,119,250,70,181,240,90,109,35,173,22,153,222,34,76,140,218,237,8,20,224,107,102,144,116,106,56,20,179,151,226,214,137,137,76,239,170,222,189,196,231,51,51,201,254,248,
224,202,96,59,217,62,106,83,169,154,119,103,2,99,27,120,37,193,147,222,156,170,147,166,157,19,217,244,136,136,68,159,118,167,227,71,132,9,83,90,216,114,156,137,170,83,221,132,241,14,38,211,232,141,27,232,10,86,124,114,7,94,55,51,135,65,235,106,25,169,1,145,200,180,150,210,200,2,78,185,4,174,76,178,217,92,46,87,151,0,253,199,46,150,109,45,226,21,216,85,18,66,71,39,48,117,18,134,60,210,237,239,144,236,175,206,217,220,210,144,91,175,71,155,214,228,211,155,86,129,147,24,76,110,100,51,86,189,251,40,68,199,233,73,187,198,24,115,98,153,32,221,238,236,8,142,163,215,58,199,130,33,32,83,215,120,98,151,216,137,82,36,195,92,199,148,198,41,164,44,246,145,135,68,60,132,104,115,10,33,139,104,122,135,84,81,187,94,147,152,239,32,59,70,39,15,168,227,105,169,157,53,89,107,52,206,206,78,26,246,161,191,17,75,113,140,246,4,154,28,195,211,93,237,204,73,217,220,236,236,18,133,145,138,29,158,78,214,17,166,219,185,186,186,57,14,
174,235,196,72,168,173,239,14,10,14,64,191,156,212,213,173,44,39,24,28,206,137,119,204,112,16,12,140,57,119,205,98,10,113,147,33,208,152,28,238,65,199,104,203,206,26,46,8,245,27,194,86,116,221,215,202,90,226,44,27,153,181,157,211,108,100,236,100,91,28,220,200,88,124,214,13,139,55,236,91,106,114,83,189,12,209,156,113,165,118,6,79,235,23,31,39,252,105,219,178,42,230,114,242,7,128,23,54,108,192,103,201,32,245,24,169,91,53,24,122,244,228,67,41,206,221,216,29,214,212,161,92,153,228,30,7,183,106,90,168,157,12,1,139,98,133,160,27,14,41,67,211,56,142,129,14,186,1,69,62,6,156,111,109,196,27,87,29,243,53,35,28,142,154,195,233,28,236,65,68,205,135,78,190,143,140,90,171,115,140,6,70,236,90,84,52,29,93,243,46,245,45,16,131,107,22,75,131,22,111,83,51,151,34,174,84,176,183,255,164,17,75,157,118,76,7,58,70,188,134,201,196,124,90,205,204,8,119,230,80,45,17,188,55,198,108,84,34,84,250,218,145,177,176,115,111,
217,176,175,176,49,36,6,255,152,92,179,216,233,218,53,208,208,248,164,85,38,112,2,13,6,142,117,50,44,133,220,49,230,244,135,201,195,145,122,47,99,43,163,33,27,149,177,117,241,137,99,244,192,29,221,86,1,12,27,101,55,9,236,118,101,252,40,152,137,197,21,168,67,11,207,226,215,89,248,56,74,43,117,43,59,131,219,183,137,186,77,29,0,131,78,214,194,165,56,16,108,12,13,76,233,118,168,139,25,88,105,74,146,54,214,27,151,98,137,125,125,136,99,160,181,211,194,232,90,81,195,118,72,74,234,175,69,214,27,169,77,124,179,193,209,139,175,181,49,250,241,138,13,131,46,220,175,152,18,4,199,19,51,190,209,65,22,156,204,101,204,247,96,112,41,103,204,185,163,232,98,132,0,46,102,78,34,102,78,250,9,54,217,212,180,154,160,170,15,196,6,215,79,140,96,72,91,77,12,218,27,134,52,158,17,180,113,124,95,44,24,92,161,173,172,136,81,225,86,158,96,171,185,181,53,162,109,93,176,134,247,87,113,242,4,42,61,89,139,237,144,96,152,199,36,50,
121,205,179,86,191,182,70,96,168,226,251,177,80,119,56,220,226,218,157,178,244,54,134,236,8,195,190,11,12,192,113,133,102,29,78,156,53,115,22,59,199,102,18,250,149,218,206,57,206,186,2,215,46,154,246,9,88,112,27,128,196,189,162,182,245,225,84,244,160,45,186,189,64,147,157,40,79,8,6,69,120,121,254,104,104,108,193,17,26,25,89,91,15,187,92,130,129,168,223,178,218,52,54,217,232,71,35,57,135,78,197,70,196,98,9,250,105,96,148,36,156,236,139,52,106,36,62,96,183,74,248,38,222,52,162,119,188,69,75,58,234,232,232,80,69,227,116,99,2,126,228,234,176,56,13,243,67,19,132,244,120,234,112,196,190,130,85,105,246,246,154,218,4,161,3,151,211,179,185,64,5,105,164,55,216,219,230,130,79,91,70,231,140,98,162,90,107,110,27,114,97,251,251,86,249,22,31,203,132,128,7,72,245,86,139,133,122,60,216,195,136,6,93,206,89,54,214,64,151,239,136,215,229,131,194,41,57,13,51,73,19,251,136,114,173,63,77,27,21,236,238,15,77,132,71,231,
72,163,199,199,199,150,149,88,27,141,13,252,101,52,56,158,18,200,189,253,20,199,161,59,42,20,25,13,222,117,217,73,236,96,209,6,119,13,109,76,184,220,141,52,100,42,169,195,103,232,222,5,106,183,193,205,76,195,251,224,196,30,244,54,71,119,170,111,89,239,95,116,38,188,244,198,57,12,23,5,192,48,85,78,156,223,168,183,212,246,209,59,134,90,199,66,210,134,67,209,80,54,105,157,232,24,100,227,135,219,57,35,71,167,235,227,238,211,100,196,75,3,105,185,28,25,69,247,251,220,238,206,94,125,103,108,3,147,157,72,218,70,130,147,46,137,110,205,33,222,35,147,228,228,211,125,53,87,95,103,234,110,200,154,185,245,194,148,124,96,111,161,93,100,157,99,175,29,236,42,7,38,183,7,16,51,59,91,71,117,18,171,107,100,201,168,137,133,178,7,193,221,5,42,61,109,245,34,16,136,149,3,92,196,224,140,109,44,30,157,180,247,52,172,227,155,237,77,241,168,173,105,104,60,59,235,77,101,100,50,153,97,208,63,177,163,202,102,150,210,135,243,3,77,189,158,
173,67,181,143,101,247,173,168,250,205,0,102,89,100,214,128,99,204,234,32,50,151,218,165,161,77,69,52,144,0,157,26,181,103,230,0,32,57,19,101,168,134,123,164,251,171,3,135,77,124,60,33,14,6,172,80,38,194,72,31,235,105,220,19,156,113,130,233,61,145,100,100,233,248,40,85,141,27,67,187,164,123,203,61,220,177,118,187,9,37,28,179,207,28,17,24,0,177,110,234,204,179,205,221,137,206,68,132,85,71,24,223,172,235,237,58,9,54,180,185,164,233,99,230,188,40,14,70,138,142,254,65,254,240,146,221,149,220,223,31,156,225,163,224,39,83,6,5,161,111,220,191,178,194,109,49,184,84,73,183,38,125,156,106,141,112,235,221,74,29,35,1,48,147,172,127,129,55,166,54,10,154,84,225,101,174,196,174,229,213,11,219,173,189,109,235,171,136,126,163,42,182,238,8,140,6,68,190,168,2,167,90,109,69,129,204,83,0,160,228,38,123,226,52,76,48,67,179,210,44,82,90,54,211,196,83,123,153,135,89,252,46,10,231,232,28,24,241,226,229,230,122,90,194,70,94,
192,44,214,233,26,189,91,70,66,40,147,217,63,221,223,216,210,68,2,109,142,54,239,30,179,142,209,204,1,224,112,210,167,29,103,65,64,177,49,173,139,207,59,78,252,155,174,69,101,2,248,255,16,249,36,6,130,120,79,95,31,169,99,144,203,235,242,111,80,178,167,17,72,160,173,48,170,145,192,72,119,166,54,210,141,222,19,129,130,126,184,220,167,242,144,131,10,85,100,213,107,160,179,232,18,48,192,174,27,232,18,217,158,185,143,17,28,238,95,145,30,121,234,237,70,45,87,59,129,63,141,119,43,118,234,27,248,65,238,84,45,153,99,16,219,231,187,154,1,30,166,44,29,240,186,249,7,81,133,66,21,64,218,197,238,147,227,77,4,28,94,0,24,111,246,115,122,185,150,50,176,54,156,78,44,29,211,99,241,181,157,54,105,63,121,45,184,54,194,105,88,223,69,226,233,203,163,72,69,104,186,41,210,50,89,155,43,173,220,116,108,140,159,134,150,182,116,253,248,126,217,160,93,226,207,58,70,7,241,72,105,198,154,220,87,132,247,72,167,99,81,232,34,108,139,181,
111,99,176,187,22,192,162,149,46,162,7,206,49,50,213,141,28,175,215,59,230,196,179,54,247,172,32,80,114,194,142,238,186,73,134,161,43,71,183,110,137,8,48,81,104,115,50,190,159,228,154,186,119,23,59,82,17,16,48,169,139,187,190,86,254,234,192,186,140,52,30,32,118,118,166,86,204,155,70,203,202,138,242,72,227,34,219,14,134,231,5,243,102,189,126,106,60,101,73,101,163,1,17,124,120,172,199,218,211,211,121,40,71,39,140,19,73,203,144,43,125,36,213,246,78,216,204,116,67,146,227,96,165,118,247,162,99,1,135,101,95,111,70,107,32,204,230,227,70,59,15,214,200,33,247,174,205,28,109,181,186,250,109,254,9,0,202,154,215,134,119,180,243,83,117,141,131,78,185,69,12,194,30,16,84,49,13,240,195,9,211,230,85,130,176,57,36,221,68,32,70,123,177,116,199,248,124,120,73,221,212,54,196,168,85,38,134,165,114,244,193,184,69,200,201,30,17,178,89,101,220,211,228,53,50,3,19,0,60,0,39,29,119,103,253,146,237,189,250,105,208,108,151,24,65,141,
81,169,161,13,178,190,71,181,29,62,92,79,24,179,146,204,200,214,68,38,222,221,188,202,80,198,137,131,153,88,246,52,102,75,31,42,8,193,149,38,91,157,116,61,234,144,41,144,209,67,103,67,147,5,139,140,39,61,181,30,246,234,206,206,78,255,164,172,183,183,215,175,223,70,239,213,231,40,135,17,58,60,13,174,158,158,241,182,210,54,141,214,85,33,99,34,67,107,226,24,37,204,221,38,8,121,213,83,140,52,169,201,225,232,72,25,100,94,44,67,101,72,70,15,214,70,118,23,214,38,55,66,59,72,56,195,231,114,58,113,22,117,35,23,215,196,65,43,233,147,40,200,62,51,93,29,179,198,137,196,113,143,35,157,221,227,48,219,209,35,218,198,45,29,222,45,234,239,159,237,103,177,88,90,174,48,211,153,222,180,165,56,204,225,204,220,168,15,0,53,203,130,147,212,19,177,31,215,135,33,182,136,29,10,184,77,117,186,64,29,65,130,152,213,149,72,36,136,44,66,243,225,122,106,78,48,55,7,158,26,39,208,217,116,18,120,3,113,22,120,195,193,230,136,138,62,
233,106,165,53,38,229,235,142,166,227,168,35,136,196,43,235,163,138,3,153,236,80,22,15,140,159,166,90,72,180,227,28,101,26,177,3,46,22,139,109,106,63,146,153,65,29,74,4,246,163,152,125,127,40,176,69,228,112,122,122,106,141,71,160,201,116,208,165,154,159,99,232,176,237,71,105,106,252,200,72,228,108,5,73,192,172,17,217,250,65,230,104,103,174,53,206,210,214,122,76,163,93,70,14,17,5,250,6,235,168,93,216,184,89,123,92,175,228,243,83,251,24,190,192,183,210,175,36,59,180,135,30,170,100,55,149,134,39,119,150,101,45,204,76,28,222,36,76,38,70,165,241,208,102,173,183,121,143,74,165,50,186,140,34,29,11,49,234,144,30,177,186,237,132,132,28,62,25,7,250,195,205,152,186,165,58,142,145,129,85,28,239,132,198,54,210,39,1,187,91,50,48,49,49,145,93,155,246,50,7,5,130,221,166,218,134,134,6,219,0,143,103,199,200,80,155,135,41,45,28,211,218,68,25,216,60,76,24,136,195,81,6,141,54,160,12,186,148,139,157,163,136,134,38,22,196,
102,61,48,183,113,125,168,219,145,12,4,229,123,125,103,122,150,182,212,99,229,218,38,202,136,103,119,161,93,118,220,51,51,161,57,6,218,182,213,58,58,37,32,99,0,66,227,23,251,137,160,96,23,208,179,216,54,118,152,164,211,146,30,13,186,59,163,35,172,134,194,8,68,26,113,80,187,40,60,234,232,145,236,119,152,89,128,100,33,189,121,225,115,211,211,149,97,118,71,163,179,15,30,252,175,255,245,163,7,127,174,126,239,231,255,240,15,176,243,47,127,190,7,251,83,105,85,117,73,77,89,121,41,236,222,71,176,234,71,37,53,53,165,85,176,175,171,74,158,126,3,123,84,89,81,83,85,89,254,46,236,147,26,216,227,202,210,106,88,69,101,13,172,170,244,191,63,43,171,42,133,125,252,239,159,192,170,43,97,101,53,176,111,43,171,254,91,53,172,172,2,148,127,242,164,164,226,49,172,188,172,162,20,246,180,170,18,80,121,82,253,238,131,124,107,247,94,104,247,19,80,190,164,186,20,86,249,85,142,20,160,243,168,164,2,246,101,41,236,89,117,233,99,216,131,63,
127,94,83,249,180,236,209,195,15,30,254,211,195,127,250,52,207,214,47,107,170,202,31,254,83,117,213,163,203,79,254,207,210,138,135,63,126,86,253,240,255,40,126,248,193,195,15,30,149,151,84,87,127,126,15,86,244,248,1,104,24,86,243,77,73,13,172,172,26,246,101,9,212,82,101,197,89,129,143,170,74,190,205,115,251,254,139,74,42,42,1,123,92,82,83,2,85,47,171,120,84,254,236,49,160,0,36,191,146,93,168,116,129,221,143,64,157,79,43,159,85,61,42,61,227,22,240,117,241,16,98,235,76,79,133,150,223,255,57,244,1,251,31,255,227,253,247,192,191,95,191,245,254,189,159,189,253,113,238,255,191,120,31,118,198,216,63,222,131,253,178,178,162,186,166,234,217,163,154,202,42,216,71,165,53,37,101,229,103,150,254,151,28,133,234,159,254,252,131,98,126,128,94,138,127,190,245,240,237,15,0,157,98,1,31,188,245,54,84,239,39,80,11,159,84,148,213,148,149,148,151,253,21,24,191,230,155,82,88,78,165,239,94,240,7,248,184,29,155,191,127,246,101,121,217,35,
216,111,75,159,124,9,220,235,55,101,213,53,223,203,230,163,47,127,91,249,184,236,171,95,87,86,61,41,169,249,12,112,249,197,231,191,44,41,47,255,178,228,209,127,251,201,231,176,243,175,15,254,239,79,107,170,202,42,190,254,243,47,222,122,239,221,247,222,189,247,211,159,190,13,123,248,163,7,239,192,138,31,148,85,212,188,240,228,113,37,224,168,244,193,255,243,5,16,254,114,75,15,46,164,255,10,86,93,90,3,4,7,214,126,84,104,15,246,109,89,121,57,236,235,178,191,148,230,20,146,111,27,86,83,9,121,238,211,18,208,14,112,136,47,75,171,203,30,151,194,74,255,82,90,245,28,246,25,172,228,59,80,255,235,170,178,66,199,128,122,8,112,25,168,246,211,202,167,128,94,197,227,202,111,223,133,253,17,252,46,171,120,250,172,6,246,151,146,242,103,64,223,37,85,249,38,10,4,114,79,115,252,148,64,190,87,147,163,147,151,162,216,32,183,83,231,71,165,229,53,37,63,156,78,243,205,189,190,98,95,82,27,136,70,79,171,74,171,75,43,106,114,133,193,187,199,
80,83,160,78,205,183,165,165,160,244,183,149,103,250,123,90,9,104,84,255,192,122,190,255,131,169,248,254,27,118,219,39,224,33,236,254,235,250,238,253,191,149,239,254,112,138,205,55,247,119,242,221,251,183,244,221,191,133,158,239,223,251,225,156,247,222,27,246,222,234,82,128,93,30,151,128,111,87,122,236,75,142,253,119,113,225,31,78,191,133,246,126,16,39,190,80,253,223,221,157,255,227,155,210,138,255,183,178,242,201,167,143,0,138,45,191,164,237,11,101,63,128,180,117,185,228,133,158,206,10,229,148,4,228,255,246,155,210,188,6,0,72,173,202,99,226,18,216,95,65,69,24,128,95,37,0,62,67,213,111,205,219,167,165,53,127,40,169,248,186,244,251,56,59,43,247,61,124,85,87,62,201,193,233,28,80,203,67,119,88,21,84,175,26,130,171,143,190,129,190,62,190,11,115,159,221,255,109,89,197,45,152,203,149,251,62,230,10,153,197,211,114,144,67,84,86,149,125,13,92,233,142,92,129,150,62,5,72,244,225,91,185,255,191,157,99,172,168,200,231,151,64,236,11,93,7,
226,182,80,255,193,91,80,61,240,5,84,128,126,130,87,191,248,9,172,250,175,15,46,96,47,40,89,125,73,141,213,160,32,240,248,154,111,96,127,254,135,31,23,138,191,123,41,83,184,150,235,143,207,184,126,248,246,35,8,171,127,112,169,203,254,165,172,170,230,89,73,249,3,216,75,60,193,62,62,99,247,237,47,138,107,228,136,92,40,251,15,165,53,207,170,42,94,230,246,182,26,253,101,101,121,101,213,195,183,114,84,97,249,31,63,122,53,221,230,42,3,229,190,196,235,23,144,3,65,47,63,207,55,112,69,125,160,209,71,185,87,47,216,160,160,237,252,59,216,187,37,213,133,204,20,114,175,175,171,42,159,129,120,144,123,119,75,91,0,154,127,44,171,41,47,61,147,55,31,227,94,85,224,28,169,235,4,206,147,254,188,208,196,213,34,215,228,8,92,45,114,254,29,236,92,226,220,239,219,187,92,65,204,156,96,175,198,31,236,227,115,9,223,126,201,219,94,230,233,118,138,255,53,240,208,51,229,231,190,191,142,234,33,2,215,169,31,122,247,121,174,137,171,85,255,21,
120,243,199,27,212,127,241,30,50,65,78,208,220,179,59,58,218,155,235,93,23,228,94,179,139,221,36,117,81,129,11,177,107,74,191,171,185,83,47,251,248,146,177,11,226,222,104,16,216,199,151,76,250,178,191,65,209,237,37,35,124,175,9,126,83,242,101,105,121,245,75,157,253,157,239,249,253,66,159,249,75,101,217,227,51,43,228,41,190,78,159,255,46,71,226,5,224,118,55,18,207,223,20,137,123,15,190,120,248,95,190,120,248,159,30,254,167,43,134,190,242,156,168,103,120,226,27,48,100,255,21,168,190,164,60,15,205,222,42,120,76,65,156,183,223,129,1,220,93,83,246,232,197,247,5,94,223,206,65,183,11,104,120,83,225,123,15,222,190,125,47,203,213,248,236,205,196,243,60,173,55,96,220,171,59,87,225,101,174,99,157,233,247,26,245,222,190,163,157,201,127,235,64,255,197,195,31,229,251,219,153,180,87,119,182,91,112,119,59,219,220,127,131,182,185,255,58,182,121,126,147,109,158,223,96,155,75,190,122,71,203,220,127,101,203,220,191,149,101,174,226,237,150,118,185,247,
38,13,115,239,239,98,153,107,226,201,93,109,116,239,213,141,116,239,86,86,186,153,207,91,14,99,111,10,58,93,80,123,29,236,84,24,8,175,7,79,133,2,151,236,86,125,23,8,245,241,101,193,95,134,17,95,20,25,162,250,38,224,0,53,122,102,138,60,31,119,211,252,155,3,113,69,244,94,19,197,221,168,255,226,18,103,6,200,61,187,82,11,183,24,101,127,15,146,246,15,171,74,75,126,91,82,5,242,246,135,111,149,1,139,188,115,249,127,175,164,143,203,116,47,171,164,44,111,98,32,206,55,191,41,253,234,197,169,174,162,183,127,40,251,250,155,235,95,255,229,143,149,79,175,127,249,175,149,53,53,149,79,174,202,252,203,65,155,103,184,36,207,0,192,56,85,80,83,231,112,165,208,50,120,94,83,249,244,236,97,174,189,60,220,249,50,71,252,188,248,121,99,176,39,57,113,207,177,85,241,212,8,52,207,149,155,199,44,94,113,60,91,135,189,179,189,32,190,139,109,246,90,70,186,32,118,157,161,242,114,93,167,205,51,239,44,148,130,164,191,52,41,244,38,5,207,
89,230,141,73,94,68,237,238,162,231,125,230,7,148,29,56,224,27,147,252,156,214,221,229,6,125,226,135,148,58,223,185,222,152,224,197,228,238,46,123,161,231,255,128,226,191,185,49,234,18,197,87,31,165,158,62,252,162,228,225,23,55,77,234,21,151,56,27,165,94,156,215,131,116,150,211,85,9,224,232,246,90,249,16,160,171,55,167,145,115,106,175,174,13,8,238,221,172,141,226,18,87,142,217,231,136,49,183,167,226,199,255,243,23,191,40,123,82,242,117,233,7,255,249,167,255,242,163,127,126,239,95,106,235,18,181,83,181,231,255,226,28,90,128,58,117,88,39,92,32,106,21,59,120,103,116,134,184,142,80,135,104,120,14,220,230,21,174,119,239,167,135,120,45,118,42,9,191,192,154,210,108,82,21,153,120,80,187,68,100,183,13,213,183,205,203,92,240,11,66,216,218,218,196,17,28,111,198,88,44,12,203,196,148,184,101,145,28,221,28,78,103,61,153,6,149,116,145,44,137,168,116,18,52,59,152,194,9,145,102,77,18,159,217,88,181,227,121,201,128,208,76,34,196,71,143,
44,19,106,29,143,48,215,231,225,55,141,14,142,103,88,17,25,65,59,50,197,27,147,49,218,113,120,251,41,150,220,219,67,182,69,212,134,216,193,254,146,191,213,59,83,87,183,105,57,97,235,251,150,252,66,133,73,213,57,144,156,209,43,125,161,37,63,92,79,209,184,249,148,147,3,204,244,161,100,65,44,221,17,116,217,109,195,166,77,190,165,81,217,57,189,58,200,196,181,24,100,131,171,45,11,45,178,97,127,196,216,55,187,122,184,223,60,203,27,26,76,25,212,50,213,65,202,235,108,197,185,153,51,173,98,123,95,224,212,18,112,4,143,19,244,65,253,128,157,122,24,155,17,157,172,43,218,78,70,211,107,18,71,36,45,24,141,165,8,216,70,198,180,149,175,23,15,89,69,19,132,232,97,150,239,74,75,116,250,238,9,127,223,241,158,186,99,122,61,53,118,106,25,150,201,86,131,18,78,140,188,211,145,25,146,25,25,71,196,212,212,240,44,50,227,230,173,29,50,183,99,20,35,5,63,31,177,4,215,197,243,132,157,213,33,252,161,69,137,25,153,26,106,33,144,197,
187,166,128,211,18,228,46,134,19,43,54,250,164,222,55,96,232,25,146,195,41,171,109,117,81,126,19,155,213,112,18,97,109,90,60,230,46,139,7,124,116,237,229,63,44,226,252,135,167,35,255,177,25,200,125,40,123,78,237,134,21,94,55,203,195,73,90,246,221,237,75,126,18,117,201,47,2,255,201,132,126,81,148,159,105,168,109,155,74,135,238,212,113,254,163,236,113,205,55,175,17,66,207,105,92,23,55,243,174,254,109,174,200,77,157,33,95,226,172,51,228,126,21,119,6,104,49,242,105,217,119,119,2,178,31,87,149,61,126,115,129,225,156,218,171,7,6,104,5,250,230,192,80,92,226,202,192,0,21,184,50,48,252,228,63,131,192,240,94,109,93,180,118,178,40,48,12,209,2,109,83,129,186,201,118,162,246,180,23,73,51,143,213,43,186,80,115,44,44,95,67,247,172,207,24,78,8,40,226,136,112,120,128,31,65,181,53,173,53,82,179,7,120,10,222,186,26,14,35,35,88,166,17,16,16,66,84,54,61,141,190,232,114,139,86,160,158,224,161,91,118,168,199,11,136,142,
211,13,133,94,129,53,31,32,22,205,61,180,145,218,58,242,130,187,125,65,72,229,207,52,114,218,177,10,252,204,73,214,107,133,119,238,246,52,210,119,27,59,119,27,73,208,135,107,209,26,115,30,70,186,19,82,109,24,63,225,79,133,200,163,35,254,85,163,172,121,191,143,182,211,78,81,184,167,214,253,62,139,106,227,88,121,26,66,35,176,243,129,208,102,56,166,246,113,5,130,190,117,231,16,222,48,194,52,10,81,194,129,176,58,139,234,142,110,225,93,56,3,30,149,217,88,214,109,33,176,216,166,222,225,81,238,209,65,109,54,51,78,115,70,181,222,90,247,252,65,60,51,207,25,117,251,90,169,141,67,10,179,187,69,109,11,49,90,210,180,85,191,34,32,197,41,143,78,130,109,155,54,134,120,62,229,14,241,15,156,234,80,156,194,59,177,46,32,176,77,206,80,6,139,137,196,235,133,238,195,1,118,52,78,159,216,216,64,118,101,58,70,105,71,3,174,228,52,178,142,230,80,71,148,164,209,52,66,61,136,156,165,247,25,84,219,25,117,251,194,14,74,180,238,62,140,
140,49,70,58,13,221,109,123,3,81,105,167,107,120,44,224,198,186,113,66,139,123,106,225,80,21,29,77,99,24,174,97,147,59,189,131,162,152,38,220,100,103,50,108,143,197,195,170,158,164,90,64,10,147,150,241,204,206,35,23,234,180,147,178,181,154,237,30,80,47,135,73,236,97,92,19,79,141,194,227,45,243,225,125,147,208,173,247,37,245,78,100,195,49,124,197,237,53,26,87,84,158,206,100,32,226,24,197,200,107,7,168,13,116,10,94,158,88,192,141,46,224,240,169,164,91,191,169,94,239,82,47,174,131,143,244,102,28,75,224,219,148,162,59,245,156,215,141,12,231,52,174,139,12,121,95,191,41,50,20,151,184,50,50,228,182,116,220,57,50,124,83,249,237,159,32,238,30,190,245,101,101,101,249,171,72,119,70,225,178,104,16,181,179,5,102,80,162,72,168,79,190,58,95,74,134,94,64,107,225,53,85,207,74,47,207,234,229,133,169,206,21,169,184,189,40,255,245,181,69,249,175,111,74,148,162,169,227,87,20,230,55,165,95,151,86,188,158,52,121,18,55,139,3,173,132,
20,191,135,36,184,133,140,101,53,185,7,5,215,43,121,250,77,53,172,162,228,73,233,59,133,16,157,91,245,168,121,94,88,37,125,33,64,191,255,207,239,255,236,71,247,254,175,159,32,234,182,106,135,138,34,52,146,22,232,152,159,93,217,152,166,233,188,168,99,214,182,244,96,58,220,140,33,108,182,120,6,52,66,17,123,140,191,56,173,117,120,150,137,236,57,46,124,138,110,166,236,244,17,215,234,166,196,180,61,84,35,111,218,194,98,35,166,77,236,190,230,245,198,125,244,230,190,59,53,220,144,32,112,249,89,103,34,211,145,181,42,240,186,132,180,241,100,232,100,58,195,196,71,212,65,131,42,182,16,20,164,130,198,160,44,70,209,79,10,177,106,240,95,79,254,67,72,202,127,96,245,234,139,231,180,237,113,61,103,131,171,85,52,53,162,179,83,218,157,166,221,224,238,74,220,43,26,26,207,56,55,7,6,157,6,3,131,35,152,153,242,249,118,149,35,78,12,197,64,161,80,232,98,193,102,183,250,200,32,48,98,136,109,254,221,200,74,140,210,187,19,247,178,155,179,112,
56,78,141,244,134,23,147,50,39,133,132,241,97,249,17,30,221,123,128,157,160,211,125,65,164,131,222,158,12,197,198,40,43,189,99,232,97,203,49,187,109,118,155,226,23,55,100,179,248,81,175,113,51,180,25,220,224,88,188,201,163,253,157,85,209,242,1,73,178,143,177,52,59,176,91,237,251,26,239,204,68,210,137,82,7,123,218,215,28,39,156,158,248,92,120,229,96,69,143,156,102,166,56,42,186,76,38,92,75,47,173,161,61,158,165,45,171,197,53,150,205,134,130,227,140,227,227,46,115,191,130,99,66,162,90,65,19,54,50,199,176,185,187,152,72,157,248,45,22,239,97,163,251,64,156,16,172,201,198,124,45,62,161,37,42,246,78,179,173,141,142,94,94,211,104,115,163,107,86,40,69,45,146,245,227,91,142,128,58,181,223,235,113,248,215,109,45,12,178,152,138,179,217,78,136,222,133,197,134,249,157,102,106,54,173,60,150,5,163,135,30,167,34,157,238,167,246,47,53,76,25,186,44,35,246,225,8,183,222,110,75,99,250,250,56,59,70,189,84,79,147,177,253,74,237,241,
64,199,38,233,100,117,104,204,23,25,73,238,184,150,177,147,27,106,34,111,172,219,137,109,34,70,250,216,150,153,6,130,235,72,163,27,74,51,141,76,204,218,0,57,210,56,217,48,199,220,119,51,81,123,126,146,119,128,119,48,109,36,4,9,145,168,115,250,80,55,19,237,67,52,210,246,141,204,132,196,28,241,108,170,125,11,251,86,82,60,49,28,58,182,99,14,44,68,229,198,52,78,181,181,153,72,108,239,242,200,214,38,142,98,152,18,78,14,203,84,241,212,206,208,178,168,221,31,113,18,35,148,121,22,23,57,158,76,153,150,247,145,167,117,188,24,186,197,61,77,153,156,33,54,183,232,122,187,217,10,118,159,171,143,200,192,243,120,246,246,249,120,166,183,187,174,55,222,203,229,215,105,61,123,39,172,163,177,195,46,214,212,38,25,217,57,211,180,23,105,216,71,141,226,247,251,87,60,83,161,76,147,36,138,48,49,39,116,9,153,92,214,101,235,226,96,125,28,191,107,177,149,70,77,175,81,248,77,232,112,143,149,229,111,193,49,84,116,31,119,42,172,167,206,13,8,
15,168,74,195,118,23,142,59,37,116,6,55,184,43,253,126,130,107,110,64,192,22,24,92,147,51,188,249,85,3,158,39,226,155,54,8,117,83,35,157,181,45,217,180,148,204,167,198,9,35,157,59,60,212,73,35,101,186,21,181,173,142,175,96,235,135,134,182,108,6,145,49,221,65,140,113,250,60,102,161,217,169,245,227,233,254,99,226,24,78,38,97,210,182,87,186,229,140,163,72,99,251,52,99,95,59,180,215,18,172,69,104,231,178,156,249,29,191,223,223,177,142,239,53,7,251,179,148,230,113,60,222,31,62,73,138,121,86,198,32,137,180,61,62,196,234,12,170,178,97,231,80,230,212,142,110,77,183,34,155,197,194,101,79,187,136,88,207,91,105,224,98,234,251,212,227,41,235,252,234,134,99,101,96,37,110,237,135,47,251,173,126,201,130,180,161,22,190,227,230,161,245,105,156,207,70,98,121,228,99,166,157,137,144,27,97,59,229,30,142,41,186,186,186,186,149,74,37,159,191,31,84,112,99,157,221,221,169,83,61,65,46,217,65,251,130,209,108,152,75,91,154,241,155,79,83,
206,45,77,199,137,113,38,163,70,49,39,136,128,151,56,146,212,187,212,181,213,21,15,17,219,134,172,200,200,33,63,185,48,165,239,142,145,200,58,214,126,235,162,102,55,21,71,163,37,13,203,108,143,177,109,104,119,195,64,147,169,167,100,203,39,222,241,108,134,134,70,108,199,216,19,204,214,86,149,208,222,76,199,245,245,33,101,28,73,43,149,234,243,28,172,239,8,93,74,209,84,86,136,225,241,143,146,117,226,160,145,219,167,225,140,36,165,166,52,10,190,25,231,237,201,195,33,214,58,218,179,56,126,204,95,114,239,53,72,58,215,22,137,145,238,81,182,164,142,138,243,141,175,236,115,123,123,123,141,112,134,114,205,110,95,78,98,105,120,93,43,223,202,93,19,218,6,140,45,72,99,220,199,214,31,119,78,143,250,70,177,132,96,56,26,233,214,19,240,221,221,174,158,54,109,125,29,190,59,65,171,195,211,37,102,165,246,64,121,212,55,131,216,194,213,107,251,59,157,1,95,231,140,3,239,26,15,155,186,45,98,212,76,84,106,66,18,6,152,227,235,178,19,221,193,248,
40,167,183,119,208,140,199,210,226,233,248,209,226,34,13,215,32,145,72,8,12,158,18,21,223,197,142,48,7,22,250,204,124,235,16,247,84,154,205,102,2,142,177,221,126,225,218,193,138,120,110,196,68,230,24,253,163,50,67,216,71,196,187,217,72,9,111,90,98,31,36,48,50,42,118,45,37,117,60,232,140,5,197,225,137,248,145,126,58,219,179,56,160,95,158,203,46,140,182,9,156,152,120,12,131,174,111,228,179,246,120,75,70,186,60,18,77,4,28,152,198,198,70,131,140,57,97,156,90,27,241,158,236,77,241,54,89,203,219,157,19,212,128,75,153,32,195,131,45,36,20,206,218,125,66,75,134,229,244,197,69,245,98,216,186,41,238,104,149,181,153,86,234,117,4,166,118,34,26,176,187,221,44,132,98,137,143,23,172,244,117,14,215,155,185,204,241,211,29,246,116,111,111,102,49,149,30,74,78,46,44,96,157,237,135,177,68,54,88,223,182,225,103,8,187,49,26,253,186,73,50,217,224,175,27,28,214,29,25,88,240,165,208,180,68,186,180,85,167,224,117,161,20,188,147,37,
247,116,0,135,59,224,178,15,184,26,116,83,208,164,141,19,178,29,66,80,79,216,29,26,70,182,10,86,108,147,167,120,222,52,190,67,24,162,49,44,245,49,46,186,9,161,224,229,106,74,220,211,185,154,228,3,110,174,230,130,120,29,151,133,119,48,225,123,171,183,223,2,87,52,146,191,184,216,118,54,20,195,46,149,187,114,53,39,55,228,126,5,43,207,149,56,7,19,183,94,206,201,85,123,93,20,91,68,229,58,28,123,37,130,133,32,66,1,67,20,240,235,57,76,133,192,107,126,227,114,65,178,210,242,210,39,165,119,90,42,43,22,237,69,5,151,21,173,150,21,51,127,205,210,229,37,22,242,188,222,86,195,191,173,124,92,250,26,170,133,170,95,167,211,135,95,60,129,222,66,56,237,183,31,61,252,226,195,127,251,227,39,31,254,230,147,15,63,253,213,71,87,232,249,49,104,3,218,144,124,54,3,11,213,124,23,246,167,243,93,198,31,228,225,88,249,189,159,253,236,231,101,239,255,244,189,159,255,238,236,164,23,196,93,69,126,171,103,142,209,66,193,127,254,231,139,
130,80,49,136,133,143,254,240,225,127,60,184,130,208,11,100,126,255,225,39,255,246,199,95,253,225,38,74,69,194,252,248,127,62,252,47,176,223,254,238,163,95,93,122,250,206,77,181,255,237,119,31,126,8,43,252,43,170,14,61,190,177,222,167,255,254,175,191,255,228,179,95,253,166,168,206,217,163,7,183,118,188,188,197,111,240,184,188,77,175,118,181,51,51,65,246,129,178,185,199,149,143,158,65,78,151,223,105,94,112,136,183,222,190,149,247,253,186,172,230,143,149,208,145,186,162,84,225,170,93,92,231,229,174,205,7,238,191,148,12,124,85,82,94,93,156,13,252,161,180,26,164,103,133,51,113,223,21,54,49,65,88,255,121,97,102,234,60,91,184,127,158,42,188,13,109,165,207,229,10,37,208,54,251,124,174,0,157,37,124,183,178,162,120,247,238,45,251,60,180,91,253,225,91,249,205,240,15,223,201,73,252,206,141,114,67,21,46,139,92,56,46,80,72,130,32,129,94,88,40,45,210,9,200,227,174,78,145,174,173,1,194,217,247,37,85,16,75,213,133,101,207,47,159,159,39,
88,57,78,128,206,115,103,26,47,18,200,242,231,69,122,133,248,57,79,194,32,205,159,229,204,151,74,65,60,156,149,186,237,84,64,110,11,255,133,102,11,159,215,238,9,204,31,24,184,94,175,121,49,62,187,250,164,70,113,145,251,197,227,69,142,234,153,106,46,169,224,66,79,103,148,95,20,31,148,40,232,238,82,193,251,183,221,176,14,186,93,238,40,4,148,182,126,246,240,173,243,239,223,23,210,243,91,99,46,213,126,112,81,187,224,101,208,215,156,91,252,241,119,15,191,248,229,175,160,192,120,69,248,254,44,127,166,226,204,33,114,149,114,225,187,236,113,209,81,145,15,242,21,139,226,247,5,209,15,114,206,149,59,97,0,197,147,42,16,81,64,247,43,222,36,159,127,254,238,75,52,126,253,135,223,253,246,225,23,255,10,162,238,245,52,62,43,156,96,120,5,141,222,127,45,141,222,127,85,141,222,255,223,92,163,247,239,172,209,220,137,152,151,250,105,113,127,189,51,252,200,31,178,185,190,47,87,125,119,83,55,174,122,126,243,219,123,133,112,248,19,216,251,239,189,119,
21,56,44,154,43,59,219,51,2,90,44,222,90,123,254,248,249,245,59,106,47,202,220,131,10,65,195,81,254,16,208,187,23,195,23,244,59,23,23,161,201,198,178,234,50,192,102,30,171,20,38,81,11,203,211,128,124,85,25,240,140,103,21,101,128,197,183,42,242,15,243,144,245,182,123,116,1,2,248,172,96,170,43,15,192,92,40,9,118,94,20,192,133,91,158,120,249,174,72,192,91,161,4,208,198,253,219,179,115,255,142,236,60,127,21,118,238,221,129,159,123,119,100,232,194,63,238,204,26,132,190,74,254,191,202,170,127,135,140,127,229,120,120,155,200,117,65,226,134,126,245,236,198,126,245,236,249,45,59,11,32,243,246,165,193,240,226,13,212,95,30,151,85,215,148,84,60,42,61,63,145,120,126,250,243,14,11,136,23,242,252,219,179,39,69,27,225,238,174,15,80,255,186,84,167,226,69,125,20,189,186,173,50,42,174,85,6,68,2,86,241,44,119,17,3,232,239,175,166,133,239,138,125,227,21,180,240,221,117,142,81,188,189,230,187,23,97,211,165,151,247,175,210,4,120,94,
246,228,217,147,34,249,174,208,77,142,242,53,218,201,19,190,187,86,62,46,182,237,21,27,242,47,119,228,162,162,215,229,70,55,74,242,18,123,119,96,238,138,61,233,215,49,119,237,38,244,151,153,187,188,102,117,123,214,32,111,40,171,120,165,32,115,205,28,66,129,218,27,140,55,197,7,63,65,221,156,227,92,68,150,252,30,227,178,170,234,26,232,10,9,240,234,197,195,229,213,176,242,74,192,118,89,229,109,209,13,52,16,22,196,184,221,168,89,40,252,224,139,219,159,21,61,103,248,242,5,15,47,112,250,253,163,215,93,248,188,255,202,124,190,116,17,197,157,248,60,59,162,252,102,209,98,254,212,243,245,94,246,221,19,240,250,157,107,95,63,255,254,215,23,136,241,37,188,88,236,146,249,134,206,15,76,64,191,138,93,52,79,41,159,183,188,3,105,242,18,110,44,104,246,78,232,187,224,114,183,246,205,187,216,251,179,43,248,185,149,23,222,218,3,239,194,205,85,218,185,21,55,247,110,205,206,189,187,240,115,179,221,110,230,236,119,79,75,30,149,213,60,63,239,4,183,
26,172,11,149,110,112,243,202,66,137,243,228,230,170,97,185,144,72,20,60,242,172,10,236,221,175,170,64,58,248,62,236,45,240,228,191,23,166,200,222,131,189,85,3,80,106,245,83,144,143,86,212,252,83,89,69,33,65,185,109,194,113,182,202,112,233,112,211,173,100,189,106,155,192,245,7,129,114,194,231,231,202,191,95,226,66,185,59,138,144,195,85,119,145,227,138,64,117,149,80,23,48,170,172,226,113,233,139,131,225,43,139,124,89,86,216,87,23,51,80,249,102,10,58,185,235,162,198,197,122,194,171,31,100,191,141,22,110,92,13,121,77,97,128,142,160,175,159,1,202,101,143,160,131,249,175,186,155,229,50,157,235,183,180,148,214,220,97,71,11,40,124,105,211,78,245,19,104,138,58,15,93,160,209,2,58,1,94,253,226,173,102,69,151,66,85,149,94,90,135,187,165,50,238,191,33,101,220,255,123,40,163,48,109,149,59,215,2,208,111,65,43,247,223,128,86,238,189,41,181,220,251,59,234,37,127,232,229,141,41,230,211,82,48,58,84,64,55,17,126,86,136,138,55,46,117,
92,174,113,151,216,119,73,59,103,20,238,162,164,243,58,103,186,122,231,202,176,145,155,2,173,204,157,255,40,76,130,126,89,90,84,27,186,88,19,210,110,238,170,201,252,109,73,57,181,85,86,229,203,127,85,89,94,94,249,237,217,141,75,159,221,229,212,235,139,218,188,141,147,157,231,237,215,106,245,205,235,173,112,78,17,12,125,37,143,161,75,54,255,247,210,219,135,208,18,209,171,170,238,195,23,23,140,254,6,218,131,180,80,80,25,164,128,191,147,206,64,47,191,85,127,133,182,84,190,98,47,125,205,189,155,103,216,165,0,73,161,144,117,185,191,230,212,82,208,36,80,221,251,239,66,228,114,235,193,239,92,170,152,187,60,237,203,252,109,101,16,138,189,165,138,62,169,254,83,30,222,94,137,114,206,119,198,156,23,187,51,132,41,236,152,185,94,168,51,1,114,233,117,105,9,116,58,173,230,155,146,138,91,75,0,25,239,174,221,33,95,229,111,182,33,247,10,163,22,245,135,191,129,21,255,80,250,164,242,47,165,159,230,232,95,105,200,115,87,47,46,121,123,91,66,117,
110,48,97,46,139,186,242,178,230,199,165,229,165,53,165,197,9,73,110,199,193,93,164,2,134,58,19,236,123,164,58,47,121,121,214,48,199,252,121,132,121,61,150,191,167,51,61,126,213,189,71,159,92,159,27,220,148,234,128,151,23,71,234,207,135,170,34,57,111,27,5,30,223,126,18,253,110,220,95,17,61,239,32,219,77,129,227,246,105,220,39,87,167,112,69,123,132,190,79,128,171,83,51,0,40,111,10,215,183,103,240,163,252,54,164,243,75,38,10,191,63,135,21,190,156,177,121,246,243,154,73,241,179,117,240,66,177,219,78,23,125,2,29,6,40,118,220,220,131,207,97,185,143,115,13,229,126,92,163,164,252,142,153,171,38,96,174,98,47,71,42,95,231,49,172,228,252,104,122,158,200,29,102,0,255,245,249,239,33,180,112,105,62,233,250,105,192,66,233,155,230,75,175,225,251,210,189,204,208,121,96,104,253,249,124,238,51,183,139,178,96,245,154,252,74,245,237,101,184,127,39,25,238,127,191,12,207,175,150,225,254,77,34,60,127,61,17,238,221,77,134,123,175,44,196,203,
147,143,127,11,121,62,203,113,247,175,207,115,123,53,111,233,91,197,85,94,221,193,242,66,156,203,244,102,28,236,238,210,220,191,165,52,215,89,233,254,77,210,188,134,109,62,45,1,35,124,245,111,75,107,74,190,42,187,184,65,243,209,55,37,85,15,255,241,234,171,77,207,225,253,165,154,87,207,175,22,63,202,145,60,219,27,7,213,184,110,122,28,218,202,250,143,191,120,235,222,207,160,87,239,189,247,246,251,176,255,200,93,74,92,125,49,121,14,181,125,57,252,149,64,87,246,230,47,47,174,134,61,41,48,5,105,229,108,183,92,217,237,195,96,126,185,241,242,86,204,215,92,187,252,158,109,154,55,174,92,230,39,225,31,254,248,202,105,248,11,127,46,94,27,58,63,68,249,164,172,34,183,162,155,219,38,150,223,49,248,110,17,200,126,158,67,216,15,127,252,254,59,176,202,138,242,231,69,212,254,122,182,163,235,60,197,188,211,62,130,55,168,188,60,177,191,139,242,10,203,225,63,168,242,126,13,16,231,159,202,74,191,189,229,36,206,213,74,59,39,242,230,103,9,11,194,
86,66,127,11,6,10,105,176,167,32,181,172,126,84,5,109,189,201,71,167,179,108,11,218,6,94,145,191,14,252,254,69,200,202,93,78,158,175,121,86,48,119,244,255,47,165,85,16,128,41,36,117,197,211,22,197,87,141,23,157,255,45,252,37,147,243,63,55,243,101,217,215,185,106,185,60,17,178,103,222,10,133,237,250,185,183,185,63,164,242,78,158,133,202,167,208,66,115,238,175,211,148,60,122,4,178,147,42,144,36,195,170,65,48,169,248,26,200,119,233,182,237,210,175,170,74,171,191,185,253,248,240,203,202,103,231,151,155,93,13,141,115,37,174,67,156,23,219,47,10,169,82,121,101,201,227,91,222,166,253,73,245,175,158,60,133,150,3,111,152,116,200,149,184,233,32,14,96,162,42,63,163,91,81,121,25,118,195,206,117,240,224,193,255,15,241,134,152,199,

View file

@ -0,0 +1,25 @@
topic "template <class Y>";
[ $$0,0#00000000000000000000000000000000:Default]
[i448;a25;kKO9; $$1,0#37138531426314131252341829483380:structitem]
[l288;2 $$2,0#27521748481378242620020725143825:desc]
[0 $$3,0#96390100711032703541132217272105:end]
[H6;0 $$4,0#05600065144404261032431302351956:begin]
[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:codeitem]
[{_}
[ {{10000@3 [s0;%% [*@(229)4 VectorY]]}}&]
[s1;@(0.0.255)0 &]
[s1;:noref: [@(0.0.255) template]_<[@(0.0.255) class]_[*@4 Y]>&]
[s1;:VectorY`:`:class: [@(0.0.255) class]_[* VectorY]_:_[@(0.0.255) public]_[*@3 DataSource]&]
[s2;%% &]
[s0;%% [2 A ][^topic`:`/`/ScatterDraw`/src`/DataSource`$en`-us^2 DataSource
][2 class based on a Vector of values.]&]
[s3; &]
[ {{10000F(128)G(128)@1 [s0;%% [* Constructor Detail]]}}&]
[s4; &]
[s5;:VectorY`:`:VectorY`(Vector`<Y`>`&`,double`,double`): [* VectorY]([_^Vector^ Vector]<
[*@4 Y]>_`&[*@3 yData], [@(0.0.255) double]_[*@3 x0], [@(0.0.255) double]_[*@3 deltaX])&]
[s2;%% Creates a VectorY based on a Vector [%-*@3 yData] with X axis
values beginning from [%-*@3 x0] and with [%-*@3 deltaX] between
X axis values.&]
[s3;%% &]
[s0;%% ]]

View file

@ -0,0 +1,6 @@
TITLE("template <class Y>")
COMPRESSED
120,156,133,82,109,107,219,48,16,254,43,7,107,66,50,218,68,58,73,177,99,151,146,209,176,13,246,97,31,10,163,65,40,182,106,43,157,153,107,23,91,105,59,74,255,251,228,151,188,141,177,250,131,124,156,238,121,238,158,71,39,225,236,140,156,147,15,228,157,47,88,154,141,222,230,86,201,140,115,63,212,40,194,95,223,190,207,67,7,167,14,206,60,202,124,193,40,199,153,59,40,163,40,144,113,234,227,156,251,140,249,36,168,109,181,77,108,102,205,131,146,57,250,126,136,14,137,14,137,158,64,234,113,159,251,148,121,62,58,2,36,4,137,135,130,114,230,163,8,82,83,39,74,18,87,206,92,249,124,198,230,132,18,226,81,74,24,122,132,9,78,41,67,71,129,30,82,34,2,83,164,74,126,157,133,13,128,55,194,196,204,141,63,115,108,156,19,199,222,192,56,163,140,32,19,116,46,102,193,157,185,207,138,191,101,53,211,137,119,117,121,36,72,202,212,116,170,94,163,55,144,240,250,74,27,187,22,12,100,77,194,193,0,228,199,197,8,113,62,230,240,195,36,182,172,86,
74,189,189,13,149,172,105,184,24,145,9,153,160,16,99,2,93,38,40,202,202,108,2,144,135,43,112,228,143,185,182,70,69,151,199,233,36,215,117,173,34,71,207,97,165,174,122,124,223,35,14,226,160,45,56,165,218,99,246,179,68,65,116,92,240,184,189,203,179,164,101,101,176,212,86,223,148,219,42,49,170,97,199,70,77,19,116,178,16,62,129,146,107,91,62,102,137,107,55,141,167,55,137,182,214,84,203,74,63,199,211,186,74,226,233,129,33,62,51,69,124,177,173,215,120,68,235,240,216,205,4,119,186,54,41,148,5,232,126,52,40,55,240,164,243,173,169,39,109,119,22,54,189,119,246,126,30,81,244,199,95,218,115,65,15,86,195,117,89,116,155,230,24,150,198,234,44,223,217,205,91,130,90,156,120,180,11,71,93,16,95,174,226,171,120,24,159,167,165,51,194,236,255,227,0,142,60,27,201,104,221,197,235,62,167,46,119,207,16,197,195,214,187,223,141,74,117,126,226,126,71,214,155,251,66,254,119,155,154,220,234,91,53,222,251,126,93,25,183,2,245,222,158,213,63,28,
147,131,139,67,107,120,206,236,79,184,5,253,146,213,189,145,208,110,122,145,21,247,176,169,202,135,93,189,155,4,116,145,118,128,62,215,247,119,8,251,108,76,113,202,51,233,222,227,120,27,148,250,3,203,0,57,164,

View file

@ -1,3 +1,7 @@
TOPIC("CArray$en-us")
#include "CArray$en-us.tppi"
END_TOPIC
TOPIC("DataSource$en-us")
#include "DataSource$en-us.tppi"
END_TOPIC
@ -22,3 +26,7 @@ TOPIC("ScatterDraw$en-us")
#include "ScatterDraw$en-us.tppi"
END_TOPIC
TOPIC("VectorY$en-us")
#include "VectorY$en-us.tppi"
END_TOPIC