.uppweb: Some fixes.

git-svn-id: svn://ultimatepp.org/upp/trunk@3940 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
koldo 2011-10-01 14:27:57 +00:00
parent 7d6f6fe7a4
commit d387a12b13
5 changed files with 325 additions and 324 deletions

View file

@ -1,39 +1,51 @@
TOPIC("CallbackExample$en-us")
#include "CallbackExample$en-us.tppi"
END_TOPIC
TOPIC("roadmap$en-us")
#include "roadmap$en-us.tppi"
END_TOPIC
TOPIC("blitz$en-us")
#include "blitz$en-us.tppi"
END_TOPIC
TOPIC("IDE$pl-pl")
#include "IDE$pl-pl.tppi"
TOPIC("602$en-us")
#include "602$en-us.tppi"
END_TOPIC
TOPIC("602long$en-us")
#include "602long$en-us.tppi"
END_TOPIC
TOPIC("article$en-us")
#include "article$en-us.tppi"
END_TOPIC
TOPIC("article2$en-us")
#include "article2$en-us.tppi"
END_TOPIC
TOPIC("blitz$en-us")
#include "blitz$en-us.tppi"
END_TOPIC
TOPIC("CallbackExample$en-us")
#include "CallbackExample$en-us.tppi"
END_TOPIC
TOPIC("daniel$en-us")
#include "daniel$en-us.tppi"
END_TOPIC
TOPIC("uppheap$en-us")
#include "uppheap$en-us.tppi"
TOPIC("IDE$en-us")
#include "IDE$en-us.tppi"
END_TOPIC
TOPIC("uppp$en-us")
#include "uppp$en-us.tppi"
TOPIC("IDE$pl-pl")
#include "IDE$pl-pl.tppi"
END_TOPIC
TOPIC("IDEoverview$en-us")
#include "IDEoverview$en-us.tppi"
END_TOPIC
TOPIC("Menu$en-us")
#include "Menu$en-us.tppi"
END_TOPIC
TOPIC("roadmap$en-us")
#include "roadmap$en-us.tppi"
END_TOPIC
TOPIC("trc_commentary$en-us")
#include "trc_commentary$en-us.tppi"
END_TOPIC
@ -42,23 +54,11 @@ TOPIC("upp$en-us")
#include "upp$en-us.tppi"
END_TOPIC
TOPIC("article$en-us")
#include "article$en-us.tppi"
TOPIC("uppheap$en-us")
#include "uppheap$en-us.tppi"
END_TOPIC
TOPIC("IDEoverview$en-us")
#include "IDEoverview$en-us.tppi"
END_TOPIC
TOPIC("article2$en-us")
#include "article2$en-us.tppi"
END_TOPIC
TOPIC("602$en-us")
#include "602$en-us.tppi"
END_TOPIC
TOPIC("IDE$en-us")
#include "IDE$en-us.tppi"
TOPIC("uppp$en-us")
#include "uppp$en-us.tppi"
END_TOPIC

View file

