Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2006-01-02 16:06:05 +0300
committerTon Roosendaal <ton@blender.org>2006-01-02 16:06:05 +0300
commitea7538dca60ffb2d913d0600d8f0692109b4195f (patch)
tree214db95864abe4ef9abe9c9cb76c742f175a08fc /source
parent9710d4c84c6ecabf8eb315d4dde7017d2c68e11f (diff)
Orange: more noodle updates!
**** NEW: Group Nodes Node trees usually become messy and confusing quickly, so we need not only a way to collapse Nodes into single 'groups', but also a way to re-use that data to create libraries of effects. This has been done by making a new Library data type, the NodeTree. Everything that has been grouped is stored here, and available for re-use, appending or linking. These NodeTrees are fully generic, i.e. can store shader trees, composit trees, and so on. The 'type' value as stored in the NodeTree will keep track of internal type definitions and execute/drawing callbacks. Needless to say, re-using shader trees in a composit tree is a bit useless, and will be prevented in the browsing code. :) So; any NodeTree can become a "Goup Node" inside in a NodeTree. This Group Node then works just like any Node. To prevent the current code to become too complex, I've disabled the possibility to insert Groups inside of Groups. That might be enabled later, but is a real nasty piece of code to get OK. Since Group Nodes are a dynamic Node type, a lot of work has been done to ensure Node definitions can be dynamic too, but still allow to be stored in files, and allow to be verified for type-definition changes on reloading. This system needs a little bit maturing still, so the Python gurus should better wait a little bit! (Also for me to write the definite API docs for it). What works now: - Press CTRL+G to create a new Group. The grouping code checks for impossible selections (like an unselected node between selected nodes). Everthing that's selected then gets removed from the current tree, and inserted in a new NodeTree library data block. A Group Node then is added which links to this new NodeTree. - Press ALT+G to ungroup. This will not delete the NodeTree library data, but just duplicate the Group into the current tree. - Press TAB, or click on the NodeTree icon to edit Groups. Note that NodeTrees are instances, so editing one Group will also change the other users. This also means that when removing nodes in a Group (or hiding sockets or changing internal links) this is immediately corrected for all users of this Group, also in other Materials. - While editing Groups, only the internal Nodes can be edited. A single click outside of the Group boundary will close this 'edit mode'. What needs to be done: - SHIFT+A menu in toolbox style, also including a list of Groups - Enable the single-user button in the Group Node - Displaying all (visible) internal group UI elements in the Node Panel - Enable Library linking and prevent editing of Groups then. **** NEW: Socket Visibility control Node types will be generated with a lot of possible inputs or outputs, and drawing all sockets all the time isn't very useful then. A new option in the Node header ('plus' icon) allows to either hide all unused sockets (first keypress) or to reveil them (when there are hidden sockets, the icon displays black, otherwise it's blended). Hidden sockets in Nodes also are not exported to a Group, so this way you can control what options (in/outputs) exactly are available. To be done: - a way to hide individual sockets, like with a RMB click on it. **** NEW: Nodes now render! This is still quite primitive, more on a level to replace the (now obsolete and disabled) Material Layers. What needs to be done: - make the "Geometry" node work properly, also for AA textures - make the Texture Node work (does very little at the moment) - give Material Nodes all inputs as needed (like Map-to Panel) - find a way to export more data from a Material Node, like the shadow value, or light intensity only, etc Very important also to separate from the Material Buttons the "global" options, like "Ztransp" or "Wire" or "Halo". These can not be set for each Material-Node individually. Also note that the Preview Render (Buttons window) now renders a bit differently. This was a horrid piece of antique code, using a totally incompatible way of rendering. Target is to fully re-use internal render code for previews. OK... that's it mostly. Now test!
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/BKE_library.h4
-rw-r--r--source/blender/blenkernel/BKE_main.h5
-rw-r--r--source/blender/blenkernel/BKE_material.h8
-rw-r--r--source/blender/blenkernel/BKE_node.h33
-rw-r--r--source/blender/blenkernel/intern/library.c40
-rw-r--r--source/blender/blenkernel/intern/material.c60
-rw-r--r--source/blender/blenkernel/intern/node.c668
-rw-r--r--source/blender/blenkernel/intern/node_shaders.c4
-rw-r--r--source/blender/blenloader/intern/readblenentry.c1
-rw-r--r--source/blender/blenloader/intern/readfile.c222
-rw-r--r--source/blender/blenloader/intern/writefile.c31
-rw-r--r--source/blender/include/BIF_resources.h4
-rw-r--r--source/blender/include/BSE_node.h2
-rw-r--r--source/blender/makesdna/DNA_ID.h1
-rw-r--r--source/blender/makesdna/DNA_node_types.h34
-rw-r--r--source/blender/makesdna/DNA_space_types.h4
-rw-r--r--source/blender/render/extern/include/render.h2
-rw-r--r--source/blender/render/intern/source/rendercore.c97
-rw-r--r--source/blender/renderconverter/intern/convertBlenderScene.c3
-rw-r--r--source/blender/src/blenderbuttons.c3079
-rw-r--r--source/blender/src/drawnode.c554
-rw-r--r--source/blender/src/editnode.c435
-rw-r--r--source/blender/src/filesel.c4
-rw-r--r--source/blender/src/previewrender.c73
-rw-r--r--source/blender/src/resources.c6
-rw-r--r--source/blender/src/toets.c2
-rw-r--r--source/blender/src/usiblender.c2
27 files changed, 3298 insertions, 2080 deletions
diff --git a/source/blender/blenkernel/BKE_library.h b/source/blender/blenkernel/BKE_library.h
index 8ec6f013ef9..ac438ec95bd 100644
--- a/source/blender/blenkernel/BKE_library.h
+++ b/source/blender/blenkernel/BKE_library.h
@@ -41,13 +41,13 @@ struct ID;
struct Main;
struct Library;
-void *alloc_libblock(struct ListBase *lb, short type, char *name);
+void *alloc_libblock(struct ListBase *lb, short type, const char *name);
void *copy_libblock(void *rt);
void id_lib_extern(struct ID *id);
void id_us_plus(struct ID *id);
-int new_id(struct ListBase *lb, struct ID *id, char *name);
+int new_id(struct ListBase *lb, struct ID *id, const char *name);
struct ListBase *wich_libbase(struct Main *mainlib, short type);
int set_listbasepointers(struct Main *main, struct ListBase **lb);
diff --git a/source/blender/blenkernel/BKE_main.h b/source/blender/blenkernel/BKE_main.h
index 9a37f91a023..1512ea28d4a 100644
--- a/source/blender/blenkernel/BKE_main.h
+++ b/source/blender/blenkernel/BKE_main.h
@@ -72,8 +72,9 @@ typedef struct Main {
ListBase text;
ListBase sound;
ListBase group;
- ListBase armature; /* NLA */
- ListBase action; /* NLA */
+ ListBase armature;
+ ListBase action;
+ ListBase nodetree;
} Main;
diff --git a/source/blender/blenkernel/BKE_material.h b/source/blender/blenkernel/BKE_material.h
index 16a320010ec..820e88fed11 100644
--- a/source/blender/blenkernel/BKE_material.h
+++ b/source/blender/blenkernel/BKE_material.h
@@ -56,11 +56,13 @@ ID *material_from(struct Object *ob, int act);
void assign_material(struct Object *ob, struct Material *ma, int act);
void new_material_to_objectdata(struct Object *ob);
-struct Material *get_active_matlayer(struct Material *ma);
-void init_render_material(struct Material *ma);
+struct Material *get_active_matlayer(struct Material *);
+void init_render_material(struct Material *);
void init_render_materials(void);
+void end_render_material(struct Material *);
+void end_render_materials(void);
-void automatname(struct Material *ma);
+void automatname(struct Material *);
void delete_material_index(void);
#ifdef __cplusplus
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index 13abbc263b9..35a973b99ff 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -54,7 +54,9 @@ typedef struct bNodeSocketType {
float min, max; /* default range for inputs */
/* after this line is used internal only */
- struct bNodeSocket *sock; /* to verify */
+ struct bNodeSocket *sock; /* used during verify_types */
+ struct bNodeSocket *internsock; /* group nodes, the internal socket counterpart */
+ int own_index; /* verify group nodes */
} bNodeSocketType;
@@ -71,7 +73,7 @@ typedef struct bNodeType {
void (*execfunc)(void *data, struct bNode *, struct bNodeStack **, struct bNodeStack **);
/* after this line is set on startup of blender */
- int (*butfunc)(struct uiBlock *, struct bNodeTree *, struct bNode *, rctf *);
+ int (*butfunc)(struct uiBlock *, struct bNodeTree *, struct bNode *, struct rctf *);
} bNodeType;
@@ -80,26 +82,34 @@ typedef struct bNodeType {
#define NODE_CLASS_OUTPUT 1
#define NODE_CLASS_GENERATOR 2
#define NODE_CLASS_OPERATOR 3
+#define NODE_CLASS_GROUP 4
/* ************** GENERIC API, TREES *************** */
+void ntreeVerifyTypes(struct bNodeTree *ntree);
+
struct bNodeTree *ntreeAddTree(int type);
void ntreeInitTypes(struct bNodeTree *ntree);
+void ntreeMakeOwnType(struct bNodeTree *ntree);
void ntreeFreeTree(struct bNodeTree *ntree);
struct bNodeTree *ntreeCopyTree(struct bNodeTree *ntree, int internal_select);
void ntreeSolveOrder(struct bNodeTree *ntree);
-void ntreeBeginExecTree(struct bNodeTree *ntree, int xsize, int ysize);
+void ntreeBeginExecTree(struct bNodeTree *ntree);
void ntreeExecTree(struct bNodeTree *ntree);
void ntreeEndExecTree(struct bNodeTree *ntree);
+
+void ntreeInitPreview(struct bNodeTree *, int xsize, int ysize);
void ntreeClearPixelTree(struct bNodeTree *, int, int);
/* ************** GENERIC API, NODES *************** */
+void nodeVerifyType(struct bNodeTree *ntree, struct bNode *node);
+
void nodeAddToPreview(struct bNode *, float *, int, int);
-struct bNode *nodeAddNodeType(struct bNodeTree *ntree, int type);
+struct bNode *nodeAddNodeType(struct bNodeTree *ntree, int type, struct bNodeTree *ngroup);
void nodeFreeNode(struct bNodeTree *ntree, struct bNode *node);
struct bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node);
@@ -114,6 +124,21 @@ struct bNode *nodeGetActive(struct bNodeTree *ntree);
struct bNode *nodeGetActiveID(struct bNodeTree *ntree, short idtype);
void nodeClearActiveID(struct bNodeTree *ntree, short idtype);
+/* ************** Groups ****************** */
+
+struct bNode *nodeMakeGroupFromSelected(struct bNodeTree *ntree);
+int nodeGroupUnGroup(struct bNodeTree *ntree, struct bNode *gnode);
+
+void nodeVerifyGroup(struct bNodeTree *ngroup);
+void nodeGroupSocketUseFlags(struct bNodeTree *ngroup);
+
+/* ************** COMMON NODES *************** */
+
+#define NODE_GROUP 2
+
+extern bNodeType node_group_typeinfo;
+
+
/* ************** SHADER NODES *************** */
struct ShadeInput;
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index 33e253aa232..4680a44d836 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -74,6 +74,7 @@
#include "DNA_armature_types.h"
#include "DNA_action_types.h"
#include "DNA_userdef_types.h"
+#include "DNA_node_types.h"
#include "BLI_blenlib.h"
#include "BLI_dynstr.h"
@@ -103,6 +104,8 @@
#include "BKE_lattice.h"
#include "BKE_armature.h"
#include "BKE_action.h"
+#include "BKE_node.h"
+
#include "BPI_script.h"
#define MAX_IDPUP 60 /* was 24 */
@@ -185,6 +188,8 @@ ListBase *wich_libbase(Main *mainlib, short type)
return &(mainlib->armature);
case ID_AC:
return &(mainlib->action);
+ case ID_NT:
+ return &(mainlib->nodetree);
}
return 0;
}
@@ -224,12 +229,13 @@ int set_listbasepointers(Main *main, ListBase **lb)
lb[20]= &(main->text);
lb[21]= &(main->sound);
lb[22]= &(main->group);
+ lb[23]= &(main->nodetree);
- lb[23]= samples;
- lb[24]= &(main->script);
- lb[25]= NULL;
+ lb[24]= samples;
+ lb[25]= &(main->script);
+ lb[26]= NULL;
- return 25;
+ return 26;
}
/* *********** ALLOC AND FREE *****************
@@ -244,7 +250,7 @@ void *alloc_libblock(ListBase *lb, type, name)
static ID *alloc_libblock_notest(short type)
{
- ID *id= 0;
+ ID *id= NULL;
switch( type ) {
case ID_SCE:
@@ -322,14 +328,17 @@ static ID *alloc_libblock_notest(short type)
case ID_AC:
id = MEM_callocN(sizeof(bAction), "action");
break;
+ case ID_NT:
+ id = MEM_callocN(sizeof(bNodeTree), "action");
+ break;
}
return id;
}
// used everywhere in blenkernel and text.c
-void *alloc_libblock(ListBase *lb, short type, char *name)
+void *alloc_libblock(ListBase *lb, short type, const char *name)
{
- ID *id= 0;
+ ID *id= NULL;
id= alloc_libblock_notest(type);
if(id) {
@@ -343,19 +352,13 @@ void *alloc_libblock(ListBase *lb, short type, char *name)
return id;
}
-/* GS reads the memory pointed at in a specific ordering. There are,
- * however two definitions for it. I have jotted them down here, both,
- * but I think the first one is actually used. The thing is that
- * big-endian systems might read this the wrong way round. OTOH, we
- * constructed the IDs that are read out with this macro explicitly as
- * well. I expect we'll sort it out soon... */
+/* GS reads the memory pointed at in a specific ordering.
+ only use this definition, makes little and big endian systems
+ work fine, in conjunction with MAKE_ID */
/* from blendef: */
#define GS(a) (*((short *)(a)))
-/* from misc_util: flip the bytes from x */
-/*#define GS(x) (((unsigned char *)(x))[0] << 8 | ((unsigned char *)(x))[1]) */
-
// used everywhere in blenkernel and text.c
void *copy_libblock(void *rt)
{
@@ -468,6 +471,9 @@ void free_libblock(ListBase *lb, void *idv)
case ID_AC:
free_action((bAction *)id);
break;
+ case ID_NT:
+ ntreeFreeTree((bNodeTree *)id);
+ break;
}
BLI_remlink(lb, id);
@@ -742,7 +748,7 @@ static void sort_alpha_id(ListBase *lb, ID *id)
}
-int new_id(ListBase *lb, ID *id, char *tname)
+int new_id(ListBase *lb, ID *id, const char *tname)
/* only for local blocks: external en indirect blocks already have a unique ID */
/* return 1: created a new name */
{
diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c
index 44420bc44b9..09921881438 100644
--- a/source/blender/blenkernel/intern/material.c
+++ b/source/blender/blenkernel/intern/material.c
@@ -87,9 +87,11 @@ void free_material(Material *ma)
BLI_freelistN(&ma->layers);
- if(ma->nodetree)
+ /* is no lib link block, but material extension */
+ if(ma->nodetree) {
ntreeFreeTree(ma->nodetree);
-
+ MEM_freeN(ma->nodetree);
+ }
}
void init_material(Material *ma)
@@ -600,7 +602,7 @@ Material *get_active_matlayer(Material *ma)
return ma;
}
-void init_render_material(Material *ma)
+static void do_init_render_material(Material *ma)
{
MTex *mtex;
int a, needuv=0;
@@ -655,24 +657,50 @@ void init_render_material(Material *ma)
ma->mode_l= ma->mode;
}
+void init_render_material(Material *mat)
+{
+ do_init_render_material(mat);
+
+ if(mat->nodetree && mat->use_nodes) {
+ bNode *node;
+
+ for(node=mat->nodetree->nodes.first; node; node= node->next) {
+ if(node->id && GS(node->id->name)==ID_MA) {
+ Material *ma= (Material *)node->id;
+ if(ma!=mat) {
+ do_init_render_material(ma);
+ mat->texco |= ma->texco;
+ mat->mode_l |= ma->mode_l;
+ }
+ }
+ }
+ ntreeBeginExecTree(mat->nodetree); /* has internal flag to detect it only does it once */
+ }
+}
+
void init_render_materials()
{
Material *ma;
- MaterialLayer *ml;
/* two steps, first initialize, then or the flags for layers */
- for(ma= G.main->mat.first; ma; ma= ma->id.next) {
- if(ma->id.us) init_render_material(ma);
- }
-
- for(ma= G.main->mat.first; ma; ma= ma->id.next) {
- for(ml= ma->layers.first; ml; ml= ml->next) {
- if(ml->mat) {
- ma->texco |= ml->mat->texco;
- ma->mode_l |= ml->mat->mode;
- }
- }
- }
+ for(ma= G.main->mat.first; ma; ma= ma->id.next)
+ if(ma->id.us)
+ init_render_material(ma);
+}
+
+/* only needed for nodes now */
+void end_render_material(Material *mat)
+{
+ if(mat && mat->nodetree && mat->use_nodes)
+ ntreeEndExecTree(mat->nodetree); /* has internal flag to detect it only does it once */
+}
+
+void end_render_materials(void)
+{
+ Material *ma;
+ for(ma= G.main->mat.first; ma; ma= ma->id.next)
+ if(ma->id.us)
+ end_render_material(ma);
}
/* ****************** */
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index b267ebb2a11..ab4d755c868 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -32,8 +32,12 @@
#include "DNA_ID.h"
#include "DNA_node_types.h"
+#include "DNA_material_types.h"
#include "BKE_blender.h"
+#include "BKE_global.h"
+#include "BKE_library.h"
+#include "BKE_main.h"
#include "BKE_node.h"
#include "BKE_texture.h"
#include "BKE_utildefines.h"
@@ -43,16 +47,27 @@
#include "MEM_guardedalloc.h"
-/* ************** Type stuff ********** */
+/* not very important, but the stack solver likes to know a maximum */
+#define MAX_SOCKET 64
-static bNodeType *nodeGetType(bNodeTree *ntree, int type)
+#pragma mark /* ************** Type stuff ********** */
+
+static bNodeType *node_get_type(bNodeTree *ntree, int type, bNodeTree *ngroup)
{
- bNodeType **typedefs= ntree->alltypes;
-
- while( *typedefs && (*typedefs)->type!=type)
- typedefs++;
-
- return *typedefs;
+ if(type==NODE_GROUP) {
+ if(ngroup && GS(ngroup->id.name)==ID_NT) {
+ return ngroup->owntype;
+ }
+ return NULL;
+ }
+ else {
+ bNodeType **typedefs= ntree->alltypes;
+
+ while( *typedefs && (*typedefs)->type!=type)
+ typedefs++;
+
+ return *typedefs;
+ }
}
void ntreeInitTypes(bNodeTree *ntree)
@@ -68,7 +83,7 @@ void ntreeInitTypes(bNodeTree *ntree)
for(node= ntree->nodes.first; node; node= next) {
next= node->next;
- node->typeinfo= nodeGetType(ntree, node->type);
+ node->typeinfo= node_get_type(ntree, node->type, (bNodeTree *)node->id);
if(node->typeinfo==NULL) {
printf("Error: Node type %s doesn't exist anymore, removed\n", node->name);
nodeFreeNode(ntree, node);
@@ -88,6 +103,9 @@ static bNodeSocket *node_add_socket_type(ListBase *lb, bNodeSocketType *stype)
else sock->limit= stype->limit;
sock->type= stype->type;
+ sock->to_index= stype->own_index;
+ sock->tosock= stype->internsock;
+
sock->ns.vec[0]= stype->val1;
sock->ns.vec[1]= stype->val2;
sock->ns.vec[2]= stype->val3;
@@ -119,14 +137,19 @@ static bNodeSocket *verify_socket(ListBase *lb, bNodeSocketType *stype)
bNodeSocket *sock;
for(sock= lb->first; sock; sock= sock->next) {
- if(strncmp(sock->name, stype->name, NODE_MAXSTR)==0)
- break;
+ /* both indices are zero for non-groups, otherwise it's a unique index */
+ if(sock->to_index==stype->own_index)
+ if(strncmp(sock->name, stype->name, NODE_MAXSTR)==0)
+ break;
}
if(sock) {
sock->type= stype->type; /* in future, read this from tydefs! */
if(stype->limit==0) sock->limit= 0xFFF;
else sock->limit= stype->limit;
+ sock->tosock= stype->internsock;
+
BLI_remlink(lb, sock);
+
return sock;
}
else {
@@ -162,37 +185,482 @@ static void verify_socket_list(bNodeTree *ntree, ListBase *lb, bNodeSocketType *
}
}
+void nodeVerifyType(bNodeTree *ntree, bNode *node)
+{
+ bNodeType *ntype= node->typeinfo;
+
+ if(ntype) {
+ /* might add some other verify stuff here */
+
+ verify_socket_list(ntree, &node->inputs, ntype->inputs);
+ verify_socket_list(ntree, &node->outputs, ntype->outputs);
+ }
+}
+
void ntreeVerifyTypes(bNodeTree *ntree)
{
bNode *node;
- bNodeType *ntype;
if((ntree->init & NTREE_TYPE_INIT)==0)
ntreeInitTypes(ntree);
/* check inputs and outputs, and remove or insert them */
+ for(node= ntree->nodes.first; node; node= node->next)
+ nodeVerifyType(ntree, node);
+
+}
+
+#pragma mark /* ************** Group stuff ********** */
+
+/* prototype */
+static void node_group_exec_func(void *data, bNode *node, bNodeStack **in, bNodeStack **out);
+
+bNodeType node_group_typeinfo= {
+ /* type code */ NODE_GROUP,
+ /* name */ "Group",
+ /* width+range */ 120, 60, 200,
+ /* class+opts */ NODE_CLASS_GROUP, NODE_OPTIONS,
+ /* input sock */ NULL,
+ /* output sock */ NULL,
+ /* storage */ "",
+ /* execfunc */ node_group_exec_func,
+
+};
+
+/* tag internal sockets */
+static void group_tag_internal_sockets(bNodeTree *ngroup)
+{
+ bNode *node;
+ bNodeSocket *sock;
+ bNodeLink *link;
+
+ /* clear intern tag, but check already for hidden sockets */
+ for(node= ngroup->nodes.first; node; node= node->next) {
+ for(sock= node->inputs.first; sock; sock= sock->next)
+ sock->intern= sock->flag & SOCK_HIDDEN;
+ for(sock= node->outputs.first; sock; sock= sock->next)
+ sock->intern= sock->flag & SOCK_HIDDEN;
+ }
+ /* set tag */
+ for(link= ngroup->links.first; link; link= link->next) {
+ link->fromsock->intern= 1;
+ link->tosock->intern= 1;
+ }
+
+ /* remove link pointer to external links (only happens on create group) */
+ for(node= ngroup->nodes.first; node; node= node->next) {
+ for(sock= node->inputs.first; sock; sock= sock->next)
+ if(sock->intern==0)
+ sock->link= NULL;
+ }
+
+ /* set all intern sockets to own_index zero, makes sure that later use won't mixup */
+ for(node= ngroup->nodes.first; node; node= node->next) {
+ for(sock= node->inputs.first; sock; sock= sock->next)
+ if(sock->intern)
+ sock->own_index= 0;
+ for(sock= node->outputs.first; sock; sock= sock->next)
+ if(sock->intern)
+ sock->own_index= 0;
+ }
+}
+
+/* after editing group, new sockets are zero */
+/* this routine ensures unique identifiers for zero sockets that are exposed */
+static void group_verify_own_indices(bNodeTree *ngroup)
+{
+ bNode *node;
+ bNodeSocket *sock;
+
+ for(node= ngroup->nodes.first; node; node= node->next) {
+ for(sock= node->inputs.first; sock; sock= sock->next)
+ if(sock->own_index==0 && sock->intern==0)
+ sock->own_index= ++(ngroup->cur_index);
+ for(sock= node->outputs.first; sock; sock= sock->next)
+ if(sock->own_index==0 && sock->intern==0)
+ sock->own_index= ++(ngroup->cur_index);
+ }
+ printf("internal index %d\n", ngroup->cur_index);
+}
+
+
+/* nodetrees can be used as groups, so we need typeinfo structs generated */
+void ntreeMakeOwnType(bNodeTree *ngroup)
+{
+ bNode *node;
+ bNodeSocket *sock;
+ int totin= 0, totout=0, a;
+
+ /* tags socket when internal linked */
+ group_tag_internal_sockets(ngroup);
+
+ /* ensure all sockets have own unique id */
+ group_verify_own_indices(ngroup);
+
+ /* counting stats */
+ for(node= ngroup->nodes.first; node; node= node->next) {
+ if(node->type==NODE_GROUP)
+ break;
+ for(sock= node->inputs.first; sock; sock= sock->next)
+ if(sock->intern==0)
+ totin++;
+ for(sock= node->outputs.first; sock; sock= sock->next)
+ if(sock->intern==0)
+ totout++;
+ }
+ /* debug: nodetrees in nodetrees not handled yet */
+ if(node) {
+ printf("group in group, not supported yet\n");
+ return;
+ }
+
+ /* free own type struct */
+ if(ngroup->owntype) {
+ if(ngroup->owntype->inputs)
+ MEM_freeN(ngroup->owntype->inputs);
+ if(ngroup->owntype->outputs)
+ MEM_freeN(ngroup->owntype->outputs);
+ MEM_freeN(ngroup->owntype);
+ }
+
+ /* make own type struct */
+ ngroup->owntype= MEM_mallocN(sizeof(bNodeType), "group type");
+ *ngroup->owntype= node_group_typeinfo;
+
+ /* input type arrays */
+ if(totin) {
+ bNodeSocketType *stype;
+ bNodeSocketType *inputs= MEM_mallocN(sizeof(bNodeSocketType)*(totin+1), "bNodeSocketType");
+ a= 0;
+
+ for(node= ngroup->nodes.first; node; node= node->next) {
+ /* nodes are presumed fully verified, stype and socket list are in sync */
+ stype= node->typeinfo->inputs;
+ for(sock= node->inputs.first; sock; sock= sock->next, stype++) {
+ if(sock->intern==0) {
+ /* debug only print */
+ if(stype==NULL || stype->type==-1) printf("group verification error %s\n", ngroup->id.name);
+
+ inputs[a]= *stype;
+ inputs[a].own_index= sock->own_index;
+ inputs[a].internsock= sock;
+ a++;
+ }
+ }
+ }
+ inputs[a].type= -1; /* terminator code */
+ ngroup->owntype->inputs= inputs;
+ }
+
+ /* output type arrays */
+ if(totout) {
+ bNodeSocketType *stype;
+ bNodeSocketType *outputs= MEM_mallocN(sizeof(bNodeSocketType)*(totout+1), "bNodeSocketType");
+ a= 0;
+
+ for(node= ngroup->nodes.first; node; node= node->next) {
+ /* nodes are presumed fully verified, stype and socket list are in sync */
+ stype= node->typeinfo->outputs;
+ for(sock= node->outputs.first; sock; sock= sock->next, stype++) {
+ if(sock->intern==0) {
+ /* debug only print */
+ if(stype==NULL || stype->type==-1) printf("group verification error %s\n", ngroup->id.name);
+
+ outputs[a]= *stype;
+ outputs[a].own_index= sock->own_index;
+ outputs[a].internsock= sock;
+ a++;
+ }
+ }
+ }
+ outputs[a].type= -1; /* terminator code */
+ ngroup->owntype->outputs= outputs;
+ }
+
+ /* voila, the nodetree has the full definition for generating group-node instances! */
+}
+
+
+static bNodeSocket *groupnode_find_tosock(bNode *gnode, int index)
+{
+ bNodeSocket *sock;
+
+ for(sock= gnode->inputs.first; sock; sock= sock->next)
+ if(sock->to_index==index)
+ return sock;
+ return NULL;
+}
+
+static bNodeSocket *groupnode_find_fromsock(bNode *gnode, int index)
+{
+ bNodeSocket *sock;
+
+ for(sock= gnode->outputs.first; sock; sock= sock->next)
+ if(sock->to_index==index)
+ return sock;
+ return NULL;
+}
+
+bNode *nodeMakeGroupFromSelected(bNodeTree *ntree)
+{
+ bNodeLink *link, *linkn;
+ bNode *node, *gnode, *nextn;
+ bNodeTree *ngroup;
+ float min[2], max[2];
+ int totnode=0;
+
+ INIT_MINMAX2(min, max);
+
+ /* is there something to group? also do some clearing */
for(node= ntree->nodes.first; node; node= node->next) {
- ntype= node->typeinfo;
- if(ntype) {
- /* might add some other verify stuff here */
-
- verify_socket_list(ntree, &node->inputs, ntype->inputs);
- verify_socket_list(ntree, &node->outputs, ntype->outputs);
+ if(node->flag & NODE_SELECT) {
+ /* no groups in groups */
+ if(node->type==NODE_GROUP)
+ return NULL;
+ DO_MINMAX2( (&node->locx), min, max);
+ totnode++;
+ }
+ node->done= 0;
+ }
+ if(totnode==0) return NULL;
+
+ /* check if all connections are OK, no unselected node has both
+ inputs and outputs to a selection */
+ for(link= ntree->links.first; link; link= link->next) {
+ if(link->fromnode->flag & NODE_SELECT)
+ link->tonode->done |= 1;
+ if(link->tonode->flag & NODE_SELECT)
+ link->fromnode->done |= 2;
+ }
+
+ for(node= ntree->nodes.first; node; node= node->next) {
+ if((node->flag & NODE_SELECT)==0)
+ if(node->done==3)
+ break;
+ }
+ if(node)
+ return NULL;
+
+ /* OK! new nodetree */
+ ngroup= alloc_libblock(&G.main->nodetree, ID_NT, "NodeGroup");
+ ngroup->type= ntree->type;
+ ngroup->alltypes= ntree->alltypes;
+
+ /* move nodes over */
+ for(node= ntree->nodes.first; node; node= nextn) {
+ nextn= node->next;
+ if(node->flag & NODE_SELECT) {
+ BLI_remlink(&ntree->nodes, node);
+ BLI_addtail(&ngroup->nodes, node);
+ node->locx-= 0.5f*(min[0]+max[0]);
+ node->locy-= 0.5f*(min[1]+max[1]);
+ }
+ }
+
+ /* move links over */
+ for(link= ntree->links.first; link; link= linkn) {
+ linkn= link->next;
+ if(link->fromnode->flag & link->tonode->flag & NODE_SELECT) {
+ BLI_remlink(&ntree->links, link);
+ BLI_addtail(&ngroup->links, link);
}
}
+
+ /* now we can make own group typeinfo */
+ ntreeMakeOwnType(ngroup);
+
+ /* make group node */
+ gnode= nodeAddNodeType(ntree, NODE_GROUP, ngroup);
+ gnode->locx= 0.5f*(min[0]+max[0]);
+ gnode->locy= 0.5f*(min[1]+max[1]);
+
+ /* relink external sockets */
+ for(link= ntree->links.first; link; link= link->next) {
+ if(link->tonode->flag & NODE_SELECT) {
+ link->tonode= gnode;
+ link->tosock= groupnode_find_tosock(gnode, link->tosock->own_index);
+ if(link->tosock==NULL) printf("Bad!\n");
+ }
+ else if(link->fromnode->flag & NODE_SELECT) {
+ link->fromnode= gnode;
+ link->fromsock= groupnode_find_fromsock(gnode, link->fromsock->own_index);
+ if(link->fromsock==NULL) printf("Bad!\n");
+ }
+ }
+
+ return gnode;
}
+/* note: ungroup: group_indices zero! */
+/* here's a nasty little one, need to check users... */
+/* should become callbackable... */
+void nodeVerifyGroup(bNodeTree *ngroup)
+{
+ Material *ma;
+
+ /* group changed, so we rebuild the type definition */
+ ntreeMakeOwnType(ngroup);
+
+ if(ngroup->type==NTREE_SHADER) {
+ for(ma= G.main->mat.first; ma; ma= ma->id.next) {
+ if(ma->nodetree) {
+ bNode *node;
+
+ /* find if group is in tree */
+ for(node= ma->nodetree->nodes.first; node; node= node->next)
+ if(node->id == (ID *)ngroup)
+ break;
+
+ if(node) {
+ /* set all type pointers OK */
+ ntreeInitTypes(ma->nodetree);
+
+ for(node= ma->nodetree->nodes.first; node; node= node->next)
+ if(node->id == (ID *)ngroup)
+ nodeVerifyType(ma->nodetree, node);
+ }
+ }
+ }
+ }
+}
-/* ************** Add stuff ********** */
+/* also to check all users... */
+/* should become callbackable... */
+void nodeGroupSocketUseFlags(bNodeTree *ngroup)
+{
+ bNode *node;
+ bNodeSocket *sock;
+ Material *ma;
-/* not very important, but the stack solver likes to know a maximum */
-#define MAX_SOCKET 64
+ /* clear flags */
+ for(node= ngroup->nodes.first; node; node= node->next) {
+ for(sock= node->inputs.first; sock; sock= sock->next)
+ sock->flag &= ~SOCK_IN_USE;
+ for(sock= node->outputs.first; sock; sock= sock->next)
+ sock->flag &= ~SOCK_IN_USE;
+ }
+
+ /* tag all thats in use */
+ if(ngroup->type==NTREE_SHADER) {
+ for(ma= G.main->mat.first; ma; ma= ma->id.next) {
+ if(ma->nodetree) {
+ for(node= ma->nodetree->nodes.first; node; node= node->next) {
+ if(node->id==(ID *)ngroup) {
+ for(sock= node->inputs.first; sock; sock= sock->next)
+ if(sock->link)
+ if(sock->tosock)
+ sock->tosock->flag |= SOCK_IN_USE;
+ for(sock= node->outputs.first; sock; sock= sock->next)
+ if(nodeCountSocketLinks(ma->nodetree, sock))
+ if(sock->tosock)
+ sock->tosock->flag |= SOCK_IN_USE;
+ }
+ }
+ }
+ }
+ }
+}
+
+static void find_node_with_socket(bNodeTree *ntree, bNodeSocket *sock, bNode **nodep, int *sockindex)
+{
+ bNode *node;
+ bNodeSocket *tsock;
+ int index;
+
+ for(node= ntree->nodes.first; node; node= node->next) {
+ for(index=0, tsock= node->inputs.first; tsock; tsock= tsock->next, index++)
+ if(tsock==sock)
+ break;
+ if(tsock)
+ break;
+ for(index=0, tsock= node->outputs.first; tsock; tsock= tsock->next, index++)
+ if(tsock==sock)
+ break;
+ if(tsock)
+ break;
+ }
+ if(node) {
+ *nodep= node;
+ *sockindex= index;
+ }
+ else {
+ *nodep= NULL;
+ }
+}
-bNode *nodeAddNodeType(bNodeTree *ntree, int type)
+/* returns 1 if its OK */
+int nodeGroupUnGroup(bNodeTree *ntree, bNode *gnode)
+{
+ bNodeLink *link, *linkn;
+ bNode *node, *nextn;
+ bNodeTree *ngroup, *wgroup;
+ int index;
+
+ ngroup= (bNodeTree *)gnode->id;
+ if(ngroup==NULL) return 0;
+
+ /* clear new pointers, set in copytree */
+ for(node= ntree->nodes.first; node; node= node->next)
+ node->new= NULL;
+
+ wgroup= ntreeCopyTree(ngroup, 0);
+
+ /* add the nodes into the ntree */
+ for(node= wgroup->nodes.first; node; node= nextn) {
+ nextn= node->next;
+ BLI_remlink(&wgroup->nodes, node);
+ BLI_addtail(&ntree->nodes, node);
+ node->locx+= gnode->locx;
+ node->locy+= gnode->locy;
+ node->flag |= NODE_SELECT;
+ }
+ /* and the internal links */
+ for(link= wgroup->links.first; link; link= linkn) {
+ linkn= link->next;
+ BLI_remlink(&wgroup->links, link);
+ BLI_addtail(&ntree->links, link);
+ }
+
+ /* restore links to and from the gnode */
+ for(link= ntree->links.first; link; link= link->next) {
+ if(link->tonode==gnode) {
+ /* link->tosock->tosock is on the node we look for */
+ find_node_with_socket(ngroup, link->tosock->tosock, &nextn, &index);
+ if(nextn==NULL) printf("wrong stuff!\n");
+ else if(nextn->new==NULL) printf("wrong stuff too!\n");
+ else {
+ link->tonode= nextn->new;
+ link->tosock= BLI_findlink(&link->tonode->inputs, index);
+ }
+ }
+ else if(link->fromnode==gnode) {
+ /* link->fromsock->tosock is on the node we look for */
+ find_node_with_socket(ngroup, link->fromsock->tosock, &nextn, &index);
+ if(nextn==NULL) printf("1 wrong stuff!\n");
+ else if(nextn->new==NULL) printf("1 wrong stuff too!\n");
+ else {
+ link->fromnode= nextn->new;
+ link->fromsock= BLI_findlink(&link->fromnode->outputs, index);
+ }
+ }
+ }
+
+ /* remove the gnode & work tree */
+ ntreeFreeTree(wgroup);
+ MEM_freeN(wgroup);
+
+ nodeFreeNode(ntree, gnode);
+
+ return 1;
+}
+
+#pragma mark /* ************** Add stuff ********** */
+
+bNode *nodeAddNodeType(bNodeTree *ntree, int type, bNodeTree *ngroup)
{
bNode *node;
- bNodeType *ntype= nodeGetType(ntree, type);
+ bNodeType *ntype= node_get_type(ntree, type, ngroup);
bNodeSocketType *stype;
node= MEM_callocN(sizeof(bNode), "new node");
@@ -205,6 +673,9 @@ bNode *nodeAddNodeType(bNodeTree *ntree, int type)
node->width= ntype->width;
node->miniwidth= 15.0f; /* small value only, allows print of first chars */
+ if(type==NODE_GROUP)
+ node->id= (ID *)ngroup;
+
if(ntype->inputs) {
stype= ntype->inputs;
while(stype->type != -1) {
@@ -236,12 +707,19 @@ bNode *nodeAddNodeType(bNodeTree *ntree, int type)
bNode *nodeCopyNode(struct bNodeTree *ntree, struct bNode *node)
{
bNode *nnode= MEM_callocN(sizeof(bNode), "dupli node");
-
+ bNodeSocket *sock;
+
*nnode= *node;
BLI_addtail(&ntree->nodes, nnode);
duplicatelist(&nnode->inputs, &node->inputs);
+ for(sock= nnode->inputs.first; sock; sock= sock->next)
+ sock->own_index= 0;
+
duplicatelist(&nnode->outputs, &node->outputs);
+ for(sock= nnode->outputs.first; sock; sock= sock->next)
+ sock->own_index= 0;
+
if(nnode->id)
nnode->id->us++;
@@ -286,7 +764,7 @@ bNodeTree *ntreeAddTree(int type)
return ntree;
}
-/* ************** Free stuff ********** */
+#pragma mark /* ************** Free stuff ********** */
/* goes over entire tree */
static void node_unlink_node(bNodeTree *ntree, bNode *node)
@@ -340,6 +818,7 @@ void nodeFreeNode(bNodeTree *ntree, bNode *node)
MEM_freeN(node);
}
+/* do not free ntree itself here, free_libblock calls this function too */
void ntreeFreeTree(bNodeTree *ntree)
{
bNode *node, *next;
@@ -350,7 +829,13 @@ void ntreeFreeTree(bNodeTree *ntree)
}
BLI_freelistN(&ntree->links);
- MEM_freeN(ntree);
+ if(ntree->owntype) {
+ if(ntree->owntype->inputs)
+ MEM_freeN(ntree->owntype->inputs);
+ if(ntree->owntype->outputs)
+ MEM_freeN(ntree->owntype->outputs);
+ MEM_freeN(ntree->owntype);
+ }
}
bNodeTree *ntreeCopyTree(bNodeTree *ntree, int internal_select)
@@ -404,10 +889,21 @@ bNodeTree *ntreeCopyTree(bNodeTree *ntree, int internal_select)
nlink->tosock= BLI_findlink(&link->tonode->new->inputs, a);
}
}
+
+ /* own type definition for group usage */
+ if(internal_select==0) {
+ if(ntree->owntype) {
+ newtree->owntype= MEM_dupallocN(ntree->owntype);
+ if(ntree->owntype->inputs)
+ newtree->owntype->inputs= MEM_dupallocN(ntree->owntype->inputs);
+ if(ntree->owntype->outputs)
+ newtree->owntype->outputs= MEM_dupallocN(ntree->owntype->outputs);
+ }
+ }
return newtree;
}
-/* ************ find stuff *************** */
+#pragma mark /* ************ find stuff *************** */
bNodeLink *nodeFindLink(bNodeTree *ntree, bNodeSocket *from, bNodeSocket *to)
{
@@ -492,7 +988,7 @@ void nodeSetActive(bNodeTree *ntree, bNode *node)
node->flag |= NODE_ACTIVE_ID;
}
-/* ************** dependency stuff *********** */
+#pragma mark /* ************** dependency stuff *********** */
/* node is guaranteed to be not checked before */
static int node_recurs_check(bNode *node, bNode ***nsort, int level)
@@ -592,7 +1088,7 @@ void ntreeSolveOrder(bNodeTree *ntree)
}
-/* *************** preview *********** */
+#pragma mark /* *************** preview *********** */
/* if node->preview, then we assume the rect to exist */
@@ -612,6 +1108,7 @@ static void nodeInitPreview(bNode *node, int xsize, int ysize)
if(node->preview==NULL) {
node->preview= MEM_callocN(sizeof(bNodePreview), "node preview");
+ printf("added preview %s\n", node->name);
}
if(node->preview->rect==NULL) {
node->preview->rect= MEM_callocN(4*xsize + xsize*ysize*sizeof(float)*4, "node preview rect");
@@ -620,6 +1117,16 @@ static void nodeInitPreview(bNode *node, int xsize, int ysize)
}
}
+void ntreeInitPreview(bNodeTree *ntree, int xsize, int ysize)
+{
+ bNode *node;
+
+ for(node= ntree->nodes.first; node; node= node->next) {
+ if(node->typeinfo->flag & NODE_PREVIEW) /* hrms, check for closed nodes? */
+ nodeInitPreview(node, xsize, ysize);
+ }
+}
+
void nodeAddToPreview(bNode *node, float *col, int x, int y)
{
bNodePreview *preview= node->preview;
@@ -637,27 +1144,95 @@ void nodeAddToPreview(bNode *node, float *col, int x, int y)
-/* ******************* executing ************* */
+#pragma mark /* ******************* executing ************* */
+
+/* see notes at ntreeBeginExecTree */
+static void group_node_get_stack(bNode *node, bNodeStack *stack, bNodeStack **in, bNodeStack **out, bNodeStack **gin, bNodeStack **gout)
+{
+ bNodeSocket *sock;
+
+ /* build pointer stack */
+ for(sock= node->inputs.first; sock; sock= sock->next) {
+ if(sock->intern) {
+ /* yep, intern can have link or is hidden socket */
+ if(sock->link)
+ *(in++)= stack + sock->link->fromsock->stack_index;
+ else
+ *(in++)= &sock->ns;
+ }
+ else
+ *(in++)= gin[sock->stack_index_ext];
+ }
+
+ for(sock= node->outputs.first; sock; sock= sock->next) {
+ if(sock->intern)
+ *(out++)= stack + sock->stack_index;
+ else
+ *(out++)= gout[sock->stack_index_ext];
+ }
+}
+
+static void node_group_exec_func(void *data, bNode *gnode, bNodeStack **in, bNodeStack **out)
+{
+ bNode *node;
+ bNodeTree *ntree= (bNodeTree *)gnode->id;
+ bNodeStack *nsin[MAX_SOCKET]; /* arbitrary... watch this */
+ bNodeStack *nsout[MAX_SOCKET]; /* arbitrary... watch this */
+
+ if(ntree==NULL) return;
+
+ if(ntree->init & NTREE_EXEC_INIT) {
+ for(node= ntree->nodes.first; node; node= node->next) {
+ if(node->typeinfo->execfunc) {
+ group_node_get_stack(node, ntree->stack, nsin, nsout, in, out);
+ node->typeinfo->execfunc(data, node, nsin, nsout);
+ }
+ }
+ }
+}
+/* stack indices make sure all nodes only write in allocated data, for making it thread safe */
+/* per tree (and per group) unique indices are created */
+/* the index_ext we need to be able to map from groups to the group-node own stack */
-void ntreeBeginExecTree(bNodeTree *ntree, int xsize, int ysize)
+void ntreeBeginExecTree(bNodeTree *ntree)
{
bNode *node;
bNodeSocket *sock;
- int index= 0;
+ int index= 0, index_in= 0, index_out= 0;
if((ntree->init & NTREE_TYPE_INIT)==0)
ntreeInitTypes(ntree);
+ if(ntree->init & NTREE_EXEC_INIT)
+ return;
/* create indices for stack, check preview */
for(node= ntree->nodes.first; node; node= node->next) {
+
+ for(sock= node->inputs.first; sock; sock= sock->next) {
+ if(sock->intern==0)
+ sock->stack_index_ext= index_in++;
+ }
+
for(sock= node->outputs.first; sock; sock= sock->next) {
sock->stack_index= index++;
+ if(sock->intern==0)
+ sock->stack_index_ext= index_out++;
}
- if(node->typeinfo->flag & NODE_PREVIEW) /* hrms, check for closed nodes? */
- nodeInitPreview(node, xsize, ysize);
-
+ if(node->type==NODE_GROUP) {
+ if(node->id) {
+
+ ntreeBeginExecTree((bNodeTree *)node->id);
+
+ /* copy internal data from internal nodes to own input sockets */
+ for(sock= node->inputs.first; sock; sock= sock->next) {
+ if(sock->tosock) {
+ sock->ns= sock->tosock->ns;
+ }
+ }
+ }
+ }
}
if(index) {
bNodeStack *ns;
@@ -672,12 +1247,24 @@ void ntreeBeginExecTree(bNodeTree *ntree, int xsize, int ysize)
void ntreeEndExecTree(bNodeTree *ntree)
{
- if(ntree->stack) {
- MEM_freeN(ntree->stack);
- ntree->stack= NULL;
- }
+ bNode *node;
+
+ if(ntree->init & NTREE_EXEC_INIT) {
+ if(ntree->stack) {
+ MEM_freeN(ntree->stack);
+ ntree->stack= NULL;
+ }
- ntree->init &= ~NTREE_EXEC_INIT;
+ ntree->init &= ~NTREE_EXEC_INIT;
+
+ for(node= ntree->nodes.first; node; node= node->next) {
+ if(node->type==NODE_GROUP) {
+ if(node->id) {
+ ntreeEndExecTree((bNodeTree *)node->id);
+ }
+ }
+ }
+ }
}
static void node_get_stack(bNode *node, bNodeStack *stack, bNodeStack **in, bNodeStack **out)
@@ -706,7 +1293,6 @@ void ntreeExecTree(bNodeTree *ntree)
/* only when initialized */
if(ntree->init & NTREE_EXEC_INIT) {
-
for(node= ntree->nodes.first; node; node= node->next) {
if(node->typeinfo->execfunc) {
node_get_stack(node, ntree->stack, nsin, nsout);
diff --git a/source/blender/blenkernel/intern/node_shaders.c b/source/blender/blenkernel/intern/node_shaders.c
index 7f50ef459dc..eac1083e649 100644
--- a/source/blender/blenkernel/intern/node_shaders.c
+++ b/source/blender/blenkernel/intern/node_shaders.c
@@ -209,7 +209,8 @@ static void node_shader_exec_normal(void *data, bNode *node, bNodeStack **in, bN
/* stack order output: normal, value */
VECCOPY(out[0]->vec, sock->ns.vec);
- out[1]->vec[0]= INPR(out[0]->vec, in[0]->vec);
+ /* render normals point inside... the widget points outside */
+ out[1]->vec[0]= -INPR(out[0]->vec, in[0]->vec);
}
/* **************** value node ************ */
@@ -523,6 +524,7 @@ static bNodeType sh_node_rgbtobw= {
/* ****************** types array for all shaders ****************** */
bNodeType *node_all_shaders[]= {
+ &node_group_typeinfo,
&sh_node_output,
&sh_node_material,
&sh_node_value,
diff --git a/source/blender/blenloader/intern/readblenentry.c b/source/blender/blenloader/intern/readblenentry.c
index 8c7fd8de053..faff6b0b840 100644
--- a/source/blender/blenloader/intern/readblenentry.c
+++ b/source/blender/blenloader/intern/readblenentry.c
@@ -95,6 +95,7 @@ static IDType idtypes[]= {
{ ID_MA, "Material", IDTYPE_FLAGS_ISLINKABLE},
{ ID_MB, "Metaball", IDTYPE_FLAGS_ISLINKABLE},
{ ID_ME, "Mesh", IDTYPE_FLAGS_ISLINKABLE},
+ { ID_NT, "NodeTree", IDTYPE_FLAGS_ISLINKABLE},
{ ID_OB, "Object", IDTYPE_FLAGS_ISLINKABLE},
{ ID_SAMPLE, "Sample", 0},
{ ID_SCE, "Scene", IDTYPE_FLAGS_ISLINKABLE},
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 1ea14837c06..9c53766cfc4 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -1208,8 +1208,8 @@ static void test_pointer_array(FileData *fd, void **mat)
/* ************ READ NODE TREE *************** */
-/* ntree is not NULL */
-static void lib_link_nodetree(FileData *fd, ID *id, bNodeTree *ntree)
+/* singe node tree, ntree is not NULL */
+static void lib_link_ntree(FileData *fd, ID *id, bNodeTree *ntree)
{
bNode *node;
@@ -1217,49 +1217,74 @@ static void lib_link_nodetree(FileData *fd, ID *id, bNodeTree *ntree)
node->id= newlibadr_us(fd, id->lib, node->id);
}
-static bNodeTree *direct_link_nodetree(FileData *fd, bNodeTree *ntree)
+/* library linking after fileread */
+static void lib_link_nodetree(FileData *fd, Main *main)
{
- /* note: writing and reading goes in sync, for speed */
- if(ntree) {
- ntree= newdataadr(fd, ntree);
-
- if(ntree) {
- bNode *node;
- bNodeSocket *sock;
- bNodeLink *link;
-
- ntree->init= 0; /* to set callbacks */
- ntree->data= NULL; /* safety only */
-
- link_list(fd, &ntree->nodes);
- for(node= ntree->nodes.first; node; node= node->next) {
- node->storage= newdataadr(fd, node->storage);
- link_list(fd, &node->inputs);
- link_list(fd, &node->outputs);
- }
- link_list(fd, &ntree->links);
+ Material *ma;
+ bNodeTree *ntree;
+ bNode *node;
+
+ /* in multiple steps, first link ID pointers */
+ for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) {
+ if(ntree->id.flag & LIB_NEEDLINK) {
+ lib_link_ntree(fd, &ntree->id, ntree);
+ }
+ }
+
+ /* now create the own typeinfo structs an verify nodes */
+ /* here we still assume no groups in groups */
+ for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) {
+ if(ntree->id.flag & LIB_NEEDLINK) {
+ ntree->id.flag -= LIB_NEEDLINK;
- /* and we connect the rest */
- for(node= ntree->nodes.first; node; node= node->next) {
- node->preview= NULL;
- node->block= NULL;
- node->lasty= 0;
- for(sock= node->inputs.first; sock; sock= sock->next)
- sock->link= newdataadr(fd, sock->link);
- }
- for(link= ntree->links.first; link; link= link->next) {
- link->fromnode= newdataadr(fd, link->fromnode);
- link->tonode= newdataadr(fd, link->tonode);
- link->fromsock= newdataadr(fd, link->fromsock);
- link->tosock= newdataadr(fd, link->tosock);
- }
- /* right after read file, the save-undo will need it */
- /* verify also does a full type checking. This is relative slow... so we
- might move this later to the do_versions, and put ntreeInitTypes() only here */
- ntreeVerifyTypes(ntree);
+ ntreeVerifyTypes(ntree); /* internal nodes, no groups! */
+ ntreeMakeOwnType(ntree); /* for group usage */
}
}
- return ntree;
+
+ /* now verify all types in material trees, groups are set OK now */
+ for(ma= main->mat.first; ma; ma= ma->id.next) {
+ if(ma->nodetree)
+ ntreeVerifyTypes(ma->nodetree);
+ }
+}
+
+/* ntree itself has been read! */
+static void direct_link_nodetree(FileData *fd, bNodeTree *ntree)
+{
+ /* note: writing and reading goes in sync, for speed */
+ bNode *node;
+ bNodeSocket *sock;
+ bNodeLink *link;
+
+ ntree->init= 0; /* to set callbacks */
+ ntree->data= NULL; /* safety only */
+ ntree->owntype= NULL;
+
+ link_list(fd, &ntree->nodes);
+ for(node= ntree->nodes.first; node; node= node->next) {
+ node->storage= newdataadr(fd, node->storage);
+ link_list(fd, &node->inputs);
+ link_list(fd, &node->outputs);
+ }
+ link_list(fd, &ntree->links);
+
+ /* and we connect the rest */
+ for(node= ntree->nodes.first; node; node= node->next) {
+ node->preview= NULL;
+ node->block= NULL;
+ node->lasty= 0;
+ for(sock= node->inputs.first; sock; sock= sock->next)
+ sock->link= newdataadr(fd, sock->link);
+ }
+ for(link= ntree->links.first; link; link= link->next) {
+ link->fromnode= newdataadr(fd, link->fromnode);
+ link->tonode= newdataadr(fd, link->tonode);
+ link->fromsock= newdataadr(fd, link->fromsock);
+ link->tosock= newdataadr(fd, link->tosock);
+ }
+
+ /* type verification is in lib-link */
}
/* ************ READ PACKEDFILE *************** */
@@ -2064,7 +2089,7 @@ static void lib_link_material(FileData *fd, Main *main)
ml->mat= newlibadr_us(fd, ma->id.lib, ml->mat);
if(ma->nodetree)
- lib_link_nodetree(fd, &ma->id, ma->nodetree);
+ lib_link_ntree(fd, &ma->id, ma->nodetree);
ma->id.flag -= LIB_NEEDLINK;
}
@@ -2087,7 +2112,9 @@ static void direct_link_material(FileData *fd, Material *ma)
link_list(fd, &ma->layers);
- ma->nodetree= direct_link_nodetree(fd, ma->nodetree);
+ ma->nodetree= newdataadr(fd, ma->nodetree);
+ if(ma->nodetree)
+ direct_link_nodetree(fd, ma->nodetree);
}
/* ************ READ MESH ***************** */
@@ -3058,7 +3085,7 @@ void lib_link_screen_restore(Main *newmain, Scene *curscene)
else if(sl->spacetype==SPACE_NODE) {
SpaceNode *snode= (SpaceNode *)sl;
- snode->nodetree= NULL;
+ snode->nodetree= snode->edittree= NULL;
snode->flag |= SNODE_DO_PREVIEW;
}
}
@@ -3153,7 +3180,7 @@ static void direct_link_screen(FileData *fd, bScreen *sc)
}
else if(sl->spacetype==SPACE_NODE) {
SpaceNode *snode= (SpaceNode *)sl;
- snode->nodetree= NULL;
+ snode->nodetree= snode->edittree= NULL;
snode->flag |= SNODE_DO_PREVIEW;
}
}
@@ -3280,6 +3307,43 @@ static void lib_link_group(FileData *fd, Main *main)
/* ************** GENERAL & MAIN ******************** */
+static char *libname(short id_code)
+{
+
+}
+
+static char *dataname(short id_code)
+{
+
+ switch( id_code ) {
+ case ID_OB: return "Data from OB";
+ case ID_ME: return "Data from ME";
+ case ID_IP: return "Data from IP";
+ case ID_SCE: return "Data from SCE";
+ case ID_MA: return "Data from MA";
+ case ID_TE: return "Data from TE";
+ case ID_CU: return "Data from CU";
+ case ID_GR: return "Data from GR";
+ case ID_AR: return "Data from AR";
+ case ID_AC: return "Data from AC";
+ case ID_LI: return "Data from LI";
+ case ID_MB: return "Data from MB";
+ case ID_IM: return "Data from IM";
+ case ID_LT: return "Data from LT";
+ case ID_LA: return "Data from LA";
+ case ID_CA: return "Data from CA";
+ case ID_KE: return "Data from KE";
+ case ID_WO: return "Data from WO";
+ case ID_SCR: return "Data from SCR";
+ case ID_VF: return "Data from VF";
+ case ID_TXT : return "Data from TXT";
+ case ID_SO: return "Data from SO";
+ case ID_SAMPLE: return "Data from SAMPLE";
+ }
+ return "Data from Lib Block";
+
+}
+
static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID **id_r)
{
/* this routine reads a libblock and its direct data. Use link functions
@@ -3288,8 +3352,8 @@ static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID
ID *id;
ListBase *lb;
- char *str = NULL;
-
+ char *allocname;
+
if(bhead->code==ID_ID) {
ID *linkedid= (ID *)(bhead + 1); /* BHEAD+DATA dependancy */
@@ -3323,39 +3387,12 @@ static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID
bhead = blo_nextbhead(fd, bhead);
- switch( GS(id->name) ) {
- case ID_OB: str= "ID_OB"; break;
- case ID_SCE: str= "ID_SCE"; break;
- case ID_LI: str= "ID_LI"; break;
- case ID_ME: str= "ID_ME"; break;
- case ID_CU: str= "ID_CU"; break;
- case ID_MB: str= "ID_MB"; break;
- case ID_MA: str= "ID_MA"; break;
- case ID_TE: str= "ID_TE"; break;
- case ID_IM: str= "ID_IM"; break;
- case ID_IK: str= "ID_IK"; break;
- case ID_WV: str= "ID_WV"; break;
- case ID_LT: str= "ID_LT"; break;
- case ID_SE: str= "ID_SE"; break;
- case ID_LF: str= "ID_LF"; break;
- case ID_LA: str= "ID_LA"; break;
- case ID_CA: str= "ID_CA"; break;
- case ID_IP: str= "ID_IP"; break;
- case ID_KE: str= "ID_KE"; break;
- case ID_WO: str= "ID_WO"; break;
- case ID_SCR: str= "ID_SCR"; break;
- case ID_VF: str= "ID_VF"; break;
- case ID_TXT : str= "ID_TXT"; break;
- case ID_SO: str= "ID_SO"; break;
- case ID_SAMPLE: str= "ID_SAMPLE"; break;
- case ID_GR: str= "ID_GR"; break;
- case ID_SEQ: str= "ID_SEQ"; break;
- case ID_AR: str= "ID_AR"; break;
- case ID_AC: str= "ID_AC"; break;
- }
+ /* need a name for the mallocN, just for debugging and sane prints on leaks */
+ allocname= dataname(GS(id->name));
+
/* read all data */
while(bhead && bhead->code==DATA) {
- void *data= read_struct(fd, bhead, str);
+ void *data= read_struct(fd, bhead, allocname);
if (data) {
oldnewmap_insert(fd->datamap, bhead->old, data, 0);
@@ -3432,6 +3469,9 @@ static BHead *read_libblock(FileData *fd, Main *main, BHead *bhead, int flag, ID
case ID_AC:
direct_link_action(fd, (bAction*)id);
break;
+ case ID_NT:
+ direct_link_nodetree(fd, (bNodeTree*)id);
+ break;
}
oldnewmap_free_unused(fd->datamap);
@@ -5221,10 +5261,11 @@ static void lib_link_all(FileData *fd, Main *main)
lib_link_armature(fd, main);
lib_link_action(fd, main);
lib_link_vfont(fd, main);
+ lib_link_nodetree(fd, main); /* has to be done after materials, it will verify group nodes */
- lib_link_mesh(fd, main); /* as last: tpage images with users at zero */
+ lib_link_mesh(fd, main); /* as last: tpage images with users at zero */
- lib_link_library(fd, main); /* only init users */
+ lib_link_library(fd, main); /* only init users */
}
static BHead *read_userdef(BlendFileData *bfd, FileData *fd, BHead *bhead)
@@ -5425,6 +5466,16 @@ static void expand_texture(FileData *fd, Main *mainvar, Tex *tex)
expand_doit(fd, mainvar, tex->ipo);
}
+static void expand_nodetree(FileData *fd, Main *mainvar, bNodeTree *ntree)
+{
+ bNode *node;
+
+ for(node= ntree->nodes.first; node; node= node->next)
+ if(node->id)
+ expand_doit(fd, mainvar, node->id);
+
+}
+
static void expand_material(FileData *fd, Main *mainvar, Material *ma)
{
MaterialLayer *ml;
@@ -5444,12 +5495,8 @@ static void expand_material(FileData *fd, Main *mainvar, Material *ma)
expand_doit(fd, mainvar, ml->mat);
}
- if(ma->nodetree) {
- bNode *node;
- for(node= ma->nodetree->nodes.first; node; node= node->next)
- if(node->id)
- expand_doit(fd, mainvar, node->id);
- }
+ if(ma->nodetree)
+ expand_nodetree(fd, mainvar, ma->nodetree);
}
static void expand_lamp(FileData *fd, Main *mainvar, Lamp *la)
@@ -5862,6 +5909,9 @@ static void expand_main(FileData *fd, Main *mainvar)
case ID_GR:
expand_group(fd, mainvar, (Group *)id);
break;
+ case ID_NT:
+ expand_nodetree(fd, mainvar, (bNodeTree *)id);
+ break;
}
doit= 1;
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 704215aaa7e..49071d175c0 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -362,15 +362,13 @@ static void writedata(WriteData *wd, int filecode, int len, void *adr) /* do not
if(len) mywrite(wd, adr, len);
}
-/* this is only direct data */
+/* this is only direct data, tree itself should have been written */
static void write_nodetree(WriteData *wd, bNodeTree *ntree)
{
bNode *node;
bNodeSocket *sock;
bNodeLink *link;
- writestruct(wd, DATA, "bNodeTree", 1, ntree);
-
/* for link_list() speed, we write per list */
for(node= ntree->nodes.first; node; node= node->next)
@@ -1044,8 +1042,11 @@ static void write_materials(WriteData *wd, ListBase *idbase)
for (ml=ma->layers.first; ml; ml=ml->next)
writestruct(wd, DATA, "MaterialLayer", 1, ml);
- if(ma->nodetree)
+ /* nodetree is integral part of material, no libdata */
+ if(ma->nodetree) {
+ writestruct(wd, DATA, "bNodeTree", 1, ma->nodetree);
write_nodetree(wd, ma->nodetree);
+ }
}
ma= ma->id.next;
}
@@ -1428,8 +1429,8 @@ static void write_actions(WriteData *wd, ListBase *idbase)
{
bAction *act;
bActionChannel *chan;
- act=idbase->first;
- while (act) {
+
+ for(act=idbase->first; act; act= act->id.next) {
if (act->id.us>0 || wd->current) {
writestruct(wd, ID_AC, "bAction", 1, act);
@@ -1438,7 +1439,6 @@ static void write_actions(WriteData *wd, ListBase *idbase)
write_constraint_channels(wd, &chan->constraintChannels);
}
}
- act=act->id.next;
}
}
@@ -1530,8 +1530,7 @@ static void write_groups(WriteData *wd, ListBase *idbase)
Group *group;
GroupObject *go;
- group= idbase->first;
- while(group) {
+ for(group= idbase->first; group; group= group->id.next) {
if(group->id.us>0 || wd->current) {
/* write LibData */
writestruct(wd, ID_GR, "Group", 1, group);
@@ -1542,7 +1541,18 @@ static void write_groups(WriteData *wd, ListBase *idbase)
go= go->next;
}
}
- group= group->id.next;
+ }
+}
+
+static void write_nodetrees(WriteData *wd, ListBase *idbase)
+{
+ bNodeTree *ntree;
+
+ for(ntree=idbase->first; ntree; ntree= ntree->id.next) {
+ if (ntree->id.us>0 || wd->current) {
+ writestruct(wd, ID_NT, "bNodeTree", 1, ntree);
+ write_nodetree(wd, ntree);
+ }
}
}
@@ -1603,6 +1613,7 @@ static int write_file_handle(int handle, MemFile *compare, MemFile *current, int
write_materials(wd, &G.main->mat);
write_textures (wd, &G.main->tex);
write_meshs (wd, &G.main->mesh);
+ write_nodetrees(wd, &G.main->nodetree);
write_libraries(wd, G.main->next);
write_global(wd);
diff --git a/source/blender/include/BIF_resources.h b/source/blender/include/BIF_resources.h
index 3e366710992..ce741b9dd1c 100644
--- a/source/blender/include/BIF_resources.h
+++ b/source/blender/include/BIF_resources.h
@@ -272,7 +272,7 @@ typedef enum {
ICON_SYNTAX_OFF,
ICON_BLANK52,
ICON_BLANK53,
- ICON_BLANK54,
+ ICON_PLUS,
ICON_VIEWMOVE,
ICON_HOME,
ICON_CLIPUV_DEHLT,
@@ -462,7 +462,7 @@ enum {
TH_NODE_IN_OUT,
TH_NODE_OPERATOR,
TH_NODE_GENERATOR,
- TH_NODE_FREE,
+ TH_NODE_GROUP,
};
/* XXX WARNING: previous is saved in file, so do not change order! */
diff --git a/source/blender/include/BSE_node.h b/source/blender/include/BSE_node.h
index 458887c91d1..f6a9402b7a8 100644
--- a/source/blender/include/BSE_node.h
+++ b/source/blender/include/BSE_node.h
@@ -52,6 +52,8 @@ void node_deselectall(struct SpaceNode *snode, int swap);
void node_transform_ext(int mode, int unused);
void node_shader_default(struct Material *ma);
+int node_has_hidden_sockets(struct bNode *node);
+
/* ************* drawnode.c *************** */
void node_draw_link(struct SpaceNode *snode, struct bNodeLink *link);
diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h
index 8811892a99b..de1461b682c 100644
--- a/source/blender/makesdna/DNA_ID.h
+++ b/source/blender/makesdna/DNA_ID.h
@@ -126,6 +126,7 @@ typedef struct Library {
#define ID_AR MAKE_ID2('A', 'R')
#define ID_AC MAKE_ID2('A', 'C')
#define ID_SCRIPT MAKE_ID2('P', 'Y')
+#define ID_NT MAKE_ID2('N', 'T')
/* NOTE! Fake IDs, needed for g.sipo->blocktype or outliner */
#define ID_SEQ MAKE_ID2('S', 'Q')
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h
index c0c0bd645a2..ecdabe82e1d 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -37,6 +37,7 @@ struct ID;
struct SpaceNode;
struct bNodeLink;
struct bNodeType;
+struct bNodeGroup;
struct uiBlock;
#define NODE_MAXSTR 32
@@ -55,10 +56,21 @@ typedef struct bNodeSocket {
char name[32];
bNodeStack ns; /* custom data for inputs, only UI writes in this */
- short type, flag, limit, stack_index;
+
+ short type, flag; /* type is copy from socket type struct */
+ short limit, stack_index; /* limit for dependency sort, stack_index for exec */
+ short intern; /* intern = tag for group nodes */
+ short stack_index_ext; /* for groups, to find the caller stack index */
+ int pad1;
+
float locx, locy;
- struct bNodeLink *link; /* input link to parent, max one! set in nodeSolveOrder() */
+ /* internal data to retrieve relations and groups */
+
+ int own_index, to_index; /* group socket identifiers, to find matching pairs after reading files */
+
+ struct bNodeSocket *tosock; /* group-node sockets point to the internal group counterpart sockets, set after read file */
+ struct bNodeLink *link; /* a link pointer, set in nodeSolveOrder() */
} bNodeSocket;
@@ -69,6 +81,10 @@ typedef struct bNodeSocket {
#define SOCK_IMAGE 3
/* sock->flag, first bit is select */
+#define SOCK_HIDDEN 2
+ /* only used now for groups... */
+#define SOCK_IN_USE 4
+
#
#
typedef struct bNodePreview {
@@ -114,6 +130,7 @@ typedef struct bNode {
#define NODE_ACTIVE 16
#define NODE_ACTIVE_ID 32
#define NODE_DO_OUTPUT 64
+#define NODE_GROUP_EDIT 128
typedef struct bNodeLink {
struct bNodeLink *next, *prev;
@@ -124,14 +141,19 @@ typedef struct bNodeLink {
} bNodeLink;
/* the basis for a Node tree, all links and nodes reside internal here */
+/* only re-usable node trees are in the library though, materials allocate own tree struct */
typedef struct bNodeTree {
+ ID id;
+
ListBase nodes, links;
- void *data; /* custom data, set by execute caller, no read/write handling */
- bNodeStack *stack; /* stack is only while executing */
+ void *data; /* custom data, set by execute caller, no read/write handling */
+ bNodeStack *stack; /* stack is only while executing, no read/write */
- int type, init; /* set init on fileread */
- struct bNodeType **alltypes; /* type definitions, set on fileread */
+ int type, init; /* set init on fileread */
+ int cur_index, pad; /* sockets in groups have unique identifiers, adding new sockets always will increase this counter */
+ struct bNodeType **alltypes; /* type definitions, set on fileread, no read/write */
+ struct bNodeType *owntype; /* for groups or dynamic trees, no read/write */
} bNodeTree;
diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h
index 56090dc75e2..4bb6af1f994 100644
--- a/source/blender/makesdna/DNA_space_types.h
+++ b/source/blender/makesdna/DNA_space_types.h
@@ -306,8 +306,8 @@ typedef struct SpaceNode {
float aspect;
void *curfont;
- struct bNodeTree *nodetree;
- int treetype, pad; /* treetype: same nodetree->type */
+ struct bNodeTree *nodetree, *edittree;
+ int treetype, pad; /* treetype: as same nodetree->type */
} SpaceNode;
diff --git a/source/blender/render/extern/include/render.h b/source/blender/render/extern/include/render.h
index c0eced8ad3a..64c0592e8cb 100644
--- a/source/blender/render/extern/include/render.h
+++ b/source/blender/render/extern/include/render.h
@@ -192,6 +192,8 @@ void ramp_spec_result(float *specr, float *specg, float *specb, ShadeInput *shi)
void matlayer_blend(struct MaterialLayer *ml, float blendfac, struct ShadeResult *target, struct ShadeResult *src);
void ramp_blend(int type, float *r, float *g, float *b, float fac, float *col);
+void shade_material_loop(struct ShadeInput *shi, struct ShadeResult *shr);
+
/* --------------------------------------------------------------------- */
/* ray.c (2) */
/* --------------------------------------------------------------------- */
diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c
index 3a5eb15d186..d1f36cba345 100644
--- a/source/blender/render/intern/source/rendercore.c
+++ b/source/blender/render/intern/source/rendercore.c
@@ -52,6 +52,7 @@
#include "DNA_texture_types.h"
#include "BKE_global.h"
+#include "BKE_node.h"
#include "BKE_texture.h"
#include "BLI_rand.h"
@@ -2266,6 +2267,38 @@ void matlayer_blend(MaterialLayer *ml, float blendfac, ShadeResult *target, Shad
ramp_blend(ml->blendmethod, &target->alpha, NULL, NULL, blendfac, &src->alpha);
}
+/* also used as callback for nodes */
+void shade_material_loop(ShadeInput *shi, ShadeResult *shr)
+{
+
+ shade_lamp_loop(shi, shr); /* clears shr */
+
+ if(shi->translucency!=0.0) {
+ ShadeResult shr_t;
+
+ VECCOPY(shi->vn, shi->vno);
+ VecMulf(shi->vn, -1.0);
+ VecMulf(shi->facenor, -1.0);
+ shade_lamp_loop(shi, &shr_t);
+
+ shr->diff[0]+= shi->translucency*shr_t.diff[0];
+ shr->diff[1]+= shi->translucency*shr_t.diff[1];
+ shr->diff[2]+= shi->translucency*shr_t.diff[2];
+ VecMulf(shi->vn, -1.0);
+ VecMulf(shi->facenor, -1.0);
+ }
+
+ if(R.r.mode & R_RAYTRACE) {
+ if(shi->ray_mirror!=0.0 || ((shi->mat->mode & MA_RAYTRANSP) && shr->alpha!=1.0)) {
+ ray_trace(shi, shr);
+ }
+ }
+ else {
+ /* doesnt look 'correct', but is better for preview, plus envmaps dont raytrace this */
+ if(shi->mat->mode & MA_RAYTRANSP) shr->alpha= 1.0;
+ }
+
+}
/* x,y: window coordinate from 0 to rectx,y */
/* return pointer to rendered face */
@@ -2293,14 +2326,12 @@ void *shadepixel(float x, float y, int z, int facenr, int mask, float *col, floa
}
else if( (facenr & 0x7FFFFF) <= R.totvlak) {
VertRen *v1;
- Material *mat;
- MaterialLayer *ml;
float alpha, fac, zcor;
vlr= RE_findOrAddVlak( (facenr-1) & 0x7FFFFF);
shi.vlr= vlr;
- mat= shi.mat= vlr->mat;
+ shi.mat= vlr->mat;
shi.osatex= (shi.mat->texco & TEXCO_OSA);
@@ -2482,66 +2513,12 @@ void *shadepixel(float x, float y, int z, int facenr, int mask, float *col, floa
/* ------ main shading loop -------- */
VECCOPY(shi.vno, shi.vn);
- if(1) { //shi.mat->ml_flag & ML_RENDER) {
-
- shade_lamp_loop(&shi, &shr); /* clears shr */
-
- if(shi.translucency!=0.0) {
- ShadeResult shr_t;
-
- VECCOPY(shi.vn, shi.vno);
- VecMulf(shi.vn, -1.0);
- VecMulf(shi.facenor, -1.0);
- shade_lamp_loop(&shi, &shr_t);
-
- shr.diff[0]+= shi.translucency*shr_t.diff[0];
- shr.diff[1]+= shi.translucency*shr_t.diff[1];
- shr.diff[2]+= shi.translucency*shr_t.diff[2];
- VecMulf(shi.vn, -1.0);
- VecMulf(shi.facenor, -1.0);
- }
-
- if(R.r.mode & R_RAYTRACE) {
- if(shi.ray_mirror!=0.0 || ((shi.mat->mode & MA_RAYTRANSP) && shr.alpha!=1.0)) {
- ray_trace(&shi, &shr);
- }
- }
- else {
- /* doesnt look 'correct', but is better for preview, plus envmaps dont raytrace this */
- if(shi.mat->mode & MA_RAYTRANSP) shr.alpha= 1.0;
- }
+ if(shi.mat->nodetree && shi.mat->use_nodes) {
+ ntreeShaderExecTree(shi.mat->nodetree, &shi, &shr);
}
else {
- memset(&shr, 0, sizeof(ShadeResult));
- shr.alpha= 1.0f;
- }
-
- for(ml= shi.mat->layers.first; ml; ml= ml->next) {
- if(ml->mat && (ml->flag & ML_RENDER)) {
- ShadeResult shrlay;
-
- shi.mat= ml->mat;
- shi.layerfac= ml->blendfac;
- VECCOPY(shi.vn, shi.vno);
- if(ml->flag & ML_NEG_NORMAL)
- VecMulf(shi.vn, -1.0);
-
- shade_lamp_loop(&shi, &shrlay); /* clears shrlay */
-
- if(R.r.mode & R_RAYTRACE) {
- if(shi.ray_mirror!=0.0 || ((shi.mat->mode & MA_RAYTRANSP) && shr.alpha!=1.0)) {
- ray_trace(&shi, &shr);
- }
- }
- else {
- /* doesnt look 'correct', but is better for preview, plus envmaps dont raytrace this */
- if(shi.mat->mode & MA_RAYTRANSP) shr.alpha= 1.0;
- }
-
- matlayer_blend(ml, shi.layerfac, &shr, &shrlay);
- }
+ shade_material_loop(&shi, &shr);
}
- shi.mat= mat;
/* after shading and composit layers */
if(shr.spec[0]<0.0f) shr.spec[0]= 0.0f;
diff --git a/source/blender/renderconverter/intern/convertBlenderScene.c b/source/blender/renderconverter/intern/convertBlenderScene.c
index 88a3136b567..790daa1d818 100644
--- a/source/blender/renderconverter/intern/convertBlenderScene.c
+++ b/source/blender/renderconverter/intern/convertBlenderScene.c
@@ -2665,6 +2665,8 @@ void RE_freeRotateBlenderScene(void)
free_mesh_orco_hash();
end_radio_render();
+ end_render_materials();
+
if(R.wrld.aosphere) {
MEM_freeN(R.wrld.aosphere);
R.wrld.aosphere= NULL;
@@ -2882,6 +2884,7 @@ void RE_rotateBlenderScene(void)
}
init_render_textures();
init_render_materials();
+ set_node_shader_lamp_loop(shade_material_loop);
/* imat objects, OB_DO_IMAT can be set in init_render_materials
has to be done here, since displace can have texture using Object map-input */
diff --git a/source/blender/src/blenderbuttons.c b/source/blender/src/blenderbuttons.c
index 1d8226adcc9..e3212c63830 100644
--- a/source/blender/src/blenderbuttons.c
+++ b/source/blender/src/blenderbuttons.c
@@ -1,1539 +1,1548 @@
/* DataToC output of file <blenderbuttons> */
-int datatoc_blenderbuttons_size= 49076;
+int datatoc_blenderbuttons_size= 49344;
char datatoc_blenderbuttons[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 2, 0,
- 0, 0, 1, 0, 8, 2, 0, 0, 0, 74,242, 89, 48, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 11, 19, 0, 0, 11, 19, 1, 0,154,
-156, 24, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,192,153,201, 12,156,227, 0, 0, 0, 32, 99, 72, 82, 77, 0, 0,110, 39, 0, 0,
-115,175, 0, 0,246,112, 0, 0,129,232, 0, 0,107,215, 0, 0,226,170, 0, 0, 48,131, 0, 0, 21, 42,251,118,133,113, 0, 0,
-191, 42, 73, 68, 65, 84,120,218, 98,244,137,169,101, 24, 5,163, 96, 20,140,130, 81, 48,242, 0, 64, 0, 49,141, 6,193, 40, 24,
- 5,163, 96, 20,140, 76, 0, 16, 64,163, 21,192, 40, 24, 5,163, 96, 20,140, 80, 0, 16, 64,163, 21,192, 40, 24, 5,163, 96, 20,
-140, 80, 0, 16, 64,163, 21,192, 40, 24, 5,163, 96, 20,140, 80, 0, 16, 64,163, 21,192, 40, 24, 5,163, 96, 20,140, 80, 0, 16,
- 64, 44,112,150,175,173, 12,241,218, 54, 31,126,130,204, 29,213, 59, 8,245,162,105,167,186,189, 7, 14, 28,112,112,112, 24, 13,
-231, 81,189,163,122, 7,185, 94, 60, 0, 32,128, 88,134, 71, 61,150,158,158, 14,103,207,156, 57,115, 64,108,159, 49, 99, 6, 35,
- 35,227,176,111, 50,192,131, 58, 50, 50,114,205,154, 53, 16,118, 72, 72,200,104, 99,106,248, 69, 52,253,179,210, 40,160, 51, 0,
- 8, 32, 22, 90,164,128,219,183,111,247,244,244, 64,216, 37, 37, 37,170,170,170,116,240,201,255,255,255,129, 36,253,139, 96, 96,
- 40, 61,120,240, 0,200, 80, 80, 80, 24,144,234, 7,107, 45,136,213, 37,192, 54, 59,126, 19,150, 47, 95,142,223,253, 64, 43, 86,
-173, 90, 5, 97,175, 95,191,222,213,213, 21,194, 6,214, 4,180,171, 3,140,141,141,129,228,217,179,103,201,144, 29,153,224,222,
-189,123,157,157,157,112,110,121,121,185,146,146,210, 32,175, 54, 6,208,205, 35, 25, 0, 4, 16, 11,158, 66, 28, 66,146, 90,124,
- 67,138,161,198, 85, 45, 60,178,252, 95, 30,127,172, 15,171, 25,216, 98,145,214, 0,232, 53, 96,209,255, 0, 12,118,236,216, 65,
-255,118, 19, 36,192,103,130, 1,144,221,213,213, 5,228,150,149,149, 97, 85, 28, 24, 24, 8, 97,252,249,243,247,215,239,159,191,
-126,254,130,128, 63,127,254,224,210,130,181,244, 71, 3,192,154,128,166,117, 0,158,218, 11, 82, 1,140, 2, 92,237, 0, 32,128,
- 20,172,116, 72,150, 16,171,201,200, 2, 3,232,230, 17, 14, 0, 2, 8,103, 5, 0,108,194,175,170,173, 10,107,110, 35, 41, 14,
-128, 17, 9, 41,250,129,236, 55,223,222, 50, 8, 51, 84,238,109,248,116,239,125,122, 42,253,138, 69,204,196, 68,107,171,225,117,
-128,135,135, 7,144, 4,178,233,233,217,253,251,247, 3, 25,142,142,142,104,117, 0, 30, 0, 44,238,127,253,250,253,235, 23, 74,
-233,127,230,204, 25, 19, 19, 19,130, 54,134,133,133, 65, 24,145,145,145,187,119,239,134, 87, 0,100, 68, 16,145,161, 4,108,221,
- 3, 75,127, 55, 55, 55,100,193, 93,187,118, 1,251, 43, 16, 54,214,169,136, 17, 94,250, 35,135, 45, 25,229, 50,217, 90,200,232,
- 7, 80,203,205,163,128, 12, 0, 16, 64, 44,184,154,255,106,106,106,170, 60,124, 36,117, 2,224,165, 63,176,232,111,119,110,128,
- 8, 38,110,204, 98, 16, 99, 8,236, 10, 35, 24,151,152, 5, 55,121,101,247,227,199,143,129,164,172,172, 44,156, 1, 49,153,186,
-135, 94,160,121, 7, 94, 7,252,254,253,103,198,140, 25,148, 55,130,136,209,142, 86,250,195, 53, 98, 13, 73,148,210,255, 55,176,
-244,255,249, 19, 92, 9,192, 75,255,255,255,254, 19, 83,250, 3, 85, 66,216,189,189,189,240, 38, 63,124, 50,128,120, 55,163, 57,
-155,120, 0, 47,250,129, 53,144,161,161,225,104, 30, 70, 30, 69,193,154,120,224, 73, 2,168,128,224,184, 10,188, 67, 9, 73,195,
-112, 46, 49,205, 32,204,162,156, 96, 70, 64,115, 51,176, 73,193,200,200,232,226,226, 66,146,155, 33, 32, 57, 57,121,238,220,185,
-163,201,128, 36, 0, 16, 64, 76,184,154,255, 45,225, 33, 63, 94,191, 46,209,214,128,143,230,227, 7,144, 33, 35,120,233, 95, 82,
- 82, 2,140, 66, 32, 57,223,127, 26, 80, 92, 64, 93, 4,174, 6, 15, 40,155,122, 11,136,178,123,174,199, 55, 95, 9,170,188, 64,
-170,103,158, 60,121,130,167, 74,160,110,233, 15, 44,235, 49,139,108, 96, 29, 0, 44, 82,205,205,204, 72, 53, 13, 50,186, 2, 4,
-251, 97, 0,127, 33, 14, 47, 73, 29,193, 0, 51,195,227, 46,253,255,130,138,253,159,160,193, 31,228,210,255,239,223,191, 95,191,
-127, 37,232, 84, 72, 47, 1,185,163,176, 6, 12,136, 28,252, 1,185, 25,105, 36, 7,200, 38,232, 77,172,165, 63,176,232, 7,246,
-114, 32,165, 63, 43, 11,235,104, 54, 38, 56,108, 2, 17, 68, 30,100,199, 95,148,147,215, 2,131, 40, 70, 46,253,113, 53,236,176,
-186, 25, 88,250, 3,211,210,234,213,171,247,236,217, 67,170,155,129,165, 63, 11, 11, 11,144, 28, 77, 6, 36, 1,128, 0, 98,194,
-211,252,255,246,226,185,167,161, 17, 49, 5, 55,164,206, 0, 54,255,129, 12, 72,233, 15,233, 52, 0, 73, 72, 29,240,228,211, 51,
-163, 50, 11,130,117,201,215,239,192, 98,232,239,243,183, 63,159,190,254,241,248,229, 15, 34,139, 78, 72, 10,195, 85,250,211, 14,
- 96,214, 1, 64,240,227,215,207, 31, 63,126, 16,111, 8,164, 28,135,140,173,139,138,138,194,155,198,248,115, 14,114, 59, 26,179,
-227,140, 39,223,130,198,253,129,197, 63,184,241, 15, 47,253,127,255,254,253,245,235,215,207,159, 62,211,122,116, 98,213,170,213,
- 48, 30, 35, 24, 50, 0, 69,136,175, 3,224,165, 63,164,232,103, 98, 98,226,224,224,224,230,225, 26,205,198, 52,234,215, 18,217,
-167,196, 90,121,160,141, 8, 17,163, 23,222,143, 4,214, 1, 36, 57, 27, 82,250,131, 6, 52, 70,235, 0, 18, 1, 64, 0,118,205,
- 94, 7, 65, 24,136,227, 36,208,224,238, 32,239, 64,124,156,250, 8,142, 60, 15,137, 3, 59, 60,150,176, 16,135,106, 75, 33, 90,
-130, 7, 37, 23, 98,180,158,137, 35, 55, 53, 13,133,210,143,223,221,253,219,224, 45,202, 79,199,121, 16,155,242,108,147, 0, 74,
- 32, 96,195,127,203,125,172,196,242,118, 31,125,125,131,106,123,169,205,173, 49, 87,101,132, 52,148, 31,120,185,252,131,193, 62,
- 22, 32,133, 20, 66,252,119,212,210, 52,197,131, 95, 84,252, 97,149, 67,125,215,182,116, 7, 0, 77,178, 44, 43,171,138,249,254,
- 46,138,144,254, 73,146,196,113,236,216, 54,240, 69,120, 12,125,192, 50, 47,113,159, 64,220, 39,254, 63, 70,250,247,150,254,224,
- 13,180,214, 74, 41, 41, 73, 14, 0, 37, 32,107,244,216, 63, 47,114,111,240, 46,117, 61,206,154,157,179, 97, 24,125, 64, 81, 28,
- 56,167, 44,176, 37,253, 25, 99, 97, 24,110, 38, 35,246,124, 53,138, 2,249, 9,220,116, 45,200,161, 8,185,141,115,110,209,255,
-211,109, 2,164,255, 76,180, 32,128,200,102,213,130,136,246, 20, 64, 76, 88, 71,114, 76,148, 85,127,188,126, 13, 44,253,129,108,
- 59,112,179,148,152, 78,192,189, 43,119,144, 13, 65, 99,191,189,252,130,160, 9,164,150,254,240,162, 31, 88, 13,200,202,202,194,
- 5,127,195, 0,176,232, 7,182,109,223,189,123, 71,221, 80,131, 88,186, 99,199, 14,120, 63, 0, 82,250,235,233,233,253, 0,214,
- 0,223,191,195,107, 38,252, 89,110,234,180,169, 64, 71,202, 72, 75,255,254,251, 23,173,244, 39,152,109, 32,117, 0,114,131, 11,
-178, 26, 21,107,191, 4,165, 2,248,245, 27, 82,250,159, 62,117,250,219,247,239,192,210,243,227,199,143,192,128,122,255,254, 61,
-241, 33, 0, 25, 5, 34,126,232, 31,148, 0,222,188,125,251,246,205,155,183,239, 64, 52,152, 9, 20,212,208,212,124, 7,102, 16,
-211,252, 7,146,192,210, 31,218,240,231,230,230,225,225,229,229,225, 5, 50, 70,179, 49,174,210,156,248, 6, 56,100, 5, 1,156,
-129,139, 77,146,237,104, 35, 66, 4,117,185,184,184, 0,235, 0, 96,233,239,234,234, 74,124,159, 3, 88,214, 3, 75,124, 56,119,
-180,244, 39, 9, 0, 4, 16, 19,102,243,127, 85,109, 21,144,241,237,197,115,184, 32, 49, 51, 1, 37, 37, 37, 83, 83, 39, 50,128,
-103,125,129,138,225,171, 72,129,108,215,197, 1, 64,246,185,174, 19, 64, 53,212,117, 61, 60,109, 61,121,242, 4,210,228,135,148,
-251,208,238,203,215,175,192,210, 13,216, 30,231,226,162,254, 40, 1,208,234,140,140, 12,144,141,127,254, 92,187,118,237,252,185,
-115,250,122,250, 63,126,128, 59, 0,223,191, 47, 89,188, 24, 34,139, 39,185,247,246,246,106,105,106, 1, 93, 11, 12,165, 63,191,
-127, 61,125,242,148,108,239, 51,192,102, 32, 24,192,219, 17,240,245, 0,126,255,252,243, 23, 52,242,115,242,228,137,175,223,191,
-126,249,252, 9, 88,250,191, 7,149,254,239, 72,170, 38, 33,253, 0,146, 90,106,135, 14, 29,250, 12, 2,159,192,228,103, 17, 97,
- 97, 96,233,127,227,250,245,131,135, 14, 17,163, 29,210,252,103, 97, 97, 5,198, 38, 15,176,236, 7, 98, 30, 46, 78, 46,206, 23,
- 47, 94,140,102, 99, 8, 40, 47, 47,135,151,191,240,201, 85, 8, 3, 34, 8, 81, 64,100,179, 29,255,184, 16,254,210,159,248,182,
- 63,154,155,129,117, 0,176,244, 39,201,205,200,117,192,104,233, 79, 42, 0, 8, 32, 44, 67, 64,194,247, 31,188, 3, 15,254,192,
- 69,128,157,128, 30,134, 27,248, 13,130, 12,245,220, 56,123, 77, 64, 93, 4, 88,226,247,196, 66, 43, 12, 72,233, 15,105,254, 19,
- 92, 77,180,174,221,128,188,246,248,245,235,215, 33, 41, 0,121, 52,128, 21, 12, 94,191,126,237,229,229, 69,139,176,131,148,185,
-192,134,191,153,153,217,143,159, 63,191,255,248, 14,110,253,127, 7, 49,126,252,152, 50,101, 10,174,156, 3, 89,169,249,247,239,
-223,179,103,207,177,178, 48, 67, 66,230,254,131, 7, 79,159, 62, 93,190,124, 69,100,100, 4, 80, 4,222, 15,192,154,193,224,131,
- 78,104, 45, 56,130, 43, 80, 33,109,255,227,199,143,127,253,242, 13, 82, 65,126,250,252,233,211,167,143,159, 62,125, 33,126, 32,
- 5,210,252,135,239, 4, 38,166, 26, 0, 42,134,179, 21, 21, 20,128, 69, 63, 40,181, 92,191,126, 31,220,107, 65,150,197, 3, 44,
-173, 44,217,217,216, 57, 57, 57,129, 61, 0,118,118,118, 96,228, 82,125,122,127, 72, 3,228,213, 50,240,197, 51,240,154, 0, 77,
- 1,254, 66, 28,235, 80, 62, 73, 61, 15, 34,171, 13,106,185, 25, 82, 7,140,150,254,164, 2,128, 0, 98,193, 28,255,113, 94,178,
- 12,171, 82,130,235, 65, 33,205, 7,163, 50, 11, 97, 93, 9, 72,185, 15, 31,252, 1, 54,255, 9,166, 6,242, 22,252, 66, 44,213,
-212,212,188,124,249, 50,188, 8,195, 28,244, 7, 42, 35,254,124, 12, 82,109, 71, 22, 89,178,120, 9,176,244,135,236,176,194,186,
- 30, 31,121,157,254,191,127,127,245,244,141, 46, 94,188,116,253,218, 53, 22, 86, 86, 96,201,248,228,233, 19, 96, 83,151,153,153,
- 57, 44, 44, 12, 88, 7, 48, 48,240, 99,154, 0,212, 14,201, 93, 16,219,209,246, 1,224,119, 48,176,244, 63,122,244,232, 23, 32,
- 0,205,250,126, 2,151,254, 64,226,243,151,207, 95,190,126,251, 70,208,179,192,162,255, 12, 24, 48, 96, 44, 3,197, 95, 13, 56,
- 56, 56, 32, 7, 20,164,220, 63,127,254, 60, 3, 17,219,143,141,193, 0,200,224,225,226,225, 0, 21,254, 28,108,108,108, 76, 76,
- 76,163,165, 63,250, 24, 44, 82,185,185,122,245,106, 96,107,154, 1,117, 66,149,152, 37,149,200,109, 11, 82, 87, 51,147, 49,238,
- 79, 21, 55,195,235,128,209, 52, 64, 42, 0, 8, 32, 22,180, 86, 60,133,219, 46,224, 41, 0, 82, 13, 64,138,126, 6, 26,111,197,
-130, 88,170,171,171,123,250,244,105, 96,123, 31, 81,241,188, 5,205, 72,199,198,198,210, 52, 4,145,189,246,255,255,255,152,216,
-152, 41, 83,166,130,199,217,255,240,243,243, 19,172,231,110,221,186, 5,108,209, 66,244, 2,217,104,202,238,225,168,180,144,235,
- 0,200,108, 48,100, 73, 40,254,112,134, 44,159,183,182,182,166,196,179,240, 53,160,164,158, 5, 4,212,123,224,192,129,229, 96,
-128,220, 51, 32, 50,109, 0,171,144,223,127,126,255,254,252,123,116,202, 23, 23, 32,184, 98, 18,168,128,200,208,134,239, 3, 32,
- 47, 51, 18,175,145,138,110, 30, 5,100, 0,128, 0,162,254, 97,112,192,216, 2, 13,253,119,209,245, 44, 32, 72,178, 51, 53, 53,
-221,182,109, 27,164,220,167,188,111, 65,222, 96, 20,124, 47, 46,214,210,159, 42, 0,243,204, 6,200,178, 81,130, 77, 54,170,132,
- 3,220, 16, 96,105, 78,234,217, 15, 14, 96, 64,170,141,163,231,252,144,209, 22,161,127,226, 39,207,198, 65,226,230, 17, 11, 0,
- 2,136, 38,167,129, 82,222,147, 32,187, 14,160,209,112, 63,237, 50, 0,229,134,143,230,150, 81, 48,228,146,241, 40, 24, 36, 0,
- 32,128, 24,169,123, 64,194, 40, 24, 5,163, 96, 20,140,130,161, 2, 0, 2,104,244, 70,176, 81, 48, 10, 70,193, 40, 24,161, 0,
- 32,128, 70, 43,128, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128, 70, 43,128, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128, 70, 43,
-128, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128, 70, 47,133, 31,213, 59,170,151,230,122,113, 45,207,165,181,222,209, 56, 26,213,
-139, 31, 0, 4,208,104, 15, 96, 20,140, 2,218, 2,200,233,246, 16,146, 84, 64,204,145,250,163, 0, 43,184,121,243,230,104, 32,
- 16, 4, 0, 1, 52, 90, 1, 12, 36,184,118,237, 90, 58, 18, 0,114, 7,191,222, 81, 64, 18,184,119,239, 30,228, 96, 3, 32,137,
-124,236, 1,241,165, 63,228, 88, 89,178,207,228,193, 37, 66, 69,189,240, 59, 57,200, 3,180,168,222,128,165,127,127,127,255,104,
-242, 35, 8, 0, 2,136,101,248,121,233,240,225,195,182,182,182,131,223,157,144,116,223,219,219, 11, 23, 41, 46, 46,102, 32,250,
- 50, 72, 32,249,111,165, 32,162, 38, 15,159, 72, 7,189,163,128, 84,128,124,212, 1, 73,167, 26, 32,151,254, 64,146,145,145,145,
-248, 35, 22, 40,217, 45, 72,134, 94,200, 57,254,120,156, 7,236,253, 64, 14,249,193,227, 89, 76,189, 4,117,225, 47,253,255,253,
-251, 55,107,214,172,165, 75,151, 70, 71, 71,143,166, 67, 92, 0, 32,128,134, 97, 15, 96, 9,142,195,236, 6, 91,233,159,159,159,
-143, 92,250, 67, 42, 3,160, 32, 49, 13,174, 5,185,220,200, 37, 56,164, 64, 7, 10,210, 84,239,199,143, 31, 51, 51, 51,225,183,
-208,188,120,241, 2,168,165,181,181,181,185,185,185,170,170, 10,114, 94, 63, 46,192,246,241,171,110,230,124,158,253,247, 33,220,
- 63, 47,254, 92, 77,255,113,169,149,237, 72,179,224,230, 42,249,115,187,164,135,107, 6, 35,227, 60,125,180,210, 31, 2, 72,234,
- 7,208,185, 7, 0, 57,199, 31,162,114, 15, 24,160,149,227,248,111,248,130,235,197,212, 69, 70,231, 0, 94,250, 3,155, 83,192,
-210,255,200,145, 35,163,165, 60, 30, 0, 16, 64,195,173, 2, 0, 54,255,129,109,165, 65, 30,235,144, 33, 23, 57, 57, 57,120,195,
- 31,210,246,135, 11,226, 25,147,129, 72,197,217,176,193, 26,239,239,129, 8,194,134, 8,210, 72, 47, 16,156, 60,121,146,131,131,
-227,248,241,227,136,212,195,196, 84, 93, 93, 93, 91, 91, 27, 31, 31,191,117,235, 86, 60,122, 37, 78, 94,251,207,193,202,117,252,
- 17, 92,132,145,233,191, 94,245, 47,155,218,247,230,241,175, 78,111,149, 30,205,138,152,165, 63, 35, 12, 16, 89, 7, 32, 79, 24,
-164,163, 2, 6, 66,211, 9,148,232,133,215, 1,239,222,185,204,156,249,158,164,210, 31,107,253, 1,215, 69,106,175, 20, 88,250,
-247,245,245, 1, 67, 12,152, 50,207,156, 57, 3, 44, 13, 70,147, 19,126, 0, 16, 64, 76,248, 11, 83, 50, 66,144,194,241,101,160,
-141, 16,141,228, 69, 30,176,249, 63, 99,198, 52,178, 59, 1,244, 73, 49, 19, 39, 78,132,183,253,129, 69,127, 47, 24,192,235, 0,
- 32, 27,168, 0,143, 94,120,251, 29, 88,124,223,222, 22, 11, 68,240,114, 28, 40, 69,188, 94, 72,155,148, 72,189,192,210,231,216,
-177, 99,192,222,244,163, 71,143,158, 63,127,142, 38,245,240,225, 67, 73, 73, 73, 6,220,154, 37,143, 93,121, 18,109,205,246,232,
- 35,227,115,248,161,211,144,171,220, 24,222, 61,100, 23,146,252, 62,204,242,213,189,123,247,240, 20,181,120, 38, 3,208,218,254,
-104,247,202,225,175, 3,144,111,224,154,137, 10, 24, 8,221,207,133, 44,251,127,149, 32, 50, 98, 32,241,110, 47, 72,185, 79, 82,
- 57,142, 92,127, 0, 17,121,165, 63,176,123, 58, 97,194, 4, 96,219,191,160,160, 0, 88, 7, 64,218,130,211,167, 79, 31, 45,229,
-241, 0,128, 0, 98,193, 83, 20, 46, 93,186, 28,146,224,136, 31, 82,135, 36,205,152,152, 24,136, 22,160, 33,144, 50,133,200,184,
- 4,170, 95,178,100, 9, 80, 59,184, 40, 95, 66,146,213,240,230, 63, 36,159,144, 49, 19, 0,177,157, 84, 75, 41, 1,144,210, 31,
- 94,238, 35,115, 9, 87,221,224,210, 31,194, 6,213, 1, 94,139,209, 6,118,240,235,133,199, 8,184, 14, 72, 39,168, 23, 88,196,
-255,250,245,203,216,216, 24,216,187, 2,118, 2,130,130,130, 64,117,198,191,127,237,237,237, 95,190,124, 97,101,101, 5,102, 63,
- 92,122,133, 30, 62,101,250,245,231,131,177, 2,235,145,103, 44,199, 95,254, 14, 82, 4,197,209,191,255,151,218,217,222,125,225,
-253,206,202,227,154,121,123, 56,101, 42,130,205,222,206,206, 78, 96,121,135, 57,192,141, 89,178,195,155,255,152, 42, 7,225, 41,
- 94,233,233,130, 72, 53, 10,168, 97, 1, 12, 6,178,239,249, 32,181,237, 15,204,245,240,187, 33,109,108,108,128,217,121,180,244,
- 39, 8, 0, 2,136, 5,119, 81,184,108,230, 76, 80,240,101,100,100, 17, 89, 38, 66,198,181,181,180,180,224, 34,182, 96, 0,233,
- 19, 16,140, 81,120,233, 15,183,139,212,226, 24,232,230,152,152, 40,112, 13, 20, 5,100,147, 90,121, 0,173,131,223,103, 48, 36,
-166,145,233, 9,142, 30, 61,106,110,110, 14, 44,143,128,228,134, 13, 27, 2, 2, 2, 32, 67, 64,149,149,149, 12,224,171, 23,150,
- 47, 95, 14,148, 50, 53, 53,197,212, 43,127,244,204, 11,115, 77, 96, 97,246,213, 92,150,121,195,243,223, 1,138,224, 33, 32, 6,
-189,202, 95, 64,173, 95,223,126,220,183, 92, 69,222,252,139,158,233,147, 97, 16, 80,248, 47, 85,135,131,213, 96,128, 89,136, 35,
-223,169,130,235, 90,105,172, 23, 55, 14, 56, 0,214,103,152, 75, 93, 33, 99, 59,164, 2, 50,116, 65,206, 12,103, 97, 97, 41, 44,
- 44, 60,115,230,204,232,208, 63,145, 0, 32,128,176, 87, 0,192,182, 63,164, 36, 5,130,232,232, 72, 32,151, 96,129, 8, 25,234,
- 65, 46,253,225, 0, 34, 8, 84,128, 85, 22,169,248, 70, 41,253, 33, 12,160, 32,145,101, 49, 48,202,129,197, 19, 68, 49,144, 4,
- 86, 0,196,119, 2,224,165, 63,114,238, 34,178,206,163,164,253,130,220,234, 39,169,249, 15, 25,177, 1,182,250, 33,157, 0, 85,
- 82,154,255, 80,189,225,233,240,187,159, 8,234,253,253,251, 55, 48, 83,241,242,242, 94,186,116,233,239,223,191,159, 62,125,186,
-126,253,186,176,176, 48, 92, 1,144,237,237,237, 61,109,218, 52,204, 10,128,249,247,111,217, 51,151,217,120,165, 89, 47,189,253,
-248,151,247,243, 39,182,191,215,191, 48, 8,115,192, 21,112, 11,255, 49,245,126,178,112,154,237,240,168, 0,128,161,138, 57,244,
-129,121,201, 34,164, 7,128,182, 97,135,164,181, 58,180,184,225,142, 26,222,127, 15,233, 10, 32,247, 6,136,239, 64, 0,195,141,
-140,210,127,233,210,165,135, 14, 29,250,191, 74,144, 49,236,125,127,127, 63,176,226, 4, 54, 77,102,204,152, 49, 90,190, 19, 4,
- 0, 1,196,130,181, 52, 4,134, 32,114, 65, 12,172, 0,128,197, 43,176, 87,133,199,160,137, 19, 39, 66,134,110,176, 2,160, 20,
- 80, 1,158,244, 13, 25,124, 71, 43,115,193,229,248, 18, 98,202,113,228, 46, 11, 4,196,198, 70, 47, 94,188,148,152,114, 28,185,
-244, 71,107, 97, 17,212,139,199,203,120, 0,176,159, 4, 47,238,225,163,255,200,179, 2, 64, 5,120,244, 50,133, 67,135,242, 33,
-117, 0, 3,210,154, 78,166,240,247, 36,232, 13, 79, 39, 82,239,133, 11, 23,228,228,228,128,109, 43, 8,119,209,162, 69,199,143,
- 31,247,241,241, 65, 86,243,242,229, 75, 14, 14, 14, 76,189, 10, 23, 46,124,144,147, 60, 89,152, 4,225,178, 45,186,253,247,248,
- 71, 38, 31, 20,149, 31, 95,114,178,115,252, 30, 54,153, 10, 88,178, 43, 41, 41,225,185,235,170,188,188,156,200,107, 14,145,135,
-128,112,117, 8, 6,109, 32,144,161, 30, 82,113,146,164,119,217,178,165, 7, 14, 28, 96, 92, 3,106,142,236,170,225,117,107,249,
-108,103,103, 55,186,244,147, 72, 0, 16, 64, 44,152,165, 33,114,243, 31,222, 9, 0, 22,166,200,181, 2, 86,128, 71, 22, 82,148,
- 19,108,254, 99, 45, 97, 9,118, 2, 32,110, 70, 46,253, 33,131,128, 64, 7, 3,197,129, 89, 8, 79,213,133, 89,250,147, 84, 7,
-144, 55, 82, 4,233, 9, 61,122,244, 8,178,230, 7,185,225, 15, 20,196,213,145, 66,214,187,232,200, 47,200,186, 29,228,198, 59,
- 80,144, 70,122,129,197, 61,178, 79,237,237,237,187,187,187,157,157,157,255,253,251,215,214,214, 6, 36,191,127,255, 14, 12,103,
-172, 49,168,126,252,248, 37, 91, 7, 56,247,143,189,228,223,238,199, 12,206, 98,255,255, 49, 92,106, 99,253,242,143,231,221,119,
-190,119,140, 66,126, 49, 23,135, 83,190, 2,150,239,248,167, 91, 73, 41, 26, 87,129,200, 61, 97,196,244, 71,225,233, 22,235,106,
- 78, 60,247, 53, 34,235, 5,182,163, 73,210,139,217,138,135,220,225, 76,159, 1, 55,208, 52, 53,164,244,191,244,103,254,254, 95,
-224,242,106,180,244, 39, 22, 0, 4, 16, 74, 5,144,145,145, 5,186,213, 54, 38, 10,179, 37, 14, 25, 23, 2,162, 25, 51,166,209,
-200, 41, 88, 11, 83,130, 53, 7,220,205,184, 12, 4, 86, 93, 64,132, 86, 61, 32, 87, 60,120, 50, 42, 48,121,209,104, 50, 0,158,
-217,200,216, 8, 6, 84,144,144,158,158, 48,249, 43,234,102,174,247,180,211, 11,190,158, 30, 1,228,229,229,167, 76,153, 66,100,
- 89,182, 13, 85,239, 63,121, 30,206, 41,154, 64,134,246, 76, 86, 6, 6, 96,171,255, 61, 24, 61, 28,174, 25, 12, 94, 16, 67, 24,
-116,184, 45, 14,107, 73, 13, 23, 33,184, 10,136, 12,189,152,173,120, 34,251, 55,148,135, 45, 48, 25, 3,203,125, 32,123,193,254,
- 95, 43,142,253, 2, 22, 5,163,251, 25, 73, 2, 0, 1,132, 82, 1,224, 41,220, 33,211,185, 4, 19, 31,217, 10,200,190,201, 22,
-127,133, 68,161,179,105,157, 93,175, 93,187, 6, 95,253, 9, 25,162,193, 63, 77,130,166, 23,178,131,151,158,122, 71, 1,169,160,
-188,188, 28, 62, 22, 4,100,211,199, 82, 58,239, 4, 30, 88,224,222,242,121,168, 56,117, 16, 2,128, 0, 98, 25, 13,130, 1, 4,
-192, 98,151,236, 36, 59, 80,122, 71, 1,169, 99, 65,144,147, 18,128, 36,241,237, 98,148,213,159,176,193, 31, 92, 75, 66,113,141,
-231,224, 23,161,133, 94, 90, 84, 93,248, 1,176,243, 10, 12, 22, 63,255, 52,104,119,115,251, 57, 8,195,203,211,104, 52,237, 17,
- 3, 0, 2,104,180, 2, 24, 5,163,128,182,192,197,197, 5, 88, 1, 16, 63,177, 73,121,105, 59,176, 61, 0,250,214, 22,255, 33,
- 59, 10, 71, 1,121, 0, 32,128, 70, 47,133, 31,137,128,243,231,141,239,236, 26,163,225, 48, 10, 70,193, 8, 7, 0, 1, 52,122,
- 28,244, 72, 4,163,165,255, 40, 24, 5,163, 0, 8, 0, 2,104,180, 2, 24, 5,163, 96, 20,140,130, 17, 10, 0, 2,104,180, 2,
- 24, 5,163, 96, 20,140,130, 17, 10, 0, 2,104,180, 2, 24, 5,163, 96, 20,140,130, 17, 10, 0, 2,136, 38,151,194,223,191,122,
-156,129,233,135,164,140,244,231,239, 95,223,191,253,170,166,105, 67,188,222, 35,231,238, 50,252, 99,127,249,244, 41, 55, 39,183,
-160, 16,183,185,137, 34,241,122, 41,113,243,191, 55, 83,120,121,190,115,114, 51,179, 48, 51, 49,114, 48, 62,255,148, 79,188,222,
- 79,188, 65,130,194,130,252, 60,204, 12, 44, 12,239, 46,204,194,111, 47,167,244, 13,226,221,252,253, 41,202, 96,189, 20,215, 75,
-226,245, 62,251, 38,142,162,247, 39, 9,246, 62, 67,157, 36,144,254, 69,194,245,170, 79,217,212, 7,131, 94,109,108,225,220,217,
-185,186,188, 28,203, 81, 51, 87, 81,195,153, 83,230, 23, 9,113,244,132, 13, 37,109, 72,147, 16, 71,155,159,162,196,209,143,159,
-220,196,235,229, 96,255,138, 98,148,223, 20,226,245,250,110,202, 65,230, 22,191, 32,225,216,156, 94,137, 12, 26,229,193, 81,189,
- 52,210,139, 7, 0, 4, 16,190,101,160,169, 7,138, 24, 29,227,103,253,215, 39,198,160,123, 87,118, 49, 50,252,227, 97,231,156,
- 63,115,217,194,133, 19,173, 93,172,255,124,253,166,165, 97,247,239, 31, 67,118,217, 95, 45, 45,245, 59,119, 30,254,248,254,135,
- 87,210, 26, 83,239,209,243,175,254, 51, 48,126,249,249, 61,189,168,165,113,146,251,179,171,103,129,201,123,219,197, 39, 76, 76,
- 12, 19, 27,106,110,221,186,169,160, 32,207,206,201, 34, 44,200,142,197,222,117,211,216,216,216, 56, 57, 57,121,120,120, 68, 4,
- 56, 68, 89,121, 69, 37,185,249,217,121, 5,216,152, 88, 88, 88,254,255,251,251,137,153,225,211,171, 79,135,121,117,113,185,252,
-227,221,169,188,156, 31,249, 4,216,120,184, 89,217, 56,153, 88,152, 25,152,216, 88,212,165,103,255,254,207,124,239, 89, 18,126,
- 95,239,127,164, 44, 34, 34, 34,206,243,227,251,143,159, 76,236,156, 12,191, 25,254,200,197,124,120,255, 78,228,243, 54,218, 85,
-218,179,102,205, 74, 75, 75, 27,109,188, 16, 4,184,138,123, 82,213, 0,129, 4, 39,215,211,167, 79, 89, 57,216,255,113,113,209,
-211, 11,223,222, 93, 56,182,119, 5,178,136, 75,104,199,224, 12,237,197,139, 22,177,179,177,253,251,247,143,155,135,199,215,207,
-111, 52,249, 13, 9, 0, 16, 64, 4,246, 1,252,223,187, 48,205,153,112, 29, 16,234,167,242,211, 73,232,247,151, 15, 44,127,153,
-204,244,100,226,227,161,205,103, 96, 9,126,226,248, 2, 17, 57,233,127, 95, 62,217,155,235, 62,123,246,126,207,249, 63,104,122,
-211,211,219, 24,216,248, 25,185,248,254, 51,255,191,120, 45,113,222,138,157,208, 38,249, 63, 6, 15, 75, 75,134, 47, 47, 24, 24,
-120,239, 94,190,206, 42, 34, 96,109,161,195, 35, 32,134,197,122, 70, 38, 32, 98,252,207,204,250, 11,104,204, 31,102,102,102, 86,
-102,102, 54, 86, 16,249,251, 47, 3,227,159,127, 32,119,224, 0, 47, 46,182, 8,241, 51,240,113,113,137,138, 8,243,241,113,253,
-103,250,251,231,223,151,191, 12,127,121,120,184, 68, 36,100,148, 84,143,236, 57,136,253, 28,161, 25,187,127,241,243,114,243, 11,
-124,254,241,141,237,235, 87, 14, 54,118, 14,214, 31,127, 65,237,193,111, 63,190,126,251,254,232,189,206,171, 55,239, 62,189,126,
- 18,102,133,221,234,213,157,132,174, 73, 74,112, 17, 20, 23,196, 90,250, 83,177, 14,168,234,238, 6,146,109,165,165,100,232,173,
-236,234, 2,146,237,101,101,196,107,185,242,244,233,173, 91,183,128,140, 32, 71, 71, 34,181,204, 92, 5, 58, 9, 7,249, 86, 44,
- 32, 27, 66, 50,192,206, 71, 3,178,211,176, 29, 33, 9, 44,217,241,151,239,196,148,254,138,130, 66,223,127,253, 4, 50,216, 56,
- 57,126,125,255,241,239,235,183, 55, 47,158, 75,234,234,226,209, 34,169,172, 70,208, 95,252,242,154, 55,246,109, 36,168, 12, 88,
-250,219,184, 68,112, 8, 26, 16, 21, 88,161,239, 8, 42, 9, 11, 11, 91, 21,186, 7,171,148,227,158,215,112,182,150, 0,168,100,
-120,245,227,223,247, 63,160, 16,254, 10, 38,103,154, 11,168,241,178, 98,213,219,211,211, 83, 85, 80,226, 31, 20,248,227,199,247,
-137,253,125, 83,166, 76,201,201,201,161, 48,113,222,185,115,167, 27,156, 62, 9,110, 44, 56,126,252,248,131, 7, 15,222,190,125,
-251,249,243,103, 94, 94, 94, 97, 97, 97, 5, 5, 5, 75, 96,233, 49, 10,192, 96,203,146,102, 56, 27,109,221, 63, 64, 0,225,171,
- 0,102, 59,244, 5,159,104,253,119,108,107,154, 21, 3,254, 58,224,231,151,119, 18, 42,206, 45,165, 65, 11,102, 30,128,136, 28,
- 60, 54,227,235,183,159, 94, 46,249, 86,214, 9, 17, 97, 78,156,156,236,191,254,254,249,252,237,151,154, 5,230,161, 61, 15, 25,
-126, 49, 4, 69, 79, 79, 45,130,118, 45, 61,172, 28, 56, 56,216, 55,236,219,185,237,232,241, 69,243,167,253,248,254,147,141,153,
-133,135,139,141,143,237,239,157, 71, 47,208,171, 40, 96, 17,240,255, 31, 8, 49,253, 3,178,127,254, 98,103, 0, 86, 49,236, 12,
-255,127,253,253,203,204, 0, 44,202,255,254,250,247,231,239, 63,172,206,190,123,170, 93, 70,244, 63, 31, 47,183,180,140,162,134,
-174, 10, 47, 15,231,199, 47,175, 95,188,126,241,254,227,203,223, 63, 24,185,128,181,130,168,117,112,224,229,181,235,213,209, 52,
- 78, 95,250,248, 47, 47,239,119, 22, 6, 54, 14,182,239,223,216,126,125, 99,251,193,193,206,194, 8,204, 37,204, 63,190,127,249,
-254,237,243,247,239, 95,191,127,250,248,249,197,195, 9, 19, 30, 43, 27, 99,223,255,217,189,168, 27, 87,120,150,198, 97, 47,145,
-223,191,127,143,204, 22, 18, 18,130,148,134,130,130,130,119,239,222, 93,189,122, 53, 73,181, 2,155, 56,116,252, 1,104,168, 32,
-185,105,107,214,234,213,217,217,217,191, 95,189, 34,166,244, 23, 19, 19, 11,114,115,251,205,206,222,219,219, 27,236,228, 68,204,
-241,150, 64, 15,246, 52, 52, 64, 71, 42,234,235,123, 27, 27,177,178,113,105, 71,174, 3,128, 12, 99, 99,227, 61,123,238,185,184,
- 40, 17, 89,250,107, 72, 72, 10,240,241, 65,146, 25, 55, 7,231,243,215,175, 62,189,255,192, 35, 32,248,240,244, 25,121, 83, 19,
- 60, 26,253,210, 74, 98,130,125, 85, 21, 20, 32,220,250,222,201,112,169,198,226, 92, 32,249,104,251, 94, 51, 53, 89,162,134,122,
-136, 44,253,161, 45, 11, 33, 66, 42, 8,239, 71,227,102, 97,188,216,152,204,200, 39,242,247,222,197,159,247,174,222,122,247,213,
-100, 59,190,248,157, 49,115,102, 81,122,118, 92, 74,210,234,165, 43,128, 37,111, 75,103, 23,111, 67, 11,252,210, 8, 74,138,126,
- 80, 94,192,219, 58, 1,150,248,187,118,237,250,253,251,183,178,178,178,173,173, 45, 63, 63,255,135, 15, 31,158, 61,123,118,255,
-254,125, 32,233,230,230, 6,172, 15, 70, 75,127, 52, 46,114, 29, 0, 16, 64,232, 21, 64,218,109,216,209, 58,224, 29,118,255,255,
-125, 97,248,245,243,247,129,101,105, 14, 12,132,250, 1,108, 90,154,234, 76, 76, 7,110,125,120,203,192,112,253,227,211,219,192,
-254,242,198,173,147,190,189,249, 27,157, 88, 8,108,206,251,249, 90,254,101,225,193,165,249,214,173,235, 64, 53, 94,250,192,102,
-157, 20, 3,131,252,143,159,191, 66, 60,220, 56, 4,152, 22, 45,219, 1,108,190,175, 89,177,128,249,207,103, 77,121,246, 59,143,
-208, 53,254,251, 15,186,151, 10, 8,254,254,253,251,147,245,255,111,198,223,191,126,253,250,198,245,131,225, 31, 7,211,255,191,
-127,217,254,127,249,245,227,215,247,111, 12,124, 88, 44, 21,229,249,201,194,194, 9,108, 47,168,168,168,136, 75,152, 51, 48, 51,
-253,253,123,150,233,255,135, 31, 95,129, 85,198,215, 23,207,222,137, 10,191, 17, 22,176,150,148, 93,204,192,128,210,226,227,252,
-241,231,255,207, 55, 12, 63,216,127, 49,253,254,202,198,242,133,147,149,133,149,141,225, 31, 55, 35, 51,227,151,175,223,222,191,
-120,120,247,236,209,119,143, 30, 1, 93,197,244,159,153,200,120,154, 55,125, 30,132,145,148,137,115,220, 9,249,158, 41, 32,187,
-168,168,232,209,163, 71,192, 34,146,188,189,151, 83,167, 78,125,249,242,229,154, 53,107,188,237,236, 4,197,196, 72,213, 14,108,
-251,191, 7,151,140,144,131,225,210,195, 8, 28, 87, 9,108,251, 3, 75,127, 80, 66, 97, 99, 83, 83, 83, 91,187,111, 31, 49, 93,
- 1,202,207, 64, 6,150,242,192, 66, 31,114, 97, 8,156, 12, 13, 13, 37, 88,250,171,137,137, 3, 75,127,102, 38,166,172,152,232,
-239, 63,126,246,206,157,203,197,201,249, 3, 8,190,127,103, 98, 97,126,124,254,188,172,161, 33, 46,189,144, 82,254,246,131, 7,
-200, 92, 50,128,185, 83,196,158,213, 21,174,126,201,255,217, 85,137,212, 2, 63,203, 19,114,155, 35, 86, 17, 92, 0,216,240,127,
-248,229,239, 65, 87, 81,214,252,153,159,162, 21, 89, 4,197, 8,150,254,123,247,238, 85,144,148, 74,201,202,168, 40, 44,155, 50,
-127,134,153,145,209,140,201, 51, 10,202, 74,150, 90,154, 95,190,124, 89, 23,111, 87, 9,127,209, 15, 52, 25,200,197,175, 30, 88,
-250,139,138,138, 26, 26, 26, 50,129,123,249,192, 28,199,202,202, 10,108, 24, 73, 72, 72, 0,235, 0,160,108,112,112,240,104,233,
-159, 86, 14, 29, 54,156,213, 89,129, 86, 7, 0, 4, 16, 74, 5,144,122,172,242, 27, 51,199,191,191,255,254, 49, 50,243,254,255,
-206, 0,108, 6, 51, 48, 51, 72,171,177,254,250,250,127,207,188, 52,151, 36,188,117,192, 63,102,102, 72, 97, 7, 44,107,101,248,
-165,213, 31,222, 92, 51,125,230,124,166,159, 92,110,142,214, 59,246, 30,253,246,141,129, 75,136, 31, 83, 27, 39,151,250,247,111,
- 55,129,197, 55,124, 84,134,129,225, 25, 19,179, 67, 92,124,242, 63,246,175, 91,182,206,243,243, 77,226,226,102,248,246, 22,152,
-136, 37, 48,181,255,102, 96,102, 5,151,254,191,255,252,253,249,233,247,183,223,223, 62,112,178,252,254,198,250,147,229, 55,243,
-111, 70, 96, 65,254,233,251,159,175,159,127, 51,136,163,107,188,184,191, 83, 73,130,145,153,153,145,145,137,253,239,223,255,127,
-190, 61,250,249,247,247,211, 23, 31,223,189,255,242,241,243, 95,166, 31, 63,254, 48,188, 96,102,189, 32, 37,247,137,151,131, 19,
-211, 94,160, 87,255,127,254,241,253,243,179,191, 47, 63, 50, 43,203, 0,211,223,223, 63, 63, 63,188,120,112,243,212,241,215, 15,
- 31,129,139, 45, 22, 38, 96,232, 50, 83,243, 12,119, 72, 3,127,214,172, 89, 33, 33, 33, 6, 6, 6,236,236,236,125,125,125,228,
- 25, 5,105,254, 91,232,232,136,139,139, 3, 75,112, 31,123,123, 41,210,235, 0, 65,112,185,207, 42, 38, 6, 52, 1, 72, 18,236,
- 7, 0,219,254,172, 63,127,174, 93,187, 22,185, 43, 64,252,112, 16,217, 0, 82,238, 35, 95,201, 2,172, 62, 9, 86, 0, 95,191,
-125, 19, 21, 18, 74, 12, 9,249,240,241,211,235,119,111, 89, 89, 89, 32, 0, 88,196,176,115,114,125,122,251,230,243,227, 39,188,
-178, 56,167,230,128,165,255,146,181,155,145, 43, 0, 72, 63,192,220, 72,207,203,209,158, 8, 87,127,102, 96,224,229, 21, 54,112,
-241,227,222,189,105, 46,125, 70,255, 47, 45,156,240,115,199,124,177,217,231,128, 53, 1, 51,159,208,159,247,175,128,165, 63,176,
- 67,240,245,207,127,102, 28,195,168,247,239,220,217,182,105,235,194,217, 11, 39,205,157, 54,163,111,130,144,176, 80, 75, 91,203,
-162,101, 75,109, 45,172,231,205,157, 23, 20, 26,100,107,109, 75, 70,233,191,105,211, 38, 96,191, 86, 82, 82, 18,237, 2,106,180,
-145, 31, 96,219,223,200,200,232,207,159, 63,192,174, 0, 7, 7, 7,176, 2,184,113,227, 6,176,169,193,195,195, 3,236,237,189,
-120,241, 2,168,102,116, 44, 8, 81,128,148,119, 64,234, 0, 56, 0, 8, 32,148, 10, 96,182, 85, 59, 84, 29,211,229,255,251,230,
- 51, 10, 75, 50,164, 76, 62,205,169,105,250,120,227,191, 89,181,204, 71,150,167,217, 50,205,250,135,165, 74,223,180,239, 93,154,
-202, 39,255,248,252,226, 92, 96, 7,226, 29, 48,225, 50, 48,252,148, 87, 55,226, 96,103,249,254,245, 39,195, 47, 80,197, 0,236,
-139,189,122,247, 30, 83,239,132,254, 34,208,221,241, 39,230, 50, 49, 65,150, 49,128,134,107,254,125,191,250,227,231,111, 78, 30,
- 14, 6, 54, 80,197,240,249,211, 39, 49,164,251,167, 80, 60,240,239,215,191,127, 44,192, 20,240,243,231,207, 47, 44,204, 44,191,
-152, 24,158,127,250,195,245,231, 47,219,191,255,172,204,223,152, 89,254,124,253,246,229, 23,150, 69, 29,188, 60, 95,255,252, 97,
-252,249,235, 47, 48,123,223,186,243,232,201,243, 55,223,127,253,254,244,229,221,151,207, 31,126,252,253,197, 8, 76,244,223, 62,
-126,250,118,255,225,211,143,111, 63,127,101, 96, 80, 65,211, 14,116, 22, 36, 71,252,249,248,245,201,133,235, 47,175,223,255,244,
-249,206,231, 15, 31,254, 51,176,176, 50, 51,254,103,100,101, 98, 2,245,161, 8, 30, 83, 82, 26, 87,138,103, 44, 8,139,127, 89,
-160, 81, 6,204, 30,192, 26, 23,249,176, 73, 82,155,255,192, 90, 4, 52,198, 45, 42, 74,252, 41, 99,216,139,117,112,185, 15,172,
- 3,240,116, 2,174, 60,125,202, 0, 62,251, 26,216, 34,131,244, 3, 64,197,205,165, 75, 64,114,221,254,253,248,235,128,226,250,
-122,200, 72, 23,144, 93,210,208, 0,239, 19,224, 25,249, 65, 6,192,230, 63,218, 56, 50,228,208, 99,248, 88, 16, 86, 32,192,194,
-242,227,215, 79, 96, 8,223,184,119, 23,104,227,181, 91,183,127,253,250,205,196,192, 8, 12,127,160, 99,128, 45,142,239, 95,191,
-237, 94,181, 50, 8,233, 48, 87, 52, 0, 47,253, 99,130,125,145,197, 79,158,187,164,170, 40,207, 78,216,225,176,177, 11,118, 85,
- 96,209, 15,236, 7, 0,145,103, 96,242,111, 22, 85, 26,150, 16,239,158,179,201,169,189,202,230, 96,119,138,252,123,102,199,223,
- 79,160, 73,133, 87,217, 86,242, 51,143,255,253,135,189, 41,163,174,170,206,197,197, 61,105,206, 84, 71,123,123,115, 75,139, 93,
-219,118,222,184,115, 11,216, 49,231, 96,103,183, 54,182,222,186,105,235,155, 87,111, 2, 3, 3,137, 47,250,129,205,246,123,247,
- 64, 81,118,234,212,169,140,140, 12, 60,189,219, 7, 15, 30, 40, 43, 43, 67, 24, 23, 47, 94,148,151,151, 87, 84, 84,124,255,254,
-253,153, 51,103,148,148,148,128,141, 12,160, 8, 80,106,180, 2,192, 3, 0, 2, 8,203, 28, 64, 26,227,197,255, 7,151, 49, 50,
-179, 48,228,206,205,127, 32, 57,169,111, 33,176,176,156, 94,123, 51,181, 77,157,121,207,172, 52, 89,205, 89,170, 89,192, 54, 55,
- 19, 19,202,224,134, 10,159,204,149, 75,235,192, 76, 96,193,248, 21,124,212,251,111,134,223, 63, 89,254, 1,155, 14,160, 50,125,
-253,134, 93, 64,210,218, 19, 75, 25,177,227,242,127, 15, 67, 29,120, 23, 22, 88,202, 49, 48,176, 50,176,114,252, 97,252,251, 15,
-124,210, 83,120, 52,232, 76,249,135,199,102, 97,234, 5,166,203, 63,255,152,152,254,252, 97,250,245,243, 27,184, 27,248,157,153,
-153,251,207,247, 79,223,129,133, 48, 35,176,103,240,237, 47,195,183, 95,127, 48,253,249,231,215,191, 31,172,204,255,190,253,249,
-243,239,227,231, 47,191,153, 25, 89,127,254,249,253,235,255, 47, 32,193,192,246,143,137,145,129,145,253,223,199,239,127, 95,188,
-254,246,245, 39,250,196, 53, 19, 35,180,195, 2, 44,151, 32,103, 81,253,254,241,253,227,187,119, 76,192, 80, 99,249,207,240,159,
-133,153,145,129,248,150,255,205,135, 55,213,229,213,241,140,252, 32, 15,136,115,114,114,194,107, 2, 96, 62,129,148,254,192,106,
-128,159,159,255,227,199,143, 31,128, 53, 16, 17, 99, 38,144,230, 63,176,155, 12,225,230,228,228, 76,158, 60,153,188, 78, 0,220,
- 4,200, 64, 16,254,209,127, 70, 94, 94,160,131,203,202,202,128,141,232,223,239,223, 3,221, 92,145,147, 67,176, 31,128, 60,214,
-143,107, 62, 0, 83, 87, 39,161,105,246,179, 96, 0, 97, 99,158,136,245,254,221, 59, 30, 94,222, 55,239,223,239, 63,121,146,133,
-137,249,231,239,223,223,190,127, 7, 54, 48, 33, 85, 17, 48,145,252,250,249, 19,127, 80, 99, 14,251, 0, 69, 32,157, 0, 85, 5,
-133, 71,247,238,144, 20,194,192, 58,224,235,235,147,219,215,207, 37,163, 31, 64,112,228, 7, 14, 46,172,154,109, 16, 95,200,174,
-168, 7,202, 32,111,158,223,122, 7, 90,105,202,110,233,243,232,239, 31,174, 41, 39,177,106,249,244,233, 19, 59, 39,135,138,162,
-226,253, 39,143,223,190,126, 27, 30, 19,189,109,239,238,137, 29,189,235,183,109, 82, 85, 84,141, 11,142, 61,126,238,232,250,181,
-107, 3,113, 15,197,192, 75,127, 96,209,239,234,234, 10,169,161,159, 61,123, 6, 44,253,241,187,246,237,219,183,182,182,182,192,
- 60, 14, 44,229,143, 30, 61,170,165,165, 5, 76, 81,178,178,178,192,206, 49, 19, 24, 0, 59, 16,240, 40, 30, 5, 88, 1, 64, 0,
-177, 96, 41,253,247, 45, 96, 96,103,103, 16,146,251, 38,107, 62,169,101, 6,195,223,175, 12, 47, 62,213, 44, 63,152,225,159,193,
-176,103,225,163, 23,175, 25, 84, 25,254,253,253,131, 86, 1,220,249,244, 73, 77,128,239,207, 79,134, 59, 7,150,168, 56,184,131,
-199, 72, 24,126,255,250,205,202,192,244,229, 7,104, 17,133,135,131, 17,167,176, 52, 86, 71,120,232, 50,110,187,248,159, 21,216,
-220,151,115,255,245,232, 48,164, 19,192,202,198,254,155,225, 7, 15, 39,232,238,192, 77,219,150,127,127,251,216, 66, 89, 0,203,
-192,211,191,127,108,191,190,255,102, 96, 3, 86, 2, 12, 63, 64, 89, 20,216, 43,252, 9, 44,218, 89, 88, 25,126, 48,252,255, 7,
- 26, 26, 2,138, 96,230,128,111, 63,254, 49, 51, 51,254,254,243,251,199,207,127,159, 62,255, 0,185,246,223,255, 95, 63,255, 1,
-107, 31,102,160,110, 14, 6,198,239,127,255,129,150, 16,125,255,252, 29, 95, 8,130,186, 2,255, 24,254, 51, 50, 48, 49, 1, 75,
- 7,230,127,255, 25,129, 12, 80, 45,248,143, 9, 88, 49, 49,254, 99,198,223,252, 39, 53,194,184, 96,203, 16,145, 75,127, 96,123,
- 7,216, 5, 6,118,131,224, 45,101, 98,154,255, 10, 34, 34, 16, 46,144, 65, 97, 39,128,200,209,255,255,159, 63,215,214,214,254,
-124,251, 22,114,253,163, 10,184, 6, 98,253,249,211,215,215,247,233,171, 87,210, 84, 93, 97, 9, 31,225,129, 79, 0,160, 1, 99,
- 99, 99,120, 15,224,234, 83,140,246,193,207, 95, 31,126,189,251,241,227,135, 0, 63, 63, 7, 48, 41,254,253, 3, 12, 88, 96, 89,
-243, 11,216, 17,248,253,251,223,159,191,248,195,249,246,131, 7,240, 25, 96,228,177, 32,228,153, 97, 82, 1,183,168, 57,176, 29,
- 69,134, 70,226,231, 0,236,119,191,126,165,176, 6,216, 9, 96, 84,212,147,159,127,254,205,143,127,220, 44,140,191,142,108,184,
-121,239, 62,174, 4,242,253,207,175,179,199, 79, 77,232,233,183,114,176,169,105,106,216,185,125,231,210, 69,139, 45,237,108,100,
- 21,228, 88,184, 88,247, 30,222,187,108,225,226,117, 27,214,110,221,186,213,219,219, 27, 83, 59,228,158, 28,120,209, 15, 1,192,
-118, 12, 49,254, 2,166,121, 96,137, 15, 74,192, 10, 10,192,216, 4,118,215,128,217, 31,216,234,103,103,103, 7, 54,134,128,130,
-188,188,188, 64, 53, 35,185,124, 7,182,108,182, 44,105, 70, 27,246, 65, 6, 0, 1,132, 50,176, 7, 26,249, 57,188,148,129,147,
-227,193,167, 95, 12,223, 63,178,255,251,166,167,163,196,240,246, 27,195,175, 63, 14,250,106,160,133,153,191,127, 48, 51,130,135,
-104,254,253,197, 48,234,195,173, 15,143, 88,216, 25, 60,252, 10,151, 77, 2, 54, 82,126, 49,124,251,249,247, 59,195,134,253, 23,
-246,156, 6,221, 23, 47, 35,167, 8, 90, 99,143, 3,120,233, 51,254,254,193,176,105,235, 14, 19,183, 92, 80,243,159,129,149,153,
-147, 33,204, 39,212,203,206, 31, 40,251,228,225,221,255,191,255, 98,111,221, 0,155, 99,160,201,234,191, 63,127,129,166,127,127,
-254,248,254,237,219,183, 47, 95,190,124,254,244, 17, 24,247,159, 62,127,249,241,229,203,247,239, 88,138,240,207, 95, 24,191,255,
-248, 11, 68, 95,191,253,254,252,229,231,251,207, 63, 63,124,250,245,241,243,239, 15, 31, 64,228,187,183,127,222,189,255,243,238,
-227,159, 55,239,126,189,124,131,101, 4,137, 9, 88, 28, 0,179,214, 95, 70, 70, 38, 96,153,255, 31,228,142,255,204,127,255, 65,
-195,243, 31, 56,187, 16, 51,255,171,105,169,121,116,219,209,157,251,118, 66,234, 3, 96,111, 0,143, 98, 96, 18,103,129,133, 97,
- 23,120, 21,102, 69, 69, 5,228,148,121,228,101,145,196, 52,255,197,197, 81,102, 69,178,179,179,183, 30, 58,244,140,136,197, 60,
- 88, 1,176,249,143,191, 10, 1, 54,243, 33,140,149, 43, 87,222,121, 1, 90,202,181,229,192, 1,184,224,205,155, 55, 69, 69, 69,
-105,148, 7, 32,165, 60,242, 21,137, 16, 54,158,241, 31, 80, 69,203,199,251,239,239,223, 79,239,222,191,121,243,230,237,135,247,
- 95,191,125, 3,162,207, 95,190,124,253,248,233,243,135, 15,192, 84,246,235,199, 15, 96, 53,128, 75, 59,114, 41, 15, 47,253, 33,
-108,228, 21, 65,248,193,151,215, 39,247,172, 70,100,221,111,239, 46,208,186,188,120, 30,174, 0, 44,247,129,165,255,207,131,107,
- 30, 38, 26, 2, 75,255,195,174,162,127, 62,190, 54,217,241,138, 5, 71,244, 2, 91, 18,169,249,153,119,110,222, 60,126,224, 48,
- 63, 47,127,100,120,164,128,176,208,185, 83,103,120,216, 56,184,185,185, 37, 21,164,150,175, 88, 94, 81, 93,245,133,184, 50, 29,
- 2,140,140,136, 58,205, 31, 88,190, 3, 11,122, 96, 75, 31,216,234, 55, 51, 51,211,214,214, 22, 17, 17,225,224,224, 0, 22,253,
-250,250,250, 2, 2, 2,144, 85,161, 35,188,141,143,220,187,197,236,233, 2, 4, 16,162, 7,144,118,107,218,255,215, 15,126,176,
-114,236,121,197, 5,140,107,133, 15,207,153,215,181,108, 79,111,238,214, 82,145, 20,228,200,213,224,100,152,122,254,255,239, 95,
-143,153,193,227, 6, 88,202, 25, 30, 96,138, 5, 82, 23, 47,109,214, 55,240,173,171, 89,180,113, 93,223,174,253,215, 29, 45,181,
- 89, 88,216,119, 31, 62,247,159,153,229,215,223,191,248,221,234, 97,168,177,227,236, 13,134,222,142, 16, 95, 47, 31, 31,223,157,
-251,214, 3, 27,232,222,238,145, 76,127,127,179, 50, 99, 47, 78,129, 69,255, 95, 80, 73,251,151, 5,216,210,255,207, 2,108, 2,
- 0, 27,194,160, 37, 1,192,134, 56, 35,168,127, 0,233, 37, 96,233, 63,126,231,101, 98,126,207,198,206, 4,106, 53,255,253, 15,
-108,237,255,251, 15,236, 61, 0, 59, 1, 12, 76, 28,255, 25,153,129,173,121,198,191, 76,140, 63,255,254,255,240,245, 63,159, 56,
-214, 1, 25,196, 89,228,144,240, 96, 97,254,207, 4,170, 16,152,225,133, 33,168,110,192,221,252, 7,150,254,208, 86,234,130, 61,
- 64, 4,100, 0, 43, 3, 6, 47,124, 65,244, 15, 60, 20,187,102,205, 26, 72,222, 83, 84, 84,132,120, 16,216, 44, 5,122,156, 96,
- 5, 0, 44,253, 33,205,127, 69,234, 21,184,172,224,129, 35,111,123,156, 19,155, 86,186,186,189,189,189,192,102, 62,176,160, 7,
-246, 6, 2,192, 39,227,171,171,171,195, 5, 31, 62,124, 40,194,206, 46, 1,235,145, 80,119, 14, 0, 8, 32, 87,178, 32, 95,123,
- 75,240,210,218,247,111, 62, 50, 50,252, 1,181, 40, 94,126, 99,227,224, 0,109, 42, 4,247, 0,190,127,249,242,243,235, 87,208,
-132,211,135, 15, 30,184,239,158,133,148,242,144, 81, 32,115, 35,189,147,231, 46,193,165,208,166, 4,112, 54,111, 95,159, 60,121,
- 96,189,179, 87, 4,180, 50,248,120,251,230,165,163,100, 52,252,137, 31,255, 1,245,213,222,125,125,148, 98,250,255,254, 37,177,
-217,231,190,254,249,255, 41, 90,145,127,217,253, 79,137,194,192,210,159, 9,119, 5,159,157,147, 83,219,209, 34, 38, 44,242,251,
-223,223,219,143,239, 69, 71, 70, 45, 90,178,100,227,134, 77, 81,209, 81, 63,127,252, 60,124,230,216,247,239, 95,210, 18, 18,246,
- 30, 63,142,185,142, 3, 24, 35,119,238,220,113, 3,119, 16,145,251, 1,111,223,190, 45, 45, 45,133, 79, 12, 96, 5,194,194,194,
-207,158, 61, 19, 20, 20,156, 49, 99,134,169,169,169,161,161, 33, 27, 27, 27, 48,239,159, 56,113,194,194,194, 2,168, 0, 40, 43,
-140, 99,238,112,196,214, 1,104, 0, 32,128, 16, 21,192, 44,181, 44,135,175, 51,111, 61,121,255,220, 23,220,232, 56, 89,241,127,
-203,116,169,151,247,251,237,131, 24, 62,188, 99,104, 91,240,255,233,141,191,156,220, 31,222,129,186,239,140, 24, 91,171, 14, 30,
-216,104,239,224, 12,100,124,253,247,251,206,135, 71,192, 18, 89,133, 79,209,209, 81, 79, 92, 68,226,237,199, 79,160, 14,194,175,
- 63,207, 63,124,213,196,230, 8, 25, 57,203, 39,143,142,131,211, 44,139, 7,104, 37, 40,203,142,203,191,119,110, 89,243,242,205,
- 51, 97, 1, 80, 23, 79,128,141, 85, 82, 0,251, 18,210, 95, 12, 44,108,160,150, 24, 51,176,209,205,244, 23,216, 71,249,243,151,
-149, 5, 82,250, 51,128, 23,137,130,182, 8, 96, 3, 1, 17, 21, 27, 22,151,112,177,253,103, 97,133,245, 36,126, 51,252,249,207,
-240,227, 23,195,223,159,192,134, 61, 35, 35, 27, 35,208,220,175, 63, 25,146, 19,186,208,182, 86,195,103,128,255, 49, 1,235, 13,
-208,248, 15,164, 13, 14,236, 1, 48, 49,131,170, 35,160,236,127,102, 96,183, 0, 95, 39, 0, 94,250,163,177, 65,117, 0,174,225,
-166,191,127,129, 69, 15,176,248,134, 84, 0,107,192, 0,200, 85, 86, 86, 6,218, 62,113,226, 68, 96,135,224,221, 59,124,187,129,
- 74,192, 96,199,142, 29, 95, 95,162,156, 88, 0,172, 15,238,223,191,207,128,119, 83, 24,230,206, 47, 96,209, 15,172, 78,128, 65,
-231, 99,111, 47,141,123,254, 0, 88,178, 91,233,233,189,125,240, 0, 88,202,223,130,173, 5, 82,149,148, 44, 42, 42, 58,122,244,
-168,154,154,154,142,180, 52,158,105, 15,228,113,127,226,231, 0,144, 39, 3,202,203, 65,139, 62,239,221,131,182,253,225,219, 2,
-240, 44, 4,226,145, 22,251,254,252, 5, 48,101,125, 5, 54, 50,223,188, 6, 38,174,255,255,255,253,248,241,227, 63, 24,220,191,
-118,253,247,175,159,120,150, 0,161,244,110, 29,237,129, 8,190, 36,148,152, 33,160, 47,111, 78, 1, 75,127,144, 51,184,185, 55,
- 34,117, 2, 76,108, 3,105, 90, 82,152,108,127,117,198,147,193,192,216,229, 85,182,149,196,180, 99,192,250, 64,144,141,241,237,
-187,247, 44,140,140, 44,120,199, 8,227,226,226,224,236,205,155, 55,123,121,123,110,217,180,101,213,170, 85, 13,213,181,187, 14,
-236,101,102, 97,150,150,145, 6, 6, 36, 3, 27,150,133,124, 42, 42, 42,152,213,192,238,221,187, 25, 8,109, 1, 3,182,244,239,
-221,187,167,165,165, 85, 80, 80,176, 98,197, 10,126,126,254, 27, 55,110, 32,143, 13, 0,101, 21,200, 29,112, 27, 33, 0, 32,128,
- 80,230, 0, 14, 24,166, 51,192, 86, 54,111,121, 37,224, 35,202,248,255,204,182,255,199, 55,129,234,126, 14,142, 31, 92,188,187,
- 5, 28, 94, 88,186,128,199, 34,208, 55, 4,222,188,245,235,200,137, 54, 80,153,200,204, 1, 25,174,184,243,233,121, 93, 78,210,
-183,111, 63, 63,125, 7,205, 1,252, 98, 98,119,242, 8,193,234,136,218,234,132, 29, 91,193,219,106,254, 66, 6, 91,254,120,232,
- 50, 70,100,245,113,113,177,243,129,231, 0, 88,255,253,144, 22,197, 94,190,176,252,255,243,139, 17, 84, 7, 0,139,138,191,192,
- 60, 10,204,169,127,192,115,182,140, 76,192,238,192, 31, 72, 69,133,163, 14,248,240, 93,224,251,207,183,108, 44, 32, 69, 64, 21,
-127,128,213,199,239,255,191,255,252,255,242,253, 31,168,249,207,192,248,251, 31,116, 48, 7,189, 32, 6,141,238,255, 5,194,255,
-192, 98, 1, 60,254,195,200,128,110, 5, 68, 91, 94,161, 35,174,115, 57,174, 31,191, 78,106,108, 1,211,244,247,239,223,117,117,
-117,149,148,148, 30, 60,120,176, 10,188, 75, 22, 82, 25, 64, 64, 71, 71, 7,193, 58, 0, 8,176, 78,175, 5,199,199, 51, 16,177,
- 41, 12,178, 53, 23, 25,248, 58, 56, 16,156, 61,150,128, 53,196,144,123, 3,192,134,191,137,186, 58,219,215,175,248,189, 76, 73,
-250, 70, 46,229,145,119, 81, 48, 16,177, 79,152, 83, 82,226,219,237, 59,127,255,252,249,244,254, 3,184,119, 5,138,226,247, 47,
- 95,125,122,255, 30,232, 42, 60,205,127,180,201,128, 37,107, 55, 35, 47,253, 68,158, 30,192, 14,190, 93, 60,177, 31,178,158,130,
- 97,227,106,208, 2, 80, 35,251, 8, 33, 49, 3, 90,150, 3,255, 81,234, 0,134,217, 6, 25,117, 47,254,253,211, 95,112,234,148,
-135,184,246,150,151,192,210,159,151,149,216,131, 35,129,145,187,239,192, 62, 39, 87,231, 77,107, 55, 52,119,118,148,127,252,248,
-255,223,191,149, 43,215,138,136,136, 60,250,132, 83, 23, 90, 53,192, 64,104, 11, 24, 16, 88, 90, 90, 2,219,248,231,206,157, 51,
- 50, 50,114,118,118,222,191,127,191,156,156, 28,176,133,100,111,111, 15,140, 32,160, 56, 43, 43,235, 8, 95, 2, 4,217, 7, 0,
-239, 1,160,113,129, 0, 32,128,112,238, 4, 6,246, 3,230, 94,222,163,243,247,170, 4,235,199, 31,255, 89,110,255, 23, 96,126,
-253,233,133, 5,116, 27, 33, 19,182, 1, 25, 81, 33, 67,175,132,184,191,255,225, 77,245,255, 95,190,126, 98,102,225,103, 96,226,
- 42,235, 33,176, 83,201,195, 91,103,195,212, 10, 6,166,111,240,130,148,135,135,255,239,239,247, 12,255,191, 62, 60, 54,203, 68,
- 79, 14,231,224, 50,176,145, 13,206,154,127, 24,152,217,254,131,171, 1,112,233, 15,106, 46, 51, 64, 9, 92, 32, 33,173,102,214,
-228,134, 63,191,223,177,128, 23, 57,131,250,248,127,254,255,248,205,240,233, 51,176, 51,240,255,207,127, 38, 22, 86,198,214, 38,
- 44,139, 91, 82, 82, 64,195,199, 11, 23,220, 97,252, 13,106,254,131,186, 25, 32, 10,220, 74,250,207,204, 8,154,139, 98, 41, 46,
-113,195, 99,117, 74,115,202,131,187, 15,200,136, 81, 96,250,126, 15, 94, 63, 99,108,108,108,102,102,246,250,245,235,187,119,239,
-130, 22, 38,254,251,183,118,237, 90,130,117, 64, 78,124, 60,167,152,152, 15,182,225,154, 28,112, 5,192,137,187, 40,135,100, 72,
- 52,189,210,226,226, 36,185, 31,216, 27,176, 6,247, 6,196, 56, 57,117,172,172,104,154,250,209,202,119, 96,136,161,205, 6, 19,
-172, 3,132, 85, 85, 62,191,127,207,194,206,246,243,231,143,191,191,255, 0, 3,153, 87, 80,240,227,187,119,192,210, 31,127,243,
- 31,190, 17, 12, 50, 1,112,242,220, 37, 96, 5, 0, 31,253,199,181, 47, 76, 77,242,253,155,183,111, 86,173, 94, 14, 23, 9,139,
- 78,126,247,139,180,117,159,152, 99, 62, 24, 34,140, 4,251, 1, 12,219,161, 7, 57,168,108,132,238,189,255,248,251, 47,241,110,
-112,114,112,186, 40,120,209,205,219, 35, 53, 54, 89, 79, 95,119,211,198,205,199, 47,156, 77, 75, 75,123, 68,232,144, 50,120, 53,
-208, 13, 6, 4,119, 56, 2,107, 11, 96,143, 97,203,150, 45,192, 38, 17,176,223, 0, 89, 11,119,245,234, 85, 96,219, 31, 88,250,
-195,235,146, 17, 14,208, 54, 3, 35, 3,128, 0,194,119, 20,196, 63, 93,151, 75, 12, 46,151, 72,177, 73, 71,199,122,210,164, 69,
-121,249,145,210,242,192, 84,251,147,149,157,227,201,243, 79,246,190,113,196,232, 53, 52, 84, 74, 72, 8, 91, 48,111, 29,195,191,
-135,192,150,253,159, 31,223,165, 37,249,229,248,254, 16,208,246,247, 31, 11,211,191,223,140, 44,172,255,255, 64,171, 1, 32,241,
-255, 47,145,203, 90,210,114, 65, 67, 10,245,149,153,172, 44,140,144,115,131,254,254,253,251,225, 51,176, 38, 96, 96,102,249, 55,
-109, 42,190,244, 23,159, 0,218, 28, 48,111,238, 77, 6,200,137, 52, 76,192,238, 2,104,204,167,168,196,135,160,189, 31,191,124,
-196,122,212, 15, 65, 0, 44,131,128,157, 0,160, 35, 63,125,250,196,204,204, 12,100, 72, 72, 72,252,254,253, 27, 57,171, 0,235,
- 0, 92,103, 66, 64,154,234,130,100, 45,247, 20,130, 4, 41,137, 37, 62, 38, 16, 39,113, 88,150,236, 57, 0,180,146, 29,235, 90,
- 32,130,219,193, 20,204, 76,129,228,141,131, 7,127,124,251,254,239,239, 95, 77, 99, 99, 93, 43, 59, 30,105,188, 1,248,159,241,
-225,253,187,160, 25, 23, 6,134,164, 32,232,148, 14, 80, 4,153,141,117,139,200,173,231,192, 36, 33, 24, 30,157,242,240,241,139,
- 19,135,182, 0, 69, 86, 45,157,107,110,231,195, 43,110, 67, 76, 64,133,129,246, 97, 16, 62,233,225, 47, 35,246, 77, 8,143, 2,
- 37,182, 63,251, 65,173, 66, 71, 31, 12,206,156, 57,179,247,196, 65, 97, 17, 97,146, 14, 41,129, 84, 3,196,168,228,229,229, 13,
- 14, 14, 62,126,252, 56,176, 25,116,234,212,169,209,179,128, 48, 71,255,209, 74,127,180,249, 0,128, 0,162,254,165,240,202, 26,
-166, 91,119,222, 9,240,230, 18,147,150,125,247,249,143,189,119, 44,241,122, 45, 77, 53, 44, 77,171,210,211,235, 24, 24, 94, 10,
-242,178,200, 9,253, 35, 60,106,153, 88, 66,185,155, 27,219,167, 3,201,252,130,156, 95,223,127,255, 3, 47,181,236,159,218, 79,
-164,222,164,100,208, 73, 65,243,230,220,248,247,159,185,178,194,159, 14,145, 10, 58,242,232,231,207, 95,191,126, 65,138, 69, 72,
-129, 56, 92,207, 7, 37,120,194, 4,241,128,152, 83, 63,113, 1, 13,123,123,226, 21, 63,191,119,211, 92, 85,134,108,187,222,254,
- 82,225, 17, 87,113, 9,181, 33, 85, 35,174, 83,222,144, 0,211, 31, 70,246,239, 76,216,231,255,239,126,254,163,198,139,167, 64,
- 32,103,161,176,137,137, 9, 29, 18,137, 37, 24,140, 22,247,184,234, 0, 60,178, 0, 1, 52,122, 41,252,144, 4,163,183,186,143,
-130, 81, 48, 10, 40, 7, 0, 1, 52,122, 35,216,144, 4,163,165,255, 40, 24, 5,163,128,114, 0, 16, 64,163, 21,192, 40, 24, 5,
-163, 96, 20,140, 80, 0, 16, 64,163, 21,192, 40, 24, 5,163, 96, 20,140, 80, 0, 16, 64,163, 21,192, 40, 24, 5,163, 96, 20,140,
- 80, 0, 16, 64, 52,185, 20,126, 84,239,168,222,193,169, 23,114, 26,196,104, 88,141,234, 29, 81,122,241, 0,128, 0, 98, 65,203,
- 30,196,232,193,154,133, 40,209, 59, 10, 72, 5,184, 10,178, 81, 64,106, 40, 17, 25,146,143, 30, 61,122,250,244, 41, 59, 59,187,
-136,136,136,156,156, 28,221,188, 0, 63,243,117, 48,231,160, 87,175, 94, 61,125,250, 20,191, 26,105,105,105, 49,108,187, 79, 40,
-209, 59, 10, 40, 7, 0, 1,132,190,236,151,224,206,123, 60, 27,172,208,244, 98, 30, 77, 76,211, 51,135,233, 95,184,224, 87, 80,
- 80, 80,160,169,169,137, 95,187, 52,234, 25, 56,200, 57, 33, 52, 52,212,197,197, 5,143, 94,170,212, 1,238,238,238, 64,114,231,
-206,157,116,208,251,245,235,215,181,107,215, 66, 46,133, 15, 14, 14, 54,196,125,159, 34,166,103, 9, 94, 10, 63, 99,198, 12,172,
-173, 13,252,161, 68, 76, 24, 2, 75,168,159, 63,127, 2,173,224,224,224,248,241,227, 7,176, 38, 56,125,250,180,190,190,190,138,
-138, 10, 46, 45,214,214,214, 4,253,245,252,249,115,200,181, 39,248, 1,176,244,135, 28,247, 77, 76, 88, 17,179, 23, 36, 44, 44,
- 12,127,186,130, 0,121,121,121, 6,240,121,203, 64,191, 67,226, 14, 79,154, 4,166,219,162,162, 34, 60,150,190,127,255,222,220,
-220, 28,107, 80, 3,245,106,105,105,225,209,251,242,229,203,218,218,218,209,230, 14, 37, 0,207,165,240, 0, 1,196, 50,108, 60,
- 73,255, 70,241,198, 25, 30,184,164, 2, 50,119, 16,212,190,127,255,126,120,246,248,246,237, 27, 23, 23,215,235,215,175, 9,214,
- 46,123,246,236, 65,102, 35,103, 72, 32,119,245,234,213,196, 7,194,229,203,151, 33,133, 56,154, 57, 36,129,140,140,140,236,236,
-108, 98,174,126,133,220, 4, 25, 23, 23, 7,244,111,111,111,175,130,130,130,160, 32,225,189,208,192,146,119,251,246,237, 16,182,
-135,135,199,142, 29, 59,176,178,241,244, 56,225, 9, 3,200, 48, 54, 54,158, 53,107, 22,164,160, 36, 38,193,124,252,248,145, 23,
- 12,128,165, 63, 39, 39, 39,176, 50,248,240,225, 3, 63, 63,255,169, 83,167, 24,192, 27, 86,113,105,212,209,209, 1, 22,151,240,
-130, 27,185, 21, 15, 44,208,129,228,137, 19, 39,162,162,162,136, 9, 97, 34, 75,127, 8,152, 48, 97, 2,229, 9,155,155,155,251,
-218,181,107,172,172,172,191,126,253, 2, 6,242,237,219,183, 43, 43, 43, 9,234,122,137,116,188,160,173,173,237,225,195,135,225,
-220, 55,111,222, 16,169, 17, 19, 60,128, 29,162, 55, 10, 40, 47,253, 25, 48, 46,133, 7, 8,192,222, 25,219, 48, 8, 3, 81, 52,
-146,171,204, 16, 15,225, 34, 61,131,120, 10,247, 46,211, 51,144,229, 13, 34,121, 28,183,121,242, 33, 11,129, 2, 7,105, 40,242,
- 43, 64, 50, 58,225,227,223, 63, 23,247, 47, 90, 0, 74, 41, 74,133,120,157,131,145,199,243, 53,137,154,119, 84, 46, 17,234, 23,
-121, 53,142,163, 70,199, 45,124,225, 33,238,148, 18, 44,185,152,116,166, 65, 55,133, 23,111,200,163, 64,251,231,156,187, 41,252,
-238,151, 71,251,203,204, 72, 49,133,167, 6,104, 90,129,223, 77,225, 9, 12,210,159,155,194,147, 39,176,243,110,192,236, 14,188,
-127,107,102, 9,104,127,154,140,123, 51,133,175,181, 26, 99,120,213, 70, 1, 16,150,239, 26, 95,110, 79,128,133, 68,171,111, 2,
- 64, 8, 65, 46,122, 70,173,159,124, 3,194, 31,178,142, 49, 82, 3, 72,140, 97, 24,148,236, 63, 7,236,239,189,159,215, 0,105,
- 35, 54, 18,233,244,230, 58,231,104,163, 41, 87, 50,203, 86, 96,173, 37,193,248, 41,200,207, 63,251, 79,172,210,124,225,215,166,
-240, 31, 1,216, 59,155, 19, 6, 97, 56,138, 11,210, 13,114,235, 16, 30, 29,160,189,101,129,220, 29, 35,251,184, 71,134,201, 49,
-217, 64,232,207,252,105, 16, 81, 19,219, 82, 40,244, 29,130, 40,228,160,201,251,240,144,247, 73, 1, 96,155, 21,239, 84,130,205,
-134,181, 60,171, 1, 44,187,223,250, 57,158,217,255, 20,157, 9,133,193,218,114,120,250,242, 52,208,122, 96,255,155,185, 20,229,
- 46,165,240,140, 53, 46,126,133, 91, 2, 83, 49, 3, 99,113, 6, 40, 21,215,255, 90, 20,120, 7,155,165,240,197,208,195,215, 65,
- 0,134, 97, 32, 7,132, 16, 46,207, 86,120, 46, 80,130, 24,227,113,114,130,253,179, 42,139, 0, 72, 14, 72, 77,100,181,121, 11,
-222,207,181,207, 95, 88,216,216,109,231,156,214, 26, 37, 80, 74,113, 13,251, 35, 6,172,210,182,173,233, 55,154,217,223, 90, 43,
-155,113,149, 3,246, 48,142,227, 65, 8,240,222, 27, 99,246,158, 78,211,116, 77,224,109, 75, 56,238,186,174,239,123, 49, 28,127,
-251,191,100,255,102,171, 20,254, 33, 0,123,215,110,195, 48, 8, 68,163,140,132,216,129, 79,155, 53,178, 6, 27,100,141,136, 58,
- 29,107, 32,209,177,131, 27, 40,242,146, 83, 40,130, 13, 1, 81,230, 10,203,182,140,125, 6,241,222,221, 67,226, 86, 18, 64, 45,
- 92,252,184, 50,188,138, 3,180,214,163,121, 64,215,195,238,171, 46,215,199,253, 38, 38,126, 16,240,135,121, 85,123, 27, 99, 28,
-165,132,137,126, 46, 69,225,129,218,136,149, 48, 3, 39, 8,128,140, 26,130, 3,142,250,138,212,255,211,167, 40,124,217, 59,158,
-138,194,211,205,198, 64, 75, 41,203,122,146, 82,170,228, 4, 13,229,167,142, 66,234,162,240, 69, 11,218,181, 16,194,249,189,151,
- 56, 78,240, 69,239, 61,109,190, 68, 69,225, 95,181,166,183,205, 90,219,128,242,130,254,200, 54,190,216,104, 72,213,193,195,228,
-240,104, 42, 48, 97, 41, 37,198,152,115,142,115,142, 81, 35,145, 13,151, 66,136,156,115,183, 57, 16, 31, 71, 99,204,145, 22,180,
-220, 16,118, 32,161, 4,167,162, 91,224, 57,198,136,208, 31,124, 0,183,255,208,223,181,167, 0,162,102, 5, 64,245, 73, 96, 50,
-234, 0, 96,115,146,164,126, 0, 36,107, 45, 93,186, 20, 77,124,219,182,109, 64, 65, 34, 13, 57,113, 95,203, 66,241, 26,241, 35,
- 63,240, 6, 38,188,169, 8, 76,190,144,194,136,212,210, 31, 94,135,145,212, 60,132, 52,255,209, 46,133, 39,175, 19, 0, 55, 1,
-207,165,240,240, 38, 63,176, 76, 1, 54,102, 85, 85, 85,129,141,104,118,118,118,126,126,254,150,150, 22,130,253, 0,228,177,126,
- 92,243, 1,100, 84,237,192,130, 24,174, 6,243, 68, 44, 96, 3,159,151,151, 23, 88,234, 29, 59,118, 12,216,248, 5,150, 44,223,
-145, 46,133, 7,221, 59, 77,232, 82,120,204, 97, 31,120, 91, 30, 24,221,175, 72,188,125, 19, 24,191,144, 21, 65,100,244, 3, 8,
-142,252,192, 1, 48, 34, 74, 75, 75, 33, 57, 14,104,221,237,219,183, 25, 64,199,244, 26, 2,235, 63, 98,214,225, 80, 82,214, 67,
- 42, 15, 50, 12, 4,198, 35, 48,118, 44, 45, 45,225, 7,207, 1, 93, 11,236,187,140, 22,238, 12, 72,119, 2, 35, 15, 1, 33,167,
-118,128, 0, 26,236,147,192,244,169, 3,128,234, 33,253, 86,120, 71,152,200,210, 31,216,252, 39,219,107,144,230, 63, 90,195,255,
-197,139, 23,180, 46,253,225,205,127, 29, 29, 29, 8, 23,200,160,176, 19,128, 31,192, 71,255,185,185,185,107,107,107,129,165, 63,
- 68,220,192, 0,116,201, 9,176,220,247,245,245, 61,114,228, 8,144,164,162,165,240, 48,129, 79, 0,160, 1, 96,179, 17,222, 3,
-192, 92, 55, 13, 44, 83,128,117,192,143, 31, 63,128,181, 20,176,174,130, 92,183, 9,191, 20, 30,200,192, 95,250, 67, 42,117,204,
-177, 32,228,153, 97, 82, 1,217, 26,137,159, 3, 0,214,199,222,222,222,192, 28,196,197,197,229,224,224, 0, 12, 1, 96,148, 1,
-107,232, 5, 11, 22, 48, 49,209,118,211, 40,176,172,135, 15, 31, 65, 50, 32,241,213, 9,176, 65,243,232,209,163,240,240,112, 6,
-240,165,211,160,171,199, 70, 1, 90, 63, 24,199,189,240, 0, 1,200, 59,131, 28,132, 65, 32,138,238, 61,141,186, 55,158,171, 27,
-238,194,198,112,136, 90, 57, 66, 87,156,130, 21, 97,107,244,153, 73, 8,193, 90, 1, 99, 98,226, 95,145,118, 51,105, 50,111,102,
- 24,202,252,250,159,192, 29,157, 0, 84,159,188, 39, 88,164,186,181,158,254,162,253,110,123,158, 46,167,105, 35,241,128,106,160,
-201, 84, 48, 52,142,163,236,227,227,126,117,137,225, 45,125,156, 14,250, 75,250,255, 60, 20, 30, 27,228, 85,135,222, 14,133, 7,
- 34,178,192, 63,231,249, 49,220,220, 24,147, 30,126,117, 40,124, 58,243, 83, 68,205,245,102, 59,233, 63,148,199, 66,239,189,244,
-234, 81,140, 49,132, 0, 95,168, 6,168, 0,174,175,199, 13,229,176, 46,250,246,197,185,254,245, 40,146,155, 93,115,108,244, 67,
-105,173,225, 62,244,119,206, 89,107,161,191, 82,138,216, 60, 12, 67, 77, 0, 56, 44,169, 41, 6,224,134,173,244,151, 77, 72,161,
- 63, 98,113,108,185,187,251, 79, 68, 5,144, 58, 1,185,238, 2,104,144, 78, 2, 83, 82,250, 3,211, 16, 25,221,100,200, 88, 16,
-176, 43, 64,124,233, 15, 44,238,129,165, 63,116,148, 99,221,250,181,224, 91,252,128,149, 1,131,147, 35, 3, 3,225,101,160,144,
- 85,137,144,177, 32, 96, 19, 21,114, 9, 42,176, 8, 38, 34,249,130,138, 90,248,189,240,164,150,254,144,230, 63,214,198, 62,121,
-157, 0, 72,181,145,147,147,131, 51,160,130,131,145, 47,133,143,137,137, 97,192,184, 20, 62, 54, 22,231,189, 17, 20,206, 1, 48,
-144,117, 41,188,176,176,240,219,183,111,129,237,253,215,175, 95, 3,123, 0,240, 75,225,129,253, 54, 96,124, 1, 75,127, 96, 53,
-128, 54,184,143, 12, 32,165, 60,100, 20, 8,237, 38, 50, 60,186,208, 74,127,200, 38, 0,100, 46, 25, 13,127,226,199,127,128,224,
-246,237,219,192,232, 0,122,208,210,210, 18, 72, 2, 3, 13, 88,158,110,218,180,137,153,153,153,152, 10,128,146, 86, 60,178, 9,
- 36,233, 50, 6, 3, 32,227,220,185,115, 64, 55,219,216,216, 0,147, 22,176,151,137,188, 96,122,196, 2,200, 42, 32,180, 73, 96,
-228, 85, 64, 0, 1,216,187,130, 20,134, 65, 32,248, 1,159, 32,248, 12,207,130, 63,242,149,130, 79,240,228, 55,188,116,154,129,
-101, 91, 75,220,228, 80,122,232,158, 36, 36, 16, 54, 58, 51,113, 71,246,119,139,192,223, 68,127,205, 1,151,180,255,199,241,147,
- 3,108, 19,151, 3, 8, 46,125,100,172,214,186,125,118,237, 11, 79, 71,208,246,253,165, 41,252,170,161,104,164, 59,241,228,173,
- 39,191, 72, 39, 64, 70,160,191,108, 40,173,129,239, 24, 66, 96,255,119, 16, 0,189, 64,250,162,110, 41,254,206,117,175,231, 0,
-236, 53, 0, 61, 9,145,147,156, 51, 16, 65,239,152,157,231,202,123,223,123,103,231,181, 57, 39, 25, 72,154,194,179, 38,108, 52,
-243,228, 35, 68,191, 91,118,114, 4,238,113,179, 94, 68,183,237,164,198,160,227,179,148, 2,249,159, 82, 2, 31, 56,231,198, 24,
- 70, 2, 16, 4,167,144,186, 87, 18,184,170,253,185,142,144,177,214, 26, 6,128,254, 24, 35,242,134, 95,153,127, 29,120, 27, 15,
- 1,196,130,153,223,200, 54, 11, 45,117, 34,183, 95,144,155, 69,180, 43,253,129,201,142,194,165,114, 36,105,127,252, 4,231,120,
- 61, 39, 39, 23, 65,237, 88, 7,166,137, 4,192, 2, 5, 88,226,239,221,187, 23,126, 47, 60,124, 49, 40, 49,117, 24,214, 75,225,
- 33, 59,110, 8,110, 10,195,172,212,115,115,115,241,148,254, 16, 32, 36, 36, 4, 25,226, 7,182,166,145, 27,254, 53, 53, 53,248,
-147, 28,133,251, 0,144, 67, 3,109,171, 4,193,250, 30,216, 21,219,182,109,219,159, 63,127, 62,124,128, 92, 10, 15,114, 9,176,
- 67, 0,228, 2,217,196, 55,228,129,246, 34, 47,253, 68,158, 30,192, 95,250, 51,144, 59,199, 67,121, 29, 80, 81, 81,113,240,224,
- 65, 96, 52,181,183,183, 3, 91, 12,192, 14, 16,100, 75, 4,193, 33, 62, 50, 90,241,200,122, 73, 5,192,154,233,233,211,167,200,
-251, 0, 46, 94,188, 8,236,186, 1, 91, 21, 68,174, 91, 29, 9, 0,109, 18, 24, 25, 0, 4, 16, 11,254, 66, 28, 87,223,150,214,
-128,140,210,159,206,249,164,165,165, 5,255,254, 70,130,149, 37, 37, 67,186,144, 66, 19,178, 12, 31,200,128,236, 5,131,223, 11,
-143,167, 92,131, 92,236, 14, 44,188,144,231, 0, 32,205,219,178,178, 50,252,165, 45, 86,189,164, 14, 25, 17,217,240,167, 86,151,
- 20, 57, 28, 48, 47,133,199, 95, 7, 0,131,197,219,219, 27,216,146,101, 99, 99,251,249,243, 39,176, 14, 0,134,176,128,128, 0,
-176,192,194,115, 80, 7,114, 62,130, 79,255, 2,237, 5,170,135,231, 29, 92,185, 12,146, 36,208,182, 13,147, 58,247,139, 57,230,
- 67,210, 40, 16,164, 14,128,111,254,202,202,202,130, 48,128, 61, 33, 60, 90,158, 61,123,134,188,219,107,197,138, 21, 4, 79,248,
-193,165,151, 36,112, 1, 12,208, 4,159,128,193,104,185,207,128,116, 39, 48,114,209,143,188, 10, 8, 32,128, 88,168, 88,190, 99,
-234,165, 79,109, 65,255,210, 31, 8, 68,193,128,108,237, 74, 96, 64, 45,199,192,199,127,144,203, 62,172,151,125,146,125,228, 3,
-133,122,177,246, 6,136, 4,100,207, 1,160, 37, 9,172, 93, 46,130,201, 6,216,173,188,123,247,238,254,253,251,191,127,255,254,
-247,239, 95, 3, 3,131,176,176, 48,130,113,119,226,196, 9,120, 55, 2, 46,130,204,198,149, 42,224,141, 3, 72,205, 1,204, 65,
- 4, 43, 27, 56, 8,163,236,254,100,178,115,144,180,180,116, 96, 96, 32,126, 53,205,205,205, 84,215, 59, 10, 72,170, 3, 48, 75,
-127, 32, 0, 8, 32, 22,106,149,161,163,167, 53, 13, 56, 64,139, 2,226,143,132, 29, 66,158, 26, 16,163,148,193,128,120,245,192,
-254, 13,145,231,252,224,105, 28,144, 81,221, 82,171,134, 38, 21,136,137,137,145, 29,182,148,232, 29, 5,196,215, 1,184,164, 0,
- 2,104,244, 82,248, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128, 70,111, 4, 27, 5,163, 96, 20,140,130, 17, 10, 0, 2,104,180,
- 2, 24, 5,163, 96, 20,140,130, 17, 10, 0, 2,104,180, 2, 24, 5,163, 96, 20,140,130, 17, 10, 0, 2,104,180, 2, 24, 5,163,
- 96, 20,140,130, 17, 10, 0, 2,136,134,151,194,143, 94,192, 61,170,119,136,234,221,236, 55,133,120,189,190,155,114,168,165,119,
-163, 47, 9,122,253, 55,163,232,245,177, 1, 93, 47,202,200,200,248,251,247,239,251,247,239,255,250,245,139,133,133,229,201,147,
- 39,145,252, 10, 59,207,156,249,174, 39,107, 97, 97,193,204,204, 12, 89, 68,187,229,200, 83,106,133, 21,196, 94, 56,128,236, 80,
-185,122,245,170,148,148,212,187,119,239,128, 36, 39, 39, 39, 3,108, 67, 31,154,189, 88,245, 62,190,178, 36,221,246,209,178, 51,
-106, 44, 98,110, 60,188,124,184,244,142,166,103,226,245,226, 1, 0, 1, 68,194, 81, 16,248, 55, 37, 82,241, 2,110,137, 19,215,
-238,188,122,206,201,198,161,206,197,127,199, 78,135,110,149,225,144,184,128,123,176,129,155, 55,111,246,247,247,247, 86,129,216,
- 27, 14,131,206, 0,192,163,248,193,147,199, 79,159, 60,185,121,227,198,251,247,239,229,229,229,121,120,121, 61, 92,221,240,155,
- 15, 57, 34, 9, 2,112, 93, 94, 6, 20, 39, 62,166, 32,187,160,177,222, 33,140, 15,132,190, 3, 83,255, 65, 7, 49,173, 22, 34,
- 65,163,113, 63,131, 82, 60, 56,121, 45, 96, 56, 91, 68,114,248,134,188, 65,216,187, 70, 4,143, 66, 96,233,249,245,235,215, 93,
-187,118, 1,147,113, 40,171,176,132,172,232,143,175,223, 57,191,253,177, 46, 73,181,243, 13,223, 50,119,198,230,189,123,221,220,
-220,232,144, 36,254,254,253, 11,116,131,190,190,190,154,154,218,185,115,231,126,252,248,161,170,170,138,121, 56, 60, 86,240,231,
-207,159,139,103,206,203, 36, 27,150,153,105,159,216,213,179,246,178,131,170,142, 19,145,122, 71, 1, 25, 0, 32,128,136,170, 0,
-136, 57,210,135, 42, 23,112,171,158,187, 43,248,246, 11, 35,195,255, 95,127,153,127,191,251,242,228,205,199, 7, 83,206,242, 56,
-154,139,104,107,224,209,117,118,127,186, 6,116,149, 54,243,250, 93,255, 14,159,254,159, 22,193, 0, 20, 41,106, 37,173, 40, 39,
-233, 2,110, 92, 53, 7,173,175,236, 96,128, 28, 99, 89,207,200,216,132, 69, 10,148, 79,234, 25,195,174,135,210,103, 73, 56,172,
-244,255, 15, 46,253,237,142, 28, 57,130,167, 2,208,211,223,165,165,101,178,122, 53,223,201,227,160,109, 80,183,110,220, 4,146,
- 41,137,235, 62,126,201,249,252, 1, 95, 53,239,234,234, 10,172, 6,128,165,252,190,125,251,176,158,148, 71,252,166,127,204,148,
-156,145,158, 62,131,184,202, 3,249, 26,122, 18,128, 82, 60,226, 80, 54, 50, 42, 0,152,239,240,156, 60, 10, 1,119,239,222, 61,
-176,106, 85,147, 75,152, 65,116, 22,155,184, 32, 3, 11, 19, 3, 3, 19,195,191,255, 12,255, 88,255,253,252,239, 21,159,246,104,
- 82,199,177, 99,199,172,172,172,104, 93,152, 50, 49, 49, 25, 24, 24, 28, 56,112, 0, 88, 7,152,153,153,189,120,241,226,226,197,
-139,122,122,122,196, 28, 51, 3,244,172,179,147,107,123,223,166,242,132,203, 22, 30,153, 22,230,123, 74, 38, 63, 81, 51,141,195,
-170, 23, 18,155,248,171, 7,160, 44,201,149,253, 48, 2,104, 23, 2, 35,250, 94,176,213,255, 0, 1,196, 66,100,134, 49,136,211,
-205,180,206, 33,190, 14, 32,227, 2,110,153,187, 47,141, 56, 5,217, 36,249,255, 50,252,231,252,192,245,226,245,235, 23,159, 63,
- 42,178,243,220,216,121, 4, 24,189,162,184,235, 0, 96, 89,127,227, 46,211,255,255, 28,127, 25,217, 3, 92,127, 7,186,125,103,
- 96,248, 7,107, 55,145,152, 91, 73, 44,187,225, 71, 54, 66, 14,162,218,122,131,245,199,239,223,233,137, 38, 4,171, 1,130,117,
- 42,190,253,159,245,160,204, 0,185, 5, 9,171, 20, 49,224,246, 94,190,158, 85,145, 16,118,113,232,114, 53,151, 79,100,148,254,
-125,125,125,192,220, 94,220, 6,189,248, 9, 79, 14,119,112,248,168,166, 6,108,122,111,182,181,157, 4, 23,140,138, 98, 0,223,
-225, 54,101,249, 42,124,117, 0,164,244,135, 28,236, 21, 30, 30, 14, 57,245,136, 96,129,136,181,237, 15, 57, 48, 3,238,206,140,
- 12, 98, 75,127, 50,129,113, 31, 3,236,162,118, 80, 5, 96,212,203,112,174,152, 70, 86, 1,107,199,233,129,105,138, 78,174, 12,
-204, 63, 25, 89,153, 24, 89,152, 24,153, 89,255,255,103,252,247,245,207,255,191,127,129, 77,170,212,248,172,172,186,252,187,226,
-226, 36,109,106, 35, 3, 0,243,130,164,164, 36, 48,156, 15, 30, 60,120,227,198, 13, 96,253,109,105,105,121,242,228, 73,109,109,
-109,130,122,143,236, 93, 30,100,240,237,236,103,230,168,250, 47, 54,134, 19,115, 10,194,123,202, 63,148,247, 44, 85, 50,140,194,
- 83,184,195,139, 23, 96, 20,163,137, 80,114, 30,229, 72, 0, 0, 1,196, 66, 76, 33,181,108,199, 82,101, 21,229,244,166, 84, 98,
-234, 0,242, 46,224, 86,184,241, 76,157,141,155,237,255, 31,206,158,210, 63,223,126,113, 20,183,242,179,113,252, 96,253,254,245,
-199,119, 78, 6,198,231, 7, 79,176,201, 72,242,243,243, 99,213,123,227, 46,195,172, 21,192, 18,255, 27, 24, 49,216,154, 50, 5,
-186, 49,194,234, 0, 6, 96,111, 96,214, 10,162,194,130,212, 11,184, 33,165, 63,164,232, 7,249,253,200,239,239,191, 64, 23,252,
- 58,151,239,238,236,116, 37,104,206,221,142,187,172,140,183,161,209,192,248,148, 81, 68, 3,198,126, 37,154,136,111,115, 60,176,
-237,143,124,153, 9,138, 84,250,106,176, 20,190,230,255,155,203,146, 53, 83,252,255, 51,252,111, 47,216, 96,238,160,182,108,218,
-225,222,213, 81, 12,171,255,215, 23, 77,147, 82, 39,182, 41,253,229, 97,186, 52, 7,195,183,183, 87,129,141, 47, 94, 49, 61, 72,
-233, 63,125,250,116,172,138,121, 5,174,168,169, 1, 99,228, 24,176,159,112,242, 36, 3,248,206, 62, 16,128,239,240,143, 12,155,
- 50, 99, 78, 53,211, 63, 89,172,218, 33,165, 63,176,237, 15, 44, 83,240,220, 59, 70,176, 41, 3, 41,253,145,234,131,244, 25, 51,
-176, 39, 75,166,176,247,240,230, 3, 35, 24,255, 11, 69,149,101,132,140,202,128, 40,111,212, 62, 15, 83,248,123,200,128, 13, 16,
-252,251,151, 80, 80, 80, 0, 17, 7, 50,128, 53, 1,147,106, 50,212, 96,176, 26, 52,189, 44,225,232,246, 34,223,195, 8,146,197,
-109,239,143, 31, 63, 36,228, 21, 24,254,253, 98, 98,103, 96,100, 97,254,243,249,227,143,123,247, 95, 63,121, 42, 99,229,192,200,
- 38,192,248,251, 23, 3, 51, 83,103,102,137,235,172,134,162,162, 34,178,203, 11, 92, 71,140,192, 75,100, 96,122,248,254,253,187,
-144,144, 16,176,125, 0, 12,237,251,247,239, 47, 88,176, 64, 83, 83,243,195,135, 15, 4, 59, 88, 64,189,242, 76, 39, 37,229, 60,
- 62, 28,188,252,241, 61,251,226, 45,127,182,157, 88,146, 23,202,201,242, 13, 24,107, 81,216,251,187,163, 0, 47,192,140, 44,180,
- 62, 1, 64, 0,177,224, 47,250,129, 65,236, 88,101, 63,235,224,204, 52,134,244, 11,139, 46, 51, 88, 19,182, 18, 82,238,127,251,
-182, 20, 24,167, 63,126,204, 19, 18,218, 67,204, 5,220, 98,207,223,137,137,115,112,212,103,253,125,243,238,207,179, 55, 44,108,
-172, 92,140,204,220, 64,196,204, 34,196,202,241,254,243,135,231,251,142,241, 7,122, 98,213,139, 86,190, 31, 62,253, 15, 92, 1,
- 48,244, 85, 51,254,103,100, 96,252, 79,108, 87,128,212, 11,184,145, 75,127, 6, 22,230,123,207, 65,185,247,209,203, 31,114,226,
- 28,170, 9,155, 59, 59,125,241, 27, 2, 44,253,129,229, 62, 51,227,155,191,255, 69,216,197, 24,185, 35,158,253,251,247,238,199,
-143,213,127,207,148, 81,210, 83, 33, 88,123, 85, 79,241,179, 20,170,153,178, 33,153,135, 73, 14,200,205,202, 85,215, 55, 83, 90,
- 58,245, 96, 99, 95,246,204,153,196,118,150,129, 69, 80,122,225, 21, 72,190,181,177,177, 1, 86, 0,184, 74,127, 80,141,232,240,
-150,129,225, 18, 3,195,149, 15, 47,121, 84,229, 24,102,207,254,178,127, 63,131,170, 42,208,169,160,104, 2, 10,130,186,152,186,
-215, 47, 93,148,197, 90,250, 3,219,182,255,192,128, 1,124,159, 12,169, 5, 22,156,141, 92,250, 51,128,166, 1,112,198, 14,176,
- 91, 0, 41,195,177,214,178,255, 96,229, 14,176,177, 3, 12,135,205,135, 80, 38,220,166,207,152, 9,233, 95, 40, 40, 40, 0,179,
-207,196,137, 19, 33,226, 64, 6,176, 2,216,185,115, 39,252,220, 74, 6, 12,189,144,238, 8, 80, 87,106,106, 42,150,241,113, 88,
-167,103,214,236,217, 64,123,183, 28,126,138, 86, 26,178,240,242, 50,176, 50,255,253,246,225,250,182,189, 75, 87,173,153,246, 12,
-100,209,169, 70, 62, 85, 59,175,159,143, 30, 95,189,120,246,242,253, 91, 31, 95,188,184,114, 5, 24,113, 18,100,148, 38,152,199,
-174, 97,150,224,207,158, 61,171,173,173,237,233,233,249,245,235, 23, 51, 51, 51, 47, 47,239,215,175, 95, 79,157, 58,133, 63, 89,
- 66,244,126,120,114,180,113,254,163,185, 5, 82,239,190,178,177,177, 48,201, 8,114,188,120,243, 43,189,235,143,190,137,177, 28,
-238, 94, 29,164, 26,128, 71, 52, 38, 99, 20,160,149,254,200,181, 2, 64, 0, 49,225,202, 51,144,115,207, 17,189,117,143,104, 98,
- 44,128,220, 0,243,237,219, 50, 72,233,207,113,250,193,183,157, 42, 12,132,110,134, 97, 57,112,150,255,221,231,127,108, 44,191,
-206, 94,253,121,253,222,143, 93,135, 25,190,255,100,251,255,159,139,129,153,133,129,241,231,191, 63,239,126,254,152,182,123, 11,
- 46,237,125,213,160,102, 62, 98,136, 60, 2,214,190, 98,248,127,243,206,255,162, 86, 18,154, 9,144, 11,184, 33,129,128,255,180,
- 78,160, 44,242,165, 34,145, 19,158,236, 61,251, 30, 88,250, 67,234,128,219, 79,190, 51,184,172,194,111, 2,176,244, 7, 85, 3,
-159, 47,115,115,223, 97,231,248, 12, 44,253,127,255, 62,203,204,172,244,235,235, 91,218,165,128,187,231,191, 0, 67, 6, 94,250,
- 63,191,249,223,200,151, 57,183,197,213,198, 21,216, 61,255, 15,150, 37, 12,150, 45, 91, 86,220,198,200, 35,170, 11, 12, 89,143,
-192,204, 35, 71,142,224, 81,252,143,233,177,152, 24,180,244,255,252, 22,116, 74,182,190, 62,168,244,143,139,131,150,254,159,223,
-114, 2,145, 16,215,115,172,218, 67, 66, 66, 28, 29, 29,157,156,156,194,195,195,153, 81, 1, 92, 4,191,107,209, 82, 50,177, 53,
- 28, 82,217, 4, 1,152, 92, 70,108, 77, 11,184, 70, 55, 55, 55,180,182, 54,176, 19, 0, 57,182, 15,230, 50,116,189, 27,102,206,
- 4,150,206, 16,195,225,222,132, 15,142,195,185, 88,237, 5,230, 23, 38, 46,246,223, 47, 30,206,172,169, 89,240,245,195,123,123,
- 11,136,248,220, 37, 11, 26, 74, 82,212,138, 34,155, 46,239, 91,245,254,190,171,159, 31,145, 29, 92, 96,113, 15,204, 5,231,207,
-159, 71,170, 50,103, 96, 29,229,131, 4,200,229,203,151, 15, 30, 60, 24, 25, 25, 9,236,165,125,249,242, 5,114,128, 54,176, 95,
-194,195,195, 19, 22, 22,102,109,109,141,171,232, 7,233, 61,190,246,214,206,162,162,202,222,205,245, 82,215,159,178,124,252,194,
-252,143,145,225,237,151, 95,255,133,149, 11,171, 90,125, 2, 98,112, 86,213,192,106, 28,156, 97,103,130, 1, 86,198, 40,192, 85,
-250, 3, 1, 64, 0,177, 96, 45,250,201,232, 24,162,137, 0, 75,127,180,110, 1,158, 11,184, 89,222,126,120,247,159,149,237,237,
- 59,142, 13,251, 24, 89,152, 24,126,252,250,255,249, 43,227,159, 63,172, 12, 12,127,255,255,251,241,247,207,231, 63,191, 24,254,
-225, 28,243,133, 76,246,246, 85, 99, 73, 93,224,201, 97,146,189, 67,204, 5,220, 40,205,127, 6,134,229, 57,146,112,182, 73,197,
- 61,214,255,111,126, 51,138, 16,188,194,155,227,203,126,161,166, 37,175,139, 51,222,188,227,148,250,125,245,239, 95, 80,133,241,
-240,130, 4,237, 18, 65,215,140,226, 20,183,153,240,210, 31, 34,104, 33, 88, 99,165, 29, 98, 41,116, 21, 40, 75, 48,207, 44, 93,
-186,244,208,161, 67,111,223, 58, 11, 11,239,229, 17,209, 1,166, 22, 38, 38, 38, 60,243,108,143, 30, 1, 43,203, 43,144,113, 35,
-160,135,223,125,101, 48, 51, 3, 79, 66,220,102,152, 58,149,225,243, 39,134,175, 95, 24,190,124,101,224, 22,196, 55, 9,129, 57,
-226,127,247,238, 93, 32,217,214,214, 6, 36,213,212,212,200, 27,205,128, 71, 55, 30,101,249,249,249,240, 86, 60,114, 81,142,223,
-112, 69, 69, 69,248,232, 63, 28, 64, 58, 1, 64, 41, 68, 39, 0, 21, 36, 75,171,221,186,122,237,169,160, 32, 48, 72,243,242,242,
- 38, 77,154, 68,188,189,182, 63, 5,254,255,251,146,210, 86,173, 27, 18, 50,179,173, 13,126,127,203,204,219, 87,160, 61,227,195,
-135,119,239,222, 13,180, 26,156,193,191, 17, 44,253, 33, 93, 58, 96,224, 0, 91,217, 6, 6, 6,192,154, 0,168, 49, 51, 51,243,
-241,103, 44, 85,236,147, 39, 79,252,253,253,129, 94,219,182,109, 27,228,202, 76, 6,240,146, 30, 6,240, 61, 66,120,230,105,129,
-226,247,110, 94,104, 40, 75, 18, 86, 93,125,126,117,252,165,199,140,143, 94,178, 48,252,103,250,249,235,247,187,255,194,217,201,
- 89,228, 45, 1,162,228, 94,147, 17, 5, 0, 2, 8,203, 16, 16,176, 26, 71,230,126,120,250,158,152, 18, 19,222, 3, 0, 15, 1,
-129, 34, 12,216,252,103,191,242,244,175, 0,168,209,135,255, 2,238,107, 79, 30,125, 99,231, 84,250,243, 71,134,147,135,139,149,
-141,241,247,111, 96, 55, 27,216,225,253,252,247,215,183,191,127,126,254, 7,230,254,255,255, 9,197, 40,176, 26,128,212, 1,224,
- 41, 1,104,185,223, 87,205,220, 91,205, 88,220,250,135,212,112, 33,166,149, 84,190, 26, 20, 50,157,161,130,144, 66, 31, 58,176,
-243,255, 13,176,222, 98,249,255,126, 81,138, 96, 36,222, 59,233, 88, 95,158,254,203, 0, 26,253,232, 97,225,143,124,249,240, 76,
-151, 12,183,132,230,199,167, 79, 95, 60,120, 70,211, 40,215, 55, 83,250, 10,142,210,111,156,215,184,190,107,173,107,252, 13, 17,
-183,118,209, 62,190,138,112,219, 63,208,238,208,134, 13, 46, 2,199,247,244, 87, 51, 20,182,254,183,179,179,195,191,244, 83, 65,
- 70, 22,121,210,113,203, 22,208,220,239,178,101,192, 78,192,255, 9, 19, 24,155,154,190,128, 42, 6, 6, 6, 85,117,193,226, 66,
-124, 86, 67, 26,191,192, 14,193,202,149, 43,225,237, 98, 15, 15, 15,204, 82,146,248,106,158,160, 26, 96,137, 9, 44,178, 49, 43,
-128,190,190, 62,228,245,169,152,192,197,197, 5,126, 21, 59, 50, 0, 10,246,247,247,227,234, 16, 31,186,246,168,170,169, 36,185,
-190,172,242,215, 47,160,165,152, 94, 3,218,187,103,207, 30,172,101,162,157,150,220,188,185, 83,141,163,162, 26, 27, 27,177,214,
- 19, 64, 65,160,246,217,179,103, 19, 19, 56,192,210, 31, 50,197, 10,172, 38,103,192, 0, 80, 4, 88, 19, 60,198,182,198,252,247,
-239,223, 91,182,108,113,118,118,190,125,251,246,215,175, 95,129, 92, 96, 13,244,235,215, 47,200,181, 57,248, 75,240,159, 63,127,
-158, 93, 27,101, 23,212,180,243,224,221,251,207,153, 63,125,101, 2,118,252,159,126,229,204,171,168, 38,168, 23, 50,181,131,127,
- 44,104, 20,224,106,254, 3, 1, 64, 0, 49,161,101, 9, 32,112, 0,131,139, 48,112,239,244,195,143,223, 63, 10,155, 17,181,246,
- 25, 82,202,115,113, 69, 3, 75,127,214,135,111,129,165, 54, 91,242, 91, 6, 66, 23,112,179,178, 49,255,253,207,240,228,235,135,
- 71, 31,223,189,254,244,254,227,143, 31,239,127,125,127,253,243,251,243, 31,223,158,254,248,242,238,247,207,247,255,126,255, 66,
- 29,192, 69,105,251,152, 98,159, 18, 72, 9,231,249, 15,236, 25, 51,176, 17,227,114, 50, 46,224,126,244,242,199,222,179,239,225,
- 69, 63,164,244,103,255,247, 16,136, 26,220, 89, 30, 1,155,190,120,193,218,251,255, 68,123,161, 13,231,251, 95,255, 62,185,251,
-244,230,209,171, 47, 30,124,160,117, 82, 88, 54, 13, 84,193,127,122,245, 31, 88,250, 59, 36,179, 4,213,179, 66, 80,239,170, 40,
- 70, 6, 70,252,153,205,223,230, 96,124,145,139,224,137,189,192, 92,183,241,168, 3, 3,248,184,124,130, 54,170,105,168, 35, 85,
- 33, 12, 83,166, 48,220,185, 3,234, 7, 52, 54,254,135, 3, 65, 65, 65,156,131, 72,224,168,255, 11, 6,192, 38, 63,176,237,127,
- 11, 12,128, 69, 97, 73, 73, 9,193,112,166, 4, 64,154,234,104,229, 41,176, 79, 0,244, 62,174, 86, 60,188, 5,138,214,252,135,
- 0,172,130,112,112,152,253, 3, 35, 19,207,156,170, 86,158, 45,123,128, 89, 6,126,166,116,186,170, 78,190,177, 21, 23, 23, 23,
-176,186,173,173,173, 5,122, 28,243, 22,173,185, 79,111, 61,215,214,146,150,150, 6, 6, 23,102,141, 5,233,127, 16,223, 55,130,
- 47,176, 1, 54,249, 25, 96,155, 39,176, 94, 36, 7,241,172,172,172, 44, 48, 34,128,157, 12, 21, 21, 21, 22, 22, 22, 72, 13,109,
- 97, 97, 65, 76, 83, 93, 89,195,112,214, 46,129, 75,219,234,109, 45, 53,185, 57,152,184,185,254,114,178,255,244,244, 39,234,110,
- 3, 96,121, 5,113, 39,158,177,160, 81,128, 7, 0, 4, 16, 19,214, 48, 5,130,124, 48, 0,114,155, 51,154,127,191,250,195,201,
-201, 65,100,104, 66,234,124, 46,247, 59,255,153,153,106,215,125, 99, 32,226, 2,110, 77, 43,171, 63, 60, 92,239,255,255,189,246,
-245,253,149,143,111,175,126,122,115,245,211,187,107, 95,223,221,249,246,254,237,207, 31, 95,254,252,121,246,237, 43,158, 27,248,
- 2,221, 24,129, 45,125, 32,250,207,192,252,159,145, 41, 45,130, 49, 53,130, 45, 57, 92, 84, 89, 89,252, 31, 3, 43, 3, 3, 35,
- 49,165, 63,169, 23,112, 3, 21,131, 6,250, 25, 24,206,116,128,250, 10, 59, 75, 65, 43,148,128, 13,127,230,255, 95,127, 50,201,
- 3,217,239,222,189, 35,230, 6, 87, 96,224, 0,243,243,178, 47, 95,191,255, 98,138, 95, 49,231, 21, 7, 39,144, 65,187,248, 46,
- 9, 91,126,252, 93,235,178,197,208,166, 62,176,249,111, 33, 88, 3, 97,183,102,111,153,129,123, 18, 24, 88, 40,244,215, 48, 36,
- 20, 57, 11,156,216,227,216,101,207,228,205,112,224,192, 1, 34,147,132,188,188, 60,156,237,228,196, 32, 32, 0,236, 96, 49,152,
-235,243,114,176, 49, 51, 51, 65, 99,199,196,212, 20,103, 26,101, 98,130,140,248, 3,139,126, 53, 36,208, 4, 6,207,158, 61, 35,
- 88,196, 32, 15,226,195, 65, 70, 6, 81, 45, 68, 96, 75, 31,237, 70, 45, 96, 33,142,191,249,143, 60,247, 0,111,192, 66,216,255,
-112,183, 99,128,224, 23, 35,227,191,111, 63, 89, 37,228,211, 91, 90, 18,184, 5, 4, 14, 28,135, 14, 13,197, 36, 52,244,204,185,
-221,183,188, 78,215, 41, 76, 80,113,247,166, 77,152, 13,148,128,140,116,109, 29, 29,200, 4,245, 95, 24,128, 15,160, 33,115,177,
- 14,248, 0, 11,119,200, 28, 47,100,208, 31, 94,214, 3,155,252,144,198, 53,176, 38, 0,178,113,249,148,149,149, 53, 32, 32,224,
-227,199,143,192,154,137,147,147, 83, 84, 84, 84, 64, 64, 0,255, 45,146,112,189,236,236,236,193, 25,147, 22,156, 54,121,240,248,
-147, 56, 63,179,165, 58,163,158,226,127,110, 62,190,209,210,153,214,205,127, 32, 0, 8, 32, 22,252, 29,100,120,163, 88,198, 94,
-138,200,182, 3,252, 2,110,182,228,213, 12,196, 93,192,253, 69, 95,229,219,173, 91,223,254,252,252,244,245,219,221,223,191, 89,
-255,129,134,111, 62,254,254,241, 15,156,123,182,189,188,255,245,207,111,188, 99, 50,140, 69,173,136,196, 13, 30, 8,250,247,151,
-225,231,245, 59,159,231,173,252, 68,100,233,207, 64,226, 5,220, 32,247,116,134,177, 58, 79, 3, 50,223,190,133, 78,219,178,253,
-123,254,139, 73, 50, 91,247,214,243,231,160, 98, 2,127,249,152,177,110, 22,188,106, 92, 13,187,175,118,197,229, 99, 52,221,195,
-165,234,252,137, 97,213,255,163,123,174, 2,217, 86,218,160, 93,181,101, 5,245,199,174,106,247,172,138,170,154,234,141,223,193,
-192,182,191,144, 16,100, 84,235, 0,184,134,115,249,255,127, 53,184, 96,253,191,122, 53,190, 11,114, 67,130,130,119,239,220,197,
- 0, 94,248,239,232,200,248,230, 49,255,215,247, 28,223, 63,177,173, 88,200,152,159,255,255,225,171,207,230,150, 22,122,218, 58,
-248,231, 0, 32,131,254,192,116,197, 0,190, 68, 16, 34,254, 10, 12,136, 25,231, 1,198, 44,176, 34, 65, 46,127,129, 77, 70, 98,
-118,129, 65, 6,205,225, 51, 1,144,222, 0,254,230, 63, 3,210,170, 7,228,245, 60,248,151, 66, 64,234,170, 63,159, 63,179,138,
- 8, 49,115,241,104, 7,135, 52,185,185, 86, 65,150,114, 26, 26,253,253,254,131, 85, 88, 92,215,194, 65, 65, 70,113,210,245,227,
- 58, 58, 58,207, 79,163,220, 72,154, 1, 74,186,160, 74, 46, 11, 88,118,131, 87,139,254, 65, 42,241,129,141,114,160, 8,124,129,
-169, 55,106, 89, 0, 44,217,129,126,132,140,243, 0, 67, 12, 50,212,131, 44,139,167,244,135, 56, 27, 88,220, 3,219,251, 55,110,
-220, 56,119,238, 28, 48,178,184,185,185,191,125,251, 70,228, 96,189,184,184,184,191,191,255,137, 35,167, 38,172,222,205,199,200,
-166, 46,254,243,206, 27,110, 27,245,223,240, 26, 2,215,128, 62, 80, 28,158, 97, 71,135,128,200, 3, 0, 1,196, 66,204, 56, 41,
- 48, 40,159, 28,124,198, 16, 69, 84,233, 15, 47,209,208,204,193, 95, 7, 72,137,137, 95,254,241,224, 35,211,191, 23, 63,190, 48,
-252,254,253, 23, 24,235, 12, 12,215,191,124,120,250,237, 19,228, 2,110,188, 21,192,127, 96,171,127,214, 10,104, 83,235,198, 93,
- 6, 13,229, 63,204, 12, 95, 73, 42,253, 25, 72,191,128, 27,188,102, 52, 11,216, 7, 0, 54,246,129,253,223, 78, 87,134,242,221,
-118, 5, 58,199, 32,141, 68,130,205,127,228,142, 17, 50, 27, 82,198,225,111, 52, 49,212, 51,154,204,186,135, 57, 87, 1,221, 9,
-188, 7,223,229, 80,109,217, 91,170,167,250, 30, 95,245,223, 82,232,170,181,139,246,145,221, 87, 79,188,111, 97,100, 96,108,205,
-222, 12, 44, 90,241,216, 11, 44,253,129, 89, 46, 48, 48,112,246,236, 79,144, 44,201, 8, 91,143, 18, 26,138,136,238,205,135, 45,
- 49,245,102,231,229, 78,157, 52, 25,216,252,255,245, 66,246,241, 7,246,127,160,190, 19,131,228, 87,241,210,180,207,187, 79,168,
-107, 89,226,171,243, 32, 69, 63,228,150,215, 23, 47, 94, 64,250, 4, 47, 95,190,100, 32,101,174, 15, 50,153,137, 54,122, 62, 3,
- 36,152,142,103, 61, 40, 60, 70,224, 51, 1,192,222, 0, 49,205,127,228, 66,138,120,197,192, 38,243,139,135, 15, 20,149, 85,255,
-253,249,201,248,231, 47, 11, 47, 31,175,145, 9,143,161,233,191,175,127,254,126,251,249,255,207, 95,134,191,255,202,167,247,132,
- 71,133, 99, 54,174,255,172, 16,196, 99, 50,154,172,255,102,116, 5,192, 34, 30, 50,226,207,128,116, 15, 48,114, 29,128,223,131,
-234,234,234,147, 39, 79,126,253,250,181,171,171,235,153, 51,103,128,165, 63, 80, 11,193, 59, 83, 33,122, 45,204,205, 51,146, 51,
-238, 63,185, 31,155,156,113,114,247,194,231,159,223,153,216,187,138,203,168,161, 39,108,108, 25, 1, 94, 64, 97,238,255, 26,221,
- 8, 70, 12, 0, 8, 32, 22, 34, 51, 15,145,109,127,228, 18,141,164, 11,184,127,218, 27,171, 49, 24, 63,157,185,128,129,147,227,
-253,255, 63,191,254,252,249,247,255,159, 48, 63,255,147,175, 31, 9,222,137,138,182,208, 19, 54, 7,240,151,164,210,159,129,244,
- 83, 28, 32,251, 6, 76, 76, 64,251,126,133,132,132,158, 63,127, 94,160,243, 28, 94,250, 19, 52, 10,235, 21,181, 68, 1,240,118,
- 95,228,221,118,104, 82,248,129,176,222,211, 25, 51,103,220,218,195,215,187, 58,242,248, 42, 96,123,144,177, 36,108, 57,168,103,
-128,183,244,135, 68, 28,184,160,255, 4,206,123, 12,104, 37,219,130,222,189, 64,146, 91, 14,152, 15,177, 76, 18, 2, 27,248, 64,
- 19, 68,196,118,253,253,124,134,145,153,225,219, 15, 78,198,207,127, 88,152, 88,196,149, 53,221,228,188, 88,254,227,116, 54,176,
- 64, 81, 81, 81,161, 60,125, 66,134,137,129,117, 0,124,121, 12,188, 31, 64,252, 76, 0,164, 24, 34,216,252, 39, 27, 56, 57, 57,
-101,175,154,213,244,249,131,129,189, 13,147,184, 32,200,186,223,255, 65,199, 57, 48,176, 50, 50,179, 48,178, 49,207,158,209,199,
-231,108,162,172,172, 76,245, 61, 80,144,161,158,233,211,167, 3, 73,125,125,125,146,244, 2,107,232,189,123,247, 50, 51, 51,219,
-218,218, 2,131, 23,109,232, 31,216, 33, 0, 22,244,104,193, 14, 7,192, 30,195,162, 5, 11,217,152,217, 67, 34, 67,128,106,108,
-188, 82, 80,234,173, 63,127, 32,122, 71, 87,245,208, 98,252, 7, 8, 0, 2,136,133, 90,214, 80,229, 2,110,199,244,132,123,119,
-239,157,219,190,243,235,207, 95,192, 14,172,178,153,145,135, 92, 36,193,146,148,236,169, 30, 72, 9, 78,222, 5,220,112, 19, 32,
-107, 70,225,237,125, 32,131, 24,247, 64,236, 37,207,217, 97,215, 67,193,190,198,226,206, 48, 66,189, 7, 56, 80,115,249, 52,211,
- 5,238, 78, 98,207,129, 0,151,242,140,241, 69,208,243,185, 32,185, 18, 40, 8, 44,247,185,229, 66, 9,106,127,249,220,237, 37,
-131,219, 63,166,199,252,124, 31, 25,132, 24, 64,199, 63,252, 98, 96, 33, 49,105, 81, 2, 32,117, 0, 25, 26,225, 51, 1, 36, 53,
-255,241,180, 94,177, 2, 96,201, 46,145,151, 55, 97,215,174,123,205, 27, 66, 89,133, 5,192, 7,186,125,255,246, 39,191,164,146,
-153, 75,104,219,194,153, 23, 69, 24,221, 72, 57,204,231,239,223, 63,196,204,129, 17, 57,212,131,203,119,183,110,221, 2,146, 26,
- 26, 26,111,223,190,101, 97, 97, 1,150,218,194,194,194, 12,176,243,233,216,216,216, 32,157, 54,172,122, 79,157, 58,245,239, 15,
-163,149,181, 62,176,135, 7, 84,249,235,215, 47, 25, 25, 25,136,212,199,143, 31,129, 29, 29,160, 33,236,236,236,120,218,157,144,
-186, 1,153, 49, 58, 4, 68, 60, 0, 8, 32, 22, 26,153, 75,126,161,172,172,164,148,147, 73, 55,255,147,125, 1, 55,102, 53, 64,
-134,189,228, 89,135,199,181,180, 62, 3, 14,220,192,103, 0, 31,198,131, 44, 24, 74,146, 33, 76,255,100, 63,127,144, 29,168, 20,
- 79,222,209, 96,192, 86, 63,193, 17,124,172,128, 36, 93,192, 82,143,139,139, 43, 48, 48, 16,114,164,243, 35,216,145,206, 71,247,
-238,134, 28,233,236,108,225,140, 75,239,236,247,237,169,130,149, 40, 66,120, 79, 15,197, 85, 7,144,225, 71, 83, 83, 83,200,146,
-255,127,255,254, 1, 75,112, 32,227,245,235,215, 64,146,135, 7,180,202, 25, 34,194,202,202,138,213,191, 62, 62, 62, 16, 5, 64,
-189, 63,126,128,247, 81,130,151,117, 65, 86,133, 65, 68,128, 21, 3,214, 30,192,232, 34, 31, 98, 0,254, 91,223, 1, 2,104,244,
- 82,248, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128, 70,111, 4, 27, 5,163, 96, 20,140,130, 17, 10, 0, 2,104,180, 2, 24, 5,
-163, 96, 20,140,130, 17, 10, 0, 2,104,180, 2, 24, 5,163, 96, 20,140,130, 17, 10, 0, 2,136,101, 52, 8,134, 10, 48,196,113,
-185, 15, 30,112,126,116,130,103, 20,140,130, 81,128, 27, 0, 4, 16, 13, 47,133,167,131, 94, 54,182, 93,156,236, 47, 88,217, 62,
-252,251, 7, 90,146,200,204,204,196,196,200, 12, 34, 65,235,134,153,254, 51,178,128, 40,134, 63,155,183,178,254,255,255, 95, 79,
- 47, 97, 48,184,153, 18,189, 50,164, 44,123,120,130,186, 12,110,244, 18,237, 81,189,163,122, 71,166, 94, 60, 0, 32,128,134,118,
- 15,224,208,145, 59,102, 38,191, 5, 5, 24,222,189,103, 60,127,145,131,133,137,197,203,253,239,238,253,162,192, 98,159,145,137,
-137,131,151,193,201,236, 3, 3, 3,139,141,229,255, 83,103, 8,248,116,255, 49,208,161,246,172,255,127,155,219, 58,125,124,249,
-232,242,237,135,127,191,253,160,207,205,186, 35, 13, 92,191,121,238,215,143,111,188,188, 82,180,190, 60,153,138, 64, 81, 81, 17,
-114,148, 63,228, 68,101,146,244, 34,159,132, 72,222, 90,210, 81, 48, 10,104, 4, 0, 2, 8,189, 88, 92,184,104, 46,126, 13,241,
-113,201,184,164, 40,209, 75, 54, 56,117,134,213,195,245,239,197, 75,156,108,172, 44, 44,204, 44,172,172,255,217,153,127, 51,176,
-240,178, 48,124, 55,211,254,195,193,198,254,159,129, 65, 82,156,193,207,235,223,205,123,248, 74,255, 59,215,111,169,104, 41, 75,
- 73, 11, 60,121,120,131,149, 83, 68, 75, 67,109,251,198,141,123,246,236,161,117, 29, 64,231, 11,229, 7, 22, 92,186,184, 71, 65,
-230,167,174,242,255,127,255,254,126,252,248,228,198,149, 51, 95,126, 74,154, 24,219, 14,126,151, 3, 75,255,130,130, 2, 96,135,
- 18,207, 97,206,120, 0,153, 23,202,143, 12,128,255,168, 96, 6,112,192,205,194,118,138, 53,252, 82,120,152,170,255,176,253,137,
-136,208, 30,225,151,194, 67, 0,242, 53,144,104,235,254, 1, 2,136,126, 61, 0, 38, 6,234,111,230,246,114,251,253,159,129,153,
-133,153,213,202,156, 81, 76,148,137,133,133,137,157,149, 89, 67,141,233,225,227, 63,102,198, 76,194, 66, 28,219,247,129,206, 20,
-100,254,255,253,255,255,127, 18,210, 56, 75,255, 75,103,206, 40, 72,201, 92, 58,126,226,228,175,223,239,223,188,103, 99,231,213,
- 52,180,214,183,118,219,191, 25,180, 67,152, 70,117, 0,218,133,242,144,179, 24, 83, 82, 82, 6,127, 53,112,225,252, 30,118,150,
-119, 44, 76,191,126,252,248,251,241, 43,167,141, 29,225,147,123,175,221, 56,199,203,241,214,201,154, 93, 65, 94,153,143,143,255,
-247,159, 63,175, 95,191, 17,127,244,248,246,221,123,199,142,190,179,178,246, 31,228,205,127, 6,216,113,202,192, 10, 0,207,141,
- 46,131, 13, 0, 91, 48,107,215,174, 69, 57,254,136,134,165, 33,236, 2, 86, 82,181, 61, 90,199,120, 50, 5, 86,136, 51,192, 46,
- 91, 67,152,148, 50,227,171, 89,248,100,172,213,234,246,237,219, 33,108, 15, 15,143, 29, 59,118, 96,101,143,150,254,152, 92,120,
- 53, 0, 16, 64,216, 43,128,163, 71, 78, 90,219,152, 83,215, 29,255, 8,221,204, 69,228, 13, 77, 40,149, 10, 11,243,251,119, 44,
- 18, 98,172, 18, 98,108, 95,190,176,114,176,178,252,101, 97, 55,210,101, 52,208, 99,102, 98,100, 5,109, 34,103,101, 99,101,250,
-201,200,193,246,231, 27,206,210,255,200,190,189,138,146,162, 87, 46, 94,169,110,110,128,139,183, 54,182, 49, 49, 51, 26, 25, 27,
-109,223,177,151, 96, 5,240,239,223, 63, 96, 33,126,231,206, 29, 78, 78, 78, 93, 93, 93,130,103,215, 48, 96, 92, 40, 15,191,109,
-117,206,156, 57, 3, 85, 7,156, 63,127,222,208,208, 16,191,154, 43,215,206,253,255,249, 64, 94,242, 7, 63, 31, 59, 19, 19,215,
-247,239,127,222,190,251,126,112,207, 4, 14, 62, 35,115, 51, 59, 60, 26, 57,152, 95,171, 41,254,215,214,214,124,254,226,253,217,
-243,231,190,124,249,202,207,207,171,164, 36,207,196,204,250,247,239,163,243, 23,142, 24, 26,216, 12,230,230, 63,252,118, 23, 96,
- 63, 0, 88, 7, 16,121,173, 10, 70, 67,150,222, 61, 0, 72,210, 93,179,102, 13,121,247,106, 17, 15,224,141,241,153, 51,103,144,
-106, 15,147,124, 48, 68,239,169,118, 30,180, 70,162,132, 0,147,180, 16,211,224, 9,207,161, 11,224, 37, 62, 90,125, 0, 16, 64,
- 56,123, 0,192, 58, 0, 72,146, 90, 13, 28,201,187,141, 85,220,102,146, 42,241, 57, 4,210,131, 35,166, 26,216,115, 64,140,149,
-133, 85, 86,234,203,231,207,172,103,175,200,130,174, 76,101,100,102, 99,253,163,173,250, 77, 93,149,153,145,129,137,141,149,157,
-141,153,209, 88,239,151,144,224,191, 67,167,177, 27,162,169, 40,254,240,238, 43,228,210, 31, 8,170,235,171,218,154,187, 36, 45,
-245, 4, 5,120,241,187,225,251,247,239,192, 18,225,225,195,135, 16, 46,176,233,225,229,229,229,239, 79,160, 73,139,118,163, 36,
- 50,232,237,237, 45, 46, 46,166,243, 54,119, 96,233, 15,191, 82, 3, 15,248,249,245,169,162,244,119, 17, 97,110, 25,105, 9, 46,
-110,174,135, 15,159,254,253,251, 79, 90,138,247,234,245,227, 23, 56,185, 13,116,177, 95,252,112,249,242, 17, 61,181, 95,114,114,
-138,215,174, 63, 60,123,246,250,235, 55,159,129,241, 44, 40,200,249,237,219, 23, 67, 67,237, 15, 31, 62, 62, 61,123,254,226,101,
- 78,125, 93,227, 65,219,252,135, 95,228, 66,240, 90, 71,228,145, 13,180,163,140,129,108,248,112, 7, 25,227, 72,205,205,205,190,
-190,190,164,158,214, 0,172, 3,128,246,174, 90,181, 10,215,113,108, 12,224,179,148,209,122, 6,144, 43, 33,129,226,104,109, 2,
- 96, 65,143,121,118, 0,252,120, 37,160,127,211,211, 51, 72,234,100, 32,235, 53,171,252,114,186,157, 7, 94,244,143,150,218,212,
-106,254, 35, 71, 25, 90,244, 1, 4, 16,129, 80, 6, 86, 3,144,154,128, 72,128,181,160, 39,178,244,135,128,131, 7, 15, 62, 5,
- 3, 98,206,114, 98,254,255,157,133,241, 7, 27, 43,235,249, 43,162,204, 44, 44,188,108,223,248, 56,190,243,242,255,125,250,148,
-151,157,141,131,157,157, 61,212,239,143,159, 39,147,180, 20, 59, 23, 39,246,187, 41,190,125,120,252,226,221,151,226,186, 58, 76,
-169, 15, 31,223,189,127,253,130,145, 80,199,101,245,234,213,240,210, 31, 2,182,109,219,118,253,250,117,252,205,127,228,243,159,
- 33,205,255,143, 48, 0,100,215,215,215,147,125, 84, 28,217,165, 63, 65,101,192,230, 63, 7,203,115, 78, 78, 86, 14,118, 54, 69,
- 69, 5, 19, 51, 51, 65, 65, 65, 22, 22,102, 54, 54,102, 33, 65,142,167,143, 31,224,210,200,242,255, 41, 47, 15,231,183,239,127,
-174, 92,185,253,236,197,199, 71, 79, 62,221,186,247,235,249,139,207,175, 95,127,184,125,235,158,138,178,178,180, 20,223,219,215,
-143, 6,103, 22,130,140,254, 35,139, 0,123, 3, 40,119,187,227,105,219,130,151,163, 97,189, 80,158,188, 14, 4,176, 80,134,119,
- 22,137, 4,123,247,238, 5, 38, 81,130, 87, 51, 34, 95,254,142,124, 33, 48,178,117,184,172,134, 24, 11,185, 59,140,188, 94,209,
-170, 66,110,228, 86, 63,164,244, 7,182,253,165, 64,205,127,124,193,229,225,225,225,233,233, 9, 25,231,129, 48, 32,108, 15, 24,
- 24,173, 3,240, 3,128, 0, 34,106, 14,128,188,222, 0,217,224,246,109, 80, 55, 2, 88, 7, 72, 75, 75,227,111,147,178,176,176,
-176, 50,179,178,178, 50,218, 89, 51,124,251,250,243,254, 93, 54, 96,135,128,229, 47,139,133,249,127, 96,173,192,204,204,196,240,
-159,241,221,123,134,211,231, 88, 64, 55,129, 96,171,236,206,157,191,251,229,203, 47, 76,241,142,250,122,118,118,142,239,223, 63,
-254,253, 71,224, 62,225,115,231,206, 97, 10,158, 61,123, 86, 83, 83,147,200,230, 63,114,155,110,243,230,205,112, 53, 52,234, 4,
-160, 13,245,192, 75,127,130, 25,248,253,187, 87, 34,188,140,127,254,254,251,245,251,207,235, 55,239, 88,217, 56,126,254,252,253,
-251,207,223, 63,127,254,253,249,251,255,195,251, 55,184, 52,178,177,126,229,224,148,121,251,246,227,167,207,223,222,189,255,206,
- 39,172,111,165,167,119,234,232, 14,169, 95,127, 62,126,250,168,174,174,204,206,198,242,245,243,187,193,217,252, 7,150, 80,104,
-151, 41, 2,123, 0, 68,206, 4, 0,107, 14,204, 59, 32,225,199, 74,227, 2,240,203, 21, 50, 50,132,156,157, 17,167,191, 1,115,
- 4,144,220,180,105,211,155, 55,111,136,156,151,218,179,103, 15,164,244,135,168, 95,187,118, 45,174, 82, 24,185,255,135,121, 33,
- 48, 68, 28,114, 45, 48, 86, 19, 32,199,136, 2, 73, 72,191, 1,171, 7,113,165,103,160,243, 66, 44,247,172,100, 96, 8,239,255,
-106, 90,249, 5,171, 94,179,112,236, 30, 68, 30,235,199, 53, 31, 48, 90,202, 35,143,252,160,245, 0, 0, 2,136,250,253, 44,180,
-246, 62, 73,205,127, 72,251, 23, 94, 13, 0, 51, 15,254,126, 0, 51, 51,139,133,217, 63,102, 38,150,211,103, 56,110,222,230,240,
-118,103,240,241,100,240,245, 96,148, 20,103,227, 96, 99, 7, 34, 78, 14,118,105, 73, 32,131, 3,200,198,106, 66,109,117, 77,103,
-123, 19,102,182, 81, 86,148,231, 23,224,230,248,247,235,203,183,223,180,136,143, 35, 96, 0, 47,244,225, 0,200,125,251,246, 45,
-176,167, 79,187,198, 62,114,179, 14,194,133,244,196, 9,142, 45,252,253,203,240,245,219,239,175, 95,127,125,250,244,243,229,203,
-247,207,158,189,249,252,249,231,151, 47,191,129, 53,232,215,175,191, 63,126,248,136,115,224,232,231,159, 31, 63,254,254,254,253,
-139,151,151, 77, 86,154,143,139, 27,212,220, 83, 82, 86,144,145,226,227,231,227,248,255,255,239,239, 63,255,126,254,252, 58, 56,
-155,255, 69, 69, 69, 88, 75,118,130,157, 0,204,187, 36, 33, 0, 40,184,135,184, 83,187,193, 35, 42, 8, 0, 41,124,129,213, 0,
-176, 76, 39,166,127, 12,108,251,175, 89,179, 6, 94,250, 3,201,144,144, 16, 92,197, 55,208,112,204, 43, 33, 33,109, 2,184, 56,
-208, 61,132, 14,211,254,143, 54,144,139, 60,252,133, 75,143,136,136, 8, 35,172,157, 79,170,222, 81, 64, 82,233,207,128, 49, 7,
- 0, 16, 64, 68,245, 0,232,214,246,135, 21, 52,127, 33,151, 74, 19,118,152,217, 63, 49, 81,246, 79,159, 88,216, 89,254,176,179,
- 49, 31, 56,201,230,237,200, 10,108,251,127,250,196,122,244, 12, 55, 31, 7,232, 42, 9, 15,151, 95,254,222,255,153,152,254, 47,
- 88, 75,148,237,192,204,201,204,197,241,142, 85,132,235,247,147, 59, 79,255, 59, 57,216,225, 87, 15,108, 77, 31, 59,118, 12, 77,
-144,224, 53,200,144, 75,189, 23, 44, 88,144,144,144, 0, 17,129,223, 43, 9, 20,193,127,205, 33, 37, 0,210,246,135, 52,211,224,
- 43,228, 48,135,122,177, 2, 65, 33,209,103,247,175, 0,195,249,215,239,127, 63,126, 62,121,252,228,237,187,247,159,222,189,251,
-246,246,221,119, 32, 18, 16, 82,192,165,241,229,155,255, 47, 94,190,209,212, 84,254,240,254, 61, 43, 11,211,167,207, 79,190,126,
-248,167,165,242, 85, 92, 84,148,139,139,139,157,157,243,249,139,207,140,204,130,131, 51,243, 96,189,198, 29, 50, 19,128, 95, 35,
-164,127, 0,191, 75, 18, 94,115, 48,144,114,165, 76, 88, 88, 24,188, 69, 12,185,181, 2, 24,107,193,193,193,192,234, 7,255,102,
- 31,180,182, 63, 4, 32,247, 39,144, 1,174, 43, 33, 33,226,192,212, 2,185,123, 29, 34,254, 24,155,189, 64, 53, 89, 89,153,144,
-219,117,192,213,198,127, 72,145, 14,212, 5,113, 63,158,154, 3,168,119,170,163, 96,248,132,111,104, 99, 65, 64, 17,136,222, 36,
- 71,214,209, 66,156, 18,144, 86,222, 1,103,207,234,172, 0,214, 1,240,126, 0, 64, 0,177,208,162,232, 7,182,250, 33,179,193,
- 36, 53,255,145,218,245,204,200, 99,124,120,238, 17, 19, 17, 97,102, 98,100, 22, 21, 97, 86, 85,254,255,236, 25, 11, 19, 51, 35,
- 43, 11, 11, 43, 11,235,165,203,220, 66,220,172, 64,115,172,205,255,114,114,178,255,251,247,159,225,255, 95, 98,172, 6,102, 27,
- 30,113,217,151, 95,254,127,189,115,128,133,145,185,180,190,154,152, 44,250, 24, 12,144,221,140,103,252,135, 1,188,222, 31, 82,
-220, 67, 74,127, 96,123, 31, 88, 19, 64,164, 62,125,250, 4, 44,253,183,108,217, 66,204,133,242,228, 1,200,197, 79,192, 32,133,
- 76, 81, 18,211,246,135, 0,125, 93,227,235, 87,206,254,127,250,233,219,247,223,239,217,127,252,103,120,255,227,199, 31, 96,111,
-224,213,155,111,207,158,127,177,117,148,199,165,241,251, 47,145,123,247, 95, 43, 41,202, 41, 42,202,188,125,251, 70, 80,224,175,
-170, 42,191,152,168, 18, 7, 39,231,135, 15, 95,206,158,187,241,228,233, 39, 9, 25,237,193,147, 97,254,131,111,187,132, 20,188,
-240,242, 23,235, 90,126, 44,163, 21, 72, 43, 24,129,157, 0,248, 93,146, 16,208,215,215,183,107,215, 46, 92,122, 33, 49,146,158,
- 46, 8,179,238, 63,114,145, 13,169, 0,128,173,120, 60,227, 63, 72,195, 71,123, 73,186,221, 8,215,149,144, 16,113, 72,241,141,
-171, 16,135, 44, 49,154, 54,109, 58,100,134,195,192, 64, 31, 62,112, 15,107,209,227,188,105, 0,162,151, 41,236, 61, 68,111,168,
-147, 2, 60, 96,194,250,175, 49, 48, 48,224,111,253, 3,243, 26,124,129,147,167,167, 39, 60,118, 70, 71,126,136, 4, 0, 1,196,
- 50, 72, 90,253, 16, 16, 17, 17, 65,146,122, 96, 3,159,153, 25,132, 52,213,152, 12,117,255,178,179,113,128, 42, 0, 86, 86, 43,
-115, 6,118,118, 6, 86,102,118, 17, 17, 14,102,230,175,127,255,254,251,247,143,168,145,156,111,239, 94,112,200,104,220,223,179,
- 68,148,133, 41,182,186,138, 24, 45,156,156,156, 85, 85, 85, 36, 45, 3,133,220, 62,159,147,147, 3,225, 66,218,251,192,162,255,
-219,183,111, 73, 73, 73, 64,246,180,105,211,104,183, 10, 8,114,249, 31,252, 14, 85,146, 86,149,200,200,171,159, 57,177, 83, 76,
- 4,216,112,103, 1,143,237,252,253,244,249,215,187,247,223,101, 21,181,109,172,236,113,233,242,242, 10,222,181,125,254,137, 83,
- 87,109,173,245,229,229,229,127,255,250, 97,104,160,199,205,207,255,240,222,163,167,207, 62, 28, 61,126,253,253,103,254, 64, 75,
-251,193,147, 43, 50, 51, 32, 3, 44,140,153,192, 2, 17, 92,160,255, 67, 42,247,153,152, 24,241, 92,176, 14,186,156,253, 63,188,
- 0,100, 4,166, 60,120, 39, 0,200, 0,150, 86, 30, 30,238,176, 74,134,193, 59,186, 22,115,172, 3, 87,169, 13,148,197, 95,250,
- 35, 3,160, 74, 92,237,125, 60,169, 2,243, 74, 72,184, 56,158,203,194,224, 53, 7,176,252, 5, 55,255, 25,145,235, 15,252,246,
- 34,235, 93, 85,200, 3, 10, 23, 14,113,136,212,170,194, 71,144,202, 96,231,197,223,184, 2, 4,121,220,127,116, 14,128, 12, 0,
- 16, 64,216, 43, 0, 43,107, 51, 10,199,221,200,107,251,195,163,141, 72,240,238, 61,163,164, 56, 19,228,224,135, 93,123, 65, 3,
-253,236,236, 28,236,108,236,190,158,140, 64,138,147,131,241,221, 91,230, 83,103,121,255,254,251, 43, 43, 67,120,136, 25,216,252,
-255,240,237,251,251, 51,219, 84,101, 89,175, 60, 37, 97, 72, 26, 88, 15,153,129, 1,241, 90,192, 23,202,119, 66, 70,123,128,189,
- 1,115,115,115, 96,107,209,223,223, 31,200,142,141,141,165, 93,243, 31, 62, 16, 4,105,205, 17, 51,242,131, 18,173,224, 82,254,
-214,141,107,207,238, 61, 4,150,131,127,255,254,231,224, 20, 82,211,212, 9, 12, 32,112, 41,152,152,180,222,137, 83, 59,128, 61,
- 6, 93, 29, 37,105, 41,145, 71,143, 95,190,191,124,247,230,173, 71,123,247, 93,122,248,244,127, 74,106,238,160,202, 21,255, 86,
- 10, 18, 47,235,187, 9,175,222,187,243,225,157, 0,208,168,209,189, 5,200, 10,208,244, 98,237, 16, 32,151,149, 36,249,130,212,
- 44,140,235, 74, 72, 98,174,138,132, 23,244,104,202,136,105, 94,252,123,184,118,205,132, 56, 80,247,197, 73, 14, 94,250,131,184,
- 94,166,224,209,210, 11,184, 42,128,209,125, 0, 68,130, 89,157, 21,200,163, 64,200, 0, 32,128, 88,168,146,116,168, 2,200,104,
-243,158, 57,199,206,193,198,230,235, 5,172, 1, 24,205, 76,254, 92,190,194,201, 4,190, 66,250,195, 7, 38, 41, 9,102, 38, 70,
-182,139,151,217, 56,216, 25,126,253,254,245,240, 17, 39,193,210,255,238,173,243,230,206, 62, 44, 34,230,119,111,157, 98,121,177,
-166,172,180,178,171,187,157, 70,158, 69,190, 80, 94, 71, 71,231,253,251,247, 64, 54,144,204,203,203,163,207, 46, 48, 82,139,126,
-228, 58, 0,136, 46, 92, 62,251,242,197, 75,110,110,110, 60, 13,127,148,130, 64,207, 24,136,150, 46,153,121,237,230, 73, 73,113,
- 30, 14, 14,214, 47, 95,126, 61,125,254,137,145, 69, 54, 37, 53,110, 56,103,190,115,197, 12,202,137,136,133,164,103,139,104, 87,
-130,131, 71,105,132, 96,213, 6, 57,133, 35,174,242,154, 96, 57, 78,222, 93,146,112,111,134, 90,178,131, 28,252,253, 57, 8,141,
- 2,234, 1,159,152, 90,200,172, 47,176, 14, 64, 22,132,179, 1, 2, 8,189, 2,160,228,184, 30, 90, 28,245, 67, 56,245, 48, 48,
-190,127,207,200, 37,193, 40, 44,196,104, 98,244,155,131,141,153,157,237,183,176, 16, 7, 56, 15, 48, 90,152,252, 61,117,142, 21,
-212, 69,192,155,151,128,165,191,182, 58, 95,113,126,211,119, 54,153,117,123,158, 42,171,129,218,242, 60,167,183, 20,151, 84,246,
-246,208,176, 14,128, 92, 40, 15,108,242,195,187, 5, 67,229,154, 83,208,158, 47, 93,146,117, 69,199,164, 31, 57,118,240,245,219,
-215,223, 95,124,227,224, 16,150, 81,212, 35,178,254, 24, 12,224,255,255,127, 12,228, 29,103,114,111, 1,116, 57,208,189,133,180,
-118, 36, 73,195, 62,131, 4,184,249,132, 19,108,203,227,234, 92,143,206, 1, 16, 95, 7, 96,150,254, 64, 0, 16, 64, 67,254, 62,
-128,255, 12,160, 21, 62,140, 76,192,152,255, 47, 36,240,255,224, 17, 22, 14,208,246, 95, 22, 63, 47, 96, 98,248, 39, 40,252,231,
-207, 95,198,127,255,254,130,115, 47, 78,160,167,240,197, 59, 56,244, 11,139,170, 24, 15,119, 84,160,208,178,245,151, 33,117,192,
-239,191,235,104,237,126, 50, 46,148, 31,210, 96, 72,148,248,179,222,119,164, 9, 86,160, 8,173, 22, 34, 95, 47,176,213, 79, 74,
-195,127,164,129,144,236, 41,116, 27, 51, 24,177,117, 0, 46, 41,128, 0, 26,189, 20,126,200,128,209, 11, 97, 70,193, 40, 24, 5,
-212, 5, 0, 1, 52, 90, 1,140,130, 81, 48, 10, 70,193, 8, 5, 0, 1, 52,122,226,210, 40, 24, 5,163, 96, 20,140, 80, 0, 16,
- 64,163, 21,192, 40, 24, 5,163, 96, 20,140, 80, 0, 16, 64,163, 21,192, 40, 24, 5,163, 96, 20,140, 80, 0, 16, 64, 3,127, 41,
-188,189,153, 52, 46,149, 95,223,189,128, 48,184,133, 36, 32,140,131,167,158, 34, 43,248, 41, 42,142, 75,239,238,126,232, 62, 91,
-215, 66,232, 26, 3,246,215, 47,137,180, 23, 19, 16,111, 47, 38, 64,179,215,196, 80, 10,151,202, 55,247,175, 66, 24, 34,138,208,
-115, 17,206,156,127, 70, 45,255,122,236,198,126, 0, 61,191,148, 84, 44,236, 40,224, 41,226, 80,243,119,184,166, 81, 43,126,145,
-245,222,188,121, 19,249,124,180,194,194, 66,117,117,117, 26,165,171, 81,189, 84,209,123,249,242,101, 8, 67, 87, 87,151, 84,189,
-152, 87, 60,141,134,243,128,232,197, 3, 0, 2, 8,251, 50,208, 63,127,254,252,248,241,131,145, 25,116,169,214,223, 63,191,217,
- 88, 89,216,217,217, 73,173, 91,128,134, 48,128, 79,108, 38, 73, 23,176,208, 7, 22,247,144,162, 95, 66, 86, 1, 72,190,192,125,
-208, 60,102, 33, 8, 44,254, 32, 69,225,212, 77,167,128,100,182,159, 25,195,224, 6,192, 66, 31, 88,220, 67,138,126,109, 19,107,
- 32,121,245,204, 81, 90,251,119,243,151, 47, 59,191,126,117,231,230, 6,146, 12, 47, 95,158, 42, 47, 3, 10,154,117,118,209,212,
-167, 7, 14, 28, 88,177, 98, 5, 48, 93,193, 69, 56, 56, 56, 34, 34, 34, 28, 28, 28, 70, 27, 98,131, 10, 0, 11,125, 96,113, 15,
- 41,250, 73, 77,147,144,147,187, 32, 69, 63, 73,105, 18,249,124, 83,242,214,119,146,113,165,224, 40, 0, 8, 32, 44,165,243,167,
-207, 95, 36,213, 76,237,117, 53,184,216, 89,255,255,255,255,247,239,255, 43,183, 31,222,191,116,152,147,157,149,200, 67, 58,129,
-128,135,227,129,182,234,189, 43,183,148,190,254, 84, 32,190,232, 7,146,156,252,194, 64, 6,164,232,199,218, 27,192,211,254, 53,
-139,174, 0, 50, 32,201, 14, 83, 22,235,122, 39,100, 99,217,216,216, 24,192,251,203, 65,151, 7,128, 15, 37,133,184,135,137,153,
- 21,127,163, 27, 8, 36,197, 64,109,231, 95,159, 62,252, 4, 87,123, 95,254,252,133,184,135, 95, 76, 6,127,123,159, 95, 74, 25,
-200,128,100, 51,108,189, 1, 65,234,250, 23, 8,114, 94,130,122, 6,144,210, 31, 82,244,131,218,230,187,118, 35,203,250,224,141,
-169,143,220,111,222,242,188,254,240,246,142,152,128,166,204, 27, 21, 98, 34, 23,216,246, 95,185,114, 37,114,233, 15, 4, 64, 46,
- 39, 39,167,164,164, 36, 90, 63, 96,120,131, 61,123,246,144,116,203, 52,158,195, 16,105, 81,244, 67,210, 36,144,129,153, 38, 97,
-189, 1, 65, 60,229, 47, 48, 77, 2, 25,152,105, 18, 34,139, 43, 77, 2,101, 15, 29, 63,197,204,204,242,247,239,159,143,159,191,
- 68, 5,251,247,244,244,144, 87,250,211, 57,196, 6, 57,216,130,109,237, 56,114, 44, 0, 4, 16,122, 5,240,245,251, 47,103,191,
- 40, 89, 49,126, 46, 14,208, 37, 42,127,255, 49,176, 48, 51, 10,241,107,104,171,202,237,217,185,245,239,239,175,196,212, 1,191,
-126,253,210,212,190,175,175,113,159,153,233,239,129, 51,210,108,172,132, 79,115, 5, 22,196,192,162,150,159, 15,116,255, 34,132,
- 68,147, 5, 86, 9,184,186, 2,192,242, 14,152,236,226,195,131,128,108, 8,137, 38, 11, 76,142, 4,155, 33, 64,127,201,200,200,
- 0, 73,160,227,191,126,253, 10, 44,253, 33, 39, 54, 19, 85,219,177, 48,207,155,176,158,157,159,225,229, 3,134,211, 95,158,190,
-126,113,103,113,127, 37,193,134, 63, 48,155,201, 72,129,134,182, 32, 36,214,177, 32,242,252,139,231, 28, 0, 96,249, 14, 44,250,
-155,115,178,129,236,102, 88,209,191,228,214, 45, 68,233, 79,232, 16,129, 7,255, 15, 51,152, 61,141,144,139,249,249, 79,133,253,
-223,255,235,111,246,158,223,125, 83,229, 95, 22,126,255,246,247,247,127,255,254, 29,249,248,107, 8, 27, 40, 8,236, 7,144,122,
-202,205,245,235,215, 39, 78,156, 72,203,251,205,105, 88,250,175, 90,181,234,253,123,215,213,171, 67,137, 81, 15, 57,157,159, 62,
- 37, 26,176,124, 7,166,201, 91,231,143, 1,139,126,228, 52,185,111,235, 58,113,113,113,248, 88, 16,174,242, 23, 79,154, 4,149,
-206,240,227, 85, 49, 0, 48, 30, 95,188,122,115,254,202, 53, 88,179,224,103,215,228, 89,233, 9,145,163,133, 56, 29, 0, 64, 0,
-161, 76, 2,127,254,252,217,198, 45, 80, 67, 78,152,157,149, 9, 88,250,191,120,241,226,242,197,243,191,254, 0,153,255,133,249,
-185,220, 60,125,190,255,252, 67,140,161,236,172,175,148,229, 94, 48, 48, 51,106,169, 62,102,103,121, 73, 82,233,143,210,210,252,
-244, 25, 88,232, 3,165, 48, 59, 4, 88, 75, 67,100,176,112,229, 58, 96,161, 15,148,194,108,140,160, 1, 96,195, 31, 88,238,243,
-241,241,221,187,119, 15, 88,232,131,170, 61,162, 75,127, 96,195, 31, 88,250, 7,230,182,120, 70, 89,109,185,242,244,197,119, 6,
- 82, 75,127,100,240,228,217, 11, 96, 95, 91, 84,144, 15, 92, 53, 51,147,225, 95,143,224,120, 80, 11,141,133,149, 96,233, 15, 4,
-181, 83,166, 2, 17,164,244, 7,246, 6, 74,221,192,237,126, 81, 54,124,229, 17,255, 54,183, 16,169, 68,249, 44, 86, 38, 30,110,
- 6, 46, 38, 6,102,105,113,107,155, 96,231,123, 82,253,248, 7,127, 64, 46, 92,184, 16, 82,238,163,145,112, 5,196,128,111,223,
-190, 17, 20,161, 17, 72, 75, 75, 11, 13, 93,189,116,233, 82,202, 75,127, 33,161, 61, 68,106,153, 9, 6,140,140,140,200, 87, 54,
-210,174,244,111,173, 42, 92,189,122,245,156,201, 61,200,165, 63, 80,100,202,148, 41,120,210, 36,114,233,143,153, 38, 61,173,193,
-167, 78,241,114,227,210,219, 59,121, 58,164,244,127,245,230, 45, 16, 1,123, 0,172,172, 44,211, 23, 44, 39,230,210,155, 81, 64,
- 12, 0, 54,249,145, 17,178, 20, 64, 0, 33, 42, 0, 96,169, 39,172,160,167, 32, 33,240,227,247, 95, 96,109,189,115,231,142, 69,
- 11, 23, 92,186,120,177,180,168,128,153,153, 9,216, 23,224,227, 98, 87,208,179, 1, 54,217,240, 91,246,251,247,111,109,213,135,
-124, 60,223,230, 45,124,197,196,248,223, 76,247, 38, 80,132,160, 19,209, 74,127, 72,209,255,253,227, 91,120,197, 0, 20,193,165,
- 23, 45,229, 65,146,221,169,165, 29,240, 68, 9, 20,193, 99,181,178,178,178,176,176,240,167, 79,159,128, 53, 1, 19, 19, 19,208,
-131,192,210, 31,210,209, 33,120, 26,215,218, 13,235, 11, 38,236, 90, 63,185, 6, 88, 19,112,113, 11, 61,254,251, 20, 88,250,243,
-128,243, 9, 51, 94,189,104,165, 63,164,232,255,248,236,174,134,140,216,231,111, 63,216,185,216, 25,254,254, 37,213,191,149,179,
-183, 92, 61,119, 92, 71, 73,235,227, 95,156,245, 52,164,244, 7,182,250,129, 69, 63, 68, 4, 88,244, 3,209,189,244,198, 93,215,
- 46,105,155, 41, 49,188,197, 25, 89, 23,217,182, 88, 59,136,138,114,107,126,255,255,153,225,231, 43,182,159,239,126,254,253,252,
-227,223,247,127,108, 60,210,182, 38,107, 46,180,225,210, 8, 25,250,135, 92,107, 5,207,246,112, 54, 80, 10,168,128,152,116,252,
-230,205,155,162,162, 34, 96,219,255,198,141, 27, 64,238,225,195,135,219,218,218,106,106,106,232,147,139,128, 5, 55, 85,218,254,
-192,210,191,170,138,168,147,198,225,133, 62,242,189,140,180, 3,192, 52, 9,185, 58,248,236,217,179,192,114, 31,152, 38, 33,165,
- 63, 3,248,214, 70,242,210,100, 87,130,207,149,187,143, 37,148, 36, 25,190, 18,168,167,129, 69,255,239,223,127,192, 5,200, 31,
- 32,122,252,240, 1, 73,142, 71,238, 46,140,118, 29,136, 7, 0, 1,132, 24, 2,250,249,243,167,161,134, 6, 23, 39, 43,176,189,
-255,247, 31,195,209,195, 71, 26,155, 91,254,253,103,184,125,231,206,165,139, 23,116,116,244,153,153, 25,213,149,100,238,157,251,
-195,137,247, 96, 77, 54,150, 87,106, 10,207, 24, 88, 24, 31, 63,255, 13, 36,245, 52, 30,158,186,252,234, 63, 3,177, 75,110,224,
-227, 60,104,125, 2, 96,101, 0, 94, 11,244, 20,143, 94,248, 56, 15, 90,123, 4,152, 16, 65,107, 99, 94, 99,239,139,252,249,243,
-135,139,139, 11, 88,244, 11, 10, 10, 2,155,147, 95,191,130, 14,130, 22, 21, 21,125,251,246, 45,193, 51,170,126,188,103, 48,227,
-228, 44,157,124,216, 85,159,225,225,121,134,211, 96, 65, 32,119, 82,161,227,223,127, 68, 93, 65, 3,159, 94,115, 54,214, 96,225,
-101,218,121,224,154,161,134, 44, 31, 15,251,193, 51,119, 68, 20,181, 31,160,174, 2,194,229,223, 77,215,254, 51, 60,103,240,115,
-102,156,189,229,158,176,160, 98,144, 53, 35, 30,255, 66,198,124,118,126,133,158,119,253,191,161,159, 65,250, 35, 99,106,253,255,
-198,102, 6,166,239,140,167,218,166,136,139, 99, 61,149,251,135,198, 67,121, 1,175, 79,127,191,252,124,127,103,241,163,101, 71,
-252,222,107,165, 56,186,229,242,112, 10,170,115,176, 8,178,248,125, 60,189,238,180,169,137, 41,206,206, 38, 19, 19, 60, 60,145,
-217,196, 3, 17, 17,145,252,252,252, 35, 71,142,236,220,185, 19, 84,117,237,220,169,169,169, 25, 24, 24, 72,159,172, 18, 16,240,
-139, 90,165,191,188,188, 60,145,133, 26,188,220,135,116, 2,200, 62,195,149, 72,224,228, 29, 4,236, 7, 3, 43, 0, 96,185,111,
- 12,102, 48,128,175,183,243,176, 55,129,164, 73, 93, 93,221, 7,120, 87,152,192,211,228,243, 13, 29,188,218, 28, 60,170, 5,171,
- 58, 82,244,117, 36,212,125, 90,128,222,193,186, 58, 5,216,182,227,224, 0,173, 49, 1, 54,252,191,125,251, 65,182,227, 71,203,
-125, 92, 0,207, 97,112, 0, 1,132,168, 0,254,253,251,199,197,206,246,235,207,127, 38, 70, 6, 32,170,111,106, 1, 86, 3, 95,
-191,126,121,241,226,185,184,184,196,255,255,255,254,252, 97,224, 96,101, 97,102,197, 55, 68, 0, 44, 76,181,148,159,136, 8,126,
- 2, 13,249,129, 47,250,100,100,252,111,164,125,251,228, 37,113, 98,150, 3, 65,154,249,152,195, 65,120,154,255,200,141, 14,204,
-162,159, 96,243, 31,210,174, 20, 19, 19,131, 44,115, 2,118, 86, 32,115,191,252,252,252,172,172,172,143, 31, 63,198, 63,125, 49,
-127,207,193, 20, 31,123, 7, 48,251,214, 31,208,248, 15,144,225,160,198,192,215,178,191,176,196,138,160,155,129,141, 44, 32, 41,
- 39, 38,244,254,231, 79, 22, 62,230, 31,175,191, 1,139, 70, 73,121,153, 93,251, 78, 19,233,223,248,226,214,251, 71,247,178,188,
- 96,248, 32,206, 0,172,196, 44, 20, 20,157,236,241, 45, 81, 69, 30,241, 95, 18,158,178,246,231, 77, 6,149, 31, 12, 39, 89, 24,
-120, 88, 24,124,141,101,124,227,241,117,149,164,133,126,253,122,199,250,231, 55,176,244, 63,158,192,111, 23,232,175, 33,166,121,
-101,215, 1,195,208,175,172,191,190,254,209,248,247,250, 37,190,137,122, 72,137, 15,153, 3, 64,102,147, 4,128, 37, 62, 55, 55,
-247,245,235,215,185,192, 32, 58, 58,154,214,195, 62,192, 82, 27, 88,244, 71,131, 1, 61, 75,127,180, 49, 31,200,197, 41,116, 40,
-227, 60,130, 99,148,148,148,128, 21, 0,164,244, 7,182,253,197, 37, 37, 73, 74,147,105,190,118, 39,158,189,226,213,231,125,186,
-243, 46, 3, 7,123,112,110,156,144,140, 15,222, 66,227,239,211,231, 47,129,165, 63,164, 7, 0, 4,164, 54,255, 49, 7,139, 70,
- 43, 3, 60,149, 1,114, 29, 0, 16, 64, 40,115, 0,255, 33,107, 96,254, 51, 0,139,126, 38, 80,217,205,176,110,237,154,192,160,
- 16, 17, 81, 49, 72,166,253, 79,232,144,113,102,166, 87,218, 42,208,203, 17,245,116,184,192, 77, 23, 6, 35,173,123, 64,113, 98,
- 28,135, 60,230,131, 38, 14,223, 10,128, 11, 32,143,249,160,137,195,151,198, 99, 5,159, 62,125,250,252,249, 51,176, 3, 4,172,
- 2, 95,191,126, 13, 25,255, 1,118, 5,190,124,249, 66,112, 8,104,253,228,154, 3, 87, 24, 62, 62, 96,248,253,157, 97, 82,185,
- 35,100,252,231,220,121,134, 11,207,143, 18,179, 94,234,227,179,187, 66,252,220,194, 66,220,234,106,154,247,238,191,190,245,244,
-173,156, 48,255,207,151,175,254,252,254, 3,223, 10,128,199,191, 86, 14,254, 54,142,145,235, 55,175,218,127,104,213,178,190,226,
-224,226,182, 75,191, 25, 94,191,125,133,199,191,240, 17,255, 68, 43,243,104, 45,249, 85,235,247, 93,186,244,160,239,242,217, 21,
-174,113, 12,115,143, 61,125,250, 26,190, 21, 0,203, 16,193, 15,246,191,191,222,252,250, 5,186,252, 93, 92, 90, 86, 67, 83,243,
- 19, 39,104,166,228,251,191,111, 76, 63,191,114,126,101,126,249, 28,123, 5, 0, 9,198, 31, 96, 0, 31,246, 65, 91, 17, 68, 36,
- 0,198,203,146, 37, 75,128,213, 64, 65, 65, 1,176,230,134,116, 5, 6,237,176, 15,217,165, 63,114,243, 31, 50,247, 0,239, 4,
-208,186,128, 0,166, 73, 52, 17,120,154,132,111, 5,192,147, 38,109, 77,213, 93,172,213, 90,155,122,122, 39,108,171, 91,178, 47,
-195,201,228,197,198,109, 31,223,127,194, 85, 34, 3,197, 67,253, 60, 32,195, 62,240, 10, 0, 8,218,234, 43,137, 47,196, 71,139,
-123,252, 0,109,244, 31,185, 67, 0, 16, 64, 76,200, 61,244,143, 95,190, 49, 51, 49, 2, 43,228,127,255,255,255,249, 7,154,180,
-191,120,225,188,147, 51,232, 6,187,191,255,255, 51, 51, 49,127,254,246,235,207,175,159, 56,107,242,191,127, 21,165,159,139, 10,
-125,132, 84, 38, 86,102, 60,144,203, 85,129,157, 0, 67,205, 59,127,254,254, 37,166,249,143,117, 42,152,216,230, 48,182,105, 40,
-130,122, 5, 5, 5,129,229, 62,176, 7, 0,172, 6, 68, 69, 69, 33, 19,194,192,226,233,195,135, 15, 4, 43,128,180,214, 21,192,
-114,159, 95,129, 1, 88, 13,228,117,238, 7,150,254, 65,249,237, 79,254,189, 88,218, 87, 6, 12, 73, 98,154,255,198,198,106,162,
- 74, 10, 98,162, 34,108,192,144,103,252,255,250,235,247,247,159,127, 16,233,223,222,142, 13, 1,154,138,124,124,194, 92,162, 82,
-191,223,189, 63,191,101,249,135,119,143,136, 76, 19,243, 58,114, 24, 10, 93, 88,254,252, 82,248,202,240,138,249,211,164,231,167,
- 25,216,248, 8,140,119,221,253,244,134,233,251, 35,182,111, 38, 42,142, 90,113, 60,247, 4, 15,136,138,158,151,181,184,247,145,
-233,243,207,255,223,191, 45,249,199,193,195,139,167,237, 79, 21,240,240,225, 67, 32, 9,108,140,139,136,136, 4, 6, 6, 66, 90,
-169,180, 3,233,233,130,152, 35, 63,196,207, 6,147, 93,250, 35, 23,244,240, 74, 8,114, 99, 59, 77,253, 11, 76,147,199,143, 31,
-135,140,251, 27, 27, 27, 51,128, 47, 34, 94,185,105, 27,241,105,114,227,250, 6,247,242, 92, 47, 47,103, 17,118,230,207,140,255,
-119,222,122,124,252,202, 83,130,197,119,102, 66,228,189, 59,119,128, 13,127, 8, 2,150,254, 88,219,245,163,128,188,162, 31,215,
-248, 15, 16, 0, 4, 16, 98, 88, 6, 88, 2,222,190,118, 73, 65, 74,136,147,149,229,239,223,127,224, 43,154, 25,210,210,179,129,
- 93,130,191,224,221, 0,223,126,252,184,126,235, 30, 27, 27,206, 65,145, 63,191,223, 25,106,221,135,103,250,172,194,251,107,151,
-168, 66,250, 12, 38, 58,119, 79, 92,212,100, 97, 22, 37,216,252, 71, 43,250,129,130, 12, 72, 59,129,241, 55,255,209,146, 35, 80,
-144, 1,105,103, 44, 46,240,247,239, 95, 9, 9, 9, 96, 15,224,229,203,151, 64, 54,176,100,121,251,246, 45,144,132,220, 82,141,
- 95,239,235, 23,119,106, 90,246, 3,123, 0,221,197,182, 95,254,252, 45,234, 92, 61,177, 60,180,184,111, 11, 11,232, 14, 26,194,
- 77, 45, 73, 17, 1, 86, 6,214,191, 12,140,207,239, 95,125,248,234,163,178,168,208,197,119,207,206,221,125, 74, 76,243, 63, 56,
-169,136, 85,136,129,137,153, 97,193,182,251,107,167,149, 38,117,204, 44,242,213,207,118,150, 39,232, 95, 96,243,191,215, 47,140,
-225, 3, 7, 3, 35, 43, 67,111, 79,200,233,195,187,156, 51, 25,219,115, 25, 79,148,225,105,254, 3,193,197, 23, 34, 54,223, 63,
-126,225,100,254,198,193,161, 28,204, 10, 44,244, 63, 50,177,254, 97, 80,251,255,247,219,239, 55,207,143, 78,254, 24, 29,165, 76,
-163,116, 12, 31,140,214, 4, 3,136,160, 45, 24,208, 52,255, 96, 93,176, 79,100,183,128,236,210,159, 1,117,244, 31,109,193, 40,
- 77,103, 2,110,157, 63, 6, 15,234,172,164,176, 29,176,177,160,237, 74, 74, 4,247, 46, 0,211,100,184,139, 57,255, 63,193,111,
- 12,172,107,251,115,167,109,185, 80,234, 97,147,208,183, 44,164,109, 49,193,122, 11,190,119, 12,141, 59,186,162,159,214, 0, 32,
-128, 16, 61, 0, 96,203,247,195,243, 59,119, 31,191,101, 97,101, 6,246, 1,126,255,249,123,238,220,217, 69,139,230,255,250,251,
-255,247,223,127,108, 44, 76,175,222,127,121,122,253, 56, 39,142, 41, 96, 96,209,169,169,252, 16,218,252, 7,247,251,215, 46, 81,
- 3, 13, 0, 49,253, 7, 34, 38,166,127, 22,250,215,255,226,238, 4,160, 53,255,225,171,128,128, 69, 63,193,210, 31,173,249, 15,
- 95,129, 0, 44, 10, 9,150,134,224,252,252,254,203,151, 47,172,172,172,144,230,255,191,127,255, 32, 36, 49, 21,192,226,254,202,
-115, 79, 15,242, 72,128, 38,126,121, 89,152,129,245, 1, 31, 59,235,135,119, 79,128,205,127, 22, 38, 38,130,205,127, 89, 33,222,
-107,247,238,255,249,245,139,157,133,237,203,151, 31, 23,239, 63, 3, 22,253, 4, 75,127,136,127,253,115,154,151, 78,154,248,237,
- 31,131,172,178,204,149,171, 39,128,165, 63,145,254, 5,130, 34,101,147,205,183,247, 49,124,252,195,192, 33,178,251,212, 53, 96,
-233, 15, 44,250,241,151,254, 64,160,255,203,231,232,238, 83, 12,191, 62,127, 97,252,252,158,233,203, 71,150,223,191,255,126, 98,
-255,241,141,227,217,253, 21, 85,183, 21, 12,212,240,204, 0, 3, 1, 60,229,112,128, 1,154, 32,126, 48, 27, 12, 6, 48,159, 64,
- 90,253,192, 50,157, 1, 60, 27, 76,112, 66,152,146,210, 31, 88,196,255,199,189,100,158,118,203,129,128,105, 18,190,230,167,166,
-182, 16,152, 38,197,197,197, 33,235,130, 32,226, 4,211,100,138,131, 94, 65,207,196,207, 47, 95,137,242,137, 93,189,246, 8, 88,
-250, 67,150,177, 18, 89,231,193, 1,242,168,206,104, 63,128, 18,176,101, 73,243, 22,188,247,136, 0, 4, 16,202,196, 44, 47, 47,
-239,217, 3, 27,254,255,247, 83,144, 18,230,229, 98,215,210, 49,208,210,214,103, 97, 98,248,242,253,239,163,231,239, 78, 29,216,
-202,195,205,133,203,160,175,223,190,169,201, 63,255,241,147,227, 63,228,218,188,255, 12,156, 28, 63,128,201,248,221, 7,118,160,
- 0, 47,247, 31, 93,181, 7,135,207, 24, 2,173,192,223,252,135,183,250,129, 92,214,255,191, 25,254, 64, 87,143,253,101,225, 34,
-216,252,135,183,250, 33,220,143,175,160, 75, 14,240,108,199,133,215, 1, 64, 18,216, 15, 0,146,239,222,189,227,227,227,131,140,
-255, 16,115, 41, 43,120,213,127,123,102,168, 61,195,164,195,211,170,189, 67,138, 39, 46,235,200, 6,246, 0,216,216, 57, 8, 54,
-255,175, 61,122,165, 34, 43,178,119,207, 9, 6,240,246, 75, 32,249,251, 39,180,175,205,138, 91, 59,164,249,223,146,228,156, 87,
-191, 64, 86,137,145, 36,255, 66,154,255,110,235,231,237,138,142,100,148,177, 96, 0,111, 9,102, 0, 31, 14, 1, 81,224,203,195,
-131,199,217,122, 63,203, 46,110,223,242, 67,253,152,130,170,206, 39, 78,134,251, 12, 15, 63, 63,120,253,186,237,239,151,247, 50,
-133,113,197,248, 3,106,250,244,233,192,226,254,251,247,239,240, 34, 12,200, 5, 10, 14,137,140, 4,105,245,191, 4,111,147, 38,
-102, 54, 24,216, 94, 38,175,244,103,128, 93,254,142,167,224, 35,117, 47, 49,145, 0,152, 38, 91, 27,106,214,109,222,238,110, 99,
- 4, 79,147, 64,100,124,239,158, 71,112,204,163,183,223,228,132,185,240, 55,255, 11,102,109,174, 74,118,147,146,112,128,212, 34,
- 16,167,226,233, 75, 17,217, 45, 24,237, 7, 80,177, 62, 64, 19, 1, 8, 32,244,149, 57,124,188, 60,231, 14,108,184, 47,163,174,
-164,170,201,199,205,249,239, 63,195,247,159,191,238,221,187,247,250,222, 5, 94, 30,110, 38,220,173, 90, 78, 14,142, 85, 59,236,
-241,180,241,129,122,185,185, 9, 52,247, 32,107, 64,129, 77,254,127,127,127,131, 74,127, 48,248,205,200,138,235, 48, 6,100, 0,
- 89,127, 6,108, 2,195,203, 65, 34, 75,127,120, 29, 0,223,252, 5,172, 3,112, 6, 16,142, 58, 96, 49,108, 35,212,236, 54,216,
-158,216,223, 95, 20,241,234, 2, 54,255, 79,189,249,112,225, 54,104,192, 7, 94,238, 19, 44,253, 33, 0,216,252, 95,107,196,157,
- 19,168, 65,134,127,129,205,255,226, 77,171, 24, 91,235,183,139,155, 79,248,114, 5, 46,110,200,194, 42,195, 65,248,196, 39, 96,
- 63, 96,251,166, 31, 79,222,223,125,253,246,249,203, 91, 60,204,127,249,172,245,108, 29,227, 28,105,154,112, 7,124,211, 47, 25,
-107, 64,211,211, 5,201, 40,253, 25, 6,116, 74, 19,152, 38, 45, 45, 45,209,210, 36,176,244,103, 0, 77, 5,115,225,215, 11,108,
-254,187,238, 57, 25, 93,191,200,206,206, 78, 28,181, 55, 73,118,117, 5,169, 3, 8, 6, 8,102,101, 57, 90,103,224, 41,247,145,
-103, 2, 0, 2, 8, 75,249, 6,108,255,254,124,247,248,220, 1,208,114, 17,200,133,203,236,236,236,152,115,179,104,128,149,149,
-149,159,136, 35, 31,240, 0,200,128, 15, 51,176,201,255,231, 27, 51, 82,209, 79,204,137,213,144, 1, 31, 96, 81,136, 92, 26, 18,
- 83,244,243,139, 74,253,194, 61,173,141, 31, 68, 55, 47,190,125,227, 42,217,254, 61,117,235, 49, 36,155, 33,151,254, 4,139,126,
- 8,136, 51,226, 38,207,191,160, 56,237, 47,131, 20,253,240,210,159,200,162, 31, 14, 60, 21, 67, 24, 32,149, 27,113,107,100,128,
-197, 55,100,211, 47,176,189, 15,223,253, 11,100, 64,154,255, 64,198,224, 63,212,129,140, 53,160,180,104,164,211, 26, 96, 77,147,
- 4,139,126, 8,112,173,153, 77,197,162,159,164,234,112,180,172,199, 5,208,110,132,103,192,152, 7, 6, 8, 32,236, 13, 92, 22,
- 22, 22, 92, 99, 53,180, 0,144, 81,126, 72,209,207, 64, 98,209, 15, 25,245, 38,175, 40,100, 0,173, 92,250, 71, 76,247, 2, 43,
-120,245,238, 35,241, 22, 33, 3,200, 40, 63,121, 69, 63, 37,254,133,140,242,111,254,242,133,236,162,127, 20, 12, 87, 0, 89,226,
-249,232,237, 55, 50,138,126, 72,249, 11, 31,237, 25,186,245,223,112,173, 3,240,200, 2, 4,208,232,157,192,163, 96, 20,140,130,
- 81, 48, 66, 1, 64, 0,141,222, 8, 54, 10, 70,193, 40, 24, 5, 35, 20, 0, 4,208,104, 5, 48, 10, 70,193, 40, 24, 5, 35, 20,
- 0, 4,208,104, 5, 48, 10, 70,193, 40, 24, 5, 35, 20, 0, 4,208,104, 5, 48, 10, 70,193, 40, 24, 5, 35, 20, 0, 4,208,192,
- 95, 10, 63,210,244,254,120,241,152,120,189, 28, 18,178,163,225, 60,170,119, 84,239,168, 94, 26, 93, 10, 15, 16, 64,131,186, 7,
- 64,234, 46,240,123,247,238,237,129, 1, 32,123,180,122,199, 3, 62,126,252,248,232,209,163,227,199,143,159, 59,119, 14,200, 32,
-207, 16, 42,158,242, 54, 10, 6, 57,184,121,243, 38, 73,138, 51, 50, 50,200,182,136,108,189,163,128, 84, 0, 16, 64, 44,131,214,
-101,164,150,224, 64,245, 29, 29, 29, 97, 97, 97,200,218,149,148,148,136,215, 14, 4,171, 87,175, 14, 13, 13, 85, 2, 3,252,234,
-211,210,210, 8,154, 9,116, 12,214,213,208,187,119,207, 39, 70,239,251,247,220, 52, 10,219, 87,175, 94,253,252,249,147,145,145,
-145,131,131,227,199,143, 31,192, 10,224,244,233,211,250,250,250, 42, 42, 42, 36,153, 67,204, 81, 25,224,138, 60,147, 24,101, 51,
-103, 78,167,182,222,116, 28,138,209,143, 30, 35,152,174, 24,234, 25, 25,155, 48, 42,191,122,198,176,235,161, 12,236, 26, 4,157,
-231,238, 14, 58, 82,151,188,195,171, 33,103, 65,167,167, 11, 82,178,178, 30, 88,170,246,247,247, 19,220,112,151,154,154, 6,244,
- 22,102,172,150,148, 20, 19,163, 29,158, 42, 38, 76,152, 96,111,111, 15, 44,199,151, 45, 91,246,233,211, 39,130,150,162, 20, 73,
- 44,204, 17, 86,108,233, 25,233, 93, 59,186, 75, 92, 75, 32,130,179,103,207,194,170, 55, 38, 6,180, 75,153,155, 27, 75, 78,129,
-220,236,148,144,144, 48,186, 35, 1, 25, 64,246,133,193, 87,255, 3, 4, 16,246, 10, 0,243,176, 17, 26, 29, 63, 66,197, 10, 0,
- 94,250, 3,221, 9,217,147, 2, 52,129,200, 10, 0,146,201, 33,197, 25,228,220,171,242,242,114,194,122, 87, 11, 17, 50, 24,103,
-136,125,245, 37,112,139, 58, 3, 17,135,164,145,119, 15, 6,176,237, 47, 38, 6,189,224,129,147,147, 19, 88, 25,124,248,240,129,
-159,159,255,212, 41,208,229,201,196,212, 1,192,224,133,132, 18, 48,196,130,131,131,129, 1, 78,176, 38,216,180,105, 3,132,225,
-231, 23,128,139,141, 75,239,247, 99, 57,208, 32,177,154, 2,103, 35,115,129, 12, 92,122,119,236, 64,185,220,236,208,161, 67,109,
-109,109,200, 1,181,100,201, 18,252, 9,163,179,179,179,131,189, 19, 92, 16,135,162,100,129,122, 70, 82,147, 52,253, 51, 17,114,
-233, 15,244, 50, 48,198,151, 46, 93,122,228,200, 17,175,168,106, 92,138,143, 97, 92,161,189,126, 53,168,244,255,247,239,223,172,
- 89,179,128,218,249,228,236,177, 22,250,240,238,224,141, 27, 55,128,220,200,200, 72, 32, 59, 42, 42,138,152,106,163,103, 55,244,
- 22,226, 23, 59,159, 3,245, 46,203,231, 2, 26, 89,238, 81,198, 0,142,189,229, 11,151,101,216,227,235, 19, 24, 27, 27, 19,223,
-212, 27, 45,253,145, 1, 64, 0, 49, 97, 45, 86,128,217, 27, 24,217,104, 25,158,200, 1, 25, 74,198, 94,144,245, 66, 26,227,196,
-235, 5, 58,216, 5, 12, 32,117, 0, 73, 9, 2, 82,250, 3,173, 3, 93, 79, 1,182,148, 72, 95, 48,134,189,135, 32, 60, 34,184,
- 0,207,150,233, 16,132, 71,132, 96,233,255, 31, 12,136, 31,141,121,255,254, 61,176,172, 7, 86, 0, 73, 73, 73,209,209,209,108,
-108,108,192, 58, 0,216, 15, 0,122,159,153,153,153,224,241,250,215,174, 93, 3,218,187,102,205, 26, 72,112, 1, 45, 93,187,118,
- 45,176,161, 7, 20,167,115, 82, 70,171, 12,104,212, 4, 1,150,254,192, 36, 17,126, 35, 12,212,210, 71, 13,252,138,159,229,104,
-125, 2, 92, 0, 24, 62,165,165,165,138,138,138,100,184, 1,168, 23,216,246, 23, 22,222, 75,121,219, 31, 94,250,147,164, 29, 94,
-250, 23, 23, 23,227,209,142,156,252,128,205,127, 59, 59, 59, 32, 3, 88, 7, 0,251, 1, 4,203, 13, 52,189,225,150,160, 86,233,
-178,124, 78, 96, 63,160,204,189, 20,191, 94, 96,219, 31,104, 23,176, 59,238,130, 1, 32, 82,163,205,127, 60,165, 63, 16, 0, 4,
- 16, 19,182, 46, 39,244, 98,104, 72, 59, 26,222,220, 35,166, 56,134,228, 25, 74,242, 27,121, 3, 56, 88,203,116, 82,181,192, 43,
- 15, 96,243,159,224,249,183, 3, 11,224,165, 63,144,124,250, 20,122,225,198,147, 39, 79,240,103, 54, 96,219,255,219,183,111, 76,
- 76, 76, 64, 63, 2,217,207,158, 61, 99,101,101,101, 1, 3, 32, 3,114, 84, 39,218,134,126,180,140, 58,113,226, 68, 96,209, 31,
- 18, 18, 2, 44, 80,128,134, 0, 11, 71, 32, 27, 40, 53,105,210,164, 97,150, 91,224,165, 63,144, 13, 44,187,225,109, 11, 72,224,
-195, 59,136, 68,150, 47, 64,101,192, 16, 3, 38, 42,242,102, 77, 42, 43, 43,129,122,241, 68, 13,158,210,191,175,175, 15, 24,101,
-192,138, 4, 88,124, 31, 62,124,152, 1,124, 34, 19,241,165, 63, 68, 59, 48,205,156, 57,115, 6,162,157,160,141, 64,245, 17, 17,
- 17, 16, 46,176, 14,112,112,112, 0,218,190,113,227, 70,130, 3,137,192,230, 63, 3, 35,195,210, 60,232,249, 19,192,126, 64,164,
- 53, 59,168, 31,128, 23,224, 41, 37, 70,187, 5,104,165,127, 90, 57,122,169, 8, 16, 64, 44, 88, 19, 43,252, 98,232,123, 72, 23,
- 67, 19, 76,235,212, 42,253,169, 82, 1, 80, 2,128,149, 7,217, 30,161, 27, 0, 22, 37,192,162,255,197, 11,232, 45,140,200,108,
- 92,224,245,235,215,192,156, 12,108,233,223,185,115, 7,168, 29,152, 87,127,253,250, 5,204,126,192, 10, 0, 72,254,253,251, 23,
- 88, 61,172, 95,191, 30, 87, 68,239,221, 11,106,135, 2, 75,124,100, 5, 16, 54,164,120,194,147, 66,144, 71,120,112,177,241, 52,
-246,113,141, 5,225, 25,252, 65, 27,249,129,180, 73, 73, 74, 3, 29,236,157,140,168, 21, 42,100,220,255, 30, 49,195,131, 72, 77,
-120, 72, 29, 9, 41,233,128, 97, 72,124,155, 20,162, 87, 85, 85,149,129,232,233, 22,100,144,153,153, 9, 31,236, 2,178,129,197,
- 55,208, 16,226, 75,127,123,107,208,145,140,192,182,127, 73, 73, 9,176, 97, 14,209,238,235,151,138,255, 98, 63,120,243, 31, 14,
- 32, 99, 65,219,182,109,211,208,208, 0, 54,217,241,235, 13,183, 68, 57,152, 11, 60, 22,196,176,124,217,249,155, 18, 55,241,235,
- 29, 5,100,148,254, 64, 0, 16, 64,216,231, 0,128, 93, 42, 72,195, 31,126, 49, 52, 73,165, 63,214,118, 40,158,225,105, 92,122,
-145,197,105,119,224, 31,208,167,240, 99,199,145,221, 64,222,136,237,255, 85,130,100,187,228,139, 15,225, 9, 79,184, 35,209, 74,
- 4, 25, 25, 25,100, 5, 88,131,235,221,187,119,188,188,188, 64,242,216,177, 99,192,106, 0, 88,250, 3,155,252,144,171,111,128,
- 69,219,239,223,191,127,254,252,137,167,137, 10,233, 21, 97,134, 9, 80,100,205,154, 53, 64, 89, 60,193, 69,249, 28, 0,176,172,
- 71, 46,238, 33,108, 34,171, 1, 96,145, 68,114, 29, 0, 30,226,135,164,124,196,100, 18, 88,144,248,185, 37,228, 58,146, 1,118,
-177, 59,121,131, 18,192, 78, 0,100,246,130,120,237,192,168,132,143,191,219,216,216, 0, 75,112,146,218,254, 64,237,127,254,252,
- 65,214,126,240,232,223,158,206, 12,130,205,127, 72,137,143, 9,250,251,251,189,163,107,112,233, 69, 26,253, 71,237, 31, 16,161,
-119, 20,144, 13, 0, 2,136, 5, 79,170,133, 52,255,233,220,246, 71, 30,137,162,207, 82, 78,228,209, 30,228,245, 33,248, 75, 52,
-156,253, 89,216,232, 63, 25, 53, 1,124,244, 31,127, 77, 16, 29, 29,205,205,205,205,195,195, 3, 44,205,249,249,249, 5, 5, 5,
-129,205,171,216,216, 88,136, 44, 7, 7,135,155,155, 27,208, 23,152,199,252, 1, 75,124, 96,233,255,227,199, 15,160, 46,118,118,
-118, 96,246,254, 15,186,236,243, 47, 80, 28, 88,250, 3, 25, 4, 7, 40,112, 13, 3, 2, 27,170,116, 24, 52,195, 53, 27, 76, 12,
-128,212, 1, 36,196, 99, 19, 22,207,134, 93, 15, 5, 79, 77, 17,107, 8,114,243, 31, 94,109, 19,217,176, 64,110,254, 99,173,242,
-241,131,101,203,150, 65, 12, 1,214, 1,100, 12,253, 67, 90,126,192,174, 97, 97, 97,225,153, 51,103, 96,218, 9, 36,143,137, 19,
- 39,162, 93,210,185, 98,197,138,131, 7, 15, 2,211, 21,164, 69,130,103,125,250,132,137, 19, 34, 44, 80,154,255,209,147,190,173,
- 56,246, 27,168,215, 48,202, 48,195, 62,131,248,181,237,163,128,200,230, 63, 16, 0, 4, 16, 19,158,118, 49, 36, 17,192, 39, 3,
-240, 15,195,149,151,151,147,231, 62, 92,122,149,192,247,145, 18,223,138, 71, 3,144, 21, 65,164, 14,155, 18,179,184,115, 48,128,
- 89,179,102,245,245,245,193,185,144,210,223, 15, 12,128, 12, 96,150,195,170, 11, 88, 97, 0, 75,249,247,239,223,191,121,243, 6,
- 72,126, 3,131, 47, 95,190,124,250,244,233,227,199,143,192,222, 0,176, 7,128,231, 74, 31, 96, 1, 4,108,233, 19,172, 68, 7,
- 21, 56,132, 4,224,130, 64,239,195,217,120,198,181,145,199,253,145,219,242, 36, 53, 11,208, 20, 3,139, 99, 96, 24,146, 61, 19,
- 0,212, 75, 76,146, 6,150,248,192, 52, 0,153,248, 5,214, 1, 16,191, 19,127,233, 66,117,185, 61, 80,251,191,149, 2, 64,237,
-192,166, 55, 68,251,161, 99,255, 96,205,113,156,205,127,248,128, 15,104,220,102,249,210,204,204, 76,160, 57, 5, 5, 5, 4,173,
- 6, 53,255, 25, 24,151,194,154,255, 81, 19,191, 49, 71,124, 92,126,236, 23, 80,111,231,142,174,209, 66,156, 70,165, 63, 16, 0,
- 4, 16, 11,174,242, 5, 62,244, 15,159, 12,192, 95, 56, 66,202,113, 72, 91,158,212,225, 26, 52,189,144, 62, 1, 80,144,188, 97,
- 31,248, 50, 80,122, 2, 72,195,159,188,241, 31, 72,195,159,152,241, 31,120,246,134, 48, 26, 27, 27,231,207,159, 15, 27, 66,241,
-131, 48,128,205,127, 92, 21,128,176,176,240,219,183,111,129,237,253,215,175, 95, 3,123, 0,192,246, 29,164, 7,240,245,235, 87,
- 96, 77, 0, 44,253,129,213, 64, 89, 25,206, 57, 55, 72, 51, 31,235, 18, 97,136, 44, 30, 55, 83,101, 14,128, 72,113,100, 0, 25,
- 54, 65, 47,224,170,171, 91, 91, 91, 69, 68, 68,104,154, 36, 48,155,255,112, 64,112, 38, 0,179,249, 79, 82,219, 31,216, 71,140,
-137,137, 1, 70, 46,208,251, 85, 85, 85,192,222, 15,241, 23,218,212, 84,216, 31, 56,112,128,113, 13,232,126,214, 93, 53,188,110,
- 45,159,129,218, 91, 59, 65,173,120,252, 93, 16,200,218,127,112,171,127,217,193,131,135,255, 51,254, 47, 44, 40, 84, 87, 87, 39,
-198, 82,160,222, 8, 43, 86, 68,171,159, 1,164, 87,220, 77,130,140,153,143, 81,128,165, 60,239,172,192,172, 24, 32, 35, 4, 0,
- 1,196,130,167,237, 15, 44,253,145, 39, 3, 8,118, 93,145,203,113,242,250, 1, 16,189, 20,142,252, 64,220, 76,102, 57, 62,232,
- 19, 28,100,144, 10,126, 85,119, 98, 98, 34,218,248, 12, 80, 16,146, 15, 49,129,140,140,204,157, 59,119,128, 37, 62,176,201,255,
-251,247,111,200,208,255,143, 31, 63, 32,107, 73, 33,115,194,202,202,202,120,106, 86,160,225,144, 78, 0, 60, 37, 0,131, 26, 77,
- 4, 43,160,197, 28, 0,242,136, 16,174,176,194, 42, 14, 12, 64, 96, 29, 16, 30, 30,190,114,229, 74,226, 7, 42,209,216, 29, 29,
- 29,105, 79,211,195,128, 41, 13,219, 70, 48,119,119,247,251,247,239,163,237, 66,128, 0,160, 56, 3,222, 77, 97,161,161,171, 67,
- 67,157, 93, 93,239, 97, 78, 54,188,125,235,204,192,240, 62, 61, 29,103, 78,132, 95,133, 8,233,100,236,218,181,139,129,148,235,
-204,152,152, 24, 65,141, 24, 72,233,127,233,207,252,253,160,139, 48,129,165, 63, 49, 89, 3,146,156,128,173,126, 32, 89, 88, 84,
-168,174,166, 78,164,165,165,101, 37, 96,189, 12,192, 86, 63, 68,175,132,155, 36,104,180,105,180,240,167, 61, 0, 8, 32, 22, 92,
-221,121,248,196, 47,124,153, 7, 49, 99,226, 84, 25, 11, 34,117, 7,192, 8, 4,240, 33, 23,120, 25, 7,217,189,129, 44,136,117,
-204, 20, 88, 55,108,219,182,237,207,159, 63, 31, 62,124,128,204, 1, 48,128, 87, 7, 1,185, 64, 54,193,184,203,207,207,159, 56,
-113, 34,164, 26, 64, 30,247, 7,138,211,186,238, 4, 22,247,196, 20,250, 88, 75, 67,204,138, 1,216,196, 38,178,244,199, 44,133,
-145, 39,132, 9,118, 2, 48, 5, 31, 60,120,192, 64,196, 18, 3,248, 0, 44,170,203, 93,136,241, 47,176,159, 7, 44,250,145, 7,
-223,137, 1, 64,237,255, 86, 10, 2,203,125, 32,123,193,254, 95, 43,142,253, 2,106, 63,124,156,132,209,170, 67,135, 14, 21, 20,
- 20, 16,217,234,135, 3, 72, 34, 92,121,252, 55, 80,175,132,187, 36,172, 62, 33, 74, 47,100,187, 47,100,122, 31, 45,154, 70,119,
- 2, 51, 96,187, 14, 12,109, 39, 48, 64, 0,177, 96,205, 30,144, 77, 85,200, 77, 63,130, 67, 64,232,217,131,220, 58,128,114, 67,
-224,167, 65, 16, 9,128,149, 13,214, 33,108, 98, 42, 33,204, 49, 31,226, 71,129, 48,199,124,136, 28, 5,130,207, 84, 35,231,109,
-172,130, 88,155,105,222,222,222, 75,151, 46,101, 99, 99,251,249,243, 39,176, 14,248,247,239,159,128,128,192,251,247,239,137,217,
-252,172,165,165, 5, 52,127,247,238,221,144,101, 63,144, 61, 1, 67, 46,131,237,219,183, 15, 24, 8, 91,182,108, 33,163,244,135,
-151,149,247,202,203,241,116, 85, 75, 75, 75, 25,112, 44,159, 43, 43, 43,195, 63, 7,144,158, 46,136, 75, 47,176,237, 79, 76, 57,
- 78,176, 15,132, 7,184,183,124,134,179, 73, 42,253,167, 77,155, 70, 94,116,244,116,247,130,154,252, 20, 0,172,149, 37,252,246,
-233, 81,128, 7, 0, 4, 16,206,101,160, 4, 69,104, 10,232,185, 3, 0,115,174,143,232,106,134,204,130, 15,164,151,147, 76,215,
- 66, 70,183, 32,149, 19,218, 72, 23,178, 32,126, 31, 69, 71, 71,223,189,123,119,255,254,253,223,191,127,255,251,247,175,175,175,
- 47,176, 40, 39, 62,204, 93,193, 0,210,118, 35,178,225, 79,173, 57, 0, 92,108, 60,165, 33,218,186, 20, 98,118, 51, 49,192,143,
-250,185, 23,138, 28, 44,192, 92,144,246, 52,157, 17,182, 17, 12, 34,133,181,167,133, 39,252,157,157,157, 9, 38, 72, 50,164,224,
-254, 5,198, 72, 96, 96, 32,228,244, 33, 82, 1, 83,248,123,160,118, 63,255, 52, 72, 91, 1,178,232, 19,249,152, 7, 90, 0,227,
- 24, 35,178,245, 2, 27,248,184,234, 57,136,212, 40,192, 15, 0, 2,104, 48, 30, 6, 71, 70,179,133,254,141, 80, 74,108,164,228,
-148, 55,106,249, 84, 25, 12,208, 4,127,253,250,197, 12, 6,212,142,208,233, 3,164, 23, 75, 66,130, 28, 31, 70, 24,212, 67, 15,
-134, 66,238, 29, 2, 75,127, 72, 69, 59, 56,183,152, 82,184, 87, 6,172,157,240,208, 59,213,151, 99,226, 63,231,135,118,149,229,
-232,160, 16, 16, 0, 4,208,232,165,240,163, 96, 20,140,130, 81, 48, 66, 1, 64, 0,141,222, 8, 54, 10, 70,193, 40, 24, 5, 35,
- 20, 0, 4,208,104, 5, 48, 10, 70,193, 40, 24, 5, 35, 20, 0, 4, 16,203,104, 16,140,130, 81, 48, 10,144, 1, 35, 38,235, 63,
-156, 24, 5,195, 10, 0, 4,208,104, 15, 96,132, 2,172,135,131,143,130, 81,192, 8,198,140,160, 51,160, 25, 49,192,232,222,172,
-225, 6, 0, 2, 8, 49, 9, 60,122,201,242,168,222,225,164, 55,206, 79, 23,209,204, 97, 98,130, 44, 87,133,175,104,252, 15, 3,
- 16, 5,139, 54, 93, 70,214,251,225,193,126, 14, 14, 14,136,122,200, 1,218,200,122, 33,167,230,253,251,247, 15,200,254,253,251,
- 55,175,172,221, 8, 8,103, 70,102, 22,246,255,255,254,252,251,247,103,203,145, 39,200,139, 66,113,233, 5, 6,209,203,151, 47,
- 37, 36, 36,200,176,151, 18,189,163,121,129,129,148,149, 90, 0, 1, 52,228,135,128,170,171, 17, 87,216,181,182,154,209, 79,239,
- 41,208,165,122,173,102,173,112, 6,169, 46,199,181, 79, 21,151, 56,169,230, 12,183,190,234,175,175, 44,111,239,171,254,184, 36,
-253,231,241,173,255,138, 79,120,181,190,241,201,179,113,243,226, 82,127,228,200, 17, 27, 27, 27, 72,209, 15, 41,196, 33,141, 88,
-120, 33,254, 15, 6, 30, 62,124,136,166,247,220,185,115,198,198,198,156,156,156, 44, 44, 44, 64,141,112,237,144,114,255, 47, 12,
-252,252,249,243,236,217,179, 14,178,118,131, 63,244,128, 46,127,251,246,237,241,227,199, 5, 4, 4,208, 54, 70, 16,110, 36, 50,
- 50,177,115, 8, 9, 8,170,127,253,242,244,203,231,199,160,110, 0,227,127,134,255,248, 70,132,128,161,180,102,205,154, 91,183,
-110, 1,217,192, 96, 44, 46, 46, 38,222, 58,136,222,123,119,239, 0,195,156,141,157,189,160,160,144,166,187, 16, 70, 56, 0, 8,
-160, 65, 84, 1,224, 58,105,146, 1,239, 65, 99,144,130, 27,185, 40, 39, 30, 80,162,119, 56, 1, 10,247,142,210,161,244,250,252,
-240,250,199, 67,171,190,125,251,169, 96,206,196, 41,195,168,250,232,146, 41,195,197,247, 63,121, 46,112,197,189, 97,148,198,170,
-233,218,181,107,192, 18, 4, 88,216,177,192, 0,164, 50,128, 52,252,255,252,249, 3, 44,193,129,237,119, 96,233,191,111,223, 62,
-102, 97, 19,100,189,223,190,125, 59,127,254,188,133,133, 5, 27, 27, 27,252,210, 52,160,118, 96,217,244, 7, 12,128, 26,191,127,
-255, 14, 84,243,229,203,151,193, 28,179, 85, 85, 85,200,153,232,243,231,207, 6, 6, 6,100,232, 93,188,236, 44, 39,167, 24,176,
- 64, 6, 85, 0,140, 12,255, 33,187, 5,112, 23,203,207,158, 61, 3,134, 76, 84, 84,148,146,146, 18,228, 92, 10, 33, 33, 33, 19,
- 19, 19,172,138, 19,220, 81,118,198, 93,190,113,227, 0, 47, 87, 81,127,147,161,145,206,243, 39,175,118,109, 59,160,160, 99,248,
-233,211,199,209,194,154,108,128, 54,222,139,188,244, 31, 32,128, 88,176,150, 5,144, 82, 0, 23,155, 70,165,127, 86, 22,246,123,
-210,223,191,127,191,124,249,114, 60,117, 0,164, 4, 39,181, 9, 79,161, 94,120,219,159,140,230, 63,218,205, 51,184, 20,208, 40,
-180, 33, 61, 6, 56, 9, 17,124,247, 14,180,107, 70, 72,104,207, 32, 76,190,191, 30, 95, 99, 63,182,248,231,183,127, 65, 42,204,
-234,162,127,254, 9,253,103, 21, 98,254,252,150,141,243,243,119,205,139, 83,206,170,101,124,227,146,199,214,110,101,188,126,253,
- 58,176, 4,119,114,114,130,148,227, 64, 0, 44,196, 33, 87,223, 0, 11,113, 96,251,253,241,227,199,251,247,239, 7,214, 4,104,
- 59,223,128,202,128,106, 46, 94,188, 8,172, 63,128, 13, 88,118,118,118,136, 94, 72, 5, 0,212, 8, 44,221, 46, 95,190,252,227,
-199, 15,130,155,230, 30, 60,120, 0,180, 5, 88,242, 2,221, 32, 46, 46,174,170,170, 10, 25, 92, 34, 6, 80,162, 23,232,212,154,
-154, 26,248, 97,168,192,210, 28, 88, 35,138,137,137, 9, 11, 11, 19, 89,250,207, 75, 74,242, 50, 52, 4,178, 37,114,115, 57,185,
-196,191,124,122,244,233,227,221,255,255,255,130, 14,140,251, 71,224, 14,106, 96,113, 47, 34, 34,178,104,209,162,248,248,248, 77,
-155, 54, 1,185,135, 14, 29,250,245,235, 23, 3,131, 28, 86,245,111,219,139,224,108,158, 95,191,165,254,252, 40, 40,173,239,239,
-105,236,238,153, 38,205,244,119, 90, 79,159, 83, 68, 20, 46,189,163,128,164,210,159, 1,233, 40, 80, 32, 0, 8, 32,236, 61, 0,
-228, 35, 80,112,177,169, 14,232,127,134, 51, 21, 6,160, 96,117, 0, 73, 0, 94,167,206, 15, 92,132, 41,155,184, 62,142,166,205,
-112,136,225,200, 36,193,107,187, 7, 16,252,248,240, 70,237,254,214, 87,204,127, 85,248, 25,228,229,254, 51,235,177,177, 40, 41,
-177,253,252,241,243,232,227,159, 31, 89,152,255,177,254,216,179,152,201, 43,255, 31, 11,250, 88, 16,252,242, 75, 65, 65, 65, 71,
- 71, 71, 96,209, 9, 44, 70,129, 13,121, 72,195, 31, 88,118, 3, 91,169, 7, 15, 30,100, 2, 3,172,122,129, 42,175, 94,189,106,
- 99, 99,195,199,199, 7,212, 14, 20, 1,150,254,192, 82,236,211,167, 79,167, 79,159, 6, 86, 3, 64,211, 32, 51, 1,184,192,165,
- 75,151,142, 29, 59,118,255,254,125,160, 22,160,237, 18, 18, 18,192, 86,176,149,149, 21, 55, 55,225,173,224,100,235, 5, 58, 9,
-114,243, 15,178, 32,228, 92,104, 96, 43,138,152, 42,132,137,153, 13,153,251, 98,242,100,137, 0,153,238,238,137,191,127,127, 5,
- 7, 14,227, 63, 96,233,255, 31,212, 5,248,143,123,252,237,228,201,147, 21, 21, 21,192, 64, 11, 10, 10,146,149,149, 5, 86,180,
-219,182,109, 51,119, 39,180,233,151,145,113,201,157,231,107,111, 63,221,180,113, 33, 51, 51, 99, 81,110,172,190,132,200,172,130,
-250,217,196,232, 29, 5, 56, 74,127,228, 38, 63, 90,125, 0, 16, 64, 36,172, 2,162,245,113,143, 74,184, 1, 45,154,240, 20,234,
-101, 32,107,220,159,234,109,121,248,101,150,196, 23,226, 88, 85, 2,219,254, 68, 54,255,129,133, 32,176,248,195,228, 34, 11, 98,
- 2,184, 26,248, 45,131,152, 92,172,224,221,213,115,207,158,126, 18,227,101, 81,226,253,207, 34,242,143,197,210,131, 91,127, 49,
-167, 81, 47, 59, 63, 39,219,151,239,223,190,253,149, 99,254,246,254,210, 49, 44,165, 24, 19, 19,228,178,251,219,183,111, 3, 91,
-235,192, 66, 92, 24, 12,128, 45, 83, 1, 1,129,143, 31, 63, 2,219,164,192,226, 9, 50,202,143,166, 23, 34, 14, 44,118,129,117,
-192,173, 91,183,184,184,184,128,186,128,205,103, 81, 81, 81, 30, 30, 30,160, 8,176, 10,129, 12, 13, 97, 86, 30,200,237,247,221,
-187,119,223,189,123, 87, 81, 81,209,221,221,221,204,204,236,219,183,111,251,246,237, 3,118, 44,128,213, 15,193,182,255,238, 61,
-123,239, 61,255,200,171, 98,161,230,158, 44,109,230,247,254, 39, 19, 80,132,160, 94, 96,233, 15,172, 48,128,149, 7,176, 8,214,
-211,211,131, 15,227, 64, 24, 4, 75,127, 96,209,207,205, 35, 37, 36,172,179,116,197,165,164,121,243,182,157, 63, 15, 68,192, 30,
- 0, 3,104,186,251, 43, 84, 13, 35, 16,225, 91, 15, 4, 44,232,129,173,254,156,156, 28, 94, 94, 94, 96,208,173, 93,187, 22,232,
-152, 55,111,222,168,169,169, 17, 76, 93, 19,207,223,238, 57,113,101,118, 79, 37, 11,243,119,166,191,159,187, 38,204, 91,121,232,
-236, 51, 38, 22, 82, 79, 24, 29, 5, 68, 2,128, 0, 98, 33,190,160, 31,204, 83, 49, 35,182, 26,128, 12,221,144, 52,122,131,217,
-189,128,247, 3, 8,246, 60, 62,127,254, 12,108,150, 2,155,213,166,166,166,104,220, 83,167, 78, 65, 4,177, 2,136, 44,144, 4,
-182, 76,129,205, 88, 96,209, 0, 17, 68,230, 98, 5,124, 63,222,110,123,244, 67,250, 61,179, 33, 31,163,232,107, 6, 21, 22,126,
- 38, 70,225,255, 63, 94,126,125,201,120,245,209,191, 23, 95,127, 0,203, 96,134,127,183, 24,140,220,113, 85, 0,236,236,236,192,
- 82, 88, 90, 90,218,213,213, 21, 88,178, 3,139,200,183,111,223, 2,139, 36,160, 20,176,136,135, 28,127,244, 15, 67, 47, 68, 59,
- 80, 1, 48,217, 3, 59,190, 42, 42, 42,252,252,252, 95,190,124, 57,127,254, 60,176, 86, 0,154,249, 19, 12,240,180,138,128,213,
-219,147, 39, 79,244,245,245, 29, 28, 28,100,100,100,190,126,253, 10,172, 63,128,221,220,227,199,143, 19, 28,204, 1,234,125,249,
-238,163,144,154,133,146,109,184,128,140,218,207,175, 31, 30,157,220,122,123,239, 66,130,122, 33,179, 23,192,206,141,184,184, 56,
-176,192, 5,214, 4,144,162, 31, 50, 22, 4,100, 99,189, 33, 7, 90,237,177,112, 8, 8,170, 11, 8,169, 51, 49,177, 2,139,251,
-185,243,247, 39, 37, 58, 66,244,166,166,166, 2, 29, 15,209, 11,246, 50,184, 40,192, 54, 13, 0, 12,216,205,155, 55,103,101,101,
- 73, 74,130, 14,248,220,187,119, 47,176, 50,227, 4, 3,111,111,239, 99,215,190,227,241,245,178,155,143,123, 79,223,152,211, 81,
- 46,163, 46,255,245,203,251,141,219, 79, 95,186,124, 83,224,255, 63,182, 23, 47,189,115,162,143, 94,253, 62, 90, 94,147, 10,208,
- 78,250,193,236, 16, 0, 4, 16, 11,102, 89, 0, 63,228, 22, 23,123, 80, 1,178, 11,110, 10,245,146, 61,254, 67,121,171,159, 24,
- 41, 60, 69, 57,217,171,134,128, 57, 25, 88,220,191,127,255, 30, 43,151, 72, 0,172, 45,128,229, 47,176,208, 87, 80, 80,192,228,
- 98,130,215,111, 30, 31,123,254,221,155,139,235,240,227,127, 82, 70,236,138, 63,207,190,191,150,181,190,235,210,191, 7, 31,191,
-252,250,255,244,243, 95, 78, 22,166, 63, 31, 95,240, 99,107,199,192,235, 0, 96,137,249,240,225,195, 27, 55,110,104,107,107, 3,
- 29,124,226,196, 9,200,200, 62,174, 65,124,160, 94, 72, 39, 0,162, 23, 88, 7, 60,126,252, 88, 87, 87, 23, 88,124, 3,235, 15,
-160, 8, 80, 28,178, 58, 8, 79, 15,224,209,163, 71, 64,243,141,141,141,129,165, 63, 80, 49,176, 11, 98,110,110, 14,180, 26, 40,
- 14,172, 57,240,135, 18, 80,205, 63, 38, 54,105, 3, 23, 96,233,207,196,204,202,201, 39, 42,103,238,253,240,196, 38,252,122,129,
-238,252,240,225,195,211,167, 79,229,228,228,172,173,173,129,150, 66, 70,126,226,227,227, 33, 10,128,117, 24, 30, 75, 57, 56,132,
-133, 69,245,127,253,252,248,230,237,249,159, 63,223,255,254, 13,154,223,134,232,125,249,226, 5, 92, 47,168,245,143,163,214,123,
-254,252,249,210,165, 75,163,163,163,129, 97,197, 0,190,142, 6,216, 27,168,172,172, 4,214, 70, 48, 37, 56,151, 39,222,250,244,
-173,252,224,133,142,146,116, 91, 31,151,175, 95,222,172, 90,119,112,230,220,181,219,139, 18,148, 94, 61,233,252,244, 66, 72, 72,
- 24,143,222, 81, 64,228, 88, 16,102,149, 0, 16, 64, 44, 88,135, 98, 8,178, 7, 57,160,124,141, 38, 49,160,197,180,133,254, 55,
-136, 33,151,221,104,149, 1, 53, 14,131,196, 9,110,222,188, 9,155,199,195,194, 37, 9, 0,139,224,221,187,119, 67, 46,241, 64,
-230, 98,237,230, 95,124,247,253,227,175,127, 23, 95,255,121,246,225,143,248, 9, 22,189, 85,119, 30, 62,184,122,243,228,175, 63,
- 44,204,191,254, 49,252,248,245,255,253,255,127,162,130,255,177, 22,226,240, 5,160,144,101, 60, 47, 95,190,148,151,151, 7,214,
- 91,144, 97, 31, 32,137,216,224, 68, 8,192, 55, 13, 64,200,193,121,115, 28,176,114,130,220,130,162,168,168,136, 92,177,157, 57,
-115, 6, 72, 2,131, 23,114,233, 30,174,107,127,128,161, 5, 36,191,127,123,249,229,243,227,191,127,127, 32,235,221, 4,174,170,
-129,221, 32,144,222,255,216,199,254,129,241, 56,121,242,100, 96, 51,223,198,198, 6,200, 61,122,244,232,134, 13, 27,178,179,179,
-145, 74,127,156,224,249,183,159,177,219, 78, 20,132,121,135,196, 6,127,251,241,105,253,166, 3, 19,166, 45, 91,228,102, 10, 44,
-253, 71,203,110,170,215, 4,200,117, 0, 64, 0, 81,115, 39, 48,242, 72, 52, 46,246,112, 2,131,161, 20,128,140,221, 19, 63,254,
-131,103,206, 0,127, 28, 1,139, 15, 87, 87, 87, 65, 65, 65,172, 92,146, 0, 80, 23, 80, 47,188,184, 71,227,162,129,239,127,249,
-126, 51, 50,156,121,243,243,213,223,191,123,239,253, 88,181,250,199,190, 39,162,119,216,248,159,124,252,253,248,243,191,175,127,
- 24,190,253,249,207, 46, 44,129,171,200,134,172,244,255,251,247,239,159, 63,127,132,133,133,121,120,120,128,117,192,239,223,191,
- 33, 34,104,219,193,144,245, 66, 86,250, 3,213,124,255,254, 29,200,149,149,149, 5,182,172, 37, 37, 37,129,213, 6,176, 13, 14,
-172,249, 32, 38,227, 25, 23, 5, 54,195,129,125,133,179,103,207, 62,121,242, 4,114, 13,231,201,147, 39,191,124,249, 2, 20, 7,
-118, 62,240, 7, 17, 80, 13,211,191, 95, 79,207,239,249,240,228,214,191,191,191,191,127,122,253,232,228,214, 95, 95,223,227,215,
- 11,119,204,183,111,223,224,179,211,192, 78,192,213,171, 87,129,229, 56,228,210,246,143, 31,113,174,167, 4,250,245,207,239, 47,
-156,220, 18, 28,156, 66,144, 29,193,200,122,103,207,158, 13,209,251, 15, 53,192,128, 29,184, 69,139, 22, 1, 91, 15, 77, 77, 77,
-126,126,126, 62, 62, 62,144,174,192,230,205,155, 75, 75, 75,129, 93, 46, 60,222, 4,234, 93,188,120,113, 68, 86,142,211,154,131,
- 37,113, 65,121,101,153, 63,126,125,185,127,247,241,204,153,171, 54,248, 90, 57,200,138, 17,159,168,128,149,205,104,225,142,127,
- 44, 8, 94,238, 35,207, 3, 3, 4, 16,245,143,130,192,188, 61, 21,147, 77,229,246, 62,198, 66,126,228, 38, 63,254,230, 63,166,
-222, 83, 64,161,234,106, 76, 54, 49, 67, 64,196,235,165, 86,111, 0,190,152,135,248,230,255,187,119, 46,240,153, 3,146, 58, 16,
- 10, 10, 10,190,190,190,192,102, 32, 86, 46,145, 0,168, 30,168, 11, 62,224,131,198,197,162, 94, 85, 69,149,155,153,151,145,225,
-247,255,255,215,223,255, 90,122,231,231,242, 99,207, 78,223,125,247,236, 59,195,219, 31,127,239,126,249,255,252,231,127, 89,101,
- 21,172,165, 33,100,213, 38,176,176, 6, 22,226,192,178, 91, 71, 71, 7, 92,101, 10,153,153,153, 65, 10,113, 72, 57,142, 89,136,
- 67, 10,119, 96, 61, 1, 84, 0,172,230,149,149,149, 63,124,248,240,248,241,227,119,239,222, 1,157, 10,236, 85, 0,197,129, 38,
- 64,148,225,114,185,169,169,169,140,140, 12,176, 0,221,177, 99,199, 22, 48, 56,124,248, 48,176, 97,110,105,105,137,103,206, 3,
-174, 87, 92,136,255,237,189, 11, 55,119,207,191,186,117,250,245,173, 51, 31, 30,223,192,206,244, 15,191, 94, 96,229, 4,108,110,
-243,241,241, 93,188,120, 17, 88,235, 32, 87, 3,144,182,252,210,165, 75,241,148,200,191,126,126,252,248,225, 14, 43, 43,183,128,
-144, 6, 55,143, 52,144, 1,233, 19, 0,193,179,147, 83,247, 47,202,115,213,248, 2,174, 0, 24,160,219,192,192,193,182,117,235,
- 86, 78, 78, 78,160,177,192,144,177,176,176,128,119, 5, 98, 98, 98,128, 29, 17,252,222,220,182,109, 43, 31, 31,143,157,189,185,
-129,145, 94, 96, 86,210, 55,198, 63,175, 95,189,203,200,109,238, 52, 81, 49, 18, 35,161,109, 1, 44,253,187,186,186, 70,235, 0,
- 98,170, 1, 52, 17,128, 0,162,211, 70,176, 1,105, 44,147, 55, 70,111,214,218,138, 92,118, 3,185, 84,215, 11,111,107, 39,174,
-143,195,163,128,214,123,178,224,182, 32,239, 12,192,175, 5, 88,250, 56, 59, 59, 3,203, 80, 76, 46,176, 84,197, 23, 50, 96, 89,
- 32,105,104,104, 8, 44,167,224,130,200, 92,172, 64, 90, 77, 75,247,234, 89,249,247, 31,223,252,253,247,233,199, 31,118, 96,105,
-253,243,143, 28, 15,203,251, 63,127,158,126, 5,173, 32,242, 86, 21,231, 86,208,250,130,109, 60, 4,190,226, 83, 87, 87, 87, 95,
- 95, 31, 88, 48, 65, 22,110, 2,157, 13, 44,170,214,175, 95, 15,217, 16, 0, 20, 97,196,208, 11,217,237, 5, 76,183,106,106,106,
-192,250,227,245,235,215,144, 37,164, 64,211,128, 34,175, 94,189,130,232, 5,138,224,169, 47,129, 61, 27,200, 82, 78, 96,137, 12,
- 95,202, 9,116, 9,193,213, 56, 32,189, 46,206, 32,189,119, 79, 62, 59,191, 27,170,215,218,137,160, 94, 96,233,111,100,100,116,
-244,232, 81,160, 94,105,105,105,160, 57,220,220,220, 85, 85, 85,147, 38, 77, 2,118,125,128,182,247,245,245,225,186, 35, 30, 88,
-229,125,124,127, 7, 88,172,243, 11,169, 73, 72, 89,126,255,254,230,203,167,135,221, 61,147, 26, 27,170,164,100, 24,150,231,115,
- 49,134,189,119,140, 99,128,212,152,240,141,192,183,110,221, 2,166, 1, 27, 27, 27,160,249,192, 42, 7, 40, 55,101,202,148,240,
-240,112, 72,117,139, 31,220,188,121, 43, 36,216, 63, 34,194, 79, 71, 87,253,237,231,143, 95, 62,190, 73,203,107,110, 14,116,118,
-254,247,141,164,210,127,194,132, 9,192, 72, 1,214, 58,185,185,185, 1, 1, 1,163, 5, 61,242,128, 15,214,114, 31, 14, 0, 2,
-136,133, 62, 5, 61,193, 21, 68, 33, 33, 33,228,237, 4,198, 5,144, 55,106,145, 87, 7,144, 90,250, 19,175, 23,255,170, 27, 90,
- 31,237, 0, 31, 47,130,219,130,188, 39,128, 32, 0,150,131,200,171,125,224, 92, 60, 75,128,224,178,104,106,240,107,129, 0, 41,
- 69,229, 31,102,182,127, 78,109,123,240,145,129,135,145, 85,158,135,233,233, 95, 70,102,118,150, 67,175,254,254,248,199, 32,202,
-206,172,108, 98,247, 69, 80, 1, 91,113, 6,106,194, 3, 91,220,192,118, 40,176, 76,252,244,233, 19,176,236,134, 84, 0,192,246,
- 59,176,210, 2,150, 89,155, 55,111,134, 12, 7,161,101, 3,160, 8,100,219,176,166,166, 38,100,244, 6,168, 23,146,182, 33,253,
- 6,160, 56,176, 55,240,229,203, 23,252, 9, 91, 79, 79, 15, 88, 34,147,183,153,139, 60,189, 64,103, 75, 73, 73,185,187,187, 3,
-107,157, 27, 55,110, 60,122,244, 8, 88,219, 9, 8, 8, 0,171,162, 57,115,230,224,218,139,139, 52, 10,244,237,195,251,155, 63,
-126,188, 19, 16, 84,227,225,149,229,229,147,251,250,249,105, 71,231,220,200, 8, 23, 96, 5, 0, 11,216,255,200, 53,128,151,151,
-215,182,109,219,128, 29, 14, 96,128,248,249,249, 45, 92,184, 16, 88,175,107,104,104, 16,227, 71,111,111,175,245,235, 55,127,250,
-240,246,201,179,231,249,217,113,165, 21,109,129, 78, 86, 54, 63, 63, 49,176, 18, 91, 46, 1, 75,255,134,134, 6, 72, 55, 20,216,
- 81, 3,246, 3,202,202,202, 70,235, 0,252,245, 1, 50, 0, 8, 32,106, 86, 0, 20,174, 32, 34,163,148,135,128, 55,111,230, 86,
-159,218,136,117,192,135,224,244, 47, 80,239,169,234,141,104, 13,118,228, 97, 28, 60,229,248,155,185,111, 78,109,172, 38, 79,239,
- 64,129,161,120,106,144,130,149,227,165,159,127, 94,239,219,203,250,231,251,165,207,255,247,124,254,195,198,200, 40,252,255,191,
-163,164,128,189,155,179,144,177, 3,142,246, 44,168, 7, 0,108, 2, 3,203, 35, 96, 19, 30, 88,208, 3,139, 81, 72, 33, 14,105,
-188,139,138,138, 90, 91, 91,239,220,185, 19,115, 24, 7, 40, 2,172, 42,128,205,109,160,122, 96,171, 22,210,141, 96,128,205, 43,
- 0,185, 64, 5,192, 94,197,137, 19, 39, 8, 78,131, 43,128, 1,153, 30, 39, 75, 47,176, 14, 0,150,248, 64,231, 1,123, 0,192,
- 78, 15,176,239, 2, 20,124,250,244,169,167,167, 39,176,249, 79, 80,251,223,191, 63,191,126,121,250,235,215, 71,206, 79, 15,248,
- 4,148,185,120,164,128,104,215,222,151,140,206,226,176,198, 28,152,132,169,183,178,178, 2, 6, 44,176,244, 7,214, 4,194,194,
-194,113,113,113, 7, 14, 28, 32,210,169,150,150, 86,236,236,236,124,215,206,102,103, 39,203,168,169,118, 21, 36, 47,152,182,112,
- 10,243, 15,226, 75,255,242,242,114,160,103,159, 61,123,198,201,201, 9,140, 20, 96,119,167,181,181,181,186,186,122,180, 14,128,
-143,249, 0, 11,125, 60, 71, 65, 0, 4, 16,149,123, 0, 3,178,130, 8,107,161, 70,100,243, 31, 83, 47,114,251, 29, 50,158,131,
-171, 28,167, 68, 47,158,178,152,212, 50,122,216,159, 4, 7, 44,209, 12,156,221,133,165,100, 94, 95,191,194,252,240,158,202,239,
-231,188,194,226, 86,186, 26,218,198, 58,223, 37,112,238, 15, 2,150,212,192,182, 63,176,153, 15, 25,172, 7,118, 5,128, 12,200,
-113, 14,240,209, 33, 89, 89, 89, 96, 29,128, 89, 96, 1, 75, 19, 3, 3, 3, 96, 29, 0, 44,223, 33, 42,225,139,106,224, 39,193,
- 1,141, 50, 52, 52, 60,123,246,236,224, 12, 52,160,227,197,192, 64, 93, 93, 29,232, 95, 96, 53, 6,244, 62, 48, 52,170,137,154,
-151,250,255,251,215,231,223,191,190,124,255,254,154,157, 93,144,149,141,151,137,137,101,201,210,173, 49,209,222,208, 90, 16, 85,
- 53,164, 99,209,219,219, 11,172,104,129, 12, 53, 53, 53,226,175,149, 54, 50, 50,102, 54, 53, 77,106,128,232,253,175,166,166,174,
- 22, 16,128,127, 84, 16, 25,116,118,118,142,150,242,196,212, 1, 88, 75,127, 32, 0, 8,160, 97,123, 33, 12,217, 75, 63,145,139,
-108, 82,155,240,148,232, 29, 5,248,129,172,166, 54, 16, 1, 25,240,179, 55,241,239, 11, 10, 13, 13, 21, 20, 20,132, 44,245, 1,
-150,128,144, 33, 29, 72, 15, 0, 50,241, 11, 57, 16, 84, 89, 89, 25, 40,120,228,202, 87,100,189, 19, 38, 76, 88,189,122, 53, 68,
- 1,232,164, 32, 28,199, 65, 3, 91,190, 4, 7, 85, 6, 73, 13,202, 3, 6, 36, 54, 23, 32,213,192,103, 96,233, 15, 52, 3, 24,
-108, 16,189,184,198,188, 32, 71,126, 66,130,154, 36,231, 1,131,185,176,176,144, 12,189,163,205,124,226,235, 0, 92, 82, 0, 1,
- 52,122, 41,252, 40, 24, 5,163, 0,163, 92, 96, 96, 64, 63,236,225,255,232,141, 96,195, 16, 0, 4,208,232,149,144,163, 96, 20,
-140, 2,140,198, 63,195,232, 13,144, 35, 2, 0, 4,208,232,149,144,163, 96, 20,140,130, 81, 48, 66, 1, 64, 0,141, 86, 0,163,
- 96, 20,140,130, 81, 48, 66, 1, 64, 0,141, 86, 0,163, 96, 20,140,130, 81, 48, 66, 1, 64, 0, 33,230, 0, 70, 47, 89, 30,213,
- 59,170, 23,151,222,244,244,116,255,128,244,141, 27,176, 28,185, 49, 26, 86, 3,174,183, 21,182,226, 14,215, 34,215,209, 75,225,
-113, 1,128, 0, 98, 65, 75,229,152, 42,136, 92, 55, 54,168,244, 18,169,125,160,220, 60,120, 0,217,103, 78, 80,247, 32, 82, 60,
- 0,114,229,192,193,131, 7,129,108,123,123,123,252,151, 7,208, 46,148,128,165,191,151,167, 17,228, 24,189, 97,191,241, 98,104,
- 1, 96,233,239,235,171, 12,103, 87, 87, 87,143,134, 9,241, 0, 32,128,208, 87, 1,253, 95,133,114, 6, 19, 99, 24, 9,167,189,
-163,101, 12,146, 78, 0,165, 68, 47,154,155, 73,114,246, 64,185, 25, 2,222,189,190,243,250,245,243,151,111,190,124,252,248,155,
-159,159, 85, 92,132, 71, 84, 84, 82, 72,148,168,227,213,206, 29,159,118,239,238,173,187, 15,126, 60,126,254, 95, 86,146, 81, 89,
-129, 67, 73, 89,205,200, 50,139,254,213, 6,228,108, 81, 26, 21,139,151, 47, 95, 54, 48,216, 49, 99,198,183, 3, 7, 24,234,235,
-119, 61,126,252, 88, 66, 66,130,131,131, 67, 84, 84, 84, 73, 73,137,140,202,224,240,225,195,226,226,226,242,242,242, 4,143,228,
- 68, 6,192,210, 63, 45, 45,141,129, 97,214,198,209, 3,199, 6, 31,248,245,171,124,231,206, 52,119,247, 89,190,190,157,144,222,
-192,104, 53,128, 12,240,108, 4, 3, 8,160, 97,178, 12, 20, 94,226, 51, 50, 50,252, 91, 41, 56,248, 29,252,251,215,215,199,143,
- 46,255,250,245, 91, 69, 81,192,193, 70, 78,128,159,253,253,135, 31, 79,159,127,185,125,239,249,135,143,111,100,229,116, 89,217,
-112, 94,253,250,254,205,173, 99, 7,103, 51, 51,124, 10,247,102,176, 54,102, 80,150,103,184,243,224,255,145, 51,223,183,237,191,
-184,117,109,169,149,125,170,160,136, 26,145,206, 32,187,237,143,172, 17,114,144, 28,141,234,128,119,239,222,229,229,125, 19, 21,
-101, 8, 13,101,232,232, 0, 93,200,245,231,207, 31, 96, 5, 32, 38, 38, 6,172, 0,128,125, 2, 41, 41, 41,130,134,188,120,241,
-226,213,171, 87, 47, 95,190,116,117,117, 93,178,100, 9, 3,120,175,111, 84, 84, 20,254, 3,236,144,193,182,237,231,128,165, 63,
-152, 28, 5,131,171,249, 15, 36,131,131,215,238,220, 9, 34,211,210,238, 66,122, 3,163, 93, 1,204,162, 31, 46,130, 92, 7, 0,
- 4,208, 48,169, 0,128,157, 0, 72, 29, 48, 36, 74,127, 32,120,242,232,178,184, 8,135,169,161, 34,248,126, 37,198,127,255,254,
-243,241,176,115, 43,179, 41,200,242, 95,187,249, 6, 40,171,168, 98,129, 75, 47,176,244,183, 53,254, 84,144,200,192,204, 12,170,
-240,126,255, 97,224,230, 98,208, 84, 97,176, 48, 96,216,178,255, 19, 80,214, 59,184,155,166, 67, 64, 88, 47,149,164,209,149, 15,
- 66, 66, 66, 91,182,112,202,202,126, 7,246, 0,222,191,103, 81, 1,131, 47, 95,190,220,187,119,239,192,129, 3,159, 62,125, 2,
-150,227,248,251, 1,215,175, 95, 63,119,238, 28, 43, 43, 43,178,224,247,239,223,231,206,157, 11, 52, 36, 34, 34,130, 24,103,108,
-220, 0,244,114, 58,152, 36, 1,192,239, 73,134, 28,123,135,198,197, 19, 35, 12, 72, 39, 6,226,225,226,108, 15,253,255, 47,242,
-246,173,210,131, 7,194, 79,159, 62, 17, 19,123,164,164,244, 81, 76,236, 63,209, 39,242, 2,221, 73,204, 57,125,120,180,224,231,
- 82, 75, 47,124,240, 39, 45,109, 39,144, 1, 33, 33, 82, 64,198,104, 29,128,181,213, 15, 57, 26, 8, 46, 2, 16, 64,195,106, 21,
- 16,227, 16,113,231,187,215,119,126,255,254,109,102, 36, 9, 23, 97, 98, 98,100, 99, 99,230,228, 96, 97,101,101, 82, 86, 20, 4,
-246, 12,128,106,112,141,252, 0,219,254,133, 73, 12, 63,126, 50,220,127,204,240,254, 35,195,135, 79, 12,203, 54, 49,228, 54, 48,
- 84,245, 48, 88, 25, 49, 48,253,255, 4, 84, 51,108,226, 84, 87, 87,119,227, 70, 77, 49, 49,134,168, 40, 22, 9, 9, 83, 96,121,
-237,235,235,235,227,227,227,238,238, 46, 46, 46, 14, 44,217, 87,174, 92,121,247,238, 93, 92, 23, 37, 94,186,116,233,194,133, 11,
-104,165, 63, 28,236,223,191,255,234,213,171,120,202,226, 67,135, 14,193, 75, 91, 72,233, 15, 97, 3,197,137,169,240, 78,193, 0,
- 86, 46,145,245, 43,126, 46,214,210, 95,233,198, 13,219, 61,123,100,111,221, 97,251,244, 73,242,214, 13,157, 45,155, 69, 47, 94,
-100, 32,250, 78,111,160, 11,129,197, 46,176,207, 68,124, 52, 65,180,224,225,226,215,139, 92,220,227,225,226, 2,144,114, 31, 66,
-254,242, 85, 97, 24, 5, 72, 69, 63,254,179, 30, 0, 2,104,176,244, 0,168,210,126,252, 79, 13,123,201, 27,202,128,223,180, 69,
-204, 24,203,235, 55,207,213,149,133, 32,229, 62,154, 20, 7, 59,203,135,143, 63,213,148,133,110,221,123,142,117, 50,224,222,221,
- 91,225,160, 35,185, 24,118, 28, 98,152,186,152,193,205,150,193,203,129,225,198, 29,134,243, 87,255,115,114, 48, 26,106, 51,184,
-219, 51,172,219,121,203,200,146, 86, 67, 64, 88,131,136,118, 55,190, 1, 91,247,192,246, 62,144, 1,108,233, 91, 91, 91,195, 5,
- 5, 5, 5, 53, 53, 89,252,252,128,125,160, 51,183,110,125, 99, 96, 0, 6, 10, 59,230,200,207,229,203,151,113,149,254,240, 58,
- 0,215, 29, 41,209,209,209, 75,193, 0,200,128,251, 23, 88,244, 3, 69, 32,178,244,201, 11,248,185,152,128,239,229, 75,197,147,
- 39,127, 49, 49,177, 50, 50,252,249,247,255,223,239,191,255,254,252, 17, 61,124,232,163,136,200, 79, 25, 98, 87,146, 0,139,221,
- 43, 87,174, 24, 26, 26, 26, 24, 24, 16,175, 5,185,115,131,198, 37,178, 27, 65,106,233,143, 89,220,239, 68,234, 7,140, 2,130,
- 0, 32,128,208, 43, 0,204,233, 83, 34, 11, 53, 92,133, 41, 49,122,105, 49,118, 76,228, 50, 21,172, 19,200, 68,234, 69, 83, 70,
-252, 92,244,203,215, 95, 28,173,229,128, 13,178,195,199, 31,127,251,254, 27, 40, 98,164, 47, 33, 42,204,249,248,233,231, 59,247,
-223,179,176, 48,169, 42, 9, 30, 61,249, 85, 93, 19,139,222,187, 15,126, 88, 27, 51,252,252,205,176,253, 32,195,254,227,255,165,
-196, 25,149,228, 24,156,109, 24, 52,148, 25, 89,152, 65,231,168, 91, 24, 48,116,207,252,129,127,192,135, 32, 3, 79,171, 1, 62,
-226,143, 54, 46, 65,187,181, 49,143, 30, 61, 98, 0,159,143,143, 44,248,224,193, 3, 45,173, 87, 85, 85,160,128,111,107,187,245,
-224,129, 54, 3, 27,250,201,160, 64, 53,248, 75,127,136, 26, 92, 82,118, 96, 0, 41,241, 33,133, 62,188, 98,128, 95,104, 76,117,
- 64, 97,243, 31, 8, 4,174,223,248,245,251, 55, 19, 19,211,127,102,102,208,165, 8,144, 3,237,254,254, 99,191,116,137,248, 10,
-128, 1,124,175,228,209,163, 71,129, 93, 85,105,105,105, 98, 38, 90, 40,172, 3,200,107,251, 3,139,123,247, 89,238,193,107, 25,
-210,118,130, 24, 64, 46,164, 86, 96,219,124,103,180,112, 71, 3, 88,239,133, 7, 8, 32,194,171,128,136, 95, 23,132,217, 42, 36,
-178,157,136,181,158, 32,190,226,193,234,114, 60,151,167,227, 42,166,225, 19,200, 68,234,197,170, 12, 98, 26,176, 97,255,111, 21,
-206,217, 8,240,154, 31, 80,115,245,241,179, 79,223,191,131,174,181, 82, 81, 18, 4, 86, 0, 23,175,190,186,121,251, 29, 7, 7,
-179,178,162,192,251,143,216, 15,154,127,252,252,191,178, 60,200,124, 15, 59, 6, 3, 45, 70,118, 54,134, 63,127, 64,253, 0, 1,
- 94,134,123,143, 24,220,237, 24,228,101, 64,106,104,154,146,224,229, 62,145, 67,210, 3, 5,176, 14, 98,144,234, 84, 72, 89, 15,
-175, 0,104, 90,250,195, 1,174,171,219,241, 92,233, 14, 7,172,119,239,252,252,253,139,145,153,229,239,255,255,192,116,242,231,
-239,191,223,192,142,192,223,191,140,183,111, 50, 48,120,145,234, 18, 96, 63, 0,216,145,226,230,230,230,231,231, 39,190, 14, 32,
-114,240,135,194,210,191,186,186,186,181,181, 21, 88,250,195, 43, 3, 32, 9,172, 6,128,165,255,230,205,119, 33, 19, 0,144, 89,
- 98, 61,187,248,209,210, 31,179,244, 7, 2,128, 0, 26, 44, 67, 64, 88, 11, 83, 34, 11, 98,146,214,170, 98, 55,129, 74,107,135,
-128, 46, 33,198, 40,126,126,214,247, 31,126,136, 8,113,133,250,105, 0,243, 39, 59, 59, 51, 51,176,189,246,255,191,143,155,178,
-183,171, 50,208,132,183,239,191, 3,213, 96,213, 43, 43,201,120,247,225,127, 13,101, 6, 39, 75,208,144,215,141, 59, 12,122, 26,
- 12,130,124, 12,158, 14, 12,255,254, 49, 0, 59, 1,183,238,131,212,224, 15,100,130, 12,226, 55,146, 80, 50,110, 70, 12, 0,182,
- 95,129, 45,208,187,119,239, 2, 91,226,182,182,182, 60, 60, 60,144, 19,131, 21, 20, 20, 78,157, 18,107,108,124,202,200,200,248,
-234,149,154,154,154,194,181,103, 88,244,162,137,172, 90,181, 10,165,209,240,255,127,120,120, 56,241,117, 0,221, 74,127, 50,234,
- 6, 56,120, 39, 35,205,118,227,230,127, 86, 6,182,127,160,121,223,223,127,255,252,250,255,247,219,159, 63,223, 85, 52,200,112,
-140,142,142, 14, 48,252,137, 44,253, 25,192,215,124, 2,155,252,240,226, 27,141,139, 11, 64,122, 9,112,101,104, 92,130, 0,216,
-252,135, 20,253, 64, 18,185,237, 15,153, 37, 6, 86, 6,163,165, 63,214,210, 31, 8, 0, 2,104, 56,172, 2, 34,216,243, 32, 8,
-254,255,103, 96, 10,127, 79,121, 29, 0, 89,140,196, 20,246, 30, 79,243, 31, 8,196, 69,120, 30, 63,253, 12,172, 0,250,166,159,
-182,179,146, 53,210, 19,103,100,101,132, 44, 7,130,172,212, 0,202, 2,213, 96,213,171,172,192,113,244,236,119, 96, 5, 32, 98,
-204, 80,145,201,144,159,192,192,207, 11, 26,249,105,156,196,208,144, 15, 82,112,244, 44, 72, 13, 73, 3,101,148, 47, 6,165,221,
- 50,208, 55,111,222, 64,238, 65,220,186,117,235,163, 71,143, 60, 60, 60, 20, 21, 21, 63,127,254,252,254,253,251,235,215,255, 28,
- 56, 0, 44, 44, 76, 28, 29, 29,101,100,100,174, 61,123,141,166, 23,216,110,197,127, 99,215,159, 63,127, 6, 91, 98,134,151,254,
-120,170, 1,252,117,192, 39, 45,109,246, 75,151,254,253,255,207,205,196,194,204,204,248, 7, 88,250,255,254,253,249,215,175,223,
-250,250, 36,185,132,139,139,139,164, 57, 0,120,113,143,139, 75,139, 58, 0,216,204, 79, 3,183,241,145, 75,127,120,243,127, 20,
-224, 47,253,129, 0, 32,128, 70,143,131,134,181, 22,169,180,126, 20, 90, 7,224,173, 78, 68, 69, 37,239,220,127,166,175, 45, 86,
-145,111,177, 96,249,101, 78, 14, 22, 3, 29, 49,248,117,202,255,254,253,191,115,255,189,184, 24,246, 81, 87, 37,101,181,173,251,
- 46, 38, 4, 51,252,191,199, 96, 17,196,160, 36,203,176,116, 35, 76, 46,159,225,239, 95,134,173,251, 64,106,104, 23, 80, 88,251,
-103,180, 91, 6,122,227,198, 13, 77,205,251,243,231, 3,153,127,155,154, 46,173, 91,247, 77, 93, 93, 29, 88, 1,220,187,119,239,
-229,203,151, 70, 70, 70,192, 38, 60,174,101,160, 74, 74, 74,167, 79,159,198,115,199, 8,145,215,243,194,135,128,128, 36,173,123,
- 0,192,146, 29, 82,244,227, 26, 2,194, 37,133,168,213,100,100,222,218,218,253,221,127,224, 23, 27, 43,207,127,150, 31,255,254,
-125,252,245,235,179,147,243,127, 57, 57,162, 59,196,140,192,242,151,248,161,127,184, 22,120,113,143,198, 37,169, 14,192,181,118,
- 22, 15, 64, 43,253,225, 35, 63,163,179,193,248, 75,127, 32, 0, 8,160,209, 10,128,154, 0, 58, 1, 64,104, 20, 72, 72, 84,229,
-195,199, 55, 39,207, 62, 51, 55,150,242,116, 81,218,177,247,222,214, 93,160, 84, 91, 83,108, 5, 44,253,129,226,236,236,108,184,
-246, 3, 27, 89,102,109, 93, 91,218, 63, 15,180, 18,116, 70, 11,104,245,167,139, 53,104, 37,104,127, 45,168,244,239,159,199,240,
-151,129,143,248,253,192,164,182,217,113,245, 24,104,183, 10,232,235,215,175,134,134, 63, 32, 37,137,137,201,255, 29, 59,238,221,
-186,117, 11,178, 17,204,193,193,193,222,222, 30,207, 38, 0,101,101,229,203,151, 47,227,234, 4, 0,155,255,198,198,198,196,184,
- 1,178, 24, 20,178, 40, 8,200, 38,190, 14, 64,219,104, 70,228,190, 51,120, 29,128, 75,150,128,126, 38,166, 95,230,230,111,164,
-164,190, 92,186,196,243,232,209, 15, 69,197,175,218,218,127,101,101, 25,136,190,108,139,188,178, 27, 89, 11, 26, 23,191,199,145,
-101,209,236, 37,213, 25, 16,128, 92,238, 67,122, 3,164, 14,105, 14, 51,128,103, 77, 7, 64, 0,141, 86, 0, 88, 86,239,208,193,
- 40, 89, 57,221,199,143, 46,175,221,114, 83, 69, 81,208,219, 77, 89, 80,128,227,253,135, 31,231, 47,191, 4,182,253,129,165, 63,
- 80, 22,143, 94, 43,251,212,195, 7,103, 31, 59,251,201,219,137, 97,118, 59,104, 39,240,221,135, 12,115, 87,129,218,254,192,210,
- 31, 40, 75,121,129, 78, 70,233, 79,163, 57, 0, 9, 9,137, 7, 15, 68,206,156, 1, 13,239,220,186,197,103,106,170, 37, 44, 44,
- 12,223, 9, 76,240, 40, 8, 11, 11,139,131, 7, 15, 50, 98,236,129, 2,150,254, 42, 42, 42,192, 26,130,152,210, 31,121,244, 31,
-210, 21, 32,178, 14, 32,187, 56,195, 85,202, 19, 46,253, 97,117,192, 63,121,249,111, 64, 68, 86,152,147, 81,236,226,247, 41,126,
- 3, 41,209,139,191,244, 7, 45, 18, 29,241, 19, 0, 12,216,246, 3,195,171, 4,128, 0, 34,188, 12,148,248, 41, 86, 98,150,129,
- 18,175,151,120,237,148,216,139,213,119,228,217, 75,210, 92, 52, 43, 27,183,146,138,197,187,215,119,238, 61,120,126,252,204, 19,
-248, 89, 64,226, 98, 82, 4,207, 2, 18, 20, 81,243, 14,238, 62,119,124,218,202,173,183,218,166,210,245, 44, 32, 58,151,254, 64,
-160,174,174,126,241,162, 87, 98,226, 25,112, 15,192, 36, 44, 76,159,139,139,139,164,250, 35, 60, 60,252,230,205,155,103,206,156,
- 97, 6,205,181, 51, 1,139,126, 54, 54, 54, 96,219, 31,104, 50,169,165, 63, 25,117,192, 40,160, 53, 0,173, 5, 74,107,117,159,
-229,142,117, 79,192,232,100, 0,126, 0, 16, 64, 44,148, 12, 8,208, 84, 47,145, 6, 14, 42, 55,147, 10,128,101, 61, 16,169,147,
-165, 23, 88,214, 19,185,219,139, 90,190,160,219, 30, 14,100, 0, 44,238, 45,193,128,194, 90,132,152,226, 30, 19, 96,150,245, 64,
- 54,100, 91,192,104, 5, 48,168,234, 0,134,135, 88,196, 77,170, 77, 70,120,200, 16,188,242, 29, 32,128, 70, 47,133, 31, 5,163,
- 96, 20,140,130, 17, 10, 0, 2,104,244, 70,176, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128, 70, 43,128, 81, 48, 10, 70,193, 40,
- 24,161, 0, 32,128, 70, 43,128, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128, 70, 43,128, 81, 48, 10, 70,193, 40, 24,161, 0, 32,
-128, 70, 47,133,167,142, 94, 60,199,162,209, 84,239, 61, 48, 88,189,122, 53, 25,122,239,223,191,127,247,238, 93,242,244,142,166,
-141, 81,189,163,122,135,138, 94, 60, 0, 32,128,112,110, 4, 35,242, 20, 76,170,235,165, 58, 72, 11,253,200,192,198, 54,107, 41,
- 39, 30, 53,192, 50, 20,207,222, 75,252,110,134,235,237,237,237, 45, 46, 46, 38,233,182,116,184,222, 43, 83,249,116,178, 63,145,
-113,211,186,158,240,148,255,111,254, 2, 25,179,102,205, 2, 95, 90, 75, 2, 48, 83, 95,241,231,211, 39, 78, 78, 78, 96, 29, 16,
- 26, 26, 74,187, 40, 32,114, 95, 5, 86,255, 14,148, 94, 92,166,209, 39, 1, 51, 50, 50, 50,129, 1,100, 11,219,175, 95,191,152,
-193,103, 59,255,255,255,159, 97, 20,140, 2,234, 1,128, 0, 98,193,149,214,177, 38, 53, 70, 66,183,202, 65, 50, 9,121,122,137,
-105, 17,147, 13,118,239,222,205,192,161,137,167, 20, 46, 47, 47, 23, 19, 19, 67,147, 2, 22,232,248,141,133,232,133, 20,253, 39,
- 78,156,128, 84, 3, 36,233,253,119,173,142, 73,171,105,209, 62,208,113, 5, 64, 54, 68, 10, 40, 66,208, 71,124,159,138,254,253,
-103, 88,177, 3,164,209,211,158, 85, 91,229, 42,176, 14, 0, 85,120, 68, 84, 3,194,114,167, 94,223,126,113,248,154,252,215,159,
-220,158,238, 31,164, 37, 24,207,156, 57,246,233,211, 15, 39, 39, 39, 26,165, 51,154, 54, 26,240,232, 37, 88, 98, 18,159, 44, 73,
- 5,192,248,237,234,234, 42, 45, 45, 37,102,191, 49, 50, 0,150,245, 44, 96, 0,217,185, 6, 76, 36, 64, 67,254,254,253,251, 7,
- 12,128, 12, 26, 57,120,235,214,173,248, 3,199,203,139,240,105,210,219,182,109, 35, 73,253, 40,160, 27,128,236, 7, 70, 91,247,
- 15, 16, 64, 44, 36,149,254,198,198,198,103,207,158, 37,152, 9,177,102, 42, 60,122,209,204, 1,150,197,144, 97, 13,178, 15,152,
- 76,243,157,197,192,169, 54,107,149, 3,168,105,188,154, 31, 84,250, 19, 42,193, 49,207,142, 7,150,224,248, 79,101,129,235, 5,
-178,129, 45,104, 11, 48, 32, 73, 47,164,196,135,144, 29,176,221,218,192,210,191, 44,152,163,107,237, 15, 60, 30,228,255, 94,172,
-163,198,252,245,251,255,162, 88,142, 19, 87,255,124,255,250,255,219, 47, 6, 71,131,171, 87,111,253, 37,216, 21,184,247,184,255,
-220,105,110, 94, 62, 70, 9, 73,113, 81,113,149,135,119,127, 41,104,253,102,229,120,181,103,253,155,245,235,215, 7, 6, 6,142,
-102, 21,170, 0, 96,252,250,250,250, 2,235, 0,180, 52,108,100,100,212,216,216, 8,148,194,222, 34, 99, 97, 97,131,129,199,143,
- 31,171,170,170, 2,171, 1, 94, 94,222, 59,119,238,240,240,240,156, 62,125,250,248,241,227,217,217,217, 56, 83, 62, 56,234,225,
-249, 23,158, 19, 33, 34, 64, 46,164,149,128, 21,108,218,180, 9, 83, 11, 92, 4,200, 37,166, 64,223,184,113, 35, 73,234,169, 2,
- 94,188,120, 33, 33, 33, 49,154,228,240,148,251,184, 0, 64, 0,177,144, 84,250,227,183, 9,207, 65, 37,248,143, 56, 71, 43,253,
- 59, 58, 58, 42, 42, 42,224, 34,196,215, 1,105,198,179, 24,132,213,102,237,114,128,183,250, 93, 93, 93,129, 12, 8,137, 57, 46,
-134, 92,130, 99, 45,253, 49,251, 4,152,158,130,183,244,129, 53, 22,114, 80, 16,163, 23,107, 75, 31, 88,250,227,247,166,200,247,
- 34, 85,121,102, 78,118, 70,121, 41,230, 55,239,255,253,254,195,252,246,195,255,143, 95,254,223,121,242,143,129,137, 65,132,235,
- 18,208, 95, 74, 74, 74, 88,245,254,251,191, 90, 83, 89,233,248,139,151,138,114,162, 58,122, 74,204,236, 66,242,138,239,223,127,
-255,241,234,197,223, 39, 47,127,112,177, 0,181,234,227,210, 75,187, 17, 33,226,163,152, 60,189,152, 45, 18, 90,143,165, 0,195,
- 17,104,169,150,150,214,230,205,155,145,163, 3,152,137,240,148,254, 64,192,202,202,202,193,193,241,230,205, 27, 53, 53, 53, 67,
- 67, 67, 96,125, 48,105,210, 36, 96,171, 95, 87, 87,119,221,186,117,192, 10,224,210,165, 75,192, 42, 1, 87, 63,192,223,223, 31,
-226, 95, 92,185, 24, 79,161, 12, 44,187, 33, 33,131,181, 1, 7, 20,127,249,242, 37, 49, 21, 0, 73,234, 33,197,247,254,253,251,
-177, 74, 57, 58, 58, 18, 83,178, 3,181, 75, 73, 73,169,171,171,143, 86, 3,164, 2,128, 0, 98,193,204, 93,184,218,239,244,113,
- 16, 48,183, 0, 75,127, 34, 43, 12,156,163, 61, 12,105, 64,114,245, 44, 51, 6,182,239,120, 70,255,209, 74,112,180,202, 12,127,
- 9, 14, 1,240,202,227,196,137, 19,200,205,127, 98,244, 46, 43,229,193,204,165,209, 61, 95,241,235,250,247,239, 31, 59, 23, 35,
- 19, 19, 3, 23, 39,195,135, 79,255,126,254,255,207,205,201,248,227, 31,195,247,159,255,101, 68,153,254,253, 97,184,253,248,239,
-158, 61,123,176,118, 2, 62,125, 60, 33, 32,192,205,198,246, 63, 53,193,252,239,223,255, 47, 94,253,122,244,244, 3, 3,235, 99,
- 78,193,159,207, 95, 61, 96, 98,251,120,237,218,135,167, 47,247,144, 58,151, 64,225,136, 16,242,205, 98,196, 0,228, 19,247, 48,
-239,239,196, 5,222,189,115,129,179,133,132,246,224, 42, 34, 9,214, 55,200, 34,120,234, 30, 96,210,242,241,241,129,148,251, 87,
-175, 94,133, 48, 32,109,127,160, 56, 30, 27,217,217,217,191,126,253,170,169,169, 9, 44,251,128, 9, 41, 57, 57, 25, 40,248,251,
-247,239, 5, 11, 22, 0, 59,208,231,206,157, 91,185,114,229,247,239,223, 49,239,186,129, 0,111,111,111,178, 35,101,238,220,185,
-248, 43, 81, 98, 90,244,112, 67,136, 84,207, 0, 62,175, 9, 88,124, 63,123,134,126,161, 15, 80,144,248, 2,253, 25, 24,140, 86,
- 3,152, 0, 62,230,131,181, 43, 0, 16, 64, 44,196,180,226, 41, 41,142, 73, 5,200,237,104,162, 90,253,179,210, 25, 36, 25,102,
-249,130,178,226,172,179,105,240,209, 30,112,171,255, 35,114, 63, 0,127, 9,254,234,213, 43,120,169, 77,100, 9,142, 31, 64,234,
- 21, 96,121,129,235,176, 13, 60, 5, 16,100,252, 7, 83, 47, 80,203,155,107, 69,146,224,193, 31,136,200,247,191,255,127,252, 98,
-248, 13,230,254,254,243,255, 63, 19,136,113,249,210, 89, 96, 61,202,192,192,134,102,236,199,143, 87, 89,217, 5, 69,132, 4, 62,
-188,251,246,225,227,135, 19,103, 94, 60,125,249,159,141,251,155,180,202,151,239,223,222,168,234,253, 86,208,252,185,114,246,217,
- 59,119,238, 48, 48,112,140,230, 28, 10,155,255, 64, 0,108,254, 3,139,251, 45, 91,182,104,107,107,135,134,134, 18, 44,253, 33,
- 21,192,235,215,175,185,184,184,236,236,236,122,122,122,128, 29, 2, 96, 50, 88,184,112, 33,176,244, 7, 54, 50,246,238,221,123,
-249,242,101, 17, 17, 17, 60, 87,217, 0,235,111, 92, 67, 64,179,103,207,198, 99, 53, 85,134,128,128,134,144, 49, 4, 4, 44,181,
- 49, 43, 0, 50,142,111, 26,173, 6, 72, 5, 0, 1, 52,184,142,131,198,188, 87,132,200,193, 1, 80,123,191,226, 62, 3, 51, 91,
-154,155, 2,131,128,194, 44,240,197,127,248, 71,255,169, 50,136, 1,153,248,133,183,253,145, 1,100, 86, 0,179,123, 65,100,139,
-117,105, 9, 55,102,111,128,247, 83,241,131, 95,255, 95,188, 1,182,254,152,120,184, 64, 93,117, 96,161,255,227, 39, 3,176, 14,
- 0,146,191,126, 51,252,248,206,240,235, 39,172, 5,138, 90,121,240,252, 41,122,250, 72, 78, 86,145,231, 63, 43,203,155,239,223,
-247, 31,124,124,237,206,211,119,239,190,104, 27,255,253,250,227,207,143,159,127,191,127,251,247,226, 17,195,247,175, 12,221,221,
-221,163, 39, 68, 97,237,169, 16,153, 32, 33,205,127, 45, 45, 45, 96,195, 31, 88, 25, 0, 43, 0, 72, 39,128, 96,233, 15, 25, 2,
- 50, 48, 48,224,224,224, 0, 22,250, 73, 73, 73,237,237,237,192,146,244,228,201,147, 7, 15, 30,188,116,233,210,199,143, 31, 85,
- 85, 85, 63,125,250,132,231,150,155,128,128, 0,204,182, 5,164,199,131,191,127, 48, 80, 67, 64, 88, 59, 1, 36, 53,255, 71,171,
- 1,178, 1, 64, 0, 13,138, 10, 0, 50,244, 15,233, 38, 35,215, 1,240,204, 6, 25,172, 39,126,164, 24, 82,238, 3, 27,254,224,
- 81, 32,182, 89, 75,169,239,102,200,202, 31, 23, 23,151, 61,123,246,224,234,202,224,234,205, 96, 45,220,137, 25, 11,138,175,252,
- 42, 37,206, 20,229,203, 6, 44,238,249,121, 25,153, 24,193, 13,127,134,255, 63,190, 49,124,253,245, 31,216, 45,248,250,227,255,
-191,255,216,111,254,136,207,255,170,171,127, 79, 66,227,221,238,237,175,222,189,251, 97, 96,249, 73, 79,232, 11, 3,235,207, 31,
-223,254,189,122,250,255,235, 87,198, 63,127, 24,133, 68, 24, 25, 24,255,141,230, 10,170, 0, 72,122, 70,158, 80, 1,214, 4,200,
- 69, 51,214,153, 0, 96,201, 94, 86, 86,198,194,194,178,104,209,162,249,243,231, 39, 38, 38,118,116,116, 0, 75,228, 7, 15, 30,
-124,255,254, 29,152, 77,128,109,255,140,140, 12, 60,139,151,200,158,122, 29,168, 33, 32,172,157, 0,242, 78,111, 29, 5,164, 2,
-128, 0, 26, 44, 61, 0,228, 97,107,204,130, 30, 87, 33,139, 12,102,157, 77,131, 21,253,183, 87, 79,186, 15, 94, 5,132,168, 15,
-240,140, 2, 81, 50,194, 3,116, 24,188,249, 15,233, 13,192,217,192, 30, 0,100,143, 21,230,228, 51,193,210, 31,178, 10, 8, 83,
-239,159,191, 12, 95,191,253,255,249, 11, 52,229, 11, 36, 89,216,161,130,192, 10,224,251,239,255,111,223,253,127,253,254,255,185,
-107,127,254,253, 3, 13,229, 93,125,138, 98,230,159, 63, 12,207, 30,255,122,124,247,253,145,227,239,129,141,188,107, 55,254,249,
- 68,253, 97, 99,249,255,250, 37,195,145, 93, 12,159, 62,253,255,255,143,193,198,137,145,131,131,193,211,211, 31,255, 74,195, 13,
- 11,210, 3, 18, 40, 90,161, 75,201, 13, 98, 36,221,187, 0, 7, 66, 66,123,232,150,152,209, 18, 48,144,107,100,100,116,238,220,
-185,205,155, 55, 35,139,227,154, 10, 6,182, 45, 4, 4, 4, 32,141,232,121,243,230, 1,251, 1,192,154, 0, 82,115, 0,165, 62,
-124,248, 0,236, 1,124,251,134,239,174,151,212,212, 84,228,161, 27, 72,243, 31,255,248,207,192, 14, 1,161,117, 2, 40,105,254,
- 67,180,143,182,253,137, 4, 0, 1, 52, 88, 42,128,179,103,207,226, 90,187, 2, 20, 39,176,126,148,157,123,181,194, 33,134, 63,
-103, 25, 20,185,211, 90, 21,103, 29, 0,118,180,103,193, 42, 3, 87,226, 71,129,144, 87,130, 98,174, 10,197,204,225,192, 82, 12,
- 82,250, 35,207, 0, 67,218,254, 16, 46,214, 30, 0, 92, 47,121, 37,203,237,219,183, 31, 93,153,244, 79,244, 31, 19, 11, 3, 43,
- 19, 40,167,253,254,247, 31, 88,184,127,254,252,255,215,111,134, 63,191, 65,245, 65, 97, 17,168, 59,117,245,233, 19, 76,189, 15,
-111, 77,212,214,254,119,248,224, 95, 70, 38,134,215, 47, 24, 57, 56, 25, 14,238, 96,248,245, 29, 88, 66, 48,232, 25,177, 62,123,
-244,207,222,222, 27,152,111,241,236, 36, 4,150,254, 93,217, 12,101, 83,201,175, 3, 40,185, 64,152, 60,189,184,134, 53,232, 3,
- 32, 43,127,124,124,124, 32, 81, 15,233,206, 2,155,249, 88, 21,255,251,247,239,252,249,243,182,182,182,112, 17, 96, 29, 0, 41,
-139,127,255,254,253,247,239, 95, 96, 36,138,138,138,226,154, 4,134,143, 2,145,209,126, 31,192, 33, 32,180, 78, 0,217,205,255,
-209,162,159, 84, 0, 16, 64,164, 85, 0,192,130,152, 22, 59, 33, 33,141,101, 96,174, 0, 50, 92, 92, 92,208,218,254,144, 98,148,
-248,173,170,240, 85, 64, 16, 46, 49,109,127,228, 25, 96, 8,128,112, 33,139, 65,241,235,133,151,254,104,243, 1,196,232,197, 5,
-128,205,127, 92,122, 85, 85, 85,231,207,249,237,108,193, 10, 44, 0,126,255,250,199,206, 6,202,171,159,191,254,255,249,251, 63,
-176,232, 63,123,229,239,223,127,255,113,173,227, 4,234, 93,188,240,143,189, 3,115, 96, 52,243,151,207,255, 63,127,100,248,250,
-153, 81, 81,245,255,223,223,140, 44, 76, 28, 31,222,253,123,246,228, 87, 73,161, 15,254,182,255,132,124, 6, 53, 57,134,201, 69,
- 12,185,125, 20,213, 1,100,247, 9,200,211, 75,249,186, 79,242, 82, 62,176,244,111,104,104, 64,110,236,119,117,117, 1,185,184,
-118,135,253,250,245, 11, 88,132,253,248,241,131,153,153, 25,114,247,217,218,181,107,131,131,131,191,127,255, 14, 20,252,249,243,
- 39, 15, 15, 15,176, 26,192,239, 29,242,214, 2, 13,236, 16, 16,188, 19, 0, 97,140, 22,253,244, 1, 0, 1, 68, 66, 5, 64, 97,
-233,143, 71, 59,176,208,135,148,242,144,113,115,248,146, 83,228,134, 63, 90,197,128, 2,152, 25, 25,216,152, 24, 56,153, 25,120,
- 88, 24,126,126, 94,221,206,202,192,121, 42, 45, 68,145,129, 83,104,214, 98,162, 26,254, 88,215,252, 64, 74,112,252,139,226,145,
- 75,127,228,249, 0, 98,244,226, 47,253,241,232,109,235,156, 81,148,159,193,193, 1,108, 45, 50,232,170, 51, 67,195,234,242,223,
-223,127,255,255,253,199, 92, 82, 82,130,199,240,166,150, 25, 37, 37, 25,192, 30,195,175,223,255,255,254, 97, 0,118, 33, 28,188,
- 25, 62,127, 96,188,113, 17, 88,192, 48,249,249, 6,225, 47,253, 27,146, 25, 84,192, 71,146, 40, 75, 51, 80,216, 15, 24, 9, 0,
-115,207, 23,104,101, 23, 24,224,210, 2,172, 0,128,101, 61,104, 59,134,190,254,159, 63,127, 88, 89, 89,129,109,106, 96, 35, 6,
- 88,250,127,251,246, 13,216,252, 23, 20, 20,196,179, 12, 20, 14,224, 3,170,196, 12,254, 12,134, 33, 32,120, 39,128,140,112, 38,
-114,187,192, 40,192, 4, 0, 1, 68,108, 5, 64,163,182, 63,214,174, 61,230,128, 15,217, 86, 19, 28,253,167,164,244,103, 64,157,
-233,133,215, 97, 12,224,213,180, 4,245,226,154, 9, 32, 70,111,223,196, 25,192,224, 98, 98, 98, 56,114, 22, 52,226, 15,153,245,
- 5, 15,253,151, 16,212,219,211, 51, 35, 35, 19,188,225,131, 9,164,229,212, 33,134,175, 95,254,253,255,199,224,231,231,237,238,
-238,142,167,244, 47,143, 97, 16,224, 97,120,246,134,129,147,157,225,223,127, 6,110, 14,134,214,116,134,234,153,195,188, 14,192,
-213,189, 32, 38, 77,162,149,254, 25, 25, 25,144,162,127,243,230,205,192, 82, 18,107, 53, 0,172, 0,152,152,152,128,237,217,207,
-159, 63,159, 57,115,198,208,208, 16, 88, 13,124,252,248,241,226,197,139,138,138,138,194,194,194,192,210, 31, 40, 66,176, 67, 3,
-217, 17, 70, 82,135, 96,192,135,128,200,107,251,147,173,107, 20, 0, 1, 64, 0,161, 87, 0,184,150,252, 19,185,250,141,146, 30,
- 52, 80, 1,230,161,108, 4, 75,195, 89,105, 51, 65,163, 61,183, 24, 64, 8, 1, 62,130,209,125,178,221, 76, 76, 41, 12,247, 17,
-176,140,128,236, 39, 0, 86, 27,164, 94,101, 12,212,187,180,132, 27, 82, 31,144,122, 67, 47, 60,184, 32,179,190,196,119, 56,102,
- 76, 71,232,253,242, 9, 84, 64,248,249,249, 17, 14,171, 37,212, 47, 70,105,173,119, 0,135,254, 25, 80,167,121,129, 1, 14, 44,
- 19,183,108,217,130, 41,133, 86, 1, 0,149, 1, 27,248, 64,134,156,156,220,135, 15, 31,106,107,107,129, 21,128,180,180,244,151,
- 47, 95,128,130,144,153, 0,130, 86,147, 49, 10,244,226,197, 11,202,189, 76, 21, 67, 70, 1,221, 0, 64, 0, 13,138, 75,225,225,
- 0, 88,132,145, 97, 14,217, 43,124,168,216,167, 33,120,244, 27, 25, 93, 1, 98,130, 11, 43,155, 84,189,196,148,254,148, 52,243,
- 7, 42, 93, 81, 37,126,201, 51, 4,126,156, 39,252, 68, 79, 77, 77,205,121,243,230,253, 3, 3, 60,237,119, 72,235, 30,168, 6,
- 88,208, 67, 14,131, 3, 87,240,255,232,112, 24,220, 40, 24,222, 0,235,230, 30,128, 0, 26,189, 20,126, 20,140,130, 81, 48, 10,
- 70, 40, 0, 8,160,209, 27,193, 70,193, 40, 24, 5,163, 96,132, 2,128, 0, 26,173, 0, 70,193, 40, 24, 5,163, 96,132, 2,128,
- 0, 26,173, 0, 70,193, 40, 24, 5,163, 96,132, 2,128, 0, 26,173, 0, 70,193, 40, 24, 5,163, 96,132, 2,128, 0,194,114, 41,
- 60,242,145, 12,200,247,177, 32,139, 15,227, 75,150,145,151,162,194,253, 62,122, 33,245,208, 10, 43,146, 52,226,183,183,181,181,
- 21,194,168,174,174, 30,105,241, 75,245,160, 30,205, 71, 3,162, 23, 15, 0, 8, 32,170,157, 5, 4, 57,209,147, 56,181,108,152,
-122,225,108,180,211, 64,137,188,127,131, 66, 0,191, 22, 24, 82,156,193,239,207,163, 67, 13,124,235,214, 45,248,157, 4, 69, 69,
- 69,131,255, 16, 68,180,176,186,126,253, 58, 3,120,141, 35, 77, 45, 5, 38, 3,255,128,244,141, 27,102,162, 37,131,109,219,207,
- 1, 5,177, 38, 12,160, 20, 86,163,188, 60,141,136,183, 23, 88,250,251,250, 42,195,217,184,234, 0, 92,224,243,151,207,247,158,
-221,251,246,255, 27, 3, 35, 3,219, 63, 86, 57, 81,121, 81, 97, 81,130,186,142, 29, 59,134,204,181,178,178, 26,109,168,142, 2,
- 26, 1,128, 0,162,230, 97,112, 68, 94,162,114,245,233, 7, 76, 65,180, 50, 23,121, 59, 34,254,226,152,200, 93, 66,120, 42, 15,
-136, 9,144, 18, 13,115,129, 54, 68, 22,235, 98, 89,100,171,165, 21,101,129,228,203, 31, 63,254,124, 7,159,199,255,225, 19, 3,
-248,252, 34,124, 39, 88,128, 1,242,133,148,125,125,125,196, 92,128,206,196, 8,218,136, 11, 33,129, 0, 43, 99,250, 12,154, 84,
-150,200, 97, 5, 41,250,137, 15, 43,178,235,111, 72,233, 15, 46,184, 65,117, 0,241, 70, 65, 42, 12,140, 10,128, 52,103,252,250,
- 85,190,115,103,154,187,251, 44, 95,223, 78, 72,111,128,200,106,224,200,213, 35,242,134,178,201,193, 9,130, 92,130,255,254,252,
-253,241,255,231,142,147,187,246, 29,220,107,165,100,205,193,193,129,167,244,207,204,204, 68, 22,153, 62,125,250,104, 29, 48, 10,
- 40, 1,200,119,129,161,101, 79,128, 0,162,242,105,160,104,231, 98,146, 1,200, 56,178,139,224,182,120, 60,109,121,248, 45,196,
- 64, 54,132, 68,147, 37,234, 32, 73, 1,190, 75,247, 86,112, 50,200,252,101, 56,250,106,206,185,139,119,223, 6,117,204,167, 93,
-116, 94,186,124, 69, 79, 87, 7, 88,214, 95,185, 2, 98, 0, 69, 32, 12,184,200, 63,188,225,129,255,198, 71, 60,151,134, 67,194,
- 42, 33, 33, 1,200,134,144,232,165, 63, 48,160,176,197, 5, 80,202,217,121,123,122,186, 39,217,117, 0,176,244, 7, 59,123,214,
-198, 13,132,139,120,184, 22, 82,203,122,204,230, 63,144, 12, 14, 94,187,115, 39,136, 76, 75,187, 11,233, 13, 16,236, 10, 0,211,
-204,254,155,251,178,115, 50, 77, 68, 13, 57,249,249,255,255,250,243,239,255, 95,102, 22, 54, 21, 23,149, 27,198, 55, 59,102,117,
-154,139, 88, 64, 14,122,195, 10,222,188,121, 3,103,123,219,114,155,231, 31,141,232,252, 1, 23,113,114,114, 34,222, 11, 27, 54,
-108,192, 60, 25,148, 14,122,169, 2,200,184,234, 29,178, 15,121,244,100, 8, 92,165, 63,132,139, 92, 7, 0, 4, 16, 11,114,215,
-158, 20, 54, 27,166, 77,175, 94,189,130,159,132,140,167,134, 96, 96,215,192, 83, 70, 51, 98, 20,217,196, 12,197,224, 41,182,240,
-220, 37, 0, 44,152,128,141,116,204,114, 31,114, 41, 49,188, 98,192, 3,128, 13,255,167,239, 63,174,203, 8, 22,102,180,190, 59,
-187, 68, 41, 80,105, 55,141, 75,127, 32,128, 20,250, 64,160,163,163, 3, 23,129,244, 9,224, 34,148,180,241,177, 22,211,144,176,
-194, 44,247, 23, 44, 88, 0, 12, 43, 79,107,195,237, 71,207, 51,240,114, 51,124,250, 66, 11, 47,131,199,115,102,225, 26,213,193,
- 15, 2, 62, 85, 97, 47,224,248,218,136, 25,252, 73, 75,219, 9,100, 64, 72,136, 20,144,129,191, 14, 56,115,227, 76,114, 74,162,
-173,170,195,223,159, 63,255,252,253,195,200, 2, 76,192,204,255, 25,254,189,124,253, 76, 83, 84,163, 42,163,170,165,171,197, 89,
- 7,103,215,240,194,133, 11,136, 10, 64,106, 1, 90,161,191,111,223, 62, 34,235, 0, 96, 9,190,173,118,187, 87, 51, 3, 25,229,
- 56, 80,111, 87, 87, 87, 89, 89,217,128,212, 1,192,114,252,230,205,155,207,158, 61,139,140,140, 36, 73, 35, 80,215,104, 5,128,
-189,217, 87, 14, 42,202,102,117, 86,160,137, 3, 4, 16,162, 2,128, 79,240,162,157,203,143, 85, 28,237,172,121,228,234, 1,114,
-140, 26,242,112, 16,242,129,107,192, 26, 2,115,136, 0,243, 2, 13, 98,134,110,168, 2, 86,173, 90,133, 89,244, 67, 70, 57, 32,
-165, 63, 80, 4,143,246, 39,247, 30,125, 93, 95,199,147, 52, 17, 88, 19,136, 11,115,222, 91,127, 15, 84,250, 11,240,129,134,128,
- 88,153,137,113, 0, 48,184,224,163, 64, 68,158, 39, 1, 44,235,229,184, 25,166,196, 48,164, 44, 96, 16,229, 98,184,254, 1, 93,
-228, 42, 17, 55,166, 96, 86,171, 4, 59, 82, 77, 77, 77,152, 69, 63,144,209,149,224, 51,121,199, 9, 9, 37,201, 23, 15, 95,226,
-106,254, 3, 25,120, 58, 1, 4, 71,117,192, 45,253,116,180,246, 62,164, 62, 32, 38,133,116, 45,195,226, 53,181, 12,162, 82, 8,
-164,220,135,144,191,124, 85,216, 54,223,193,175,254,219,247,111, 92,106,156, 22,146,230, 63,191,126,101, 97,103,103, 97,129,102,
-177,123,119,238,108,218,184, 49, 41, 49, 65,129, 93,206,208,222,224,201,149, 39, 50,146,132,167,245, 90,183, 37, 28, 60,120, 48,
- 36,132, 1,185, 7, 64, 76, 29, 0, 41,253, 25, 20,250,183,213, 22,146, 90, 7, 0,245, 78,152, 48, 65, 77, 77,109,242,228,201,
-185,185,185,244,172, 3,224, 69, 63,121,122, 33, 26,201,232, 58, 12,239,230, 63,164,244,135, 48,128,117, 0,114, 39, 0, 32,128,
-168, 57, 4, 4, 44,220, 33,163,195,192,154, 0,185, 2,128,115,241,223,178,130,107, 42,152, 96, 38, 15, 11, 11,163,220,241,240,
- 2, 17,173,225, 15,185,138, 18,215,172,250,119,134, 71, 95, 2,205,255,243,150, 48,184,212,126, 97, 88,206, 48, 7, 84, 36,253,
- 95, 93,194, 26, 55,249,207, 31,162,238, 86, 4,102, 51, 82, 43,185, 87,243, 24, 26,103, 48,200,202, 48,188,220,194,182,112,238,
-175,132, 21, 88, 68, 40, 31, 55,195, 3,224, 83,190,207, 55,116,240,106,115,240,168, 22,172,234, 72,209,215,145, 80,247,105,193,
- 19, 86,120,226, 29,255, 0, 17, 36, 49,192, 75,127, 32, 23, 50,247, 75,108,113,198,215, 70,100, 89,143, 6,128,197, 61,154,200,
- 78,164,126, 0, 46,240,252,213,115,183, 80, 55, 94, 62,193,191,140,127, 14, 31, 60,244,249,203, 23, 95, 63,191,215,175, 94,173,
- 89,187, 46, 57, 49,129,157,131,157,233, 63,171,187,145,251,164,253,147,137,169, 0,128,224,253,123,146,111, 64,131,151,254, 32,
- 14,137,117, 0, 80,111, 67, 67,131,138, 10,200,239,202,202,202,116,235, 7, 80, 82,244, 35, 55,255, 33,140,209, 10,128, 72, 0,
- 16, 64, 84,158, 3, 0, 22,244,144,219, 93,144, 47, 74,132,156,144, 76,204,220, 0,230, 84, 48, 49, 67, 64,184,174,222, 37, 30,
- 64,154,249,152, 99, 62,248,155,255, 64,176,163,178,193,183,189,239,143,139, 53, 48, 28,121,142,223,217,125,247, 45, 80,240,143,
- 75,238,239,203, 34,140,162, 89,196,148,125,248, 59, 67, 88,193,219,128,229,185,137,143,111,101,148,125,221,251, 75, 66, 4,187,
- 8, 25, 61, 0, 34,107, 5, 96,195, 31,212,148,240,181, 59,241,236, 21,175, 62,239,211,157,119, 25, 56,216,131,115,227,132,100,
-124,104,151, 76, 49, 87,254,144,215, 65,196, 58,136,132,107, 93, 16,176,184,119,159,229, 30,188,150, 33,109, 39,136, 1,228, 18,
-211, 9,248,242,227,179, 8,167,240,159, 31,223,254, 51,253, 55, 53, 51, 91,191,126,253,132,190,190,127,255,255, 71,199, 68, 11,
- 9, 11,125,251,242,229,207,223, 63,188,172,124,191,153,126, 19,233,230, 15, 31, 62,192,215, 5, 17, 51, 27,140, 82,250, 67, 0,
-209,117, 0, 80, 47, 48, 23,152,153,153,193, 69,116,116,116, 32,227, 93,180,171, 3, 40, 47,250,145,155,255, 12,224, 75,225, 71,
- 59, 1, 68, 2,128, 0, 98,193, 83, 24,225, 17,199,115,132, 28,100,152, 8, 50, 27, 12,153, 21,128,116, 11,128,226,200,211, 9,
-180, 40, 26,200, 6,184, 70,252, 9,222, 68, 31, 52, 99,237,127, 63,197,151,150, 70,194, 12,214,156,193,147,255, 60,127,205, 32,
-192,199,242,118,249,150, 9,103, 25,152,153,137,113, 60, 25,103, 29, 95, 44,138, 52, 49, 96, 80,202,189,162,205,147,120, 83, 62,
-148, 97, 74, 25,166, 8,237,122, 0,192, 48,177, 53, 85,119,177, 86,243,213, 45,235,157, 48,253,218,217,167, 25, 78, 38, 47, 54,
-110,251,248,254, 19, 25,113,129, 54, 64,132, 43, 93, 97,109,242,147, 23,245,152,230, 96,157, 43, 6, 22,121,192,130, 15, 88,250,
-195, 43, 3, 32, 9,172, 6,128,165,255,230,205,119, 33, 19, 0,144, 89, 98, 61,187,120,180,186, 21,116,120,231, 63,134,255,255,
-254,176,115,114,196,196,198, 54,214,215,139,139,139, 75, 75, 72,252,248,250,229,239,127,160,248, 95, 60,215,185, 0,139,248, 53,
-107,214,188,125,251,246,211,167, 79,240,170, 26,190, 46,136,224,138, 32, 96, 9,222,155,114,149,129, 67,133,225,197, 84, 20, 9,
- 14, 21,160,120,241, 28,124,117, 0, 80,175,191,191, 63,176,196, 7,218,142, 44, 46, 39, 39, 7, 20, 31,240, 57, 97, 34,155,255,
-163,157, 0,146, 0, 64, 0,177, 96,102, 39, 50, 54,130, 65, 0,228,214, 70,228, 78, 0,164,196, 7,138,192,151,141, 3,165,190,
- 19,221, 44, 37,102,250,151,242,101,160,144,102, 62,214,169, 96,130,198,222,237, 78, 99, 13,158,252,253,217, 45,150,227,147,127,
-175,205,101,244,234,217,148, 21,242,112,211,125,223,174, 69, 12, 44,180,186,111,185,108, 53,195,206,174,245,218, 15,221, 25,222,
-124, 45,117, 45,195, 42, 66, 70, 15,128,248,230,255,198,245, 13,204,210, 90, 60, 12,106,143, 14,206,250,204,248,255,212,173,199,
- 46, 87,158,226, 13,249, 71,176,193,186,153,240, 18, 31, 8,246,238,245, 68,147,197,154,174,112, 13,248,144,177,180,148,140,165,
- 65,192,230, 63,164,232, 7,146,200,109,127,200, 44, 49,176, 50, 64, 83,207,203,201,251,236,227, 51, 51, 5,243,239, 63,127, 48,
-124,255,241,231,215,239,170,242,114, 70, 38,134,111, 95,191, 0,235,133, 63,127,255,179,179,176,190,254,242,154,245, 47, 27, 46,
- 27, 67, 96, 67,254,192,134, 63, 36, 79,193,215, 5, 61,127,254, 28,191,107,129,101, 52,176,148, 7,150,245,154,138, 40,230, 95,
-191,255,171,120,142, 54,254, 18, 28, 40, 11, 44,229,129,205,127, 96,137,143, 44,126,229,202,149,141, 27, 55,210,174,244,151, 0,
- 3,170,140,254,195,193,104, 39,128, 72, 0, 16, 64,212, 44,164,224,213, 3,176,232, 7, 86, 0,144,193, 31,204, 90, 97,255,249,
- 15,196,148,209,196,231,109, 74,150,129,194,155,255,104, 69, 63,164,186, 34,232,134,139,119,223,254,190,220,248,146,225,168,132,
- 87, 15,195,199, 79,119,103,149, 40,103,246,191,152, 95,194,192,202, 2,189,166,139, 6,224,209, 87, 6, 77,177, 64,252, 34, 52,
-234, 1, 0,131, 37,220,197,156,255,159,224, 55, 6,214,181,253,185,211,182, 92, 40,245,176, 73,232, 91, 22,210,182,152, 70,211,
-245,144, 10, 30,182, 15,128,180, 90,159,164, 1, 31,172,157,128, 52,112, 27, 31,185,244,135, 55,255,113, 1, 41, 49,169, 29,135,
-119, 90,201, 90,113,113,243,252,251,247,159,233,255,159,127,140,140,192,208, 6,182,253,255,252,251,255,231,207,159,239, 31,191,
-110, 61,189, 85, 94, 76,158, 24, 55, 32,175, 8,170,206,181,246,150,186, 55,235, 52, 3,169,117, 0, 49,165, 63, 92, 47,208,119,
- 93, 93, 93,146,146,146,208, 38,206,221,187,192, 72,167, 67,219,159,146,106, 0,173,249, 63,218, 9, 32, 30, 0, 4, 16,173, 54,
-130, 65,138,123,228, 90,129,200, 27, 75,208,242, 54,145,197, 10,121,203, 64, 49,155,255,196, 23,253,208, 33,160,142,249,235, 24,
- 24, 60,218,189,255,175, 46, 97, 12,235, 5,214, 7,140, 66,130,119,158,124, 2, 53,255,153,153,105, 20,103,152,171,254, 73,218,
- 7,128,167, 82,196, 95, 43, 64,154,255, 41, 14,122, 5, 61, 19, 43,171,202, 69,249,196,174, 94,123,148,112,109, 25,173, 87,106,
- 97,150,218,240,161, 51,226,150, 15, 17, 30,240,193, 3,208, 74,127,248,200, 15,174,217, 96, 14, 14, 14,150, 7,172,251, 31, 30,
- 8,213, 13,249,244,227, 19, 35,168, 25, 0,196,255,254,254,253,255,239,207, 31,110,118,222, 99, 31,207,223, 62,126,199,213,136,
-244, 91,140,238,166, 50, 16,183, 12, 20, 81, 7, 72, 62,186,254, 92,142,200,210, 31,174,183,172,172,108,242,228,201, 2, 2, 2,
-111,223,190,109,104,104,160,231,200, 15, 25,213, 0,102,243,127,180, 19, 64, 60, 0, 8, 32,106,238, 3,192,236, 13, 32,111,115,
-133,116, 2, 72,106,156,210,225, 48, 6,120,243, 31,121, 1, 40,208,155,240,106,131,224, 86, 94, 72, 29, 16,216, 62,239,255, 90,
- 6,145,132,153, 7, 10, 66,108, 58,151, 50,176,178,114,115,176,209,200,205,240,197,254,104, 12,146,246, 1,144,209, 3,128, 52,
-255, 11,102,109,174, 74,118,147,146,112,128, 15,250, 17, 31, 86,176,178,219,211,217,121, 59,108,252,135,132,177, 59,228, 22, 61,
-252,100, 8,234, 14,248, 16, 4,200,229, 62,164, 55,128, 57,108,101,168, 97,184,121,217,230,191,225,127,236,101,237,133,121,133,
-127,252,254, 1, 12,109, 54, 22,182, 15,223,191,157,120,178,119,193,146,133,142, 90,142,100, 88,221,186, 45, 97,225,194,133, 37,
- 37, 68,109, 2,128,213, 1, 12, 36,149,254,112,189,185,185,185, 3,184, 15, 0, 94, 13, 16,169,152,212,237, 2, 35, 7,248,196,
-212,110, 89,210, 60,171,179, 2,121, 31, 0,242, 76, 27, 64, 0, 81,115, 31, 0, 90,111, 0,179,184, 39,245,218, 66, 34, 1,229,
-203, 64, 33, 53, 13,228,150, 93,120, 37,167, 4, 6, 68,246, 3, 24, 96,155,191,236,171,102, 64, 24, 95,105, 19,163,148, 55,183,
- 41,169, 86,129,205,127,215, 61, 39,163,235, 23, 1,157,129,220,181, 34, 62,172,168,213, 15, 32,117, 83, 24,133,195, 65,152,165,
- 63,104,145, 40,198, 4, 0, 28, 56,234, 57, 29, 92,115,248,184,220, 9,107,115,107,105, 94,105,134,127,255, 95,255,120,123,236,
-220,177, 23, 87, 95, 56,105, 58,177,179,179,211, 33,243, 67,234, 0,242, 74,112, 72, 63, 96, 96,103,125, 71, 27,239, 84, 4,152,
- 91,192, 32, 0, 32,128,168, 57, 4,132,185,143, 9,235, 2, 77,130,151, 80,146, 90, 66, 81,184, 12, 20,178,212,103, 15, 24,144,
- 84,156, 65,250, 10,148, 88,141, 57,150, 77,201,153, 57,116,168, 66, 92,107,102,147, 23, 86,152,157, 0,226,157,129,171,172, 7,
-118, 2,224,178,196, 20,229,100, 12, 7,129,214, 2,165,181,186,207,114,199,186, 39, 0,255,100,128,153,182,217,183,111,223, 78,
-110, 60,249,229, 23,168, 49,192,206,196, 38, 39, 46,175,105, 64,194,169,121, 86, 86, 86,107,215,174, 69, 94, 17,244,251,247,111,
-146,130,154,146, 18,124, 48,175,249, 25, 5,164,118, 2,112, 21,191, 0, 1,196, 66,255, 98, 5,255, 70, 33, 82,139, 39,202, 47,
- 13, 39,187, 56,163,188,217, 75,135,209,115,172,195, 63,176, 19, 55,232, 23, 86,148,120,156,212,118, 58,117,135,131, 64,165,252,
- 67, 44,226, 38,213, 38, 4,245,114,113,113,233,168,234, 82,226,236,224,224,224,209, 34,108, 20, 80, 94, 7,224,146, 2, 8,160,
-209, 75,225, 71,193, 40, 24, 5,163, 96,132, 2,128, 0, 26,189, 17,108, 20,140,130, 81, 48, 10, 70, 40, 0, 8,160,209, 10, 96,
- 20,140,130, 81, 48, 10, 70, 40, 0, 8, 48, 0, 59, 44, 3,130,214,136, 48, 89, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
+
+137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 2, 0, 0, 0, 1, 0, 8, 2, 0, 0, 0, 74,242, 89,
+ 48, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 11, 19, 0, 0, 11, 19, 1, 0,154,156, 24, 0, 0, 0, 4,103, 65, 77, 65, 0, 0,
+192,153,201, 12,156,227, 0, 0, 0, 32, 99, 72, 82, 77, 0, 0,110, 39, 0, 0,115,175, 0, 0,246,112, 0, 0,129,232, 0, 0,
+107,215, 0, 0,226,170, 0, 0, 48,131, 0, 0, 21, 42,251,118,133,113, 0, 0,192, 54, 73, 68, 65, 84,120,218, 98,244,137,169,
+101, 24, 5,163, 96, 20,140,130, 81, 48,242, 0, 64, 0, 49,141, 6,193, 40, 24, 5,163, 96, 20,140, 76, 0, 16, 64,163, 21,192,
+ 40, 24, 5,163, 96, 20,140, 80, 0, 16, 64,163, 21,192, 40, 24, 5,163, 96, 20,140, 80, 0, 16, 64,163, 21,192, 40, 24, 5,163,
+ 96, 20,140, 80, 0, 16, 64,163, 21,192, 40, 24, 5,163, 96, 20,140, 80, 0, 16, 64, 44,112,150,175,173, 12,241,218, 54, 31,126,
+130,204, 29,213, 59, 8,245,162,105,167,186,189, 7, 14, 28,112,112,112, 24, 13,231, 81,189,163,122, 7,185, 94, 60, 0, 32,128,
+ 88,134, 71, 61,150,158,158, 14,103,207,156, 57,115, 64,108,159, 49, 99, 6, 35, 35,227,176,111, 50,192,131, 58, 50, 50,114,205,
+154, 53, 16,118, 72, 72,200,104, 99,106,248, 69, 52,253,179,210, 40,160, 51, 0, 8, 32, 22, 90,164,128,219,183,111,247,244,244,
+ 64,216, 37, 37, 37,170,170,170,116,240,201,255,255,255,129, 36,253,139, 96, 96, 40, 61,120,240, 0,200, 80, 80, 80, 24,144,234,
+ 7,107, 45,136,213, 37,192, 54, 59,126, 19,150, 47, 95,142,223,253, 64, 43, 86,173, 90, 5, 97,175, 95,191,222,213,213, 21,194,
+ 6,214, 4,180,171, 3,140,141,141,129,228,217,179,103,201,144, 29,153,224,222,189,123,157,157,157,112,110,121,121,185,146,146,
+210, 32,175, 54, 6,208,205, 35, 25, 0, 4, 16, 11,158, 66, 28, 66,146, 90,124, 67,138,161,198, 85, 45, 60,178,252, 95, 30,127,
+172, 15,171, 25,216, 98,145,214, 0,232, 53, 96,209,255, 0, 12,118,236,216, 65,255,118, 19, 36,192,103,130, 1,144,221,213,213,
+ 5,228,150,149,149, 97, 85, 28, 24, 24, 8, 97,252,249,243,247,215,239,159,191,126,254,130,128, 63,127,254,224,210,130,181,244,
+ 71, 3,192,154,128,166,117, 0,158,218, 11, 82, 1,140, 2, 92,237, 0, 32,128, 20,172,116, 72,150, 16,171,201,200, 2, 3,232,
+230, 17, 14, 0, 2, 8,103, 5, 0,108,194,175,170,173, 10,107,110, 35, 41, 14,128, 17, 9, 41,250,129,236, 55,223,222, 50, 8,
+ 51, 84,238,109,248,116,239,125,122, 42,253,138, 69,204,196, 68,107,171,225,117,128,135,135, 7,144, 4,178,233,233,217,253,251,
+247, 3, 25,142,142,142,104,117, 0, 30, 0, 44,238,127,253,250,253,235, 23, 74,233,127,230,204, 25, 19, 19, 19,130, 54,134,133,
+133, 65, 24,145,145,145,187,119,239,134, 87, 0,100, 68, 16,145,161, 4,108,221, 3, 75,127, 55, 55, 55,100,193, 93,187,118, 1,
+251, 43, 16, 54,214,169,136, 17, 94,250, 35,135, 45, 25,229, 50,217, 90,200,232, 7, 80,203,205,163,128, 12, 0, 16, 64, 44,184,
+154,255,106,106,106,170, 60,124, 36,117, 2,224,165, 63,176,232,111,119,110,128, 8, 38,110,204, 98, 16, 99, 8,236, 10, 35, 24,
+151,152, 5, 55,121,101,247,227,199,143,129,164,172,172, 44,156, 1, 49,153,186,135, 94,160,121, 7, 94, 7,252,254,253,103,198,
+140, 25,148, 55,130,136,209,142, 86,250,195, 53, 98, 13, 73,148,210,255, 55,176,244,255,249, 19, 92, 9,192, 75,255,255,255,254,
+ 19, 83,250, 3, 85, 66,216,189,189,189,240, 38, 63,124, 50,128,120, 55,163, 57,155,120, 0, 47,250,129, 53,144,161,161,225,104,
+ 30, 70, 30, 69,193,154,120,224, 73, 2,168,128,224,184, 10,188, 67, 9, 73,195,112, 46, 49,205, 32,204,162,156, 96, 70, 64,115,
+ 51,176, 73,193,200,200,232,226,226, 66,146,155, 33, 32, 57, 57,121,238,220,185,163,201,128, 36, 0, 16, 64, 76,184,154,255, 45,
+225, 33, 63, 94,191, 46,209,214,128,143,230,227, 7,144, 33, 35,120,233, 95, 82, 82, 2,140, 66, 32, 57,223,127, 26, 80, 92, 64,
+ 93, 4,174, 6, 15, 40,155,122, 11,136,178,123,174,199, 55, 95, 9,170,188, 64,170,103,158, 60,121,130,167, 74,160,110,233, 15,
+ 44,235, 49,139,108, 96, 29, 0, 44, 82,205,205,204, 72, 53, 13, 50,186, 2, 4,251, 97, 0,127, 33, 14, 47, 73, 29,193, 0, 51,
+195,227, 46,253,255,130,138,253,159,160,193, 31,228,210,255,239,223,191, 95,191,127, 37,232, 84, 72, 47, 1,185,163,176, 6, 12,
+136, 28,252, 1,185, 25,105, 36, 7,200, 38,232, 77,172,165, 63,176,232, 7,246,114, 32,165, 63, 43, 11,235,104, 54, 38, 56,108,
+ 2, 17, 68, 30,100,199, 95,148,147,215, 2,131, 40, 70, 46,253,113, 53,236,176,186, 25, 88,250, 3,211,210,234,213,171,247,236,
+217, 67,170,155,129,165, 63, 11, 11, 11,144, 28, 77, 6, 36, 1,128, 0, 98,194,211,252,255,246,226,185,167,161, 17, 49, 5, 55,
+164,206, 0, 54,255,129, 12, 72,233, 15,233, 52, 0, 73, 72, 29,240,228,211, 51,163, 50, 11,130,117,201,215,239,192, 98,232,239,
+243,183, 63,159,190,254,241,248,229, 15, 34,139, 78, 72, 10,195, 85,250,211, 14, 96,214, 1, 64,240,227,215,207, 31, 63,126, 16,
+111, 8,164, 28,135,140,173,139,138,138,194,155,198,248,115, 14,114, 59, 26,179,227,140, 39,223,130,198,253,129,197, 63,184,241,
+ 15, 47,253,127,255,254,253,245,235,215,207,159, 62,211,122,116, 98,213,170,213, 48, 30, 35, 24, 50, 0, 69,136,175, 3,224,165,
+ 63,164,232,103, 98, 98,226,224,224,224,230,225, 26,205,198, 52,234,215, 18,217,167,196, 90,121,160,141, 8, 17,163, 23,222,143,
+ 4,214, 1, 36, 57, 27, 82,250,131, 6, 52, 70,235, 0, 18, 1, 64, 0,118,205, 94, 7, 65, 24,136,227, 36,208,224,238, 32,239,
+ 64,124,156,250, 8,142, 60, 15,137, 3, 59, 60,150,176, 16,135,106, 75, 33, 90,130, 7, 37, 23, 98,180,158,137, 35, 55, 53, 13,
+133,210,143,223,221,253,219,224, 45,202, 79,199,121, 16,155,242,108,147, 0, 74, 32, 96,195,127,203,125,172,196,242,118, 31,125,
+125,131,106,123,169,205,173, 49, 87,101,132, 52,148, 31,120,185,252,131,193, 62, 22, 32,133, 20, 66,252,119,212,210, 52,197,131,
+ 95, 84,252, 97,149, 67,125,215,182,116, 7, 0, 77,178, 44, 43,171,138,249,254, 46,138,144,254, 73,146,196,113,236,216, 54,240,
+ 69,120, 12,125,192, 50, 47,113,159, 64,220, 39,254, 63, 70,250,247,150,254,224, 13,180,214, 74, 41, 41, 73, 14, 0, 37, 32,107,
+244,216, 63, 47,114,111,240, 46,117, 61,206,154,157,179, 97, 24,125, 64, 81, 28, 56,167, 44,176, 37,253, 25, 99, 97, 24,110, 38,
+ 35,246,124, 53,138, 2,249, 9,220,116, 45,200,161, 8,185,141,115,110,209,255,211,109, 2,164,255, 76,180, 32,128,200,102,213,
+130,136,246, 20, 64, 76, 88, 71,114, 76,148, 85,127,188,126, 13, 44,253,129,108, 59,112,179,148,152, 78,192,189, 43,119,144, 13,
+ 65, 99,191,189,252,130,160, 9,164,150,254,240,162, 31, 88, 13,200,202,202,194, 5,127,195, 0,176,232, 7,182,109,223,189,123,
+ 71,221, 80,131, 88,186, 99,199, 14,120, 63, 0, 82,250,235,233,233,253, 0,214, 0,223,191,195,107, 38,252, 89,110,234,180,169,
+ 64, 71,202, 72, 75,255,254,251, 23,173,244, 39,152,109, 32,117, 0,114,131, 11,178, 26, 21,107,191, 4,165, 2,248,245, 27, 82,
+250,159, 62,117,250,219,247,239,192,210,243,227,199,143,192,128,122,255,254, 61,241, 33, 0, 25, 5, 34,126,232, 31,148, 0,222,
+188,125,251,246,205,155,183,239, 64, 52,152, 9, 20,212,208,212,124, 7,102, 16,211,252, 7,146,192,210, 31,218,240,231,230,230,
+225,225,229,229,225, 5, 50, 70,179, 49,174,210,156,248, 6, 56,100, 5, 1,156,129,139, 77,146,237,104, 35, 66, 4,117,185,184,
+184, 0,235, 0, 96,233,239,234,234, 74,124,159, 3, 88,214, 3, 75,124, 56,119,180,244, 39, 9, 0, 4, 16, 19,102,243,127, 85,
+109, 21,144,241,237,197,115,184, 32, 49, 51, 1, 37, 37, 37, 83, 83, 39, 50,128,103,125,129,138,225,171, 72,129,108,215,197, 1,
+ 64,246,185,174, 19, 64, 53,212,117, 61, 60,109, 61,121,242, 4,210,228,135,148,251,208,238,203,215,175,192,210, 13,216, 30,231,
+226,162,254, 40, 1,208,234,140,140, 12,144,141,127,254, 92,187,118,237,252,185,115,250,122,250, 63,126,128, 59, 0,223,191, 47,
+ 89,188, 24, 34,139, 39,185,247,246,246,106,105,106, 1, 93, 11, 12,165, 63,191,127, 61,125,242,148,108,239, 51,192,102, 32, 24,
+192,219, 17,240,245, 0,126,255,252,243, 23, 52,242,115,242,228,137,175,223,191,126,249,252, 9, 88,250,191, 7,149,254,239, 72,
+170, 38, 33,253, 0,146, 90,106,135, 14, 29,250, 12, 2,159,192,228,103, 17, 97, 97, 96,233,127,227,250,245,131,135, 14, 17,163,
+ 29,210,252,103, 97, 97, 5,198, 38, 15,176,236, 7, 98, 30, 46, 78, 46,206, 23, 47, 94,140,102, 99, 8, 40, 47, 47,135,151,191,
+240,201, 85, 8, 3, 34, 8, 81, 64,100,179, 29,255,184, 16,254,210,159,248,182, 63,154,155,129,117, 0,176,244, 39,201,205,200,
+117,192,104,233, 79, 42, 0, 8, 32, 44, 67, 64,194,247, 31,188, 3, 15,254,192, 69,128,157,128, 30,134, 27,248, 13,130, 12,245,
+220, 56,123, 77, 64, 93, 4, 88,226,247,196, 66, 43, 12, 72,233, 15,105,254, 19, 92, 77,180,174,221,128,188,246,248,245,235,215,
+ 33, 41, 0,121, 52,128, 21, 12, 94,191,126,237,229,229, 69,139,176,131,148,185,192,134,191,153,153,217,143,159, 63,191,255,248,
+ 14,110,253,127, 7, 49,126,252,152, 50,101, 10,174,156, 3, 89,169,249,247,239,223,179,103,207,177,178, 48, 67, 66,230,254,131,
+ 7, 79,159, 62, 93,190,124, 69,100,100, 4, 80, 4,222, 15,192,154,193,224,131, 78,104, 45, 56,130, 43, 80, 33,109,255,227,199,
+143,127,253,242, 13, 82, 65,126,250,252,233,211,167,143,159, 62,125, 33,126, 32, 5,210,252,135,239, 4, 38,166, 26, 0, 42,134,
+179, 21, 21, 20,128, 69, 63, 40,181, 92,191,126, 31,220,107, 65,150,197, 3, 44,173, 44,217,217,216, 57, 57, 57,129, 61, 0,118,
+118,118, 96,228, 82,125,122,127, 72, 3,228,213, 50,240,197, 51,240,154, 0, 77, 1,254, 66, 28,235, 80, 62, 73, 61, 15, 34,171,
+ 13,106,185, 25, 82, 7,140,150,254,164, 2,128, 0, 98,193, 28,255,113, 94,178, 12,171, 82,130,235, 65, 33,205, 7,163, 50, 11,
+ 97, 93, 9, 72,185, 15, 31,252, 1, 54,255, 9,166, 6,242, 22,252, 66, 44,213,212,212,188,124,249, 50,188, 8,195, 28,244, 7,
+ 42, 35,254,124, 12, 82,109, 71, 22, 89,178,120, 9,176,244,135,236,176,194,186, 30, 31,121,157,254,191,127,127,245,244,141, 46,
+ 94,188,116,253,218, 53, 22, 86, 86, 96,201,248,228,233, 19, 96, 83,151,153,153, 57, 44, 44, 12, 88, 7, 48, 48,240, 99,154, 0,
+212, 14,201, 93, 16,219,209,246, 1,224,119, 48,176,244, 63,122,244,232, 23, 32, 0,205,250,126, 2,151,254, 64,226,243,151,207,
+ 95,190,126,251, 70,208,179,192,162,255, 12, 24, 48, 96, 44, 3,197, 95, 13, 56, 56, 56, 32, 7, 20,164,220, 63,127,254, 60, 3,
+ 17,219,143,141,193, 0,200,224,225,226,225, 0, 21,254, 28,108,108,108, 76, 76, 76,163,165, 63,250, 24, 44, 82,185,185,122,245,
+106, 96,107,154, 1,117, 66,149,152, 37,149,200,109, 11, 82, 87, 51,147, 49,238, 79, 21, 55,195,235,128,209, 52, 64, 42, 0, 8,
+ 32, 22,180, 86, 60,133,219, 46,224, 41, 0, 82, 13, 64,138,126, 6, 26,111,197,130, 88,170,171,171,123,250,244,105, 96,123, 31,
+ 81,241,188, 5,205, 72,199,198,198,210, 52, 4,145,189,246,255,255,255,152,216,152, 41, 83,166,130,199,217,255,240,243,243, 19,
+172,231,110,221,186, 5,108,209, 66,244, 2,217,104,202,238,225,168,180,144,235, 0,200,108, 48,100, 73, 40,254,112,134, 44,159,
+183,182,182,166,196,179,240, 53,160,164,158, 5, 4,212,123,224,192,129,229, 96,128,220, 51, 32, 50,109, 0,171,144,223,127,126,
+255,254,252,123,116,202, 23, 23, 32,184, 98, 18,168,128,200,208,134,239, 3, 32, 47, 51, 18,175,145,138,110, 30, 5,100, 0,128,
+ 0,162,254, 97,112,192,216, 2, 13,253,119,209,245, 44, 32, 72,178, 51, 53, 53,221,182,109, 27,164,220,167,188,111, 65,222, 96,
+ 20,124, 47, 46,214,210,159, 42, 0,243,204, 6,200,178, 81,130, 77, 54,170,132, 3,220, 16, 96,105, 78,234,217, 15, 14, 96, 64,
+170,141,163,231,252,144,209, 22,161,127,226, 39,207,198, 65,226,230, 17, 11, 0, 2,136, 38,167,129, 82,222,147, 32,187, 14,160,
+209,112, 63,237, 50, 0,229,134,143,230,150, 81, 48,228,146,241, 40, 24, 36, 0, 32,128, 24,169,123, 64,194, 40, 24, 5,163, 96,
+ 20,140,130,161, 2, 0, 2,104,244, 70,176, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128, 70, 43,128, 81, 48, 10, 70,193, 40, 24,
+161, 0, 32,128, 70, 43,128, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128, 70, 43,128, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128,
+ 70, 47,133, 31,213, 59,170,151,230,122,113, 45,207,165,181,222,209, 56, 26,213,139, 31, 0, 4,208,104, 15, 96, 20,140, 2, 2,
+224,231,207,159, 79,158, 60,185,126,253,250,131, 7, 15,200,216,134, 6, 57,221, 30, 66,146, 10,136, 57, 82,127, 20, 96, 5, 55,
+111,222, 28, 13, 4,130, 0, 32,128, 88, 70,131, 96, 0,193,181,107,215, 38, 78,156, 8,231,230,231,231,107,105,105, 13,114,189,
+ 35, 10,252,254,253,251,212,169, 83, 87,175, 94, 69, 22,148,148,148,116,112,112,224,229,229, 37,198,132,123,247,238, 65, 14, 54,
+ 0,146, 74, 96, 64,106,233,255,255,255,127, 70, 70, 70, 82, 79,100, 67, 83, 76,188,118, 50,244,146,122, 82, 52,145, 93, 28, 10,
+ 75,255,254,254,254, 25, 51,102,140,166, 97,252, 0, 32,128,134, 97, 5,112,248,240, 97, 91, 91,219,193,239, 78, 72,182,233,237,
+237,133,139, 20, 23, 23, 51, 16,125, 25, 36,144,252,183, 82, 16,209,149, 11,159, 72, 7,189, 35, 10,124,253,250,117,211,166, 77,
+152, 77,254,231,207,159,175, 89,179,198,213,213, 85, 70,134,112,175, 28,249,168, 3,146, 78, 53,128,151,254,100,212, 1,148,236,
+ 22, 36, 67, 47,228, 28,127, 60,206, 3,246,126, 32,135,252,144, 84, 7, 16,212,133,191,244,255,247,239,223,172, 89,179,150, 46,
+ 93, 26, 29, 29, 61,154,152,113, 1,128, 0, 26,134, 67, 64, 75,112, 28,102, 55,216, 74,127, 96,187, 27,185,244,135, 84, 6, 64,
+ 65, 98, 46,131, 92,144,203,141, 92,130, 67, 10,116,160, 32, 77,245,126,252,248, 49, 51, 51, 19,126, 11,205,139, 23, 47,128, 90,
+ 90, 91, 91,155,155,155,171,170,170, 32,231,245,227, 2,108, 31,191,234,102,206,231,217,127, 31,194,253,243,226,207,213,244, 31,
+151, 90,217,142, 52, 11,110,174,146, 63,183, 75,122, 16,198, 17,176, 0, 66, 46,253,207,156, 57, 19, 21, 21, 5,239, 25, 0,101,
+191, 17, 58, 62,143, 1,227,156,125, 50, 74,127, 8,128,176,137, 28, 11,194,122,164, 51, 73, 86,147,164, 23,114,142, 63, 68,229,
+ 30, 48, 64, 11, 70,252, 55,124,193,245, 98,234, 34, 99,236, 11, 94,250, 3,155, 83,192,210,255,200,145, 35,163,165, 60, 30, 0,
+ 16, 64,195,173, 2, 0, 54,255,129,109,165, 65, 30,235,215,174, 93, 3,146,114,114,114,240,134, 63,164,237, 15, 23,132, 40,192,
+163, 55,206,134, 13,214,120,127, 15, 68, 16, 54, 68,144, 70,122,129,224,228,201,147, 28, 28, 28,199,143, 31, 71,164, 30, 38,166,
+234,234,234,218,218,218,248,248,248,173, 91,183,226,209, 43,113,242,218,127, 14, 86,174,227,143,224, 34,140, 76,255,245,170,127,
+217,212,190, 55,143,127,117,122,235,160,171, 0, 30, 63,126,252,242,229, 75, 60, 10,126,253,250,117,249,242,101,218,117, 13, 33,
+173,126, 8, 32,178, 14, 64,158, 48, 72, 71, 5, 12,132,166, 19, 40,209, 11,175, 3,222,189,115,153, 57,243, 61, 73,165, 63,214,
+250, 3,174,139,212, 94, 41,176,244,239,235,235, 3,134, 24, 48,101, 2, 43,108, 96,105, 48, 90,196,227, 7, 0, 1,196,132,191,
+ 48, 37, 35, 4,129,133, 8,114,234,193, 95,166, 96,181, 20,162,145,188,200, 3, 54,255,103,204,152, 70,118, 39,128, 62, 41,102,
+226,196,137,240,182, 63,176,232,239, 5, 3,120, 29, 0,100, 35, 15,208, 99,234,133,183,223,129,197,247,237,109,177, 64, 4, 47,
+199,129, 82,196,235,133,180, 73,137,212, 11, 44,125,142, 29, 59, 6,236, 77, 63,122,244,232,249,243,231,104, 82, 15, 31, 62,148,
+148,148,100,192,173, 89,242,216,149, 39,209,214,108,143, 62, 50, 62,135,183,154, 33, 87,185, 49,188,123,200, 46, 36,249,125,176,
+101, 12,200,245,106,248,193,253,251,247,113, 73,221,187,119, 15, 79, 81,139,124, 6, 50,254,182, 63,218,189,114,248,235, 0,228,
+ 27,184,102,162, 2, 6, 66,247,115, 33,203,254, 95, 37,136,140, 24, 72,188,219, 11, 82,238,147, 84,142, 35,215, 31, 64, 68, 94,
+233, 15,236,158, 78,152, 48, 1,216,246, 47, 40, 40, 0,214, 1,144,182,224,244,233,211, 71, 75,121, 60, 0, 32,128, 88,240, 20,
+133, 75,151, 46,135, 36, 56,226,135,212, 33, 73, 51, 38, 38, 6,162, 5,104, 8,164, 76, 33, 50, 46,129,234,151, 44, 89, 2,212,
+ 14, 46,202,151,144,100, 53,188,249, 15,201, 39,100,204, 4, 64,108, 39,213, 82, 74, 0,164,244,135,151,251,200, 92,194, 85, 55,
+184,244,135,176, 65,117,128,215, 98,180,129, 29,252,122,225, 49, 2,174, 3,210, 9,234, 5, 22,241,192, 54,175,177,177, 49,176,
+119, 5,236, 4, 4, 5, 5,129,234,140,127,255,218,219,219,191,124,249,194,202,202, 10,204,126,184,244, 10, 61,124,202,244,235,
+207, 7, 99, 5,214, 35,207, 88,142,191,252, 29,164, 8,138,163,127,255, 47,181,179,189,251,194,251,157,149,199, 53,243,246, 96,
+203, 24, 64, 79,193, 71,126,224,130, 69, 96,192, 0,187, 18, 7,174, 6,179,248,195,223,236,237,236,236, 4,150,119,152, 3,220,
+152, 37, 59,188,249,143,169,114, 16,158,226,149,158, 46,136, 84,163,128, 26, 22,192, 96, 32,251,158, 15, 82,219,254,192, 92, 15,
+191, 27,210,198,198, 6,152,157, 71, 75,127,130, 0, 32,128, 88,112, 23,133,203,102,206, 4, 5, 95, 70, 70, 22,145,101, 34,100,
+ 92, 27,121, 61,137, 45, 24, 64,250, 4, 4, 99, 20, 94,250,195,237, 34,181, 56, 6,186, 57, 38, 38, 10, 92, 3, 69, 1,217,164,
+ 86, 30, 64,235,224,247, 25, 12,137,105,100,122,130,163, 71,143,154,155,155, 3,203, 35, 32,185, 97,195,134,128,128, 0,200, 16,
+ 80,101,101, 37, 3,248,234,133,229,203,151, 3,165, 76, 77, 77, 49,245,202, 31, 61,243,194, 92, 19, 88,152,125, 53,151,101,222,
+240,252,119,128, 34,120, 8,136, 65,175,242, 23, 80,235,215,183, 31,247, 45, 87,145, 55,255,162,103,250,100,240,248, 23, 88,165,
+ 65, 24,125,125,125,240,210, 31,206,134, 0, 54, 54, 54, 92,109, 32,252,108,112,201, 8, 2,152,133, 56,242,157, 42,184,174,149,
+198,122,113,227,128, 3, 96,125,134,185,212, 21, 50,182, 67, 42, 32, 67, 23,228,204,112, 22, 22,150,194,194, 66, 96,157, 61, 58,
+244, 79, 36, 0, 8, 32,236, 21, 0,176,237, 15, 41, 73,129, 32, 58, 58, 18,200, 37, 88, 32, 66,134,122,176,174, 38,132, 8, 2,
+ 21,224, 95,107,136, 86,250, 67, 24, 64, 65, 34,203, 98, 96,148, 3,139, 39,136, 98, 32, 9,172, 0,136,239, 4,192, 75,127,228,
+220, 69,100,157, 71, 73,251, 5,185,213, 79, 82,243, 31, 50, 98, 3,108,245, 67, 58, 1,170,164, 52,255,161,122,195,211,225,119,
+ 63, 17,212,251,251,247,111, 96,166,226,229,229,189,116,233,210,223,191,127, 63,125,250,116,253,250,117, 97, 97, 97,184, 2, 32,
+219,219,219,123,218,180,105,152, 21, 0,243,239,223,178,103, 46,179,241, 74,179, 94,122,251,241, 47,239,231, 79,108,127,175,127,
+ 97, 16,230,128, 43,224, 22,254, 99,234,253,100,225, 52,219, 65, 85, 1,136,136,136, 64, 6,106,150, 45, 91, 6,175, 0,144,185,
+160,158,141,144, 16,214,168,199, 28,250,192,188,100, 17,210, 3, 64,219,176, 67,210, 90, 29, 90,220,112, 71, 57,128, 52,252,129,
+ 93, 1,228,222, 0,241, 29, 8, 96,184,145, 81,250, 47, 93,186,244,208,161, 67,255, 87, 9, 50,134,189,239,239,239, 7, 86,156,
+192,166,201,232, 26, 80, 98, 0, 64, 0,177, 96, 45, 13,129, 33,136, 92, 16, 3, 43, 0, 96,241, 10,236, 85,225, 49,104,226,196,
+137,144,161, 27,172, 0, 40, 5, 84,128, 39,125, 67, 6,223,209,202, 92,112, 57,190,132,152,114, 28,185,203, 2, 1,177,177,209,
+139, 23, 47, 37,166, 28, 71, 46,253,209, 90, 88, 4,245,226,241, 50, 30, 0,236, 39,193,139,123,248,232, 63,242,172, 0, 80, 1,
+ 30,189, 76,225,208,161,124, 72, 29,192,128,180,166,147, 41,252, 61, 9,122,195,211,137,212,123,225,194, 5, 57, 57, 57, 96,219,
+ 10,194, 93,180,104,209,241,227,199,125,124,124,144,213,188,124,249,146,131,131, 3, 83,175,194,133, 11, 31,228, 36, 79, 22, 38,
+ 65, 91,205,139,110,255, 61,254,145,201, 7, 69,229,199,151,156,236, 28,191, 7, 85,198, 80, 85, 85, 61,119,238, 28,124, 72, 1,
+ 43,192,213,160, 1,150,236, 74, 74, 74,120,238,186, 42, 47, 47, 39,114, 67, 0,242, 16, 16,174, 14,193,224, 4,164,174,224, 68,
+190, 12,146, 36,189,203,150, 45, 61,112,224, 0,227, 26, 80,115,100, 87, 13,175, 91,203,103, 59, 59,187,209,165,159, 68, 2,128,
+ 0, 98,193, 44, 13,145,155,255,240, 78, 0,176, 48, 69,174, 21,176, 2, 60,178,144,162,156, 96,243, 31,107, 9, 75,176, 19, 0,
+113, 51,114,233, 15, 25, 4, 4, 58, 24, 40, 14,204, 66,120,170, 46,204,210,159,164, 58,128,188,145, 34, 72,193,241,232,209, 35,
+200,154, 31,228,134, 63, 80, 16, 79,201, 2,151, 90,116,228, 23,100,221, 14,114,227, 29, 40, 72, 35,189,192,226, 30,217,167,246,
+246,246,221,221,221,206,206,206,255,254,253,107,107,107, 3,146,223,191,127, 7,134, 51,214, 24, 84, 63,126,252,146,173, 3,156,
+251,199, 94,242,111,247, 99, 6,103,177,255,255, 24, 46,181,177,126,249,199,243,238, 59,223, 59, 70, 33,191,152,139,131, 42, 99,
+112,115,115, 27, 27, 27,159, 60,121, 18, 46,210,215,215,135,220,252,151,151,151,199, 83,136, 3,165,240, 79,183,146, 82, 52,174,
+ 2,145,123,194,136,233,143,194,211, 45,214,213,156,120,238,107, 68,214, 11,108, 71,147,164, 23,179, 21, 15,185,195,153, 14, 0,
+232, 36,208, 52, 53,164,244,191,244,103,254,254, 95,224,242,106,180,244, 39, 22, 0, 4, 16, 74, 5,144,145,145, 5,186,213, 54,
+ 38, 10,179, 37, 14, 25, 23, 2,162, 25, 51,166,209,200, 41, 88, 11, 83,130, 53, 7,220,205,184, 12, 4, 86, 93, 64,132, 86, 61,
+ 32, 87, 60,120, 50, 42, 48,121,209,104, 50, 0,158,217,200,216, 8, 6, 84,144,144,158,158, 48,249, 43,234,102,174,247,180,211,
+ 11,190,158,158, 1,185,236,155, 50,101, 10,145,101,217, 54, 84,189,255,228,121, 56,167,104, 2, 25,218, 51, 89, 25, 24,128,173,
+254,247, 96,244,112, 16,230, 13,125,125,125, 22, 22,150, 83,167, 78,253,254,253, 27,109,240, 7, 88, 83, 90, 88, 88, 16, 89, 66,
+ 33, 51,232,112, 91, 28,214,146, 26, 46, 66,112, 21, 16, 25,122, 49, 91,241, 36,109,120,166,164,244, 7, 38, 99, 96,185, 15,100,
+ 47,216,255,107,197,177, 95,192,162, 96,116, 63, 35, 73, 0, 32,128, 80, 42, 0, 60,133, 59,100, 58,151, 96,226, 35, 91, 1,217,
+ 55,217,226,175,144, 40,116, 54,173,179,235,181,107,215,224,171, 63, 25, 72, 57,146, 1,162, 23,178,131,151,158,122, 71, 26,208,
+214,214, 6,246,210,206,158, 61,251,244,233,211,175, 95,191,178,177,177, 73, 74, 74,234,233,233,225, 91,243,138, 49,218, 3, 31,
+ 11, 2,178,233,227,108, 58,239, 4, 30, 88,224,222,242,121,168, 56,117, 16, 2,128, 0, 26, 61, 11,104, 32, 1,176,216, 37, 59,
+201, 14,148,222,145, 6,120,121,121,201,184,200, 30,121, 44, 8,114, 82, 2,144, 36,190, 93,140,178,250, 19, 54,248,131,107, 73,
+ 40,174,241, 28,252, 34,180,208, 75,139,170, 11, 63, 0,118, 94,129,193,226,231,159, 6,237,110,110, 63, 7, 97,120,121, 26,141,
+ 38, 93, 98, 0, 64, 0,141, 86, 0,163, 96, 20,208, 22,184,184,184, 0, 43, 0,226, 39, 54, 41, 47,109, 7,182, 7, 64,223,218,
+226, 63,100, 71,225, 40, 32, 15, 0, 4,208,232,165,240, 35, 17,112,254,188,241,157, 93, 99, 52, 28, 70,193, 40, 24,225, 0, 32,
+128, 70,239, 3, 24,137, 96,180,244, 31, 5,163, 96, 20, 0, 1, 64, 0,141, 86, 0,163, 96, 20,140,130, 81, 48, 66, 1, 64, 0,
+141, 86, 0,163, 96, 20,140,130, 81, 48, 66, 1, 64, 0,141, 86, 0,163, 96, 20,140,130, 81, 48, 66, 1, 64, 0,209,228, 82,248,
+251, 87,143, 51, 48,253,144,148,145,254,252,253,235,251,183, 95,213, 52,109,136,215,123,228,220, 93,134,127,236, 47,159, 62,229,
+230,228, 22, 20,226, 54, 55, 81, 36, 94, 47, 37,110,254,247,102, 10, 47,207,119, 78,110,102, 22,102, 38, 70, 14,198,231,159,242,
+137,215,251,137, 55, 72, 80, 88,144,159,135,153,129,133,225,221,133, 89,248,237,229,148,190, 65,188,155,191, 63, 69, 25,172,151,
+226,122, 73,188,222,103,223,196, 81,244,254, 36,193,222,103,168,147, 4,210,191, 72,184, 94,245, 41,155,250, 96,208,171,141, 45,
+156, 59, 59, 87,151,151, 99, 57,106,230, 42,106, 56,115,202,252, 34, 33,142,158,160, 28, 9,231, 43, 77, 66, 28,109,126,138, 18,
+ 71, 63,126,114, 19,175,151,131,253, 43,138, 81,126, 83,136,215,235,187, 41, 7,153, 91,252,130,132, 99,115,122, 37, 50,104,148,
+ 7, 71,245,210, 72, 47, 30, 0, 16, 64,248,150,129,166, 30, 40, 98,116,140,159,245, 95,159, 24,131,238, 93,217,197,200,240,143,
+135,157,115,254,204,101, 11, 23, 78,180,118,177,254,243,245,155,150,134,221,191,127, 12,217,101,127,181,180,212,239,220,121,248,
+227,251, 31, 94, 73,107, 76,189, 71,207,191,250,207,192,248,229,231,247,244,162,150,198, 73,238,207,174,158, 5, 38,239,109, 23,
+159, 48, 49, 49, 76,108,168,185,117,235,166,130,130, 60, 59, 39,139,176, 32, 59, 22,123,215, 77, 99, 99, 99,227,228,228,228,225,
+225, 17, 17,224, 16,101,229, 21,149,228,230,103,231, 21, 96, 99, 98, 97, 97,249,255,239,239, 39,102,134, 79,175, 62, 29,230,213,
+197,229,242,143,119,167,242,114,126,228, 19, 96,227,225,102,101,227,100, 98, 97,102, 96, 98, 99, 81,151,158,253,251, 63,243,189,
+103, 73,248,125,189,255,145,178,136,136,136, 56,207,143,239, 63,126, 50,177,115, 50,252,102,248, 35, 23,243,225,253, 59,145,207,
+219,104, 87,105,207,154, 53, 43, 45, 45,109,180,241, 66, 16,224, 42,238, 73, 85, 3, 4, 18,156, 92, 79,159, 62,101,229, 96,255,
+199,197, 69, 79, 47,124,123,119,225,216,222, 21,200, 34, 46,161, 29,131, 51,180, 23, 47, 90,196,206,198,246,239,223, 63,110, 30,
+ 30, 95, 63,191,209,228, 55, 36, 0, 64, 0, 17,216, 7,240,127,239,194, 52,103,194,117, 64,168,159,202, 79, 39,161,223, 95, 62,
+176,252,101, 50,211,147,137,143,135, 54,159,129, 37,248,137,227, 11, 68,228,164,255,125,249,100,111,174,251,236,217,251, 61,231,
+209, 79,215, 74, 79,111, 99, 96,227,103,228,226,251,207,252,255,226,181,196,121, 43,118, 66,155,228,255, 24, 60, 44, 45, 25,190,
+188, 96, 96,224,189,123,249, 58,171,136,128,181,133, 14,143,128, 24, 22,235, 25,153,128,136,241, 63, 51,235, 47,160, 49,127,152,
+153,153, 89,153,153,217, 88, 65,228,239,191, 12,140,127,254,129,220,129, 3,188,184,216, 34,196,207,192,199,197, 37, 42, 34,204,
+199,199,245,159,233,239,159,127, 95,254, 50,252,229,225,225, 18,145,144, 81, 82, 61,178,231, 32,246,115,132,102,236,254,197,207,
+203,205, 47,240,249,199, 55,182,175, 95, 57,216,216, 57, 88,127,252, 5,181, 7,191,253,248,250,237,251,163,247, 58,175,222,188,
+251,244,250, 73,152, 21,118,171, 87,119, 18,186, 38, 41,193, 69, 80, 92, 16,107,233, 79,197, 58,160,170,187, 27, 72,182,149,150,
+146,161,183,178,171, 11, 72,182,151,149, 17,175,229,202,211,167,183,110,221, 2, 50,130, 28, 29,137,212, 50,115, 21,232, 36, 28,
+228, 91,177,128,108, 8,201, 0, 59, 31, 13,200, 78,195,118,132, 36,176,100,199, 95,190, 19, 83,250, 43, 10, 10,125,255,245, 19,
+200, 96,227,228,248,245,253,199,191,175,223,222,188,120, 46,169,171,139, 71,139,164,178, 26, 65,127,241,203,107,222,216,183,145,
+160, 50, 96,233,111,227, 18,193, 33,104, 64, 84, 96,133,190, 35,168, 36, 44, 44,108, 85,232, 30,172, 82,142,123, 94,195,217, 90,
+ 2,160,146,225,213,143,127,223,255,128, 66,248, 43,152,156,105, 46,160,198,203,138, 85,111, 79, 79, 79, 85, 65,137,127, 80,224,
+143, 31,223, 39,246,247, 77,153, 50, 37, 39, 39,135,194,196,121,231,206,157,110,112,250, 36,184,177,224,248,241,227, 15, 30, 60,
+120,251,246,237,231,207,159,121,121,121,133,133,133, 21, 20, 20, 44,129,165,199, 40, 0,131, 45, 75,154,225,108,180,117,255, 0,
+ 1,132,175, 2,152,237,208, 23,124,162,245,223,177,173,105, 86, 12,248,235,128,159, 95,222, 73,168, 56,183,148, 6, 45,152,121,
+ 0, 34,114,240,216,140,175,223,126,122,185,228, 91, 89, 39, 68,132, 57,113,114,178,255,250,251,231,243,183, 95,106, 22,152,135,
+246, 60,100,248,197, 16, 20, 61, 61,181, 8,218,181,244,176,114,224,224, 96,223,176,111,231,182,163,199, 23,205,159,246,227,251,
+ 79, 54,102, 22, 30, 46, 54, 62,182,191,119, 30,189, 64,175,162,128, 69,192,255,127, 32,196,244, 15,200,254,249,139,157, 1, 88,
+197,176, 51,252,255,245,247, 47, 51, 3,176, 40,255,251,235,223,159,191,255,176, 58,251,238,169,118, 25,209,255,124,188,220,210,
+ 50,138, 26,186, 42,188, 60,156, 31,191,188,126,241,250,197,251,143, 47,127,255, 96,228, 2,214, 10,162,214,193,129,151,215,174,
+ 87, 71,211, 56,125,233,227,191,188,188,223, 89, 24,216, 56,216,190,127, 99,251,245,141,237, 7, 7, 59, 11, 35, 48,151, 48,255,
+248,254,229,251,183,207,223,191,127,253,254,233,227,231, 23, 15, 39, 76,120,172,108,140,125,255,103,247,162,110, 92,225, 89, 26,
+135,189, 68,126,255,254, 61, 50, 91, 72, 72, 8, 82, 26, 10, 10, 10,222,189,123,119,245,234,213, 36,213, 10,108,226,208,241, 7,
+160,161,130,228,166,173, 89,171, 87,103,103,103,255,126,245,138,152,210, 95, 76, 76, 44,200,205,237, 55, 59,123,111,111,111,176,
+147, 19, 49,199, 91, 2, 61,216,211,208, 0, 29,169,168,175,239,109,108,196,202,198,165, 29,185, 14, 0, 50,140,141,141,247,236,
+185,231,226,162, 68,100,233,175, 33, 33, 41,192,199, 7, 73,102,220, 28,156,207, 95,191,250,244,254, 3,143,128,224,195,211,103,
+228, 77, 77,240,104,244, 75, 43,137, 9,246, 85, 85, 80,128,112,235,123, 39,195,165, 26,139,115,129,228,163,237,123,205,212,100,
+137, 26,234, 33,178,244,135,182, 44,132, 8,169, 32,188, 31,141,155,133,241, 98, 99, 50, 35,159,200,223,123, 23,127,222,187,122,
+235,221, 87,147,237,248,226,119,198,204,153, 69,233,217,113, 41, 73,171,151,174, 0,150,188, 45,157, 93,188, 13, 45,240, 75, 35,
+ 40, 41,250, 65,121, 1,111,235, 4, 88,226,239,218,181,235,247,239,223,202,202,202,182,182,182,252,252,252, 31, 62,124,120,246,
+236,217,253,251,247,129,164,155,155, 27,176, 62, 24, 45,253,209,184,200,117, 0, 64, 0,161, 87, 0,105,183, 97, 71,235,128,119,
+216,253,255,247,133,225,215,207,223, 7,150,165, 57, 48, 16,234, 7,176,105,105,170, 51, 49, 29,184,245,225, 45, 3,195,245,143,
+ 79,111, 3,251,203, 27,183, 78,250,246,230,111,116, 98, 33,176, 57,239,231,107,249,151,133, 7,151,230, 91,183,174, 3,213,120,
+233, 3,155,117, 82, 12, 12,242, 63,126,254, 10,241,112,227, 16, 96, 90,180,108, 7,176,249,190,102,197, 2,230, 63,159, 53,229,
+217,239, 60, 66,215,248,239, 63,232, 94, 42, 32,248,251,247,239, 79,214,255,191, 25,127,255,250,245,235, 27,215, 15,134,127, 28,
+ 76,255,255,254,101,251,255,229,215,143, 95,223,191, 49,240, 97,177, 84,148,231, 39, 11, 11, 39,176,189,160,162,162, 34, 46, 97,
+206,192,204,244,247,239, 89,166,255, 31,126,124, 5, 86, 25, 95, 95, 60,123, 39, 42,252, 70, 88,192, 90, 82,118, 49, 3, 3, 74,
+139,143,243,199,159,255, 63,223, 48,252, 96,255,197,244,251, 43, 27,203, 23, 78, 86, 22, 86, 54,134,127,220,140,204,140, 95,190,
+126,123,255,226,225,221,179, 71,223, 61,122, 4,116, 21,211,127,102, 34,227,105,222,244,121, 16, 70, 82, 38,206,113, 39,228,123,
+166,128,236,162,162,162, 71,143, 30, 1,139, 72,242,246, 94, 78,157, 58,245,229,203,151,107,214,172,241,182,179, 19, 20, 19, 35,
+ 85, 59,176,237,255, 30, 92, 50, 66, 14,134, 75, 15, 35,112, 92, 37,176,237, 15, 44,253, 25,192,247,168,168,169,169,173,221,183,
+143,152,174, 0,229,103, 32, 3, 75,121, 96,161, 15,185, 48, 4, 78,134,134,134, 18, 44,253,213,196,196,129,165, 63, 51, 19, 83,
+ 86, 76,244,247, 31, 63,123,231,206,229,226,228,252, 1, 4,223,191, 51,177, 48, 63, 62,127, 94,214,208, 16,151, 94, 72, 41,127,
+ 27,118,175, 36,132, 75, 6, 48,119,138,216,179,186,194,213, 47,249, 63,187, 42,145, 90,224,103,121, 66,110,115,196, 42,130, 11,
+ 0, 27,254, 15,191,252, 61,232, 42,202,154, 63,243, 83,180, 34,139,160, 24,193,210,127,239,222,189, 10,146, 82, 41, 89, 25, 21,
+133,101, 83,230,207, 48, 51, 50,154, 49,121, 70, 65, 89,201, 82, 75,243,203,151, 47,235,226,237, 42,225, 47,250,129, 38, 3,185,
+248,213, 3, 75,127, 81, 81, 81, 67, 67, 67, 38,112, 47, 31,152,227, 88, 89, 89,129, 13, 35, 9, 9, 9, 96, 29, 0,148, 13, 14,
+ 14, 30, 45,253,211,202,161,195,134,179, 58, 43,208,234, 0,128, 0, 66,169, 0, 82,143, 85,126, 99,230,248,247,247,223, 63, 70,
+102,222,255,223, 25,128,205, 96, 6,102, 6,105, 53,214, 95, 95,255,239,153,151,230,146,132,183, 14,248,199,204, 12, 41,236,128,
+101,173, 12,191,180,250,195,155,107,166,207,156,207,244,147,203,205,209,122,199,222,163,223,190, 49,112, 9,241, 99,106,227,228,
+ 82,255,254,237, 38,176,248,134,143,202, 48, 48, 60, 99, 98,118,136,139, 79,254,199,254,117,203,214,121,126,190, 73, 92,220, 12,
+223,222, 2, 19,177, 4,166,246,223, 12,204,172,224,210,255,247,159,191, 63, 63,253,254,246,251,219, 7, 78,150,223,223, 88,127,
+178,252,102,254,205, 8, 44,200, 63,125,255,243,245,243,111, 6,113,116,141, 23,247,119, 42, 73, 48, 50, 51, 51, 50, 50,177,255,
+253,251,255,207,183, 71, 63,255,254,126,250,226,227,187,247, 95, 62,126,254,203,244,227,199, 31,134, 23,204,172, 23,164,228, 62,
+241,114,112, 98,218, 11,244,234,255,207, 63,190,127,126,246,247,229, 71,102,101, 25, 96,250,251,251,231,231,135, 23, 15,110,158,
+ 58,254,250,225, 35,112,177,197,194, 4, 12, 93,102,106,158,225, 14,105,224,207,154, 53, 43, 36, 36,196,192,192,128,157,157, 29,
+237,142, 42, 82,155,255, 22, 58, 58,226,226,226,192, 18,220,199,222, 94,138,244, 58, 64, 16, 92,238,179,138,137, 1, 77, 0,146,
+ 4,251, 1,192,182, 63,235,207,159,107,215,174, 69,238, 10, 16, 63, 28, 68, 54,128,148,251,200, 87,178, 0,171, 79,130, 21,192,
+215,111,223, 68,133,132, 18, 67, 66, 62,124,252,244,250,221, 91, 86, 86, 22, 8, 0, 22, 49,236,156, 92,159,222,190,249,252,248,
+ 9,175, 44,206,169, 57, 96,233,191,100,237,102,228, 10, 0,210, 15, 48, 55,210,243,114,180, 39,194,213,159, 65, 7, 17, 9, 27,
+184,248,113,239,222, 52,151, 62,163,255,151, 22, 78,248,185, 99,190,216,236,115,192,154,128,153, 79,232,207,251, 87,192,210, 31,
+216, 33,248,250,231, 63, 51,142, 97,212,251,119,238,108,219,180,117,225,236,133,147,230, 78,155,209, 55, 65, 72, 88,168,165,173,
+101,209,178,165,182, 22,214,243,230,206, 11, 10, 13,178,181,182, 37,163,244,223,180,105, 19,176, 95, 43, 41, 41,137,118, 1, 53,
+218,200, 15,176,237,111,100,100,244,231,207, 31, 96, 87,128,131,131, 3, 88, 1,220,184,113, 3,216,212,224,225,225, 1,246,246,
+ 94,188,120, 1, 84, 51, 58, 22,132, 40, 64,202, 59, 32,117, 0, 28, 0, 4, 16, 74, 5, 48,219,170, 29,170,142,233,242,255,125,
+243, 25,133, 37, 25, 82, 38,159,230,212, 52,125,188,241,223,172, 90,230, 35,203,211,108,153,102,253,195, 82,165,111,218,247, 46,
+ 77,229,147,127,124,126,113, 46,176, 3,241, 14,152,112, 25, 24,126,202,171, 27,113,176,179,124,255,250,147,225, 23,168, 98, 0,
+246,197, 94,189,123,143,169,119, 66,127, 17,232,238,248, 19,115,153,152, 32,203, 24, 64,195, 53,255,190, 95,253,241,243, 55, 39,
+ 15, 7, 3, 27,168, 98,248,252,233,147, 24,210,253, 83, 40, 30,248,247,235,223, 63, 22, 96, 10,248,249,243,231, 23, 22,102,150,
+ 95, 76, 12,207, 63,253,225,250,243,151,237,223,127, 86,230,111,204, 44,127,190,126,251,242, 11,203,162, 14, 94,158,175,127,254,
+ 48,254,252,245, 23,152,189,111,221,121,244,228,249,155,239,191,126,127,250,242,238,203,231, 15, 63,254,254, 98, 4, 38,250,111,
+ 31, 63,125,187,255,240,233,199,183,159,191, 50, 48,168,160,105, 7, 58, 11,146, 35,254,124,252,250,228,194,245,151,215,239,127,
+250,124,231,243,135, 15,255, 25, 88, 88,153, 25,255, 51,178, 50, 49,129,250, 80, 4,143, 41, 41,141, 43,197, 51, 22,132,197,191,
+ 44,208, 40, 3,102, 15, 96,141,139,124,216, 36,169,205,127, 96, 45, 2, 26,227, 22, 21, 37,254,148, 49,236,197, 58,184,220, 7,
+214, 1,120, 58, 1, 87,158, 62,101, 0,159,125, 13,108,145, 65,250, 1,160,226,230,210, 37, 32,185,110,255,126,252,117, 64,113,
+125, 61,100,164, 11,200, 46,105,104,128,247, 9,240,140,252, 32, 3, 96,243, 31,109, 28, 25,114,232, 49,124, 44, 8, 43, 16, 96,
+ 97,249,241,235, 39, 48,132,111,220,187, 11,180,241,218,173,219,191,126,253,102, 98, 96, 4,134, 63,208, 49,192, 22,199,247,175,
+223,118,175, 90, 25,132,116,152, 43, 26,128,151,254, 49,193,190,200,226, 39,207, 93, 82, 85,148,103, 39,236,112,216,216, 5,187,
+ 42,176,232, 7,246, 3,128,200, 51, 48,249, 55,139, 42, 13, 75,136,119,207,217,228,212, 94,101,115,176, 59, 69,254, 61,179,227,
+239, 39,208,164,194,171,108, 43,249,153,199,255,254,195,222,148, 81, 87, 85,231,226,226,158, 52,103,170,163,189,189,185,165,197,
+174,109, 59,111,220,185, 5,236,152,115,176,179, 91, 27, 91,111,221,180,245,205,171, 55,129,129,129,196, 23,253,192,102, 59,228,
+ 46,182, 83,167, 78,101,100,100,224,233,221, 62,120,240, 64, 89, 89, 25,194,184,120,241,162,188,188,188,162,162,226,251,247,239,
+207,156, 57,163,164,164, 4,108,100, 0, 69,128, 82,163, 21, 0, 30, 0, 16, 64, 88,230, 0,210, 24, 47,254, 63,184,140,145,153,
+133, 33,119,110,254, 3,201, 73,125, 11,129,133,229,244,218,155,169,109,234,204,123,102,165,201,106,206, 82,205, 2,182,185,153,
+152, 80, 6, 55, 84,248,100,174, 92, 90, 7,102, 2, 11,198,175,224,163,222,127, 51,252,254,201,242, 15,216,116, 0,149,233,235,
+ 55,236, 2,146,214,158, 88,202,136, 29,151,255,123, 24,234,192,187,176,192, 82,142,129,129,149,129,149,227, 15,227,223,127,224,
+147,158,194,163, 65,103,202, 63, 60, 54, 11, 83, 47, 48, 93,254,249,199,196,244,231, 15,211,175,159,223,192,221,192,239,204,204,
+220,127,190,127,250, 14, 44,132, 25,129, 61,131,111,127, 25,190,253,250,131,233,207, 63,191,254,253, 96,101,254,247,237,207,159,
+127, 31, 63,127,249,205,204,200,250,243,207,239, 95,255,127, 1, 9, 6,182,127, 76,140, 12,140,236,255, 62,126,255,251,226,245,
+183,175, 63,209, 39,174,153, 24,161, 29, 22, 96,185, 4, 57,139,234,247,143,239, 31,223,189, 99, 2,134, 26,203,127,134,255, 44,
+204,140, 12,196,183,252,111, 62,188,169, 46,175,142,103,228, 7,121, 64,156,147,147, 19, 94, 19, 0,243, 9,164,244, 7, 86, 3,
+252,252,252, 31, 63,126,252, 0,172,129,136, 24, 51,129, 52,255,129,221,100, 8, 55, 39, 39,103,242,228,201,228,117, 2,224, 38,
+ 64, 6,130,240,143,254, 51,242,242, 2, 29, 92, 86, 86, 6,108, 68,255,126,255, 30,232,230,138,156, 28,130,253, 0,228,177,126,
+ 92,243, 1,152,186, 58, 9, 77,179,159, 5, 3, 8, 27,243, 68,172,247,239,222,241,240,242,190,121,255,126,255,201,147, 44, 76,
+204, 63,127,255,254,246,253, 59,176,129, 9,169,138,128,137,228,215,207,159,248,131, 26,115,216, 7, 40, 2,233, 4,168, 42, 40,
+ 60,186,119,135,164, 16, 6,214, 1, 95, 95,159,220,190,126, 46, 25,253, 0,130, 35, 63,112,112, 97,213,108,131,248, 66,118, 69,
+ 61, 80, 6,121,243,252,214, 59,208, 74, 83,118, 75,159, 71,127,255,112, 77, 57,137, 85,203,167, 79,159,216, 57, 57, 84, 20, 21,
+239, 63,121,252,246,245,219,240,152,232,109,123,119, 79,236,232, 93,191,109,147,170,162,106, 92,112,236,241,115, 71,215,175, 93,
+ 27,136,123, 40, 6, 94,250, 3,139,126, 87, 87, 87, 72, 13,253,236,217, 51, 96,233,143,223,181,111,223,190,181,181,181, 5,230,
+113, 96, 41,127,244,232, 81, 45, 45, 45, 96,138,146,149,149, 5,118,142,153,192, 0,216,129,128, 71,241, 40,192, 10, 0, 2,136,
+ 5, 75,233,191,111, 1, 3, 59, 59,131,144,220, 55, 89,243, 73, 45, 51, 24,254,126,101,120,241,169,102,249,193, 12,255, 12,134,
+ 61, 11, 31,189,120,205,160,202,240,239,239, 31,180, 10,224,206,167, 79,106, 2,124,127,126, 50,220, 57,176, 68,197,193, 29, 60,
+ 70,194,240,251,215,111, 86, 6,166, 47, 63, 64,139, 40, 60, 28,140, 56,133,165,177, 58,194, 67,151,113,219,197,255,172,192,230,
+190,156,251,175, 71,135, 33,157, 0, 86, 54,246,223, 12, 63,120, 56, 65,119, 7,110,218,182,252,251,219,199, 22,202, 2, 88, 6,
+158,254,253, 99,251,245,253, 55, 3, 27,176, 18, 96,248, 1,202,162,192, 94,225, 79, 96,209,206,194,202,240,131,225,255, 63,208,
+208, 16, 80, 4, 51, 7,124,251,241,143,153,153,241,247,159,223, 63,126,254,251,244,249, 7,200,181,255,254,255,250,249, 15, 88,
+251, 48, 3,117,115, 48, 48,126,255,251, 15,180,132,232,251,231,239,248, 66, 16,212, 21,248,199,240,159,145,129,137, 9, 88, 58,
+ 48,255,251,207, 8,100,128,106,193,127, 76,192,138,137,241, 31, 51,254,230, 63,169, 17,198, 5, 91,134,136, 92,250, 3,219, 59,
+192, 46, 48,176, 27, 4,111, 41, 19,211,252, 87, 16, 17,129,112,129, 12, 10, 59, 1, 68,142,254,255,255,252,185,182,182,246,231,
+219,183,144,235, 31, 85,192, 53, 16,235,207,159,190,190,190, 79, 95,189,146,166,234, 10, 75,248, 8, 15,124, 2, 0, 13, 24, 27,
+ 27,195,123, 0, 87,159, 98,180, 15,126,254,250,240,235,221,143, 31, 63, 4,248,249, 57,128, 73,241,239, 31, 96,192, 2,203,154,
+ 95,192,142,192,239,223,255,254,252,197, 31,206,183, 31, 60,128,207, 0, 35,143, 5, 33,207, 12,147, 10,184, 69,205,129,237, 40,
+ 50, 52, 18, 63, 7, 96,191,251,245, 43,133, 53,192, 78, 0,163,162,158,252,252,243,111,126,252,227,102, 97,252,117,100,195,205,
+123,247,113, 37,144,239,127,126,157, 61,126,106, 66, 79,191,149,131, 77, 77, 83,195,206,237, 59,151, 46, 90,108,105,103, 35,171,
+ 32,199,194,197,186,247,240,222,101, 11, 23,175,219,176,118,235,214,173,222,222,222,152,218, 33,247,228,192,139,126, 8, 0,182,
+ 99,136,241, 23, 48,205, 3, 75,124, 80, 2, 86, 80, 0,198, 38,176,187, 6,204,254,192, 86, 63, 59, 59, 59,176, 49, 4, 20,228,
+229,229, 5,170, 25,201,229, 59,176,101,179,101, 73, 51,218,176, 15, 50, 0, 8, 32,148,129, 61,208,200,207,225,165, 12,156, 28,
+ 15, 62,253, 98,248,254,145,253,223, 55, 61, 29, 37,134,183,223, 24,126,253,113,208, 87, 3, 45,204,252,253,131,153, 17, 60, 68,
+243,239, 47,134, 81, 31,110,125,120,196,194,206,224,225, 87,184,108, 18,176,145,242,139,225,219,207,191,223, 25, 54,236,191,176,
+231, 52,232,190,120, 25, 57, 69,208, 26,123, 28,192, 75,159,241,247, 15,134, 77, 91,119,152,184,229,130,154,255, 12,172,204,156,
+ 12, 97, 62,161, 94,118,254, 64,217, 39, 15,239,254,255,253, 23,123,235, 6,216, 28, 3, 77, 86,255,253,249, 11, 52,253,251,243,
+199,247,111,223,190,125,249,242,229,243,167,143,192,184,255,244,249,203,143, 47, 95,190,127,199, 82,132,127,254,194,248,253,199,
+ 95, 32,250,250,237,247,231, 47, 63,223,127,254,249,225,211,175,143,159,127,127,248, 0, 34,223,189,253,243,238,253,159,119, 31,
+255,188,121,247,235,229, 27, 44, 35, 72, 76,192,226, 0,152,181,254, 50, 50, 50, 1,203,252,255, 32,119,252,103,254,251, 15, 26,
+158,255,192,217,133,152,249, 95, 77, 75,205,163,219,142,238,220,183, 19, 82, 31, 0,123, 3,120, 20, 3,147, 56, 11, 44, 12,187,
+192,171, 48, 43, 42, 42, 32,167,204, 35, 47,139, 36,166,249, 47, 46,142, 50, 43,146,157,157,189,245,208,161,103, 68, 44,230,193,
+ 10,128,205,127,252, 85, 8,176,153, 15, 97,172, 92,185,242,206, 11,208, 82,174, 45, 7, 14,192, 5,111,222,188, 41, 42, 42, 74,
+163, 60, 0, 41,229,145,175, 72,132,176,241,140,255,128, 42, 90, 62,222,127,127,255,126,122,247,254,205,155, 55,111, 63,188,255,
+250,237, 27, 16,125,254,242,229,235,199, 79,159, 63,124, 0,166,178, 95, 63,126, 0,171, 1, 92,218,145, 75,121,120,233, 15, 97,
+ 35,175, 8,194, 15,190,188, 62,185,103, 53, 34,235,126,123,119,129,214,229,197,243,112, 5, 96,185, 15, 44,253,127, 30, 92,243,
+ 48,209, 16, 88,250, 31,118, 21,253,243,241,181,201,142, 87, 44, 56,162, 23,216,146, 72,205,207,188,115,243,230,241, 3,135,249,
+121,249, 35,195, 35, 5,132,133,206,157, 58,195,195,198,193,205,205, 45,169, 32,181,124,197,242,138,234,170, 47,196,149,233, 16,
+ 96,100, 68,212,105,254,192,242, 29, 88,208, 3, 91,250,192, 86,191,153,153,153,182,182,182,136,136, 8, 7, 7, 7,176,232,215,
+215,215, 23, 16, 16,128,172, 10, 29,225,109,124,228,222, 45,102, 79, 23, 32,128, 16, 61,128,180, 91,211,254,191,126,240,131,149,
+ 99,207, 43, 46, 96, 92, 43,124,120,206,188,174,101,123,122,115,183,150,138,164, 32, 71,174, 6, 39,195,212,243,255,127,255,122,
+204, 12, 30, 55,192, 82,206,240, 0, 83, 44,144,186,120,105,179,190,129,111, 93,205,162,141,235,250,118,237,191,238,104,169,205,
+194,194,190,251,240,185,255,204, 44,191,254,254,197,239, 86, 15, 67,141, 29,103,111, 48,244,118,132,248,122,249,248,248,238,220,
+183, 30,216, 64,247,118,143,100,250,251,155,149, 25,123,113, 10, 44,250,255,130, 74,218,191, 44,192,150,254,127, 22, 96, 19, 0,
+216, 16, 6, 45, 9, 0, 54,196, 25, 65,253, 3, 72, 47, 1, 75,255,241, 59, 47, 19,243,123, 54,118, 38, 80,171,249,239,127, 96,
+107,255,223,127, 96,239, 1,216, 9, 96, 96,226,248,207,200, 12,108,205, 51,254,101, 98,252,249,247,255,135,175,255,249,196,177,
+ 14,200, 32,206, 34,135,132, 7, 11,243,127, 38, 80,133,192, 12, 47, 12, 65,117, 3,238,230, 63,176,244,135,182, 82, 23,236, 1,
+ 34, 32, 3, 88, 25, 48,120,225, 11,162,127,224,161,216, 53,107,214, 64,242,158,162,162, 34,196,131,192,102, 41,208,227, 4, 43,
+ 0, 96,233, 15,105,254, 43, 82,175,192,101, 5, 15, 28,121,219,227,156,216,180,210,213,237,237,237, 5, 54,243,129, 5, 61,176,
+ 55, 16, 0, 62, 25, 95, 93, 93, 29, 46,248,240,225, 67, 17,118,118, 9, 88,143,132,186,115, 0, 64, 0,185,146, 5,249,218, 91,
+130,151,214,190,127,243,145,145,225, 15,168, 69,241,242, 27, 27, 7, 7,104, 83, 33,184, 7,240,253,203,151,159, 95,191,130, 38,
+156, 62,124,240,192,125,247, 44,164,148,135,140, 2,153, 27,233,157, 60,119, 9, 46,133, 54, 37,128,179,121,251,250,228,201, 3,
+235,157,189, 34,160,149,193,199,219, 55, 47, 29, 37,163,225, 79,252,248, 15,168,175,246,238,235,163, 20,211,255,247, 47,137,205,
+ 62,247,245,207,255, 79,209,138,252,203,238,127, 74, 20, 6,150,254, 76,184, 43,248,236,156,156,218,142, 22, 49, 97,145,223,255,
+254,222,126,124, 47, 58, 50,106,209,146, 37, 27, 55,108,138,138,142,250,249,227,231,225, 51,199,190,127,255,146,150,144,176,247,
+248,113,204,117, 28,192, 24,185,115,231,142, 27,184,131,136,220, 15,120,251,246,109,105,105, 41,124, 98, 0, 43, 16, 22, 22,126,
+246,236,153,160,160,224,140, 25, 51, 76, 77, 77, 13, 13, 13,217,216,216,128,121,255,196,137, 19,144, 11, 59,129,178,194, 56,230,
+ 14, 71,108, 29,128, 6, 0, 2, 8, 81, 1,204, 82,203,114,248, 58,243,214,147,247,207,125,193,141,142,147, 21,255,183, 76,151,
+122,121,191,223, 62,136,225,195, 59,134,182, 5,255,159,222,248,203,201,253,225, 29,168,251,206,136,177,181,234,224,129,141,246,
+ 14,206, 64,198,215,127,191,239,124,120, 4, 44,145, 85,248, 20, 29, 29,245,196, 69, 36,222,126,252, 4,234, 32,252,250,243,252,
+195, 87, 77,108,142,144,145,179,124,242,232, 56, 56,205,178,120,128, 86,130,178,236,184,252,123,231,150, 53, 47,223, 60, 19, 22,
+ 0,117,241, 4,216, 88, 37, 5,176, 47, 33,253,197,192,194, 6,106,137, 49, 3, 27,221, 76,127,129,125,148, 63,127, 89, 89, 32,
+165, 63, 3,120,145, 40,104,139, 0, 54, 16, 16, 81,177, 97,113, 9, 23,219,127, 22, 86, 88, 79,226, 55,195,159,255, 12, 63,126,
+ 49,252,253, 9,108,216, 51, 50,178, 49, 2,205,253,250,147, 33, 57,161, 11,109,107, 53,124, 6,248, 31, 19,176,222, 0,141,255,
+ 64,218,224,192, 30, 0, 19, 51,168, 58, 2,202,254,103, 6,118, 11,240,117, 2,224,165, 63, 26, 27, 84, 7,224, 26,110,250,251,
+ 23, 88,244, 0,139,111, 72, 5,176, 6, 12,128, 92,101,101,101,160,237, 19, 39, 78, 4,118, 8,222,189,195,183, 27,168, 4, 12,
+118,236,216,241,245, 37,202,137, 5,192,250,224,254,253,251, 12,120, 55,133, 97,238,252, 2, 22,253,192,234, 4, 24,116, 62,246,
+246,210,184,231, 15,128, 37,187,149,158,222,219, 7, 15,128,165,252, 45,216, 90, 32, 85, 73,201,162,162,162,163, 71,143,170,169,
+169,233, 72, 75,227,153,246, 64, 30,247, 39,126, 14, 0,121, 50,160,188, 28,180,232,243,222, 61,104,219, 31,190, 45, 0,207, 66,
+ 32, 30,105,177,239,207, 95, 0, 83,214, 87, 96, 35,243,205,107, 96,226,250,255,255,223,143, 31, 63,254,131,193,253,107,215,127,
+255,250,137,103, 9, 16, 74,239,214,209, 30,136,224, 75, 66,137, 25, 2,250,242,230, 20,176,244, 7, 57,131,155,123, 35, 82, 39,
+192,196, 54,144,166, 37,133,201,246, 87,103, 60, 25, 12,140, 93, 94,101, 91, 73, 76, 59, 6,172, 15, 4,217, 24,223,190,123,207,
+194,200,200,130,119,140, 48, 46, 46, 14,206,222,188,121,179,151,183,231,150, 77, 91, 86,173, 90,213, 80, 93,187,235,192, 94,102,
+ 22,102,105, 25,105, 96, 64, 50,176, 97, 89,200,167,162,162,130, 89, 13,236,222,189,155,129,208, 22, 48, 96, 75,255,222,189,123,
+ 90, 90, 90, 5, 5, 5, 43, 86,172,224,231,231,191,113,227, 6,242,216, 0, 80, 86,129,220, 1,183, 17, 2, 0, 2, 8,101, 14,
+224,128, 97, 58, 3,108,101,243,150, 87, 2, 62,162,140,255,207,108,251,127,124, 19,168,238,231,224,248,193,197,187, 91,192,225,
+133,165, 11,120, 44, 2,125, 67,224,205, 91,191,142,156,104, 3,149,137,204, 28,144,225,138, 59,159,158,215,229, 36,125,251,246,
+243,211,119,208, 28,192, 47, 38,118, 39,143, 16,172,142,168,173, 78,216,177, 21,188,173,230, 47,100,176,229,143,135, 46, 99, 68,
+ 86, 31, 23, 23, 59, 31,120, 14,128,245,223, 15,105, 81,236,229, 11,203,255, 63,191, 24, 65,117, 0,176,168,248, 11,204,163,192,
+156,250, 7, 60,103,203,200, 4,236, 14,252,129, 84, 84, 56,234,128, 15,223, 5,190,255,124,203,198, 2, 82, 4, 84,241, 7, 88,
+125,252,254,255,251,207,255, 47,223,255,129,154,255, 12,140,191,255, 65, 7,115,208, 11, 98,208,232,254, 95, 32,252, 15, 44, 22,
+192,227, 63,140, 12,232, 86, 64,180,229, 21, 58,226, 58,151,227,250,241,235,164,198, 22, 48, 77,127,255,254, 93, 87, 87, 87, 73,
+ 73,233,193,131, 7,171,192,187,100, 33,149, 1, 4,116,116,116, 16,172, 3,128, 0,235,244, 90,112,124, 60, 3, 17,155,194, 32,
+ 91,115,145,129,175,131, 3,193,217, 99, 9, 88, 67, 12,185, 55, 0,108,248,155,168,171,179,125,253,138,223,203,148,164,111,228,
+ 82, 30,121, 23, 5, 3, 17,251,132, 57, 37, 37,190,221,190,243,247,207,159, 79,239, 63,128,123, 87,160, 40,126,255,242,213,167,
+247,239,129,174,194,211,252, 71,155, 12, 88,178,118, 51,242,210, 79,228,233, 1,236,224,219,197, 19,251, 33,235, 41, 24, 54,174,
+ 6, 45, 0, 53,178,143, 16, 18, 51,160,101, 57,240, 31,165, 14, 96,152,109,144, 81,247,226,223, 63,253, 5,167, 78,121,136,107,
+111,121, 9, 44,253,121, 89,137, 61, 56, 18, 24,185,251, 14,236,115,114,117,222,180,118, 67,115,103, 71,249,199,143,255,255,253,
+ 91,185,114,173,136,136,200,163, 79, 56,117,161, 85, 3, 12,132,182,128, 1,129,165,165, 37,176,141,127,238,220, 57, 35, 35, 35,
+103,103,231,253,251,247,203,201,201, 1, 91, 72,246,246,246,192, 8, 2,138,179,178,178,142,240, 37, 64,144,125, 0,240, 30, 0,
+ 26, 23, 8, 0, 2, 8,231, 78, 96, 96, 63, 96,238,229, 61, 58,127,175, 74,176,126,252,241,159,229,246,127, 1,230,215,159, 94,
+ 88, 64,183, 17, 50, 97, 27,144, 17, 21, 50,244, 74,136,251,251, 31,222, 84,255,255,229,235, 39,102, 22,126, 6, 38,174,178, 30,
+ 2, 59,149, 60,188,117, 54, 76,173, 96, 96,250, 6, 47, 72,121,120,248,255,254,126,207,240,255,235,195, 99,179, 76,244,228,112,
+ 14, 46, 3, 27,217,224,172,249,135,129,153,237, 63,184, 26, 0,151,254,160,230, 50, 3,148,192, 5, 18,210,106,102, 77,110,248,
+243,251, 29, 11,120,145, 51,168,143,255,231,255,143,223, 12,159, 62, 3, 59, 3,255,255,252,103, 98, 97,101,108,109,194,178,184,
+ 37, 37, 5, 52,124,188,112,193, 29,198,223,160,230, 63,168,155, 1,162,192,173,164,255,204,140,160,185, 40,150,226, 18, 55, 60,
+ 86,167, 52,167, 60,184,251,128,140, 24, 5,166,239,247,224,245, 51,198,198,198,102,102,102,175, 95,191,190,123,247, 46,104, 97,
+226,191,127,107,215,174, 37, 88, 7,228,196,199,115,138,137,249, 96, 27,174,201, 1, 87, 0,156,184,139,114, 72,134, 68,211, 43,
+ 45, 46, 78,146,251,129,189, 1,107,112,111, 64,140,147, 83,199,202,138,166,169, 31,173,124, 7,134, 24,218,108, 48,193, 58, 64,
+ 88, 85,229,243,251,247, 44,236,108, 63,127,254,248,251,251, 15, 48,144,121, 5, 5, 63,190,123, 7, 44,253,241, 55,255,225, 27,
+193, 32, 19, 0, 39,207, 93, 2, 86, 0,240,209,127, 92,251,194,212, 36,223,191,121,251,102,213,234,229,112,145,176,232,228,119,
+191, 72, 91,247,137, 57,230,131, 33,194, 72,176, 31,192,176, 29,122,144,131,202, 70,232,222,251,143,191,255, 18,239, 6, 39, 7,
+167,139,130, 23,221,188, 61, 82, 99,147,245,244,117, 55,109,220,124,252,194,217,180,180,180, 71,132, 14, 41,131, 87, 3,221, 96,
+ 64,112,135, 35,176,182, 0,246, 24,182,108,217, 2,108, 18, 1,251, 13,144,181,112, 87,175, 94, 5,182,253,129,165, 63,188, 46,
+ 25,225, 0,109, 51, 48, 50, 0, 8, 32,124, 71, 65,252,211,117,185,196,224,114,137, 20,155,116,116,172, 39, 77, 90,148,151, 31,
+ 41, 45, 15, 76,181, 63, 89,217, 57,158, 60,255,100,239, 27, 71,140, 94, 67, 67,165,132,132,176, 5,243,214, 49,252,123, 8,108,
+217,255,249,241, 93, 90,146, 95,142,239, 15, 1,109,127,255,177, 48,253,251,205,200,194,250,255, 15,180, 26, 0, 18,255,255, 18,
+185,172, 37, 45, 23, 52,164, 80, 95,153,201,202,194, 8, 57, 55,232,239,223,191, 31, 62, 3,107, 2, 6,102,150,127,211,166,226,
+ 75,127,241, 9,160,205, 1,243,230,222,100,128,156, 72,195, 4,236, 46,128,198,124,138, 74,124, 8,218,251,241,203, 71,172, 71,
+253, 16, 4,192, 50, 8,216, 9, 0, 58,242,211,167, 79,204,204,204, 64,134,132,132,196,239,223,191,145,179, 10,176, 14,192,117,
+ 38, 4,164,169, 46, 72,214,114, 79, 33, 72,144,146, 88,226, 99, 2,113, 18,135,101,201,158, 3, 64, 43,217,177,174, 5, 34,184,
+ 29, 76,193,204, 20, 72,222, 56,120,240,199,183,239,255,254,254,213, 52, 54,214,181,178,227,145,198, 27,128,255, 25, 31,222,191,
+ 11,154,113, 97, 96, 72, 10,130, 78,233, 0, 69,144,217, 88,183,136,220,122, 14, 76, 18,130,225,209, 41, 15, 31,191, 56,113,104,
+ 11, 80,100,213,210,185,230,118, 62,188,226, 54,196, 4, 84, 24,104, 31, 6,225,147, 30,254, 50, 98,223,132,240, 40, 80, 98,251,
+179, 31,212, 42,116,244,193,224,204,153, 51,123, 79, 28, 20, 22, 17, 38,233,144, 18, 72, 53, 64,140, 74, 94, 94,222,224,224,224,
+227,199,143, 3,155, 65,167, 78,157, 26, 61, 11, 8,115,244, 31,173,244, 71,155, 15, 0, 8, 32,234, 95, 10,175,172, 97,186,117,
+231,157, 0,111, 46, 49,105,217,119,159,255,216,123,199, 18,175,215,210, 84,195,210,180, 42, 61,189,142,129,225,165, 32, 47,139,
+156,208, 63,194,163,150,137, 37,148,187,185,177,125, 58,144,204, 47,200,249,245,253,247, 63,240, 82,203,254,169,253, 68,234, 77,
+ 74, 6,157, 20, 52,111,206,141,127,255,153, 43, 43,252,233, 16,169,160, 35,143,126,254,252,245,235, 23,164, 88,132, 20,136,195,
+245,124, 80,130, 39, 76, 16, 15,136, 57,245, 19, 23,208,176,183, 39, 94,241,243,123, 55,205, 85,101,200,182,235,237, 47, 21, 30,
+113, 21,151, 80, 27, 82, 53,226, 58,229, 13, 9, 48,253, 97,100,255,206,132,125,254,255,238,231, 63,106,188,120, 10, 4,114, 22,
+ 10,155,152,152,208, 33,145, 88,130,193,104,113,143,171, 14,192, 35, 11, 16, 64,163,151,194, 15, 73, 48,122,171,251, 40, 24, 5,
+163,128,114, 0, 16, 64,163, 55,130, 13, 73, 48, 90,250,143,130, 81, 48, 10, 40, 7, 0, 1, 52, 90, 1,140,130, 81, 48, 10, 70,
+193, 8, 5, 0, 1, 52, 90, 1,140,130, 81, 48, 10, 70,193, 8, 5, 0, 1, 52, 90, 1,140,130, 81, 48, 10, 70,193, 8, 5, 0,
+ 1, 68,147, 75,225, 71,245,142,234, 29,156,122, 33,167, 65,140,134,213,168,222, 17,165, 23, 15, 0, 8, 32, 22,180,236, 65,140,
+ 30,172, 89,136, 18,189,163,128, 84,128,171, 32, 27, 5,164,134, 18,145, 33,249,232,209,163,167, 79,159,178,179,179,139,136,136,
+200,201,201,209,205, 11,240, 51, 95, 7,115, 14,122,245,234,213,211,167, 79,241,171,145,150,150, 22,195,182,251,132, 18,189,163,
+128,114, 0, 16, 64,232,203,126, 9,238,188,199,179,193, 10, 77, 47,230,209,196, 52, 61,115,152,254,133, 11,126, 5, 5, 5, 5,
+154,154,154,248,181, 75,163,158,129,131,156, 19, 66, 67, 67, 93, 92, 92,240,232,165, 74, 29,224,238,238, 14, 36,119,238,220, 73,
+ 7,189, 95,191,126, 93,187,118, 45,228, 82,248,224,224, 96, 67,220,247, 41, 98,122,150,224,165,240, 51,102,204,192,218,218,192,
+ 31, 74,196,132, 33,176,132,250,249,243, 39,208, 10, 14, 14,142, 31, 63,126, 0,107,130,211,167, 79,235,235,235,171,168,168,224,
+210, 98,109,109, 77,208, 95,207,159, 63,135, 92,123,130, 31, 0, 75,127,200,113,223,196,132, 21, 49,123, 65,194,194,194,240,167,
+ 43, 8,144,151,151,103, 0,159,183, 12,244, 59, 36,238,240,164, 73, 96,186, 45, 42, 42,194, 99,233,251,247,239,205,205,205,177,
+ 6, 53, 80,175,150,150, 22, 30,189, 47, 95,190,172,173,173, 29,109,238, 80, 2,240, 92, 10, 15, 16, 64, 44,195,198,147,244,111,
+ 20,111,156,225,129, 75, 42, 32,115, 7, 65,237,251,247,239,135,103,143,111,223,190,113,113,113,189,126,253,154, 96,237,178,103,
+207, 30,100, 54,114,134, 4,114, 87,175, 94, 77,124, 32, 92,190,124, 25, 82,136,163,153, 67, 18,200,200,200,200,206,206, 38,230,
+234, 87,200, 77,144,113,113,113, 64,255,246,246,246, 42, 40, 40, 8, 10, 18,222, 11, 13, 44,121,183,111,223, 14, 97,123,120,120,
+236,216,177, 3, 43, 27, 79,143, 19,158, 48,128, 12, 99, 99,227, 89,179,102, 65, 10, 74, 98, 18,204,199,143, 31,121,193, 0, 88,
+250,115,114,114, 2, 43,131, 15, 31, 62,240,243,243,159, 58,117,138, 1,188, 97, 21,151, 70, 29, 29, 29, 96,113, 9, 47,184,145,
+ 91,241,192, 2, 29, 72,158, 56,113, 34, 42, 42,138,152, 16, 38,178,244,135,128, 9, 19, 38, 80,158,176,185,185,185,175, 93,187,
+198,202,202,250,235,215, 47, 96, 32,223,190,125,187,178,178,146,160,174,151, 72,199, 11,218,218,218, 30, 62,124, 24,206,125,243,
+230, 13,145, 26, 49,193, 3,216, 33,122,163,128,242,210,159, 1,227, 82,120,128, 0,236,157,177, 13,131, 48, 16, 69, 35,185,202,
+ 12,241, 16, 46,210, 51,136,167,112,239, 50, 61, 3, 89,222, 32,146,199,113,155, 39, 31,178, 16, 40,112,144,134, 34,191, 2, 36,
+163, 19, 62,254,253,115,113,255,162, 5,160,148,162, 84,136,215, 57, 24,121, 60, 95,147,168,121, 71,229, 18,161,126,145, 87,227,
+ 56,106,116,220,194, 23, 30,226, 78, 41,193,146,139, 73,103, 26,116, 83,120,241,134, 60, 10,180,127,206,185,155,194,239,126,121,
+180,191,204,140, 20, 83,120,106,128,166, 21,248,221, 20,158,192, 32,253,185, 41, 60,121, 2, 59,239, 6,204,238,192,251,183,102,
+150,128,246,167,201,184, 55, 83,248, 90,171, 49,134, 87,109, 20, 0, 97,249,174,241,229,246, 4, 88, 72,180,250, 38, 0,132, 16,
+228,162,103,212,250,201, 55, 32,252, 33,235, 24, 35, 53,128,196, 24,134, 65,201,254,115,192,254,222,251,121, 13,144, 54, 98, 35,
+145, 78,111,174,115,142, 54,154,114, 37,179,108, 5,214, 90, 18,140,159,130,252,252,179,255,196, 42,205, 23,126,109, 10,255, 17,
+128,189,179, 57, 97, 16,134,163,184, 32,221, 32,183, 14,225,209, 1,218, 91, 22,200,221, 49,178,143,123,100,152, 28,147, 13,132,
+254,204,159, 6, 17, 53,177, 45,133, 66,223, 33,136, 66, 14,154,188, 15, 15,121,159, 20, 0,182, 89,241, 78, 37,216,108, 88,203,
+179, 26,192,178,251,173,159,227,153,253, 79,209,153, 80, 24,172, 45,135,167, 47, 79, 3,173, 7,246,191,153, 75, 81,238, 82, 10,
+207, 88,227,226, 87,184, 37, 48, 21, 51, 48, 22,103,128, 82,113,253,175, 69,129,119,176, 89, 10, 95, 12, 61,124, 29, 4, 96, 24,
+ 6,114, 64, 8,225,242,108,133,231, 2, 37,136, 49, 30, 39, 39,216, 63,171,178, 8,128,228,128,212, 68, 86,155,183,224,253, 92,
+251,252,133,133,141,221,118,206,105,173, 81, 2,165, 20,215,176, 63, 98,192, 42,109,219,154,126,163,153,253,173,181,178, 25, 87,
+ 57, 96, 15,227, 56, 30,132, 0,239,189, 49,102,239,233, 52, 77,215, 4,222,182,132,227,174,235,250,190, 23,195,241,183,255, 75,
+246,111,182, 74,225, 31, 2,176,119,237, 54, 12,131, 64, 52,202, 72,136, 29,248,180, 89, 35,107,176, 65,214,136,168,211,177, 6,
+ 18, 29, 59,184,129, 34, 47, 57,133, 34,216, 16, 16,101,174,176,108,203,216,103, 16,239,221, 61, 36,110, 37, 1,212,194,197,143,
+ 43,195,171, 56, 64,107, 61,154, 7,116, 61,236,190,234,114,125,220,111, 98,226, 7, 1,127,152, 87,181,183, 49,198, 81, 74,152,
+232,231, 82, 20, 30,168,141, 88, 9, 51,112,130, 0,200,168, 33, 56,224,168,175, 72,253, 63,125,138,194,151,189,227,169, 40, 60,
+221,108, 12,180,148,178,172, 39, 41,165, 74, 78,208, 80,126,234, 40,164, 46, 10, 95,180,160, 93, 11, 33,156,223,123,137,227, 4,
+ 95,244,222,211,230, 75, 84, 20,254, 85,107,122,219,172,181, 13, 40, 47,232,143,108,227,139,141,134, 84, 29, 60, 76, 14,143,166,
+ 2, 19,150, 82, 98,140, 57,231, 56,231, 24, 53, 18,217,112, 41,132,200, 57,119,155, 3,241,113, 52,198, 28,105, 65,203, 13, 97,
+ 7, 18, 74,112, 42,186, 5,158, 99,140, 8,253,193, 7,112,251, 15,253, 93,123, 10, 32,106, 86, 0, 84,159, 4, 38,163, 14, 0,
+ 54, 39, 73,234, 7, 64,178,214,210,165, 75,209,196,183,109,219, 6, 20, 36,210,144, 19,247,181, 44, 20,175, 17, 63,242, 3,111,
+ 96,194,155,138,192,228, 11, 41,140, 72, 45,253,225,117, 24, 73,205, 67, 72,243, 31,237, 82,120,242, 58, 1,112, 19,240, 92, 10,
+ 15,111,242, 3,203, 20, 96, 99, 86, 85, 85, 21,216,136,102,103,103,231,231,231,111,105,105, 33,216, 15, 64, 30,235,199, 53, 31,
+ 64, 70,213, 14, 44,136,225,106, 48, 79,196, 2, 54,240,121,121,121,129,165,222,177, 99,199,128,141, 95, 96,201,242, 29,233, 82,
+120,208,189,211,132, 46,133,199, 28,246,129,183,229,129,209,253,138,196,219, 55,129,241, 11, 89, 17, 68, 70, 63,128,224,200, 15,
+ 28, 0, 35,162,180,180, 20,146,227,128,214,221,190,125,155, 1,116, 76,175, 33,176,254, 35,102, 29, 14, 37,101, 61,164,242, 32,
+195, 64, 96, 60, 2, 99,199,210,210, 18,126,240, 28,208,181,192,190,203,104,225,206,128,116, 39, 48,242, 16, 16,114,106, 7, 8,
+160,193, 62, 9, 76,159, 58, 0,168, 30,210,111,133,119,132,137, 44,253,129,205,127,178,189, 6,105,254,163, 53,252, 95,188,120,
+ 65,235,210, 31,222,252,215,209,209,129,112,129, 12, 10, 59, 1,248, 1,124,244,159,155,155,187,182,182, 22, 88,250, 67,196, 13,
+ 12, 64,151,156, 0,203,125, 95, 95,223, 35, 71,142, 0, 73, 42, 90, 10, 15, 19,248, 4, 0, 26, 0, 54, 27,225, 61, 0,204,117,
+211,192, 50, 5, 88, 7,252,248,241, 3, 88, 75, 1,235, 42,200,117,155,240, 75,225,129, 12,252,165, 63,164, 82,199, 28, 11, 66,
+158, 25, 38, 21,144,173,145,248, 57, 0, 96,125,236,237,237, 13,204, 65, 92, 92, 92, 14, 14, 14,192, 16, 0, 70, 25,176,134, 94,
+176, 96, 1, 19, 19,109, 55,141, 2,203,122,248,240, 17, 36, 3, 18, 95,157, 0, 27, 52,143, 30, 61, 10, 15, 15,103, 0, 95, 58,
+ 13,186,122,108, 20,160,245,131,113,220, 11, 15, 16,128,188, 51,200, 65, 24, 4,162,232,222,211,168,123,227,185,186,225, 46,108,
+ 12,135,168,149, 35,116,197, 41, 88, 17,182, 70,159,153,132, 16,172, 21, 48, 38, 38,254, 21,105, 55,147, 38,243,102,134,161,204,
+175,255, 9,220,209, 9, 64,245,201,123,130, 69,170, 91,235,233, 47,218,239,182,231,233,114,154, 54, 18, 15,168, 6,154, 76, 5,
+ 67,227, 56,202, 62, 62,238, 87,151, 24,222,210,199,233,160,191,164,255,207, 67,225,177, 65, 94,117,232,237, 80,120, 32, 34, 11,
+252,115,158, 31,195,205,141, 49,233,225, 87,135,194,167, 51, 63, 69,212, 92,111,182,147,254, 67,121, 44,244,222, 75,175, 30,197,
+ 24, 67, 8,240,133,106,128, 10,224,250,122,220, 80, 14,235,162,111, 95,156,235, 95,143, 34,185,217, 53,199, 70, 63,148,214, 26,
+238, 67,127,231,156,181, 22,250, 43,165,136,205,195, 48,212, 4,128,195,146,154, 98, 0,110,216, 74,127,217,132, 20,250, 35, 22,
+199,150,187,187,255, 68, 84, 0,169, 19,144,235, 46,128, 6,233, 36, 48, 37,165, 63, 48, 13,145,209, 77,134,140, 5, 1,187, 2,
+196,151,254,192,226, 30, 88,250, 67, 71, 57,214,173, 95, 11,190,197, 15, 88, 25, 48, 56, 57, 50, 48, 16, 94, 6, 10, 89,149, 8,
+ 25, 11, 2, 54, 81, 33,151,160, 2,139, 96, 34,146, 47,168,168,133,223, 11, 79,106,233, 15,105,254, 99,109,236,147,215, 9,128,
+ 84, 27, 57, 57, 57, 56, 3, 42, 56, 24,249, 82,248,152,152, 24, 6,140, 75,225, 99, 99,113,222, 27, 65,225, 28, 0, 3, 89,151,
+194, 11, 11, 11,191,125,251, 22,216,222,127,253,250, 53,176, 7, 0,191, 20, 30,216,111, 3,198, 23,176,244, 7, 86, 3,104,131,
+251,200, 0, 82,202, 67, 70,129,208,110, 34,195,163, 11,173,244,135,108, 2, 64,230,146,209,240, 39,126,252, 7, 8,110,223,190,
+ 13,140, 14,160, 7, 45, 45, 45,129, 36, 48,208,128,229,233,166, 77,155,152,153,153,137,169, 0, 40,105,197, 35,155, 64,146, 46,
+ 99, 48, 0, 50,206,157, 59, 7,116,179,141,141, 13, 48,105, 1,123,153,200, 11,166, 71, 44,128,172, 2, 66,155, 4, 70, 94, 5,
+ 4, 16,128,189, 43, 72, 97, 24, 4,130, 31,240, 9,130,207,240, 44,248, 35, 95, 41,248, 4, 79,126,195, 75,167, 25, 88,182,181,
+196, 77, 14,165,135,238, 73, 66, 2, 97,163, 51, 19,119,100,127,183, 8,252, 77,244,215, 28,112, 73,251,127, 28, 63, 57,192, 54,
+113, 57,128,224,210, 71,198,106,173,219,103,215,190,240,116, 4,109,223, 95,154,194,175, 26,138, 70,186, 19, 79,222,122,242,139,
+116, 2,100, 4,250,203,134,210, 26,248,142, 33, 4,246,127, 7, 1,208, 11,164, 47,234,150,226,239, 92,247,122, 14,192, 94, 3,
+208,147, 16, 57,201, 57, 3, 17,244,142,217,121,174,188,247,189,119,118, 94,155,115,146,129,164, 41, 60,107,194, 70, 51, 79, 62,
+ 66,244,187,101, 39, 71,224, 30, 55,235, 69,116,219, 78,106, 12, 58, 62, 75, 41,144,255, 41, 37,240,129,115,110,140, 97, 36, 0,
+ 65,112, 10,169,123, 37,129,171,218,159,235, 8, 25,107,173, 97, 0,232,143, 49, 34,111,248,149,249,215,129,183,241, 16, 64, 44,
+152,249,141,108,179,208, 82, 39,114,251, 5,185, 89, 68,187,210, 31,152,236, 40, 92, 42, 71,146,246,199, 79,112,142,215,115,114,
+114, 17,212,142,117, 96,154, 72, 0, 44, 80,128, 37,254,222,189,123,225,247,194,195, 23,131, 18, 83,135, 97,189, 20, 30,178,227,
+134,224,166, 48,204, 74, 61, 55, 55, 23, 79,233, 15, 1, 66, 66, 66,144, 33,126, 96,107, 26,185,225, 95, 83, 83,131, 63,201, 81,
+184, 15, 0, 57, 52,208,182, 74, 16,172,239,129, 93,177,109,219,182,253,249,243,231,195, 7,200,165,240, 32,151, 0, 59, 4, 64,
+ 46,144, 77,124, 67, 30,104, 47,242,210, 79,228,233, 1,252,165, 63, 3,185,115, 60,148,215, 1, 21, 21, 21, 7, 15, 30, 4, 70,
+ 83,123,123, 59,176,197, 0,236, 0, 65,182, 68, 16, 28,226, 35,163, 21,143,172,151, 84, 0,172,153,158, 62,125,138,188, 15,224,
+226,197,139,192,174, 27,176, 85, 65,228,186,213,145, 0,208, 38,129,145, 1, 64, 0,177,224, 47,196,113,245,109,105, 13,200, 40,
+253,233,156, 79, 90, 90, 90,240,239,111, 36, 88, 89, 82, 50,164, 11, 41, 52, 33,203,240,129, 12,200, 94, 48,248,189,240,120,202,
+ 53,200,197,238,192,194, 11,121, 14, 0,210,188, 45, 43, 43,195, 95,218, 98,213, 75,234,144, 17,145, 13,127,106,117, 73,145,195,
+ 1,243, 82,120,252,117, 0, 48, 88,188,189,189,129, 45, 89, 54, 54,182,159, 63,127, 2,235, 0, 96, 8, 11, 8, 8, 0, 11, 44,
+ 60, 7,117, 32,231, 35,248,244, 47,208, 94,160,122,120,222,193,149,203, 32, 73, 2,109,219, 48,169,115,191,152, 99, 62, 36,141,
+ 2, 65,234, 0,248,230,175,172,172, 44, 8, 3,216, 19,194,163,229,217,179,103,200,187,189, 86,172, 88, 65,240,132, 31, 92,122,
+ 73, 2, 23,192, 0, 77,240, 9, 24,140,150,251, 12, 72,119, 2, 35, 23,253,200,171,128, 0, 2,136,133,138,229, 59,166, 94,250,
+212, 22,244, 47,253,129, 64, 20, 12,200,214,174, 4, 6,212,114, 12,124,252, 7,185,236,195,122,217, 39,217, 71, 62, 80,168, 23,
+107,111,128, 72, 64,246, 28, 0, 90,146,192,218,229, 34,152,108,128,221,202,187,119,239,238,223,191,255,251,247,239,127,255,254,
+ 53, 48, 48, 8, 11, 11, 35, 24,119, 39, 78,156,128,119, 35,224, 34,200,108, 92,169, 2,222, 56,128,212, 28,192, 28, 68,176,178,
+129,131, 48,202,238, 79, 38, 59, 7, 73, 75, 75, 7, 6, 6,226, 87,211,220,220, 76,117,189,163,128,164, 58, 0,179,244, 7, 2,
+128, 0, 98,161, 86, 25, 58,122, 90,211,128, 3,180, 40, 32,254, 72,216, 33,228,169, 1, 49, 74, 25, 12,136, 87, 15,236,223, 16,
+121,206, 15,158,198, 1, 25,213, 45,181,106,104, 82,129,152,152, 24,217, 97, 75,137,222, 81, 64,124, 29,128, 75, 10, 32,128, 70,
+ 47,133, 31, 5,163, 96, 20,140,130, 17, 10, 0, 2,104,244, 70,176, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128, 70, 43,128, 81,
+ 48, 10, 70,193, 40, 24,161, 0, 32,128, 70, 43,128, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128, 70, 43,128, 81, 48, 10, 70,193,
+ 40, 24,161, 0, 32,128,104,120, 41,252,232, 5,220,163,122,135,168,222,205,126, 83,136,215,235,187, 41,135, 90,122, 55,250,146,
+160,215,127, 51,138, 94, 31, 27,208,245,162,140,140,140,191,127,255,190,127,255,254,175, 95,191, 88, 88, 88,158, 60,121, 18,201,
+175,176,243,204,153,239,122,178, 22, 22, 22,204,204,204,144, 69,180, 91,142, 60,165, 86, 88, 65,236,133, 3,200, 14,149,171, 87,
+175, 74, 73, 73,189,123,247, 14, 72,114,114,114, 50,192, 54,244,161,217,139, 85,239,227, 43, 75,210,109, 31, 45, 59,163,198, 34,
+230,198,195,203,135, 75,239,104,122, 38, 94, 47, 30, 0, 16, 64, 36, 28, 5,129,127, 83, 34, 21, 47,224,150, 56,113,237,206,171,
+231,156,108, 28,234, 92,252,119,236,116,232, 86, 25, 14,137, 11,184, 7, 27,184,121,243,102,127,127,127,111, 21,136,189,225, 48,
+232, 12, 0, 60,138, 31, 60,121,252,244,201,147,155, 55,110,188,127,255, 94, 94, 94,158,135,151,215,195,213, 13,191,249,144, 35,
+146, 32, 0,215,229,101, 64,113,226, 99, 10,178, 11, 26,235, 29,194,248, 64,232, 59, 48,245, 31,116, 16,211,106, 33, 18, 52, 26,
+247, 51, 40,197,131,147,215, 2,134,179, 69, 36,135,111,200, 27,132,189,107, 68,240, 40, 4,150,158, 95,191,126,221,181,107, 23,
+ 48, 25,135,178, 10, 75,200,138,254,248,250,157,243,219, 31,235,146, 84, 59,223,240, 45,115,103,108,222,187,215,205,205,141, 14,
+ 73,226,239,223,191, 64, 55,232,235,235,171,169,169,157, 59,119,238,199,143, 31,170,170,170,152,135,195, 99, 5,127,254,252,185,
+120,230,188, 76,178, 97,153,153,246,137, 93, 61,107, 47, 59,168,234, 56, 17,169,119, 20,144, 1, 0, 2,136,168, 10,128,152, 35,
+125,168,114, 1,183,234,185,187,130,111,191, 48, 50,252,255,245,151,249,247,187, 47, 79,222,124,124, 48,229, 44,143,163,185,136,
+182, 6, 30, 93,103,247,167,107, 64, 87,105, 51,175,223,245,239,240,233,255,105, 17, 12, 64,145,162, 86,210,138,114,146, 46,224,
+198, 85,115,208,250,202, 14, 6,200, 49,150,245,140,140, 77, 88,164, 64,249,164,158, 49,236,122, 40,125,150,132,195, 74,255,255,
+224,210,223,238,200,145, 35,120, 42, 0, 61,253, 93, 90, 90, 38,171, 87,243,157, 60, 14,218, 6,117,235,198, 77, 32,153,146,184,
+238,227,151,156,207, 31,240, 85,243,174,174,174,192,106, 0, 88,202,239,219,183, 15,235, 73,121,196,111,250,199, 76,201, 25,233,
+233, 51,136,171, 60,144,175,161, 39, 1, 40,197, 35, 14,101, 35,163, 2,128,249, 14,207,201,163, 16,112,247,238,221, 3,171, 86,
+ 53,185,132, 25, 68,103,177,137, 11, 50,176, 48, 49, 48, 48, 49,252,251,207,240,143,245,223,207,255, 94,241,105,143, 38,117, 28,
+ 59,118,204,202,202,138,214,133, 41, 19, 19,147,129,129,193,129, 3, 7,128,117,128,153,153,217,139, 23, 47, 46, 94,188,168,167,
+167, 71,204, 49, 51, 64,207, 58, 59,185,182,247,109, 42, 79,184,108,225,145,105, 97,190,167,100,242, 19, 53,211, 56,172,122, 33,
+177,137,191,122, 0,202,146, 92,217, 15, 35,128,118, 33, 48,162,239, 5, 91,253, 15, 16, 64, 44, 68,102, 24,131, 56,221, 76,235,
+ 28,226,235, 0, 50, 46,224,150,185,251,210,136, 83,144, 77,146,255, 47,195,127,206, 15, 92, 47, 94,191,126,241,249,163, 34, 59,
+207,141,157, 71,128,209, 43,138,187, 14, 0,150,245, 55,238, 50,253,255,207,241,151,145, 61,192,245,119,160,219,119, 6,134,127,
+176,118, 19,137,185,149,196,178, 27,126,100, 35,228, 32,170,173, 55, 88,127,252,254,157,158,104, 66,176, 26, 32, 88,167,226,219,
+255, 89, 15,202, 12,144, 91,144,176, 74, 17, 3,110,239,229,235, 89, 21, 9, 97, 23,135, 46, 87,115,249, 68, 70,233,223,215,215,
+ 7,204,237,197,109,208,139,159,240,228,112, 7,135,143,106,106,192,166,247,102, 91,219, 73,112,193,168, 40, 6,240, 29,110, 83,
+150,175,194, 87, 7, 64, 74,127,200,193, 94,225,225,225,144, 83,143, 8, 22,136, 88,219,254,144, 3, 51,224,238,204,200, 32,182,
+244, 39, 19, 24,247, 49,192, 46,106, 7, 85, 0, 70,189, 12,231,138,105,100, 21,176,118,156, 30,152,166,232,228,202,192,252,147,
+145,149,137,145,133,137,145,153,245,255,127,198,127, 95,255,252,255,251, 23,216,164, 74,141,207,202,170,203,191, 43, 46, 78,210,
+166, 54, 50, 0, 48, 47, 72, 74, 74, 2,195,249,224,193,131, 55,110,220, 0,214,223,150,150,150, 39, 79,158,212,214,214, 38,168,
+247,200,222,229, 65, 6,223,206,126,102,142,170,255, 98, 99, 56, 49,167, 32,188,167,252, 67,121,207, 82, 37,195, 40, 60,133, 59,
+188,120, 1, 70, 49,154, 8, 37,231, 81,142, 4, 0, 16, 64, 44,196, 20, 82,203,118, 44, 85, 86, 81, 78,111, 74, 37,166, 14, 32,
+239, 2,110,133, 27,207,212,217,184,217,254,255,225,236, 41,253,243,237, 23, 71,113, 43, 63, 27,199, 15,214,239, 95,127,124,231,
+100, 96,124,126,240, 4,155,140, 36, 63, 63, 63, 86,189, 55,238, 50,204, 90, 1, 44,241,191,129, 17,131,173, 41, 83,160, 27, 35,
+172, 14, 96, 0,246, 6,102,173, 32, 42, 44, 72,189,128, 27, 82,250, 67,138,126,144,223,143,252,254,254, 11,116,193,175,115,249,
+238,206, 78, 87,130,230,220,237,184,203,202,120, 27, 26, 13,140, 79, 25, 69, 52, 96,236, 87,162,137,248, 54,199, 3,219,254,200,
+151,153,160, 72,165,175, 6, 75,225,107,254,191,185, 44, 89, 51,197,255, 63,195,255,246,130, 13,230, 14,106,203,166, 29,238, 93,
+ 29,197,176,250,127,125,209, 52, 41,117, 98,155,210, 95, 30,166, 75,115, 48,124,123,123, 21,216,248,226, 21,211,131,148,254,211,
+167, 79,199,170,152, 87,224,138,154, 26, 48, 70,142, 1,251, 9, 39, 79, 50,128,239,236, 3, 1,248, 14,255,200,176, 41, 51,230,
+ 84, 51,253,147,197,170, 29, 82,250, 3,219,254,192, 50, 5,207,189, 99, 4,155, 50,144,210, 31,169, 62, 72,159, 49, 3,123,178,
+100, 10,123, 15,111, 62, 48,130,241,191, 80, 84, 89, 70,200,168, 12,136,242, 70,237,243, 48,133,191,135, 12,216, 0,193,191,127,
+ 9, 5, 5, 5, 16,113, 32, 3, 88, 19, 48,169, 38, 67, 13, 6,171, 65,211,203, 18,142,110, 47,242, 61,140, 32, 89,220,246,254,
+248,241, 67, 66, 94,129,225,223, 47, 38,118, 6, 70, 22,230, 63,159, 63,254,184,119,255,245,147,167, 50, 86, 14,140,108, 2,140,
+191,127, 49, 48, 51,117,102,150,184,206,106, 40, 42, 42, 34,187,188,192,117,196, 8,188, 68, 6,166,135,239,223,191, 11, 9, 9,
+ 1,219, 7,192,208,190,127,255,254,130, 5, 11, 52, 53, 53, 63,124,248, 64,176,131, 5,212, 43,207,116, 82, 82,206,227,195,193,
+203, 31,223,179, 47,222,242,103,219,137, 37,121,161,156, 44,223,128,177, 22,133,189,191, 59, 10,240, 2,204,200, 66,235, 19, 0,
+ 4, 16, 11,254,162, 31, 24,196,142, 85,246,179, 14,206, 76, 99, 72,191,176,232, 50,131, 53, 97, 43, 33,229,254,183,111, 75,129,
+113,250,227,199, 60, 33,161, 61,196, 92,192, 45,246,252,157,152, 56, 7, 71,125,214,223, 55,239,254, 60,123,195,194,198,202,197,
+200,204, 13, 68,204, 44, 66,172, 28,239, 63,127,120,190,239, 24,127,160, 39, 86,189,104,229,251,225,211,255,192, 21, 0, 67, 95,
+ 53,227,127, 70, 6,198,255,196,118, 5, 72,189,128, 27,185,244,103, 96, 97,190,247, 28,148,123, 31,189,252, 33, 39,206,161,154,
+176,185,179,211, 23,191, 33,192,210, 31, 88,238, 51, 51,190,249,251, 95,132, 93,140,145, 59,226,217,191,127,239,126,252, 88,253,
+247, 76, 25, 37, 61, 21,130,181, 87,245, 20, 63, 75,161,154, 41, 27,146,121,152,228,128,220,172, 92,117,125, 51,165,165, 83, 15,
+ 54,246,101,207,156, 73,108,103, 25, 88, 4,165, 23, 94,129,228, 91, 27, 27, 27, 96, 5,128,171,244, 7,213,136, 14,111, 25, 24,
+ 46, 49, 48, 92,249,240,146, 71, 85,142, 97,246,236, 47,251,247, 51,168,170, 2,157, 10,138, 38,160, 32,168,139,169,123,253,210,
+ 69, 89,172,165, 63,176,109,251, 15, 12, 24,192,247,201,144, 90, 96,193,217,200,165, 63, 3,104, 26, 0,103,236, 0,187, 5,144,
+ 50, 28,107, 45,251, 15, 86,238, 0, 27, 59,192,112,216,124, 8,101,194,109,250,140,153,144,254,133,130,130, 2, 48,251, 76,156,
+ 56, 17, 34, 14,100, 0, 43,128,157, 59,119,194,207,173,100,192,208, 11,233,142, 0,117,165,166,166, 98, 25, 31,135,117,122,102,
+205,158, 13,180,119,203,225,167,104,165, 33, 11, 47, 47, 3, 43,243,223,111, 31,174,111,219,187,116,213,154,105,207, 64, 22,157,
+106,228, 83,181,243,250,249,232,241,213,139,103, 47,223,191,245,241,197,139, 43, 87,128, 17, 39, 65, 70,105,130,121,236, 26,102,
+ 9,254,236,217,179,218,218,218,158,158,158, 95,191,126, 49, 51, 51,243,242,242,126,253,250,245,212,169, 83,248,147, 37, 68,239,
+135, 39, 71, 27,231, 63,154, 91, 32,245,238, 43, 27, 27, 11,147,140, 32,199,139, 55,191,210,187,254,232,155, 24,203,225,238,213,
+ 65,170, 1,120, 68, 99, 50, 70, 1, 90,233,143, 92, 43, 0, 4, 16, 19,174, 60, 3, 57,247, 28,209, 91,247,136, 38,198, 2,200,
+ 13, 48,223,190, 45,131,148,254, 28,167, 31,124,219,169,194, 64,232,102, 24,150, 3,103,249,223,125,254,199,198,242,235,236,213,
+159,215,239,253,216,117,152,225,251, 79,182,255,255,185, 24,152, 89, 24, 24,127,254,251,243,238,231,143,105,187,183,224,210,222,
+ 87, 13,106,230, 35,134,200, 35, 96,237, 43,134,255, 55,239,252, 47,106, 37,161,153, 0,185,128, 27, 18, 8,248, 79,235, 4,202,
+ 34, 95, 42, 18, 57,225,201,222,179,239,129,165, 63,164, 14,184,253,228, 59,131,203, 42,252, 38, 0, 75,127, 80, 53,240,249, 50,
+ 55,247, 29,118,142,207,192,210,255,247,239,179,204,204, 74,191,190,190,165, 93, 10,184,123,254, 11, 48,100,224,165,255,243,155,
+255,141,124,153,115, 91, 92,109, 92,129,221,243,255, 96, 89,194, 96,217,178,101,197,109,140, 60,162,186,192,144,245, 8,204, 60,
+114,228, 8, 30,197,255,152, 30,139,137, 65, 75,255,207,111, 65,167,100,235,235,131, 74,255,184, 56,104,233,255,249, 45, 39, 16,
+ 9,113, 61,199,170, 61, 36, 36,196,209,209,209,201,201, 41, 60, 60,156, 25, 21,192, 69,240,187, 22, 45, 37, 19, 91,195, 33,149,
+ 77, 16,128,201,101,196,214,180,128,107,116,115,115, 67,107,107, 3, 59, 1,144, 99,251, 96, 46, 67,215,187, 97,230, 76, 96,233,
+ 12, 49, 28,238, 77,248,224, 56,156,139,213, 94, 96,126, 97,226, 98,255,253,226,225,204,154,154, 5, 95, 63,188,183,183,128,136,
+207, 93,178,160,161, 36, 69,173, 40,178,233,242,190, 85,239,239,187,250,249, 17,217,193, 5, 22,247,192, 92,112,254,252,121,164,
+ 42,115, 6,214, 81, 62, 72,128, 92,190,124,249,224,193,131,145,145,145,192, 94,218,151, 47, 95, 32, 7,104, 3,251, 37, 60, 60,
+ 60, 97, 97, 97,214,214,214,184,138,126,144,222,227,107,111,237, 44, 42,170,236,221, 92, 47,117,253, 41,203,199, 47,204,255, 24,
+ 25,222,126,249,245, 95, 88,185,176,170,213, 39, 32, 6,103, 85, 13,172,198,193, 25,118, 38, 24, 96,101,140, 2, 92,165, 63, 16,
+ 0, 4, 16, 11,214,162,159,140,142, 33,154, 8,176,244, 71,235, 22,224,185,128,155,229,237,135,119,255, 89,217,222,190,227,216,
+176,143,145,133,137,225,199,175,255,159,191, 50,254,249,195,202,192,240,247,255,191, 31,127,255,124,254,243,139,225, 31,206, 49,
+ 95,200,100,111, 95, 53,150,212, 5,158, 28, 38,217, 59,196, 92,192,141,210,252,103, 96, 88,158, 35, 9,103,155, 84,220, 99,253,
+255,230, 55,163, 8,193, 43,188, 57,190,236, 23,106, 90,242,186, 56,227,205, 59, 78,169,223, 87,255,254, 5, 85, 24, 15, 47, 72,
+208, 46, 17,116,205, 40, 78,113,155, 9, 47,253, 33,130, 22,130, 53, 86,218, 33,150, 66, 87,129,178, 4,243,204,210,165, 75, 15,
+ 29, 58,244,246,173,179,176,240, 94, 30, 17, 29, 96,106, 97, 98, 98,194, 51,207,246,232, 17,176,178,188, 2, 25, 55, 2,122,248,
+221, 87, 6, 51, 51,240, 36,196,109,134,169, 83, 25, 62,127, 98,248,250,133,225,203, 87, 6,110, 65,124,147, 16,152, 35,254,119,
+239,222, 5,146,109,109,109, 64, 82, 77, 77,141,188,209, 12,120,116,227, 81,150,159,159, 15,111,197, 35, 23,229,248, 13, 87, 84,
+ 84,132,143,254,195, 1,164, 19, 0,148, 66,116, 2, 80, 65,178,180,218,173,171,215,158, 10, 10, 2,131, 52, 47, 47,111,210,164,
+ 73,196,219,107,251, 83,224,255,191, 47, 41,109,213,186, 33, 33, 51,219,218,224,247,183,204,188,125, 5,218, 51, 62,124,120,247,
+238,221, 64,171,193, 25,252, 27,193,210, 31,210,165, 3, 6, 14,176,149,109, 96, 96, 0,172, 9,128, 26, 51, 51, 51, 31,127,198,
+ 82,197, 62,121,242,196,223,223, 31,232,181,109,219,182, 65,174,204,100, 0, 47,233, 97, 0,223, 35,132,103,158, 22, 40,126,239,
+230,133,134,178, 36, 97,213,213,231, 87,199, 95,122,204,248,232, 37, 11,195,127,166,159,191,126,191,251, 47,156,157,156, 69,222,
+ 18, 32, 74,238, 53, 25, 81, 0, 32,128,176, 12, 1, 1,171,113,100,238,135,167,239,137, 41, 49,225, 61, 0,240, 16, 16, 40,194,
+128,205,127,246, 43, 79,255, 10,128, 26,125,248, 47,224,190,246,228,209, 55,118, 78,165, 63,127,100, 56,121,184, 88,217, 24,127,
+255, 6,118,179,129, 29,222,207,127,127,125,251,251,231,231,127, 96,238,255,255,159, 80,140, 2,171, 1, 72, 29, 0,158, 18,128,
+150,251,125,213,204,189,213,140,197,173,127, 72, 13, 23, 98, 90, 73,229,171, 65, 33,211, 25, 42, 8, 41,244,161, 3, 59,255,223,
+ 0,235, 45,150,255,239, 23,165, 8, 70,226,189,147,142,245,229,233,191, 12,160,209,143, 30, 22,254,200,151, 15,207,116,201,112,
+ 75,104,126,124,250,244,197,131,103, 52,141,114,125, 51,165,175,224, 40,253,198,121,141,235,187,214,186,198,223, 16,113,107, 23,
+237,227,171, 8,183,253, 3,237, 14,109,216,224, 34,112,124, 79,127, 53, 67, 97,235,127, 59, 59, 59,252, 75, 63, 21,100,100,145,
+ 39, 29,183,108, 1,205,253, 46, 91, 6,236, 4,252,159, 48,129,177,169,233, 11,168, 98, 96, 96, 80, 85, 23, 44, 46,196,103, 53,
+164,241, 11,236, 16,172, 92,185, 18,222, 46,246,240,240,192, 44, 37,137,175,230, 9,170, 1,150,152,192, 34, 27,179, 2,232,235,
+235, 67, 94,159,138, 9, 92, 92, 92,224, 87,177, 35, 3,160, 96,127,127, 63,174, 14,241,161,107,143,170,154, 74,146,235,203, 42,
+127,253, 2, 90,138,233, 53,160,189,123,246,236,193, 90, 38,218,105,201,205,155, 59,213, 56, 42,170,177,177, 17,107, 61, 1, 20,
+ 4,106,159, 61,123, 54, 49,129, 3, 44,253, 33, 83,172,192,106,114, 6, 12, 0, 69,128, 53,193, 99,108,107,204,127,255,254,189,
+101,203, 22,103,103,231,219,183,111,127,253,250, 21,200, 5,214, 64,191,126,253,130, 92,155,131,191, 4,255,249,243,231,217,181,
+ 81,118, 65, 77, 59, 15,222,189,255,156,249,211, 87, 38, 96,199,255,233, 87,206,188,138,106,130,122, 33, 83, 59,248,199,130, 70,
+ 1,174,230, 63, 16, 0, 4, 16, 19, 90,150, 0, 2, 7, 48,184, 8, 3,247, 78, 63,252,248,253,163,176, 25, 81,107,159, 33,165,
+ 60, 23, 87, 52,176,244,103,125,248, 22, 88,106,179, 37,191,101, 32,116, 1, 55, 43, 27,243,223,255, 12, 79,190,126,120,244,241,
+221,235, 79,239, 63,254,248,241,254,215,247,215, 63,191, 63,255,241,237,233,143, 47,239,126,255,124,255,239,247, 47,212, 1, 92,
+148,182,143, 41,246, 41,129,148,112,158,255,192,158, 49, 3, 27, 49, 46, 39,227, 2,238, 71, 47,127,236, 61,251, 30, 94,244, 67,
+ 74,127,246,127, 15,129,168,193,157,229, 17,176,233,139, 23,172,189,255, 79,180, 23,218,112,190,255,245,239,147,187, 79,111, 30,
+189,250,226,193, 7, 90, 39,133,101,211, 64, 21,252,167, 87,255,129,165,191, 67, 50, 75, 80, 61, 43, 4,245,174,138, 98,100, 96,
+196,159,217,252,109, 14,198, 23,185, 8,158,216, 11,204,117, 27,143, 58, 48,128,143,203, 39,104,163,154,134, 58, 82, 21,194, 48,
+101, 10,195,157, 59,160,126, 64, 99,227,127, 56, 16, 20, 20,196, 57,136, 4,142,250,191, 96, 0,108,242, 3,219,254,183,192, 0,
+ 88, 20,150,148,148, 16, 12,103, 74, 0,164,169,142, 86,158, 2,251, 4, 64,239,227,106,197,195, 91,160,104,205,127, 8,192, 42,
+ 8, 7,135,217, 63, 48, 50,241,204,169,106,229,217,178, 7,152,101,224,103, 74,167,171,234,228, 27, 91,113,113,113, 1,171,219,
+218,218, 90,160,199, 49,111,209,154,251,244,214,115,109, 45,105,105,105, 96,112, 97,214, 88,144,254, 7,241,125, 35,248, 2, 27,
+ 96,147,159, 1,182,121, 2,235, 69,114, 16,207,202,202,202, 2, 35, 2,216,201, 80, 81, 81, 97, 97, 97,129,212,208, 22, 22, 22,
+196, 52,213,149, 53, 12,103,237, 18,184,180,173,222,214, 82,147,155,131,137,155,235, 47, 39,251, 79, 79,127,162,238, 54, 0,150,
+ 87, 16,119,226, 25, 11, 26, 5,120, 0, 64, 0, 49, 97, 13, 83, 32,200, 7, 3, 32,183, 57,163,249,247,171, 63,156,156, 28, 68,
+134, 38,164,206,231,114,191,243,159,153,169,118,221, 55, 6, 34, 46,224,214,180,178,250,195,195,245,254,255,223,107, 95,223, 95,
+249,248,246,234,167, 55, 87, 63,189,187,246,245,221,157,111,239,223,254,252,241,229,207,159,103,223,190,226,185,129, 47,208,141,
+ 17,216,210, 7,162,255, 12,204,255, 25,153,210, 34, 24, 83, 35,216,146,195, 69,149,149,197,255, 49,176, 50, 48, 48, 18, 83,250,
+147,122, 1, 55, 80, 49,104,160,159,129,225, 76, 7,168,175,176,179, 20,180, 66, 9,216,240,103,254,255,245, 39,147, 60,144,253,
+238,221, 59, 98,110,112, 5, 6, 14, 48, 63, 47,251,242,245,251, 47,166,248, 21,115, 94,113,112, 2, 25,180,139,239,146,176,229,
+199,223,181, 46, 91, 12,109,234, 3,155,255, 22,130, 53, 16,118,107,246,150, 25,184, 39,129,129,133, 66,127, 13, 67, 66,145,179,
+192,137, 61,142, 93,246, 76,222, 12, 7, 14, 28, 32, 50, 73,200,203,203,195,217, 78, 78, 12, 2, 2,192, 14, 22,131,185, 62, 47,
+ 7, 27, 51, 51, 19, 52,118, 76, 76, 77,113,166, 81, 38, 38,200,136, 63,176,232, 87, 67, 2, 77, 96,240,236,217, 51,130, 69, 12,
+242, 32, 62, 28,100,100, 16,213, 66, 4,182,244,209,110,212, 2, 22,226,248,155,255,200,115, 15,240, 6, 44,132,253, 15,119, 59,
+ 6, 8,126, 49, 50,254,251,246,147, 85, 66, 62,189,165, 37,129, 91, 64,224,192,113,232,208, 80, 76, 66, 67,207,156,219,125,203,
+235,116,157,194, 4, 21,119,111,218,132,217, 64, 9,200, 72,215,214,209,129, 76, 80,255,133, 1,248, 0, 26, 50, 23,235,128, 15,
+176,112,135,204,241, 66, 6,253,225,101, 61,176,201, 15,105, 92, 3,107, 2, 32, 27,151, 79, 89, 89, 89, 3, 2, 2, 62,126,252,
+ 8,172,153, 56, 57, 57, 69, 69, 69, 5, 4, 4,240,223, 34, 9,215,203,206,206, 30,156, 49,105,193,105,147, 7,143, 63,137,243,
+ 51, 91,170, 51,234, 41,254,231,230,227, 27, 45,157,105,221,252, 7, 2,128, 0, 98,193,223, 65,134, 55,138,101,236,165,136,108,
+ 59,192, 47,224,102, 75, 94,205, 64,220, 5,220, 95,244, 85,190,221,186,245,237,207,207, 79, 95,191,221,253,253,155,245, 31,104,
+248,230,227,239, 31,255,192,185,103,219,203,251, 95,255,252,198, 59, 38,195, 88,212,138, 72,220,224,129,160,127,127, 25,126, 94,
+191,243,121,222,202, 79, 68,150,254, 12, 36, 94,192, 13,114, 79,103, 24,171,243, 52, 32,243,237, 91,232,180, 45,219,191,231,191,
+152, 36,179,117,111, 61,127, 14, 42, 38,240,151,143, 25,235,102,193,171,198,213,176,251,106, 87, 92, 62, 70,211, 61, 92,170,206,
+159, 24, 86,253, 63,186,231, 42,144,109,165, 13,218, 85, 91, 86, 80,127,236,170,118,207,170,168,170,169,222,248, 29, 12,108,251,
+ 11, 9, 65, 70,181, 14,128,107, 56,151,255,255, 87,131, 11,214,255,171, 87,227,187, 32, 55, 36, 40,120,247,206, 93, 12,224,133,
+255,142,142,140,111, 30,243,127,125,207,241,253, 19,219,138,133,140,249,249,255, 31,190,250,108,110,105,161,167,173,131,127, 14,
+ 0, 50,232, 15, 76, 87, 12,224, 75, 4, 33,226,175,192,128,152,113, 30, 96,204, 2, 43, 18,228,242, 23,216,100, 36,102, 23, 24,
+100,208, 28, 62, 19, 0,233, 13,224,111,254, 51, 32,173,122, 64, 94,207,131,127, 41, 4,164,174,250,243,249, 51,171,136, 16, 51,
+ 23,143,118,112, 72,147,155,107, 21,100, 41,167,161,209,223,239, 63, 88,133,197,117, 45, 28, 20,100, 20, 39, 93, 63,174,163,163,
+243,252, 52,202,141,164, 25,160,164, 11,170,228,178,128,101, 55,120,181,232, 31,164, 18, 31,216, 40, 7,138,192, 23,152,122,163,
+150, 5,192,146, 29,232, 71,200, 56, 15, 48,196, 32, 67, 61,200,178,120, 74,127,136,179,129,197, 61,176,189,127,227,198,141,115,
+231,206, 1, 35,139,155,155,251,219,183,111, 68, 14,214,139,139,139,251,251,251,159, 56,114,106,194,234,221,124,140,108,234,226,
+ 63,239,188,225,182, 81,255, 13,175, 33,112, 13,232, 3,197,225, 25,118,116, 8,136, 60, 0, 16, 64, 44,196,140,147, 2,131,242,
+201,193,103, 12, 81, 68,149,254,240, 18, 13,205, 28,252,117,128,148,152,248,229, 31, 15, 62, 50,253,123,241,227, 11,195,239,223,
+127,129,177,206,192,112,253,203,135,167,223, 62, 65, 46,224,198, 91, 1,252, 7,182,250,103,173,128, 54,181,110,220,101,208, 80,
+254,195,204,240,149,164,210,159,129,244, 11,184,193,107, 70,179,128,125, 0, 96, 99, 31,216,255,237,116,101, 40,223,109, 87,160,
+115, 12,210, 72, 36,216,252, 71,238, 24, 33,179, 33,101, 28,254, 70, 19, 67, 61,163,201,172,123,152,115, 21,208,157,192,123,240,
+ 93, 14,213,150,189,165,122,170,239,241, 85,255, 45,133,174, 90,187,104, 31,217,125,245,196,251, 22, 70, 6,198,214,236,205,192,
+162, 21,143,189,192,210, 31,152,229, 2, 3, 3,103,207,254, 4,201,146,140,176,245, 40,161,161,136,232,222,124,216, 18, 83,111,
+118, 94,238,212, 73,147,129,205,255, 95, 47,100, 31,127, 96,255, 7,234, 59, 49, 72,126, 21, 47, 77,251,188,251,132,186,150, 37,
+190, 58, 15, 82,244, 67,110,121,125,241,226, 5,164, 79,240,242,229, 75, 6, 82,230,250, 32,147,153,104,163,231, 51, 64,130,233,
+120,214,131,194, 99, 4, 62, 19, 0,236, 13, 16,211,252, 71, 46,164,136, 87, 12,108, 50,191,120,248, 64, 81, 89,245,223,159,159,
+140,127,254,178,240,242,241, 26,153,240, 24,154,254,251,250,231,239,183,159,255,255,252,101,248,251,175,124,122, 79,120, 84, 56,
+102,227,250,207, 10, 65, 60, 38,163,201,250,111, 70, 87, 0, 44,226, 33, 35,254, 12, 72,247, 0, 35,215, 1,248, 61,168,174,174,
+ 62,121,242,228,215,175, 95,187,186,186,158, 57,115, 6, 88,250, 3,181, 16,188, 51, 21,162,215,194,220, 60, 35, 57,227,254,147,
+251,177,201, 25, 39,119, 47,124,254,249,157,137,189,171,184,140, 26,122,194,198,150, 17,224, 5, 20,230,254,175,209,141, 96,196,
+ 0,128, 0, 98, 33, 50,243, 16,217,246, 71, 46,209, 72,186,128,251,167,189,177, 26,131,241,211,153, 11, 24, 56, 57,222,255,255,
+243,235,207,159,127,255,255, 9,243,243, 63,249,250,145,224,157,168,104, 11, 61, 97,115, 0,127, 73, 42,253, 25, 72, 63,197, 1,
+178,111,192,196, 4,180,239, 87, 72, 72,232,249,243,231, 5, 58,207,225,165, 63, 65,163,176, 94, 81, 75, 20, 0,111,247, 69,222,
+109,135, 38,133, 31, 8,235, 61,157, 49,115,198,173, 61,124,189,171, 35,143,175, 2,182, 7, 25, 75,194,150,131,122, 6,120, 75,
+127, 72,196,129, 11,250, 79,224,188,199,128, 86,178, 45,232,221, 11, 36,185,229,128,249, 16,203, 36, 33,176,129, 15, 52, 65, 68,
+108,215,223,207,103, 24,153, 25,190,253,224,100,252,252,135,133,137, 69, 92, 89,211, 77,206,139,229, 63, 78,103, 3, 11, 20, 21,
+ 21, 21,202,211, 39,100,152, 24, 88, 7,192,151,199,192,251, 1,196,207, 4, 64,138, 33,130,205,127,178,129,147,147, 83,246,170,
+ 89, 77,159, 63, 24,216,219, 48,137, 11,130,172,251,253, 31,116,156, 3, 3, 43, 35, 51, 11, 35, 27,243,236, 25,125,124,206, 38,
+202,202,202, 84,223, 3, 5, 25,234,153, 62,125, 58,144,212,215,215, 39, 73, 47,176,134,222,187,119, 47, 51, 51,179,173,173, 45,
+ 48,120,209,134,254,129, 29, 2, 96, 65,143, 22,236,112, 0,236, 49, 44, 90,176,144,141,153, 61, 36, 50, 4,168,198,198, 43, 5,
+165,222,250,243, 7,162,119,116, 85, 15, 45,198,127,128, 0, 32,128, 88,168,101, 13, 85, 46,224,118, 76, 79,184,119,247,222,185,
+237, 59,191,254,252, 5,236,192, 42,155, 25,121,200, 69, 18, 44, 73,201,158,234,129,148,224,228, 93,192, 13, 55, 1,178,102, 20,
+222,222, 7, 50,136,113, 15,196, 94,242,156, 29,118, 61, 20,236,107, 44,238, 12, 35,212,123,128, 3, 53,151, 79, 51, 93,224,238,
+ 36,246, 28, 8,112, 41,207, 24, 95, 4, 61,159, 11,146, 43,129,130,192,114,159, 91, 46,148,160,246,151,207,221, 94, 50,184,253,
+ 99,122,204,207,247,145, 65,136, 1,116,252,195, 47, 6, 22, 18,147, 22, 37, 0, 82, 7,144,161, 17, 62, 19, 64, 82,243, 31, 79,
+235, 21, 43, 0,150,236, 18,121,121, 19,118,237,186,215,188, 33,148, 85, 88, 0,124,160,219,247,111,127,242, 75, 42,153,185,132,
+182, 45,156,121, 81,132,209,141,148,195,124,254,254,253, 67,204, 28, 24,145, 67, 61,184,124,119,235,214, 45, 32,169,161,161,241,
+246,237, 91, 22, 22, 22, 96,169, 45, 44, 44,204, 0, 59,159,142,141,141, 13,210,105,195,170,247,212,169, 83,255,254, 48, 90, 89,
+235, 3,123,120, 64,149,191,126,253,146,145,145,129, 72,125,252,248, 17,216,209, 1, 26,194,206,206,142,167,221, 9,169, 27,144,
+ 25,163, 67, 64,196, 3,128, 0, 98,161,145,185,228, 23,202,202, 74, 74, 57,153,116,243, 63,217, 23,112, 99, 86, 3,100,216, 75,
+158,117,120, 92, 75,235, 51,224,192, 13,124, 6,240, 97, 60,200,130,161, 36, 25,194,244, 79,246,243, 7,217,129, 74,241,228, 29,
+ 13, 6,108,245, 19, 28,193,199, 10, 72,210, 5, 44,245,184,184,184, 2, 3, 3, 33, 71, 58, 63,130, 29,233,124,116,239,110,200,
+145,206,206, 22,206,184,244,206,126,223,158, 42, 88,137, 34,132,247,244, 80, 92,117, 0, 25,126, 52, 53, 53,133, 44,249,255,247,
+239, 31,176, 4, 7, 50, 94,191,126, 13, 36,121,120, 64,171,156, 33, 34,172,172,172, 88,253,235,227,227, 3, 81, 0,212,251,227,
+ 7,120, 31, 37,120, 89, 23,100, 85, 24, 68, 4, 88, 49, 96,237, 1,140, 46,242, 33, 6,224,191,245, 29, 32,128, 70, 47,133, 31,
+ 5,163, 96, 20,140,130, 17, 10, 0, 2,104,244, 70,176, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128, 70, 43,128, 81, 48, 10, 70,
+193, 40, 24,161, 0, 32,128, 70, 43,128, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128, 88, 70,131, 96,168, 0, 67, 28,151,251,224,
+ 1,231, 71, 39,120, 70,193, 40, 24, 5,184, 1, 64, 0,209,240, 82,120, 58,232,101, 99,219,197,201,254,130,149,237,195,191,127,
+160, 37,137,204,204, 76, 76,140,204, 32, 18,180,110,152,233, 63, 35, 11,136, 98,248,179,121, 43,235,255,255,255,245,244, 18, 6,
+131,155, 41,209, 43, 67,202,178,135, 39,168,203,224, 70, 47,209, 30,213, 59,170,119,100,234,197, 3, 0, 2,104,104,247, 0, 14,
+ 29,185, 99,102,242, 91, 80,128,225,221,123,198,243, 23, 57, 88,152, 88,188,220,255,238,222, 47, 10, 44,246, 25,153,152, 56,120,
+ 25,156,204, 62, 48, 48,176,216, 88,254, 63,117,134,128, 79,247, 31, 3, 29,106,207,250,255,183,185,173,211,199,151,143, 46,223,
+126,248,247,219, 15,250,220,172, 59,210,192,245,155,231,126,253,248,198,203, 43, 69,235,203,147,169, 8, 20, 21, 21, 33, 71,249,
+ 67, 78, 84, 38, 73, 47,242, 73,136,228,173, 37, 29, 5,163,128, 70, 0, 32,128,208,139,197,133,139,230,226,215, 16, 31,151,140,
+ 75,138, 18,189,100,131, 83,103, 88, 61, 92,255, 94,188,196,201,198,202,194,194,204,194,202,250,159,157,249, 55, 3, 11, 47, 11,
+195,119, 51,237, 63, 28,108,236,255, 25, 24, 36,197, 25,252,188,254,221,188,135,175,244,191,115,253,150,138,150,178,148,180,192,
+147,135, 55, 88, 57, 69,180, 52,212,182,111,220,184,103,207, 30, 90,215, 1,116,190, 80,126, 96,193,165,139,123, 20,100,126,234,
+ 42,255,255,247,239,239,199,143, 79,110, 92, 57,243,229,167,164,137,177,237,224,119, 57,176,244, 47, 40, 40, 0,118, 40,241, 28,
+230,140, 7,144,121,161,252,200, 0,248,143, 10,102, 0, 7,220, 44,108,167, 88,195, 47,133,135,169,250, 15,219,159,136, 8,237,
+ 17,126, 41, 60, 4, 32, 95, 3,137,182,238, 31, 32,128,232,215, 3, 96, 98,160,254,102,110, 47,183,223,255, 25,152, 89,152, 89,
+173,204, 25,197, 68,153, 88, 88,152,216, 89,153, 53,212,152, 30, 62,254, 99,102,204, 36, 44,196,177,125, 31,232, 76, 65,230,255,
+223,255,255,255, 39, 33,141,179,244,191,116,230,140,130,148,204,165,227, 39, 78,254,250,253,254,205,123, 54,118, 94, 77, 67,107,
+125,107,183,253,155, 65, 59,132,105, 84, 7,160, 93, 40, 15, 57,139, 49, 37, 37,101,240, 87, 3, 23,206,239, 97,103,121,199,194,
+244,235,199,143,191, 31,191,114,218,216, 17, 62,185,247,218,141,115,188, 28,111,157,172,217, 21,228,149,249,248,248,127,255,249,
+243,250,245, 27,241, 71,143,111,223,189,119,236,232, 59, 43,107,255, 65,222,252,103,128, 29,167, 12,172, 0,240,220,232, 50,216,
+ 0,176, 5,179,118,237, 90,148,227,143,104, 88, 26,194, 46, 96, 37, 85,219,163,117,140, 39, 83, 96,133, 56, 3,236,178, 53,132,
+ 73, 41, 51,190,154,133, 79,198, 90,173,110,223,190, 29,194,246,240,240,216,177, 99, 7, 86,246,104,233,143,201,133, 87, 3, 0,
+ 1,132,189, 2, 56,122,228,164,181,141, 57,117,221,241,143,208,205, 92, 68,222,208,132, 82,169,176, 48,191,127,199, 34, 33,198,
+ 42, 33,198,246,229, 11, 43, 7, 43,203, 95, 22,118, 35, 93, 70, 3, 61,102, 38, 70, 86,208, 38,114, 86, 54, 86,166,159,140, 28,
+108,127,190,225, 44,253,143,236,219,171, 40, 41,122,229,226,149,234,230, 6,184,120,107, 99, 27, 19, 51,163,145,177,209,246, 29,
+123, 9, 86, 0,255,254,253, 3, 22,226,119,238,220,225,228,228,212,213,213, 37,120,118, 13, 3,198,133,242,240,219, 86,231,204,
+153, 51, 80,117,192,249,243,231, 13, 13, 13,241,171,185,114,237,220,255,159, 15,228, 37,127,240,243,177, 51, 49,113,125,255,254,
+231,237,187,239, 7,247, 76,224,224, 51, 50, 55,179,195,163,145,131,249,181,154,226,127,109,109,205,231, 47,222,159, 61,127,238,
+203,151,175,252,252,188, 74, 74,242, 76,204,172,127,255, 62, 58,127,225,136,161,129,205, 96,110,254,195,111,119, 1,246, 3,128,
+117, 0,145,215,170, 96, 52,100,233,221, 3,128, 36,221, 53,107,214,144,119,175, 22,241, 0,222, 24,159, 57,115, 6,169,246, 48,
+201, 7, 67,244,158,106,231, 65,107, 36, 74, 8, 48, 73, 11, 49, 13,158,240, 28,186, 0, 94,226,163,213, 7, 0, 1,132,179, 7,
+ 0,172, 3,128, 36,169,213,192,145,188,219, 88,197,109, 38,169, 18,159, 67, 32, 61, 56, 98,170,129, 61, 7,196, 88, 89, 88,101,
+165,190,124,254,204,122,246,138, 44,232,202, 84, 70,102, 54,214, 63,218,170,223,212, 85,153, 25, 25,152,216, 88,217,217,152, 25,
+141,245,126, 9, 9,254, 59,116, 26,187, 33,154,138,226, 15,239,190, 66, 46,253,129,160,186,190,170,173,185, 75,210, 82, 79, 80,
+128, 23,191, 27,190,127,255, 14, 44, 17, 30, 62,124, 8,225, 2,155, 30, 94, 94, 94,254,254, 4,154,180,104, 55, 74, 34,131,222,
+222,222,226,226, 98, 58,111,115, 7,150,254,240, 43, 53,240,128,159, 95,159, 42, 74,127, 23, 17,230,150,145,150,224,226,230,122,
+248,240,233,223,191,255,164,165,120,175, 94, 63,126,129,147,219, 64, 23,251,197, 15,151, 47, 31,209, 83,251, 37, 39,167,120,237,
+250,195,179,103,175,191,126,243, 25, 24,207,130,130,156,223,190,125, 49, 52,212,254,240,225,227,211,179,231, 47, 94,230,212,215,
+ 53, 30,180,205,127,248, 69, 46, 4,175,117, 68, 30,217, 64, 59,202, 24,200,134, 15,119,144, 49,142,212,220,220,236,235,235, 75,
+234,105, 13,192, 58, 0,104,239,170, 85,171,112, 29,199,198, 0, 62, 75, 25,173,103, 0,185, 18, 18, 40,142,214, 38, 0, 22,244,
+152,103, 7,192,143, 87, 2,250, 55, 61, 61,131,164, 78, 6,178, 94,179,202, 47,167,219,121,224, 69,255,104,169, 77,173,230, 63,
+114,148,161, 69, 31, 64, 0, 17, 8,101, 96, 53, 0,169, 9,136, 4, 88, 11,122, 34, 75,127, 8, 56,120,240,224, 83, 48, 32,230,
+ 44, 39,230,255,223, 89, 24,127,176,177,178,158,191, 34,202,204,194,194,203,246,141,143,227, 59, 47,255,223,167, 79,121,217,217,
+ 56,216,217,217, 67,253,254,248,121, 50, 73, 75,177,115,113, 98,191,155,226,219,135,199, 47,222,125, 41,174,171,195,148,250,240,
+241,221,251,215, 47, 24, 9,117, 92, 86,175, 94, 13, 47,253, 33, 96,219,182,109,215,175, 95,199,223,252, 71, 62,255, 25,210,252,
+255, 8, 3, 64,118,125,125, 61,217, 71,197,145, 93,250, 19, 84, 6,108,254,115,176, 60,231,228,100,229, 96,103, 83, 84, 84, 48,
+ 49, 51, 19, 20, 20,100, 97, 97,102, 99, 99, 22, 18,228,120,250,248, 1, 46,141, 44,255,159,242,242,112,126,251,254,231,202,149,
+219,207, 94,124,124,244,228,211,173,123,191,158,191,248,252,250,245,135,219,183,238,169, 40, 43, 75, 75,241,189,125,253,104,112,
+102, 33,200,232, 63,178, 8,176, 55,128,114,183, 59,158,182, 45,120, 57, 26,214, 11,229,201,235, 64, 0, 11,101,120,103,145, 72,
+176,119,239, 94, 96, 18, 37,120, 53, 35,242,229,239,200, 23, 2, 35, 91,135,203,106,136,177,144,187,195,200,235, 21,173, 42,228,
+ 70,110,245, 67, 74,127, 96,219, 95, 10,212,252,199, 23, 92, 30, 30, 30,158,158,158,144,113, 30, 8, 3,194,246,128,129,209, 58,
+ 0, 63, 0, 8, 32,162,230, 0,200,235, 13,144, 13,110,223, 6,117, 35,128,117,128,180,180, 52,254, 54, 41, 11, 11, 11, 43, 51,
+ 43, 43, 43,163,157, 53,195,183,175, 63,239,223,101, 3,118, 8, 88,254,178, 88,152,255, 7,214, 10,204,204, 76, 12,255, 25,223,
+189,103, 56,125,142, 5,116, 19, 8,182,202,238,220,249,187, 95,190,252,194, 20,239,168,175,103,103,231,248,254,253,227,223,127,
+ 4,238, 19, 62,119,238, 28,166,224,217,179,103, 53, 53, 53,137,108,254, 35,183,233, 54,111,222, 12, 87, 67,163, 78, 0,218, 80,
+ 15,188,244, 39,152,129,223,191,123, 37,194,203,248,231,239,191, 95,191,255,188,126,243,142,149,141,227,231,207,223,191,255,252,
+253,243,231,223,159,191,255, 63,188,127,131, 75, 35, 27,235, 87, 14, 78,153,183,111, 63,126,250,252,237,221,251,239,124,194,250,
+ 86,122,122,167,142,238,144,250,245,231,227,167,143,234,234,202,236,108, 44, 95, 63,191, 27,156,205,127, 96, 9,133,118,153, 34,
+176, 7, 64,228, 76, 0,176,230,192,188, 3, 18,126,172, 52, 46, 0,191, 92, 33, 35, 67,200,217, 25,113,250, 27, 48, 71, 0,201,
+ 77,155, 54,189,121,243,134,200,121,169, 61,123,246, 64, 74,127,136,250,181,107,215,226, 42,133,145,251,127,152, 23, 2, 67,196,
+ 33,215, 2, 99, 53, 1,114,140, 40,144,132,244, 27,176,122, 16, 87,122, 6, 58, 47,196,114,207, 74, 6,134,240,254,175,166,149,
+ 95,176,234, 53, 11,199,238, 65,228,177,126, 92,243, 1,163,165, 60,242,200, 15, 90, 15, 0, 32,128,168,223,207, 66,107,239,147,
+212,252,135,180,127,225,213, 0, 48,243,224,239, 7, 48, 51,179, 88,152,253, 99,102, 98, 57,125,134,227,230,109, 14,111,119, 6,
+ 31, 79, 6, 95, 15, 70, 73,113, 54, 14, 54,118, 32,226,228, 96,151,150, 4, 50, 56,128,108,172, 38,212, 86,215,116,182, 55, 97,
+102, 27,101, 69,121,126, 1,110,142,127,191,190,124,251, 77,139,248, 56, 2, 6,240, 66, 31, 14,128,220,183,111,223, 2,123,250,
+180,107,236, 35, 55,235, 32, 92, 72, 79,156,224,216,194,223,191, 12, 95,191,253,254,250,245,215,167, 79, 63, 95,190,124,255,236,
+217,155,207,159,127,126,249,242, 27, 88,131,126,253,250,251,227,135,143, 56, 7,142,126,254,249,241,227,239,239,223,191,120,121,
+217,100,165,249,184,184, 65,205, 61, 37,101, 5, 25, 41, 62,126, 62,142,255,255,255,254,254,243,239,231,207,175,131,179,249, 95,
+ 84, 84,132,181,100, 39,216, 9,192,188, 75, 18, 2,128,130,123,136, 59,181, 27, 60,162,130, 0,144,194, 23, 88, 13, 0,203,116,
+ 98,250,199,192,182,255,154, 53,107,224,165, 63,144, 12, 9, 9,193, 85,124, 3, 13,199,188, 18, 18,210, 38,128,139, 3,221, 67,
+232, 48,237,255,104, 3,185,200,195, 95,184,244,136,136,136, 48,194,218,249,164,234, 29, 5, 36,149,254, 12, 24,115, 0, 0, 1,
+ 68, 84, 15,128,110,109,127, 88, 65,243, 23,114,169, 52, 97,135,153,253, 19, 19,101,255,244,137,133,157,229, 15, 59, 27,243,129,
+147,108,222,142,172,192,182,255,167, 79,172, 71,207,112,243,113,128,174,146,240,112,249,229,239,253,159,137,233,255,130,181, 68,
+217, 14,204,156,204, 92, 28,239, 88, 69,184,126, 63,185,243,244,191,147,131, 29,126,245,192,214,244,177, 99,199,208, 4, 9, 94,
+131, 12,185,212,123,193,130, 5, 9, 9, 9, 16, 17,248,189,146, 64, 17,252,215, 28, 82, 2, 32,109,127, 72, 51, 13,190, 66, 14,
+115,168, 23, 43, 16, 20, 18,125,118,255, 10, 48,156,127,253,254,247,227,231,147,199, 79,222,190,123,255,233,221,187,111,111,223,
+125, 7, 34, 1, 33, 5, 92, 26, 95,190,249,255,226,229, 27, 77, 77,229, 15,239,223,179,178, 48,125,250,252,228,235,135,127, 90,
+ 42, 95,197, 69, 69,185,184,184,216,217, 57,159,191,248,204,200, 44, 56, 56, 51, 15,214,107,220, 33, 51, 1,248, 53, 66,250, 7,
+240,187, 36,225, 53, 7, 3, 41, 87,202,132,133,133,193, 91,196,144, 91, 43,128,177, 22, 28, 28, 12,172,126,240,111,246, 65,107,
+251, 67, 0,114,127, 2, 25,224,186, 18, 18, 34, 14, 76, 45,144,187,215, 33,226,143,177,217, 11, 84,147,149,149, 9,185, 93, 7,
+ 92,109,252,135, 20,233, 64, 93, 16,247,227,169, 57,128,122,167, 58, 10,134, 79,248,134, 54, 22, 4, 20,129,232, 77,114,100, 29,
+ 45,196, 41, 1,105,229, 29,112,246,172,206, 10, 96, 29, 0,239, 7, 0, 4, 16, 11, 45,138,126, 96,171, 31, 50, 27, 76, 82,243,
+ 31,169, 93,207,140, 60,198,135,231, 30, 49, 17, 17,102, 38, 70,102, 81, 17,102, 85,229,255,207,158,177, 48, 49, 51,178,178,176,
+176,178,176, 94,186,204, 45,196,205, 10, 52,199,218,252, 47, 39, 39,251,191,127,255, 25,254,255, 37,198,106, 96,182,225, 17,151,
+125,249,229,255,215, 59, 7, 88, 24,153, 75,235,171,137,201,162,143,193, 0,217,205,120,198,127, 24,192,235,253, 33,197, 61,164,
+244, 7,182,247,129, 53, 1, 68,234,211,167, 79,192,210,127,203,150, 45,196, 92, 40, 79, 30,128, 92,252, 4, 12, 82,200, 20, 37,
+ 49,109,127, 8,208,215, 53,190,126,229,236,255,167,159,190,125,255,253,158,253,199,127,134,247, 63,126,252, 1,246, 6, 94,189,
+249,246,236,249, 23, 91, 71,121, 92, 26,191,255, 18,185,119,255,181,146,162,156,162,162,204,219,183,111, 4, 5,254,170,170,242,
+139,137, 42,113,112,114,126,248,240,229,236,185, 27, 79,158,126,146,144,209, 30, 60, 25,230, 63,248,182, 75, 72,193, 11, 47,127,
+177,174,229,199, 50, 90,129,180,130, 17,216, 9,128,223, 37, 9, 1,125,125,125,187,118,237,194,165, 23, 18, 35,233,233,130, 48,
+235,254, 35, 23,217,144, 10, 0,216,138,199, 51,254,131, 52,124,180,151,164,219,141,112, 93, 9, 9, 17,135, 20,223,184, 10,113,
+200, 18,163,105,211,166, 67,102, 56, 12, 12,244,225, 3,247,176, 22, 61,206,155, 6, 32,122,153,194,222, 67,244,134, 58, 41,192,
+ 3, 38,172,255, 26, 3, 3, 3,254,214, 63, 48,175,193, 23, 56,121,122,122,194, 99,103,116,228,135, 72, 0, 16, 64, 44,131,164,
+213, 15, 1, 17, 17, 17, 36,169, 7, 54,240,153,153, 65, 72, 83,141,201, 80,247, 47, 59, 27, 7,168, 2, 96,101,181, 50,103, 96,
+103,103, 96,101,102, 23, 17,225, 96,102,254,250,247,239,191,127,255,136, 26,201,249,246,238, 5,135,140,198,253, 61, 75, 68, 89,
+152, 98,171,171,136,209,194,201,201, 89, 85, 85, 69,210, 50, 80,200,237,243, 57, 57, 57, 16, 46,164,189, 15, 44,250,191,125,251,
+150,148,148, 4,100, 79,155, 54,141,118,171,128, 32,151,255,193,239, 80, 37,105, 85,137,140,188,250,153, 19, 59,197, 68,128, 13,
+119, 22,240,216,206,223, 79,159,127,189,123,255, 93, 86, 81,219,198,202, 30,151, 46, 47,175,224, 93,219,231,159, 56,117,213,214,
+ 90, 95, 94, 94,254,247,175, 31,134, 6,122,220,252,252, 15,239, 61,122,250,236,195,209,227,215,223,127,230, 15,180,180, 31, 60,
+185, 34, 51, 3, 50,192,194,152, 9, 44, 16,193, 5,250, 63,164,114,159,137,137, 17,207, 5,235,160,203,217,255,195, 11, 64, 70,
+ 96,202,131,119, 2,128, 12, 96,105,229,225,225, 14,171,100, 24,188,163,107, 49,199, 58,112,149,218, 64, 89,252,165, 63, 50, 0,
+170,196,213,222,199,147, 42, 48,175,132,132,139,227,185, 44, 12, 94,115, 0,203, 95,112,243,159, 17,185,254,192,111, 47,178,222,
+ 85,133, 60,160,112,225, 16,135, 72,173, 42,124, 4,169, 12,118, 94,252,141, 43, 64,144,199,253, 71,231, 0,200, 0, 0, 1,132,
+189, 2,176,178, 54,163,112,220,141,188,182, 63, 60,218,136, 4,239,222, 51, 74,138, 51, 65, 14,126,216,181, 23, 52,208,207,206,
+206,193,206,198,238,235,201, 8,164, 56, 57, 24,223,189,101, 62,117,150,247,239,191,191,178, 50,132,135,152,129,205,255, 15,223,
+190,191, 63,179, 77, 85,150,245,202, 83, 18,134,164,129,245,144, 25, 24, 16,175, 5,124,161,124, 39,100,180, 7,216, 27, 48, 55,
+ 55, 7,182, 22,253,253,253,129,236,216,216, 88,218, 53,255,225, 3, 65,144,214, 28, 49, 35, 63, 40,209, 10, 46,229,111,221,184,
+246,236,222, 67, 96, 57,248,247,239,127, 14, 78, 33, 53, 77,157,192, 0, 2,151,130,137, 73,235,157, 56,181, 3,216, 99,208,213,
+ 81,146,150, 18,121,244,248,229,251,203,119,111,222,122,180,119,223,165,135, 79,255,167,164,230, 14,170, 92,241,111,165, 32,241,
+178,190,155,240,234,189, 59, 31,222, 9, 0,141, 26,221, 91,128,172, 0, 77, 47,214, 14, 1,114, 89, 73,146, 47, 72,205,194,184,
+174,132, 36,230,170, 72,120, 65,143,166,140,152,230,197,191,135,107,215, 76,136, 3,117, 95,156,228,224,165, 63,136,235,101, 10,
+ 30, 45,189,128,171, 2, 24,221, 7, 64, 36,152,213, 89,129, 60, 10,132, 12, 0, 2,136,133, 42, 73,135, 42,128,140, 54,239,153,
+115,236, 28,108,108,190, 94,192, 26,128,209,204,228,207,229, 43,156, 76,224, 43,164, 63,124, 96,146,146, 96,102, 98,100,187,120,
+153,141,131,157,225,215,239, 95, 15, 31,113, 18, 44,253,239,222, 58,111,238,236,195, 34, 98,126,247,214, 41,150, 23,107,202, 74,
+ 43,187,186,219,105,228, 89,228, 11,229,117,116,116,222,191,127, 15,100, 3,201,188,188, 60,250,236, 2, 35,181,232, 71,174, 3,
+128,232,194,229,179, 47, 95,188,228,230,230,198,211,240, 71, 41, 8,244,140,129,104,233,146,153,215,110,158,148, 20,231,225,224,
+ 96,253,242,229,215,211,231,159, 24, 89,100, 83, 82,227,134,115,230, 59, 87,204,160,156,136, 88, 72,122,182,136,118, 37, 56,120,
+148, 70, 8, 86,109,144, 83, 56,226, 42,175, 9,150,227,228,221, 37, 9,247,102,168, 37, 59,200,193,223,159,131,208, 40,160, 30,
+240,137,169,133,204,250, 2,235, 0,100, 65, 56, 27, 32,128,208, 43, 0, 74,142,235,161,197, 81, 63,132, 83, 15, 3,227,251,247,
+140, 92, 18,140,194, 66,140, 38, 70,191, 57,216,152,217,217,126, 11, 11,113,128,243, 0,163,133,201,223, 83,231, 88, 65, 93, 4,
+188,121, 9, 88,250,107,171,243, 21,231, 55,125,103,147, 89,183,231,169,178, 26,168, 45,207,115,122, 75,113, 73,101,111, 15, 13,
+235, 0,200,133,242,192, 38, 63,188, 91, 48, 84,174, 57, 5,237,249,210, 37, 89, 87,116, 76,250,145, 99, 7, 95,191,125,253,253,
+197, 55, 14, 14, 97, 25, 69, 61, 34,235,143,193, 0,254,255,255,199, 64,222,113, 38,247, 22, 64,151, 3,221, 91, 72,107, 71,146,
+ 52,236, 51, 72,128,155, 79, 56,193,182, 60,174,206,245,232, 28, 0,241,117, 0,102,233, 15, 4, 0, 1, 52,228,239, 3,248,207,
+ 0, 90,225,195,200, 4,140,249,255, 66, 2,255, 15, 30, 97,225, 0,109,255,101,241,243, 2, 38,134,127,130,194,127,254,252,101,
+252,247,239, 47, 56,247,226, 4,122, 10, 95,188,131, 67,191,176,168,138,241,112, 71, 5, 10, 45, 91,127, 25, 82, 7,252,254,187,
+142,214,238, 39,227, 66,249, 33, 13,134, 68,137, 63,235,125, 71,154, 96, 5,138,208,106, 33,242,245, 2, 91,253,164, 52,252, 71,
+ 26, 8,201,158, 66,183, 49,131, 17, 91, 7,224,146, 2, 8,160,209, 75,225,135, 12, 24,189, 16,102, 20,140,130, 81, 64, 93, 0,
+ 16, 64,163, 55,130, 13, 25, 48, 90,154,143,130, 81, 48, 10,168, 11, 0, 2,104,244,196,165, 81, 48, 10, 70,193, 40, 24,161, 0,
+ 32,128, 70, 43,128, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128, 70, 43,128, 81, 48, 10, 70,193, 40, 24,161, 0, 32,128, 6,254,
+ 82,120,123, 51,105, 92, 42,191,190,123, 1, 97,112, 11, 73, 64, 24, 7, 79, 61, 69, 86,240, 83, 84, 28,151,222,221,253,208,125,
+182,174,133,208, 53, 6,236,175, 95, 18,105, 47, 38, 32,222, 94, 76,128,102,175,137,161, 20, 46,149,111,238, 95,133, 48, 68, 20,
+161,231, 34,156, 57,255,140, 90,254,245,216,141,253, 0,122,126, 41,169, 88,216, 81,192, 83,196,161,230,239,112, 77,163, 86,252,
+ 34,235,189,121,243, 38,242,249,104,133,133,133,234,234,234, 52, 74, 87,163,122,169,162,247,242,229,203, 16,134,174,174, 46,169,
+122, 49,175,120, 26, 13,231, 1,209,139, 7, 0, 4, 16,246, 73,224, 63,127,254,252,248,241,131,145, 25,116,169,214,223, 63,191,
+217, 88, 89,216,217,217, 73,173, 91,128,134, 48,128, 79,108, 38, 73, 23,176,208, 7, 22,247,144,162, 95, 66, 86, 1, 72,190,192,
+125,208, 60,102, 33, 8, 44,254, 32, 69,225,212, 77,167,128,100,182,159, 25,195,224, 6,192, 66, 31, 88,220, 67,138,126,109, 19,
+107, 32,121,245,204, 81, 90,251,119,243,151, 47, 59,191,126,117,231,230, 6,146, 12, 47, 95,158, 42, 47, 3, 10,154,117,118,209,
+212,167, 7, 14, 28, 88,177, 98, 5, 48, 93,193, 69, 56, 56, 56, 34, 34, 34, 28, 28, 28, 70, 27, 98,131, 10, 0, 11,125, 96,113,
+ 15, 41,250, 73, 77,147,144,147,187, 32, 69, 63, 73,105, 18,249,124, 83,242,214,119,146,113,165,224, 40, 0, 8, 32, 44,165,243,
+167,207, 95, 36,213, 76,237,117, 53,184,216, 89,255,255,255,255,247,239,255, 43,183, 31,222,191,116,152,147,157,149,200, 67, 58,
+129,128,135,227,129,182,234,189, 43,183,148,190,254, 84, 32,190,232, 7,146,156,252,194, 64, 6,164,232,199,218, 27,192,211,254,
+ 53,139,174, 0, 50, 32,201, 14, 83, 22,235,130, 87,100, 99,217,216,216, 24,192,251,203, 65,151, 7,128, 15, 37,133,184,135,137,
+153, 21,127,163, 27, 8, 36,197, 64,109,231, 95,159, 62,252, 4, 87,123, 95,254,252,133,184,135, 95, 76, 6,127,123,159, 95, 74,
+ 25,200,128,100, 51,108,189, 1, 65,234,250, 23, 8,114, 94,130,122, 6,144,210, 31, 82,244,131,218,230,187,118, 35,203,250,224,
+141,169,143,220,111,222,242,188,254,240,246,142,152,128,166,204, 27, 21, 98, 34, 23,216,246, 95,185,114, 37,114,233, 15, 4, 64,
+ 46, 39, 39,167,164,164, 36, 90, 63, 96,120,131, 61,123,246,144,116,203, 52,158,195, 16,105, 81,244, 67,210, 36,144,129,153, 38,
+ 97,189, 1, 65, 60,229, 47, 48, 77, 2, 25,152,105, 18, 34,139, 43, 77, 2,101, 15, 29, 63,197,204,204,242,247,239,159,143,159,
+191, 68, 5,251,247,244,244,144, 87,250,211, 57,196, 6, 57,216,130,109,237, 56,114, 44, 0, 4, 16,122, 5,240,245,251, 47,103,
+191, 40, 89, 49,126, 46, 14,208, 37, 42,127,255, 49,176, 48, 51, 10,241,107,104,171,202,237,217,185,245,239,239,175,196,212, 1,
+191,126,253,210,212,190,175,175,113,159,153,233,239,129, 51,210,108,172,132, 79,115, 5, 22,196,192,162,150,159, 15,116,255, 34,
+132, 68,147, 5, 86, 9,184,186, 2,192,242, 14,152,236,226,195,131,128,108, 8,137, 38, 11, 76,142, 4,155, 33, 64,127,201,200,
+200, 0, 73,160,227,191,126,253, 10, 44,253, 33, 39, 54, 19, 85,219,177, 48,207,155,176,158,157,159,225,229, 3,134,211, 95,158,
+190,126,113,103,113,127, 37,193,134, 63, 48,155,201, 72,129,134,182, 32, 36,214,177, 32,242,252,139,231, 28, 0, 96,249, 14, 44,
+250,155,115,178,129,236,102, 88,209,191,228,214, 45, 68,233, 79,232, 16,129, 7,255, 15, 51,152, 61,141,144,139,249,249, 79,133,
+253,223,255,235,111,246,158,223,125, 83,229, 95, 22,126,255,246,247,247,127,255,254, 29,249,248,107, 8, 27, 40, 8,236, 7,144,
+122,202,205,245,235,215, 39, 78,156, 72,203,251,205,105, 88,250,175, 90,181,234,253,123,215,213,171, 67,137, 81, 15, 57,157,159,
+ 62, 37, 26,176,124, 7,166,201, 91,231,143, 1,139,126,228, 52,185,111,235, 58,113,113,113,248, 88, 16,174,242, 23, 79,154, 4,
+149,206,240,227, 85, 49, 0, 48, 30, 95,188,122,115,254,202, 53, 88,179,224,103,215,228, 89,233, 9,145,163,133, 56, 29, 0, 64,
+ 0,161, 76, 2,127,254,252,217,198, 45, 80, 67, 78,152,157,149, 9, 88,250,191,120,241,226,242,197,243,191,254, 0,153,255,133,
+249,185,220, 60,125,190,255,252, 67,140,161,236,172,175,148,229, 94, 48, 48, 51,106,169, 62,102,103,121, 73, 82,233,143,210,210,
+252,244, 25, 88,232, 3,165, 48, 59, 4, 88, 75, 67,100,176,112,229, 58, 96,161, 15,148,194,108,140,160, 1, 96,195, 31, 88,238,
+243,241,241,221,187,119, 15, 88,232,131,170, 61,162, 75,127, 96,195, 31, 88,250, 7,230,182,120, 70, 89,109,185,242,244,197,119,
+ 6, 82, 75,127,100,240,228,217, 11, 96, 95, 91, 84,144, 15, 92, 53, 51,147,225, 95,143,224,120, 80, 11,141,133,149, 96,233, 15,
+ 4,181, 83,166, 2, 17,164,244, 7,246, 6, 74,221,192,237,126, 81, 54,124,229, 17,255, 54,183, 16,169, 68,249, 44, 86, 38, 30,
+110, 6, 46, 38, 6,102,105,113,107,155, 96,231,123, 82,253,248, 7,127, 64, 46, 92,184, 16, 82,238,163,145,112, 5,196,128,111,
+223,190, 17, 20,161, 17, 72, 75, 75, 11, 13, 93,189,116,233, 82,202, 75,127, 33,161, 61, 68,106,153, 9, 6,140,140,140,200, 87,
+ 54,210,174,244,111,173, 42, 92,189,122,245,156,201, 61,200,165, 63, 80,100,202,148, 41,120,210, 36,114,233,143,153, 38, 61,173,
+193,167, 78,241,114,227,210,219, 59,121, 58,164,244,127,245,230, 45, 16, 1,123, 0,172,172, 44,211, 23, 44, 39,230,210,155, 81,
+ 64, 12, 0, 54,249,145, 17,178, 20, 64, 0, 33, 42, 0, 96,169, 39,172,160,167, 32, 33,240,227,247, 95, 96,109,189,115,231,142,
+ 69, 11, 23, 92,186,120,177,180,168,128,153,153, 9,216, 23,224,227, 98, 87,208,179, 1, 54,217,240, 91,246,251,247,111,109,213,
+135,124, 60,223,230, 45,124,197,196,248,223, 76,247, 38, 80,132,160, 19,209, 74,127, 72,209,255,253,227, 91,120,197, 0, 20,193,
+165, 23, 45,229, 65,146,221,169,165, 29,240, 68, 9, 20,193, 99,181,178,178,178,176,176,240,167, 79,159,128, 53, 1, 19, 19, 19,
+208,131,192,210, 31,210,209, 33,120, 26,215,218, 13,235, 11, 38,236, 90, 63,185, 6, 88, 19,112,113, 11, 61,254,251, 20, 88,250,
+243,128,243, 9, 51, 94,189,104,165, 63,164,232,255,248,236,174,134,140,216,231,111, 63,216,185,216, 25,254,254, 37,213,191,149,
+179,183, 92, 61,119, 92, 71, 73,235,227, 95,156,245, 52,164,244, 7,182,250,129, 69, 63, 68, 4, 88,244, 3,209,189,244,198, 93,
+215, 46,105,155, 41, 49,188,197, 25, 89, 23,217,182, 88, 59,136,138,114,107,126,255,255,153,225,231, 43,182,159,239,126,254,253,
+252,227,223,247,127,108, 60,210,182, 38,107, 46,180,225,210, 8, 25,250,135, 92,107, 5,207,246,112, 54, 80, 10,168,128,152,116,
+252,230,205,155,162,162, 34, 96,219,255,198,141, 27, 64,238,225,195,135,219,218,218,106,106,106,232,147,139,128, 5, 55, 85,218,
+254,192,210,191,170,138,168,147,198,225,133, 62,242,189,140,180, 3,192, 52, 9,185, 58,248,236,217,179,192,114, 31,152, 38, 33,
+165, 63, 3,248,214, 70,242,210,100, 87,130,207,149,187,143, 37,148, 36, 25,190, 18,168,167,129, 69,255,239,223,127,192, 5,200,
+ 31, 32,122,252,240, 1, 73,142, 71,238, 46,140,118, 29,136, 7, 0, 1,132, 24, 2,250,249,243,167,161,134, 6, 23, 39, 43,176,
+189,255,247, 31,195,209,195, 71, 26,155, 91,254,253,103,184,125,231,206,165,139, 23,116,116,244,153,153, 25,213,149,100,238,157,
+251,195,137,247, 96, 77, 54,150, 87,106, 10,207, 24, 88, 24, 31, 63,255, 13, 36,245, 52, 30,158,186,252,234, 63, 3,177, 75,110,
+224,227, 60,104,125, 2, 96,101, 0, 94, 11,244, 20,143, 94,248, 56, 15, 90,123, 4,152, 16, 65,107, 99, 94, 99,239,139,252,249,
+243,135,139,139, 11, 88,244, 11, 10, 10, 2,155,147, 95,191,130, 14,130, 22, 21, 21,125,251,246, 45,193, 51,170,126,188,103, 48,
+227,228, 44,157,124,216, 85,159,225,225,121,134,211, 96, 65, 32,119, 82,161,227,223,127, 68, 93, 65, 3,159, 94,115, 54,214, 96,
+225,101,218,121,224,154,161,134, 44, 31, 15,251,193, 51,119, 68, 20,181, 31,160,174, 2,194,229,223, 77,215,254, 51, 60,103,240,
+115,102,156,189,229,158,176,160, 98,144, 53, 35, 30,255, 66,198,124,118,126,133,158,119,253,191,161,159, 65,250, 35, 99,106,253,
+255,198,102, 6,166,239,140,167,218,166,136,139, 99, 61,149,251,135,198, 67,121, 1,175, 79,127,191,252,124,127,103,241,163,101,
+ 71,252,222,107,165, 56,186,229,242,112, 10,170,115,176, 8,178,248,125, 60,189,238,180,169,137, 41,206,206, 38, 19, 19, 60, 60,
+145,217,196, 3, 17, 17,145,252,252,252, 35, 71,142,236,220,185, 19, 84,117,237,220,169,169,169, 25, 24, 24, 72,159,172, 18, 16,
+240,139, 90,165,191,188,188, 60,145,133, 26,188,220,135,116, 2,200, 62,195,149, 72,224,228, 29, 4,236, 7, 3, 43, 0, 96,185,
+111, 12,102, 48,128,175,183,243,176, 55,129,164, 73, 93, 93,221, 7,120, 87,152,192,211,228,243, 13, 29,188,218, 28, 60,170, 5,
+171, 58, 82,244,117, 36,212,125, 90,128,222,193,186, 58, 5,216,182,227,224, 0,173, 49, 1, 54,252,191,125,251, 65,182,227, 71,
+203,125, 92, 0,207, 97,112, 0, 1,132,168, 0,254,253,251,199,197,206,246,235,207,127, 38, 70, 6, 32,170,111,106, 1, 86, 3,
+ 95,191,126,121,241,226,185,184,184,196,255,255,255,254,252, 97,224, 96,101, 97,102,197, 55, 68, 0, 44, 76,181,148,159,136, 8,
+126, 2, 13,249,129, 47,250,100,100,252,111,164,125,251,228, 37,113, 98,150, 3, 65,154,249,152,195, 65,120,154,255,200,141, 14,
+204,162,159, 96,243, 31,210,174, 20, 19, 19,131, 44,115, 2,118, 86, 32,115,191,252,252,252,172,172,172,143, 31, 63,198, 63,125,
+ 49,127,207,193, 20, 31,123, 7, 48,251,214, 31,208,248, 15,144,225,160,198,192,215,178,191,176,196,138,160,155,129,141, 44, 32,
+ 41, 39, 38,244,254,231, 79, 22, 62,230, 31,175,191, 1,139, 70, 73,121,153, 93,251, 78, 19,233,223,248,226,214,251, 71,247,178,
+188, 96,248, 32,206, 0,172,196, 44, 20, 20,157,236,241, 45, 81, 69, 30,241, 95, 18,158,178,246,231, 77, 6,149, 31, 12, 39, 89,
+ 24,120, 88, 24,124,141,101,124,227,241,117,149,164,133,126,253,122,199,250,231, 55,176,244, 63,158,192,111, 23,232,175, 33,166,
+121,101,215, 1,195,208,175,172,191,190,254,209,248,247,250, 37,190,137,122, 72,137, 15,153, 3, 64,102,147, 4,128, 37, 62, 55,
+ 55,247,245,235,215,185,192, 32, 58, 58,154,214,195, 62,192, 82, 27, 88,244, 71,131, 1, 61, 75,127,180, 49, 31,200,197, 41,116,
+ 40,227, 60,130, 99,148,148,148,128, 21, 0,164,244, 7,182,253,197, 37, 37, 73, 74,147,105,190,118, 39,158,189,226,213,231,125,
+186,243, 46, 3, 7,123,112,110,156,144,140, 15,222, 66,227,239,211,231, 47,129,165, 63,164, 7, 0, 4,164, 54,255, 49, 7,139,
+ 70, 43, 3, 60,149, 1,114, 29, 0, 16, 64, 40,115, 0,255, 33,107, 96,254, 51, 0,139,126, 38, 80,217,205,176,110,237,154,192,
+160, 16, 17, 81, 49, 72,166,253, 79,232,144,113,102,166, 87,218, 42,208,203, 17,245,116,184,192, 77, 23, 6, 35,173,123, 64,113,
+ 98, 28,135, 60,230,131, 38, 14,223, 10,128, 11, 32,143,249,160,137,195,151,198, 99, 5,159, 62,125,250,252,249, 51,176, 3, 4,
+172, 2, 95,191,126, 13, 25,255, 1,118, 5,190,124,249, 66,112, 8,104,253,228,154, 3, 87, 24, 62, 62, 96,248,253,157, 97, 82,
+185, 35,100,252,231,220,121,134, 11,207,143, 18,179, 94,234,227,179,187, 66,252,220,194, 66,220,234,106,154,247,238,191,190,245,
+244,173,156, 48,255,207,151,175,254,252,254, 3,223, 10,128,199,191, 86, 14,254, 54,142,145,235, 55,175,218,127,104,213,178,190,
+226,224,226,182, 75,191, 25, 94,191,125,133,199,191,240, 17,255, 68, 43,243,104, 45,249, 85,235,247, 93,186,244,160,239,242,217,
+ 21,174,113, 12,115,143, 61,125,250, 26,190, 21, 0,203, 16,193, 15,246,191,191,222,252,250, 5,186,252, 93, 92, 90, 86, 67, 83,
+243, 19, 39,104,166,228,251,191,111, 76, 63,191,114,126,101,126,249, 28,123, 5, 0, 9,198, 31, 96, 0, 31,246, 65, 91, 17, 68,
+ 36, 0,198,203,146, 37, 75,128,213, 64, 65, 65, 1,176,230,134,116, 5, 6,237,176, 15,217,165, 63,114,243, 31, 50,247, 0,239,
+ 4,208,186,128, 0,166, 73, 52, 17,120,154,132,111, 5,192,147, 38,109, 77,213, 93,172,213, 90,155,122,122, 39,108,171, 91,178,
+ 47,195,201,228,197,198,109, 31,223,127,194, 85, 34, 3,197, 67,253, 60, 32,195, 62,240, 10, 0, 8,218,234, 43,137, 47,196, 71,
+139,123,252, 0,109,244, 31,185, 67, 0, 16, 64, 76,200, 61,244,143, 95,190, 49, 51, 49, 2, 43,228,127,255,255,255,249, 7,154,
+180,191,120,225,188,147, 51,232, 6,187,191,255,255, 51, 51, 49,127,254,246,235,207,175,159, 56,107,242,191,127, 21,165,159,139,
+ 10,125,132, 84, 38, 86,102, 60,144,203, 85,129,157, 0, 67,205, 59,127,254,254, 37,166,249,143,117, 42,152,216,230, 48,182,105,
+ 40,130,122, 5, 5, 5,129,229, 62,176, 7, 0,172, 6, 68, 69, 69, 33, 19,194,192,226,233,195,135, 15, 4, 43,128,180,214, 21,
+192,114,159, 95,129, 1, 88, 13,228,117,238, 7,150,254, 65,249,237, 79,254,189, 88,218, 87, 6, 12, 73, 98,154,255,198,198,106,
+162, 74, 10, 98,162, 34,108,192,144,103,252,255,250,235,247,247,159,127, 16,233,223,222,142, 13, 1,154,138,124,124,194, 92,162,
+ 82,191,223,189, 63,191,101,249,135,119,143,136, 76, 19,243, 58,114, 24, 10, 93, 88,254,252, 82,248,202,240,138,249,211,164,231,
+167, 25,216,248, 8,140,119,221,253,244,134,233,251, 35,182,111, 38, 42,142, 90,113, 60,247, 4, 15,136,138,158,151,181,184,247,
+145,233,243,207,255,223,191, 45,249,199,193,195,139,167,237, 79, 21,240,240,225, 67, 32, 9,108,140,139,136,136, 4, 6, 6, 66,
+ 90,169,180, 3,233,233,130,152, 35, 63,196,207, 6,147, 93,250, 35, 23,244,240, 74, 8,114, 99, 59, 77,253, 11, 76,147,199,143,
+ 31,135,140,251, 27, 27, 27, 51,128, 47, 34, 94,185,105, 27,241,105,114,227,250, 6,247,242, 92, 47, 47,103, 17,118,230,207,140,
+255,119,222,122,124,252,202, 83,130,197,119,102, 66,228,189, 59,119,128, 13,127, 8, 2,150,254, 88,219,245,163,128,188,162, 31,
+215,248, 15, 16, 0, 4, 16, 98, 88, 6, 88, 2,222,190,118, 73, 65, 74,136,147,149,229,239,223,127,224, 43,154, 25,210,210,179,
+129, 93,130,191,224,221, 0,223,126,252,184,126,235, 30, 27, 27,206, 65,145, 63,191,223, 25,106,221,135,103,250,172,194,251,107,
+151,168, 66,250, 12, 38, 58,119, 79, 92,212,100, 97, 22, 37,216,252, 71, 43,250,129,130, 12, 72, 59,129,241, 55,255,209,146, 35,
+ 80,144, 1,105,103, 44, 46,240,247,239, 95, 9, 9, 9, 96, 15,224,229,203,151, 64, 54,176,100,121,251,246, 45,144,132,220, 82,
+141, 95,239,235, 23,119,106, 90,246, 3,123, 0,221,197,182, 95,254,252, 45,234, 92, 61,177, 60,180,184,111, 11, 11,232, 14, 26,
+194, 77, 45, 73, 17, 1, 86, 6,214,191, 12,140,207,239, 95,125,248,234,163,178,168,208,197,119,207,206,221,125, 74, 76,243, 63,
+ 56,169,136, 85,136,129,137,153, 97,193,182,251,107,167,149, 38,117,204, 44,242,213,207,118,150, 39,232, 95, 96,243,191,215, 47,
+140,225, 3, 7, 3, 35, 43, 67,111, 79,200,233,195,187,156, 51, 25,219,115, 25, 79,148,225,105,254, 3,193,197, 23, 34, 54,223,
+ 63,126,225,100,254,198,193,161, 28,204, 10, 44,244, 63, 50,177,254, 97, 80,251,255,247,219,239, 55,207,143, 78,254, 24, 29,165,
+ 76,163,116, 12, 31,140,214, 4, 3,136,160, 45, 24,208, 52,255, 96, 93,176, 79,100,183,128,236,210,159, 1,117,244, 31,109,193,
+ 40, 77,103, 2,110,157, 63, 6, 15,234,172,164,176, 29,176,177,160,237, 74, 74, 4,247, 46, 0,211,100,184,139, 57,255, 63,193,
+111, 12,172,107,251,115,167,109,185, 80,234, 97,147,208,183, 44,164,109, 49,193,122, 11,190,119, 12,141, 59,186,162,159,214, 0,
+ 32,128, 16, 61, 0, 96,203,247,195,243, 59,119, 31,191,101, 97,101, 6,246, 1,126,255,249,123,238,220,217, 69,139,230,255,250,
+251,255,247,223,127,108, 44, 76,175,222,127,121,122,253, 56, 39,142, 41, 96, 96,209,169,169,252, 16,218,252, 7,247,251,215, 46,
+ 81, 3, 13, 0, 49,253, 7, 34, 38,166,127, 22,250,215,255,226,238, 4,160, 53,255,225,171,128,128, 69, 63,193,210, 31,173,249,
+ 15, 95,129, 0, 44, 10, 9,150,134,224,252,252,254,203,151, 47,172,172,172,144,230,255,191,127,255, 32, 36, 49, 21,192,226,254,
+202,115, 79, 15,242, 72,128, 38,126,121, 89,152,129,245, 1, 31, 59,235,135,119, 79,128,205,127, 22, 38, 38,130,205,127, 89, 33,
+222,107,247,238,255,249,245,139,157,133,237,203,151, 31, 23,239, 63, 3, 22,253, 4, 75,127,136,127,253,115,154,151, 78,154,248,
+237, 31,131,172,178,204,149,171, 39,128,165, 63,145,254, 5,130, 34,101,147,205,183,247, 49,124,252,195,192, 33,178,251,212, 53,
+ 96,233, 15, 44,250,241,151,254, 64,160,255,203,231,232,238, 83, 12,191, 62,127, 97,252,252,158,233,203, 71,150,223,191,255,126,
+ 98,255,241,141,227,217,253, 21, 85,183, 21, 12,212,240,204, 0, 3, 1, 60,229,112,128, 1,154, 32,126, 48, 27, 12, 6, 48,159,
+ 64, 90,253,192, 50,157, 1, 60, 27, 76,112, 66,152,146,210, 31, 88,196,255,199,189,100,158,118,203,129,128,105, 18,190,230,167,
+166,182, 16,152, 38,197,197,197, 33,235,130, 32,226, 4,211,100,138,131, 94, 65,207,196,207, 47, 95,137,242,137, 93,189,246, 8,
+ 88,250, 67,150,177, 18, 89,231,193, 1,242,168,206,104, 63,128, 18,176,101, 73,243, 22,188,247,136, 0, 4, 16,202,196, 44, 47,
+ 47,239,217, 3, 27,254,255,247, 83,144, 18,230,229, 98,215,210, 49,208,210,214,103, 97, 98,248,242,253,239,163,231,239, 78, 29,
+216,202,195,205,133,203,160,175,223,190,169,201, 63,255,241,147,227, 63,228,218,188,255, 12,156, 28, 63,128,201,248,221, 7,118,
+160, 0, 47,247, 31, 93,181, 7,135,207, 24, 2,173,192,223,252,135,183,250,129, 92,214,255,191, 25,254, 64, 87,143,253,101,225,
+ 34,216,252,135,183,250, 33,220,143,175,160, 75, 14,240,108,199,133,215, 1, 64, 18,216, 15, 0,146,239,222,189,227,227,227,131,
+140,255, 16,115, 41, 43,120,213,127,123,102,168, 61,195,164,195,211,170,189, 67,138, 39, 46,235,200, 6,246, 0,216,216, 57, 8,
+ 54,255,175, 61,122,165, 34, 43,178,119,207, 9, 6,240,246, 75, 32,249,251, 39,180,175,205,138, 91, 59,164,249,223,146,228,156,
+ 87,191, 64, 86,137,145, 36,255, 66,154,255,110,235,231,237,138,142,100,148,177, 96, 0,111, 9,102, 0, 31, 14, 1, 81,224,203,
+195,131,199,217,122, 63,203, 46,110,223,242, 67,253,152,130,170,206, 39, 78,134,251, 12, 15, 63, 63,120,253,186,237,239,151,247,
+ 50,133,113,197,248, 3,106,250,244,233,192,226,254,251,247,239,240, 34, 12,200, 5, 10, 14,137,140, 4,105,245,191, 4,111,147,
+ 38,102, 54, 24,216, 94, 38,175,244,103,128, 93,254,142,167,224, 35,117, 47, 49,145, 0,152, 38, 91, 27,106,214,109,222,238,110,
+ 99, 4, 79,147, 64,100,124,239,158, 71,112,204,163,183,223,228,132,185,240, 55,255, 11,102,109,174, 74,118,147,146,112,128,212,
+ 34, 16,167,226,233, 75, 17,217, 45, 24,237, 7, 80,177, 62, 64, 19, 1, 8, 32,244,149, 57,124,188, 60,231, 14,108,184, 47,163,
+174,164,170,201,199,205,249,239, 63,195,247,159,191,238,221,187,247,250,222, 5, 94, 30,110, 38,220,173, 90, 78, 14,142, 85, 59,
+236,241,180,241,129,122,185,185, 9, 52,247, 32,107, 64,129, 77,254,127,127,127,131, 74,127, 48,248,205,200,138,235, 48, 6,100,
+ 0, 89,127, 6,108, 2,195,203, 65, 34, 75,127,120, 29, 0,223,252, 5,172, 3,112, 6, 16,142, 58, 96, 49,108, 35,212,236, 54,
+216,158,216,223, 95, 20,241,234, 2, 54,255, 79,189,249,112,225, 54,104,192, 7, 94,238, 19, 44,253, 33, 0,216,252, 95,107,196,
+157, 19,168, 65,134,127,129,205,255,226, 77,171, 24, 91,235,183,139,155, 79,248,114, 5, 46,110,200,194, 42,195, 65,248,196, 39,
+ 96, 63, 96,251,166, 31, 79,222,223,125,253,246,249,203, 91, 60,204,127,249,172,245,108, 29,227, 28,105,154,112, 7,124,211, 47,
+ 25,107, 64,211,211, 5,201, 40,253, 25, 6,116, 74, 19,152, 38, 45, 45, 45,209,210, 36,176,244,103, 0, 77, 5,115,225,215, 11,
+108,254,187,238, 57, 25, 93,191,200,206,206, 78, 28,181, 55, 73,118,117, 5,169, 3, 8, 6, 8,102,101, 57, 90,103,224, 41,247,
+145,103, 2, 0, 2, 8, 75,249, 6,108,255,254,124,247,248,220, 1,208,114, 17,200,133,203,236,236,236,152,115,179,104,128,149,
+149,149,159,136, 35, 31,240, 0,200,128, 15, 51,176,201,255,231, 27, 51, 82,209, 79,204,137,213,144, 1, 31, 96, 81,136, 92, 26,
+ 18, 83,244,243,139, 74,253,194, 61,173,141, 31, 68, 55, 47,190,125,227, 42,217,254, 61,117,235, 49, 36,155, 33,151,254, 4,139,
+126, 8,136, 51,226, 38,207,191,160, 56,237, 47,131, 20,253,240,210,159,200,162, 31, 14, 60, 21, 67, 24, 32,149, 27,113,107,100,
+128,197, 55,100,211, 47,176,189, 15,223,253, 11,100, 64,154,255, 64,198,224, 63,212,129,140, 53,160,180,104,164,211, 26, 96, 77,
+147, 4,139,126, 8,112,173,153, 77,197,162,159,164,234,112,180,172,199, 5,208,110,132,103,192,152, 7, 6, 8, 32,236, 13, 92,
+ 22, 22, 22, 92, 99, 53,180, 0,144, 81,126, 72,209,207, 64, 98,209, 15, 25,245, 38,175, 40,100, 0,173, 92,250, 71, 76,247, 2,
+ 43,120,245,238, 35,241, 22, 33, 3,200, 40, 63,121, 69, 63, 37,254,133,140,242,111,254,242,133,236,162,127, 20, 12, 87, 0, 89,
+226,249,232,237, 55, 50,138,126, 72,249, 11, 31,237, 25,186,245,223,112,173, 3,240,200, 2, 4,208,232,165,240,163, 96, 20,140,
+130, 81, 48, 66, 1, 64, 0,141,222, 8, 54, 10, 70,193, 40, 24, 5, 35, 20, 0, 4,208,104, 5, 48, 10, 70,193, 40, 24, 5, 35,
+ 20, 0, 4,208,104, 5, 48, 10, 70,193, 40, 24, 5, 35, 20, 0, 4,208,104, 5, 48, 10, 70,193, 40, 24, 5, 35, 20, 0, 4,208,
+192, 95, 10, 63,210,244,254,120,241,152,120,189, 28, 18,178,163,225, 60,170,119, 84,239,168, 94, 26, 93, 10, 15, 16, 64,131,186,
+ 7, 64,234, 46,240,123,247,238,237,129, 1, 32,123,180,122,199, 3, 62,126,252,248,232,209,163,227,199,143,159, 59,119, 14,200,
+ 32,207, 16, 42,158,242, 54, 10, 6, 57,184,121,243, 38, 73,138, 51, 50, 50,200,182,136,108,189,163,128, 84, 0, 16, 64, 44,131,
+214,101,164,150,224, 64,245, 29, 29, 29, 97, 97, 97,200,218,149,148,148,136,215, 14, 4,171, 87,175, 14, 13, 13, 85, 2, 3,252,
+234,211,210,210, 8,154, 9,116, 12,214,213,208,187,119,207, 39, 70,239,251,247,220, 52, 10,219, 87,175, 94,253,252,249,147,145,
+145,145,131,131,227,199,143, 31,192, 10,224,244,233,211,250,250,250, 42, 42, 42, 36,153, 67,204, 81, 25,224,138, 60,147, 24,101,
+ 51,103, 78,167,182,222,116, 28,138,209,143, 30, 35,152,174, 24,234, 25, 25,155, 48, 42,191,122,198,176,235,161, 12,236, 26, 4,
+157,231,238, 14, 58, 82,151,188,195,171, 33,103, 65,167,167, 11, 82,178,178, 30, 88,170,246,247,247, 19,220,112,151,154,154, 6,
+244, 22,102,172,150,148, 20, 19,163, 29,158, 42, 38, 76,152, 96,111,111, 15, 44,199,151, 45, 91,246,233,211, 39,130,150,162, 20,
+ 73, 44,204, 17, 86,108,233, 25,233, 93, 59,186, 75, 92, 75, 32,130,179,103,207,194,170, 55, 38, 6,180, 75,153,155, 27, 75, 78,
+129,220,236,148,144,144, 48,186, 35, 1, 25, 64,246,133,193, 87,255, 3, 4, 16,246, 10, 0,243,176, 17, 26, 29, 63, 66,197, 10,
+ 0, 94,250, 3,221, 9,217,147, 2, 52,129,200, 10, 0,146,201, 33,197, 25,228,220,171,242,242,114,194,122, 87, 11, 17, 50, 24,
+103,136,125,245, 37,112,139, 58, 3, 17,135,164,145,119, 15, 6,176,237, 47, 38, 6,189,224,129,147,147, 19, 88, 25,124,248,240,
+129,159,159,255,212, 41,208,229,201,196,212, 1,192,224,133,132, 18, 48,196,130,131,131,129, 1, 78,176, 38,216,180,105, 3,132,
+225,231, 23,128,139,141, 75,239,247, 99, 57,208, 32,177,154, 2,103, 35,115,129, 12, 92,122,119,236, 64,185,220,236,208,161, 67,
+109,109,109,200, 1,181,100,201, 18,252, 9,163,179,179,179,131,189, 19, 92, 16,135,162,100,129,122, 70, 82,147, 52,253, 51, 17,
+114,233, 15,244, 50, 48,198,151, 46, 93,122,228,200, 17,175,168,106, 92,138,143, 97, 92,161,189,126, 53,168,244,255,247,239,223,
+172, 89,179,128,218,249,228,236,177, 22,250,240,238,224,141, 27, 55,128,220,200,200, 72, 32, 59, 42, 42,138,152,106,163,103, 55,
+244, 22,226, 23, 59,159, 3,245, 46,203,231, 2, 26, 89,238, 81,198, 0,142,189,229, 11,151,101,216,227,235, 19, 24, 27, 27, 19,
+223,212, 27, 45,253,145, 1, 64, 0, 49, 97, 45, 86,128,217, 27, 24,217,104, 25,158,200, 1, 25, 74,198, 94,144,245, 66, 26,227,
+196,235, 5, 58,216, 5, 12, 32,117, 0, 73, 9, 2, 82,250, 3,173, 3, 93, 79, 1,182,148, 72, 95, 48,134,189,135, 32, 60, 34,
+184, 0,207,150,233, 16,132, 71,132, 96,233,255, 31, 12,136, 31,141,121,255,254, 61,176,172, 7, 86, 0, 73, 73, 73,209,209,209,
+108,108,108,192, 58, 0,216, 15, 0,122,159,153,153,153,224,241,250,215,174, 93, 3,218,187,102,205, 26, 72,112, 1, 45, 93,187,
+118, 45,176,161, 7, 20,167,115, 82, 70,171, 12,104,212, 4, 1,150,254,192, 36, 17,126, 35, 12,212,210, 71, 13,252,138,159,229,
+104,125, 2, 92, 0, 24, 62,165,165,165,138,138,138,100,184, 1,168, 23,216,246, 23, 22,222, 75,121,219, 31, 94,250,147,164, 29,
+ 94,250, 23, 23, 23,227,209,142,156,252,128,205,127, 59, 59, 59, 32, 3, 88, 7, 0,251, 1, 4,203, 13, 52,189,225,150,160, 86,
+233,178,124, 78, 96, 63,160,204,189, 20,191, 94, 96,219, 31,104, 23,176, 59,238,130, 1, 32, 82,163,205,127, 60,165, 63, 16, 0,
+ 4, 16, 19,182, 46, 39,244, 98,104, 72, 59, 26,222,220, 35,166, 56,134,228, 25, 74,242, 27,121, 3, 56, 88,203,116, 82,181,192,
+ 43, 15, 96,243,159,224,249,183, 3, 11,224,165, 63,144,124,250, 20,122,225,198,147, 39, 79,240,103, 54, 96,219,255,219,183,111,
+ 76, 76, 76, 64, 63, 2,217,207,158, 61, 99,101,101,101, 1, 3, 32, 3,114, 84, 39,218,134,126,180,140, 58,113,226, 68, 96,209,
+ 31, 18, 18, 2, 44, 80,128,134, 0, 11, 71, 32, 27, 40, 53,105,210,164, 97,150, 91,224,165, 63,144, 13, 44,187,225,109, 11, 72,
+224,195, 59,136, 68,150, 47, 64,101,192, 16, 3, 38, 42,242,102, 77, 42, 43, 43,129,122,241, 68, 13,158,210,191,175,175, 15, 24,
+101,192,138, 4, 88,124, 31, 62,124,152, 1,124, 34, 19,241,165, 63, 68, 59, 48,205,156, 57,115, 6,162,157,160,141, 64,245, 17,
+ 17, 17, 16, 46,176, 14,112,112,112, 0,218,190,113,227, 70,130, 3,137,192,230, 63, 3, 35,195,210, 60,232,249, 19,192,126, 64,
+164, 53, 59,168, 31,128, 23,224, 41, 37, 70,187, 5,104,165,127, 90, 57,122,169, 8, 16, 64, 44, 88, 19, 43,252, 98,232,123, 72,
+ 23, 67, 19, 76,235,212, 42,253,169, 82, 1, 80, 2,128,149, 7,217, 30,161, 27, 0, 22, 37,192,162,255,197, 11,232, 45,140,200,
+108, 92,224,245,235,215,192,156, 12,108,233,223,185,115, 7,168, 29,152, 87,127,253,250, 5,204,126,192, 10, 0, 72,254,253,251,
+ 23, 88, 61,172, 95,191, 30, 87, 68,239,221, 11,106,135, 2, 75,124,100, 5, 16, 54,164,120,194,147, 66,144, 71,120,112,177,241,
+ 52,246,113,141, 5,225, 25,252, 65, 27,249,129,180, 73, 73, 74, 3, 29,236,157,140,168, 21, 42,100,220,255, 30, 49,195,131, 72,
+ 77,120, 72, 29, 9, 41,233,128, 97, 72,124,155, 20,162, 87, 85, 85,149,129,232,233, 22,100,144,153,153, 9, 31,236, 2,178,129,
+197, 55,208, 16,226, 75,127,123,107,208,145,140,192,182,127, 73, 73, 9,176, 97, 14,209,238,235,151,138,255, 98, 63,120,243, 31,
+ 14, 32, 99, 65,219,182,109,211,208,208, 0, 54,217,241,235, 13,183, 68, 57,152, 11, 60, 22,196,176,124,217,249,155, 18, 55,241,
+235, 29, 5,100,148,254, 64, 0, 16, 64,216,231, 0,128, 93, 42, 72,195, 31,126, 49, 52, 73,165, 63,214,118, 40,158,225,105, 92,
+122,145,197,105,119,224, 31,208,167,240, 99,199,145,221, 64,222,136,237,255, 85,130,100,187,228,139, 15,225, 9, 79,184, 35,209,
+ 74, 4, 25, 25, 25,100, 5, 88,131,235,221,187,119,188,188,188, 64,242,216,177, 99,192,106, 0, 88,250, 3,155,252,144,171,111,
+128, 69,219,239,223,191,127,254,252,137,167,137, 10,233, 21, 97,134, 9, 80,100,205,154, 53, 64, 89, 60,193, 69,249, 28, 0,176,
+172, 71, 46,238, 33,108, 34,171, 1, 96,145, 68,114, 29, 0, 30,226,135,164,124,196,100, 18, 88,144,248,185, 37,228, 58,146, 1,
+118,177, 59,121,131, 18,192, 78, 0,100,246,130,120,237,192,168,132,143,191,219,216,216, 0, 75,112,146,218,254, 64,237,127,254,
+252, 65,214,126,240,232,223,158,206, 12,130,205,127, 72,137,143, 9,250,251,251,189,163,107,112,233, 69, 26,253, 71,237, 31, 16,
+161,119, 20,144, 13, 0, 2,136, 5, 79,170,133, 52,255,233,220,246, 71, 30,137,162,207, 82, 78,228,209, 30,228,245, 33,248, 75,
+ 52,156,253, 89,216,232, 63, 25, 53, 1,124,244, 31,127, 77, 16, 29, 29,205,205,205,205,195,195, 3, 44,205,249,249,249, 5, 5,
+ 5,129,205,171,216,216, 88,136, 44, 7, 7,135,155,155, 27,208, 23,152,199,252, 1, 75,124, 96,233,255,227,199, 15,160, 46,118,
+118,118, 96,246,254, 15,186,236,243, 47, 80, 28, 88,250, 3, 25, 4, 7, 40,112, 13, 3, 2, 27,170,116, 24, 52,195, 53, 27, 76,
+ 12,128,212, 1, 36,196, 99, 19, 22,207,134, 93, 15, 5, 79, 77, 17,107, 8,114,243, 31, 94,109, 19,217,176, 64,110,254, 99,173,
+242,241,131,101,203,150, 65, 12, 1,214, 1,100, 12,253, 67, 90,126,192,174, 97, 97, 97,225,153, 51,103, 96,218, 9, 36,143,137,
+ 19, 39,162, 93,210,185, 98,197,138,131, 7, 15, 2,211, 21,164, 69,130,103,125,250,132,137, 19, 34, 44, 80,154,255,209,147,190,
+173, 56,246, 27,168,215, 48,202, 48,195, 62,131,248,181,237,163,128,200,230, 63, 16, 0, 4, 16, 19,158,118, 49, 36, 17,192, 39,
+ 3,240, 15,195,149,151,151,147,231, 62, 92,122,149,192,247,145, 18,223,138, 71, 3,144, 21, 65,164, 14,155, 18,179,184,115, 48,
+128, 89,179,102,245,245,245,193,185,144,210,223, 15, 12,128, 12, 96,150,195,170, 11, 88, 97, 0, 75,249,247,239,223,191,121,243,
+ 6, 72,126, 3,131, 47, 95,190,124,250,244,233,227,199,143,192,222, 0,176, 7,128,231, 74, 31, 96, 1, 4,108,233, 19,172, 68,
+ 7, 21, 56,132, 4,224,130, 64,239,195,217,120,198,181,145,199,253,145,219,242, 36, 53, 11,208, 20, 3,139, 99, 96, 24,146, 61,
+ 19, 0,212, 75, 76,146, 6,150,248,192, 52, 0,153,248, 5,214, 1, 16,191, 19,127,233, 66,117,185, 61, 80,251,191,149, 2, 64,
+237,192,166, 55, 68,251,161, 99,255, 96,205,113,156,205,127,248,128, 15,104,220,102,249,210,204,204, 76,160, 57, 5, 5, 5, 4,
+173, 6, 53,255, 25, 24,151,194,154,255, 81, 19,191, 49, 71,124, 92,126,236, 23, 80,111,231,142,174,209, 66,156, 70,165, 63, 16,
+ 0, 4, 16, 11,174,242, 5, 62,244, 15,159, 12,192, 95, 56, 66,202,113, 72, 91,158,212,225, 26, 52,189,144, 62, 1, 80,144,188,
+ 97, 31,248, 50, 80,122, 2, 72,195,159,188,241, 31, 72,195,159,152,241, 31,120,246,134, 48, 26, 27, 27,231,207,159, 15, 27, 66,
+241,131, 48,128,205,127, 92, 21,128,176,176,240,219,183,111,129,237,253,215,175, 95, 3,123, 0,192,246, 29,164, 7,240,245,235,
+ 87, 96, 77, 0, 44,253,129,213, 64, 89, 25,206, 57, 55, 72, 51, 31,235, 18, 97,136, 44, 30, 55, 83,101, 14,128, 72,113,100, 0,
+ 25, 54, 65, 47,224,170,171, 91, 91, 91, 69, 68, 68,104,154, 36, 48,155,255,112, 64,112, 38, 0,179,249, 79, 82,219, 31,216, 71,
+140,137,137, 1, 70, 46,208,251, 85, 85, 85,192,222, 15,241, 23,218,212, 84,216, 31, 56,112,128,113, 13,232,126,214, 93, 53,188,
+110, 45,159,129,218, 91, 59, 65,173,120,252, 93, 16,200,218,127,112,171,127,217,193,131,135,255, 51,254, 47, 44, 40, 84, 87, 87,
+ 39,198, 82,160,222, 8, 43, 86, 68,171,159, 1,164, 87,220, 77,130,140,153,143, 81,128,165, 60,239,172,192,172, 24, 32, 35, 4,
+ 0, 1,196,130,167,237, 15, 44,253,145, 39, 3, 8,118, 93,145,203,113,242,250, 1, 16,189, 20,142,252, 64,220, 76,102, 57, 62,
+232, 19, 28,100,144, 10,126, 85,119, 98, 98, 34,218,248, 12, 80, 16,146, 15, 49,129,140,140,204,157, 59,119,128, 37, 62,176,201,
+255,251,247,111,200,208,255,143, 31, 63, 32,107, 73, 33,115,194,202,202,202,120,106, 86,160,225,144, 78, 0, 60, 37, 0,131, 26,
+ 77, 4, 43,160,197, 28, 0,242,136, 16,174,176,194, 42, 14, 12, 64, 96, 29, 16, 30, 30,190,114,229, 74,226, 7, 42,209,216, 29,
+ 29, 29,105, 79,211,195,128, 41, 13,219, 70, 48,119,119,247,251,247,239,163,237, 66,128, 0,160, 56, 3,222, 77, 97,161,161,171,
+ 67, 67,157, 93, 93,239, 97, 78, 54,188,125,235,204,192,240, 62, 61, 29,103, 78,132, 95,133, 8,233,100,236,218,181,139,129,148,
+235,204,152,152, 24, 65,141, 24, 72,233,127,233,207,252,253,160,139, 48,129,165, 63, 49, 89, 3,146,156,128,173,126, 32, 89, 88,
+ 84,168,174,166, 78,164,165,165,101, 37, 96,189, 12,192, 86, 63, 68,175,132,155, 36,104,180,105,180,240,167, 61, 0, 8, 32, 22,
+ 92,221,121,248,196, 47,124,153, 7, 49, 99,226, 84, 25, 11, 34,117, 7,192, 8, 4,240, 33, 23,120, 25, 7,217,189,129, 44,136,
+117,204, 20, 88, 55,108,219,182,237,207,159, 63, 31, 62,124,128,204, 1, 48,128, 87, 7, 1,185, 64, 54,193,184,203,207,207,159,
+ 56,113, 34,164, 26, 64, 30,247, 7,138,211,186,238, 4, 22,247,196, 20,250, 88, 75, 67,204,138, 1,216,196, 38,178,244,199, 44,
+133,145, 39,132, 9,118, 2, 48, 5, 31, 60,120,192, 64,196, 18, 3,248, 0, 44,170,203, 93,136,241, 47,176,159, 7, 44,250,145,
+ 7,223,137, 1, 64,237,255, 86, 10, 2,203,125, 32,123,193,254, 95, 43,142,253, 2,106, 63,124,156,132,209,170, 67,135, 14, 21,
+ 20, 20, 16,217,234,135, 3, 72, 34, 92,121,252, 55, 80,175,132,187, 36,172, 62, 33, 74, 47,100,187, 47,100,122, 31, 45,154, 70,
+119, 2, 51, 96,187, 14, 12,109, 39, 48, 64, 0,177, 96,205, 30,144, 77, 85,200, 77, 63,130, 67, 64,232,217,131,220, 58,128,114,
+ 67,224,167, 65, 16, 9,128,149, 13,214, 33,108, 98, 42, 33,204, 49, 31,226, 71,129, 48,199,124,136, 28, 5,130,207, 84, 35,231,
+109,172,130, 88,155,105,222,222,222, 75,151, 46,101, 99, 99,251,249,243, 39,176, 14,248,247,239,159,128,128,192,251,247,239,137,
+217,252,172,165,165, 5, 52,127,247,238,221,144,101, 63,144, 61, 1, 67, 46,131,237,219,183, 15, 24, 8, 91,182,108, 33,163,244,
+135,151,149,247,202,203,241,116, 85, 75, 75, 75, 25,112, 44,159, 43, 43, 43,195, 63, 7,144,158, 46,136, 75, 47,176,237, 79, 76,
+ 57, 78,176, 15,132, 7,184,183,124,134,179, 73, 42,253,167, 77,155, 70, 94,116,244,116,247,130,154,252, 20, 0,172,149, 37,252,
+246,233, 81,128, 7, 0, 4, 16,206,101,160, 4, 69,104, 10,232,185, 3, 0,115,174,143,232,106,134,204,130, 15,164,151,147, 76,
+215, 66, 70,183, 32,149, 19,218, 72, 23,178, 32,126, 31, 69, 71, 71,223,189,123,119,255,254,253,223,191,127,255,251,247,175,175,
+175, 47,176, 40, 39, 62,204, 93,193, 0,210,118, 35,178,225, 79,173, 57, 0, 92,108, 60,165, 33,218,186, 20, 98,118, 51, 49,192,
+143,250,185, 23,138, 28, 44,192, 92,144,246, 52,157, 17,182, 17, 12, 34,133,181,167,133, 39,252,157,157,157, 9, 38, 72, 50,164,
+224,254, 5,198, 72, 96, 96, 32,228,244, 33, 82, 1, 83,248,123,160,118, 63,255, 52, 72, 91, 1,178,232, 19,249,152, 7, 90, 0,
+227, 24, 35,178,245, 2, 27,248,184,234, 57,136,212, 40,192, 15, 0, 2,104, 48, 30, 6, 71, 70,179,133,254,141, 80, 74,108,164,
+228,148, 55,106,249, 84, 25, 12,208, 4,127,253,250,197, 12, 6,212,142,208,233, 3,164, 23, 75, 66,130, 28, 31, 70, 24,212, 67,
+ 15,134, 66,238, 29, 2, 75,127, 72, 69, 59, 56,183,152, 82,184, 87, 6,172,157,240,208, 59,213,151, 99,226, 63,231,135,118,149,
+229,232,160, 16, 16, 0, 4,208,232,165,240,163, 96, 20,140,130, 81, 48, 66, 1, 64, 0,141,222, 8, 54, 10, 70,193, 40, 24, 5,
+ 35, 20, 0, 4,208,104, 5, 48, 10, 70,193, 40, 24, 5, 35, 20, 0, 4, 16,203,104, 16,140,130, 81, 48, 10,144, 1, 35, 38,235,
+ 63,156, 24, 5,195, 10, 0, 4,208,104, 15, 96,132, 2,172,135,131,143,130, 81,192, 8,198,140,160, 51,160, 25, 49,192,232,222,
+172,225, 6, 0, 2,104,244, 82,248, 17,170,215,215,118,230,240,246,111,156,159, 46,162,153,195,196, 4, 89,174, 10, 95,209,248,
+ 31, 6, 32, 10, 22,109,186,140,172,247,195,131,253, 28, 28, 28, 16,245,144, 3,180,145,245, 66, 78,205,251,247,239, 31,144,253,
+251,247,111, 94, 89,187, 17,144,174, 24,153, 89,216,255,255,251,243,239,223,159, 45, 71,158, 32, 47, 10,197,165, 23, 24, 68, 47,
+ 95,190,148,144,144, 32,195, 94, 74,244,142,230,125, 6, 82, 86,106, 1, 4,208,144, 31, 2,170,174, 70, 92, 97,215,218,106, 70,
+ 63,189,167, 64,151,234,181,154,181,194, 25,164,186, 28,215, 62, 85, 92,226,164,154, 51,220,250,170,191,190,178,188,189,175,250,
+227,146,244,159,199,183,254, 43, 62,225,213,250,198, 39,207,198,205,139, 75,253,145, 35, 71,108,108,108, 32, 69, 63,164, 16,135,
+ 52, 98,225,133,248, 63, 24,120,248,240, 33,154,222,115,231,206, 25, 27, 27,115,114,114,178,176,176, 0, 53,194,181, 67,202,253,
+191, 48,240,243,231,207,179,103,207, 58,200,218, 13,254,208, 3,186,252,237,219,183,199,143, 31, 23, 16, 16, 64,219, 24, 65,184,
+ 79,192,200,196,206, 33, 36, 32,168,254,245,203,211, 47,159, 31,131,186, 1,140,255, 25,254,227, 27, 17, 2,134,210,154, 53,107,
+110,221,186, 5,100, 3,131,177,184,184,152,120,235, 32,122,239,221,189, 3, 12,115, 54,118,246,130,130, 66,154,238, 66, 24,225,
+ 0, 32,128, 6, 81, 5,128,235,164, 73, 6,188, 7,141, 65, 10,110,228,162,156,120, 64,137,222,225, 4, 40,220, 59, 74,135,210,
+235,243,195,235, 31, 15,173,250,246,237,167,130, 57, 19,167, 12,163,234,163, 75,166, 12, 23,223,255,228,185,192, 21,247,134, 81,
+ 26,171,166,107,215,174, 1, 75, 16, 96, 97,199, 2, 3,144,202, 0,210,240,255,243,231, 15,176, 4, 7,182,223,129,165,255,190,
+125,251,152,133, 77,144,245,126,251,246,237,252,249,243, 22, 22, 22,108,108,108,240, 75,211,128,218,129,101,211, 31, 48, 0,106,
+252,254,253, 59, 80,205,151, 47, 95, 6,115,204, 86, 85, 85, 33,103,162,207,159, 63, 27, 24, 24,144,161,119,241,178,179,156,156,
+ 98,192, 2, 25, 84, 1, 48, 50,252,135,236, 22,192, 93, 44, 63,123,246, 12, 24, 50, 81, 81, 81, 74, 74, 74,144,115, 41,132,132,
+132, 76, 76, 76,176, 42, 78,112, 71,217, 25,119,249,198,141, 3,188, 92, 69,253, 77,134, 70, 58,207,159,188,218,181,237,128,130,
+142,225,167, 79, 31, 71, 11,107,178, 1,218,120, 47,242,210,127,128, 0, 98,193, 90, 22, 64, 74, 1, 92,108, 26,149,254, 89, 89,
+216,239, 73,127,255,254,253,242,229,203,241,212, 1,144, 18,156,212, 38, 60,133,122,225,109,127, 50,154,255,104, 55,207,224, 82,
+ 64,163,208,134,244, 24,224, 36, 68,240,221, 59,208,174, 25, 33,161, 61,131, 48,249,254,122,124,141,253,216,226,159,223,254, 5,
+169, 48,171,139,254,249, 39,244,159, 85,136,249,243, 91, 54,206,207,223, 53, 47, 78, 57,171,150,241,141, 75, 30, 91,187,149,241,
+250,245,235,192, 18,220,201,201, 9, 82,142, 3, 1,176, 16,135, 92,125, 3, 44,196,129,237,247,199,143, 31,239,223,191, 31, 88,
+ 19,160,237,124, 3, 42, 3,170,185,120,241, 34,176,254, 0, 54, 96,217,217,217, 33,122, 33, 21, 0, 80, 35,176,116,187,124,249,
+242,143, 31, 63, 8,110,154,123,240,224, 1,208, 22, 96,201, 11,116,131,184,184,184,170,170, 42,100,112,137, 24, 64,137, 94,160,
+ 83,107,106,106,224,135,161, 2, 75,115, 96,141, 40, 38, 38, 38, 44, 44, 76,100,233, 63, 47, 41,201,203,208, 16,200,150,200,205,
+229,228, 18,255,242,233,209,167,143,119,255,255,255, 11, 58, 48,238, 31,129, 59,168,129,197,189,136,136,200,162, 69,139,226,227,
+227, 55,109,218, 4,228, 30, 58,116,232,215,175, 95, 12, 12,114, 88,213,191,109, 47,130,179,121,126,253,150,250,243,163,160,180,
+190,191,167,177,187,103,154, 52,211,223,105, 61,125, 78, 17, 81,184,244,142, 2,146, 74,127, 6,164,163, 64,129, 0, 32,128,176,
+247, 0,144,143, 64,193,197,166, 58,160,255, 25,206, 84, 24,128,130,213, 1, 36, 1,120,157, 58, 63,112, 17,166,108,226,250, 56,
+154, 54,195, 33,134, 35,147, 4,175,237, 30, 64,240,227,195, 27,181,251, 91, 95, 49,255, 85,225,103,144,151,251,207,172,199,198,
+162,164,196,246,243,199,207,163,143,127,126,100, 97,254,199,250, 99,207, 98, 38,175,252,127, 44,232, 99, 65,240,203, 47, 5, 5,
+ 5, 29, 29, 29,129, 69, 39,176, 24, 5, 54,228, 33, 13,127, 96,217, 13,108,165, 30, 60,120,144, 9, 12,176,234, 5,170,188,122,
+245,170,141,141, 13, 31, 31, 31, 80, 59, 80, 4, 88,250, 3, 75,177, 79,159, 62,157, 62,125, 26, 88, 13, 0, 77,131,204, 4,224,
+ 2,151, 46, 93, 58,118,236,216,253,251,247,129, 90,128,182, 75, 72, 72, 0, 91,193, 86, 86, 86,220,220,132,183,130,147,173, 23,
+232, 36,200,205, 63,200,130,144,115,161,129,173, 40, 98,170, 16, 38,102, 54,100,238,139,201,147, 37, 2,100,186,187, 39,254,254,
+253, 21, 28, 56,140,255,128,165,255,127, 80, 23,224, 63,238,241,183,147, 39, 79, 86, 84, 84, 0, 3, 45, 40, 40, 72, 86, 86, 22,
+ 88,209,110,219,182,205,220,157,208,166, 95, 70,198, 37,119,158,175,189,253,116,211,198,133,204,204,140, 69,185,177,250, 18, 34,
+179, 10,234,103, 19,163,119, 20,224, 40,253,145,155,252,104,245, 1, 64, 0,145,176, 10,136,214,199, 61, 42,225, 6,180,104,194,
+ 83,168,151,129,172,113,127,170,183,229,225,151, 89, 18, 95,136, 99, 85, 9,108,251, 19,217,252, 7, 22,130,192,226, 15,147,139,
+ 44,136, 9,224,106,224,183, 12, 98,114,177,130,119, 87,207, 61,123,250, 73,140,151, 69,137,247, 63,139,200, 63, 22, 75, 15,110,
+253,197,156, 70,189,236,252,156,108, 95,190,127,251,246, 87,142,249,219,251, 75,199,176,148, 98, 76, 76,144,203,238,111,223,190,
+ 13,108,173, 3, 11,113, 97, 48, 0,182, 76, 5, 4, 4, 62,126,252, 8,108,147, 2,139, 39,200, 40, 63,154, 94,136, 56,176,216,
+ 5,214, 1,183,110,221,226,226,226, 2,234, 2, 54,159, 69, 69, 69,121,120,120,128, 34,192, 42, 4, 50, 52,132, 89,121, 32,183,
+223,119,239,222,125,247,238, 93, 69, 69, 69,119,119,119, 51, 51,179,111,223,190,237,219,183, 15,216,177, 0, 86, 63, 4,219,254,
+187,247,236,189,247,252, 35,175,138,133,154,123,178,180,153,223,251,159, 76, 64, 17,130,122,129,165, 63,176,194, 0, 86, 30,192,
+ 34, 88, 79, 79, 15, 62,140, 3, 97, 16, 44,253,129, 69, 63, 55,143,148,144,176,206,210, 21,151,146,230,205,219,118,254, 60, 16,
+ 1,123, 0, 12,160,233,238,175, 80, 53,140, 64,132,111, 61, 16,176,160, 7,182,250,115,114,114,120,121,121,129, 65,183,118,237,
+ 90,160, 99,222,188,121,163,166,166, 70, 48,117, 77, 60,127,187,231,196,149,217, 61,149, 44,204,223,153,254,126,238,154, 48,111,
+229,161,179,207,152, 88, 72, 61, 97,116, 20, 16, 9, 0, 2,136,133,248,130,126, 48, 79,197,140,216,106, 0, 50,116, 67,210,232,
+ 13,102,247, 2,222, 15, 32,216,243,248,252,249, 51,176, 89, 10,108, 86,155,154,154,162,113, 79,157, 58, 5, 17,196, 10, 32,178,
+ 64, 18,216, 50, 5, 54, 99,129, 69, 3, 68, 16,153,139, 21,240,253,120,187,237,209, 15,233,247,204,134,124,140,162,175, 25, 84,
+ 88,248,153, 24,133,255,255,120,249,245, 37,227,213, 71,255, 94,124,253, 1, 44,131, 25,254,221, 98, 48,114,199, 85, 1,176,179,
+179, 3, 75, 97,105,105,105, 87, 87, 87, 96,201, 14, 44, 34,223,190,125, 11, 44,146,128, 82,192, 34, 30,114,252,209, 63, 12,189,
+ 16,237, 64, 5,192,100, 15,236,248,170,168,168,240,243,243,127,249,242,229,252,249,243,192, 90, 1,104,230, 79, 48,192,211, 42,
+ 2, 86,111, 79,158, 60,209,215,215,119,112,112,144,145,145,249,250,245, 43,176,254, 0,118,115,143, 31, 63, 78,112, 48, 7,168,
+247,229,187,143, 66,106, 22, 74,182,225, 2, 50,106, 63,191,126,120,116,114,235,237,189, 11, 9,234,133,204, 94, 0, 59, 55,226,
+226,226,192, 2, 23, 88, 19, 64,138,126,200, 88, 16,144,141,245,134, 28,104,181,199,194, 33, 32,168, 46, 32,164,206,196,196, 10,
+ 44,238,231,206,223,159,148,232, 8,209,155,154,154, 10,116, 60, 68, 47,216,203,224,162, 0,219, 52, 0, 48, 96, 55,111,222,156,
+149,149, 37, 41, 9, 58,224,115,239,222,189,192,202,140, 19, 12,188,189,189,143, 93,251,142,199,215,203,110, 62,238, 61,125, 99,
+ 78, 71,185,140,186,252,215, 47,239, 55,110, 63,125,233,242, 77,129,255,255,216, 94,188,244,206,137, 62,122,245,251,104,121, 77,
+ 42, 64, 59,233, 7,179, 67, 0, 16, 64, 44,152,101, 1,252,144, 91, 92,236, 65, 5,200, 46,184, 41,212, 75,246,248, 15,229,173,
+126, 98,164,240, 20,229,100,175, 26, 2,230,100, 96,113,255,254,253,123,172, 92, 34, 1,176,182, 0,150,191,192, 66, 95, 65, 65,
+ 1,147,139, 9, 94,191,121,124,236,249,119,111, 46,174,195,143,255, 73, 25,177, 43,254, 60,251,254, 90,214,250,174, 75,255, 30,
+124,252,242,235,255,211,207,127, 57, 89,152,254,124,124,193,143,173, 29, 3,175, 3,128, 37,230,195,135, 15,111,220,184,161,173,
+173, 13,116,240,137, 19, 39, 32, 35,251,184, 6,241,129,122, 33,157, 0,136, 94, 96, 29,240,248,241, 99, 93, 93, 93, 96,241, 13,
+172, 63,128, 34, 64,113,200,234, 32, 60, 61,128, 71,143, 30, 1,205, 55, 54, 54, 6,150,254, 64,197,192, 46,136,185,185, 57,208,
+106,160, 56,176,230,192, 31, 74, 64, 53,255,152,216,164, 13, 92,128,165, 63, 19, 51, 43, 39,159,168,156,185,247,195, 19,155,240,
+235, 5,186,243,195,135, 15, 79,159, 62,149,147,147,179,182,182, 6, 90, 10, 25,249,137,143,143,135, 40, 0,214, 97,120, 44,229,
+224, 16, 22, 22,213,255,245,243,227,155,183,231,127,254,124,255,251, 55,104,126, 27,162,247,229,139, 23,112,189,160,214, 63,142,
+ 90,239,249,243,231, 75,151, 46,141,142,142, 6,134, 21, 3,248, 58, 26, 96,111,160,178,178, 18, 88, 27,193,148,224, 92,158,120,
+235,211,183,242,131, 23, 58, 74,210,109,125, 92,190,126,121,179,106,221,193,153,115,215,110, 47, 74, 80,122,245,164,243,211, 11,
+ 33, 33, 97, 60,122, 71, 1,145, 99, 65,152, 85, 2, 64, 0,177, 96, 29,138, 33,200, 30,228,128,242, 53,154,196,128, 22,211, 22,
+250,223, 32,134, 92,118,163, 85, 6,212, 56, 12, 18, 39,184,121,243, 38,108, 30, 15, 11,151, 36, 0, 44,130,119,239,222, 13,185,
+196, 3,153,139,181,155,127,241,221,247,143,191,254, 93,124,253,231,217,135, 63,226, 39, 88,244, 86,221,121,248,224,234,205,147,
+191,254,176, 48,255,250,199,240,227,215,255,247,255,255,137, 10,254,199, 90,136,195, 23,128, 66,150,241,188,124,249, 82, 94, 94,
+ 30, 88,111, 65,134,125,128, 36, 98,131, 19, 33, 0,223, 52, 0, 33, 7,231,205,113,192,202, 9,114, 11,138,162,162, 34,114,197,
+118,230,204, 25, 32, 9, 12, 94,200,165,123,184,174,253, 1,134, 22,144,252,254,237,229,151,207,143,255,254,253,129,172,119, 19,
+184,170, 6,118,131, 64,122,255, 99, 31,251, 7,198,227,228,201,147,129,205,124, 27, 27, 27, 32,247,232,209,163, 27, 54,108,200,
+206,206, 70, 42,253,113,130,231,223,126,198,110, 59, 81, 16,230, 29, 18, 27,252,237,199,167,245,155, 14, 76,152,182,108,145,155,
+ 41,176,244, 31, 45,187,169, 94, 19, 32,215, 1, 0, 1, 68,205,157,192,200, 35,209,184,216,195, 9, 12,134, 82, 0, 50,118, 79,
+252,248, 15,158, 57, 3,252,113, 4, 44, 62, 92, 93, 93, 5, 5, 5,177,114, 73, 2, 64, 93, 64,189,240,226, 30,141,139, 6,190,
+255,229,251,205,200,112,230,205,207, 87,127,255,238,189,247, 99,213,234, 31,251,158,136,222, 97,227,127,242,241,247,227,207,255,
+190,254, 97,248,246,231, 63,187,176, 4,174, 34, 27,178,210,255,239,223,191,127,254,252, 17, 22, 22,230,225,225, 1,214, 1,191,
+127,255,134,136,160,109, 7, 67,214, 11, 89,233, 15, 84,243,253,251,119, 32, 87, 86, 86, 22,216,178,150,148,148, 4, 86, 27,192,
+ 54, 56,176,230,131,152,140,103, 92, 20,216, 12, 7,246, 21,206,158, 61,251,228,201, 19,200, 53,156, 39, 79,158,252,242,229, 11,
+ 80, 28,216,249,192, 31, 68, 64, 53, 76,255,126, 61, 61,191,231,195,147, 91,255,254,254,254,254,233,245,163,147, 91,127,125,125,
+143, 95, 47,220, 49,223,190,125,131,207, 78, 3, 59, 1, 87,175, 94, 5,150,227,144, 75,219, 63,126,196,185,158, 18,232,215, 63,
+191,191,112,114, 75,112,112, 10, 65,118, 4, 35,235,157, 61,123, 54, 68,239, 63,212, 0, 3,118,224, 22, 45, 90, 4,108, 61, 52,
+ 53, 53,249,249,249,249,248,248, 64,186, 2,155, 55,111, 46, 45, 45, 5,118,185,240,120, 19,168,119,241,226,197, 17, 89, 57, 78,
+107, 14,150,196, 5,229,149,101,254,248,245,229,254,221,199, 51,103,174,218,224,107,229, 32, 43, 70,124,162, 2, 86, 54,163,133,
+ 59,254,177, 32,120,185,143, 60, 15, 12, 16, 64,212, 63, 10, 2,243,246, 84, 76, 54,149,219,251, 24, 11,249,145,155,252,248,155,
+255,152,122, 79, 1,133,170,171, 49,217,196, 12, 1, 17,175,151, 90,189, 1,248, 98, 30,226,155,255,239,222,185,192,103, 14, 72,
+234, 64, 40, 40, 40,248,250,250, 2,155,129, 88,185, 68, 2,160,122,160, 46,248,128, 15, 26, 23,139,122, 85, 21, 85,110,102, 94,
+ 70,134,223,255,255, 95,127,255,107,233,157,159,203,143, 61, 59,125,247,221,179,239, 12,111,127,252,189,251,229,255,243,159,255,
+101,149, 85,176,150,134,144, 85,155,192,194, 26, 88,136, 3,203,110, 29, 29, 29,112,149, 41,100,102,102, 6, 41,196, 33,229, 56,
+102, 33, 14, 41,220,129,245, 4, 80, 1,176,154, 87, 86, 86,254,240,225,195,227,199,143,223,189,123, 7,116, 42,176, 87, 1, 20,
+ 7,154, 0, 81,134,203,229,166,166,166, 50, 50, 50,192, 2,116,199,142, 29, 91,192,224,240,225,195,192,134,185,165,165, 37,158,
+ 57, 15,184, 94,113, 33,254,183,247, 46,220,220, 61,255,234,214,233,215,183,206,124,120,124, 3, 59,211, 63,252,122,129,149, 19,
+176,185,205,199,199,119,241,226, 69, 96,173,131, 92, 13, 64,218,242, 75,151, 46,197, 83, 34,255,250,249,241,227,135, 59,172,172,
+220, 2, 66, 26,220, 60,210, 64, 6,164, 79, 0, 4,207, 78, 78,221,191, 40,207, 85,227, 11,184, 2, 96,128,110, 3, 3, 7,219,
+214,173, 91, 57, 57, 57,129,198, 2, 67,198,194,194, 2,222, 21,136,137,137, 1,118, 68,240,123,115,219,182,173,124,124, 60,118,
+246,230, 6, 70,122,129, 89, 73,223, 24,255,188,126,245, 46, 35,183,185,211, 68,197, 72,140,132,182, 5,176,244,239,234,234, 26,
+173, 3,136,169, 6,208, 68, 0, 2,136, 78, 27,193, 6,164,177, 76,222, 24,189, 89,107, 43,114,217, 13,228, 82, 93, 47,188,173,
+157,184, 62, 14,143, 2, 90,239,201,130,219,130,188, 51, 0,191, 22, 96,233,227,236,236, 12, 44, 67, 49,185,192, 82, 21, 95,200,
+128,101,129,164,161,161, 33,176,156,130, 11, 34,115,177, 2,105, 53, 45,221,171,103,229,223,127,124,243,247,223,167, 31,127,216,
+129,165,245,207, 63,114, 60, 44,239,255,252,121,250, 21,180,130,200, 91, 85,156, 91, 65,235, 11,182,241, 16,248,138, 79, 93, 93,
+ 93,125,125,125, 96,193, 4, 89,184, 9,116, 54,176,168, 90,191,126, 61,100, 67, 0, 80,132, 17, 67, 47,100,183, 23, 48,221,170,
+169,169, 1,235,143,215,175, 95, 67,150,144, 2, 77, 3,138,188,122,245, 10,162, 23, 40,130,167,190, 4,246,108, 32, 75, 57,129,
+ 37, 50,124, 41, 39,208, 37, 4, 87,227,128,244,186, 56,131,244,222, 61,249,236,252,110,168, 94,107, 39,130,122,129,165,191,145,
+145,209,209,163, 71,129,122,165,165,165,129,230,112,115,115, 87, 85, 85, 77,154, 52, 9,216,245, 1,218,222,215,215,135,235,142,
+120, 96,149,247,241,253, 29, 96,177,206, 47,164, 38, 33,101,249,253,251,155, 47,159, 30,118,247, 76,106,108,168,146,146, 97, 88,
+158,207,197, 24,246,222, 49,142, 1, 82, 99,194, 55, 2,223,186,117, 11,152, 6,108,108,108,128,230, 3,171, 28,160,220,148, 41,
+ 83,194,195,195, 33,213, 45,126,112,243,230,173,144, 96,255,136, 8, 63, 29, 93,245,183,159, 63,126,249,248, 38, 45,175,185, 57,
+208,217,249,223, 55,146, 74,255, 9, 19, 38, 0, 35, 5, 88,235,228,230,230, 6, 4, 4,140, 22,244,200, 3, 62, 88,203,125, 56,
+ 0, 8, 32, 22,250, 20,244, 4, 87, 16,133,132,132,144,183, 19, 24, 23, 64,222,168, 69, 94, 29, 64,106,233, 79,188, 94,252,171,
+110,104,125,180, 3,124,188, 8,110, 11,242,158, 0,130, 0, 88, 14, 34,175,246,129,115,241, 44, 1,130,203,162,169,193,175, 5,
+ 2,164, 20,149,127,152,217,254, 57,181,237,193, 71, 6, 30, 70, 86,121, 30,166,167,127, 25,153,217, 89, 14,189,250,251,227, 31,
+131, 40, 59,179,178,137,221, 23, 65, 5,108,197, 25,168, 9, 15,108,113, 3,219,161,192, 50,241,211,167, 79,192,178, 27, 82, 1,
+ 0,219,239,192, 74, 11, 88,102,109,222,188, 25, 50, 28,132,150, 13,128, 34,144,109,195,154,154,154,144,209, 27,160, 94, 72,218,
+134,244, 27,128,226,192,222,192,151, 47, 95,240, 39,108, 61, 61, 61, 96,137, 76,222,102, 46,242,244, 2,157, 45, 37, 37,229,238,
+238, 14,172,117,110,220,184,241,232,209, 35, 96,109, 39, 32, 32, 0,172,138,230,204,153,131,107, 47, 46,210, 40,208,183, 15,239,
+111,254,248,241, 78, 64, 80,141,135, 87,150,151, 79,238,235,231,167, 29,157,115, 35, 35, 92,128, 21, 0, 44, 96,255, 35,215, 0,
+ 94, 94, 94,219,182,109, 3,118, 56,128, 1,226,231,231,183,112,225, 66, 96,189,174,161,161, 65,140, 31,189,189,189,214,175,223,
+252,233,195,219, 39,207,158,231,103,199,149, 86,180, 5, 58, 89,217,252,252,196,192, 74,108,185, 4, 44,253, 27, 26, 26, 32,221,
+ 80, 96, 71, 13,216, 15, 40, 43, 43, 27,173, 3,240,215, 7,200, 0, 32,128,168, 89, 1, 80,184,130,136,140, 82, 30, 2,222,188,
+153, 91,125,106, 35,214, 1, 31,130,211,191, 64,189,167,170, 55,162, 53,216,145,135,113,240,148,227,111,230,190, 57,181,177,154,
+ 60,189, 3, 5,134,226,169, 65, 10, 86,142,151,126,254,121,189,111, 47,235,159,239,151, 62,255,223,243,249, 15, 27, 35,163,240,
+255,255,142,146, 2,246,110,206, 66,198, 14, 56,218,179,160, 30, 0,176, 9, 12, 44,143,128, 77,120, 96, 65, 15, 44, 70, 33,133,
+ 56,164,241, 46, 42, 42,106,109,109,189,115,231, 78,204, 97, 28,160, 8,176,170, 0, 54,183,129,234,129,173, 90, 72, 55,130, 1,
+ 54,175, 0,228, 2, 21, 0,123, 21, 39, 78,156, 32, 56, 13,174, 0, 6,100,122,156, 44,189,192, 58, 0, 88,226, 3,157, 7,236,
+ 1, 0, 59, 61,192,190, 11, 80,240,233,211,167,158,158,158,192,230, 63, 65,237,127,255,254,252,250,229,233,175, 95, 31, 57, 63,
+ 61,224, 19, 80,230,226,145, 2,162, 93,123, 95, 50, 58,139,195, 26,115, 96, 18,166,222,202,202, 10, 24,176,192,210, 31, 88, 19,
+ 8, 11, 11,199,197,197, 29, 56,112,128, 72,167, 90, 90, 90,177,179,179,243, 93, 59,155,157,157, 44,163,166,218, 85,144,188, 96,
+218,194, 41,204, 63,136, 47,253,203,203,203,129,158,125,246,236, 25, 39, 39, 39, 48, 82,128,221,157,214,214,214,234,234,234,209,
+ 58, 0, 62,230, 3, 44,244,241, 28, 5, 1, 16, 64, 84,238, 1, 12,200, 10, 34,172,133, 26,145,205,127, 76,189,200,237,119,200,
+120, 14,174,114,156, 18,189,120,202, 98, 82,203,232, 97,127, 18, 28,176, 68, 51,112,118, 23,150,146,121,125,253, 10,243,195,123,
+ 42,191,159,243, 10,139, 91,233,106,104, 27,235,124,151,192,185, 63, 8, 88, 82, 3,219,254,192,102, 62,100,176, 30,216, 21, 0,
+ 50, 32,199, 57,192, 71,135,100,101,101,129,117, 0,102,129, 5, 44, 77, 12, 12, 12,128,117, 0,176,124,135,168,132, 47,170,129,
+159, 4, 7, 52,202,208,208,240,236,217,179,131, 51,208,128,142, 23, 3, 3,117,117,117,160,127,129,213, 24,208,251,192,208,168,
+ 38,106, 94,234,255,239, 95,159,127,255,250,242,253,251,107,118,118, 65, 86, 54, 94, 38, 38,150, 37, 75,183,198, 68,123, 67,107,
+ 65, 84,213,144,142, 69,111,111, 47,176,162, 5, 50,212,212,212,136,191, 86,218,200,200,152,217,212, 52,169, 1,162,247,191,154,
+154,186, 90, 64, 0,254, 81, 65,100,208,217,217, 57, 90,202, 19, 83, 7, 96, 45,253,129, 0, 32,128,134,237,133, 48,100, 47,253,
+ 68, 46,178, 73,109,194, 83,162,119, 20,224, 7,178,154,218, 64, 4,100,192,207,222,196,191, 47, 40, 52, 52, 84, 80, 80, 16,178,
+212, 7, 88, 2, 66,134,116, 32, 61, 0,200,196, 47,228, 64, 80,101,101,101,160,224,145, 43, 95,145,245, 78,152, 48, 97,245,234,
+213, 16, 5,160,147,130,112, 28, 7, 13,108,249, 18, 28, 84, 25, 36, 53, 40, 15, 24,144,216, 92,128, 84, 3,159,129,165, 63,208,
+ 12, 96,176, 65,244,226, 26,243,130, 28,249, 9, 9,106,146,156, 7, 12,230,194,194, 66, 50,244,142, 54,243,137,175, 3,112, 73,
+ 1, 4,208,232,165,240,163, 96, 20,140, 2,140,114,129,129, 1,253,176,135,255,163, 55,130, 13, 67, 0, 16, 64,163, 87, 66,142,
+130, 81, 48, 10, 48, 26,255, 12,163, 55, 64,142, 8, 0, 16, 64,163, 87, 66,142,130, 81, 48, 10, 70,193, 8, 5, 0, 1, 52, 90,
+ 1,140,130, 81, 48, 10, 70,193, 8, 5, 0, 1, 52, 90, 1,140,130, 81, 48, 10, 70,193, 8, 5, 0, 1, 52,122, 41,252,168,222,
+ 81,189,132,245,166,167,167,251, 7,164,111,220,128,229,200,141,209,176, 26,112,189,173,176, 21,119,184, 22,185,142, 94, 10,143,
+ 11, 0, 4, 16, 11, 90, 42,199, 84, 65,228,186,177, 65,165,151, 72,237, 3,229,230,193, 3,200, 62,115,130,186, 7,145,226, 1,
+144, 43, 7, 14, 30, 60, 8,100,219,219,219,227,191, 60,128,118,161, 4, 44,253,189, 60,141, 32,199,232, 13,251,141, 23, 67, 11,
+ 0, 75,127, 95, 95,101, 56,187,186,186,122, 52, 76,136, 7, 0, 1,132,190, 10,232,255, 42,148, 51,152, 24,195, 72, 56,237, 29,
+ 45, 99,144,116, 2, 40, 37,122,209,220, 76,146,179, 7,202,205, 16,240,238,245,157,215,175,159,191,124,243,229,227,199,223,252,
+252,172,226, 34, 60,162,162,146, 66,162, 68, 29,175,118,238,248,180,123,119,111,221,125,240,227,241,243,255,178,146,140,202, 10,
+ 28, 74,202,106, 70,150, 89,244,175, 54, 32,103,139,210,168, 88,188,124,249,178,129,193,142, 25, 51,190, 29, 56,192, 80, 95,191,
+235,241,227,199, 18, 18, 18, 28, 28, 28,162,162,162, 74, 74, 74,100, 84, 6,135, 15, 31, 22, 23, 23,151,151,151, 39,120, 36, 39,
+ 50, 0,150,254,105,105,105, 12, 12,179, 54,142, 30, 56, 54,248,192,175, 95,229, 59,119,166,185,187,207,242,245,237,132,244, 6,
+ 70,171, 1,100,128,103, 35, 24, 64, 0, 13,147,101,160,240, 18,159,145,145,225,223, 74,193,193,239,224,223,191,190, 62,126,116,
+249,215,175,223, 42,138, 2, 14, 54,114, 2,252,236,239, 63,252,120,250,252,203,237,123,207, 63,124,124, 35, 43,167,203,202,134,
+243,234,215,247,111,110, 29, 59, 56,155,153,225, 83,184, 55,131,181, 49,131,178, 60,195,157, 7,255,143,156,249,190,109,255,197,
+173,107, 75,173,236, 83, 5, 69,212,136,116, 6,217,109,127,100,141,144,131,228,104, 84, 7,188,123,247, 46, 47,239,155,168, 40,
+ 67,104, 40, 67, 71, 7,232, 66,174, 63,127,254, 0, 43, 0, 49, 49, 49, 96, 5, 0,236, 19, 72, 73, 73, 17, 52,228,197,139, 23,
+175, 94,189,122,249,242,165,171,171,235,146, 37, 75, 24,192,123,125,163,162,162,240, 31, 96,135, 12,182,109, 63, 7, 44,253,193,
+228, 40, 24, 92,205,127, 32, 25, 28,188,118,231, 78, 16,153,150,118, 23,210, 27, 24,237, 10, 96, 22,253,112, 17,228, 58, 0, 32,
+128,134, 73, 5, 0,236, 4, 64,234,128, 33, 81,250, 3,193,147, 71,151,197, 69, 56, 76, 13, 21,193,247, 43, 49,254,251,247,159,
+143,135,157, 91,153, 77, 65,150,255,218,205, 55, 64, 89, 69, 21, 11, 92,122,129,165,191,173,241,167,130, 68, 6,102,102, 80,133,
+247,251, 15, 3, 55, 23,131,166, 10,131,133, 1,195,150,253,159,128,178,222,193,221, 52, 29, 2,194,122,169, 36,141,174,124, 16,
+ 18, 18,218,178,133, 83, 86,246, 59,176, 7,240,254, 61,139, 10, 24,124,249,242,229,222,189,123, 7, 14, 28,248,244,233, 19,176,
+ 28,199,223, 15,184,126,253,250,185,115,231, 88, 89, 89,145, 5,191,127,255, 62,119,238, 92,160, 33, 17, 17, 17,196, 56, 99,227,
+ 6,160,151,211,193, 36, 9, 0,126, 79, 50,228,216, 59, 52, 46,158, 24, 97, 64, 58, 49, 16, 15, 23,103,123,232,255,127,145,183,
+111,149, 30, 60, 16,126,250,244,137,152,216, 35, 37,165,143, 98, 98,255,137, 62,145, 23,232, 78, 98,206,233,195,163, 5, 63,151,
+ 90,122,225,131, 63,105,105, 59,129, 12, 8, 9,145, 2, 50, 70,235, 0,172,173,126,200,209, 64,112, 17,128, 0, 26, 86,171,128,
+ 24,135,136, 59,223,189,190,243,251,247,111, 51, 35, 73,184, 8, 19, 19, 35, 27, 27, 51, 39, 7, 11, 43, 43,147,178,162, 32,176,
+103, 0, 84,131,107,228, 7,216,246, 47, 76, 98,248,241,147,225,254, 99,134,247, 31, 25, 62,124, 98, 88,182,137, 33,183,129,161,
+170,135,193,202,136,129,233,255, 39,160,154, 97, 19,167,186,186,186, 27, 55,106,138,137, 49, 68, 69,177, 72, 72,152, 2,203,107,
+ 95, 95, 95, 31, 31, 31,119,119,119,113,113,113, 96,201,190,114,229,202,187,119,239,226,186, 40,241,210,165, 75, 23, 46, 92, 64,
+ 43,253,225, 96,255,254,253, 87,175, 94,197, 83, 22, 31, 58,116, 8, 94,218, 66, 74,127, 8, 27, 40, 78, 76,133,119, 10, 6,176,
+114,137,172, 95,241,115,177,150,254, 74, 55,110,216,238,217, 35,123,235, 14,219,167, 79,146,183,110,232,108,217, 44,122,241, 34,
+ 3,209,119,122, 3, 93, 8, 44,118,129,125, 38,226,163, 9,162, 5, 15, 23,191, 94,228,226, 30, 15, 23, 23,128,148,251, 16,242,
+151,175, 10,195, 40, 64, 42,250,241,159,245, 0, 16, 64,131,165, 7, 64,149,246,227,127,106,216, 75,222, 80, 6,252,166, 45, 98,
+198, 88, 94,191,121,174,174, 44, 4, 41,247,209,164, 56,216, 89, 62,124,252,169,166, 44,116,235,222,115,172,147, 1,247,238,222,
+ 10, 7, 29,201,197,176,227, 16,195,212,197, 12,110,182, 12, 94, 14, 12, 55,238, 48,156,191,250,159,147,131,209, 80,155,193,221,
+158, 97,221,206, 91, 70,150,180, 26, 2,194, 26, 68,180,187,241, 13,216,186, 7,182,247,129, 12, 96, 75,223,218,218, 26, 46, 40,
+ 40, 40,168,169,201,226,231, 7,236, 3,157,185,117,235, 27, 3, 3, 48, 80,216, 49, 71,126, 46, 95,190,140,171,244,135,215, 1,
+184,238, 72,137,142,142, 94, 10, 6, 64, 6,220,191,192,162, 31, 40, 2,145,165, 79, 94,192,207,197, 4,124, 47, 95, 42,158, 60,
+249,139,137,137,149,145,225,207,191,255,255,126,255,253,247,231,143,232,225, 67, 31, 69, 68,126,202, 16,187,146, 4, 88,236, 94,
+185,114,197,208,208,208,192,192,128,120, 45,200,157, 27, 52, 46,145,221, 8, 82, 75,127,204,226,126, 39, 82, 63, 96, 20, 16, 4,
+ 0, 1,132, 94, 1, 96, 78,159, 18, 89,168,225, 42, 76,137,209, 75,139,177, 99, 34,151,169, 96,157, 64, 38, 82, 47,154, 50,226,
+231,162, 95,190,254,226,104, 45, 7,108,144, 29, 62,254,248,219,247,223, 64, 17, 35,125, 9, 81, 97,206,199, 79, 63,223,185,255,
+158,133,133, 73, 85, 73,240,232,201,175,234,154, 88,244,222,125,240,195,218,152,225,231,111,134,237, 7, 25,246, 31,255, 47, 37,
+206,168, 36,199,224,108,195,160,161,204,200,194, 12, 58, 71,221,194,128,161,123,230, 15,252, 3, 62, 4, 25,120, 90, 13,240, 17,
+127,180,113, 9,218,173,141,121,244,232, 17, 3,248,124,124,100,193, 7, 15, 30,104,105,189,170,170, 2, 5,124, 91,219,173, 7,
+ 15,180, 25,216,208, 79, 6, 5,170,193, 95,250, 67,212,224,146,178, 3, 3, 72,137, 15, 41,244,225, 21, 3,252, 66, 99,170, 3,
+ 10,155,255, 64, 32,112,253,198,175,223,191,153,152,152,254, 51, 51,131, 46, 69,128, 28,104,247,247, 31,251,165, 75,196, 87, 0,
+ 12,224,123, 37,143, 30, 61, 10,236,170, 74, 75, 75, 19, 51,209, 66, 97, 29, 64, 94,219, 31, 88,220,187,207,114, 15, 94,203,144,
+182, 19,196, 0,114, 33,181, 2,219,230, 59,163,133, 59, 26,192,122, 47, 60, 64, 0, 17, 94, 5, 68,252,186, 32,204, 86, 33,145,
+237, 68,172,245, 4,241, 21, 15, 86,151,227,185, 60, 29, 87, 49, 13,159, 64, 38, 82, 47, 86,101, 16,211,128, 13,251,127,171,112,
+206, 70,128,215,252,128,154,171,143,159,125,250,254, 29,116,173,149,138,146, 32,176, 2,184,120,245,213,205,219,239, 56, 56,152,
+149, 21, 5,222,127,196,126,208,252,227,231,255,149,229, 65,230,123,216, 49, 24,104, 49,178,179, 49,252,249, 3,234, 7, 8,240,
+ 50,220,123,196,224,110,199, 32, 47, 3, 82, 67,211,148, 4, 47,247,137, 28,146, 30, 40,128,117, 16,131, 84,167, 66,202,122,120,
+ 5, 64,211,210, 31, 14,112, 93,221,142,231, 74,119, 56, 96,189,123,231,231,239, 95,140,204, 44,127,255,255, 7,166,147, 63,127,
+255,253, 6,118, 4,254,254,101,188,125,147,129,193,139, 84,151, 0,251, 1,192,142, 20, 55, 55, 55, 63, 63, 63,241,117, 0,145,
+131, 63, 20,150,254,213,213,213,173,173,173,192,210, 31, 94, 25, 0, 73, 96, 53, 0, 44,253, 55,111,190, 11,153, 0,128,204, 18,
+235,217,197,143,150,254,152,165, 63, 16, 0, 4,208, 96, 25, 2,194, 90,152, 18, 89, 16,147,180, 86, 21,187, 9, 84, 90, 59, 4,
+116, 9, 49, 70,241,243,179,190,255,240, 67, 68,136, 43,212, 79, 3,152, 63,217,217,153,153,129,237,181,255,255,125,220,148,189,
+ 93,149,129, 38,188,125,255, 29,168, 6,171, 94, 89, 73,198,187, 15,255,107, 40, 51, 56, 89,130,134,188,110,220, 97,208,211, 96,
+ 16,228, 99,240,116, 96,248,247,143, 1,216, 9,184,117, 31,164, 6,127, 32, 19,100, 16,191,145,132,146,113, 51, 98, 0,176,253,
+ 10,108,129,222,189,123, 23,216, 18,183,181,181,229,225,225,129,156, 24,172,160,160,112,234,148, 88, 99,227, 83, 70, 70,198, 87,
+175,212,212,212, 20,174, 61,195,162, 23, 77,100,213,170, 85, 40,141,134,255,255,195,195,195,137,175, 3,232, 86,250,147, 81, 55,
+192,193, 59, 25,105,182, 27, 55,255,179, 50,176,253, 3,205,251,254,254,251,231,215,255,191,223,254,252,249,174,162, 65,134, 99,
+116,116,116,128,225, 79,100,233,207, 0,190,230, 19,216,228,135, 23,223,104, 92, 92, 0,210, 75,128, 43, 67,227, 18, 4,192,230,
+ 63,164,232, 7,146,200,109,127,200, 44, 49,176, 50, 24, 45,253,177,150,254, 64, 0, 16, 64,195, 97, 21, 16,193,158, 7, 65,240,
+255, 63, 3, 83,248,123,202,235, 0,200, 98, 36,166,176,247,120,154,255, 64, 32, 46,194,243,248,233,103, 96, 5,208, 55,253,180,
+157,149,172,145,158, 56, 35, 43, 35,100, 57, 16,100,165, 6, 80, 22,168, 6,171, 94,101, 5,142,163,103,191, 3, 43, 0, 17, 99,
+134,138, 76,134,252, 4, 6,126, 94,208,200, 79,227, 36,134,134,124,144,130,163,103, 65,106, 72, 26, 40,163,124, 49, 40,237,150,
+129,190,121,243, 6,114, 15,226,214,173, 91, 31, 61,122,228,225,225,161,168,168,248,249,243,231,247,239,223, 95,191,254,231,192,
+ 1, 96, 97, 97,226,232,232, 40, 35, 35,115,237,217,107, 52,189,192,118, 43,254, 27,187,254,252,249, 51,216, 18, 51,188,244,199,
+ 83, 13,224,175, 3, 62,105,105,179, 95,186,244,239,255,127,110, 38, 22,102,102,198, 63,192,210,255,247,239,207,191,126,253,214,
+215, 39,201, 37, 92, 92, 92, 36,205, 1,192,139,123, 92, 92, 90,212, 1,192,102,126, 26,184,141,143, 92,250,195,155,255,163, 0,
+127,233, 15, 4, 0, 1, 52,122, 28, 52,172,181, 72,165,245,163,208, 58, 0,111,117, 34, 42, 42,121,231,254, 51,125,109,177,138,
+124,139, 5,203, 47,115,114,176, 24,232,136,193,175, 83,254,247,239,255,157,251,239,197,197,176,143,186, 42, 41,171,109,221,119,
+ 49, 33,152,225,255, 61, 6,139, 32, 6, 37, 89,134,165, 27, 97,114,249, 12,127,255, 50,108,221, 7, 82, 67,187,128,194,218, 63,
+163,221, 50,208, 27, 55,110,104,106,222,159, 63, 31,200,252,219,212,116,105,221,186,111,234,234,234,192, 10,224,222,189,123, 47,
+ 95,190, 52, 50, 50, 2, 54,225,113, 45, 3, 85, 82, 82, 58,125,250, 52,158, 59, 70,136,188,158, 23, 62, 4, 4, 36,105,221, 3,
+ 0,150,236,144,162, 31,215, 16, 16, 46, 41, 68,173, 38, 35,243,214,214,238,239,254, 3,191,216, 88,121,254,179,252,248,247,239,
+227,175, 95,159,157,156,255,203,201, 17,221, 33,102, 4,150,191,196, 15,253,195,181,192,139,123, 52, 46, 73,117, 0,174,181,179,
+120, 0, 90,233, 15, 31,249, 25,157, 13,198, 95,250, 3, 1, 64, 0,141, 86, 0,212, 4,208, 9, 0, 66,163, 64, 66,162, 42, 31,
+ 62,190, 57,121,246,153,185,177,148,167,139,210,142,189,247,182,238, 2,165,218,154, 98, 43, 96,233, 15, 20,103,103,103,195,181,
+ 31,216,200, 50,107,235,218,210,254,121,160,149,160, 51, 90, 64,171, 63, 93,172, 65, 43, 65,251,107, 65,165,127,255, 60,134,191,
+ 12,124,196,239, 7, 38,181,205,142,171,199, 64,187, 85, 64, 95,191,126, 53, 52,252, 1, 41, 73, 76, 76,254,239,216,113,239,214,
+173, 91,144,141, 96, 14, 14, 14,246,246,246,120, 54, 1, 40, 43, 43, 95,190,124, 25, 87, 39, 0,216,252, 55, 54, 54, 38,198, 13,
+144,197,160,144, 69, 65, 64, 54,241,117, 0,218, 70, 51, 34,247,157,193,235, 0, 92,178, 4,244, 51, 49,253, 50, 55,127, 35, 37,
+245,229,210, 37,158, 71,143,126, 40, 42,126,213,214,254, 43, 43,203, 64,244,101, 91,228,149,221,200, 90,208,184,248, 61,142, 44,
+139,102, 47,169,206,128, 0,228,114, 31,210, 27, 32,117, 72,115,152, 1, 60,107, 58, 0, 2,104,180, 2,192,178,122,135, 14, 70,
+201,202,233, 62,126,116,121,237,150,155, 42,138,130,222,110,202,130, 2, 28,239, 63,252, 56,127,249, 37,176,237, 15, 44,253,129,
+178,120,244, 90,217,167, 30, 62, 56,251,216,217, 79,222, 78, 12,179,219, 65, 59,129,239, 62,100,152,187, 10,212,246, 7,150,254,
+ 64, 89,202, 11,116, 50, 74,127, 26,205, 1, 72, 72, 72, 60,120, 32,114,230, 12,104,120,231,214, 45, 62, 83, 83, 45, 97, 97, 97,
+248, 78, 96,130, 71, 65, 88, 88, 88, 28, 60,120,144, 17, 99, 15, 20,176,244, 87, 81, 81, 1,214, 16,196,148,254,200,163,255,144,
+174, 0,145,117, 0,217,197, 25,174, 82,158,112,233, 15,171, 3,254,201,203,127, 3, 34,178,194,156,140, 98, 23,191, 79,241, 27,
+ 72,137, 94,252,165, 63,104,145,232,136,159, 0, 96,192,182, 31, 24, 94, 37, 0, 4, 16,225,101,160,196, 79,177, 18,179, 12,148,
+120,189,196,107,167,196, 94,172,190, 35,207, 94,146,230,162, 89,217,184,149, 84, 44,222,189,190,115,239,193,243,227,103,158,192,
+207, 2, 18, 23,147, 34,120, 22,144,160,136,154,119,112,247,185,227,211, 86,110,189,213, 54,149,174,103, 1,209,185,244, 7, 2,
+117,117,245,139, 23,189, 18, 19,207,128,123, 0, 38, 97, 97,250, 92, 92, 92, 36,213, 31,225,225,225, 55,111,222, 60,115,230, 12,
+ 51,104,174,157, 9, 88,244,179,177,177, 1,219,254, 64,147, 73, 45,253,201,168, 3, 70, 1,173, 1,104, 45, 80, 90,171,251, 44,
+119,172,123, 2, 70, 39, 3,240, 3,128, 0, 98,161,100, 64,128,166,122,137, 52,112, 80,185,153, 84, 0, 44,235,129, 72,157, 44,
+189,192,178,158,200,221, 94,212,242, 5,221,246,112, 32, 3, 96,113,111, 9, 6, 20,214, 34,196, 20,247,152, 0,179,172, 7,178,
+ 33,219, 2, 70, 43,128, 65, 85, 7, 48, 60,196, 34,110, 82,109, 50,194, 67,134,224,149,239, 0, 1, 52,122, 41,252, 40, 24, 5,
+163, 96, 20,140, 80, 0, 16, 64,163, 55,130,141,130, 81, 48, 10, 70,193, 8, 5, 0, 1, 52, 90, 1,140,130, 81, 48, 10, 70,193,
+ 8, 5, 0, 1, 52, 90, 1,140,130, 81, 48, 10, 70,193, 8, 5, 0, 1, 52, 90, 1,140,130, 81, 48, 10, 70,193, 8, 5, 0, 1,
+ 52,122, 41, 60,117,244,226, 57, 22,141,166,122,239,129,193,234,213,171,201,208,123,255,254,253,187,119,239,146,167,119, 52,109,
+140,234, 29,213, 59, 84,244,226, 1, 0, 1,132,115, 35, 24,145,167, 96, 82, 93, 47,213, 65, 90,232, 71, 6, 54,182, 89, 75, 57,
+241,168, 1,150,161,120,246, 94,226,119, 51, 92,111,111,111,111,113,113, 49, 73,183,165,195,245, 94,153,202,167,147,253,137,140,
+155,214,245,132,167,252,127,243, 23,200,152, 53,107, 22,248,210, 90, 18,128,153,250,138, 63,159, 62,113,114,114, 2,235,128,208,
+208, 80,218, 69, 1,145,251, 42,176,250,119,160,244,226, 50,141, 62, 9,152,145,145,145, 9, 12, 32, 91,216,126,253,250,197, 12,
+ 62,219,249,255,255,255, 12,163, 96, 20, 80, 15, 0, 4, 16, 11,174,180,142, 53,169, 49, 18,186, 85, 14,146, 73,200,211, 75, 76,
+139,152,108,176,123,247,110, 6, 14, 77, 60,165,112,121,121,185,152,152, 24,154, 20,176, 64,199,111, 44, 68, 47,164,232, 63,113,
+226, 4,164, 26, 32, 73,239,191,107,117, 76, 90, 77,139,246,129,142, 43, 0,178, 33, 82, 64, 17,130, 62,226,251, 84,244,239, 63,
+195,138, 29, 32,141,158,246,172,218, 42, 87,129,117, 0,168,194, 35,162, 26, 16,150, 59,245,250,246,139,195,215,228,191,254,228,
+246,116,255, 32, 45,193,120,230,204,177, 79,159,126, 56, 57, 57,209, 40,157,209,180,209,128, 71, 47,193, 18,147,248,100, 73, 42,
+ 0,198,111, 87, 87, 87,105,105, 41, 49,251,141,145, 1,176,172,103, 1, 3,200,206, 53, 96, 34, 1, 26,242,247,239,223, 63, 96,
+ 0,100,208,200,193, 91,183,110,197, 31, 56, 94, 94,132, 79,147,222,182,109, 27, 73,234, 71, 1,221, 0,100, 63, 48,218,186,127,
+128, 0, 98, 33,169,244, 55, 54, 54, 62,123,246, 44,193, 76,136, 53, 83,225,209,139,102, 14,176, 44,134, 12,107,144,125,192,100,
+154,239, 44, 6, 78,181, 89,171, 28, 64, 77,227,213,252,160,210,159, 80, 9,142,121,118, 60,176, 4,199,127, 42, 11, 92, 47,144,
+ 13,108, 65, 91,128, 1, 73,122, 33, 37, 62,132,236,128,237,214, 6,150,254,101,193, 28, 93,107,127,224,241, 32,255,247, 98, 29,
+ 53,230,175,223,255, 23,197,114,156,184,250,231,251,215,255,223,126, 49, 56, 26, 92,189,122,235, 47,193,174,192,189,199,253,231,
+ 78,115,243,242, 49, 74, 72,138,139,138,171, 60,188,251, 75, 65,235, 55, 43,199,171, 61,235,223,172, 95,191, 62, 48, 48,112, 52,
+171, 80, 5, 0,227,215,215,215, 23, 88, 7,160,165, 97, 35, 35,163,198,198, 70,160, 20,246, 22, 25, 11, 11, 27, 12, 60,126,252,
+ 88, 85, 85, 21, 88, 13,240,242,242,222,185,115,135,135,135,231,244,233,211,199,143, 31,207,206,206,198,153,242,193, 81, 15,207,
+191,240,156, 8, 17, 1,114, 33,173, 4,172, 96,211,166, 77,152, 90,224, 34, 64, 46, 49, 5,250,198,141, 27, 73, 82, 79, 21,240,
+226,197, 11, 9, 9,137,209, 36,135,167,220,199, 5, 0, 2,136,133,164,210, 31,191, 77,120, 14, 42,193,127,196, 57, 90,233,223,
+209,209, 81, 81, 81, 1, 23, 33,190, 14, 72, 51,158,197, 32,172, 54,107,151, 3,188,213,239,234,234, 10,100, 64, 72,204,113, 49,
+228, 18, 28,107,233,143,217, 39,192,244, 20,188,165, 15,172,177,144,131,130, 24,189, 88, 91,250,192,210, 31,191, 55, 69,190, 23,
+169,202, 51,115,178, 51,202, 75, 49,191,121,255,239,247, 31,230,183, 31,254,127,252,242,255,206,147,127, 12, 76, 12, 34, 92,151,
+128,254, 82, 82, 82,194,170,247,223,255,213,154,202, 74,199, 95,188, 84,148, 19,213,209, 83, 98,102, 23,146, 87,124,255,254,251,
+143, 87, 47,254, 62,121,249,131,139, 5,168, 85, 31,151, 94,218,141, 8, 17, 31,197,228,233,197,108,145,208,122, 44, 5, 24,142,
+ 64, 75,181,180,180, 54,111,222,140, 28, 29,192, 76,132,167,244, 7, 2, 86, 86, 86, 14, 14,142, 55,111,222,168,169,169, 25, 26,
+ 26, 2,235,131, 73,147, 38, 1, 91,253,186,186,186,235,214,173, 3, 86, 0,151, 46, 93, 2, 86, 9,184,250, 1,254,254,254, 16,
+255,226,202,197,120, 10,101, 96,217, 13, 9, 25,172, 13, 56,160,248,203,151, 47,137,169, 0, 72, 82, 15, 41,190,247,239,223,143,
+ 85,202,209,209,145,152,146, 29,168, 93, 74, 74, 74, 93, 93,125,180, 26, 32, 21, 0, 4, 16, 11,102,238,194,213,126,167,143,131,
+128,185, 5, 88,250, 19, 89, 97,224, 28,237, 97, 72, 3,146,171,103,153, 49,176,125,199, 51,250,143, 86,130,163, 85,102,248, 75,
+112, 8,128, 87, 30, 39, 78,156, 64,110,254, 19,163,119, 89, 41, 15,102, 46,141,238,249,138, 95,215,191,127,255,216,185, 24,153,
+152, 24,184, 56, 25, 62,124,250,247,243,255,127,110, 78,198, 31,255, 24,190,255,252, 47, 35,202,244,239, 15,195,237,199,127,247,
+236,217,131,181, 19,240,233,227, 9, 1, 1,110, 54,182,255,169, 9,230,127,255,254,127,241,234,215,163,167, 31, 24, 88, 31,115,
+ 10,254,124,254,234, 1, 19,219,199,107,215, 62, 60,125,185,135,212,185, 4, 10, 71,132,144,111, 22, 35, 6, 32,159,184,135,121,
+127, 39, 46,240,238,157, 11,156, 45, 36,180, 7, 87, 17, 73,176,190, 65, 22,193, 83,247, 0,147,150,143,143, 15,164,220,191,122,
+245, 42,132, 1,105,251, 3,197,241,216,200,206,206,254,245,235, 87, 77, 77, 77, 96,217, 7, 76, 72,201,201,201, 64,193,223,191,
+127, 47, 88,176, 0,216,129, 62,119,238,220,202,149, 43,191,127,255,142,121,215, 13, 4,120,123,123,147, 29, 41,115,231,206,197,
+ 95,137, 18,211,162,135, 27, 66,164,122, 6,240,121, 77,192,226,251,217, 51,244, 11,125,128,130,196, 23,232,207,192, 96,180, 26,
+192, 4,240, 49, 31,172, 93, 1,128, 0, 98, 33,166, 21, 79, 73,113, 76, 42, 64,110, 71, 19,213,234,159,149,206, 32,201, 48,203,
+ 23,148, 21,103,157, 77,131,143,246,128, 91,253, 31,145,251, 1,248, 75,240, 87,175, 94,193, 75,109, 34, 75,112,252, 0, 82,175,
+ 0,203, 11, 92,135,109,224, 41,128, 32,227, 63,152,122,129, 90,222, 92, 43,146, 4, 15,254, 64, 68,190,255,253,255,227, 23,195,
+111, 48,247,247,159,255,255,153, 64,140,203,151,206, 2,235, 81, 6, 6, 54, 52, 99, 63,126,188,202,202, 46, 40, 34, 36,240,225,
+221,183, 15, 31, 63,156, 56,243,226,233,203,255,108,220,223,164, 85,190,124,255,246, 70, 85,239,183,130,230,207,149,179,207,222,
+185,115,135,129,129, 99, 52,231, 80,216,252, 7, 2, 96,243, 31, 88,220,111,217,178, 69, 91, 91, 59, 52, 52,148, 96,233, 15,169,
+ 0, 94,191,126,205,197,197,101,103,103,215,211,211, 3,236, 16, 0,147,193,194,133, 11,129,165, 63,176,145,177,119,239,222,203,
+151, 47,139,136,136,224,185,202, 6, 88,127,227, 26, 2,154, 61,123, 54, 30,171,169, 50, 4, 4, 52,132,140, 33, 32, 96,169,141,
+ 89, 1,144,113,124,211,104, 53, 64, 42, 0, 8,160,193,117, 28, 52,230,189, 34, 68, 14, 14,128,218,251, 21,247, 25,152,217,210,
+220, 20, 24, 4, 20,102,129, 47,254,195, 63,250, 79,149, 65, 12,200,196, 47,188,237,143, 12, 32,179, 2,152,221, 11, 34, 91,172,
+ 75, 75,184, 49,123, 3,188,159,138, 31,252,250,255,226, 13,176,245,199,196,195, 5,234,170, 3, 11,253, 31, 63, 25,128,117, 0,
+144,252,245,155,225,199,119,134, 95, 63, 97, 45, 80,212,202,131,231, 79,209,211, 71,114,178,138, 60,255, 89, 89,222,124,255,190,
+255,224,227,107,119,158,190,123,247, 69,219,248,239,215, 31,127,126,252,252,251,253,219,191, 23,143, 24,190,127,101,232,238,238,
+ 30, 61, 33, 10,107, 79,133,200, 4, 9,105,254,107,105,105, 1, 27,254,192,202, 0, 88, 1, 64, 58, 1, 4, 75,127,200, 16,144,
+129,129, 1, 7, 7, 7,176,208, 79, 74, 74,106,111,111, 7,150,164, 39, 79,158, 60,120,240,224,165, 75,151, 62,126,252,168,170,
+170,250,233,211, 39, 60,183,220, 4, 4, 4, 96,182, 45, 32, 61, 30,252,253,131,129, 26, 2,194,218, 9, 32,169,249, 63, 90, 13,
+144, 13, 0, 2,104, 80, 84, 0,144,161,127, 72, 55, 25,185, 14,128,103, 54,200, 96, 61,241, 35,197,144,114, 31,216,240, 7,143,
+ 2,177,205, 90, 74,125, 55, 67, 86,254,184,184,184,236,217,179, 7, 87, 87, 6, 87,111, 6,107,225, 78,204, 88, 80,124,229, 87,
+ 41,113,166, 40, 95, 54, 96,113,207,207,203,200,196, 8,110,248, 51,252,255,241,141,225,235,175,255,192,110,193,215, 31,255,255,
+253,199,126,243, 71,124,254, 87, 93,253,123, 18, 26,239,118,111,127,245,238,221, 15, 3,203, 79,122, 66, 95, 24, 88,127,254,248,
+246,239,213,211,255, 95,191, 50,254,249,195, 40, 36,194,200,192,248,111, 52, 87, 80, 5, 64,210, 51,242,132, 10,176, 38, 64, 46,
+154,177,206, 4, 0, 75,246,178,178, 50, 22, 22,150, 69,139, 22,205,159, 63, 63, 49, 49,177,163,163, 3, 88, 34, 63,120,240,224,
+251,247,239,192,108, 2,108,251,103,100,100,224, 89,188, 68,246,212,235, 64, 13, 1, 97,237, 4,144,119,122,235, 40, 32, 21, 0,
+ 4,208, 96,233, 1, 32, 15, 91, 99, 22,244,184, 10, 89,100, 48,235,108, 26,172,232,191,189,122,210,125,240, 42, 32, 68,125,128,
+103, 20,136,146, 17, 30,160,195,224,205,127, 72,111, 0,206, 6,246, 0, 32,123,172, 48, 39,159, 9,150,254,144, 85, 64,152,122,
+255,252,101,248,250,237,255,207, 95,160, 41, 95, 32,201,194, 14, 21, 4, 86, 0,223,127,255,127,251,238,255,235,247,255,207, 93,
+251,243,239, 31,104, 40,239,234, 83, 20, 51,255,252, 97,120,246,248,215,227,187,239,143, 28,127, 15,108,228, 93,187,241,207, 39,
+234, 15, 27,203,255,215, 47, 25,142,236, 98,248,244,233,255,255,127, 12, 54, 78,140, 28, 28, 12,158,158,254,248, 87, 26,110, 88,
+144, 30,144, 64,209, 10, 93, 74,110, 16, 35,233,222, 5, 56, 16, 18,218, 67,183,196,140,150,128,129, 92, 35, 35,163,115,231,206,
+109,222,188, 25, 89, 28,215, 84, 48,176,109, 33, 32, 32, 0,105, 68,207,155, 55, 15,216, 15, 0,214, 4,144,154, 3, 40,245,225,
+195, 7, 96, 15,224,219, 55,124,119,189,164,166,166, 34, 15,221, 64,154,255,248,199,127, 6,118, 8, 8,173, 19, 64, 73,243, 31,
+162,125,180,237, 79, 36, 0, 8,160,193, 82, 1,156, 61,123, 22,215,218, 21,160, 56,129,245,163,236,220,171, 21, 14, 49,252, 57,
+203,160,200,157,214,170, 56,235, 0,176,163, 61, 11, 86, 25,184, 18, 63, 10,132,188, 18, 20,115, 85, 40,102, 14, 7,150, 98,144,
+210, 31,121, 6, 24,210,246,135,112,177,246, 0,224,122,201, 43, 89,110,223,190,253,232,202,164,127,162,255,152, 88, 24, 88,153,
+ 64, 57,237,247,191,255,192,194,253,243,231,255,191,126, 51,252,249, 13,170, 15, 10,139, 64,221,169,171, 79,159, 96,234,125,120,
+107,162,182,246,191,195, 7,255, 50, 50, 49,188,126,193,200,193,201,112,112, 7,195,175,239,192, 18,130, 65,207,136,245,217,163,
+127,246,246,222,192,124,139,103, 39, 33,176,244,239,202,102, 40,155, 74,126, 29, 64,201, 5,194,228,233,197, 53,172, 65, 31, 0,
+ 89,249,227,227,227, 3,137,122, 72,119, 22,216,204,199,170,248,223,191,127,231,207,159,183,181,181,133,139, 0,235, 0, 72, 89,
+252,251,247,239,191,127,255, 2, 35, 81, 84, 84, 20,215, 36, 48,124, 20,136,140,246,251, 0, 14, 1,161,117, 2,200,110,254,143,
+ 22,253,164, 2,128, 0, 34,173, 2, 0, 22,196,180,216, 9, 9,105, 44, 3,115, 5,144,225,226,226,130,214,246,135, 20,163,196,
+111, 85,133,175, 2,130,112,137,105,251, 35,207, 0, 67, 0,132, 11, 89, 12,138, 95, 47,188,244, 71,155, 15, 32, 70, 47, 46, 0,
+108,254,227,210,171,170,170, 58,127,206,111,103, 11, 86, 96, 1,240,251,215, 63,118, 54, 80, 94,253,252,245,255,207,223,255,129,
+ 69,255,217, 43,127,255,254,251,143,107, 29, 39, 80,239,226,133,127,236, 29,152, 3,163,153,191,124,254,255,249, 35,195,215,207,
+140,138,170,255,255,254,102,100, 97,226,248,240,238,223,179, 39,191, 74, 10,125,240,183,253, 39,228, 51,168,201, 49, 76, 46, 98,
+200,237,163,168, 14, 32,187, 79, 64,158, 94,202,215,125,146,151,242,129,165,127, 67, 67, 3,114, 99,191,171,171, 11,200,197,181,
+ 59,236,215,175, 95,192, 34,236,199,143, 31,204,204,204,144,187,207,214,174, 93, 27, 28, 28,252,253,251,119,160,224,207,159, 63,
+121,120,120,128,213, 0,126,239,144,183, 22,104, 96,135,128,224,157, 0, 8, 99,180,232,167, 15, 0, 8, 32, 18, 42, 0, 10, 75,
+127, 60,218,129,133, 62,164,148,135,140,155,195,151,156, 34, 55,252,209, 42, 6, 20,192,204,200,192,198,196,192,201,204,192,195,
+194,240,243,243,234,118, 86, 6,206, 83,105, 33,138, 12,156, 66,179, 22, 19,213,240,199,186,230, 7, 82,130,227, 95, 20,143, 92,
+250, 35,207, 7, 16,163, 23,127,233,143, 71,111, 91,231,140,162,252, 12, 14, 14, 96,107,145, 65, 87,157, 25, 26, 86,151,255,254,
+254,251,255,239, 63,230,146,146, 18, 60,134, 55,181,204, 40, 41,201, 0,246, 24,126,253,254,255,247, 15, 3,176, 11,225,224,205,
+240,249, 3,227,141,139,192, 2,134,201,207, 55, 8,127,233,223,144,204,160, 2, 62,146, 68, 89,154,129,194,126,192, 72, 0,152,
+123,190, 64, 43,187,192, 0,151, 22, 96, 5, 0, 44,235, 65,219, 49,244,245,255,252,249,195,202,202, 10,108, 83, 3, 27, 49,192,
+210,255,219,183,111,192,230,191,160,160, 32,158,101,160,112, 0, 31, 80, 37,102,240,103, 48, 12, 1,193, 59, 1,100,132, 51,145,
+219, 5, 70, 1, 38, 0, 8, 32, 98, 43, 0, 26,181,253,177,118,237, 49, 7,124,200,182,154,224,232, 63, 37,165, 63, 3,234, 76,
+ 47,188, 14, 99, 0,175,166, 37,168, 23,215, 76, 0, 49,122,251, 38,206, 0, 6, 23, 19, 19,195,145,179,160, 17,127,200,172, 47,
+120,232,191,132,160,222,158,158, 25, 25,153,224, 13, 31, 76, 32, 45,167, 14, 49,124,253,242,239,255, 63, 6, 63, 63,111,119,119,
+119, 60,165,127,121, 12,131, 0, 15,195,179, 55, 12,156,236, 12,255,254, 51,112,115, 48,180,166, 51, 84,207, 28,230,117, 0,174,
+238, 5, 49,105, 18,173,244,207,200,200,128, 20,253,155, 55,111, 6,150,146, 88,171, 1, 96, 5,192,196,196, 4,108,207,126,254,
+252,249,204,153, 51,134,134,134,192,106,224,227,199,143, 23, 47, 94, 84, 84, 84, 20, 22, 22, 6,150,254, 64, 17,130, 29, 26,200,
+142, 48,146, 58, 4, 3, 62, 4, 68, 94,219,159,108, 93,163, 0, 8, 0, 2, 8,189, 2,192,181,228,159,200,213,111,148,244,160,
+129, 10, 48, 15,101, 35, 88, 26,206, 74,155, 9, 26,237,185,197, 0, 66, 8,240, 17,140,238,147,237,102, 98, 74, 97,184,143,128,
+101, 4,100, 63, 1,176,218, 32,245, 42, 99,160,222,165, 37,220,144,250,128,212, 27,122,225,193, 5,153,245, 37,190,195, 49, 99,
+ 58, 66,239,151, 79,160, 2,194,207,207,143,112, 88, 45,161,126, 49, 74,107,189, 3, 56,244,207,128, 58,205, 11, 12,112, 96,153,
+184,101,203, 22, 76, 41,180, 10, 0,168, 12,216,192, 7, 50,228,228,228, 62,124,248, 80, 91, 91, 11,172, 0,164,165,165,191,124,
+249, 2, 20,132,204, 4, 16,180,154,140, 81,160, 23, 47, 94, 80,238,101,170, 24, 50, 10,232, 6, 0, 2,104, 80, 92, 10, 15, 7,
+192, 34,140, 12,115,200, 94,225, 67,197, 62, 13,193,163,223,200,232, 10, 16, 19, 92, 88,217,164,234, 37,166,244,167,164,153, 63,
+ 80,233,138, 42,241, 75,158, 33,240,227, 60,225, 39,122,106,106,106,206,155, 55,239, 31, 24,224,105,191, 67, 90,247, 64, 53,192,
+130, 30,114, 24, 28,184,130,255, 71,135,195,224, 70,193,240, 6, 88, 55,247, 0, 4,208,232,165,240,163, 96, 20,140,130, 81, 48,
+ 66, 1, 64, 0,141,222, 8, 54, 10, 70,193, 40, 24, 5, 35, 20, 0, 4,208,104, 5, 48, 10, 70,193, 40, 24, 5, 35, 20, 0, 4,
+208,104, 5, 48, 10, 70,193, 40, 24, 5, 35, 20, 0, 4,208,104, 5, 48, 10, 70,193, 40, 24, 5, 35, 20, 0, 4, 16,150, 75,225,
+145,143,100, 64,190,143, 5, 89,124, 24, 95,178,140,188, 20, 21,238,247,209, 11,169,135, 86, 88,145,164, 17,191,189,173,173,173,
+ 16, 70,117,117,245, 72,139, 95,170, 7,245,104, 62, 26, 16,189,120, 0, 64, 0, 81,237, 44, 32,200,137,158,196,169,101,195,212,
+ 11,103,163,157, 6, 74,228,253, 27, 20, 2,248,181,192,144,226, 12,126,127, 30, 29,106,224, 91,183,110,193,239, 36, 40, 42, 42,
+ 26,252,135, 32,162,133,213,245,235,215, 25,192,107, 28,105,106, 41, 48, 25,248, 7,164,111,220, 48, 19, 45, 25,108,219,126, 14,
+ 40,136, 53, 97, 0,165,176, 26,229,229,105, 68,188,189,192,210,223,215, 87, 25,206,198, 85, 7,224, 2,159,191,124,190,247,236,
+222,183,255,223, 24, 24, 25,216,254,177,202,137,202,139, 10,139, 18,212,117,236,216, 49,100,174,149,149,213,104, 67,117, 20,208,
+ 8, 0, 4, 16, 53, 15,131, 35,242, 18,149,171, 79, 63, 96, 10,162,149,185,200,219, 17,241, 23,199, 68,238, 18,194, 83,121, 64,
+ 76,128,148,104,152, 11,180, 33,178, 88, 23,203, 34, 91, 45,173, 40, 11, 36, 95,254,248,241,231, 59,248, 60,254, 15,159, 24,192,
+231, 23,225, 59,193, 2, 12,144, 47,164,236,235,235, 35,230, 2,116, 38, 70,208, 70, 92, 8, 9, 4, 88, 25,211,103,208,164,178,
+ 68, 14, 43, 72,209, 79,124, 88,145, 93,127, 67, 74,127,112,193, 13,170, 3,136, 55, 10, 82, 97, 96, 84, 0,164, 57,227,215,175,
+242,157, 59,211,220,221,103,249,250,118, 66,122, 3, 68, 86, 3, 71,174, 30,145, 55,148, 77, 14, 78, 16,228, 18,252,247,231,239,
+143,255, 63,119,156,220,181,239,224, 94, 43, 37,107, 14, 14, 14, 60,165,127,102,102, 38,178,200,244,233,211, 71,235,128, 81, 64,
+ 9, 64,190, 11, 12, 45,123, 2, 4, 16,149, 79, 3, 69, 59, 23,147, 12, 64,198,145, 93, 4,183,197,227,105,203,195,111, 33, 6,
+178, 33, 36,154, 44, 81, 7, 73, 10,240, 93,186,183,130,147, 65,230, 47,195,209, 87,115,206, 93,188,251, 54,168, 99, 62,237,162,
+243,210,229, 43,122,186, 58,192,178,254,202, 21, 16, 3, 40, 2, 97,192, 69,254,225, 13, 15,252, 55, 62,226,185, 52, 28, 18, 86,
+ 9, 9, 9, 64, 54,132, 68, 47,253,129, 1,133, 45, 46,128, 82,206,206,219,211,211, 61,201,174, 3,128,165, 63,216,217,179, 54,
+110, 32, 92,196,195,181,144, 90,214, 99, 54,255,129,100,112,240,218,157, 59, 65,100, 90,218, 93, 72,111,128, 96, 87, 0,152,102,
+246,223,220,151,157,147,105, 34,106,200,201,207,255,255,215,159,127,255,255, 50,179,176,169,184,168,220, 48,190,217, 49,171,211,
+ 92,196, 2,114,208, 27, 86,240,230,205, 27, 56,219,219,150,219, 60,255,104, 68,231, 15,184,136,147,147, 19,241, 94,216,176, 97,
+ 3,230,201,160,116,208, 75, 21, 64,198, 85,239,144,125,200,163, 39, 67,224, 42,253, 33, 92,228, 58, 0, 32,128, 88,144,187,246,
+164,176,217, 48,109,122,245,234, 21,252, 36,100, 60, 53, 4, 3,187, 6,158, 50,154, 17,163,200, 38,102, 40, 6, 79,177,133,231,
+ 46, 1, 96,193, 4,108,164, 99,150,251,144, 75,137,225, 21, 3, 30, 0,108,248, 63,125,255,113, 93, 70,176, 48,163,245,221,217,
+ 37, 74,129, 74,187,105, 92,250, 3, 1,164,208, 7, 2, 29, 29, 29,184, 8,164, 79, 0, 23,161,164,141,143,181,152,134,132, 21,
+102,185,191, 96,193, 2, 96, 88,121, 90, 27,110, 63,122,158,129,151,155,225,211, 23, 90,120, 25, 60,158, 51, 11,215,168, 14,126,
+ 16,240,169, 10,123, 1,199,215, 70,204,224, 79, 90,218, 78, 32, 3, 66, 66,164,128, 12,252,117,192,153, 27,103,146, 83, 18,109,
+ 85, 29,254,254,252,249,231,239, 31, 70, 22, 96, 2,102,254,207,240,239,229,235,103,154,162, 26, 85, 25, 85, 45, 93, 45,206, 58,
+ 56,187,134, 23, 46, 92, 64, 84, 0, 82, 11,208, 10,253,125,251,246, 17, 89, 7, 0, 75,240,109,181,219,189,154, 25,200, 40,199,
+129,122,187,186,186,202,202,202, 6,164, 14, 0,150,227, 55,111,222,124,246,236, 89,100,100, 36, 73, 26,129,186, 70, 43, 0,236,
+205,190,114, 80, 81, 54,171,179, 2, 77, 28, 32,128, 16, 21, 0,124,130, 23,237, 92,126,172,226,104,103,205, 35, 87, 15,144, 99,
+212,144,135,131,144, 15, 92, 3,214, 16,152, 67, 4,152, 23,104, 16, 51,116, 67, 21,176,106,213, 42,204,162, 31, 50,202, 1, 41,
+253,129, 34,120,180, 63,185,247,232,235,250, 58,158,164,137,192,154, 64, 92,152,243,222,250,123,160,210, 95,128, 15, 52, 4,196,
+202, 76,140, 3,128,193, 5, 31, 5, 34,242, 60, 9, 96, 89, 47,199,205, 48, 37,134, 33,101, 1,131, 40, 23,195,245, 15,232, 34,
+ 87,137,184, 49, 5,179, 90, 37,216,145,106,106,106,194, 44,250,129,140,174, 4,159,201, 59, 78, 72, 40, 73,190,120,248, 18, 87,
+243, 31,200,192,211, 9, 32, 56,170, 3,110,233,167,163,181,247, 33,245, 1, 49, 41,164,107, 25, 22,175,169,101, 16,149, 66, 32,
+229, 62,132,252,229,171,194,182,249, 14,126,245,223,190,127,227, 82,227,180,144, 52,255,249,245, 43, 11, 59, 59, 11, 11, 52,139,
+221,187,115,103,211,198,141, 73,137, 9, 10,236,114,134,246, 6, 79,174, 60,145,145, 36, 60,173,215,186, 45,225,224,193,131, 33,
+ 33, 12,200, 61, 0, 98,234, 0, 72,233,207,160,208,191,173,182,144,212, 58, 0,168,119,194,132, 9,106,106,106,147, 39, 79,206,
+205,205,165,103, 29, 0, 47,250,201,211, 11,209, 72, 70,215, 97,120, 55,255, 33,165, 63,132, 1,172, 3,144, 59, 1, 0, 1, 68,
+205, 33, 32, 96,225, 14, 25, 29, 6,214, 4,200, 21, 0,156,139,255,150, 21, 92, 83,193, 4, 51,121, 88, 88, 24,229,142,135, 23,
+136,104, 13,127,200, 85,148,184,102,213,191, 51, 60,250, 18,104,254,159,183,132,193,165,246, 11,195,114,134, 57,160, 34,233,255,
+234, 18,214,184,201,127,254, 16,117,183, 34, 48,155,145, 90,201,189,154,199,208, 56,131, 65, 86,134,225,229, 22,182,133,115,127,
+ 37,172,192, 34, 66,249,184, 25, 30, 0,159,242,125,190,161,131, 87,155,131, 71,181, 96, 85, 71,138,190,142,132,186, 79, 11,158,
+176,194, 19,239,248, 7,136, 32,137, 1, 94,250, 3,185,144,185, 95, 98,139, 51,190, 54, 34,203,122, 52, 0, 44,238,209, 68,118,
+ 34,245, 3,112,129,231,175,158,187,133,186,241,242, 9,254,101,252,115,248,224,161,207, 95,190,248,250,249,189,126,245,106,205,
+218,117,201,137, 9,236, 28,236, 76,255, 89,221,141,220, 39,237,159, 76, 76, 5, 0, 4,239,223,147,124, 3, 26,188,244, 7,113,
+ 72,172, 3,128,122, 27, 26, 26, 84, 84, 64,126, 87, 86, 86,166, 91, 63,128,146,162, 31,185,249, 15, 97,140, 86, 0, 68, 2,128,
+ 0,162,242, 28, 0,176,160,135,220,238,130,124, 81, 34,228,132,100, 98,230, 6, 48,167,130,137, 25, 2,194,117,245, 46,241, 0,
+210,204,199, 28,243,193,223,252, 7,130, 29,149, 13,190,237,125,127, 92,172,129,225,200,115,252,206,238,187,111,129,130,127, 92,
+114,127, 95, 22, 97, 20,205, 34,166,236,195,223, 25,194, 10,222, 6, 44,207, 77,124,124, 43,163,236,235,222, 95, 18, 34,216, 69,
+200,232, 1, 16, 89, 43, 0, 27,254,160,166,132,175,221,137,103,175,120,245,121,159,238,188,203,192,193, 30,156, 27, 39, 36,227,
+ 67,187,100,138,185,242,135,188, 14, 34,214, 65, 36, 92,235,130,128,197,189,251, 44,247,224,181, 12,105, 59, 65, 12, 32,151,152,
+ 78,192,151, 31,159, 69, 56,133,255,252,248,246,159,233,191,169,153,217,250,245,235, 39,244,245,253,251,255, 63, 58, 38, 90, 72,
+ 88,232,219,151, 47,127,254,254,225,101,229,251,205,244,155, 72, 55,127,248,240, 1,190, 46,136,152,217, 96,148,210, 31, 2,136,
+174, 3,128,122,129,185,192,204,204, 12, 46,162,163,163, 3, 25,239,162, 93, 29, 64,121,209,143,220,252,103, 0, 95, 10, 63,218,
+ 9, 32, 18, 0, 4, 16, 11,158,194, 8,143, 56,158, 35,228, 32,195, 68,144,217, 96,200,172, 0,164, 91, 0, 20, 71,158, 78,160,
+ 69,209, 64, 54,192, 53,226, 79,240, 38,250,160, 25,107,255,251, 41,190,180, 52, 18,102,176,230, 12,158,252,231,249,107, 6, 1,
+ 62,150,183,203,183, 76, 56,203,192,204, 76,140,227,201, 56,235,248, 98, 81,164,137, 1,131, 82,238, 21,109,158,196,155,242,161,
+ 12, 83,202, 48, 69,104,215, 3, 0,134,137,173,169,186,139,181,154,175,110, 89,239,132,233,215,206, 62,205,112, 50,121,177,113,
+219,199,247,159,200,136, 11,180, 1, 34, 92,233, 10,107,147,159,188,168,199, 52, 7,235, 92, 49,176,200, 3, 22,124,192,210, 31,
+ 94, 25, 0, 73, 96, 53, 0, 44,253, 55,111,190, 11,153, 0,128,204, 18,235,217,197,163,213,173,160,195, 59,255, 49,252,255,247,
+135,157,147, 35, 38, 54,182,177,190, 94, 92, 92, 92, 90, 66,226,199,215, 47,127,255, 3,197,255,226,185,206, 5, 88,196,175, 89,
+179,230,237,219,183,159, 62,125,130, 87,213,240,117, 65, 4, 87, 4, 1, 75,240,222,148,171, 12, 28, 42, 12, 47,166,162, 72,112,
+168, 0,197,139,231,224,171, 3,128,122,253,253,253,129, 37, 62,208,118,100,113, 57, 57, 57,160,248,128,207, 9, 19,217,252, 31,
+237, 4,144, 4, 0, 2,136, 5, 51, 59,145,177, 17, 12, 2, 32,183, 54, 34,119, 2, 32, 37, 62, 80, 4,190,108, 28, 40,245,157,
+232,102, 41, 49,211,191,148, 47, 3,133, 52,243,177, 78, 5, 19, 52,246,110,119, 26,107,240,228,239,207,110,177, 28,159,252,123,
+109, 46,163, 87,207,166,172,144,135,155,238,251,118, 45, 98, 96,161,213,125,203,101,171, 25,118,118,173,215,126,232,206,240,230,
+107,169,107, 25, 86, 17, 50,122, 0,196, 55,255, 55,174,111, 96,150,214,226, 97, 80,123,116,112,214,103,198,255,167,110, 61,118,
+185,242, 20,111,200, 63,130, 13,214,205,132,151,248, 64,176,119,175, 39,154, 44,214,116,133,107,192,135,140,165,165,100, 44, 13,
+ 2, 54,255, 33, 69, 63,144, 68,110,251, 67,102,137,129,149, 1,154,122, 94, 78,222,103, 31,159,153, 41,152,127,255,249,131,225,
+251,143, 63,191,126, 87,149,151, 51, 50, 49,124,251,250, 5, 88, 47,252,249,251,159,157,133,245,245,151,215,172,127,217,112,217,
+ 24, 2, 27,242, 7, 54,252, 33,121, 10,190, 46,232,249,243,231,248, 93, 11, 44,163,129,165, 60,176,172,215, 84, 68, 49,255,250,
+253, 95,197,115,180,241,151,224, 64, 89, 96, 41, 15,108,254, 3, 75,124,100,241, 43, 87,174,108,220,184,145,118,165,191, 4, 24,
+ 80,101,244, 31, 14, 70, 59, 1, 68, 2,128, 0,162,102, 33, 5,175, 30,128, 69, 63,176, 2,128, 12,254, 96,214, 10,251,207,127,
+ 32,166,140, 38, 62,111, 83,178, 12, 20,222,252, 71, 43,250, 33,213, 21, 65, 55, 92,188,251,246,247,229,198,151, 12, 71, 37,188,
+122, 24, 62,126,186, 59,171, 68, 57,179,255,197,252, 18, 6, 86, 22,232, 53, 93, 52, 0,143,190, 50,104,138, 5,226, 23,161, 81,
+ 15, 0, 24, 44,225, 46,230,252,255, 4,191, 49,176,174,237,207,157,182,229, 66,169,135, 77, 66,223,178,144,182,197, 52,154,174,
+135, 84,240,176,125, 0,164,213,250, 36, 13,248, 96,237, 4,164,129,219,248,200,165, 63,188,249,143, 11, 72,137, 73,237, 56,188,
+211, 74,214,138,139,155,231,223,191,255, 76,255,255,252, 99,100, 4,134, 54,176,237,255,231,223,255, 63,127,254,124,255,248,117,
+235,233,173,242, 98,242,196,184, 1,121, 69, 80,117,174,181,183,212,189, 89,167, 25, 72,173, 3,136, 41,253,225,122,129,190,235,
+234,234,146,148,148,132, 54,113,238,222, 5, 70, 58, 29,218,254,148, 84, 3,104,205,255,209, 78, 0,241, 0, 32,128,104,181, 17,
+ 12, 82,220, 35,215, 10, 68,222, 88,130,150,183,137, 44, 86,200, 91, 6,138,217,252, 39,190,232,135, 14, 1,117,204, 95,199,192,
+224,209,238,253,127,117, 9, 99, 88, 47,176, 62, 96, 20, 18,188,243,228, 19,168,249,207,204, 76,163, 56,195, 92,245, 79,210, 62,
+ 0, 60,149, 34,254, 90, 1,210,252, 79,113,208, 43,232,153, 88, 89, 85, 46,202, 39,118,245,218,163,132,107,203,104,189, 82, 11,
+179,212,134, 15,157, 17,183,124,136,240,128, 15, 30,128, 86,250,195, 71,126,112,205, 6,115,112,112,176, 60, 96,221,255,240, 64,
+168,110,200,167, 31,159, 24, 65,205, 0, 32,254,247,247,239,255,127,127,254,112,179,243, 30,251,120,254,246,241, 59,174, 70,164,
+223, 98,116, 55,149,129,184,101,160,136, 58, 64,242,209,245,231,114, 68,150,254,112,189,101,101,101,147, 39, 79, 22, 16, 16,120,
+251,246,109, 67, 67, 3, 61, 71,126,200,168, 6, 48,155,255,163,157, 0,226, 1, 64, 0, 81,115, 31, 0,102,111, 0,121,155, 43,
+164, 19, 64, 82,227,148, 14,135, 49,192,155,255,200, 11, 64,129,222,132, 87, 27, 4,183,242, 66,234,128,192,246,121,255,215, 50,
+136, 36,204, 60, 80, 16, 98,211,185,148,129,149,149,155,131,141, 70,110,134, 47,246, 71, 99,144,180, 15,128,140, 30, 0,164,249,
+ 95, 48,107,115, 85,178,155,148,132, 3,124,208,143,248,176,130,149,221,158,206,206,219, 97,227, 63, 36,140,221, 33,183,232,225,
+ 39, 67, 80,119,192,135, 32, 64, 46,247, 33,189, 1,204, 97, 43, 67, 13,195,205,203, 54,255, 13,255, 99, 47,107, 47,204, 43,252,
+227,247, 15, 96,104,179,177,176,125,248,254,237,196,147,189, 11,150, 44,116,212,114, 36,195,234,214,109, 9, 11, 23, 46, 44, 41,
+ 33,106, 19, 0,172, 14, 96, 32,169,244,135,235,205,205,205, 29,192,125, 0,240,106,128, 72,197,164,110, 23, 24, 57,192, 39,166,
+118,203,146,230, 89,157, 21,200,251, 0,144,103,218, 0, 2,136,154,251, 0,208,122, 3,152,197, 61,169,215, 22, 18, 9, 40, 95,
+ 6, 10,169,105, 32,183,236,194, 43, 57, 37, 48, 32,178, 31,192, 0,219,252,101, 95, 53, 3,194,248, 74,155, 24,165,188,185, 77,
+ 73,181, 10,108,254,187,238, 57, 25, 93,191, 8,232, 12,228,174, 21,241, 97, 69,173,126, 0,169,155,194, 40, 28, 14,194, 44,253,
+ 65,139, 68, 49, 38, 0,224,192, 81,207,233,224,154,195,199,229, 78, 88,155, 91, 75,243, 74, 51,252,251,255,250,199,219, 99,231,
+142,189,184,250,194, 73,211,137,157,157,157, 14,153, 31, 82, 7,144, 87,130, 67,250, 1, 3, 59,235, 59,218,120,167, 34,192,220,
+ 2, 6, 1, 0, 1, 68,205, 33, 32,204,125, 76, 88, 23,104, 18,188,132,146,212, 18,138,194,101,160,144,165, 62,123,192,128,164,
+226, 12,210, 87,160,196,106,204,177,108, 74,206,204,161, 67, 21,226, 90, 51,155,188,176,194,236, 4, 16,239, 12, 92,101, 61,176,
+ 19, 0,151, 37,166, 40, 39, 99, 56, 8,180, 22, 40,173,213,125,150, 59,214, 61, 1,248, 39, 3,204,180,205,190,125,251,118,114,
+227,201, 47,191, 64,141, 1,118, 38, 54, 57,113,121, 77, 3, 18, 78,205,179,178,178, 90,187,118, 45,242,138,160,223,191,127,147,
+ 20,212,148,148,224,131,121,205,207, 40, 32,181, 19,128,171,248, 5, 8, 32, 22,250, 23, 43,248, 55, 10,145, 90, 60, 81,126,105,
+ 56,217,197, 25,229,205, 94, 58,140,158, 99, 29,254,129,157,184, 65,191,176,162,196,227,164,182,211,169, 59, 28, 4, 42,229, 31,
+ 98, 17, 55,169, 54, 33,168,151,139,139, 75, 71, 85,151, 18,103, 7, 7, 7,143, 22, 97,163,128,242, 58, 0,151, 20, 64, 0,141,
+ 94, 10, 63, 10, 70,193, 40, 24, 5, 35, 20, 0, 4,208,232,141, 96,163, 96, 20,140,130, 81, 48, 66, 1, 64, 0,141, 86, 0,163,
+ 96, 20,140,130, 81, 48, 66, 1, 64,128, 1, 0,102,166,130,194, 95,117, 5, 95, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
};
diff --git a/source/blender/src/drawnode.c b/source/blender/src/drawnode.c
index 890cd0f53af..1522ab83303 100644
--- a/source/blender/src/drawnode.c
+++ b/source/blender/src/drawnode.c
@@ -105,9 +105,9 @@ static void snode_drawstring(SpaceNode *snode, char *str, int okwidth)
/* ************** Socket callbacks *********** */
/* NOTE: this is a block-menu, needs 0 events, otherwise the menu closes */
-static uiBlock *socket_vector_menu(void *sock_v)
+static uiBlock *socket_vector_menu(void *butpoin_v)
{
- bNodeSocket *sock= sock_v;
+ float *butpoin= butpoin_v;
uiBlock *block;
block= uiNewBlock(&curarea->uiblocks, "socket menu", UI_EMBOSS, UI_HELV, curarea->win);
@@ -116,9 +116,9 @@ static uiBlock *socket_vector_menu(void *sock_v)
uiDefBut(block, LABEL, 0, "", -4, -4, 188, 68, NULL, 0, 0, 0, 0, "");
uiBlockBeginAlign(block);
- uiDefButF(block, NUMSLI, 0, "X ", 0,40,180,20, sock->ns.vec, -1.0, 1.0, 10, 0, "");
- uiDefButF(block, NUMSLI, 0, "Y ", 0,20,180,20, sock->ns.vec+1, -1.0, 1.0, 10, 0, "");
- uiDefButF(block, NUMSLI, 0, "Z ", 0,0,180,20, sock->ns.vec+2, -1.0, 1.0, 10, 0, "");
+ uiDefButF(block, NUMSLI, 0, "X ", 0,40,180,20, butpoin, -1.0, 1.0, 10, 0, "");
+ uiDefButF(block, NUMSLI, 0, "Y ", 0,20,180,20, butpoin+1, -1.0, 1.0, 10, 0, "");
+ uiDefButF(block, NUMSLI, 0, "Z ", 0,0,180,20, butpoin+2, -1.0, 1.0, 10, 0, "");
uiBlockSetDirection(block, UI_TOP);
@@ -127,13 +127,12 @@ static uiBlock *socket_vector_menu(void *sock_v)
return block;
}
-/* ****************** BUTTON CALLBACKS FOR SHADER NODES ***************** */
-
+/* ****************** GENERAL CALLBACKS FOR NODES ***************** */
static void node_ID_title_cb(void *node_v, void *unused_v)
{
bNode *node= node_v;
-
+
if(node->id) {
test_idbutton(node->id->name+2); /* library.c, verifies unique name */
BLI_strncpy(node->name, node->id->name+2, 21);
@@ -144,6 +143,41 @@ static void node_ID_title_cb(void *node_v, void *unused_v)
}
}
+static int node_buts_group(uiBlock *block, bNodeTree *ntree, bNode *node, rctf *butr)
+{
+ if(block && node->id) {
+ uiBut *bt;
+ short width;
+
+ uiBlockBeginAlign(block);
+
+ /* name button */
+ width= (short)(butr->xmax-butr->xmin - (node->id->us>1?19.0f:0.0f));
+ bt= uiDefBut(block, TEX, B_NOP, "NT:",
+ butr->xmin, butr->ymin, width, 19,
+ node->id->name+2, 0.0, 19.0, 0, 0, "NodeTree name");
+ uiButSetFunc(bt, node_ID_title_cb, node, NULL);
+
+ /* user amount */
+ if(node->id->us>1) {
+ char str1[32];
+ sprintf(str1, "%d", node->id->us);
+ bt= uiDefBut(block, BUT, B_NOP, str1,
+ butr->xmax-19, butr->ymin, 19, 19,
+ NULL, 0, 0, 0, 0, "Displays number of users. Click to make a single-user copy.");
+ //uiButSetFunc(bt, node_mat_alone_cb, node, NULL);
+ }
+
+ uiBlockEndAlign(block);
+ }
+ return 19;
+}
+
+
+
+/* ****************** BUTTON CALLBACKS FOR SHADER NODES ***************** */
+
+
static void node_mat_alone_cb(void *node_v, void *unused)
{
bNode *node= node_v;
@@ -170,7 +204,10 @@ static void node_browse_mat_cb(void *ntree_v, void *node_v)
ma->id.us--;
ma= copy_material(ma);
ma->use_nodes= 0;
- if(ma->nodetree) ntreeFreeTree(ma->nodetree);
+ if(ma->nodetree) {
+ ntreeFreeTree(ma->nodetree);
+ MEM_freeN(ma->nodetree);
+ }
ma->nodetree= NULL;
node->id= (ID *)ma;
}
@@ -371,6 +408,9 @@ static int node_shader_buts_valtorgb(uiBlock *block, bNodeTree *ntree, bNode *no
static void node_shader_set_butfunc(bNodeType *ntype)
{
switch(ntype->type) {
+ case NODE_GROUP: /* note, generic type, but put here because we call this function anyway */
+ ntype->butfunc= node_buts_group;
+ break;
case SH_NODE_MATERIAL:
ntype->butfunc= node_shader_buts_material;
break;
@@ -548,87 +588,162 @@ static void node_draw_preview(bNodePreview *preview, rctf *prv)
}
-/* based on settings in node, sets drawing rect info */
-static void node_update(bNode *node)
+/* based on settings in node, sets drawing rect info. each redraw! */
+static void node_update_hidden(bNode *node)
{
bNodeSocket *nsock;
+ float rad, drad, hiddenrad= HIDDEN_RAD;
+ int totin=0, totout=0, tot;
+
+ /* calculate minimal radius */
+ for(nsock= node->inputs.first; nsock; nsock= nsock->next)
+ if(!(nsock->flag & SOCK_HIDDEN))
+ totin++;
+ for(nsock= node->outputs.first; nsock; nsock= nsock->next)
+ if(!(nsock->flag & SOCK_HIDDEN))
+ totout++;
+
+ tot= MAX2(totin, totout);
+ if(tot>4) {
+ hiddenrad += 5.0*(float)(tot-4);
+ }
- if(node->flag & NODE_HIDDEN) {
- float rad, drad, hiddenrad= HIDDEN_RAD;
- int totin, totout, tot;
-
- /* calculate minimal radius */
- totin= BLI_countlist(&node->inputs);
- totout= BLI_countlist(&node->outputs);
- tot= MAX2(totin, totout);
- if(tot>4) {
- hiddenrad += 5.0*(float)(tot-4);
- }
-
- node->totr.xmin= node->locx;
- node->totr.xmax= node->locx + 3*hiddenrad + node->miniwidth;
- node->totr.ymax= node->locy + (hiddenrad - 0.5f*NODE_DY);
- node->totr.ymin= node->totr.ymax - 2*hiddenrad;
-
- /* output connectors */
- rad=drad= M_PI/(1.0f + (float)totout);
-
- for(nsock= node->outputs.first; nsock; nsock= nsock->next, rad+= drad) {
+ node->totr.xmin= node->locx;
+ node->totr.xmax= node->locx + 3*hiddenrad + node->miniwidth;
+ node->totr.ymax= node->locy + (hiddenrad - 0.5f*NODE_DY);
+ node->totr.ymin= node->totr.ymax - 2*hiddenrad;
+
+ /* output sockets */
+ rad=drad= M_PI/(1.0f + (float)totout);
+
+ for(nsock= node->outputs.first; nsock; nsock= nsock->next) {
+ if(!(nsock->flag & SOCK_HIDDEN)) {
nsock->locx= node->totr.xmax - hiddenrad + sin(rad)*hiddenrad;
nsock->locy= node->totr.ymin + hiddenrad + cos(rad)*hiddenrad;
+ rad+= drad;
}
-
- /* input connectors */
- rad=drad= - M_PI/(1.0f + (float)totin);
-
- for(nsock= node->inputs.first; nsock; nsock= nsock->next, rad+= drad) {
+ }
+
+ /* input sockets */
+ rad=drad= - M_PI/(1.0f + (float)totin);
+
+ for(nsock= node->inputs.first; nsock; nsock= nsock->next) {
+ if(!(nsock->flag & SOCK_HIDDEN)) {
nsock->locx= node->totr.xmin + hiddenrad + sin(rad)*hiddenrad;
nsock->locy= node->totr.ymin + hiddenrad + cos(rad)*hiddenrad;
+ rad+= drad;
}
}
- else {
- float dy= node->locy;
-
- /* header */
- dy-= NODE_DY;
-
- /* output connectors */
- for(nsock= node->outputs.first; nsock; nsock= nsock->next) {
+}
+
+/* based on settings in node, sets drawing rect info. each redraw! */
+static void node_update(bNode *node)
+{
+ bNodeSocket *nsock;
+ float dy= node->locy;
+
+ /* header */
+ dy-= NODE_DY;
+
+ /* little bit space in top */
+ if(node->outputs.first)
+ dy-= NODE_DYS/2;
+
+ /* output sockets */
+ for(nsock= node->outputs.first; nsock; nsock= nsock->next) {
+ if(!(nsock->flag & SOCK_HIDDEN)) {
nsock->locx= node->locx + node->width;
nsock->locy= dy - NODE_DYS;
dy-= NODE_DY;
}
-
- node->prvr.xmin= node->butr.xmin= node->locx + NODE_DYS;
- node->prvr.xmax= node->butr.xmax= node->locx + node->width- NODE_DYS;
-
- /* preview rect? */
- if(node->flag & NODE_PREVIEW) {
- dy-= NODE_DYS/2;
- node->prvr.ymax= dy;
- node->prvr.ymin= dy-(node->width-NODE_DY);
- dy= node->prvr.ymin - NODE_DYS/2;
- }
-
- /* buttons rect? */
- if((node->flag & NODE_OPTIONS) && node->typeinfo->butfunc) {
- dy-= NODE_DYS/2;
- node->butr.ymax= dy;
- node->butr.ymin= dy - (float)node->typeinfo->butfunc(NULL, NULL, node, NULL);
- dy= node->butr.ymin - NODE_DYS/2;
- }
-
- /* input connectors */
- for(nsock= node->inputs.first; nsock; nsock= nsock->next) {
+ }
+
+ node->prvr.xmin= node->butr.xmin= node->locx + NODE_DYS;
+ node->prvr.xmax= node->butr.xmax= node->locx + node->width- NODE_DYS;
+
+ /* preview rect? */
+ if(node->flag & NODE_PREVIEW) {
+ dy-= NODE_DYS/2;
+ node->prvr.ymax= dy;
+ node->prvr.ymin= dy-(node->width-NODE_DY);
+ dy= node->prvr.ymin - NODE_DYS/2;
+ }
+
+ /* buttons rect? */
+ if((node->flag & NODE_OPTIONS) && node->typeinfo->butfunc) {
+ dy-= NODE_DYS/2;
+ node->butr.ymax= dy;
+ node->butr.ymin= dy - (float)node->typeinfo->butfunc(NULL, NULL, node, NULL);
+ dy= node->butr.ymin - NODE_DYS/2;
+ }
+
+ /* input sockets */
+ for(nsock= node->inputs.first; nsock; nsock= nsock->next) {
+ if(!(nsock->flag & SOCK_HIDDEN)) {
nsock->locx= node->locx;
nsock->locy= dy - NODE_DYS;
dy-= NODE_DY;
}
-
- node->totr.xmin= node->locx;
- node->totr.xmax= node->locx + node->width;
- node->totr.ymax= node->locy;
- node->totr.ymin= dy;
+ }
+
+ /* little bit space in end */
+ if(node->inputs.first || (node->flag & (NODE_OPTIONS|NODE_PREVIEW))==0 )
+ dy-= NODE_DYS/2;
+
+ node->totr.xmin= node->locx;
+ node->totr.xmax= node->locx + node->width;
+ node->totr.ymax= node->locy;
+ node->totr.ymin= dy;
+}
+
+/* based on settings in node, sets drawing rect info. each redraw! */
+/* note: this assumes only 1 group at a time is drawn (linked data) */
+/* in node->totr the entire boundbox for the group is stored */
+static void node_update_group(bNode *gnode)
+{
+ bNodeTree *ngroup= (bNodeTree *)gnode->id;
+ bNode *node;
+ bNodeSocket *nsock;
+ rctf *rect= &gnode->totr;
+ int counter;
+
+ /* center them, is a bit of abuse of locx and locy though */
+ for(node= ngroup->nodes.first; node; node= node->next) {
+ node->locx+= gnode->locx;
+ node->locy+= gnode->locy;
+ if(node->flag & NODE_HIDDEN)
+ node_update_hidden(node);
+ else
+ node_update(node);
+ node->locx-= gnode->locx;
+ node->locy-= gnode->locy;
+ }
+ counter= 1;
+ for(node= ngroup->nodes.first; node; node= node->next) {
+ if(counter) {
+ *rect= node->totr;
+ counter= 0;
+ }
+ else
+ BLI_union_rctf(rect, &node->totr);
+ }
+ if(counter==1) return; /* should be prevented? */
+
+ rect->xmin-= NODE_DY;
+ rect->ymin-= NODE_DY;
+ rect->xmax+= NODE_DY;
+ rect->ymax+= NODE_DY;
+
+ /* output sockets */
+ for(nsock= gnode->outputs.first; nsock; nsock= nsock->next) {
+ nsock->locx= rect->xmax;
+ nsock->locy= nsock->tosock->locy;
+ }
+
+ /* input sockets */
+ for(nsock= gnode->inputs.first; nsock; nsock= nsock->next) {
+ nsock->locx= rect->xmin;
+ nsock->locy= nsock->tosock->locy;
}
}
@@ -663,10 +778,12 @@ static int node_get_colorid(bNode *node)
return TH_NODE_GENERATOR;
if(node->typeinfo->nclass==NODE_CLASS_OPERATOR)
return TH_NODE_OPERATOR;
+ if(node->typeinfo->nclass==NODE_CLASS_GROUP)
+ return TH_NODE_GROUP;
return TH_NODE;
}
-static void node_basis_draw(ScrArea *sa, SpaceNode *snode, bNode *node)
+static void node_draw_basis(ScrArea *sa, SpaceNode *snode, bNode *node)
{
bNodeSocket *sock;
rctf *rct= &node->totr;
@@ -685,7 +802,7 @@ static void node_basis_draw(ScrArea *sa, SpaceNode *snode, bNode *node)
uiSetRoundBox(3);
uiRoundBox(rct->xmin, rct->ymax-NODE_DY, rct->xmax, rct->ymax, BASIS_RAD);
- /* show/hide icons */
+ /* show/hide icons, note this sequence is copied in editnode.c */
iconofs= rct->xmax;
if(node->typeinfo->flag & NODE_PREVIEW) {
@@ -698,14 +815,34 @@ static void node_basis_draw(ScrArea *sa, SpaceNode *snode, bNode *node)
iconofs-= 18.0f;
glEnable(GL_BLEND);
BIF_icon_set_aspect(icon_id, snode->aspect);
- BIF_icon_draw_blended(iconofs, rct->ymax-NODE_DY+2, icon_id, 0, -50);
+ BIF_icon_draw_blended(iconofs, rct->ymax-NODE_DY+2, icon_id, 0, -60);
+ glDisable(GL_BLEND);
+ }
+ if(node->type == NODE_GROUP) {
+ iconofs-= 18.0f;
+ glEnable(GL_BLEND);
+ BIF_icon_set_aspect(ICON_NODE, snode->aspect);
+ BIF_icon_draw_blended(iconofs, rct->ymax-NODE_DY+2, ICON_NODE, 0, -60);
glDisable(GL_BLEND);
}
if(node->typeinfo->flag & NODE_OPTIONS) {
iconofs-= 18.0f;
glEnable(GL_BLEND);
BIF_icon_set_aspect(ICON_BUTS, snode->aspect);
- BIF_icon_draw_blended(iconofs, rct->ymax-NODE_DY+2, ICON_BUTS, 0, -50);
+ BIF_icon_draw_blended(iconofs, rct->ymax-NODE_DY+2, ICON_BUTS, 0, -60);
+ glDisable(GL_BLEND);
+ }
+ if(node->outputs.first) {
+ int shade;
+ /* socket selector */
+ iconofs-= 18.0f;
+ if(node_has_hidden_sockets(node))
+ shade= -40;
+ else
+ shade= -90;
+ glEnable(GL_BLEND);
+ BIF_icon_set_aspect(ICON_PLUS, snode->aspect);
+ BIF_icon_draw_blended(iconofs, rct->ymax-NODE_DY+2, ICON_PLUS, 0, shade);
glDisable(GL_BLEND);
}
@@ -755,45 +892,54 @@ static void node_basis_draw(ScrArea *sa, SpaceNode *snode, bNode *node)
/* socket inputs, label buttons */
for(sock= node->inputs.first; sock; sock= sock->next) {
- socket_circle_draw(sock->locx, sock->locy, NODE_SOCKSIZE, sock->type, sock->flag & SELECT);
-
- if(node->block && sock->link==NULL) {
- if(sock->type==SOCK_VALUE) {
- uiDefButF(node->block, NUM, B_NODE_EXEC, sock->name,
- (short)node->locx+NODE_DYS, (short)(sock->locy)-7, (short)node->width-NODE_DY, 17,
- sock->ns.vec, 0.0f, 1.0f, 10, 2, "");
- }
- else if(sock->type==SOCK_VECTOR) {
- uiDefBlockBut(node->block, socket_vector_menu, sock, sock->name,
- (short)node->locx+NODE_DYS, (short)sock->locy-7, (short)node->width-NODE_DY, 17,
- "");
+ if(!(sock->flag & SOCK_HIDDEN)) {
+ socket_circle_draw(sock->locx, sock->locy, NODE_SOCKSIZE, sock->type, sock->flag & SELECT);
+
+ if(node->block && sock->link==NULL) {
+ float *butpoin= sock->ns.vec;
+
+ if(node->type==NODE_GROUP && sock->tosock)
+ butpoin= sock->tosock->ns.vec;
+
+ if(sock->type==SOCK_VALUE) {
+ uiDefButF(node->block, NUM, B_NODE_EXEC, sock->name,
+ (short)sock->locx+NODE_DYS, (short)(sock->locy)-9, (short)node->width-NODE_DY, 17,
+ butpoin, 0.0f, 1.0f, 10, 2, "");
+ }
+ else if(sock->type==SOCK_VECTOR) {
+ uiDefBlockBut(node->block, socket_vector_menu, butpoin, sock->name,
+ (short)sock->locx+NODE_DYS, (short)sock->locy-9, (short)node->width-NODE_DY, 17,
+ "");
+ }
+ else if(node->block && sock->type==SOCK_RGBA) {
+ uiDefButF(node->block, COL, B_NODE_EXEC, "",
+ (short)(sock->locx+NODE_DYS), (short)sock->locy-8, (short)(node->width-NODE_DY), 15,
+ butpoin, 0, 0, 0, 0, "");
+ }
}
- else if(node->block && sock->type==SOCK_RGBA) {
- uiDefButF(node->block, COL, B_NODE_EXEC, "",
- (short)(node->locx+NODE_DYS), (short)sock->locy-6, (short)(node->width-NODE_DY), 15,
- sock->ns.vec, 0, 0, 0, 0, "");
+ else {
+ BIF_ThemeColor(TH_TEXT);
+ ui_rasterpos_safe(sock->locx+8.0f, sock->locy-5.0f, snode->aspect);
+ BIF_DrawString(snode->curfont, sock->name, 0);
}
}
- else {
- BIF_ThemeColor(TH_TEXT);
- ui_rasterpos_safe(sock->locx+8.0f, sock->locy-5.0f, snode->aspect);
- BIF_DrawString(snode->curfont, sock->name, 0);
- }
}
/* socket outputs */
for(sock= node->outputs.first; sock; sock= sock->next) {
- socket_circle_draw(sock->locx, sock->locy, NODE_SOCKSIZE, sock->type, sock->flag & SELECT);
-
- BIF_ThemeColor(TH_TEXT);
- ofs= 0;
- slen= snode->aspect*BIF_GetStringWidth(snode->curfont, sock->name, 0);
- while(slen > node->width) {
- ofs++;
- slen= snode->aspect*BIF_GetStringWidth(snode->curfont, sock->name+ofs, 0);
+ if(!(sock->flag & SOCK_HIDDEN)) {
+ socket_circle_draw(sock->locx, sock->locy, NODE_SOCKSIZE, sock->type, sock->flag & SELECT);
+
+ BIF_ThemeColor(TH_TEXT);
+ ofs= 0;
+ slen= snode->aspect*BIF_GetStringWidth(snode->curfont, sock->name, 0);
+ while(slen > node->width) {
+ ofs++;
+ slen= snode->aspect*BIF_GetStringWidth(snode->curfont, sock->name+ofs, 0);
+ }
+ ui_rasterpos_safe(sock->locx-8.0f-slen, sock->locy-5.0f, snode->aspect);
+ BIF_DrawString(snode->curfont, sock->name+ofs, 0);
}
- ui_rasterpos_safe(sock->locx-8.0f-slen, sock->locy-5.0f, snode->aspect);
- BIF_DrawString(snode->curfont, sock->name+ofs, 0);
}
/* preview */
@@ -811,7 +957,7 @@ static void node_basis_draw(ScrArea *sa, SpaceNode *snode, bNode *node)
}
-void node_hidden_draw(SpaceNode *snode, bNode *node)
+void node_draw_hidden(SpaceNode *snode, bNode *node)
{
bNodeSocket *sock;
rctf *rct= &node->totr;
@@ -865,25 +1011,19 @@ void node_hidden_draw(SpaceNode *snode, bNode *node)
fdrawline(rct->xmax-dx, centy-4.0f, rct->xmax-dx, centy+4.0f);
fdrawline(rct->xmax-dx-3.0f*snode->aspect, centy-4.0f, rct->xmax-dx-3.0f*snode->aspect, centy+4.0f);
- /* icon */
- // if(node->id) {
- // glEnable(GL_BLEND);
- // BIF_icon_set_aspect(node->id->icon_id, snode->aspect);
- // BIF_icon_draw(rct->xmin+hiddenrad, -1.0f+rct->ymin+hiddenrad/2, node->id->icon_id);
- // glDisable(GL_BLEND);
- // }
-
-
/* sockets */
for(sock= node->inputs.first; sock; sock= sock->next) {
- socket_circle_draw(sock->locx, sock->locy, NODE_SOCKSIZE, sock->type, sock->flag & SELECT);
+ if(!(sock->flag & SOCK_HIDDEN))
+ socket_circle_draw(sock->locx, sock->locy, NODE_SOCKSIZE, sock->type, sock->flag & SELECT);
}
for(sock= node->outputs.first; sock; sock= sock->next) {
- socket_circle_draw(sock->locx, sock->locy, NODE_SOCKSIZE, sock->type, sock->flag & SELECT);
+ if(!(sock->flag & SOCK_HIDDEN))
+ socket_circle_draw(sock->locx, sock->locy, NODE_SOCKSIZE, sock->type, sock->flag & SELECT);
}
}
+/* note; this is used for fake links in groups too */
void node_draw_link(SpaceNode *snode, bNodeLink *link)
{
float vec[4][3];
@@ -902,11 +1042,16 @@ void node_draw_link(SpaceNode *snode, bNodeLink *link)
BIF_ThemeColor(TH_WIRE);
}
else {
- /* check cyclic */
- if(link->fromnode->level >= link->tonode->level && link->tonode->level!=0xFFF)
- BIF_ThemeColor(TH_WIRE);
- else
- BIF_ThemeColor(TH_REDALERT);
+ /* a bit ugly... but thats how we detect the internal group links */
+ if(link->fromnode==link->tonode)
+ BIF_ThemeColorBlend(TH_BACK, TH_WIRE, 0.25f);
+ else {
+ /* check cyclic */
+ if(link->fromnode->level >= link->tonode->level && link->tonode->level!=0xFFF)
+ BIF_ThemeColor(TH_WIRE);
+ else
+ BIF_ThemeColor(TH_REDALERT);
+ }
}
vec[0][2]= vec[1][2]= vec[2][2]= vec[3][2]= 0.0; /* only 2d spline, set the Z to 0*/
@@ -957,6 +1102,127 @@ void node_draw_link(SpaceNode *snode, bNodeLink *link)
}
}
+static void node_draw_nodetree(ScrArea *sa, SpaceNode *snode, bNodeTree *ntree)
+{
+ bNode *node;
+ bNodeLink *link;
+
+ if(ntree==NULL) return; /* groups... */
+
+ /* node lines */
+ glEnable(GL_BLEND);
+ glEnable( GL_LINE_SMOOTH );
+ for(link= ntree->links.first; link; link= link->next)
+ node_draw_link(snode, link);
+ glDisable(GL_BLEND);
+ glDisable( GL_LINE_SMOOTH );
+
+ /* not selected first */
+ for(node= ntree->nodes.first; node; node= node->next) {
+ node->block= NULL; /* were freed */
+ if(!(node->flag & SELECT)) {
+ if(node->flag & NODE_GROUP_EDIT);
+ else if(node->flag & NODE_HIDDEN)
+ node_draw_hidden(snode, node);
+ else
+ node_draw_basis(sa, snode, node);
+ }
+ }
+
+ /* selected */
+ for(node= ntree->nodes.first; node; node= node->next) {
+ if(node->flag & SELECT) {
+ if(node->flag & NODE_GROUP_EDIT);
+ else if(node->flag & NODE_HIDDEN)
+ node_draw_hidden(snode, node);
+ else
+ node_draw_basis(sa, snode, node);
+ }
+ }
+}
+
+/* fake links from groupnode to internal nodes */
+static void node_draw_group_links(SpaceNode *snode, bNode *gnode)
+{
+ bNodeLink fakelink;
+ bNodeSocket *sock;
+
+ glEnable(GL_BLEND);
+ glEnable( GL_LINE_SMOOTH );
+
+ fakelink.tonode= fakelink.fromnode= gnode;
+
+ for(sock= gnode->inputs.first; sock; sock= sock->next) {
+ if(!(sock->flag & SOCK_HIDDEN)) {
+ if(sock->tosock) {
+ fakelink.fromsock= sock;
+ fakelink.tosock= sock->tosock;
+ node_draw_link(snode, &fakelink);
+ }
+ }
+ }
+
+ for(sock= gnode->outputs.first; sock; sock= sock->next) {
+ if(!(sock->flag & SOCK_HIDDEN)) {
+ if(sock->tosock) {
+ fakelink.tosock= sock;
+ fakelink.fromsock= sock->tosock;
+ node_draw_link(snode, &fakelink);
+ }
+ }
+ }
+
+ glDisable(GL_BLEND);
+ glDisable( GL_LINE_SMOOTH );
+}
+
+/* groups are, on creation, centered around 0,0 */
+static void node_draw_group(ScrArea *sa, SpaceNode *snode, bNode *gnode)
+{
+ bNodeTree *ngroup= (bNodeTree *)gnode->id;
+ bNodeSocket *sock;
+ rctf rect= gnode->totr;
+
+ /* backdrop header */
+ glEnable(GL_BLEND);
+ uiSetRoundBox(3);
+ BIF_ThemeColorShadeAlpha(TH_NODE_GROUP, 0, -70);
+ gl_round_box(GL_POLYGON, rect.xmin, rect.ymax, rect.xmax, rect.ymax+NODE_DY, BASIS_RAD);
+
+ /* backdrop body */
+ BIF_ThemeColorShadeAlpha(TH_BACK, -8, -70);
+ uiSetRoundBox(12);
+ gl_round_box(GL_POLYGON, rect.xmin, rect.ymin, rect.xmax, rect.ymax, BASIS_RAD);
+
+ /* selection outline */
+ uiSetRoundBox(15);
+ glColor4ub(200, 200, 200, 140);
+ glEnable( GL_LINE_SMOOTH );
+ gl_round_box(GL_LINE_LOOP, rect.xmin, rect.ymin, rect.xmax, rect.ymax+NODE_DY, BASIS_RAD);
+ glDisable( GL_LINE_SMOOTH );
+ glDisable(GL_BLEND);
+
+ /* backdrop title */
+ BIF_ThemeColor(TH_TEXT_HI);
+ ui_rasterpos_safe(rect.xmin+8.0f, rect.ymax+5.0f, snode->aspect);
+ BIF_DrawString(snode->curfont, ngroup->id.name+2, 0);
+
+ /* links from groupsockets to the internal nodes */
+ node_draw_group_links(snode, gnode);
+
+ /* group sockets */
+ for(sock= gnode->inputs.first; sock; sock= sock->next)
+ if(!(sock->flag & SOCK_HIDDEN))
+ socket_circle_draw(sock->locx, sock->locy, NODE_SOCKSIZE, sock->type, sock->flag & SELECT);
+ for(sock= gnode->outputs.first; sock; sock= sock->next)
+ if(!(sock->flag & SOCK_HIDDEN))
+ socket_circle_draw(sock->locx, sock->locy, NODE_SOCKSIZE, sock->type, sock->flag & SELECT);
+
+ /* and finally the whole tree */
+ node_draw_nodetree(sa, snode, ngroup);
+}
+
+
void drawnodespace(ScrArea *sa, void *spacedata)
{
@@ -992,39 +1258,23 @@ void drawnodespace(ScrArea *sa, void *spacedata)
if(snode->nodetree) {
bNode *node;
- bNodeLink *link;
/* for now, we set drawing coordinates on each redraw */
- for(node= snode->nodetree->nodes.first; node; node= node->next)
- node_update(node);
-
- /* node lines */
- glEnable(GL_BLEND);
- glEnable( GL_LINE_SMOOTH );
- for(link= snode->nodetree->links.first; link; link= link->next)
- node_draw_link(snode, link);
- glDisable(GL_BLEND);
- glDisable( GL_LINE_SMOOTH );
-
- /* not selected first */
for(node= snode->nodetree->nodes.first; node; node= node->next) {
- node->block= NULL; /* were freed */
- if(!(node->flag & SELECT)) {
- if(node->flag & NODE_HIDDEN)
- node_hidden_draw(snode, node);
- else
- node_basis_draw(sa, snode, node);
- }
+ if(node->flag & NODE_GROUP_EDIT)
+ node_update_group(node);
+ else if(node->flag & NODE_HIDDEN)
+ node_update_hidden(node);
+ else
+ node_update(node);
}
-
- /* selected */
+
+ node_draw_nodetree(sa, snode, snode->nodetree);
+
+ /* active group */
for(node= snode->nodetree->nodes.first; node; node= node->next) {
- if(node->flag & SELECT) {
- if(node->flag & NODE_HIDDEN)
- node_hidden_draw(snode, node);
- else
- node_basis_draw(sa, snode, node);
- }
+ if(node->flag & NODE_GROUP_EDIT)
+ node_draw_group(sa, snode, node);
}
}
diff --git a/source/blender/src/editnode.c b/source/blender/src/editnode.c
index 8be18eabf1b..d2874d61fbb 100644
--- a/source/blender/src/editnode.c
+++ b/source/blender/src/editnode.c
@@ -163,10 +163,10 @@ void node_shader_default(Material *ma)
ma->nodetree= ntreeAddTree(NTREE_SHADER);
- out= nodeAddNodeType(ma->nodetree, SH_NODE_OUTPUT);
+ out= nodeAddNodeType(ma->nodetree, SH_NODE_OUTPUT, NULL);
out->locx= 300.0f; out->locy= 300.0f;
- in= nodeAddNodeType(ma->nodetree, SH_NODE_MATERIAL);
+ in= nodeAddNodeType(ma->nodetree, SH_NODE_MATERIAL, NULL);
in->locx= 10.0f; in->locy= 300.0f;
nodeSetActive(ma->nodetree, in);
@@ -178,10 +178,11 @@ void node_shader_default(Material *ma)
ntreeSolveOrder(ma->nodetree); /* needed for pointers */
}
-/* even called for each redraw now, so keep it fast :) */
+/* Here we set the active tree(s), even called for each redraw now, so keep it fast :) */
void snode_set_context(SpaceNode *snode)
{
Object *ob= OBACT;
+ bNode *node= NULL;
snode->nodetree= NULL;
snode->id= snode->from= NULL;
@@ -197,6 +198,90 @@ void snode_set_context(SpaceNode *snode)
}
}
}
+
+ /* find editable group */
+ if(snode->nodetree)
+ for(node= snode->nodetree->nodes.first; node; node= node->next)
+ if(node->flag & NODE_GROUP_EDIT)
+ break;
+
+ if(node && node->id)
+ snode->edittree= (bNodeTree *)node->id;
+ else
+ snode->edittree= snode->nodetree;
+}
+
+static bNode *snode_get_editgroup(SpaceNode *snode)
+{
+ bNode *gnode;
+
+ /* get the groupnode */
+ for(gnode= snode->nodetree->nodes.first; gnode; gnode= gnode->next)
+ if(gnode->flag & NODE_GROUP_EDIT)
+ break;
+ return gnode;
+}
+
+static void node_make_group_editable(SpaceNode *snode, bNode *gnode)
+{
+ bNode *node;
+
+ /* make sure nothing has group editing on */
+ for(node= snode->nodetree->nodes.first; node; node= node->next)
+ node->flag &= ~NODE_GROUP_EDIT;
+
+ if(gnode==NULL) {
+ /* with NULL argument we do a toggle */
+ if(snode->edittree==snode->nodetree)
+ gnode= nodeGetActive(snode->nodetree);
+ }
+
+ if(gnode && gnode->type==NODE_GROUP && gnode->id) {
+ gnode->flag |= NODE_GROUP_EDIT;
+ snode->edittree= (bNodeTree *)gnode->id;
+
+ /* deselect all other nodes, so we can also do grabbing of entire subtree */
+ for(node= snode->nodetree->nodes.first; node; node= node->next)
+ node->flag &= ~SELECT;
+ gnode->flag |= SELECT;
+
+ }
+ else
+ snode->edittree= snode->nodetree;
+
+ allqueue(REDRAWNODE, 0);
+}
+
+static void node_ungroup(SpaceNode *snode)
+{
+ bNode *gnode;
+
+ gnode= nodeGetActive(snode->edittree);
+ if(gnode->type!=NODE_GROUP)
+ error("Not a group");
+ else {
+ if(nodeGroupUnGroup(snode->edittree, gnode)) {
+
+ ntreeSolveOrder(snode->edittree);
+ BIF_undo_push("Deselect all nodes");
+ allqueue(REDRAWNODE, 0);
+ }
+ else
+ error("Can't ungroup");
+ }
+}
+
+/* when links in groups change, inputs/outputs change, nodes added/deleted... */
+static void snode_verify_groups(SpaceNode *snode)
+{
+ bNode *gnode;
+
+ gnode= snode_get_editgroup(snode);
+
+ /* does all materials */
+ if(gnode)
+ nodeVerifyGroup((bNodeTree *)gnode->id);
+
}
/* ************************** Node generic ************** */
@@ -260,7 +345,7 @@ static bNode *visible_node(SpaceNode *snode, rctf *rct)
{
bNode *tnode;
- for(next_node(snode->nodetree); (tnode=next_node(NULL));) {
+ for(next_node(snode->edittree); (tnode=next_node(NULL));) {
if(BLI_isect_rctf(&tnode->totr, rct, NULL))
break;
}
@@ -276,7 +361,7 @@ static void snode_home(ScrArea *sa, SpaceNode *snode)
snode->v2d.cur.xmax= sa->winx;
snode->v2d.cur.xmax= sa->winy;
- for(node= snode->nodetree->nodes.first; node; node= node->next) {
+ for(node= snode->edittree->nodes.first; node; node= node->next) {
if(first) {
first= 0;
snode->v2d.cur= node->totr;
@@ -308,25 +393,29 @@ static int find_indicated_socket(SpaceNode *snode, bNode **nodep, bNodeSocket **
rect.ymax = rect.ymin + 2*NODE_SOCKSIZE+6;
/* check if we click in a socket */
- for(node= snode->nodetree->nodes.first; node; node= node->next) {
+ for(node= snode->edittree->nodes.first; node; node= node->next) {
if(in_out & SOCK_IN) {
for(sock= node->inputs.first; sock; sock= sock->next) {
- if(BLI_in_rctf(&rect, sock->locx, sock->locy)) {
- if(node == visible_node(snode, &rect)) {
- *nodep= node;
- *sockp= sock;
- return 1;
+ if(!(sock->flag & SOCK_HIDDEN)) {
+ if(BLI_in_rctf(&rect, sock->locx, sock->locy)) {
+ if(node == visible_node(snode, &rect)) {
+ *nodep= node;
+ *sockp= sock;
+ return 1;
+ }
}
}
}
}
if(in_out & SOCK_OUT) {
for(sock= node->outputs.first; sock; sock= sock->next) {
- if(BLI_in_rctf(&rect, sock->locx, sock->locy)) {
- if(node == visible_node(snode, &rect)) {
- *nodep= node;
- *sockp= sock;
- return 1;
+ if(!(sock->flag & SOCK_HIDDEN)) {
+ if(BLI_in_rctf(&rect, sock->locx, sock->locy)) {
+ if(node == visible_node(snode, &rect)) {
+ *nodep= node;
+ *sockp= sock;
+ return 1;
+ }
}
}
}
@@ -338,7 +427,8 @@ static int find_indicated_socket(SpaceNode *snode, bNode **nodep, bNodeSocket **
/* ********************* transform ****************** */
/* releases on event, only intern (for extern see below) */
-static void transform_nodes(SpaceNode *snode, char mode, char *undostr)
+/* we need argument ntree to allow operations on edittree or nodetree */
+static void transform_nodes(bNodeTree *ntree, char mode, char *undostr)
{
bNode *node;
float mxstart, mystart, mx, my, *oldlocs, *ol;
@@ -346,14 +436,14 @@ static void transform_nodes(SpaceNode *snode, char mode, char *undostr)
short mval[2], mvalo[2];
/* count total */
- for(node= snode->nodetree->nodes.first; node; node= node->next)
+ for(node= ntree->nodes.first; node; node= node->next)
if(node->flag & SELECT) tot++;
if(tot==0) return;
/* store oldlocs */
ol= oldlocs= MEM_mallocN(sizeof(float)*2*tot, "oldlocs transform");
- for(node= snode->nodetree->nodes.first; node; node= node->next) {
+ for(node= ntree->nodes.first; node; node= node->next) {
if(node->flag & SELECT) {
ol[0]= node->locx; ol[1]= node->locy;
ol+= 2;
@@ -375,7 +465,7 @@ static void transform_nodes(SpaceNode *snode, char mode, char *undostr)
mvalo[0]= mval[0];
mvalo[1]= mval[1];
- for(ol= oldlocs, node= snode->nodetree->nodes.first; node; node= node->next) {
+ for(ol= oldlocs, node= ntree->nodes.first; node; node= node->next) {
if(node->flag & SELECT) {
node->locx= ol[0] + mx-mxstart;
node->locy= ol[1] + my-mystart;
@@ -416,7 +506,7 @@ static void transform_nodes(SpaceNode *snode, char mode, char *undostr)
}
if(cancel) {
- for(ol= oldlocs, node= snode->nodetree->nodes.first; node; node= node->next) {
+ for(ol= oldlocs, node= ntree->nodes.first; node; node= node->next) {
if(node->flag & SELECT) {
node->locx= ol[0];
node->locy= ol[1];
@@ -435,7 +525,9 @@ static void transform_nodes(SpaceNode *snode, char mode, char *undostr)
/* external call, also for callback */
void node_transform_ext(int mode, int unused)
{
- transform_nodes(curarea->spacedata.first, 'g', "Translate node");
+ SpaceNode *snode= curarea->spacedata.first;
+
+ transform_nodes(snode->edittree, 'g', "Translate node");
}
@@ -519,11 +611,11 @@ void node_deselectall(SpaceNode *snode, int swap)
bNode *node;
if(swap) {
- for(node= snode->nodetree->nodes.first; node; node= node->next)
+ for(node= snode->edittree->nodes.first; node; node= node->next)
if(node->flag & SELECT)
break;
if(node==NULL) {
- for(node= snode->nodetree->nodes.first; node; node= node->next)
+ for(node= snode->edittree->nodes.first; node; node= node->next)
node->flag |= SELECT;
allqueue(REDRAWNODE, 0);
return;
@@ -531,7 +623,7 @@ void node_deselectall(SpaceNode *snode, int swap)
/* else pass on to deselect */
}
- for(node= snode->nodetree->nodes.first; node; node= node->next)
+ for(node= snode->edittree->nodes.first; node; node= node->next)
node->flag &= ~SELECT;
allqueue(REDRAWNODE, 0);
@@ -540,19 +632,81 @@ void node_deselectall(SpaceNode *snode, int swap)
void node_set_active(SpaceNode *snode, bNode *node)
{
- nodeSetActive(snode->nodetree, node);
+ nodeSetActive(snode->edittree, node);
- /* tree specific activate calls */
- if(snode->treetype==NTREE_SHADER) {
+ if(node->type!=NODE_GROUP) {
- /* when we select a material, active texture is cleared, for buttons */
- if(node->id && GS(node->id->name)==ID_MA)
- nodeClearActiveID(snode->nodetree, ID_TE);
- if(node->id)
- BIF_preview_changed(-1); /* temp hack to force texture preview to update */
+ /* tree specific activate calls */
+ if(snode->treetype==NTREE_SHADER) {
+
+ /* when we select a material, active texture is cleared, for buttons */
+ if(node->id && GS(node->id->name)==ID_MA)
+ nodeClearActiveID(snode->edittree, ID_TE);
+ if(node->id)
+ BIF_preview_changed(-1); /* temp hack to force texture preview to update */
+
+ allqueue(REDRAWBUTSSHADING, 1);
+ }
+ }
+}
+
+int node_has_hidden_sockets(bNode *node)
+{
+ bNodeSocket *sock;
+
+ for(sock= node->inputs.first; sock; sock= sock->next)
+ if(sock->flag & SOCK_HIDDEN)
+ return 1;
+ for(sock= node->outputs.first; sock; sock= sock->next)
+ if(sock->flag & SOCK_HIDDEN)
+ return 1;
+ return 0;
+}
+
+
+static void node_hide_unhide_sockets(SpaceNode *snode, bNode *node)
+{
+ bNodeSocket *sock;
+
+ /* unhide all */
+ if( node_has_hidden_sockets(node) ) {
+ for(sock= node->inputs.first; sock; sock= sock->next)
+ sock->flag &= ~SOCK_HIDDEN;
+ for(sock= node->outputs.first; sock; sock= sock->next)
+ sock->flag &= ~SOCK_HIDDEN;
+ }
+ else {
+ bNode *gnode= snode_get_editgroup(snode);
- allqueue(REDRAWBUTSSHADING, 1);
+ /* hiding inside group should not break links in other group users */
+ if(gnode) {
+ nodeGroupSocketUseFlags((bNodeTree *)gnode->id);
+ for(sock= node->inputs.first; sock; sock= sock->next)
+ if(!(sock->flag & SOCK_IN_USE))
+ if(sock->link==NULL)
+ sock->flag |= SOCK_HIDDEN;
+ for(sock= node->outputs.first; sock; sock= sock->next)
+ if(!(sock->flag & SOCK_IN_USE))
+ if(nodeCountSocketLinks(snode->edittree, sock)==0)
+ sock->flag |= SOCK_HIDDEN;
+ }
+ else {
+ /* hide unused sockets */
+ for(sock= node->inputs.first; sock; sock= sock->next) {
+ if(sock->link==NULL)
+ sock->flag |= SOCK_HIDDEN;
+ }
+ for(sock= node->outputs.first; sock; sock= sock->next) {
+ if(nodeCountSocketLinks(snode->edittree, sock)==0)
+ sock->flag |= SOCK_HIDDEN;
+ }
+ }
}
+
+ allqueue(REDRAWNODE, 1);
+ snode_verify_groups(snode);
+ BIF_undo_push("Hide/Unhide sockets");
+
}
static int do_header_node(SpaceNode *snode, bNode *node, float mx, float my)
@@ -578,13 +732,27 @@ static int do_header_node(SpaceNode *snode, bNode *node, float mx, float my)
}
totr.xmin-=18.0f;
}
+ if(node->type == NODE_GROUP) {
+ if(BLI_in_rctf(&totr, mx, my)) {
+ node_make_group_editable(snode, node);
+ return 1;
+ }
+ totr.xmin-=18.0f;
+ }
if(node->typeinfo->flag & NODE_OPTIONS) {
if(BLI_in_rctf(&totr, mx, my)) {
node->flag ^= NODE_OPTIONS;
allqueue(REDRAWNODE, 0);
return 1;
}
+ totr.xmin-=18.0f;
}
+ if(node->outputs.first) {
+ if(BLI_in_rctf(&totr, mx, my)) {
+ node_hide_unhide_sockets(snode, node);
+ }
+ }
+
totr= node->totr;
totr.xmin= totr.xmax-10.0f;
@@ -627,7 +795,7 @@ static int node_mouse_select(SpaceNode *snode, unsigned short event)
getmouseco_areawin(mval);
areamouseco_to_ipoco(G.v2d, mval, &mx, &my);
- for(next_node(snode->nodetree); (node=next_node(NULL));) {
+ for(next_node(snode->edittree); (node=next_node(NULL));) {
/* first check for the headers or scaling widget */
if(node->flag & NODE_HIDDEN) {
@@ -668,6 +836,34 @@ static int node_mouse_select(SpaceNode *snode, unsigned short event)
return 0;
}
+/* return 0, nothing done */
+static int node_mouse_groupheader(SpaceNode *snode)
+{
+ bNode *gnode;
+ float mx, my;
+ short mval[2];
+
+ gnode= snode_get_editgroup(snode);
+ if(gnode==NULL) return 0;
+
+ getmouseco_areawin(mval);
+ areamouseco_to_ipoco(G.v2d, mval, &mx, &my);
+
+ /* click in header or outside? */
+ if(BLI_in_rctf(&gnode->totr, mx, my)==0) {
+ rctf rect= gnode->totr;
+
+ rect.ymax += NODE_DY;
+ if(BLI_in_rctf(&rect, mx, my)==0)
+ node_make_group_editable(snode, NULL); /* toggles, so exits editmode */
+ else
+ transform_nodes(snode->nodetree, 'g', "Move group");
+
+ return 1;
+ }
+ return 0;
+}
+
static int node_socket_hilights(SpaceNode *snode, int in_out)
{
bNode *node;
@@ -675,13 +871,13 @@ static int node_socket_hilights(SpaceNode *snode, int in_out)
float mx, my;
short mval[2], redraw= 0;
- if(snode->nodetree==NULL) return 0;
+ if(snode->edittree==NULL) return 0;
getmouseco_areawin(mval);
areamouseco_to_ipoco(G.v2d, mval, &mx, &my);
/* deselect socks */
- for(node= snode->nodetree->nodes.first; node; node= node->next) {
+ for(node= snode->edittree->nodes.first; node; node= node->next) {
for(sock= node->inputs.first; sock; sock= sock->next) {
if(sock->flag & SELECT) {
sock->flag &= ~SELECT;
@@ -723,7 +919,7 @@ void node_border_select(SpaceNode *snode)
mval[1]= rect.ymax;
areamouseco_to_ipoco(G.v2d, mval, &rectf.xmax, &rectf.ymax);
- for(node= snode->nodetree->nodes.first; node; node= node->next) {
+ for(node= snode->edittree->nodes.first; node; node= node->next) {
if(BLI_isect_rctf(&rectf, &node->totr, NULL)) {
if(val==LEFTMOUSE)
node->flag |= SELECT;
@@ -741,19 +937,26 @@ void node_border_select(SpaceNode *snode)
/* can be called from menus too, but they should do own undopush and redraws */
bNode *node_add_shadernode(SpaceNode *snode, int type, float locx, float locy)
{
- bNode *node= NULL;
+ bNode *node= NULL, *gnode;
node_deselectall(snode, 0);
- node= nodeAddNodeType(snode->nodetree, type);
+ node= nodeAddNodeType(snode->edittree, type, NULL);
/* generics */
if(node) {
node->locx= locx;
- node->locy= locy;
+ node->locy= locy + 60.0f; // arbitrary.. so its visible
node->flag |= SELECT;
+ gnode= snode_get_editgroup(snode);
+ if(gnode) {
+ node->locx -= gnode->locx;
+ node->locy -= gnode->locy;
+ }
+
node_set_active(snode, node);
+ snode_verify_groups(snode);
}
return node;
}
@@ -770,7 +973,7 @@ static void node_add_menu(SpaceNode *snode)
getmouseco_areawin(mval);
areamouseco_to_ipoco(G.v2d, mval, &locx, &locy);
- node_add_shadernode(snode, event, locx, locy+40.0f);
+ node_add_shadernode(snode, event, locx, locy);
snode_handle_recalc(snode);
@@ -780,18 +983,20 @@ static void node_add_menu(SpaceNode *snode)
void node_adduplicate(SpaceNode *snode)
{
- ntreeCopyTree(snode->nodetree, 1); /* 1 == internally selected nodes */
- ntreeSolveOrder(snode->nodetree);
+ ntreeCopyTree(snode->edittree, 1); /* 1 == internally selected nodes */
+
+ ntreeSolveOrder(snode->edittree);
+ snode_verify_groups(snode);
snode_handle_recalc(snode);
- transform_nodes(snode, 'g', "Duplicate");
+ transform_nodes(snode->edittree, 'g', "Duplicate");
}
static void node_insert_convertor(SpaceNode *snode, bNodeLink *link)
{
bNode *newnode= NULL;
- if(snode->nodetree->type==NTREE_SHADER) {
+ if(snode->edittree->type==NTREE_SHADER) {
if(link->fromsock->type==SOCK_RGBA && link->tosock->type==SOCK_VALUE) {
newnode= node_add_shadernode(snode, SH_NODE_RGBTOBW, 0.0f, 0.0f);
}
@@ -805,7 +1010,7 @@ static void node_insert_convertor(SpaceNode *snode, bNodeLink *link)
newnode->locx= 0.5f*(link->fromsock->locx + link->tosock->locx);
newnode->locy= 0.5f*(link->fromsock->locy + link->tosock->locy) + HIDDEN_RAD;
- nodeAddLink(snode->nodetree, newnode, newnode->outputs.first, link->tonode, link->tosock);
+ nodeAddLink(snode->edittree, newnode, newnode->outputs.first, link->tonode, link->tosock);
link->tonode= newnode;
link->tosock= newnode->inputs.first;
}
@@ -824,9 +1029,9 @@ static int node_add_link_drag(SpaceNode *snode, bNode *node, bNodeSocket *sock,
/* we make a temporal link */
if(in_out==SOCK_OUT)
- link= nodeAddLink(snode->nodetree, node, sock, NULL, NULL);
+ link= nodeAddLink(snode->edittree, node, sock, NULL, NULL);
else
- link= nodeAddLink(snode->nodetree, NULL, NULL, node, sock);
+ link= nodeAddLink(snode->edittree, NULL, NULL, node, sock);
getmouseco_areawin(mvalo);
while (get_mbut() & L_MOUSE) {
@@ -840,12 +1045,12 @@ static int node_add_link_drag(SpaceNode *snode, bNode *node, bNodeSocket *sock,
if(in_out==SOCK_OUT) {
if(find_indicated_socket(snode, &tnode, &tsock, SOCK_IN)) {
- if(nodeFindLink(snode->nodetree, sock, tsock)==NULL) {
- if(tnode!=node && link->tonode!=tnode && link->tosock!= tsock) {
- link->tonode= tnode;
- link->tosock= tsock;
- ntreeSolveOrder(snode->nodetree); /* for interactive red line warning */
- }
+ if(nodeFindLink(snode->edittree, sock, tsock)==NULL) {
+ if(tnode!=node && link->tonode!=tnode && link->tosock!= tsock) {
+ link->tonode= tnode;
+ link->tosock= tsock;
+ ntreeSolveOrder(snode->edittree); /* for interactive red line warning */
+ }
}
}
else {
@@ -855,12 +1060,12 @@ static int node_add_link_drag(SpaceNode *snode, bNode *node, bNodeSocket *sock,
}
else {
if(find_indicated_socket(snode, &tnode, &tsock, SOCK_OUT)) {
- if(nodeFindLink(snode->nodetree, sock, tsock)==NULL) {
- if(nodeCountSocketLinks(snode->nodetree, tsock) < tsock->limit) {
+ if(nodeFindLink(snode->edittree, sock, tsock)==NULL) {
+ if(nodeCountSocketLinks(snode->edittree, tsock) < tsock->limit) {
if(tnode!=node && link->fromnode!=tnode && link->fromsock!= tsock) {
link->fromnode= tnode;
link->fromsock= tsock;
- ntreeSolveOrder(snode->nodetree); /* for interactive red line warning */
+ ntreeSolveOrder(snode->edittree); /* for interactive red line warning */
}
}
}
@@ -879,29 +1084,29 @@ static int node_add_link_drag(SpaceNode *snode, bNode *node, bNodeSocket *sock,
}
if(link->tonode==NULL || link->fromnode==NULL) {
- nodeRemLink(snode->nodetree, link);
+ nodeRemLink(snode->edittree, link);
}
else {
bNodeLink *tlink;
/* we might need to remove a link */
if(in_out==SOCK_OUT) {
- if(nodeCountSocketLinks(snode->nodetree, link->tosock) > tsock->limit) {
+ if(nodeCountSocketLinks(snode->edittree, link->tosock) > tsock->limit) {
- for(tlink= snode->nodetree->links.first; tlink; tlink= tlink->next) {
+ for(tlink= snode->edittree->links.first; tlink; tlink= tlink->next) {
if(link!=tlink && tlink->tosock==link->tosock)
break;
}
if(tlink) {
/* is there a free input socket with same type? */
for(tsock= tlink->tonode->inputs.first; tsock; tsock= tsock->next) {
- if(tsock->type==sock->type)
- if(nodeCountSocketLinks(snode->nodetree, tsock) < tsock->limit)
+ if(tsock->type==tlink->fromsock->type)
+ if(nodeCountSocketLinks(snode->edittree, tsock) < tsock->limit)
break;
}
if(tsock)
tlink->tosock= tsock;
else {
- nodeRemLink(snode->nodetree, tlink);
+ nodeRemLink(snode->edittree, tlink);
}
}
}
@@ -910,12 +1115,14 @@ static int node_add_link_drag(SpaceNode *snode, bNode *node, bNodeSocket *sock,
/* and last trick: insert a convertor when types dont match */
if(link->tosock->type!=link->fromsock->type) {
node_insert_convertor(snode, link);
- ntreeSolveOrder(snode->nodetree); /* so nice do it twice! well, the sort-order can only handle 1 added link at a time */
+ ntreeSolveOrder(snode->edittree); /* so nice do it twice! well, the sort-order can only handle 1 added link at a time */
}
}
- ntreeSolveOrder(snode->nodetree);
+ ntreeSolveOrder(snode->edittree);
+ snode_verify_groups(snode);
snode_handle_recalc(snode);
+
allqueue(REDRAWNODE, 0);
BIF_undo_push("Add link");
@@ -931,36 +1138,36 @@ static int node_add_link(SpaceNode *snode)
/* output indicated? */
if(find_indicated_socket(snode, &node, &sock, SOCK_OUT)) {
- if(nodeCountSocketLinks(snode->nodetree, sock)<sock->limit)
+ if(nodeCountSocketLinks(snode->edittree, sock)<sock->limit)
return node_add_link_drag(snode, node, sock, SOCK_OUT);
else {
/* find if we break a link */
- for(link= snode->nodetree->links.first; link; link= link->next) {
+ for(link= snode->edittree->links.first; link; link= link->next) {
if(link->fromsock==sock)
break;
}
if(link) {
node= link->tonode;
sock= link->tosock;
- nodeRemLink(snode->nodetree, link);
+ nodeRemLink(snode->edittree, link);
return node_add_link_drag(snode, node, sock, SOCK_IN);
}
}
}
/* or an input? */
else if(find_indicated_socket(snode, &node, &sock, SOCK_IN)) {
- if(nodeCountSocketLinks(snode->nodetree, sock)<sock->limit)
+ if(nodeCountSocketLinks(snode->edittree, sock)<sock->limit)
return node_add_link_drag(snode, node, sock, SOCK_IN);
else {
/* find if we break a link */
- for(link= snode->nodetree->links.first; link; link= link->next) {
+ for(link= snode->edittree->links.first; link; link= link->next) {
if(link->tosock==sock)
break;
}
if(link) {
node= link->fromnode;
sock= link->fromsock;
- nodeRemLink(snode->nodetree, link);
+ nodeRemLink(snode->edittree, link);
return node_add_link_drag(snode, node, sock, SOCK_OUT);
}
}
@@ -973,12 +1180,13 @@ static void node_delete(SpaceNode *snode)
{
bNode *node, *next;
- for(node= snode->nodetree->nodes.first; node; node= next) {
+ for(node= snode->edittree->nodes.first; node; node= next) {
next= node->next;
if(node->flag & SELECT)
- nodeFreeNode(snode->nodetree, node);
+ nodeFreeNode(snode->edittree, node);
}
+ snode_verify_groups(snode);
snode_handle_recalc(snode);
BIF_undo_push("Delete nodes");
allqueue(REDRAWNODE, 1);
@@ -989,7 +1197,7 @@ static void node_hide(SpaceNode *snode)
bNode *node;
int nothidden=0, ishidden=0;
- for(node= snode->nodetree->nodes.first; node; node= node->next) {
+ for(node= snode->edittree->nodes.first; node; node= node->next) {
if(node->flag & SELECT) {
if(node->flag & NODE_HIDDEN)
ishidden++;
@@ -997,7 +1205,7 @@ static void node_hide(SpaceNode *snode)
nothidden++;
}
}
- for(node= snode->nodetree->nodes.first; node; node= node->next) {
+ for(node= snode->edittree->nodes.first; node; node= node->next) {
if(node->flag & SELECT) {
if( (ishidden && nothidden) || ishidden==0)
node->flag |= NODE_HIDDEN;
@@ -1013,8 +1221,20 @@ static void node_hide(SpaceNode *snode)
static void node_border_link_delete(SpaceNode *snode)
{
rcti rect;
- short val, mval[2];
+ short val, mval[2], mvalo[2];
+ /* to make this work more friendly, we first wait for a mouse move */
+ getmouseco_areawin(mvalo);
+ while (get_mbut() & L_MOUSE) {
+ getmouseco_areawin(mval);
+ if(mval[0]!=mvalo[0] || mval[1]!=mvalo[1])
+ break;
+ else BIF_wait_for_statechange();
+ }
+ if((get_mbut() & L_MOUSE)==0)
+ return;
+
+ /* now change cursor and draw border */
setcursor_space(SPACE_NODE, CURSOR_VPAINT);
if ( (val = get_border(&rect, 2)) ) {
@@ -1040,7 +1260,7 @@ static void node_border_link_delete(SpaceNode *snode)
glPushName(-1);
/* draw links */
- for(link= snode->nodetree->links.first; link; link= link->next) {
+ for(link= snode->edittree->links.first; link; link= link->next) {
glLoadName(code++);
node_draw_link(snode, link);
}
@@ -1050,17 +1270,18 @@ static void node_border_link_delete(SpaceNode *snode)
if(hits>0) {
int a;
for(a=0; a<hits; a++) {
- bNodeLink *link= BLI_findlink(&snode->nodetree->links, buffer[ (4 * a) + 3]);
+ bNodeLink *link= BLI_findlink(&snode->edittree->links, buffer[ (4 * a) + 3]);
if(link)
link->tonode= NULL; /* first tag for delete, otherwise indices are wrong */
}
- for(link= snode->nodetree->links.first; link; link= next) {
+ for(link= snode->edittree->links.first; link; link= next) {
next= link->next;
if(link->tonode==NULL) {
- nodeRemLink(snode->nodetree, link);
+ nodeRemLink(snode->edittree, link);
}
}
- ntreeSolveOrder(snode->nodetree);
+ ntreeSolveOrder(snode->edittree);
+ snode_verify_groups(snode);
snode_handle_recalc(snode);
}
allqueue(REDRAWNODE, 0);
@@ -1069,8 +1290,9 @@ static void node_border_link_delete(SpaceNode *snode)
}
setcursor_space(SPACE_NODE, CURSOR_STD);
-
}
+
+
/* ********************** */
static void convert_nodes(SpaceNode *snode)
@@ -1087,12 +1309,12 @@ static void convert_nodes(SpaceNode *snode)
for(ml= mat->layers.first; ml; ml= ml->next) {
if(ml->mat) {
- node= nodeAddNodeType(snode->nodetree, SH_NODE_MATERIAL);
+ node= nodeAddNodeType(snode->nodetree, SH_NODE_MATERIAL, NULL);
node->id= (ID *)ml->mat;
node->locx= locx; locx+= 100;
node->locy= 300;
- bnode= nodeAddNodeType(snode->nodetree, SH_NODE_MIX_RGB);
+ bnode= nodeAddNodeType(snode->nodetree, SH_NODE_MIX_RGB, NULL);
bnode->custom1= ml->blendmethod;
bnode->locx= locx; locx+= 100;
bnode->locy= 200;
@@ -1119,6 +1341,26 @@ static void convert_nodes(SpaceNode *snode)
allqueue(REDRAWNODE, 0);
}
+void node_make_group(SpaceNode *snode)
+{
+ bNode *gnode;
+
+ if(snode->edittree!=snode->nodetree) {
+ error("Can not add a new Group in a Group");
+ return;
+ }
+
+ gnode= nodeMakeGroupFromSelected(snode->nodetree);
+ if(gnode==NULL) {
+ error("Can not make Group");
+ }
+ else {
+ nodeSetActive(snode->nodetree, gnode);
+ ntreeSolveOrder(snode->nodetree);
+ allqueue(REDRAWNODE, 0);
+ BIF_undo_push("Make Node Group");
+ }
+}
/* ******************** main event loop ****************** */
@@ -1139,7 +1381,7 @@ int node_uiDoBlocks(SpaceNode *snode, ListBase *lb, short event)
rect.xmax = rect.xmin + 4.0f;
rect.ymax = rect.ymin + 4.0f;
- for(node= snode->nodetree->nodes.first; node; node= node->next) {
+ for(node= snode->edittree->nodes.first; node; node= node->next) {
if(node->block) {
if(node == visible_node(snode, &rect)) {
@@ -1171,8 +1413,9 @@ void winqreadnodespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
switch(event) {
case LEFTMOUSE:
if(node_add_link(snode)==0)
- if(node_mouse_select(snode, event)==0)
- node_border_link_delete(snode);
+ if(node_mouse_groupheader(snode)==0)
+ if(node_mouse_select(snode, event)==0)
+ node_border_link_delete(snode);
break;
case RIGHTMOUSE:
@@ -1217,6 +1460,9 @@ void winqreadnodespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
snode_home(sa, snode);
doredraw= 1;
break;
+ case TABKEY:
+ node_make_group_editable(snode, NULL);
+ break;
case AKEY:
if(G.qual==LR_SHIFTKEY)
@@ -1233,7 +1479,7 @@ void winqreadnodespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
case CKEY: /* sort again, showing cyclics */
if(G.qual==LR_ALTKEY)
convert_nodes(snode); /* temporal for layers */
- ntreeSolveOrder(snode->nodetree);
+ ntreeSolveOrder(snode->edittree);
doredraw= 1;
break;
case DKEY:
@@ -1241,7 +1487,16 @@ void winqreadnodespace(ScrArea *sa, void *spacedata, BWinEvent *evt)
node_adduplicate(snode);
break;
case GKEY:
- transform_nodes(snode, 'g', "Translate Node");
+ if(G.qual==LR_CTRLKEY) {
+ if(okee("Make Group"))
+ node_make_group(snode);
+ }
+ else if(G.qual==LR_ALTKEY) {
+ if(okee("Ungroup"))
+ node_ungroup(snode);
+ }
+ else
+ transform_nodes(snode->edittree, 'g', "Translate Node");
break;
case HKEY:
node_hide(snode);
diff --git a/source/blender/src/filesel.c b/source/blender/src/filesel.c
index 336040908b3..1fda3b5ee4e 100644
--- a/source/blender/src/filesel.c
+++ b/source/blender/src/filesel.c
@@ -2447,7 +2447,7 @@ void main_to_filelist(SpaceFile *sfile)
if( sfile->dir[0]==0) {
/* make directories */
- sfile->totfile= 22;
+ sfile->totfile= 23;
sfile->filelist= (struct direntry *)malloc(sfile->totfile * sizeof(struct direntry));
for(a=0; a<sfile->totfile; a++) {
@@ -2477,6 +2477,8 @@ void main_to_filelist(SpaceFile *sfile)
sfile->filelist[19].relname= BLI_strdup("Text");
sfile->filelist[20].relname= BLI_strdup("Armature");
sfile->filelist[21].relname= BLI_strdup("Action");
+ sfile->filelist[22].relname= BLI_strdup("NodeTree");
+
qsort(sfile->filelist, sfile->totfile, sizeof(struct direntry), compare_name);
}
else {
diff --git a/source/blender/src/previewrender.c b/source/blender/src/previewrender.c
index cdacfad12bc..9230917c2bb 100644
--- a/source/blender/src/previewrender.c
+++ b/source/blender/src/previewrender.c
@@ -209,7 +209,7 @@ static int ray_previewrender(int x, int y, float *vec, float *vn, short pr_rec
if(hitface > -1) {
- CalcNormFloat(rcubev[rcubi[hitface][0]], rcubev[rcubi[hitface][1]], rcubev[rcubi[hitface][2]], vn);
+ CalcNormFloat(rcubev[rcubi[hitface][2]], rcubev[rcubi[hitface][1]], rcubev[rcubi[hitface][0]], vn);
vec[0]= (minlabda*(ray1[0]-ray2[0])+ray2[0])/4.1;
vec[1]= (minlabda*(ray1[1]-ray2[1])+ray2[1])/4.1;
@@ -807,7 +807,7 @@ static void texture_preview_pixel(Tex *tex, int x, int y, char *rect, short pr_r
}
}
-static float pr1_lamp[3]= {2.3, -2.4, -4.6};
+static float pr1_lamp[3]= {2.3, -2.4, -4.6}; /* note; is not used! */
static float pr2_lamp[3]= {-8.8, -5.6, -1.5};
static float pr1_col[3]= {0.8, 0.8, 0.8};
static float pr2_col[3]= {0.5, 0.6, 0.7};
@@ -857,14 +857,8 @@ static void shade_lamp_loop_preview(ShadeInput *shi, ShadeResult *shr)
if((mat->mode & MA_RAYMIRROR)==0) shi->ray_mirror= 0.0f;
memset(shr, 0, sizeof(ShadeResult));
- /* normals flipped in render for smooth... */
- if( (mat->mapto & MAP_NORM)) VecMulf(shi->vn, -1.0f);
-
do_material_tex(shi);
- /* normals flipped in render... */
- if( (mat->mapto & MAP_NORM)) VecMulf(shi->vn, -1.0f);
-
shr->alpha= shi->alpha;
if(mat->mode & (MA_ZTRA|MA_RAYTRANSP))
@@ -885,8 +879,8 @@ static void shade_lamp_loop_preview(ShadeInput *shi, ShadeResult *shr)
shi->ref[1]= (shi->view[1]+inp*shi->vn[1]);
shi->ref[2]= (shi->view[2]+inp*shi->vn[2]);
/* normals in render are pointing different... rhm */
- if(shi->pr_type==MA_SPHERE)
- shi->ref[1]= -shi->ref[1];
+// if(shi->pr_type==MA_SPHERE)
+// shi->ref[1]= -shi->ref[1];
}
for(a=0; a<2; a++) {
@@ -1036,10 +1030,10 @@ static void shade_preview_pixel(ShadeInput *shi, float *vec, int x, int y, char
mat= shi->mat;
- v1= 1.0/pr_rectx;
+ v1= 0.5/pr_rectx;
shi->view[0]= v1*x;
shi->view[1]= v1*y;
- shi->view[2]= 1.0f;
+ shi->view[2]= -1.0f;
Normalise(shi->view);
shi->xs= x + pr_rectx/2;
@@ -1088,9 +1082,9 @@ static void shade_preview_pixel(ShadeInput *shi, float *vec, int x, int y, char
/* nothing */
}
if(mat->texco & (TEXCO_NORM)) {
- shi->orn[0]= shi->vn[0];
- shi->orn[1]= shi->vn[1];
- shi->orn[2]= shi->vn[2];
+ //shi->orn[0]= shi->vn[0];
+ //shi->orn[1]= shi->vn[1];
+ //shi->orn[2]= shi->vn[2];
}
/* Clear displase vec for preview */
@@ -1237,38 +1231,29 @@ void BIF_previewrender(struct ID *id, struct RenderInfo *ri, struct ScrArea *are
shi.osatex= 0;
if(mat) {
- MaterialLayer *ml;
/* rendervars */
init_render_world();
- init_render_material(mat);
+ init_render_material(mat); /* does nodes too */
+
/* also clears imats */
preview_init_render_textures(mat->mtex);
- for(ml= mat->layers.first; ml; ml= ml->next) {
- if(ml->mat && (ml->flag & ML_RENDER)) {
- init_render_material(ml->mat);
- preview_init_render_textures(ml->mat->mtex);
- mat->texco |= ml->mat->texco;
- }
- }
+ /* do the textures for nodes */
if(mat->nodetree && mat->use_nodes) {
bNode *node;
for(node=mat->nodetree->nodes.first; node; node= node->next) {
if(node->id && GS(node->id->name)==ID_MA) {
Material *ma= (Material *)node->id;
- init_render_material(ma);
preview_init_render_textures(ma->mtex);
- mat->texco |= ma->texco;
}
}
/* signal to node editor to store previews or not */
if(pr_method==PR_ICON_RENDER) {
- ntreeBeginExecTree(mat->nodetree, 0, 0);
shi.do_preview= 0;
}
else {
- ntreeBeginExecTree(mat->nodetree, ri->pr_rectx, ri->pr_recty);
+ ntreeInitPreview(mat->nodetree, ri->pr_rectx, ri->pr_recty);
shi.do_preview= 1;
}
}
@@ -1341,14 +1326,8 @@ void BIF_previewrender(struct ID *id, struct RenderInfo *ri, struct ScrArea *are
radsq= (ri->pr_rectx/2)*(ri->pr_recty/2);
if(mat) {
- if(mat->pr_type==MA_SPHERE) {
- pr1_lamp[0]= 2.3; pr1_lamp[1]= -2.4; pr1_lamp[2]= -4.6;
- pr2_lamp[0]= -8.8; pr2_lamp[1]= -5.6; pr2_lamp[2]= -1.5;
- }
- else {
- pr1_lamp[0]= 1.9; pr1_lamp[1]= 3.1; pr1_lamp[2]= -8.5;
- pr2_lamp[0]= 1.2; pr2_lamp[1]= -18; pr2_lamp[2]= 3.2;
- }
+ pr1_lamp[0]= -2.3; pr1_lamp[1]= 2.4; pr1_lamp[2]= 4.6;
+ pr2_lamp[0]= 8.8; pr2_lamp[1]= 5.6; pr2_lamp[2]= 1.5;
}
if (pr_method==PR_DRAW_RENDER)
@@ -1380,14 +1359,14 @@ void BIF_previewrender(struct ID *id, struct RenderInfo *ri, struct ScrArea *are
if(mat->pr_type==MA_SPHERE) {
if(xsq+ysq <= radsq) {
- shi.vn[0]= x;
- shi.vn[1]= y;
- shi.vn[2]= sqrt( (float)(radsq-xsq-ysq) );
+ shi.vn[0]= -x;
+ shi.vn[1]= -y;
+ shi.vn[2]= -sqrt( (float)(radsq-xsq-ysq) );
Normalise(shi.vn);
vec[0]= shi.vn[0];
- vec[1]= shi.vn[2];
- vec[2]= -shi.vn[1];
+ vec[1]= shi.vn[1];
+ vec[2]= -shi.vn[2];
if(mat->mode & MA_TANGENT_V) {
float tmp[3];
@@ -1424,7 +1403,7 @@ void BIF_previewrender(struct ID *id, struct RenderInfo *ri, struct ScrArea *are
vec[2]= 0.0;
shi.vn[0]= shi.vn[1]= 0.0f;
- shi.vn[2]= 1.0f;
+ shi.vn[2]= -1.0f;
shade_preview_pixel(&shi, vec, x, y, (char *)rect, ri->pr_rectx, ri->pr_recty);
}
@@ -1482,10 +1461,12 @@ void BIF_previewrender(struct ID *id, struct RenderInfo *ri, struct ScrArea *are
*/
}
- if(mat && mat->nodetree && mat->use_nodes) {
- ntreeEndExecTree(mat->nodetree);
- if(ri->cury>=ri->pr_recty)
- allqueue(REDRAWNODE, 0);
+ if(mat) {
+ end_render_material(mat);
+
+ if(mat->nodetree && mat->use_nodes)
+ if(ri->cury>=ri->pr_recty)
+ allqueue(REDRAWNODE, 0);
}
}
diff --git a/source/blender/src/resources.c b/source/blender/src/resources.c
index 7429109399b..6056e0f2bd4 100644
--- a/source/blender/src/resources.c
+++ b/source/blender/src/resources.c
@@ -283,7 +283,7 @@ char *BIF_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
cp= ts->syntaxb; break;
case TH_NODE_GENERATOR:
cp= ts->syntaxv; break;
- case TH_NODE_FREE:
+ case TH_NODE_GROUP:
cp= ts->syntaxc; break;
}
@@ -484,7 +484,7 @@ void BIF_InitTheme(void)
SETCOL(btheme->tnode.syntaxn, 95, 110, 145, 255); /* in/output */
SETCOL(btheme->tnode.syntaxb, 135, 125, 120, 255); /* operator */
SETCOL(btheme->tnode.syntaxv, 120, 120, 120, 255); /* generator */
- SETCOL(btheme->tnode.syntaxc, 120, 120, 120, 255); /* free */
+ SETCOL(btheme->tnode.syntaxc, 120, 145, 120, 255); /* group */
}
@@ -619,7 +619,7 @@ char *BIF_ThemeColorsPup(int spacetype)
sprintf(str, "In/Out Node %%x%d|", TH_NODE_IN_OUT); strcat(cp, str);
sprintf(str, "Generator Node %%x%d|", TH_NODE_GENERATOR); strcat(cp, str);
sprintf(str, "Operator Node %%x%d|", TH_NODE_OPERATOR); strcat(cp, str);
-// sprintf(str, " %%x%d|", TH_NODE_FREE); strcat(cp, str);
+ sprintf(str, "Group Node %%x%d|", TH_NODE_GROUP); strcat(cp, str);
}
}
return cp;
diff --git a/source/blender/src/toets.c b/source/blender/src/toets.c
index 3e67eb1ca1f..acceccafe60 100644
--- a/source/blender/src/toets.c
+++ b/source/blender/src/toets.c
@@ -799,6 +799,8 @@ int blenderqread(unsigned short event, short val)
set_editflag_editipo();
else if(curarea->spacetype==SPACE_SEQ)
enter_meta();
+ else if(curarea->spacetype==SPACE_NODE)
+ return 1;
else if(G.vd) {
/* also when Alt-E */
if(G.obedit==NULL) {
diff --git a/source/blender/src/usiblender.c b/source/blender/src/usiblender.c
index 8dfd470c68e..343dd2a0003 100644
--- a/source/blender/src/usiblender.c
+++ b/source/blender/src/usiblender.c
@@ -279,7 +279,7 @@ static void init_userdef_file(void)
SETCOL(btheme->tnode.syntaxn, 95, 110, 145, 255); /* in/output */
SETCOL(btheme->tnode.syntaxb, 135, 125, 120, 255); /* operator */
SETCOL(btheme->tnode.syntaxv, 120, 120, 120, 255); /* generator */
- SETCOL(btheme->tnode.syntaxc, 120, 120, 120, 255); /* free */
+ SETCOL(btheme->tnode.syntaxc, 120, 145, 120, 255); /* group */
}
}
}