@ -1,5 +1,5 @@
TOPIC("ImageView$en-us")
#include "ImageView$en-us.tppi"
TOPIC("AddressBook$en-us")
#include "AddressBook$en-us.tppi"
END_TOPIC
TOPIC("AddressBook$ru-ru")
@ -10,83 +10,83 @@ TOPIC("AnimatedHello$en-us")
#include "AnimatedHello$en-us.tppi"
END_TOPIC
TOPIC("CodeMetric$en-us")
#include "CodeMetric$en-us.tppi"
END_TOPIC
TOPIC("UWord$en-us")
#include "UWord$en-us.tppi"
END_TOPIC
TOPIC("HomeBudget$en-us")
#include "HomeBudget$en-us.tppi"
END_TOPIC
TOPIC("SQLApp$en-us")
#include "SQLApp$en-us.tppi"
END_TOPIC
TOPIC("CompDir$en-us")
#include "CompDir$en-us.tppi"
END_TOPIC
TOPIC("Converter$ru-ru")
#include "Converter$ru-ru.tppi"
END_TOPIC
TOPIC("HelloWorld$en-us")
#include "HelloWorld$en-us.tppi"
END_TOPIC
TOPIC("Color$en-us")
#include "Color$en-us.tppi"
END_TOPIC
TOPIC("Button$en-us")
#include "Button$en-us.tppi"
END_TOPIC
TOPIC("Puzzle$en-us")
#include "Puzzle$en-us.tppi"
END_TOPIC
TOPIC("Days$en-us")
#include "Days$en-us.tppi"
TOPIC("AnimatedHello$ru-ru")
#include "AnimatedHello$ru-ru.tppi"
END_TOPIC
TOPIC("Bombs$en-us")
#include "Bombs$en-us.tppi"
END_TOPIC
TOPIC("HelloWorld$ru-ru")
#include "HelloWorld$ru-ru.tppi"
END_TOPIC
TOPIC("AnimatedHello$ru-ru")
#include "AnimatedHello$ru-ru.tppi"
TOPIC("Button$en-us")
#include "Button$en-us.tppi"
END_TOPIC
TOPIC("clock$en-us")
#include "clock$en-us.tppi"
END_TOPIC
TOPIC("Scribble$en-us")
#include "Scribble$en-us.tppi"
TOPIC("CodeMetric$en-us")
#include "CodeMetric$en-us.tppi"
END_TOPIC
TOPIC("EyeCare$en-us")
#include "EyeCare$en-us.tppi"
TOPIC("Color$en-us")
#include "Color$en-us.tppi"
END_TOPIC
TOPIC("AddressBook$en-us")
#include "AddressBook$en-us.tppi"
END_TOPIC
TOPIC("XmlView$en-us")
#include "XmlView$en-us.tppi"
TOPIC("CompDir$en-us")
#include "CompDir$en-us.tppi"
END_TOPIC
TOPIC("Converter$en-us")
#include "Converter$en-us.tppi"
END_TOPIC
TOPIC("Converter$ru-ru")
#include "Converter$ru-ru.tppi"
END_TOPIC
TOPIC("Days$en-us")
#include "Days$en-us.tppi"
END_TOPIC
TOPIC("EyeCare$en-us")
#include "EyeCare$en-us.tppi"
END_TOPIC
TOPIC("HelloWorld$en-us")
#include "HelloWorld$en-us.tppi"
END_TOPIC
TOPIC("HelloWorld$ru-ru")
#include "HelloWorld$ru-ru.tppi"
END_TOPIC
TOPIC("HomeBudget$en-us")
#include "HomeBudget$en-us.tppi"
END_TOPIC
TOPIC("ImageView$en-us")
#include "ImageView$en-us.tppi"
END_TOPIC
TOPIC("Puzzle$en-us")
#include "Puzzle$en-us.tppi"
END_TOPIC
TOPIC("Scribble$en-us")
#include "Scribble$en-us.tppi"
END_TOPIC
TOPIC("SQLApp$en-us")
#include "SQLApp$en-us.tppi"
END_TOPIC
TOPIC("UWord$en-us")
#include "UWord$en-us.tppi"
END_TOPIC
TOPIC("XmlView$en-us")
#include "XmlView$en-us.tppi"
END_TOPIC

View file

@ -1,139 +1,191 @@
TOPIC("DynamicDlg$en-us")
#include "DynamicDlg$en-us.tppi"
TOPIC("AK$en-us")
#include "AK$en-us.tppi"
END_TOPIC
TOPIC("Serialize$en-us")
#include "Serialize$en-us.tppi"
END_TOPIC
TOPIC("Timing$en-us")
#include "Timing$en-us.tppi"
END_TOPIC
TOPIC("Ptr$en-us")
#include "Ptr$en-us.tppi"
END_TOPIC
TOPIC("CtrlRetriever$en-us")
#include "CtrlRetriever$en-us.tppi"
TOPIC("AnimatedClip$ca-es")
#include "AnimatedClip$ca-es.tppi"
END_TOPIC
TOPIC("AnimatedClip$en-us")
#include "AnimatedClip$en-us.tppi"
END_TOPIC
TOPIC("Splitter$en-us")
#include "Splitter$en-us.tppi"
END_TOPIC
TOPIC("Slider$en-us")
#include "Slider$en-us.tppi"
END_TOPIC
TOPIC("RegExp$en-us")
#include "RegExp$en-us.tppi"
END_TOPIC
TOPIC("StatusBar$en-us")
#include "StatusBar$en-us.tppi"
END_TOPIC
TOPIC("events$en-us")
#include "events$en-us.tppi"
END_TOPIC
TOPIC("VirtualArray$en-us")
#include "VirtualArray$en-us.tppi"
END_TOPIC
TOPIC("image$en-us")
#include "image$en-us.tppi"
END_TOPIC
TOPIC("ScrollBar$en-us")
#include "ScrollBar$en-us.tppi"
END_TOPIC
TOPIC("display$en-us")
#include "display$en-us.tppi"
END_TOPIC
TOPIC("ctrlpos$en-us")
#include "ctrlpos$en-us.tppi"
END_TOPIC
TOPIC("SQL_Sqlite3$en-us")
#include "SQL_Sqlite3$en-us.tppi"
END_TOPIC
TOPIC("CallbackArgTarget$en-us")
#include "CallbackArgTarget$en-us.tppi"
END_TOPIC
TOPIC("cparser$en-us")
#include "cparser$en-us.tppi"
END_TOPIC
TOPIC("ArrayCtrlEdits$en-us")
#include "ArrayCtrlEdits$en-us.tppi"
END_TOPIC
TOPIC("log$en-us")
#include "log$en-us.tppi"
TOPIC("AnimatedClip$es-es")
#include "AnimatedClip$es-es.tppi"
END_TOPIC
TOPIC("ArrayCtrl$en-us")
#include "ArrayCtrl$en-us.tppi"
END_TOPIC
TOPIC("ColumnList$en-us")
#include "ColumnList$en-us.tppi"
END_TOPIC
TOPIC("SqlArray$en-us")
#include "SqlArray$en-us.tppi"
END_TOPIC
TOPIC("draw$en-us")
#include "draw$en-us.tppi"
END_TOPIC
TOPIC("SliderProgressInd$en-us")
#include "SliderProgressInd$en-us.tppi"
END_TOPIC
TOPIC("Reports$en-us")
#include "Reports$en-us.tppi"
END_TOPIC
TOPIC("Format$en-us")
#include "Format$en-us.tppi"
END_TOPIC
TOPIC("SplitterFrame$en-us")
#include "SplitterFrame$en-us.tppi"
END_TOPIC
TOPIC("GuiMT$en-us")
#include "GuiMT$en-us.tppi"
END_TOPIC
TOPIC("Chameleon$en-us")
#include "Chameleon$en-us.tppi"
END_TOPIC
TOPIC("ImageDraw$en-us")
#include "ImageDraw$en-us.tppi"
TOPIC("ArrayCtrlEdits$en-us")
#include "ArrayCtrlEdits$en-us.tppi"
END_TOPIC
TOPIC("callback$en-us")
#include "callback$en-us.tppi"
END_TOPIC
TOPIC("CallbackArgTarget$en-us")
#include "CallbackArgTarget$en-us.tppi"
END_TOPIC
TOPIC("Chameleon$en-us")
#include "Chameleon$en-us.tppi"
END_TOPIC
TOPIC("ColumnList$en-us")
#include "ColumnList$en-us.tppi"
END_TOPIC
TOPIC("convert$en-us")
#include "convert$en-us.tppi"
END_TOPIC
TOPIC("cparser$en-us")
#include "cparser$en-us.tppi"
END_TOPIC
TOPIC("ctrlpos$en-us")
#include "ctrlpos$en-us.tppi"
END_TOPIC
TOPIC("CtrlRetriever$en-us")
#include "CtrlRetriever$en-us.tppi"
END_TOPIC
TOPIC("display$en-us")
#include "display$en-us.tppi"
END_TOPIC
TOPIC("draw$en-us")
#include "draw$en-us.tppi"
END_TOPIC
TOPIC("drawing$en-us")
#include "drawing$en-us.tppi"
END_TOPIC
TOPIC("DynamicDlg$en-us")
#include "DynamicDlg$en-us.tppi"
END_TOPIC
TOPIC("events$en-us")
#include "events$en-us.tppi"
END_TOPIC
TOPIC("Format$en-us")
#include "Format$en-us.tppi"
END_TOPIC
TOPIC("Frame$en-us")
#include "Frame$en-us.tppi"
END_TOPIC
TOPIC("GuiMT$en-us")
#include "GuiMT$en-us.tppi"
END_TOPIC
TOPIC("image$en-us")
#include "image$en-us.tppi"
END_TOPIC
TOPIC("ImageDraw$en-us")
#include "ImageDraw$en-us.tppi"
END_TOPIC
TOPIC("log$en-us")
#include "log$en-us.tppi"
END_TOPIC
TOPIC("menu$en-us")
#include "menu$en-us.tppi"
END_TOPIC
TOPIC("OpenGL$en-us")
#include "OpenGL$en-us.tppi"
END_TOPIC
TOPIC("Paint$en-us")
#include "Paint$en-us.tppi"
END_TOPIC
TOPIC("Ptr$en-us")
#include "Ptr$en-us.tppi"
END_TOPIC
TOPIC("Qtf$en-us")
#include "Qtf$en-us.tppi"
END_TOPIC
TOPIC("QtfDrawing$en-us")
#include "QtfDrawing$en-us.tppi"
END_TOPIC
TOPIC("RectTracker$en-us")
#include "RectTracker$en-us.tppi"
END_TOPIC
TOPIC("RegExp$en-us")
#include "RegExp$en-us.tppi"
END_TOPIC
TOPIC("Reports$en-us")
#include "Reports$en-us.tppi"
END_TOPIC
TOPIC("RichTextObject$en-us")
#include "RichTextObject$en-us.tppi"
END_TOPIC
TOPIC("ScrollBar$en-us")
#include "ScrollBar$en-us.tppi"
END_TOPIC
TOPIC("ScrollView$en-us")
#include "ScrollView$en-us.tppi"
END_TOPIC
TOPIC("Serialize$en-us")
#include "Serialize$en-us.tppi"
END_TOPIC
TOPIC("Slider$en-us")
#include "Slider$en-us.tppi"
END_TOPIC
TOPIC("SliderProgressInd$en-us")
#include "SliderProgressInd$en-us.tppi"
END_TOPIC
TOPIC("Splitter$en-us")
#include "Splitter$en-us.tppi"
END_TOPIC
TOPIC("SplitterFrame$en-us")
#include "SplitterFrame$en-us.tppi"
END_TOPIC
TOPIC("SqlArray$en-us")
#include "SqlArray$en-us.tppi"
END_TOPIC
TOPIC("SQL_Sqlite3$en-us")
#include "SQL_Sqlite3$en-us.tppi"
END_TOPIC
TOPIC("StatusBar$en-us")
#include "StatusBar$en-us.tppi"
END_TOPIC
TOPIC("TabDlg$en-us")
#include "TabDlg$en-us.tppi"
END_TOPIC
TOPIC("Timing$en-us")
#include "Timing$en-us.tppi"
END_TOPIC
TOPIC("Topic$en-us")
#include "Topic$en-us.tppi"
END_TOPIC
@ -142,71 +194,19 @@ TOPIC("TreeCtrl$en-us")
#include "TreeCtrl$en-us.tppi"
END_TOPIC
TOPIC("Qtf$en-us")
#include "Qtf$en-us.tppi"
END_TOPIC
TOPIC("XML$en-us")
#include "XML$en-us.tppi"
END_TOPIC
TOPIC("QtfDrawing$en-us")
#include "QtfDrawing$en-us.tppi"
TOPIC("uscctrl$en-us")
#include "uscctrl$en-us.tppi"
END_TOPIC
TOPIC("value$en-us")
#include "value$en-us.tppi"
END_TOPIC
TOPIC("drawing$en-us")
#include "drawing$en-us.tppi"
TOPIC("VirtualArray$en-us")
#include "VirtualArray$en-us.tppi"
END_TOPIC
TOPIC("RichTextObject$en-us")
#include "RichTextObject$en-us.tppi"
END_TOPIC
TOPIC("menu$en-us")
#include "menu$en-us.tppi"
END_TOPIC
TOPIC("Frame$en-us")
#include "Frame$en-us.tppi"
END_TOPIC
TOPIC("AnimatedClip$ca-es")
#include "AnimatedClip$ca-es.tppi"
END_TOPIC
TOPIC("TabDlg$en-us")
#include "TabDlg$en-us.tppi"
END_TOPIC
TOPIC("Paint$en-us")
#include "Paint$en-us.tppi"
END_TOPIC
TOPIC("AK$en-us")
#include "AK$en-us.tppi"
END_TOPIC
TOPIC("OpenGL$en-us")
#include "OpenGL$en-us.tppi"
END_TOPIC
TOPIC("AnimatedClip$es-es")
#include "AnimatedClip$es-es.tppi"
END_TOPIC
TOPIC("convert$en-us")
#include "convert$en-us.tppi"
END_TOPIC
TOPIC("RectTracker$en-us")
#include "RectTracker$en-us.tppi"
END_TOPIC
TOPIC("uscctrl$en-us")
#include "uscctrl$en-us.tppi"
TOPIC("XML$en-us")
#include "XML$en-us.tppi"
END_TOPIC

View file

@ -16,13 +16,13 @@ topic "How to contribute. Web page";
[s0; [*+117 Introduction]&]
[s0; &]
[s0; Code style has always been subject to a lot of discussions,
some of them beeing really passionate and emotional. Those of
some of them being really passionate and emotional. Those of
you already having seen the intimate details of Ultimate`+`+
in uppsrc and maybe bazaar surely have percepted a certain degree
of order, functionality and maybe, like I did,even a certain
beauty (yes, I am married in real world :), all hard to describe.
For me the code felt usefull, well structured and quite easy
to read and thus esier to understand. And this is maybe the essence
For me the code felt useful, well structured and quite easy to
read and thus easier to understand. And this is maybe the essence
of good code style. All the things mentioned below are tiny little
details that can help to achieve this overall perception in U`+`+
code. Don`'t hesitate to look at the code in uppsrc to learn.
@ -32,7 +32,7 @@ while and feel some comfort with it. But this document should
shorten the time.&]
[s0; &]
[s0; If you like to contribute code or major fixes, you are encouraged
to pay attention to these things. It makes life esier for the
to pay attention to these things. It makes life easier for the
community, which usually keeps an eye on the changes made to
the code base. It enables us (the community, of which you are
about to be part of) to spot bugs fast and provide fast fixes.
@ -50,17 +50,17 @@ code&]
[s0;i150;O0; [* Use Topic`+`+] (.tpp files) to comment your class usage,
this is the prefered method of code commenting. Use separate
files for API and implementation documentation. TheIDE can generate
the apropriate files for you. Click on the little cyan rectangles
the appropriate files for you. Click on the little cyan rectangles
next to functions, variables or classes. `'[/ New reference topic]`"
adds to `'src.tpp`', `'[/ New implementation topic]`' adds to `'srcimp.tpp`'.
[* Provide also the `"Big picture`"] design aspects of your package
/ class, briefly outlined in the src.tpp as a header (see U`+`+
class documentation as an example). This reliefes a lot of headache
class documentation as an example). This relieves a lot of headache
when studying the code.&]
[s0; &]
[s0;i150;O0; [* Be familiar with U`+`+, use its facilities] This is
a general prerequisite anyway, but it means to have studied the
exsisting code and its possibilities a bit. It might happen that
existing code and its possibilities a bit. It might happen that
you have invented things that U`+`+ already provides for you
and you could have saved your time. It also means to know, understand,
and thus stick to the design pattern, i.e. when implementing
@ -87,9 +87,9 @@ field, adding the absolute path to Bazaar at the end.&]
like [C #include <Scatter/Scatter.h>] instead of [C #include `"/folderA/folderB/Scatt
er.h`"]&]
[s0; &]
[s0;i150;O0; [* Use the package idea] of U`+`+. A package compunds
one or more classes and its files, becuase they logicaly belong
together and should all be available when usig the package inside
[s0;i150;O0; [* Use the package idea] of U`+`+. A package compounds
one or more classes and its files, because they logically belong
together and should all be available when using the package inside
another package. A package should have an overall name and a
.h with same name (which then can [C #include] the other class
headers if any). Example: [C #include <Core/Core.h>]. This is the
@ -97,32 +97,32 @@ way you also should use other packages inside yours. (See `'Overview`'
for more info on packages) &]
[s0; &]
[s0;i150;O0; Provide a [* Test / Demo package] for your package. Generally
it is a good idea to have a `'MyPackge`' and `'MyPackageTest`'
it is a good idea to have a `'MyPackage`' and `'MyPackageTest`'
package shipped together, where functionality and Testing / Presenting
is separated. Others won`'t need to trouble with the code too
much if the can simply [C #include <MyPackage/MyPackage.h>]. a
package whoose usage they have observed in the Test package.&]
package whose usage they have observed in the Test package.&]
[s0; &]
[s0;i150;O0; [* Avoid usage of new / delete] as hell. [* Use U`+`+ NTL
containers] for your data or capsulate the allocation or deallocation
containers] for your data or encapsulate the allocation or deallocation
of objects. Memory leaks can cause serious brain damage :). of
course, don`'t mix new/delete with malloc/free. Pointers should
only be used to really point to things and NOT to maintain the
last reference to a dynamicly allocated object (this should be
done in containers, Array<>, Vector<>, One<>, Any<>, etc. [* everything
belongs somewhere]...).&]
last reference to a dynamically allocated object (this should
be done in containers, Array<>, Vector<>, One<>, Any<>, etc.
[* everything belongs somewhere]...).&]
[s0;* &]
[s0;i150;O0; [* Avoid usage of ][*C #define constants], use compile
time safe constants inside your class where possible. Example:
[C static const int MaxSize `= 100;]&]
[s0; &]
[s0;i150;O0; Dont forget the [*C virtual `~Destructor()], As soon as
your class is meant to be a base class (i.e. has any other virtual
function) it should have a virtual destructor, even if it`'s
empty.&]
[s0;i150;O0; Do not forget the [*C virtual `~Destructor()], As soon
as your class is meant to be a base class (i.e. has any other
virtual function) it should have a virtual destructor, even if
it`'s empty.&]
[s0; &]
[s0;i150;O0; Pay attention to implicit conversion. Some bugs come
from defaultly parametrised constructors, which are used then
from constructors parametrized by default, which are used then
as implicit conversion constructors. (you may protect with the
`'explicit`' keyword)&]
[s0; &]
@ -130,7 +130,7 @@ as implicit conversion constructors. (you may protect with the
doors to many bugs and makes the usage of your class difficult
in classes that maintain it.&]
[s0; &]
[s0;i150;O0; [* Use integer counter access.] Dont use iterators on
[s0;i150;O0; [* Use integer counter access.] Do not use iterators on
the Containers. Example: [C for(int i `= 0; i < vec.GetCount();
i`+`+) vec`[i`] `= 0;]&]
[s0; &]
@ -146,23 +146,23 @@ Example:&]
little things like that.&]
[s0; &]
[s0;i150;O0; [* Implement small functions in class definition itself].
Many functions only have 1 or 2 syntactically importnat statements
Many functions only have 1 or 2 syntactically important statements
(return `*this doesn`'t count) and are maybe important to understand
class function. A developper will first look in header file.
Rule of thumb: >3 statements should go into own implementation
in .cpp file. Example: [C String Right(int count) const `{ return
Mid(GetLength() `- count); `}]&]
class function. A developer will first look in header file. Rule
of thumb: >3 statements should go into own implementation in .cpp
file. Example: [C String Right(int count) const `{ return Mid(GetLength()
`- count); `}]&]
[s0; &]
[s0;i150;O0; Provide for Methods chaining in your class by returning
`*this, where logically usefull. This makes it possible to [C myControl.HSizePos().
VSizePos().Enable().]&]
`*this, where logically useful. This makes it possible to [C myControl.HSizePos().V
SizePos().Enable().]&]
[s0; &]
[s0;i150;O0; Provide a [C String ToString() const; ]Users will thank
you if they can inspect an object in a preformatted way with
[C LOG(objectInstance);] without having to setup own functions
to show content during debug. Maybe it should be virtual to allow
derived classes to extend it. This is hevily used in object design
orientated languages like C#.&]
derived classes to extend it. This is heavily used in object
design orientated languages like C#.&]
[s0; &]
[s0;i150;O0; Think of providing a [C unsigned GetHashValue() const;
]If it is logical, such a function can enable your object to
@ -171,7 +171,7 @@ directly be used as a Key in Upp containers like Index.&]
[s0; [*+117 Class layout]&]
[s0; &]
[s0; A class is made for someone to use it and should expose most
important info first. So keep the class cpmponents`' order as
important info first. So keep the class components`' order as
following: (unneeded or unused parts can be left out)&]
[s0; &]
[s0; [C@(28.42.150) class tempc ]&]
@ -244,7 +244,7 @@ are own helper classes and functions]&]
[s0;C@(28.42.150) &]
[s0; [C@(28.42.150) -|/`*]&]
[s0; [C@(28.42.150) -|`* Here follows the private data, which only the
class itself takes care of and noone should ever know about.]&]
class itself takes care of and none should ever know about.]&]
[s0; [C@(28.42.150) -|`* in case of wrapper class this is mostly the
objects that are wrapped]&]
[s0; [C@(28.42.150) -|`*/]&]
@ -262,20 +262,21 @@ anywhere else], especially in class members`' names. [* Don`'t
use Hungarian] style (Linus: `"Brain damage`") or things like
`'[C m`_myMember, `_anotherMember, yetAnotherMember]`'. Example:
[C Font font; Size textsize; ]Assist`+`+ makes life so easy, that
we dont need this to figure out if its a class member (Hit Ctrl`+Space)&]
we do not need this to figure out if its a class member (Hit
Ctrl`+Space)&]
[s0; &]
[s0;i150;O0; Stick to[* implicit variable names semantic] inside function
bodies if possible and usefull. i,j,k,m,n,q, u mostly are integer
counters or indices in arrays, p is probably a pointer, a,b,c
bodies if possible and useful. i,j,k,m,n,q, u mostly are integer
counters or indexes in arrays, p is probably a pointer, a,b,c
are typically bool, d is double, f is a float. v is a Vector
or a Value, s is a String etc.. this makes code less typographic
and focuses more on the algorithm used. But don`'t use such variables
exclusively, please. a1 a2 and a3 are quite the same at first
look :)&]
[s0; &]
[s0;i150;O0; Tend to [* avoid comments] in general, except for nesseccary
[s0;i150;O0; Tend to [* avoid comments] in general, except for necessary
hints on important sections, critical for understanding. instead,
[* focus and persue a good design structure] in your package /
[* focus and pursue a good design structure] in your package /
class, which makes most comments disposable.&]
[s0; &]
[s0;i150;O0; [* Use Tabs to intend] code, except in the header of a

View file

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