Merge with blender svn -> svn merge -r 12064:12150 https://svn.blender.org/svnroot...
authorDaniel Genrich <daniel.genrich@gmx.net>
Wed, 26 Sep 2007 10:28:30 +0000 (10:28 +0000)
committerDaniel Genrich <daniel.genrich@gmx.net>
Wed, 26 Sep 2007 10:28:30 +0000 (10:28 +0000)
126 files changed:
config/linux2-config.py
release/datafiles/blenderbuttons
release/scripts/3ds_import.py
release/scripts/uv_export.py
release/scripts/uv_seams_from_islands.py
release/scripts/uvcalc_follow_active_coords.py
release/scripts/uvcalc_from_adjacent.py [deleted file]
release/scripts/uvcalc_lightmap.py
release/scripts/uvcalc_quad_clickproj.py
release/scripts/uvcalc_smart_project.py
source/blender/blenkernel/BKE_DerivedMesh.h
source/blender/blenkernel/BKE_action.h
source/blender/blenkernel/BKE_blender.h
source/blender/blenkernel/BKE_customdata.h
source/blender/blenkernel/BKE_mesh.h
source/blender/blenkernel/BKE_object.h
source/blender/blenkernel/BKE_utildefines.h
source/blender/blenkernel/bad_level_call_stubs/stubs.c
source/blender/blenkernel/intern/DerivedMesh.c
source/blender/blenkernel/intern/action.c
source/blender/blenkernel/intern/constraint.c
source/blender/blenkernel/intern/customdata.c
source/blender/blenkernel/intern/depsgraph.c
source/blender/blenkernel/intern/effect.c
source/blender/blenkernel/intern/image.c
source/blender/blenkernel/intern/object.c
source/blender/blenkernel/intern/scene.c
source/blender/blenkernel/intern/subsurf_ccg.c
source/blender/blenkernel/intern/writeffmpeg.c
source/blender/blenlib/BLI_editVert.h
source/blender/blenlib/intern/util.c
source/blender/blenloader/intern/readfile.c
source/blender/imbuf/intern/IMB_anim.h
source/blender/imbuf/intern/anim.c
source/blender/imbuf/intern/thumbs.c
source/blender/include/BDR_editface.h
source/blender/include/BIF_drawimage.h
source/blender/include/BIF_editaction.h
source/blender/include/BIF_editmesh.h
source/blender/include/BIF_editsima.h
source/blender/include/BIF_resources.h
source/blender/include/BIF_space.h
source/blender/include/BIF_transform.h
source/blender/include/BSE_editipo.h
source/blender/include/blendef.h
source/blender/include/transform.h
source/blender/makesdna/DNA_action_types.h
source/blender/makesdna/DNA_armature_types.h
source/blender/makesdna/DNA_camera_types.h
source/blender/makesdna/DNA_constraint_types.h
source/blender/makesdna/DNA_image_types.h
source/blender/makesdna/DNA_mesh_types.h
source/blender/makesdna/DNA_meshdata_types.h
source/blender/makesdna/DNA_scene_types.h
source/blender/makesdna/DNA_space_types.h
source/blender/makesdna/DNA_texture_types.h
source/blender/makesdna/DNA_userdef_types.h
source/blender/makesdna/DNA_view3d_types.h
source/blender/nodes/intern/CMP_nodes/CMP_defocus.c
source/blender/nodes/intern/CMP_nodes/CMP_texture.c
source/blender/nodes/intern/CMP_util.h
source/blender/python/BPY_interface.c
source/blender/python/api2_2x/Camera.c
source/blender/python/api2_2x/Constraint.c
source/blender/python/api2_2x/Ipo.c
source/blender/python/api2_2x/Ipocurve.c
source/blender/python/api2_2x/Lamp.c
source/blender/python/api2_2x/Material.c
source/blender/python/api2_2x/Mesh.c
source/blender/python/api2_2x/NMesh.c
source/blender/python/api2_2x/Object.c
source/blender/python/api2_2x/Pose.c
source/blender/python/api2_2x/Texture.c
source/blender/python/api2_2x/World.c
source/blender/python/api2_2x/doc/Constraint.py
source/blender/python/api2_2x/doc/Scene.py
source/blender/python/api2_2x/doc/Texture.py
source/blender/python/api2_2x/windowTheme.c
source/blender/render/intern/source/rayshade.c
source/blender/src/blenderbuttons.c
source/blender/src/buttons_editing.c
source/blender/src/buttons_object.c
source/blender/src/buttons_scene.c
source/blender/src/buttons_shading.c
source/blender/src/drawaction.c
source/blender/src/drawimage.c
source/blender/src/drawipo.c
source/blender/src/drawmesh.c
source/blender/src/drawobject.c
source/blender/src/edit.c
source/blender/src/editaction.c
source/blender/src/editarmature.c
source/blender/src/editface.c
source/blender/src/editipo.c
source/blender/src/editkey.c
source/blender/src/editmesh.c
source/blender/src/editmesh_lib.c
source/blender/src/editmesh_mods.c
source/blender/src/editmesh_tools.c
source/blender/src/editnla.c
source/blender/src/editobject.c
source/blender/src/editsima.c
source/blender/src/editview.c
source/blender/src/filesel.c
source/blender/src/header_action.c
source/blender/src/header_image.c
source/blender/src/header_nla.c
source/blender/src/header_view3d.c
source/blender/src/headerbuttons.c
source/blender/src/interface_draw.c
source/blender/src/language.c
source/blender/src/parametrizer.c
source/blender/src/poseobject.c
source/blender/src/resources.c
source/blender/src/retopo.c
source/blender/src/space.c
source/blender/src/transform.c
source/blender/src/transform_conversions.c
source/blender/src/transform_generics.c
source/blender/src/transform_manipulator.c
source/blender/src/transform_snap.c
source/blender/src/unwrapper.c
source/blender/src/usiblender.c
source/gameengine/Converter/KX_BlenderSceneConverter.cpp
source/nan_definitions.mk
tools/Blender.py

index edc7f26c690eb889fcf166f89456812e384b6248..90fe74cee6bf61285c1b30037fc8ab3c9f74eeef 100644 (file)
@@ -119,7 +119,7 @@ WITH_BF_FFMPEG = 'false'  # -DWITH_FFMPEG
 BF_FFMPEG = '/usr'
 BF_FFMPEG_INC = '${BF_FFMPEG}/include'
 BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
-BF_FFMPEG_LIB = 'avformat avcodec avutil'
+BF_FFMPEG_LIB = 'avformat avcodec swscale avutil'
 
 # Mesa Libs should go here if your using them as well....
 WITH_BF_STATICOPENGL = 'false'
index 5b634378981f449c260445ae3657785129590dda..d34acb7be0408739fc11320407a7ada337b11a48 100644 (file)
Binary files a/release/datafiles/blenderbuttons and b/release/datafiles/blenderbuttons differ
index 8324b66828415dfdf752dd348f154427492d8c45..07da4df16031be78cd3e9840d28a158b5ec5f420 100644 (file)
@@ -382,7 +382,7 @@ def process_next_chunk(file, previous_chunk, importedObjects, IMAGE_SEARCH):
                        # +1 because of DUMMYVERT
                        face_mapping= bmesh.faces.extend( [ [ bmesh_verts[ myVertMapping[vindex]+1] for vindex in myContextMesh_facels[fIdx]] for fIdx in faces ], indexList=True )
                        
-                       if contextMeshUV or img:
+                       if bmesh.faces and (contextMeshUV or img):
                                bmesh.faceUV= 1
                                for ii, i in enumerate(faces):
                                        
index f73b7bc7b100d4e1221028e2890d2901ddb843fb..5977a3b76f691d1b1c931b6667c0224bf94db6ef 100644 (file)
@@ -183,12 +183,16 @@ def ExportCallback(f):
        
        time1= Blender.sys.time()
 
-       if obj.type != "Mesh":
+       if not obj or obj.type != "Mesh":
                BPyMessages.Error_NoMeshActive()
                return
-
+       
+       is_editmode = Blender.Window.EditMode()
+       if is_editmode: Blender.Window.EditMode(0)
+       
        mesh = obj.getData(mesh=1)
        if not mesh.faceUV:
+               if is_editmode: Blender.Window.EditMode(1)
                BPyMessages.Error_NoMeshUvActive()
                return
 
@@ -207,6 +211,8 @@ def ExportCallback(f):
        
        UVFaces = ExtractUVFaces(mesh, bAllFaces.val)
        
+       if is_editmode: Blender.Window.EditMode(1)
+               
        if not bSVG.val:
                print "TGA export is running..."
                UV_Export_TGA(UVFaces, bSize.val, bWSize.val, bWrap.val, name)
index dd27aab4ce97a68ddc496d5918d8298eebbe1749..241f38fc4aa83a0737fe755a0d5e003fb0fa8ac9 100644 (file)
@@ -37,7 +37,6 @@ def seams_from_islands(me):
        # add seams
        SEAM = Mesh.EdgeFlags.SEAM
        for ed in me.edges:
-               print len(set(edge_uvs[ed.key]))
                if len(set(edge_uvs[ed.key])) > 1:
                        ed.flag |= SEAM
 
@@ -59,7 +58,7 @@ def main():
        # editmode if its enabled, we cant make
        # changes to the mesh data while in editmode.
        is_editmode = Window.EditMode()
-       if is_editmode: Window.EditMode(1)
+       if is_editmode: Window.EditMode(0)
        
        Window.WaitCursor(1)
        
@@ -68,8 +67,10 @@ def main():
        # Run the mesh editing function
        seams_from_islands(me)
        
+       if is_editmode: Window.EditMode(1)
+       
        # Timing the script is a good way to be aware on any speed hits when scripting
-       print 'My Script finished in %.2f seconds' % (sys.time()-t)
+       print 'UV Seams from Islands finished in %.2f seconds' % (sys.time()-t)
        Window.WaitCursor(0)
        
        
index c97e7168d2fc090753ca2595052304c92af7b159..2a79d0d05dfeefec46680a93b47bd341c4c5743b 100644 (file)
@@ -51,6 +51,11 @@ def extend():
                Draw.PupMenu('ERROR: No mesh object.')
                return
        
+       # Toggle Edit mode
+       is_editmode = Window.EditMode()
+       if is_editmode:
+               Window.EditMode(0)
+       
        me = ob.getData(mesh=1)
        me_verts = me.verts
        
@@ -233,7 +238,12 @@ def extend():
                                
                                face_modes[i] = 2 # dont search again
        print  sys.time() - t
-       me.update()
+       
+       if is_editmode:
+               Window.EditMode(1)
+       else:
+               me.update()
+       
        Window.RedrawAll()
        Window.WaitCursor(0)
 
diff --git a/release/scripts/uvcalc_from_adjacent.py b/release/scripts/uvcalc_from_adjacent.py
deleted file mode 100644 (file)
index 32bbd9e..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-#!BPY
-"""
-Name: 'UVs from unselected adjacent'
-Blender: 242
-Group: 'UVCalculation'
-Tooltip: 'Assign UVs to selected faces from surrounding unselected faces.'
-"""
-__author__ = "Campbell Barton"
-__url__ = ("blender", "elysiun")
-__version__ = "1.0 2006/02/07"
-
-__bpydoc__ = """\
-This script sets the UV mapping and image of selected faces from adjacent unselected faces.
-
-Use this script in face select mode for texturing between textured faces.
-"""
-
-# ***** BEGIN GPL LICENSE BLOCK *****
-#
-# Script copyright (C) Campbell J Barton
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-# ***** END GPL LICENCE BLOCK *****
-# --------------------------------------------------------------------------
-
-
-from Blender import *
-import bpy
-
-def mostUsedImage(imageList): # Returns the image most used in the list.
-       if not imageList:
-               return None
-       elif len(imageList) < 3:
-               return imageList[0]
-       
-       # 3+ Images, Get the most used image for surrounding faces.
-       imageCount = {}
-       for image in imageList:
-               if image:
-                       image_key= image.name
-               else:
-                       image_key = None
-               
-               try:
-                       imageCount[image_key]['imageCount'] +=1 # an extra user of this image
-               except:
-                       imageCount[image_key] = {'imageCount':1, 'blenderImage':image} # start with 1 user.
-       
-       # Now a list of tuples, (imageName, {imageCount, image})
-       imageCount = imageCount.items()
-       
-       try:    imageCount.sort(key=lambda a: a[1])
-       except: imageCount.sort(lambda a,b: cmp(a[1], b[1]))
-       
-       
-       return imageCount[-1][1]['blenderImage']        
-
-
-def main():
-       scn = bpy.data.scenes.active
-       ob = scn.objects.active
-       if ob == None or ob.type != 'Mesh':
-               Draw.PupMenu('ERROR: No mesh object in face select mode.')
-               return
-       me = ob.getData(mesh=1)
-       
-       if not me.faceUV:
-               Draw.PupMenu('ERROR: No mesh object in face select mode.')
-               return
-       
-       selfaces = [f for f in me.faces if f.sel]
-       unselfaces = [f for f in me.faces if not f.sel if not f.hide]
-       
-       # Gather per Vert UV and Image, store in vertUvAverage
-       vertUvAverage = [[[],[]] for i in xrange(len(me.verts))]
-       
-       for f in unselfaces: # Unselected faces only.
-               fuv = f.uv
-               for i,v in enumerate(f):
-                       vertUvAverage[v.index][0].append(fuv[i])
-                       vertUvAverage[v.index][1].append(f.image)
-                       
-       # Average per vectex UV coords
-       for vertUvData in vertUvAverage:
-               uvList = vertUvData[0]
-               if uvList:
-                       # Convert from a list of vectors into 1 vector.
-                       vertUvData[0] = reduce(lambda a,b: a+b, uvList, Mathutils.Vector(0,0)) * (1.0/len(uvList))
-               else:
-                       vertUvData[0] = None
-       
-       
-       
-       # Assign to selected faces
-       TEX_FLAG = Mesh.FaceModes['TEX']
-       for f in selfaces:
-               uvlist = []
-               imageList = []
-               for i,v in enumerate(f):
-                       uv, vImages = vertUvAverage[v.index]
-                       uvlist.append( uv )
-                       imageList.extend(vImages)
-               
-               if None not in uvlist:                  
-                       # all the faces images used by this faces vert. some faces will be added twice but thats ok.
-                       # Get the most used image and assign to the face.
-                       image = mostUsedImage(imageList) 
-                       f.uv = uvlist
-                       
-                       if image:
-                               f.image = image
-                               f.mode |= TEX_FLAG
-       Window.RedrawAll()
-       
-if __name__ == '__main__':
-       main()
\ No newline at end of file
index a4b176bdb793ae6e6835b06eb18f236027854374..af9acb09e17113540f9221f33798bb2d2f1ae5b9 100644 (file)
@@ -544,6 +544,12 @@ def main():
                        Draw.PupMenu('Error%t|No mesh objects selected.')
                        return
        
+       # Toggle Edit mode
+       is_editmode = Window.EditMode()
+       if is_editmode:
+               Window.EditMode(0)
+
+
        Window.WaitCursor(1)
        lightmap_uvpack(meshes,\
                        PREF_SEL_ONLY.val,\
@@ -554,6 +560,9 @@ def main():
                        PREF_BOX_DIV.val,\
                        int(1/(PREF_MARGIN_DIV.val/100)))
        
+       if is_editmode:
+               Window.EditMode(1)
+       
        Window.WaitCursor(0)
 
 if __name__ == '__main__':
index 67b58885f9dafca0fda9281161af49c9c54b85e2..791fd661cc9e504b66d6a6424c045d13add3d669 100644 (file)
@@ -80,6 +80,10 @@ def main():
        if not ob or ob.type!='Mesh':
                return
        
+       is_editmode = Window.EditMode()
+       if is_editmode:
+               Window.EditMode(0)
+       
        mousedown_wait() # so the menu items clicking dosnt trigger the mouseclick
        
        Window.DrawProgressBar (0.0, '')
@@ -100,10 +104,8 @@ def main():
                mouse_buttons = Window.GetMouseButtons()
        
        
-       
        Window.DrawProgressBar (0.2, '(2 of 3 ) Click confirms the U coords')
        
-       
        mousedown_wait()
        
        obmat= ob.matrixWorld
@@ -112,7 +114,7 @@ def main():
        
        if not mouseInView or not OriginA:
                return
-               
+       
        me = ob.getData(mesh=1)
        
        # Get the face under the mouse
@@ -255,6 +257,9 @@ def main():
                Window.Redraw(Window.Types.VIEW3D)
        
        Window.SetCursorPos(*orig_cursor)
+       if is_editmode:
+               Window.EditMode(1)
+       
        Window.RedrawAll()
        
 if __name__=='__main__':
index b10b69285e0db4b4de7b6fe9cdb610d42d00e62f..49d52d12d47d12fd8c3fb75c479cc88c127ad12b 100644 (file)
@@ -1121,6 +1121,9 @@ def main():
        print "Smart Projection time: %.2f" % (sys.time() - time1)
        # Window.DrawProgressBar(0.9, "Smart Projections done, time: %.2f sec." % (sys.time() - time1))
        
+       if is_editmode:
+               Window.EditMode(1)
+       
        Window.DrawProgressBar(1.0, "")
        Window.WaitCursor(0)
        Window.RedrawAll()
index 4a19bfb9249e4841041dd0c552b929df51c57044..c710e16ad1ad17b796cf4d7d1e4ede445ff3a9b0 100644 (file)
@@ -435,5 +435,23 @@ void weight_to_rgb(float input, float *fr, float *fg, float *fb);
 /* determines required DerivedMesh data according to view and edit modes */
 CustomDataMask get_viewedit_datamask();
 
+/*  repeate this pattern
+   X000X000
+   00000000
+   00X000X0
+   00000000 */
+
+#define DM_FACE_STIPPLE \
+{ \
+       136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0, \
+       136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0, \
+       136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0, \
+       136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0, \
+       136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0, \
+       136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0, \
+       136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0, \
+       136,136,136,136,0,0,0,0,34,34,34,34,0,0,0,0 \
+}
+
 #endif
 
index 3caf0ad2cc64529bbeb20676a8814b9ad493bed2..68a6be047351d36d8f6efd4a9cec2bac50157241 100644 (file)
@@ -101,6 +101,9 @@ struct bPoseChannel *verify_pose_channel(struct bPose* pose,
 /* sets constraint flags */
 void update_pose_constraint_flags(struct bPose *pose);
 
+/* clears BONE_UNKEYED flags for frame changing */
+void framechange_poses_clear_unkeyed(void);
+
 /**
  * Allocate a new bAction on the heap and copy 
  * the contents of src into it. If src is NULL NULL is returned.
index 6bddd9de93242f72ae21613e737167bc4059a73c..c79076b4e6884b142496ab2bcb1893b047bba0df 100644 (file)
@@ -44,7 +44,7 @@ struct ListBase;
 struct MemFile;
 
 #define BLENDER_VERSION                        245
-#define BLENDER_SUBVERSION             1
+#define BLENDER_SUBVERSION             3
 
 #define BLENDER_MINVERSION             240
 #define BLENDER_MINSUBVERSION  0
index 9749112975535da89b61210d2d40ad4d45f65fc6..d0535f1752eb5d9b62cec6c4057de1b884d43ff2 100644 (file)
@@ -185,6 +185,8 @@ int CustomData_get_layer_index(const struct CustomData *data, int type);
 int CustomData_get_named_layer_index(const struct CustomData *data, int type, char *name);
 int CustomData_get_active_layer_index(const struct CustomData *data, int type);
 int CustomData_get_render_layer_index(const struct CustomData *data, int type);
+int CustomData_get_active_layer(const struct CustomData *data, int type);
+int CustomData_get_render_layer(const struct CustomData *data, int type);
 
 /* copies the data from source to the data element at index in the first
  * layer of type
index 9757d3e6ac100f2782cba2bc7996fd62240523cf..e9fd059f833be2878156ff2d9ed32ae3f2cf4af1 100644 (file)
@@ -110,6 +110,14 @@ UvVertMap *make_uv_vert_map(struct MFace *mface, struct MTFace *tface, unsigned
 UvMapVert *get_uv_map_vert(UvVertMap *vmap, unsigned int v);
 void free_uv_vert_map(UvVertMap *vmap);
 
+
+/* functions for making menu's from customdata layers */
+int mesh_layers_menu_charlen(struct CustomData *data, int type); /* use this to work out how many chars to allocate */
+void mesh_layers_menu_concat(struct CustomData *data, int type, char *str);
+int mesh_layers_menu(struct CustomData *data, int type);
+
+
+
 #ifdef __cplusplus
 }
 #endif
index 9022e07ebac8623ce1aec79851c3314f455cdfad..b834116f11d6ad2aed1e0c0df8a155c9f61e670f 100644 (file)
@@ -63,6 +63,7 @@ int exist_object(struct Object *obtest);
 void *add_camera(char *name);
 struct Camera *copy_camera(struct Camera *cam);
 void make_local_camera(struct Camera *cam);
+float dof_camera(struct Object *ob);
 void *add_lamp(char *name);
 struct Lamp *copy_lamp(struct Lamp *la);
 void make_local_lamp(struct Lamp *la);
index 836e5b2f171a72e6e57bdb4c6f517a5f890595cb..a30617a2f15946e4b18e43194000f8589f5bc714 100644 (file)
@@ -57,6 +57,7 @@
 #define ELEM6(a, b, c, d, e, f, g)      ( ELEM(a, b, c) || ELEM4(a, d, e, f, g) )
 #define ELEM7(a, b, c, d, e, f, g, h)   ( ELEM3(a, b, c, d) || ELEM4(a, e, f, g, h) )
 #define ELEM8(a, b, c, d, e, f, g, h, i)        ( ELEM4(a, b, c, d, e) || ELEM4(a, f, g, h, i) )
+#define ELEM9(a, b, c, d, e, f, g, h, i, j)        ( ELEM4(a, b, c, d, e) || ELEM5(a, f, g, h, i, j) )
 
 /* string compare */
 #define STREQ(str, a)           ( strcmp((str), (a))==0 )
index 04fac832cc405c6ab7cc92096daf18197756075d..2524a804e530794d811cff3310bb4e7552d600c3 100644 (file)
@@ -59,7 +59,7 @@ struct bPythonConstraint;
 struct bConstraintOb;
 
 char *getIpoCurveName( struct IpoCurve * icu );
-void insert_vert_ipo(struct IpoCurve *icu, float x, float y);
+void insert_vert_icu(struct IpoCurve *icu, float x, float y, short fast);
 struct IpoCurve *verify_ipocurve(struct ID *id, short a, char *b, char *d, int e);
 void elbeemDebugOut(char *msg);
 void fluidsimSettingsFree(struct FluidsimSettings* sb);
@@ -83,7 +83,7 @@ char *getIpoCurveName( struct IpoCurve * icu )
        return 0;
 }
 
-void insert_vert_ipo(struct IpoCurve *icu, float x, float y)
+void insert_vert_icu(struct IpoCurve *icu, float x, float y, short fast)
 {
 }
 
index ff98f6f642e4dc5c39d8a2456f4237dec36e241a..299bbc10241737062284d3b9d06856bf6cc72e88 100644 (file)
@@ -633,9 +633,10 @@ static void emDM_foreachMappedFaceCenter(DerivedMesh *dm, void (*func)(void *use
 }
 static void emDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *userData, int index, int *drawSmooth_r), void *userData, int useColors)
 {
+       GLubyte act_face_stipple[32*32/8] = DM_FACE_STIPPLE;
        EditMeshDerivedMesh *emdm= (EditMeshDerivedMesh*) dm;
        EditFace *efa;
-       int i;
+       int i, draw;
 
        if (emdm->vertexCos) {
                EditVert *eve;
@@ -645,7 +646,13 @@ static void emDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us
 
                for (i=0,efa= emdm->em->faces.first; efa; i++,efa= efa->next) {
                        int drawSmooth = (efa->flag & ME_SMOOTH);
-                       if(!setDrawOptions || setDrawOptions(userData, i, &drawSmooth)) {
+                       draw = setDrawOptions==NULL ? 1 : setDrawOptions(userData, i, &drawSmooth);
+                       if(draw) {
+                               if (draw==2) { /* enabled with stipple */
+                                       glEnable(GL_POLYGON_STIPPLE);
+                                       glPolygonStipple(act_face_stipple);
+                               }
+                               
                                glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
 
                                glBegin(efa->v4?GL_QUADS:GL_TRIANGLES);
@@ -668,12 +675,20 @@ static void emDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us
                                        }
                                }
                                glEnd();
+                               
+                               if (draw==2)
+                                       glDisable(GL_POLYGON_STIPPLE);
                        }
                }
        } else {
                for (i=0,efa= emdm->em->faces.first; efa; i++,efa= efa->next) {
                        int drawSmooth = (efa->flag & ME_SMOOTH);
-                       if(!setDrawOptions || setDrawOptions(userData, i, &drawSmooth)) {
+                       draw = setDrawOptions==NULL ? 1 : setDrawOptions(userData, i, &drawSmooth);
+                       if(draw) {
+                               if (draw==2) { /* enabled with stipple */
+                                       glEnable(GL_POLYGON_STIPPLE);
+                                       glPolygonStipple(act_face_stipple);
+                               }
                                glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
 
                                glBegin(efa->v4?GL_QUADS:GL_TRIANGLES);
@@ -696,6 +711,9 @@ static void emDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us
                                        }
                                }
                                glEnd();
+                               
+                               if (draw==2)
+                                       glDisable(GL_POLYGON_STIPPLE);
                        }
                }
        }
index e10a17a3338154defe4e34b48ef4358adfe0dd39..8274e3253a9e9d5e8e2c2574a669dc7c75d32e0d 100644 (file)
@@ -112,7 +112,6 @@ static void make_local_action_channels(bAction *act)
                        }
                }
        }
-                                       
 }
 
 void make_local_action(bAction *act)
@@ -165,27 +164,27 @@ void make_local_action(bAction *act)
 }
 
 
-void free_action(bAction *act)
+void free_action (bAction *act)
 {
        bActionChannel *chan;
        
        /* Free channels */
-       for (chan=act->chanbase.first; chan; chan=chan->next){
+       for (chan=act->chanbase.first; chan; chan=chan->next) {
                if (chan->ipo)
                        chan->ipo->id.us--;
                free_constraint_channels(&chan->constraintChannels);
        }
        
        if (act->chanbase.first)
-               BLI_freelistN (&act->chanbase);
+               BLI_freelistN(&act->chanbase);
 }
 
-bAction* copy_action(bAction *src)
+bAction *copy_action (bAction *src)
 {
        bAction *dst = NULL;
        bActionChannel *dchan, *schan;
        
-       if(!src) return NULL;
+       if (!src) return NULL;
        
        dst= copy_libblock(src);
        duplicatelist(&(dst->chanbase), &(src->chanbase));
@@ -352,6 +351,28 @@ void update_pose_constraint_flags(bPose *pose)
        }
 }
 
+/* Clears all BONE_UNKEYED flags for every pose channel in every pose 
+ * This should only be called on frame changing, when it is acceptable to
+ * do this. Otherwise, these flags should not get cleared as poses may get lost.
+ */
+void framechange_poses_clear_unkeyed(void)
+{
+       Object *ob;
+       bPose *pose;
+       bPoseChannel *pchan;
+       
+       /* This needs to be done for each object that has a pose */
+       // TODO: proxies may/may not be correctly handled here... (this needs checking) 
+       for (ob= G.main->object.first; ob; ob= ob->id.next) {
+               /* we only need to do this on objects with a pose */
+               if ( (pose= ob->pose) ) {
+                       for (pchan= pose->chanbase.first; pchan; pchan= pchan->next) {
+                               if (pchan->bone) 
+                                       pchan->bone->flag &= ~BONE_UNKEYED;
+                       }
+               }
+       }
+}
 
 /* ************************ END Pose channels *************** */
 
@@ -681,9 +702,15 @@ void extract_pose_from_action(bPose *pose, bAction *act, float ctime)
        
        /* Copy the data from the action into the pose */
        for (pchan= pose->chanbase.first; pchan; pchan=pchan->next) {
+               /* skip this pose channel if it has been tagged as having unkeyed poses */
+               if ((pchan->bone) && (pchan->bone->flag & BONE_UNKEYED)) 
+                       continue;
+               
+               /* get action channel and clear pchan-transform flags */
                achan= get_action_channel(act, pchan->name);
                pchan->flag &= ~(POSE_LOC|POSE_ROT|POSE_SIZE);
-               if(achan) {
+               
+               if (achan) {
                        ipo = achan->ipo;
                        if (ipo) {
                                /* Evaluates and sets the internal ipo value */
@@ -1253,12 +1280,11 @@ static void do_nla(Object *ob, int blocktype)
 
 void do_all_pose_actions(Object *ob)
 {
-
-       // only to have safe calls from editor
+       /* only to have safe calls from editor */
        if(ob==NULL) return;
        if(ob->type!=OB_ARMATURE || ob->pose==NULL) return;
 
-       if(ob->pose->flag & POSE_LOCKED) {  // no actions to execute while transform
+       if(ob->pose->flag & POSE_LOCKED) {  /*  no actions to execute while transform */
                if(ob->pose->flag & POSE_DO_UNLOCK)
                        ob->pose->flag &= ~(POSE_LOCKED|POSE_DO_UNLOCK);
        }
@@ -1272,6 +1298,9 @@ void do_all_pose_actions(Object *ob)
        else if(ob->nlastrips.first) {
                do_nla(ob, ID_AR);
        }
+       
+       /* clear POSE_DO_UNLOCK flags that might have slipped through (just in case) */
+       ob->pose->flag &= ~POSE_DO_UNLOCK;
 }
 
 /* called from where_is_object */
index 8bd925e05002dc1d5b8c8ac7bf8de5040c6339a2..8445fe887972f392111b50cc9cd0402caa2e95f6 100644 (file)
@@ -1819,7 +1819,6 @@ static void evaluate_constraint (bConstraint *constraint, float ownermat[][4], f
                        float   loc[3];
                        float   eul[3], obeul[3];
                        float   size[3];
-                       short changed= 0;
                        
                        data = constraint->data;
                        
@@ -1831,40 +1830,27 @@ static void evaluate_constraint (bConstraint *constraint, float ownermat[][4], f
                        
                        if ((data->flag & ROTLIKE_X)==0) {
                                eul[0] = obeul[0];
-                               changed = 1;
                        }
                        else if (data->flag & ROTLIKE_X_INVERT) {
                                eul[0] *= -1;
-                               changed = 1;
                        }       
+                       
                        if ((data->flag & ROTLIKE_Y)==0) {
                                eul[1] = obeul[1];
-                               changed = 1;
                        }
                        else if (data->flag & ROTLIKE_Y_INVERT) {
                                eul[1] *= -1;
-                               changed = 1;
                        }
+                       
                        if ((data->flag & ROTLIKE_Z)==0) {
                                eul[2] = obeul[2];
-                               changed = 1;
                        }
                        else if (data->flag & ROTLIKE_Z_INVERT) {
                                eul[2] *= -1;
-                               changed = 1;
                        }
                        
-                       
-                       if (changed) {
-                               compatible_eul(eul, obeul);
-                               LocEulSizeToMat4(ownermat, loc, eul, size);
-                       }
-                       else {
-                               float quat[4];
-                               
-                               Mat4ToQuat(targetmat, quat);
-                               LocQuatSizeToMat4(ownermat, loc, quat, size);
-                       }       
+                       compatible_eul(eul, obeul);
+                       LocEulSizeToMat4(ownermat, loc, eul, size);
                }
                break;
        case CONSTRAINT_TYPE_SIZELIKE:
@@ -1976,7 +1962,7 @@ static void evaluate_constraint (bConstraint *constraint, float ownermat[][4], f
                        
                        if (data->tar) {
                                /* Get size property, since ob->size is only the object's own relative size, not its global one */
-                               Mat4ToSize (ownermat, size);
+                               Mat4ToSize(ownermat, size);
                                
                                /* Clear the object's rotation */       
                                ownermat[0][0]=size[0];
@@ -1989,8 +1975,11 @@ static void evaluate_constraint (bConstraint *constraint, float ownermat[][4], f
                                ownermat[2][1]=0;
                                ownermat[2][2]=size[2];
                                
+                               /* targetmat[2] instead of ownermat[2] is passed to vectomat
+                                * for backwards compatability it seems... (Aligorith)
+                                */
                                VecSubf(vec, ownermat[3], targetmat[3]);
-                               vectomat(vec, ownermat[2], 
+                               vectomat(vec, targetmat[2], 
                                                (short)data->reserved1, (short)data->reserved2, 
                                                data->flags, totmat);
                                
@@ -2610,7 +2599,7 @@ static void evaluate_constraint (bConstraint *constraint, float ownermat[][4], f
                                
                                /* find best position on curve */
                                /* 1. determine which axis to sample on? */
-                               if (data->flag==CLAMPTO_AUTO) {
+                               if (data->flag == CLAMPTO_AUTO) {
                                        float size[3];
                                        VecSubf(size, curveMax, curveMin);
                                        
@@ -2619,23 +2608,60 @@ static void evaluate_constraint (bConstraint *constraint, float ownermat[][4], f
                                         * frequently used.
                                         */
                                        if ((size[2]>size[0]) && (size[2]>size[1]))
-                                               clamp_axis= CLAMPTO_Z;
+                                               clamp_axis= CLAMPTO_Z - 1;
                                        else if ((size[1]>size[0]) && (size[1]>size[2]))
-                                               clamp_axis= CLAMPTO_Y;
+                                               clamp_axis= CLAMPTO_Y - 1;
                                        else
-                                               clamp_axis = CLAMPTO_X;
+                                               clamp_axis = CLAMPTO_X - 1;
                                }
                                else 
-                                       clamp_axis= data->flag;
+                                       clamp_axis= data->flag - 1;
                                        
-                               /* 2. determine position relative to curve on a 0-1 scale */
-                               if (clamp_axis > 0) clamp_axis--;
-                               if (ownLoc[clamp_axis] <= curveMin[clamp_axis])
-                                       curvetime = 0.0;
-                               else if (ownLoc[clamp_axis] >= curveMax[clamp_axis])
-                                       curvetime = 1.0;
-                               else
-                                       curvetime = (ownLoc[clamp_axis] - curveMin[clamp_axis]) / (curveMax[clamp_axis] - curveMin[clamp_axis]);
+                               /* 2. determine position relative to curve on a 0-1 scale based on bounding box */
+                               if (data->flag2 & CLAMPTO_CYCLIC) {
+                                       /* cyclic, so offset within relative bounding box is used */
+                                       float len= (curveMax[clamp_axis] - curveMin[clamp_axis]);
+                                       float offset;
+                                       
+                                       /* find bounding-box range where target is located */
+                                       if (ownLoc[clamp_axis] < curveMin[clamp_axis]) {
+                                               /* bounding-box range is before */
+                                               offset= curveMin[clamp_axis];
+                                               
+                                               while (ownLoc[clamp_axis] < offset)
+                                                       offset -= len;
+                                               
+                                               /* now, we calculate as per normal, except using offset instead of curveMin[clamp_axis] */
+                                               curvetime = (ownLoc[clamp_axis] - offset) / (len);
+                                       }
+                                       else if (ownLoc[clamp_axis] > curveMax[clamp_axis]) {
+                                               /* bounding-box range is after */
+                                               offset= curveMax[clamp_axis];
+                                               
+                                               while (ownLoc[clamp_axis] > offset) {
+                                                       if ((offset + len) > ownLoc[clamp_axis])
+                                                               break;
+                                                       else
+                                                               offset += len;
+                                               }
+                                               
+                                               /* now, we calculate as per normal, except using offset instead of curveMax[clamp_axis] */
+                                               curvetime = (ownLoc[clamp_axis] - offset) / (len);
+                                       }
+                                       else {
+                                               /* as the location falls within bounds, just calculate */
+                                               curvetime = (ownLoc[clamp_axis] - curveMin[clamp_axis]) / (len);
+                                       }
+                               }
+                               else {
+                                       /* no cyclic, so position is clamped to within the bounding box */
+                                       if (ownLoc[clamp_axis] <= curveMin[clamp_axis])
+                                               curvetime = 0.0;
+                                       else if (ownLoc[clamp_axis] >= curveMax[clamp_axis])
+                                               curvetime = 1.0;
+                                       else
+                                               curvetime = (ownLoc[clamp_axis] - curveMin[clamp_axis]) / (curveMax[clamp_axis] - curveMin[clamp_axis]);
+                               }
                                
                                /* 3. position on curve */
                                if(where_on_path(data->tar, curvetime, vec, dir) ) {
index 931e555a49e2d158faba045ec8123c0fa21ed642..466ba9f4201301dc7cbb1236903adf5f611bc4cb 100644 (file)
@@ -545,6 +545,29 @@ int CustomData_get_render_layer_index(const CustomData *data, int type)
        return -1;
 }
 
+int CustomData_get_active_layer(const CustomData *data, int type)
+{
+       int i;
+
+       for(i=0; i < data->totlayer; ++i)
+               if(data->layers[i].type == type)
+                       return data->layers[i].active;
+
+       return -1;
+}
+
+int CustomData_get_render_layer(const CustomData *data, int type)
+{
+       int i;
+
+       for(i=0; i < data->totlayer; ++i)
+               if(data->layers[i].type == type)
+                       return data->layers[i].active_rnd;
+
+       return -1;
+}
+
+
 void CustomData_set_layer_active(CustomData *data, int type, int n)
 {
        int i;
index 8e2feba1e2f40258d4c743e0865d5a5639868715..7b869f8b0e859b8ec51e56609c60200d30bde2d8 100644 (file)
@@ -44,6 +44,7 @@
 #include "DNA_action_types.h"
 #include "DNA_armature_types.h"
 #include "DNA_curve_types.h"
+#include "DNA_camera_types.h"
 #include "DNA_ID.h"
 #include "DNA_effect_types.h"
 #include "DNA_group_types.h"
@@ -479,7 +480,13 @@ static void build_dag_object(DagForest *dag, DagNode *scenenode, Object *ob, int
                dag_add_relation(dag, node, node2, DAG_RL_DATA_DATA|DAG_RL_OB_OB);
                /* inverted relation, so addtoroot shouldn't be set to zero */
        }
-       
+       if (ob->type==OB_CAMERA) {
+               Camera *cam = (Camera *)ob->data;
+               if (cam->dof_ob) {
+                       node2 = dag_get_node(dag, cam->dof_ob);
+                       dag_add_relation(dag,node2,node,DAG_RL_OB_OB);
+               }
+       }
        if (ob->transflag & OB_DUPLI) {
                if((ob->transflag & OB_DUPLIGROUP) && ob->dup_group) {
                        GroupObject *go;
index f42d0fa79e22a673d9e943c604ccaaee7744654a..07fe8bbee31d411bd6f939105a8ee973ed5b8895 100644 (file)
@@ -1686,7 +1686,9 @@ void build_particle_system(Object *ob)
        float *volengths= NULL, *folengths= NULL;
        int deform=0, a, totpart, paf_sta, paf_end;
        int waitcursor_set= 0, totvert, totface, curface, curvert;
+#ifndef DISABLE_ELBEEM
        int readMask, activeParts, fileParts;
+#endif
        
        /* return conditions */
        if(ob->type!=OB_MESH) return;
index 3a64c3504cb96833940b0786cab2c21f3b42ddca..ff84b3c08f82fb96dceffdb6a7296d5801c11b47 100644 (file)
@@ -243,6 +243,7 @@ static Image *image_alloc(const char *name, short source, short type)
                ima->ok= IMA_OK;
                
                ima->xrep= ima->yrep= 1;
+               ima->aspx= ima->aspy= 1.0;
                ima->gen_x= 256; ima->gen_y= 256;
                ima->gen_type= 1;       /* no defines yet? */
                
index 751887b9f423933d2af04baaf93e05e88afbe883..ba8d047644b1d37ea9bc1bb53159cdb88461268e 100644 (file)
@@ -260,6 +260,7 @@ void unlink_object(Object *ob)
        Tex *tex;
        Ipo *ipo;
        Group *group;
+       Camera *camera;
        bConstraint *con;
        bActionStrip *strip;
        int a;
@@ -473,6 +474,15 @@ void unlink_object(Object *ob)
                rem_from_group(group, ob);
                group= group->id.next;
        }
+       
+       /* cameras */
+       camera= G.main->camera.first;
+       while(camera) {
+               if (camera->dof_ob==ob) {
+                       camera->dof_ob = NULL;
+               }
+               camera= camera->id.next;
+       }
 }
 
 int exist_object(Object *obtest)
@@ -573,7 +583,23 @@ void make_local_camera(Camera *cam)
        }
 }
 
-
+/* get the camera's dof value, takes the dof object into account */
+float dof_camera(Object *ob)
+{
+       Camera *cam = (Camera *)ob->data; 
+       if (ob->type != OB_CAMERA)
+               return 0.0;
+       if (cam->dof_ob) {      
+               /* too simple, better to return the distance on the view axis only
+                * return VecLenf(ob->obmat[3], cam->dof_ob->obmat[3]); */
+               
+               float mat[4][4];
+               Mat4Invert(ob->imat, ob->obmat);
+               Mat4MulMat4(mat, cam->dof_ob->obmat, ob->imat);
+               return fabs(mat[3][2]);
+       }
+       return cam->YF_dofdist;
+}
 
 void *add_lamp(char *name)
 {
index ea4911906bd053b828540349a8b097019cd466b8..7cce8c5e8c93a2e05f2ee83102b154c2cf27d65d 100644 (file)
@@ -530,6 +530,9 @@ void scene_update_for_newframe(Scene *sce, unsigned int lay)
 {
        Scene *scene= sce;
        
+       /* clears all BONE_UNKEYED flags for every pose's pchans */
+       framechange_poses_clear_unkeyed();
+       
        /* object ipos are calculated in where_is_object */
        do_all_data_ipos();
        
@@ -540,7 +543,6 @@ void scene_update_for_newframe(Scene *sce, unsigned int lay)
                scene_update(sce, lay);
 
        scene_update(scene, lay);
-       
 }
 
 /* return default layer, also used to patch old files */
index ea2021430f1b1dd2053c8393b2a8099afdb99159..0b1563beceddc830a273963169043a478eb3e008 100644 (file)
@@ -1874,7 +1874,41 @@ static void ccgDM_drawMappedFacesTex(DerivedMesh *dm, int (*setDrawOptions)(void
        ccgDM_drawFacesTex_common(dm, NULL, setDrawOptions, userData);
 }
 
+static void ccgDM_drawUVEdges(DerivedMesh *dm)
+{
+
+       MFace *mf = dm->getFaceArray(dm);
+       MTFace *tf = DM_get_face_data_layer(dm, CD_MTFACE);
+       int i;
+       
+       if (tf) {
+               glBegin(GL_LINES);
+               for(i = 0; i < dm->numFaceData; i++, mf++, tf++) {
+                       if(!(mf->flag&ME_HIDE)) {
+                               glVertex2fv(tf->uv[0]);
+                               glVertex2fv(tf->uv[1]);
+       
+                               glVertex2fv(tf->uv[1]);
+                               glVertex2fv(tf->uv[2]);
+       
+                               if(!mf->v4) {
+                                       glVertex2fv(tf->uv[2]);
+                                       glVertex2fv(tf->uv[0]);
+                               } else {
+                                       glVertex2fv(tf->uv[2]);
+                                       glVertex2fv(tf->uv[3]);
+       
+                                       glVertex2fv(tf->uv[3]);
+                                       glVertex2fv(tf->uv[0]);
+                               }
+                       }
+               }
+               glEnd();
+       }
+}
+
 static void ccgDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *userData, int index, int *drawSmooth_r), void *userData, int useColors) {
+       GLubyte act_face_stipple[32*32/8] = DM_FACE_STIPPLE;
        CCGDerivedMesh *ccgdm = (CCGDerivedMesh*) dm;
        CCGSubSurf *ss = ccgdm->ss;
        CCGFaceIterator *fi = ccgSubSurf_getFaceIterator(ss);
@@ -1891,51 +1925,63 @@ static void ccgDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *u
 
                if(faceFlags) drawSmooth = (faceFlags[origIndex*4] & ME_SMOOTH);
                else drawSmooth = 1;
-
-               if (index!=-1 && (!setDrawOptions || setDrawOptions(userData, index, &drawSmooth))) {
-                       for (S=0; S<numVerts; S++) {
-                               VertData *faceGridData = ccgSubSurf_getFaceGridDataArray(ss, f, S);
-                               if (drawSmooth) {
-                                       glShadeModel(GL_SMOOTH);
-                                       for (y=0; y<gridSize-1; y++) {
-                                               glBegin(GL_QUAD_STRIP);
-                                               for (x=0; x<gridSize; x++) {
-                                                       VertData *a = &faceGridData[(y+0)*gridSize + x];
-                                                       VertData *b = &faceGridData[(y+1)*gridSize + x];
-
-                                                       glNormal3fv(a->no);
-                                                       glVertex3fv(a->co);
-                                                       glNormal3fv(b->no);
-                                                       glVertex3fv(b->co);
+               
+               if (index!=-1) {
+                       int draw;
+                       draw = setDrawOptions==NULL ? 1 : setDrawOptions(userData, index, &drawSmooth);
+                       
+                       if (draw) {
+                               if (draw==2) {
+                                       glEnable(GL_POLYGON_STIPPLE);
+                                       glPolygonStipple(act_face_stipple);
+                               }
+                               
+                               for (S=0; S<numVerts; S++) {
+                                       VertData *faceGridData = ccgSubSurf_getFaceGridDataArray(ss, f, S);
+                                       if (drawSmooth) {
+                                               glShadeModel(GL_SMOOTH);
+                                               for (y=0; y<gridSize-1; y++) {
+                                                       glBegin(GL_QUAD_STRIP);
+                                                       for (x=0; x<gridSize; x++) {
+                                                               VertData *a = &faceGridData[(y+0)*gridSize + x];
+                                                               VertData *b = &faceGridData[(y+1)*gridSize + x];
+       
+                                                               glNormal3fv(a->no);
+                                                               glVertex3fv(a->co);
+                                                               glNormal3fv(b->no);
+                                                               glVertex3fv(b->co);
+                                                       }
+                                                       glEnd();
                                                }
-                                               glEnd();
-                                       }
-                               } else {
-                                       glShadeModel(GL_FLAT);
-                                       glBegin(GL_QUADS);
-                                       for (y=0; y<gridSize-1; y++) {
-                                               for (x=0; x<gridSize-1; x++) {
-                                                       float *a = faceGridData[(y+0)*gridSize + x].co;
-                                                       float *b = faceGridData[(y+0)*gridSize + x + 1].co;
-                                                       float *c = faceGridData[(y+1)*gridSize + x + 1].co;
-                                                       float *d = faceGridData[(y+1)*gridSize + x].co;
-                                                       float a_cX = c[0]-a[0], a_cY = c[1]-a[1], a_cZ = c[2]-a[2];
-                                                       float b_dX = d[0]-b[0], b_dY = d[1]-b[1], b_dZ = d[2]-b[2];
-                                                       float no[3];
-
-                                                       no[0] = b_dY*a_cZ - b_dZ*a_cY;
-                                                       no[1] = b_dZ*a_cX - b_dX*a_cZ;
-                                                       no[2] = b_dX*a_cY - b_dY*a_cX;
-                                                       glNormal3fv(no);
-
-                                                       glVertex3fv(d);
-                                                       glVertex3fv(c);
-                                                       glVertex3fv(b);
-                                                       glVertex3fv(a);
+                                       } else {
+                                               glShadeModel(GL_FLAT);
+                                               glBegin(GL_QUADS);
+                                               for (y=0; y<gridSize-1; y++) {
+                                                       for (x=0; x<gridSize-1; x++) {
+                                                               float *a = faceGridData[(y+0)*gridSize + x].co;
+                                                               float *b = faceGridData[(y+0)*gridSize + x + 1].co;
+                                                               float *c = faceGridData[(y+1)*gridSize + x + 1].co;
+                                                               float *d = faceGridData[(y+1)*gridSize + x].co;
+                                                               float a_cX = c[0]-a[0], a_cY = c[1]-a[1], a_cZ = c[2]-a[2];
+                                                               float b_dX = d[0]-b[0], b_dY = d[1]-b[1], b_dZ = d[2]-b[2];
+                                                               float no[3];
+       
+                                                               no[0] = b_dY*a_cZ - b_dZ*a_cY;
+                                                               no[1] = b_dZ*a_cX - b_dX*a_cZ;
+                                                               no[2] = b_dX*a_cY - b_dY*a_cX;
+                                                               glNormal3fv(no);
+       
+                                                               glVertex3fv(d);
+                                                               glVertex3fv(c);
+                                                               glVertex3fv(b);
+                                                               glVertex3fv(a);
+                                                       }
                                                }
+                                               glEnd();
                                        }
-                                       glEnd();
                                }
+                               if (draw==2)
+                                       glDisable(GL_POLYGON_STIPPLE);
                        }
                }
        }
@@ -2101,7 +2147,7 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss,
        ccgdm->dm.drawFacesTex = ccgDM_drawFacesTex;
        ccgdm->dm.drawMappedFaces = ccgDM_drawMappedFaces;
        ccgdm->dm.drawMappedFacesTex = ccgDM_drawMappedFacesTex;
-       /* todo: drawUVEdges */
+       ccgdm->dm.drawUVEdges = ccgDM_drawUVEdges;
 
        ccgdm->dm.drawMappedEdgesInterp = ccgDM_drawMappedEdgesInterp;
        ccgdm->dm.drawMappedEdges = ccgDM_drawMappedEdges;
index 703f2803ede7fe556ddc2c61714a42c304977459..34aa44e93576fdd25dfdb0853e996ddb852a2fb2 100644 (file)
@@ -32,6 +32,7 @@
 #include <ffmpeg/avformat.h>
 #include <ffmpeg/avcodec.h>
 #include <ffmpeg/rational.h>
+#include <ffmpeg/swscale.h>
 
 #if LIBAVFORMAT_VERSION_INT < (49 << 16)
 #define FFMPEG_OLD_FRAME_RATE 1
@@ -81,6 +82,7 @@ static AVFormatContext* outfile = 0;
 static AVStream* video_stream = 0;
 static AVStream* audio_stream = 0;
 static AVFrame* current_frame = 0;
+static struct SwsContext *img_convert_ctx = 0;
 
 static uint8_t* video_buffer = 0;
 static int video_buffersize = 0;
@@ -317,8 +319,9 @@ static AVFrame* generate_video_frame(uint8_t* pixels)
        }
 
        if (c->pix_fmt != PIX_FMT_RGBA32) {
-               img_convert((AVPicture*)current_frame, c->pix_fmt, 
-                       (AVPicture*)rgb_frame, PIX_FMT_RGBA32, width, height);
+               sws_scale(img_convert_ctx, rgb_frame->data,
+                         rgb_frame->linesize, 0, c->height, 
+                         current_frame->data, current_frame->linesize);
                delete_picture(rgb_frame);
        }
        return current_frame;
@@ -420,6 +423,13 @@ static AVStream* alloc_video_stream(int codec_id, AVFormatContext* of,
                                             "FFMPEG video buffer");
        
        current_frame = alloc_picture(c->pix_fmt, c->width, c->height);
+
+       img_convert_ctx = sws_getContext(c->width, c->height,
+                                        PIX_FMT_RGBA32,
+                                        c->width, c->height,
+                                        c->pix_fmt,
+                                        SWS_BICUBIC,
+                                        NULL, NULL, NULL);
        return st;
 }
 
@@ -749,8 +759,10 @@ void end_ffmpeg(void)
        
        fprintf(stderr, "Closing ffmpeg...\n");
 
-       write_audio_frames();
-
+       if (audio_stream) {
+               write_audio_frames();
+       }
+       
        if (outfile) {
                av_write_trailer(outfile);
        }
@@ -797,6 +809,11 @@ void end_ffmpeg(void)
                MEM_freeN(audio_input_buffer);
                audio_input_buffer = 0;
        }
+
+       if (img_convert_ctx) {
+               sws_freeContext(img_convert_ctx);
+               img_convert_ctx = 0;
+       }
 }
 #endif
 
index c05d33f2792c783a13dae01e4efb3f8f5a3548c8..fd217e479edacdc1e7bf5c5423d4f2b6753783c5 100644 (file)
@@ -164,6 +164,13 @@ typedef struct EditMesh
                /* DerivedMesh caches... note that derived cage can be equivalent
                 * to derived final, care should be taken on release.
                 */
+       
+       /* used for keeping track of the last clicked on face - so the space image
+        * when using the last selected face - (EditSelection) the space image flickered too much
+        * 
+        * never access this directly, use EM_set_actFace and EM_get_actFace */
+       EditFace *act_face; 
+       
        struct DerivedMesh *derivedCage, *derivedFinal;
        /* the custom data layer mask that was last used to calculate
         * derivedCage and derivedFinal
index 688503269eac88a855f0c639a447ab025392fa81..1efc6a0b2407255f5b560a8af47254ed82d06774 100644 (file)
@@ -1203,7 +1203,7 @@ void BLI_split_dirfile(const char *string, char *dir, char *file)
                if(a>=4 && dir[a-1]=='\\') dir[a-1] = 0;
 
                if (is_relative) {
-                       printf("WARNING: BLI_split_dirfile needs absolute dir");
+                       printf("WARNING: BLI_split_dirfile needs absolute dir\n");
                }
                else {
                        BLI_make_exist(dir);
index 3fbfef12f1f8f2d0558a7624e63743e41e28b6b8..38e11928c7d951f5f4f841306551e953ab0c5dec 100644 (file)
@@ -1866,7 +1866,9 @@ static void lib_link_camera(FileData *fd, Main *main)
                if(ca->id.flag & LIB_NEEDLINK) {
 
                        ca->ipo= newlibadr_us(fd, ca->id.lib, ca->ipo);
-
+                       
+                       ca->dof_ob= newlibadr_us(fd, ca->id.lib, ca->dof_ob);
+                       
                        lib_link_scriptlink(fd, &ca->id, &ca->scriptlink);
 
                        ca->id.flag -= LIB_NEEDLINK;
@@ -6082,8 +6084,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
                        if(arm->layer==0) arm->layer= 1;
                }
                for(sce= main->scene.first; sce; sce= sce->id.next) {
-                       bScreen *sc;
-                       
                        if(sce->jumpframe==0) sce->jumpframe= 10;
                        if(sce->audio.mixrate==0) sce->audio.mixrate= 44100;
 
@@ -6116,20 +6116,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
                                sce->toolsettings->unwrapper = 1;
                        }
 
-                       /* enable uv editor local sticky by default */
-                       for (sc= main->screen.first; sc; sc= sc->id.next) {
-                               ScrArea *sa;
-                               for (sa= sc->areabase.first; sa; sa= sa->next) {
-                                       SpaceLink *sl;
-                                       for (sl= sa->spacedata.first; sl; sl= sl->next) {
-                                               if(sl->spacetype==SPACE_IMAGE) {
-                                                       SpaceImage *sima= (SpaceImage*)sl;
-                                                       if(!(sima->flag & SI_STICKYUVS))
-                                                               sima->flag |= SI_LOCALSTICKY;
-                                               }
-                                       }
-                               }
-                       }
                        if(sce->r.mode & R_PANORAMA) {
                                /* all these checks to ensure saved files with cvs version keep working... */
                                if(sce->r.xsch < sce->r.ysch) {
@@ -6529,7 +6515,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
        
        if(main->versionfile <= 244) {
                Scene *sce;
-               Material *ma;
                bScreen *sc;
                Object *ob;
                Lamp *la;
@@ -6663,15 +6648,6 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
                                }
                        }
                        
-                       for(ma=main->mat.first; ma; ma= ma->id.next) {
-                               ma->gloss_mir = ma->gloss_tra= 1.0;
-                               ma->aniso_gloss_mir = 1.0;
-                               ma->samp_gloss_mir = ma->samp_gloss_tra= 18;
-                               ma->adapt_thresh_mir = ma->adapt_thresh_tra = 0.005;
-                               ma->dist_mir = 0.0;
-                               ma->fadeto_mir = MA_RAYMIR_FADETOSKY;
-                       }
-                       
                        for(wrld=main->world.first; wrld; wrld= wrld->id.next) {
                                if (wrld->mode & WO_AMB_OCC)
                                        wrld->ao_samp_method = WO_AOSAMP_CONSTANT;
@@ -6692,22 +6668,11 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
                }
        }
        if(main->versionfile <= 245) {
-               Lamp *la;
-               if (main->versionfile != 245 || main->subversionfile < 1) {
-                       for(la=main->lamp.first; la; la= la->id.next) {
-                               if (la->mode & LA_QUAD) la->falloff_type = LA_FALLOFF_SLIDERS;
-                               else la->falloff_type = LA_FALLOFF_INVLINEAR;
-                                       
-                               la->curfalloff = curvemapping_add(1, 0.0f, 1.0f, 1.0f, 0.0f);
-                               curvemapping_initialize(la->curfalloff);
-                       }
-               }
-       }
-
-       if (main->versionfile <= 245) {
                bScreen *sc;
                Image* ima;
-
+               Lamp *la;
+               Material *ma;
+               
                /* fix all versions before 2.45 */
                if (main->versionfile != 245) {
 
@@ -6760,7 +6725,38 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
                                }
                        }
                }
+               
+               if (main->versionfile != 245 || main->subversionfile < 1) {
+                       for(la=main->lamp.first; la; la= la->id.next) {
+                               if (la->mode & LA_QUAD) la->falloff_type = LA_FALLOFF_SLIDERS;
+                               else la->falloff_type = LA_FALLOFF_INVLINEAR;
+                               
+                               if (la->curfalloff == NULL) {
+                                       la->curfalloff = curvemapping_add(1, 0.0f, 1.0f, 1.0f, 0.0f);
+                                       curvemapping_initialize(la->curfalloff);
+                               }
+                       }
+               }               
+               
+               for(ma=main->mat.first; ma; ma= ma->id.next) {
+                       if (ma->samp_gloss_mir == 0) {
+                               ma->gloss_mir = ma->gloss_tra= 1.0;
+                               ma->aniso_gloss_mir = 1.0;
+                               ma->samp_gloss_mir = ma->samp_gloss_tra= 18;
+                               ma->adapt_thresh_mir = ma->adapt_thresh_tra = 0.005;
+                               ma->dist_mir = 0.0;
+                               ma->fadeto_mir = MA_RAYMIR_FADETOSKY;
+                       }
+               }
+               
+       }
 
+       if ((main->versionfile < 245) || (main->versionfile == 245 && main->subversionfile < 2)) {
+               Image *ima;     
+               /* initialize 1:1 Aspect */
+               for(ima= main->image.first; ima; ima= ima->id.next) {
+                       ima->aspx = ima->aspy = 1.0f;                           
+               }
        }
 
        /* WATCH IT!!!: pointers from libdata have not been converted yet here! */
index 602b13df4cadd17e20745ce45e581d1f5554e560..f3514a92ae46812c96c8f26357ac1be93860168b 100644 (file)
@@ -81,6 +81,7 @@
 #ifdef WITH_FFMPEG
 #include <ffmpeg/avformat.h>
 #include <ffmpeg/avcodec.h>
+#include <ffmpeg/swscale.h>
 #endif
 
 #include "IMB_imbuf_types.h"
@@ -181,7 +182,8 @@ struct anim {
        AVCodecContext *pCodecCtx;
        AVCodec *pCodec;
        AVFrame *pFrameRGB;
-       AVFrame *pFrame; 
+       AVFrame *pFrame;
+       struct SwsContext *img_convert_ctx;
        int videoStream;
 #endif
 
index 5b185a4423f4754488e590f8287a09ca0215fc2a..e99c35e45ce1b65b6c78d75fcf5e224f4ae30a14 100644 (file)
@@ -89,6 +89,7 @@
 #include <ffmpeg/avformat.h>
 #include <ffmpeg/avcodec.h>
 #include <ffmpeg/rational.h>
+#include <ffmpeg/swscale.h>
 
 #if LIBAVFORMAT_VERSION_INT < (49 << 16)
 #define FFMPEG_OLD_FRAME_RATE 1
@@ -609,7 +610,17 @@ static int startffmpeg(struct anim * anim) {
        } else {
                anim->preseek = 0;
        }
-
+       
+       anim->img_convert_ctx = sws_getContext(
+               anim->pCodecCtx->width,
+               anim->pCodecCtx->height,
+               anim->pCodecCtx->pix_fmt,
+               anim->pCodecCtx->width,
+               anim->pCodecCtx->height,
+               PIX_FMT_RGBA,
+               SWS_FAST_BILINEAR | SWS_PRINT_INFO,
+               NULL, NULL, NULL);
+                               
        return (0);
 }
 
@@ -703,34 +714,21 @@ static ImBuf * ffmpeg_fetchibuf(struct anim * anim, int position) {
                        } 
 
                        if(frameFinished && pos_found == 1) {
-                               unsigned char * p =(unsigned char*) ibuf->rect;
-                               unsigned char * e = p + anim->x * anim->y * 4;
-
-                               img_convert((AVPicture *)anim->pFrameRGB, 
-                                           PIX_FMT_RGBA32, 
-                                           (AVPicture*)anim->pFrame, 
-                                           anim->pCodecCtx->pix_fmt, 
-                                           anim->pCodecCtx->width, 
-                                           anim->pCodecCtx->height);
-                               IMB_flipy(ibuf);
-                               if (G.order == L_ENDIAN) {
-                                       /* BGRA -> RGBA */
-                                       while (p != e) {
-                                               unsigned char a = p[0];
-                                               p[0] = p[2];
-                                               p[2] = a;
-                                               p += 4;
-                                       }
-                               } else {
-                                       /* ARGB -> RGBA */
-                                       while (p != e) {
-                                               unsigned long a =
-                                                       *(unsigned long*) p;
-                                               a = (a << 8) | p[0];
-                                               *(unsigned long*) p = a;
-                                               p += 4;
-                                       }
-                               }
+                               int * dstStride = anim->pFrameRGB->linesize;
+                               uint8_t** dst = anim->pFrameRGB->data;
+                               int dstStride2[4]= { -dstStride[0], 0, 0, 0 };
+                               uint8_t* dst2[4]= {
+                                       dst[0] + (anim->y - 1)*dstStride[0],
+                                       0, 0, 0 };
+
+                               sws_scale(anim->img_convert_ctx,
+                                         anim->pFrame->data,
+                                         anim->pFrame->linesize,
+                                         0,
+                                         anim->pCodecCtx->height,
+                                         dst2,
+                                         dstStride2);
+
                                av_free_packet(&packet);
                                break;
                        }
@@ -750,6 +748,7 @@ static void free_anim_ffmpeg(struct anim * anim) {
                av_close_input_file(anim->pFormatCtx);
                av_free(anim->pFrameRGB);
                av_free(anim->pFrame);
+               sws_freeContext(anim->img_convert_ctx);
        }
        anim->duration = 0;
 }
index b071331e46b3e0ccb3fc9270b639a52faa98bdd8..493b0968f55bb63d02602ee72b1141ee456a494c 100644 (file)
@@ -53,6 +53,7 @@
 #include <unistd.h>
 #endif
 
+#include <ctype.h>
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
@@ -194,9 +195,9 @@ static int uri_from_filename( const char *dir, const char *file, char *uri )
        
 #ifdef WITH_ICONV
        {
+               char uri_utf8[FILE_MAX*3+8];
                escape_uri_string(orig_uri, uri_utf8, FILE_MAX*3+8, UNSAFE_PATH);
                BLI_string_to_utf8(uri_utf8, uri, NULL);
-               char uri_utf8[FILE_MAX*3+8];
        }
 #else 
        escape_uri_string(orig_uri, uri, FILE_MAX*3+8, UNSAFE_PATH);
index 17b8cf283823b986112fbb859ecc76b4fe78a486..72b0e7352da6d895169bf928f7f9c4688cb4ffbc 100644 (file)
@@ -38,7 +38,7 @@ struct EditFace;
 struct Mesh;
 struct MCol;
 
-struct MTFace *get_active_mtface(struct EditFace **efa, struct MCol **mcol);
+struct MTFace *get_active_mtface(struct EditFace **efa, struct MCol **mcol, short sloppy);
 void calculate_uv_map(unsigned short mapmode);
 void default_uv(float uv[][2], float size);
 void make_tfaces(struct Mesh *me);
index ace95d82a81d98739337f25b33fe48d531bd58a5..ca7a25304abaf11b18990f3c346a6ff97a7257ca 100644 (file)
@@ -43,8 +43,9 @@ struct uiBlock;
 void do_imagebuts(unsigned short event);
 void calc_image_view(struct SpaceImage *sima, char mode);
 void drawimagespace(struct ScrArea *sa, void *spacedata);
-void draw_tfaces(void);
-void image_changed(struct SpaceImage *sima, int dotile);
+void image_changed(struct SpaceImage *sima, struct Image *image);
+void draw_uvs_sima(void);
+void image_set_tile(struct SpaceImage *sima, int dotile);
 void image_home(void);
 void image_viewmove(int mode);
 void image_viewzoom(unsigned short event, int invert);
index 5e1f8bc8ad7a28171b9b9b76fc5cd4ee7e682d3b..fe6f81b94168205b789ce537ef9f94e8014ce0df 100644 (file)
@@ -79,7 +79,6 @@ enum {
        SET_IPO_BEZIER,
 };
 
-
 /* constants for setting ipo-extrapolation type */
 enum {
        
@@ -92,6 +91,7 @@ enum {
        SET_EXTEND_CYCLICEXTRAPOLATION
 };
 
+
 struct bAction;
 struct bActionChannel;
 struct bPoseChannel;
@@ -116,6 +116,11 @@ void column_select_action_keys(int mode);
 void selectall_action_keys(short mval[], short mode, short selectmode);
 void markers_selectkeys_between(void);
 
+/* Action Data Copying */
+void free_actcopybuf(void);
+void copy_actdata(void);
+void paste_actdata(void);
+
 /* channel/strip operations */
 void up_sel_action(void);
 void down_sel_action(void);
@@ -132,11 +137,12 @@ void deselect_action_keys(short test, short sel);
 void deselect_action_channels(short test);
 void deselect_actionchannels(struct bAction *act, short test);
 int select_channel(struct bAction *act, struct bActionChannel *achan, int selectmode);
-void select_actionchannel_by_name (struct bAction *act, char *name, int select);
+void select_actionchannel_by_name(struct bAction *act, char *name, int select);
 
 /* ShapeKey stuff */
 struct Key *get_action_mesh_key(void);
 int get_nearest_key_num(struct Key *key, short *mval, float *x);
+
 void *get_nearest_act_channel(short mval[], short *ret_type);
 
 /* Action */
index 2a6f3e4b559dce07c5ae2936a6caf056e8c54a2a..7ad3fd480a3b4c4bf9c6a9f6d37e98754015d861 100644 (file)
@@ -223,6 +223,7 @@ extern void join_triangles(void);
 extern void edge_flip(void);
 extern void fill_mesh(void);
 extern void bevel_menu();
+void mesh_set_face_flags(short mode);
 extern void mesh_set_smooth_faces(short event);
 extern void mesh_rotate_uvs(void);
 extern void mesh_mirror_uvs(void);
@@ -258,4 +259,7 @@ void free_uv_vert_map_EM(UvVertMap *vmap);
 int EM_texFaceCheck(void); /* can we edit UV's for this mesh?*/
 int EM_vertColorCheck(void); /* can we edit colors for this mesh?*/
 
+void EM_set_actFace(struct EditFace *efa);
+struct EditFace * EM_get_actFace(void);
+
 #endif
index ca8345559aa3794d8bb214e50807afa4ce2a0065..b85749f9f95524554ccd23e278119fae53f65135 100644 (file)
 
 struct Mesh;
 struct EditMesh;
+struct SpaceImage;
+struct EditFace;
+struct MTFace;
+
+/* id can be from 0 to 3 */
 #define TF_PIN_MASK(id) (TF_PIN1 << id)
 #define TF_SEL_MASK(id) (TF_SEL1 << id)
 
+  
+/* this checks weather a face is drarn without the local image check
+ * - warning - no check for G.sima->flag, use SIMA_FACEDRAW_CHECK
+ */
+#define SIMA_FACEDRAW_CHECK_NOLOCAL(efa) \
+       ((G.sima->flag & SI_SYNC_UVSEL) ? (efa->h==0) : (efa->h==0 && efa->f & SELECT))
+
+/* this check includes the local image check - (does the faces image match the space image?) */
+#define SIMA_FACEDRAW_CHECK(efa, tf) \
+       ((G.sima && G.sima->flag & SI_LOCAL_UV) ? ((tf->tpage==G.sima->image) ? SIMA_FACEDRAW_CHECK_NOLOCAL(efa):0) : (SIMA_FACEDRAW_CHECK_NOLOCAL(efa)))
+
+#define SIMA_FACESEL_CHECK(efa, tf) \
+       ((G.sima && G.sima->flag & SI_SYNC_UVSEL) ? (efa->f & SELECT) : (!(~tf->flag & (TF_SEL1|TF_SEL2|TF_SEL3)) &&(!efa->v4 || tf->flag & TF_SEL4)))
+#define SIMA_FACESEL_SET(efa, tf) \
+       ((G.sima && G.sima->flag & SI_SYNC_UVSEL) ? (EM_select_face(efa, 1))    : (tf->flag |=  (TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4)))
+#define SIMA_FACESEL_UNSET(efa, tf) \
+       ((G.sima && G.sima->flag & SI_SYNC_UVSEL) ? (EM_select_face(efa, 0))    : (tf->flag &= ~(TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4)))
+
+#define SIMA_UVSEL_CHECK(efa, tf, i)   ((G.sima && G.sima->flag & SI_SYNC_UVSEL) ? \
+       (G.scene->selectmode == SCE_SELECT_FACE ? efa->f & SELECT :             ((*(&efa->v1 + i))->f & SELECT) )       : (tf->flag &   TF_SEL_MASK(i) ))
+#define SIMA_UVSEL_SET(efa, tf, i)             ((G.sima && G.sima->flag & SI_SYNC_UVSEL) ? \
+       (G.scene->selectmode == SCE_SELECT_FACE ? EM_select_face(efa, 1) : ((*(&efa->v1 + i))->f |=  SELECT) ) : (tf->flag |=  TF_SEL_MASK(i) ))
+#define SIMA_UVSEL_UNSET(efa, tf, i)   ((G.sima && G.sima->flag & SI_SYNC_UVSEL) ? \
+       (G.scene->selectmode == SCE_SELECT_FACE ? EM_select_face(efa, 0) : ((*(&efa->v1 + i))->f &= ~SELECT) ) : (tf->flag &= ~TF_SEL_MASK(i) ))
+
 struct Object;
 
 void object_uvs_changed(struct Object *ob);
@@ -55,6 +85,7 @@ void borderselect_sima(short whichuvs);
 void mouseco_to_curtile(void);
 void mouse_select_sima(void);
 void snap_menu_sima(void);
+void aspect_sima(struct SpaceImage *sima, float *x, float *y);
 
 void select_invert_tface_uv(void);
 void select_swap_tface_uv(void);
@@ -65,7 +96,6 @@ void reveal_tface_uv(void);
 void stitch_uv_tface(int mode);
 void unlink_selection(void);
 void select_linked_tface_uv(int mode);
-void toggle_uv_select(int mode);
 void pin_tface_uv(int mode);
 void weld_align_menu_tface_uv(void);
 void weld_align_tface_uv(char tool);
@@ -88,3 +118,5 @@ void pack_image_sima(void);
 
 /* checks images for forced updates on frame change */
 void BIF_image_update_frame(void);
+
+void find_nearest_uv(struct MTFace **nearesttf, struct EditFace **nearestefa, unsigned int *nearestv, int *nearestuv);
index d734e59046fe78767967eb269eb38fbf1dffacfb..e63e84efcbd29fec2fe5757e934f1e994e2b4499 100644 (file)
@@ -123,9 +123,9 @@ typedef enum {
        ICON_AXIS_SIDE,
        ICON_AXIS_FRONT,
        ICON_AXIS_TOP,
-       ICON_DRAW_UVFACES,
-       ICON_STICKY_UVS,
-       ICON_STICKY2_UVS,
+       ICON_STICKY_UVS_LOC,
+       ICON_STICKY_UVS_DISABLE,
+       ICON_STICKY_UVS_VERT,
        ICON_PREV_KEYFRAME,
        ICON_NEXT_KEYFRAME,
        ICON_ENVMAP,
@@ -317,8 +317,8 @@ typedef enum {
        ICON_HOME,
        ICON_CLIPUV_DEHLT,
        ICON_CLIPUV_HLT,
-       ICON_SOME_WACKY_VERTS_AND_LINES,
-       ICON_A_WACKY_VERT_AND_SOME_LINES,
+       ICON_BLANK2,
+       ICON_BLANK3,
        ICON_VPAINT_COL,
        ICON_RESTRICT_SELECT_OFF,
        ICON_RESTRICT_SELECT_ON,
@@ -525,6 +525,7 @@ enum {
        TH_SEQ_META,
        
        TH_EDGE_SHARP,
+       TH_EDITMESH_ACTIVE,
 };
 /* XXX WARNING: previous is saved in file, so do not change order! */
 
index 9c51ad290d01b8dd8923a8ff81e7aa0aa30bcb9e..7c88610cf3ac9411a26ef9e4d2a37b8f46b97e57 100644 (file)
@@ -65,7 +65,8 @@ struct SpaceOops;
 #define IMAGE_HANDLER_CURVES           32
 #define IMAGE_HANDLER_PREVIEW          33
 #define IMAGE_HANDLER_GAME_PROPERTIES  34
-#define IMAGE_HANDLER_TRANSFORM_PROPERTIES     35
+#define IMAGE_HANDLER_VIEW_PROPERTIES  35
+/*#define IMAGE_HANDLER_TRANSFORM_PROPERTIES   36*/
 
 /* action handler codes */
 #define ACTION_HANDLER_PROPERTIES      40
index 9b27794252803e9ce0ee99416c41f23bdafad61b..eeb465135de6ef62a9ec99b9be830f6cf2283f97 100644 (file)
@@ -55,6 +55,9 @@
 #define TFM_BONE_ENVELOPE      16
 #define TFM_CURVE_SHRINKFATTEN         17
 #define TFM_BONE_ROLL          18
+#define TFM_TIME_TRANSLATE     19      
+#define TFM_TIME_SLIDE         20
+#define        TFM_TIME_SCALE          21
 
 /* TRANSFORM CONTEXTS */
 #define CTX_NONE                       0
index 6c6bac0ddcecb7951068417504c0ac9e60379db2..617710e1b28eb982327b0e76087b50e00599f4b1 100644 (file)
@@ -91,8 +91,10 @@ struct IpoCurve *verify_ipocurve(struct ID *, short, char *, char *, int);
 struct Ipo *verify_ipo(struct ID *, short, char *, char *);
 int texchannel_to_adrcode(int channel);
 
-void insert_vert_ipo(struct IpoCurve *icu, float x, float y);
+int insert_bezt_icu(struct IpoCurve *icu, struct BezTriple *bezt);
+void insert_vert_icu(struct IpoCurve *icu, float x, float y, short fast);
 void add_vert_ipo(void);
+
 void add_duplicate_editipo(void);
 void remove_doubles_ipo(void);
 void clean_ipo(void);
@@ -119,7 +121,7 @@ void paste_editipo(void);
 void set_exprap_ipo(int mode);
 
 void set_speed_editipo(float speed);
-void insertkey(ID *id, int blocktype, char *actname, char *constname, int adrcode);
+void insertkey(ID *id, int blocktype, char *actname, char *constname, int adrcode, short fast);
 void insertkey_smarter(ID *id, int blocktype, char *actname, char *constname, int adrcode);
 void insertkey_editipo(void);
 void common_insertkey(void);
index 1dc98b737663babe48a83b4f8eff1358a4e0f3f8..5db45b6571ff0001c437af30707963c8f2bb63f5 100644 (file)
 #define B_UITHEMEIMPORT                323
 #define B_UITHEMEEXPORT                324
 
-#define B_MEMCACHELIMIT         325
+#define B_MEMCACHELIMIT                325
 
 /* Definitions for the fileselect buttons in user prefs */
 #define B_FONTDIRFILESEL       330
 #define B_SIMAGEHOME           351
 #define B_SIMABROWSE           352
 #define B_SIMAGELOAD           353
-#define B_SIMAGEDRAW           354
-#define B_BE_SQUARE            355
-#define B_SIMAGEDRAW1          356
-#define B_TWINANIM             357
+#define B_SIMA_REDR_IMA_3D     354
+#define B_SIMAGETILE           355
+#define B_BE_SQUARE                    356
+#define B_TWINANIM                     357
 #define B_SIMAGEREPLACE                358
-#define B_CLIP_UV              359
+#define B_CLIP_UV                      359
 #define B_SIMAGELOAD1          360
 #define B_SIMAGEREPLACE1       361
 #define B_SIMAGEPAINTTOOL      362
 #define B_SIMACLONEDELETE      366
 #define B_SIMANOTHING          368
 #define B_SIMACURVES           369
-#define B_SIMARANGE            370
+#define B_SIMARANGE                    370
 #define B_SIMA_USE_ALPHA       371
 #define B_SIMA_SHOW_ALPHA      372
 #define B_SIMA_SHOW_ZBUF       373
 #define B_SIMABTEXBROWSE       378
 #define B_SIMABTEXDELETE       379
 #define B_SIMARELOAD           380
-#define B_SIMANAME             381
-#define B_SIMAMULTI            382
+#define B_SIMANAME                     381
+#define B_SIMAMULTI                    382
 #define B_TRANS_IMAGE          383
 #define B_CURSOR_IMAGE         384
 #define B_SIMA_REPACK          385
-#define B_SIMA_PLAY            386
+#define B_SIMA_PLAY                    386
 #define B_SIMA_RECORD          387
+#define B_SIMAPIN                      388
+#define B_SIMA3DVIEWDRAW       389
+
 
 /* BUTS: 400 */
-#define B_BUTSHOME             401
+#define B_BUTSHOME                     401
 #define B_BUTSPREVIEW          402
-#define B_MATCOPY              403
-#define B_MATPASTE             404
-#define B_MESHTYPE             405
+#define B_MATCOPY                      403
+#define B_MATPASTE                     404
+#define B_MESHTYPE                     405
 #define B_CONTEXT_SWITCH       406
 
 /* IMASEL: 450 */
 #define B_ACTMAIN              707
 #define        B_ACTPIN                708
 #define B_ACTBAKE              709
+#define B_ACTCOPYKEYS          710
+#define B_ACTPASTEKEYS         711
 
 /* TIME: 751 - 800 */
 #define B_TL_REW               751
index a06356e6531a7262913d2706a851b74009c7f294..b81ec202210a7294d7389b79c4dd919b7ca17e77 100644 (file)
@@ -339,6 +339,15 @@ int BoneEnvelope(TransInfo *t, short mval[2]);
 void initBoneRoll(TransInfo *t);
 int BoneRoll(TransInfo *t, short mval[2]);
 
+void initTimeTranslate(TransInfo *t);
+int TimeTranslate(TransInfo *t, short mval[2]);
+
+void initTimeSlide(TransInfo *t);
+int TimeSlide(TransInfo *t, short mval[2]);
+
+void initTimeScale(TransInfo *t);
+int TimeScale(TransInfo *t, short mval[2]);
+
 /*********************** transform_conversions.c ********** */
 struct ListBase;
 void flushTransUVs(TransInfo *t);
index 43fc0fdd901f2ca27936d209ae3b93748e2cbc47..5bdb4419b6ea92333cc429a4d6d4b3bbd2e3d845 100644 (file)
@@ -148,18 +148,27 @@ typedef struct SpaceAction {
 #define ACHAN_MOVED     0x80000000
 
 /* SpaceAction flag */
-#define SACTION_MOVING         1       /* during transform */
-#define SACTION_SLIDERS                2       /* show sliders (if relevant) - limited to shape keys for now */
-#define SACTION_DRAWTIME       4       /* draw time in seconds instead of time in frames */
-
-/* SpaceAction AutoSnap Settings */
-#define SACTSNAP_OFF   0       /* no auto-snap */
-#define SACTSNAP_STEP  1       /* snap to 1.0 frame/second intervals */
-#define SACTSNAP_FRAME 2       /* snap to actual frames/seconds (nla-action time) */
+       /* during transform */
+#define SACTION_MOVING         1       
+       /* show sliders (if relevant) - limited to shape keys for now */
+#define SACTION_SLIDERS                2       
+       /* draw time in seconds instead of time in frames */
+#define SACTION_DRAWTIME       4       
+
+/* SpaceAction AutoSnap Settings (also used by SpaceNLA) */
+       /* no auto-snap */
+#define SACTSNAP_OFF   0       
+       /* snap to 1.0 frame/second intervals */
+#define SACTSNAP_STEP  1
+       /* snap to actual frames/seconds (nla-action time) */
+#define SACTSNAP_FRAME 2       
 
 /* Pose->flag */
+       /* results in armature_rebuild_pose being called */
 #define POSE_RECALC            1
+       /* prevents any channel from getting overridden by anim from IPO */
 #define POSE_LOCKED            2
+       /* clears the POSE_LOCKED flag for the next time the pose is evaluated */
 #define POSE_DO_UNLOCK 4
 
 /* PoseChannel (transform) flags */
index 53a5f26033cbc6167150fe0db1412f59dd764bfc..31a95363802b5323f8aef127180d42626796e346 100644 (file)
@@ -145,6 +145,7 @@ typedef struct bArmature {
                        /* multiplies vgroup with envelope */
 #define                BONE_MULT_VG_ENV        2048
 #define                BONE_NO_DEFORM          4096
-
+                       /* set to prevent destruction of its unkeyframed pose (after transform) */
+#define        BONE_UNKEYED            8192
 
 #endif
index f25d8fd641293c1e50fc10124cb539915f2bc665..4cb8ec25ebcb76fe03f9a145da85c53c8b8cff76 100644 (file)
@@ -42,6 +42,7 @@ extern "C" {
 #endif
 
 struct Ipo;
+struct Object;
 
 typedef struct Camera {
        ID id;
@@ -62,6 +63,7 @@ typedef struct Camera {
        struct Ipo *ipo;
        
        ScriptLink scriptlink;
+       struct Object *dof_ob;
 } Camera;
 
 /* **************** CAMERA ********************* */
index 9a0d5a095e5b3ff3c5a9361add8bcdf4e0e52830..fcde95371acfbc252c461fcb06513a9d07d82c84 100644 (file)
@@ -205,7 +205,7 @@ typedef struct bRigidBodyJointConstraint {
 typedef struct bClampToConstraint {
        Object          *tar;                   /* 'target' must be a curve */
        int                     flag;                   /* which axis/plane to compare owner's location on  */
-       int                     pad;
+       int                     flag2;                  /* for legacy reasons, this is flag2. used for any extra settings */
 } bClampToConstraint;
 
 /* Child Of Constraint */
@@ -373,6 +373,9 @@ typedef struct bSizeLimitConstraint {
 #define        CLAMPTO_Y               2
 #define CLAMPTO_Z              3
 
+/* ClampTo Constraint ->flag2 */
+#define CLAMPTO_CYCLIC 1
+
 /* bKinematicConstraint->flag */
 #define CONSTRAINT_IK_TIP              1
 #define CONSTRAINT_IK_ROT              2
index 694279d4605dc64c0731515a949345e80c0de6e9..8a5a7ce4a4c5293e49eae58cc9e4c05cfca1cfce 100644 (file)
@@ -90,6 +90,9 @@ typedef struct Image {
        
        short gen_x, gen_y, gen_type;   /* for generated images */
        
+       /* display aspect - for UV editing images resized for faster openGL display */
+       float aspx, aspy;
+       
 /*#ifdef WITH_VERSE*/
        void *vnode;            /* pointer at verse bitmap node */
 /*#endif*/
index 953c81769624edb23df327005097b0276769ab2a..59f3a64ba5ed5ea5a4ec04c1b6962dc396d789be 100644 (file)
@@ -74,7 +74,14 @@ typedef struct Mesh {
 
        struct CustomData vdata, edata, fdata;
 
-       int totvert, totedge, totface, totselect, pad2;
+       int totvert, totedge, totface, totselect;
+       
+       /* the last selected vertex/edge/face are used for the active face however
+        * this means the active face must always be selected, this is to keep track
+        * of the last selected face and is similar to the old active face flag where
+        * the face does not need to be selected, -1 is inactive */
+       int act_face; 
+       
        int texflag;
        
        /* texture space, copied as one block in editobject.c */
index 2cbe03ab4cc0fd61f25c950fd48b26661c937ad8..68d9bb245cf59b67122d3d0484f7573e411bf45f 100644 (file)
@@ -204,7 +204,7 @@ typedef struct PartialVisibility {
 
 /* mtface->flag */
 #define TF_SELECT      1 /* use MFace hide flag (after 2.43), should be able to reuse after 2.44 */
-#define TF_ACTIVE      2
+#define TF_ACTIVE      2 /* deprecated! */
 #define TF_SEL1                4
 #define TF_SEL2                8
 #define TF_SEL3                16
index b1e295d835a187b280a65e3e38104c22d148586a..51ec3a9e1335029e9cd719cb61865e75eec135d6 100644 (file)
@@ -438,8 +438,8 @@ typedef struct Scene {
        
        ListBase markers;
        
-       short jumpframe;
-       short pad1, pad2, pad3;
+       short jumpframe, pad1;
+       short snap_flag, snap_target;
        
        /* none of the dependancy graph  vars is mean to be saved */
        struct  DagForest *theDag;
@@ -568,8 +568,12 @@ typedef struct Scene {
 
 /* base->flag is in DNA_object_types.h */
 
-/* sce->flag */
-#define SCE_ADDSCENAME         1
+/* scene->snap_flag */
+#define SCE_SNAP                               1
+/* scene->snap_target */
+#define SCE_SNAP_TARGET_CLOSEST        0
+#define SCE_SNAP_TARGET_CENTER 1
+#define SCE_SNAP_TARGET_MEDIAN 2
 
 /* sce->selectmode */
 #define SCE_SELECT_VERTEX      1
index 3e8d9d50d02abd1516136696a3645deecd9b7ee2..4c6cecba070d3e6f0f6c54b36e3d813a94499095 100644 (file)
@@ -232,20 +232,25 @@ typedef struct SpaceImage {
        
        struct CurveMapping *cumap;
        short mode, menunr;
-       short imanr, curtile;
+       short imanr;
+       short curtile; /* the currently active tile of the image when tile is enabled, is kept in sync with the active faces tile */
        int flag;
        short imtypenr, lock;
-       short showspare, pad2;
+       short showspare, pin;
        float zoom;
+       char dt_uv; /* UV draw type */
+       char sticky; /* sticky selection type */ 
+       char pad[6]; 
        
        float xof, yof;                                 /* user defined offset, image is centered */
        float centx, centy;                             /* storage for offset while render drawing */
        
        char *info_str, *info_spare;    /* info string for render */
        struct ImBuf *spare;
+       
 } SpaceImage;
 
-typedef struct SpaceNla{
+typedef struct SpaceNla {
        struct SpaceLink *next, *prev;
        int spacetype;
        float blockscale;
@@ -254,7 +259,8 @@ typedef struct SpaceNla{
        short blockhandler[8];
 
        short menunr, lock;
-       int flag;
+       short autosnap;                 /* this uses the same settings as autosnap for Action Editor */
+       short flag;
        
        View2D v2d;     
 } SpaceNla;
@@ -460,16 +466,21 @@ typedef struct SpaceImaSel {
 #define SI_TEXTURE             0
 #define SI_SHOW                        1
 
+#define SI_UVDT_DASH   0
+#define SI_UVDT_BLACK  1
+#define SI_UVDT_WHITE  2
+#define SI_UVDT_OUTLINE        3
+
 /* SpaceImage->flag */
 #define SI_BE_SQUARE   1<<0
 #define SI_EDITTILE            1<<1
 #define SI_CLIP_UV             1<<2
 #define SI_DRAWTOOL            1<<3
-#define SI_STICKYUVS    1<<4
+#define SI_DEPRECATED1    1<<4 /* stick UVs to others in the same location */
 #define SI_DRAWSHADOW   1<<5
 #define SI_SELACTFACE   1<<6
-#define SI_DEPRECATED  1<<7
-#define SI_LOCALSTICKY  1<<8
+#define SI_DEPRECATED2 1<<7
+#define SI_DEPRECATED3  1<<8   /* stick UV selection to mesh vertex (UVs wont always be touching) */
 #define SI_COORDFLOATS  1<<9
 #define SI_PIXELSNAP   1<<10
 #define SI_LIVE_UNWRAP 1<<11
@@ -480,6 +491,11 @@ typedef struct SpaceImaSel {
 #define SI_PREVSPACE   1<<15
 #define SI_FULLWINDOW  1<<16
 #define SI_SYNC_UVSEL  1<<17
+#define SI_LOCAL_UV            1<<18
+               /* this means that the image is drawn until it reaches the view edge,
+                * in the image view, its unrelated to the 'tile' mode for texface */
+#define SI_DRAW_TILE   1<<19 
+#define SI_SMOOTH_UV   1<<20 
 
 /* SpaceText flags (moved from DNA_text_types.h) */
 
@@ -570,6 +586,7 @@ typedef struct SpaceImaSel {
 /* nla->flag */
 #define SNLA_ALLKEYED          1
 #define SNLA_ACTIVELAYERS      2
+#define SNLA_DRAWTIME          4
 
 /* time->flag */
 #define TIME_DRAWFRAMES                1
index 064cfe39d45bedfdd9e15b9f4922d9214572943b..794d818d8fe3e5d3c7ce60d9dd6c67f6ffe327fc 100644 (file)
@@ -265,6 +265,7 @@ typedef struct TexMapping {
 #define TEX_PRV_NOR                    64
 #define TEX_REPEAT_XMIR                128
 #define TEX_REPEAT_YMIR                256
+#define TEX_FLAG_MASK          ( TEX_COLORBAND | TEX_FLIPBLEND | TEX_NEGALPHA | TEX_CHECKER_ODD | TEX_CHECKER_EVEN | TEX_PRV_ALPHA | TEX_PRV_NOR | TEX_REPEAT_XMIR | TEX_REPEAT_YMIR ) 
 
 /* extend (starts with 1 because of backward comp.) */
 #define TEX_EXTEND             1
index 945fe5e00d31c09373ff4d0bc19b8d8777770b8f..5860ca13a5d653a16c498683def2669a523a0cb0 100644 (file)
@@ -101,7 +101,7 @@ typedef struct ThemeSpace {
        
        char movie[4], image[4], scene[4], audio[4];            // for sequence editor
        char effect[4], plugin[4], transition[4], meta[4];
-       char bpad1[4]; 
+       char editmesh_active[4]; 
        
 } ThemeSpace;
 
index 53f2a5aceeb32fcdc2e57c1b0481734245bf3b9e..ee75d7b8f0fb86c2e7b47a19f2a2d034269b85d0 100644 (file)
@@ -137,7 +137,7 @@ typedef struct View3D {
        
        short gridsubdiv;       /* Number of subdivisions in the grid between each highlighted grid line */
        
-       short snap_target;
+       short pad3;
        
        short pad2;
        
@@ -168,15 +168,9 @@ typedef struct View3D {
 /* View3d->flag2 (short) */
 #define V3D_OPP_DIRECTION_NAME 1
 #define V3D_FLYMODE                            2
-#define V3D_TRANSFORM_SNAP             4
+#define V3D_DEPRECATED                 4 /* V3D_TRANSFORM_SNAP, moved to a scene setting */
 #define V3D_SOLID_TEX                  8
 
-/* View3d->snap_target */
-#define V3D_SNAP_TARGET_CLOSEST        0
-#define V3D_SNAP_TARGET_CENTER 1
-#define V3D_SNAP_TARGET_MEDIAN 2
-
-
 /* View3D->around */
 #define V3D_CENTER              0
 #define V3D_CENTROID    3
index 1eecbf3b63ed8670344e5258ec2a931a1555f7dd..ee68b81cde88e57564cd9550ed434387288b5e82 100644 (file)
@@ -257,7 +257,8 @@ static void defocus_blur(bNode *node, CompBuf *new, CompBuf *img, CompBuf *zbuf,
        if (camob && camob->type==OB_CAMERA) {
                Camera* cam = (Camera*)camob->data;
                cam_lens = cam->lens;
-               cam_fdist = (cam->YF_dofdist==0.f) ? 1e10f : cam->YF_dofdist;
+               cam_fdist = dof_camera(camob);
+               if (cam_fdist==0.0) cam_fdist = 1e10f; /* if the dof is 0.0 then set it be be far away */ 
                cam_invfdist = 1.f/cam_fdist;
        }
 
index 9bf9777ebe05a84634a1d9769651f744a030d7ea..4ddab661627dcbc6e044ae1150b8d24aa38e0421 100644 (file)
@@ -89,9 +89,20 @@ static void node_composit_exec_texture(void *data, bNode *node, bNodeStack **in,
        /* outputs: value, color, normal */
        
        if(node->id) {
+               RenderResult *rr= RE_GetResult(RE_GetRender(G.scene->id.name)); /* G.scene is WEAK! */
+               short sizex, sizey;
+               
                /* first make the preview image */
                CompBuf *prevbuf= alloc_compbuf(140, 140, CB_RGBA, 1); /* alloc */
                
+               if (rr) {
+                       sizex = rr->rectx;
+                       sizey = rr->recty;
+               } else {
+                       sizex = G.scene->r.xsch;
+                       sizey = G.scene->r.ysch;
+               }
+               
                prevbuf->rect_procedural= texture_procedural;
                prevbuf->node= node;
                composit1_pixel_processor(node, prevbuf, prevbuf, out[0]->vec, do_copy_rgba, CB_RGBA);
@@ -99,15 +110,15 @@ static void node_composit_exec_texture(void *data, bNode *node, bNodeStack **in,
                free_compbuf(prevbuf);
                
                if(out[0]->hasoutput) {
-                       CompBuf *stackbuf= alloc_compbuf(140, 140, CB_VAL, 1); /* alloc */
+                       CompBuf *stackbuf= alloc_compbuf(sizex, sizey, CB_VAL, 1); /* alloc */
                        
                        stackbuf->rect_procedural= texture_procedural;
                        stackbuf->node= node;
                        
-                       out[0]->data= stackbuf;
+                       out[0]->data= stackbuf; 
                }
                if(out[1]->hasoutput) {
-                       CompBuf *stackbuf= alloc_compbuf(140, 140, CB_RGBA, 1); /* alloc */
+                       CompBuf *stackbuf= alloc_compbuf(sizex, sizey, CB_RGBA, 1); /* alloc */
                        
                        stackbuf->rect_procedural= texture_procedural;
                        stackbuf->node= node;
index 515980bc563c83de047ab3271db906753a6a2e57..83f851606251704c803fc3f84f42b446890d36ba 100644 (file)
@@ -60,6 +60,7 @@
 #include "BKE_texture.h"
 #include "BKE_utildefines.h"
 #include "BKE_library.h"
+#include "BKE_object.h"
 
 #include "../CMP_node.h"
 #include "node_util.h"
index 97d9f221ab99ee35bde0fdbf19c6c246420bdbe8..28593f740be25804d7d139057cf50700471585b5 100644 (file)
@@ -1915,7 +1915,12 @@ void BPY_do_pyscript( ID * id, short event )
                /* invalid scriptlinks (new .blend was just loaded), return */
                if( during_slink < 0 )
                        return;
-
+               
+               if( !setup_armature_weakrefs()){
+                       printf("Oops - weakref dict\n");
+                       return;
+               }
+               
                /* tell we're running a scriptlink.  The sum also tells if this script
                 * is running nested inside another.  Blender.Load needs this info to
                 * avoid trouble with invalid slink pointers. */
index 23e6880bbfeb8e017f2e3cf992e1659a83c95a44..f6b443e5d06691971745a275efd8f3757bc17ed3 100644 (file)
@@ -1040,11 +1040,11 @@ static PyObject *Camera_insertIpoKey( BPy_Camera * self, PyObject * args )
                                                                                "expected int argument" ) );
 
        if (key == IPOKEY_LENS){
-               insertkey((ID *)self->camera, ID_CA, NULL, NULL, CAM_LENS);     
+               insertkey((ID *)self->camera, ID_CA, NULL, NULL, CAM_LENS, 0);     
        }
        else if (key == IPOKEY_CLIPPING){
-               insertkey((ID *)self->camera, ID_CA, NULL, NULL, CAM_STA);
-               insertkey((ID *)self->camera, ID_CA, NULL, NULL, CAM_END);   
+               insertkey((ID *)self->camera, ID_CA, NULL, NULL, CAM_STA, 0);
+               insertkey((ID *)self->camera, ID_CA, NULL, NULL, CAM_END, 0);   
        }
 
        allspace(REMAKEIPO, 0);
index f96cf1dfc55d4cd52689f09484676cae11e48061..4dddd274a0ef37e72785dfc43b7f35988e07f27b 100644 (file)
@@ -125,6 +125,8 @@ enum constraint_constants {
        EXPP_CONSTR_LIMYROT = LIMIT_YROT,
        EXPP_CONSTR_LIMZROT = LIMIT_ZROT,
        
+       EXPP_CONSTR_CLAMPCYCLIC,
+       
        EXPP_CONSTR_XMIN,
        EXPP_CONSTR_XMAX,
        EXPP_CONSTR_YMIN,
@@ -431,9 +433,9 @@ static PyObject *Constraint_insertKey( BPy_Constraint * self, PyObject * value )
                                "cannot get a curve from this IPO, may be using libdata" );
        
        if( ob->action )
-               insert_vert_ipo( icu, get_action_frame(ob, cfra), con->enforce);
+               insert_vert_icu( icu, get_action_frame(ob, cfra), con->enforce, 0);
        else
-               insert_vert_ipo( icu, cfra, con->enforce);
+               insert_vert_icu( icu, cfra, con->enforce, 0);
 
        Py_RETURN_NONE;
 }
@@ -887,6 +889,8 @@ static PyObject *clampto_getter( BPy_Constraint * self, int type )
                return Object_CreatePyObject( con->tar );
        case EXPP_CONSTR_CLAMP:
                return PyInt_FromLong( (long)con->flag );
+       case EXPP_CONSTR_CLAMPCYCLIC:
+               return PyBool_FromLong( (long)(con->flag2 & CLAMPTO_CYCLIC) );
        default:
                return EXPP_ReturnPyObjError( PyExc_KeyError, "key not found" );
        }
@@ -908,6 +912,8 @@ static int clampto_setter( BPy_Constraint *self, int type, PyObject *value )
        case EXPP_CONSTR_CLAMP:
                return EXPP_setIValueRange( value, &con->flag,
                                CLAMPTO_AUTO, CLAMPTO_Z, 'i' );
+       case EXPP_CONSTR_CLAMPCYCLIC:
+               return EXPP_setBitfield( value, &con->flag2, CLAMPTO_CYCLIC, 'i' );
        default:
                return EXPP_ReturnIntError( PyExc_KeyError, "key not found" );
        }
@@ -2418,6 +2424,8 @@ static PyObject *M_Constraint_SettingsDict( void )
                                PyInt_FromLong( CLAMPTO_Y ) );
                PyConstant_Insert( d, "CLAMPZ",
                                PyInt_FromLong( CLAMPTO_Z ) );
+               PyConstant_Insert( d, "CLAMPCYCLIC",
+                               PyInt_FromLong( EXPP_CONSTR_CLAMPCYCLIC ));
 
                PyConstant_Insert( d, "TARGET",
                                PyInt_FromLong( EXPP_CONSTR_TARGET ) );
index 73666b056951d25560df92dcc4dd629c6f476d61..9b2fd082bee157ca14b2535cc2539d0859e4a73c 100644 (file)
@@ -1483,7 +1483,7 @@ static int Ipo_setIpoCurveByName( BPy_Ipo * self, PyObject * key,
                icu->flag |= IPO_VISIBLE|IPO_AUTO_HORIZ;
                set_icu_vars( icu );
                BLI_addtail( &(ipo->curve), icu);
-               insert_vert_ipo( icu, time, curval );
+               insert_vert_icu( icu, time, curval, 0);
 
                allspace( REMAKEIPO, 0 );
                EXPP_allqueue( REDRAWIPO, 0 );
index 57ddc7541eb611a6437d953ec431f7e508a33765..b8f3c3f6dd02650a29ee87eb2227786ba9f01714 100644 (file)
@@ -531,7 +531,7 @@ static PyObject *IpoCurve_append( C_IpoCurve * self, PyObject * value )
                Py_DECREF( xobj );
                y = (float)PyFloat_AsDouble( yobj );
                Py_DECREF( yobj );
-               insert_vert_ipo( icu, x, y);
+               insert_vert_icu( icu, x, y, 0);
        }
 
        Py_RETURN_NONE;
@@ -745,7 +745,7 @@ static int IpoCurve_setCurval( C_IpoCurve * self, PyObject * key,
 
        /* insert a key at the specified time */
 
-       insert_vert_ipo( self->ipocurve, time, curval );
+       insert_vert_icu( self->ipocurve, time, curval, 0);
        allspace(REMAKEIPO, 0);
        return 0;
 }
index fc8a7809de19e13d490b5f2b2ddb81b93b0149f5..d40cc5a2cfc81f3af53443d770bd3eaae1e2080b 100644 (file)
@@ -1287,25 +1287,25 @@ static PyObject *Lamp_insertIpoKey( BPy_Lamp * self, PyObject * args )
        map = texchannel_to_adrcode(self->lamp->texact);
 
        if (key == IPOKEY_RGB ) {
-               insertkey((ID *)self->lamp, ID_LA, NULL, NULL, LA_COL_R);
-               insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_COL_G);
-               insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_COL_B);      
+               insertkey((ID *)self->lamp, ID_LA, NULL, NULL, LA_COL_R, 0);
+               insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_COL_G, 0);
+               insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_COL_B, 0);
        }
        if (key == IPOKEY_ENERGY ) {
-               insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_ENERGY);    
+               insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_ENERGY, 0);
        }       
        if (key == IPOKEY_SPOTSIZE ) {
-               insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_SPOTSI);    
+               insertkey((ID *)self->lamp, ID_LA, NULL, NULL,LA_SPOTSI, 0);
        }
        if (key == IPOKEY_OFFSET ) {
-               insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_OFS_X);
-               insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_OFS_Y);
-               insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_OFS_Z);  
+               insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_OFS_X, 0);
+               insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_OFS_Y, 0);
+               insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_OFS_Z, 0);
        }
        if (key == IPOKEY_SIZE ) {
-               insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_SIZE_X);
-               insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_SIZE_Y);
-               insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_SIZE_Z);  
+               insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_SIZE_X, 0);
+               insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_SIZE_Y, 0);
+               insertkey((ID *)self->lamp, ID_LA, NULL, NULL, map+MAP_SIZE_Z, 0);
        }
 
        allspace(REMAKEIPO, 0);
index 8eb716b1aee90acf622a0f2bb64258e4ec704607..851a46d51e59c8d86bfcef0f2989ee8594bdc641 100644 (file)
@@ -1691,58 +1691,58 @@ static PyObject *Material_insertIpoKey( BPy_Material * self, PyObject * args )
        map = texchannel_to_adrcode(self->material->texact);
        
        if(key==IPOKEY_RGB || key==IPOKEY_ALLCOLOR) {
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_COL_R);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_COL_G);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_COL_B);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_COL_R, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_COL_G, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_COL_B, 0);
        }
        if(key==IPOKEY_ALPHA || key==IPOKEY_ALLCOLOR) {
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_ALPHA);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_ALPHA, 0);
        }
        if(key==IPOKEY_HALOSIZE || key==IPOKEY_ALLCOLOR) {
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_HASIZE);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_HASIZE, 0);
        }
        if(key==IPOKEY_MODE || key==IPOKEY_ALLCOLOR) {
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_MODE);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_MODE, 0);
        }
        if(key==IPOKEY_ALLCOLOR) {
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC_R);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC_G);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC_B);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_REF);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_EMIT);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_AMB);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_HARD);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_MODE);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_TRANSLU);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_ADD);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC_R, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC_G, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC_B, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_REF, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_EMIT, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_AMB, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_SPEC, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_HARD, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_MODE, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_TRANSLU, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_ADD, 0);
        }
        if(key==IPOKEY_ALLMIRROR) {
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_RAYM);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESMIR);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESMIRI);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESTRA);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESTRAI);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_RAYM, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESMIR, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESMIRI, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESTRA, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, MA_FRESTRAI, 0);
        }
        if(key==IPOKEY_OFS || key==IPOKEY_ALLMAPPING) {
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_OFS_X);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_OFS_Y);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_OFS_Z);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_OFS_X, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_OFS_Y, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_OFS_Z, 0);
        }
        if(key==IPOKEY_SIZE || key==IPOKEY_ALLMAPPING) {
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_SIZE_X);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_SIZE_Y);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_SIZE_Z);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_SIZE_X, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_SIZE_Y, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_SIZE_Z, 0);
        }
        if(key==IPOKEY_ALLMAPPING) {
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_R);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_G);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_B);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_DVAR);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_COLF);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_NORF);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_VARF);
-               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_DISP);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_R, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_G, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_B, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_DVAR, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_COLF, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_NORF, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_VARF, 0);
+               insertkey((ID *)self->material, ID_MA, NULL, NULL, map+MAP_DISP, 0);
        }
 
        allspace(REMAKEIPO, 0);
index d2cc1edf3c3cc480363c3f745447be1027338b23..659ecd79d8186cf30f8d31260a9c97fd434b1bbe 100644 (file)
@@ -4077,7 +4077,7 @@ static int MFace_setImage( BPy_MFace *self, PyObject *value )
        return 0;
 }
 
-#define MFACE_FLAG_BITMASK ( TF_SELECT | TF_ACTIVE | TF_SEL1 | \
+#define MFACE_FLAG_BITMASK ( TF_SELECT | TF_SEL1 | \
                TF_SEL2 | TF_SEL3 | TF_SEL4 | TF_HIDE )
 
 /*
@@ -4086,6 +4086,7 @@ static int MFace_setImage( BPy_MFace *self, PyObject *value )
 
 static PyObject *MFace_getFlag( BPy_MFace *self )
 {
+       int flag;
        if( !self->mesh->mtface )
                return EXPP_ReturnPyObjError( PyExc_ValueError,
                                "face has no texture values" );
@@ -4093,8 +4094,13 @@ static PyObject *MFace_getFlag( BPy_MFace *self )
        if( !MFace_get_pointer( self ) )
                return NULL;
 
-       return PyInt_FromLong( (long) ( self->mesh->mtface[self->index].flag
-                       & MFACE_FLAG_BITMASK ) );
+       flag = self->mesh->mtface[self->index].flag & MFACE_FLAG_BITMASK;
+       
+       /* so old scripts still work */
+       if (self->index == self->mesh->act_face)
+               flag |= TF_ACTIVE;
+               
+       return PyInt_FromLong( (long)( flag ) );
 }
 
 /*
@@ -4128,7 +4134,7 @@ static int MFace_setFlag( BPy_MFace *self, PyObject *value )
                                                "invalid bit(s) set in mask" );
 
        /* merge active setting with other new params */
-       param |= (self->mesh->mtface[self->index].flag & TF_ACTIVE);
+       param |= (self->mesh->mtface[self->index].flag);
        self->mesh->mtface[self->index].flag = (char)param;
 
        return 0;
@@ -7869,27 +7875,19 @@ static PyObject *Mesh_getKey( BPy_Mesh * self )
 
 static PyObject *Mesh_getActiveFace( BPy_Mesh * self )
 {
-       MTFace *face;
-       int i, totface;
-
+       /* not needed but keep incase exceptions make use of it */
        if( !self->mesh->mtface )
                return EXPP_ReturnPyObjError( PyExc_ValueError,
                                "face has no texture values" );
 
-       face = self->mesh->mtface;
-       totface = self->mesh->totface;
-
-       for( i = 0; i < totface; ++face, ++i )
-               if( face->flag & TF_ACTIVE ) {
-                       return PyInt_FromLong( i );
-               }
-
+       if (self->mesh->act_face != -1 && self->mesh->act_face <= self->mesh->totface)
+               return PyInt_FromLong( self->mesh->act_face );
+       
        Py_RETURN_NONE;
 }
 
 static int Mesh_setActiveFace( BPy_Mesh * self, PyObject * value )
 {
-       MTFace *face;
        int param;
 
        /* if no texture faces, error */
@@ -7910,18 +7908,8 @@ static int Mesh_setActiveFace( BPy_Mesh * self, PyObject * value )
        if( param < 0 || param > self->mesh->totface )
                return EXPP_ReturnIntError( PyExc_TypeError,
                                "face index out of range" );
-
-       face = self->mesh->mtface;
-
-       /* if requested face isn't already active, then inactivate all
-        * faces and activate the requested one */
-
-       if( !( face[param].flag & TF_ACTIVE ) ) {
-               int i;
-               for( i = self->mesh->totface; i > 0; ++face, --i )
-                       face->flag &= ~TF_ACTIVE;
-               self->mesh->mtface[param].flag |= TF_ACTIVE;
-       }
+       
+       self->mesh->act_face = param;
        return 0;
 }
 
@@ -8500,7 +8488,7 @@ static PyObject *M_Mesh_FaceFlagsDict( void )
 
                PyConstant_Insert( d, "SELECT", PyInt_FromLong( TF_SELECT ) );
                PyConstant_Insert( d, "HIDE", PyInt_FromLong( TF_HIDE ) );
-               PyConstant_Insert( d, "ACTIVE", PyInt_FromLong( TF_ACTIVE ) );
+               PyConstant_Insert( d, "ACTIVE", PyInt_FromLong( TF_ACTIVE ) ); /* deprecated */
        }
 
        return FF;
index 51d6fc1a2b6b0b24f65075d5d15b9df2b898bcd8..e50c9678606139e2771f8a8865f5b2a0635c7a3d 100644 (file)
@@ -1978,20 +1978,11 @@ static BPy_NMVert *nmvert_from_data( MVert * vert, MSticky * st, float *co,
 
 static int get_active_faceindex( Mesh * me )
 {
-       MTFace *tf;
-       int i;
-
        if( me == NULL )
                return -1;
 
-       tf = me->mtface;
-       if( tf == 0 )
-               return -1;
-
-       for( i = 0; i < me->totface; i++ )
-               if( tf[i].flag & TF_ACTIVE )
-                       return i;
-
+       if (me->act_face != -1 && me->act_face < me->totface)
+               return me->act_face; 
        return -1;
 }
 
index b02a932aa39d79cbcdb45616ee4bcf869ad588a4..e62f685cdf510133b87b89d1ea721012463d4eb0 100644 (file)
@@ -2358,31 +2358,31 @@ static PyObject *Object_insertIpoKey( BPy_Object * self, PyObject * args )
                actname= "Object";
        
        if (key == IPOKEY_LOC || key == IPOKEY_LOCROT || key == IPOKEY_LOCROTSIZE){
-               insertkey((ID *)ob, ID_OB, actname, NULL,OB_LOC_X);
-               insertkey((ID *)ob, ID_OB, actname, NULL,OB_LOC_Y);
-               insertkey((ID *)ob, ID_OB, actname, NULL,OB_LOC_Z);      
+               insertkey((ID *)ob, ID_OB, actname, NULL,OB_LOC_X, 0);
+               insertkey((ID *)ob, ID_OB, actname, NULL,OB_LOC_Y, 0);
+               insertkey((ID *)ob, ID_OB, actname, NULL,OB_LOC_Z, 0);      
        }
        if (key == IPOKEY_ROT || key == IPOKEY_LOCROT || key == IPOKEY_LOCROTSIZE){
-               insertkey((ID *)ob, ID_OB, actname, NULL,OB_ROT_X);
-               insertkey((ID *)ob, ID_OB, actname, NULL,OB_ROT_Y);
-               insertkey((ID *)ob, ID_OB, actname, NULL,OB_ROT_Z);      
+               insertkey((ID *)ob, ID_OB, actname, NULL,OB_ROT_X, 0);
+               insertkey((ID *)ob, ID_OB, actname, NULL,OB_ROT_Y, 0);
+               insertkey((ID *)ob, ID_OB, actname, NULL,OB_ROT_Z, 0);      
        }
        if (key == IPOKEY_SIZE || key == IPOKEY_LOCROTSIZE ){
-               insertkey((ID *)ob, ID_OB, actname, NULL,OB_SIZE_X);
-               insertkey((ID *)ob, ID_OB, actname, NULL,OB_SIZE_Y);
-               insertkey((ID *)ob, ID_OB, actname, NULL,OB_SIZE_Z);      
+               insertkey((ID *)ob, ID_OB, actname, NULL,OB_SIZE_X, 0);
+               insertkey((ID *)ob, ID_OB, actname, NULL,OB_SIZE_Y, 0);
+               insertkey((ID *)ob, ID_OB, actname, NULL,OB_SIZE_Z, 0);      
        }
 
        if (key == IPOKEY_PI_STRENGTH ){
-               insertkey((ID *)ob, ID_OB, actname, NULL, OB_PD_FSTR);   
+               insertkey((ID *)ob, ID_OB, actname, NULL, OB_PD_FSTR, 0);   
        } else if (key == IPOKEY_PI_FALLOFF ){
-               insertkey((ID *)ob, ID_OB, actname, NULL, OB_PD_FFALL);   
+               insertkey((ID *)ob, ID_OB, actname, NULL, OB_PD_FFALL, 0);   
        } else if (key == IPOKEY_PI_SURFACEDAMP ){
-               insertkey((ID *)ob, ID_OB, actname, NULL, OB_PD_SDAMP);   
+               insertkey((ID *)ob, ID_OB, actname, NULL, OB_PD_SDAMP, 0);   
        } else if (key == IPOKEY_PI_RANDOMDAMP ){
-               insertkey((ID *)ob, ID_OB, actname, NULL, OB_PD_RDAMP);   
+               insertkey((ID *)ob, ID_OB, actname, NULL, OB_PD_RDAMP, 0);   
        } else if (key == IPOKEY_PI_PERM ){
-               insertkey((ID *)ob, ID_OB, actname, NULL, OB_PD_PERM);   
+               insertkey((ID *)ob, ID_OB, actname, NULL, OB_PD_PERM, 0);   
        }
 
        allspace(REMAKEIPO, 0);
@@ -2425,16 +2425,16 @@ static PyObject *Object_insertPoseKey( BPy_Object * self, PyObject * args )
        /* XXX: must check chanName actually exists, otherwise segfaults! */
        //achan = get_action_channel(sourceact->action, chanName);
 
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_LOC_X);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_LOC_Y);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_LOC_Z);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_X);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_Y);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_Z);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_W);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_SIZE_X);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_SIZE_Y);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_SIZE_Z);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_LOC_X, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_LOC_Y, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_LOC_Z, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_X, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_Y, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_Z, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_W, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_SIZE_X, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_SIZE_Y, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_SIZE_Z, 0);
        
        G.scene->r.cfra = oldframe;
 
@@ -2471,16 +2471,16 @@ static PyObject *Object_insertCurrentPoseKey( BPy_Object * self, PyObject * args
 
        /* XXX: must check chanName actually exists, otherwise segfaults! */
 
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_LOC_X);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_LOC_Y);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_LOC_Z);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_X);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_Y);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_Z);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_W);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_SIZE_X);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_SIZE_Y);
-       insertkey(&ob->id, ID_PO, chanName, NULL, AC_SIZE_Z);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_LOC_X, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_LOC_Y, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_LOC_Z, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_X, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_Y, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_Z, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_QUAT_W, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_SIZE_X, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_SIZE_Y, 0);
+       insertkey(&ob->id, ID_PO, chanName, NULL, AC_SIZE_Z, 0);
 
        G.scene->r.cfra = oldframe;
 
@@ -2517,7 +2517,7 @@ static PyObject *Object_setConstraintInfluenceForBone( BPy_Object * self,
                return EXPP_ReturnPyObjError( PyExc_RuntimeError,
                                "cannot get a curve from this IPO, may be using libdata" );             
        
-       insert_vert_ipo(icu, (float)CFRA, influence);
+       insert_vert_icu(icu, (float)CFRA, influence, 0);
        self->object->recalc |= OB_RECALC_OB;  
 
        Py_RETURN_NONE;
index 47ae96b2286939533027f1fcde99431ced7f2f66..34807c4a85c39e7eaf5fccaa51d5dc44b6fc28b3 100644 (file)
@@ -422,7 +422,11 @@ static PyObject *PoseBone_insertKey(BPy_PoseBone *self, PyObject *args)
 
        if (!PyArg_ParseTuple(args, "O!i|Oi", &Object_Type, &parent_object, &frame, &constants, &no_ipo_update ))
                goto AttributeError;
-
+       
+       /* incase we ever have a value other then 1 for fast */
+       if (no_ipo_update)
+               no_ipo_update = 1;
+       
        //verify that this pchannel is part of the object->pose
        for (pchan = ((BPy_Object*)parent_object)->object->pose->chanbase.first; 
                pchan; pchan = pchan->next){
@@ -487,40 +491,40 @@ static PyObject *PoseBone_insertKey(BPy_PoseBone *self, PyObject *args)
        //add the action channel if it's not there
        verify_action_channel(((BPy_Object*)parent_object)->object->action, 
                self->posechannel->name);
-
+       
        //insert the pose keys
        if (self->posechannel->flag & POSE_ROT){
                insertkey(&((BPy_Object*)parent_object)->object->id, 
-                       ID_PO, self->posechannel->name, NULL, AC_QUAT_X);
+                       ID_PO, self->posechannel->name, NULL, AC_QUAT_X, no_ipo_update);
                insertkey(&((BPy_Object*)parent_object)->object->id, 
-                       ID_PO, self->posechannel->name, NULL, AC_QUAT_Y);
+                       ID_PO, self->posechannel->name, NULL, AC_QUAT_Y, no_ipo_update);
                insertkey(&((BPy_Object*)parent_object)->object->id, 
-                       ID_PO, self->posechannel->name, NULL, AC_QUAT_Z);
+                       ID_PO, self->posechannel->name, NULL, AC_QUAT_Z, no_ipo_update);
                insertkey(&((BPy_Object*)parent_object)->object->id, 
-                       ID_PO, self->posechannel->name, NULL, AC_QUAT_W);
+                       ID_PO, self->posechannel->name, NULL, AC_QUAT_W, no_ipo_update);
        }
        if (self->posechannel->flag & POSE_LOC){
                insertkey(&((BPy_Object*)parent_object)->object->id, 
-                       ID_PO, self->posechannel->name, NULL, AC_LOC_X);
+                       ID_PO, self->posechannel->name, NULL, AC_LOC_X, no_ipo_update);
                insertkey(&((BPy_Object*)parent_object)->object->id, 
-                       ID_PO, self->posechannel->name, NULL, AC_LOC_Y);
+                       ID_PO, self->posechannel->name, NULL, AC_LOC_Y, no_ipo_update);
                insertkey(&((BPy_Object*)parent_object)->object->id, 
-                       ID_PO, self->posechannel->name, NULL, AC_LOC_Z);
+                       ID_PO, self->posechannel->name, NULL, AC_LOC_Z, no_ipo_update);
        }
        if (self->posechannel->flag & POSE_SIZE){
                insertkey(&((BPy_Object*)parent_object)->object->id, 
-                       ID_PO, self->posechannel->name, NULL, AC_SIZE_X);
+                       ID_PO, self->posechannel->name, NULL, AC_SIZE_X, no_ipo_update);
                insertkey(&((BPy_Object*)parent_object)->object->id, 
-                       ID_PO, self->posechannel->name, NULL, AC_SIZE_Y);
+                       ID_PO, self->posechannel->name, NULL, AC_SIZE_Y, no_ipo_update);
                insertkey(&((BPy_Object*)parent_object)->object->id, 
-                       ID_PO, self->posechannel->name, NULL, AC_SIZE_Z);
+                       ID_PO, self->posechannel->name, NULL, AC_SIZE_Z, no_ipo_update);
        }
 
        //flip the frame back
        G.scene->r.cfra = oldframe;
 
        //update the IPOs
-       if (!no_ipo_update)
+       if (no_ipo_update==0)
                remake_action_ipos (((BPy_Object*)parent_object)->object->action);
 
        Py_RETURN_NONE;
index 2f2443eef8883ca3d148462d7df0db65cbe3d42d..34906757ebd5f1ade4d9a3232fe420667f48b210 100644 (file)
@@ -203,11 +203,14 @@ static const EXPP_map_pair tex_type_map[] = {
 
 static const EXPP_map_pair tex_flag_map[] = {
 /* NOTE "CheckerOdd" and "CheckerEven" are new */
-    {"ColorBand",  TEX_COLORBAND },
+       {"ColorBand",  TEX_COLORBAND },
        {"FlipBlend", TEX_FLIPBLEND},
        {"NegAlpha", TEX_NEGALPHA},
        {"CheckerOdd",TEX_CHECKER_ODD},
        {"CheckerEven",TEX_CHECKER_EVEN},
+       {"PreviewAlpha",TEX_PRV_ALPHA},
+       {"RepeatXMirror",TEX_REPEAT_XMIR},
+       {"RepeatYMirror",TEX_REPEAT_YMIR}, 
        {NULL, 0}
 };
 
@@ -1162,6 +1165,9 @@ static PyObject *M_Texture_FlagsDict( void )
                PyConstant_Insert(d, "NEGALPHA", PyInt_FromLong(TEX_NEGALPHA));
                PyConstant_Insert(d, "CHECKER_ODD", PyInt_FromLong(TEX_CHECKER_ODD)); 
                PyConstant_Insert(d, "CHECKER_EVEN", PyInt_FromLong(TEX_CHECKER_EVEN));
+               PyConstant_Insert(d, "PREVIEW_ALPHA", PyInt_FromLong(TEX_PRV_ALPHA));
+               PyConstant_Insert(d, "REPEAT_XMIR", PyInt_FromLong(TEX_REPEAT_XMIR));
+               PyConstant_Insert(d, "REPEAT_YMIR", PyInt_FromLong(TEX_REPEAT_YMIR));
        }
        return Flags;
 }
@@ -1528,20 +1534,15 @@ static int Texture_setFilterSize( BPy_Texture * self, PyObject * value )
 static int Texture_setFlags( BPy_Texture * self, PyObject * value )
 {
        int param;
-       int bitmask = TEX_FLIPBLEND
-                                       | TEX_COLORBAND
-                                       | TEX_NEGALPHA
-                                       | TEX_CHECKER_ODD
-                                       | TEX_CHECKER_EVEN;
 
        if( !PyInt_Check( value ) ) {
                char errstr[128];
-               sprintf ( errstr , "expected int bitmask of 0x%08x", bitmask );
+               sprintf ( errstr , "expected int bitmask of 0x%08x", TEX_FLAG_MASK );
                return EXPP_ReturnIntError( PyExc_TypeError, errstr );
        }
        param = PyInt_AS_LONG ( value );
 
-       if ( ( param & bitmask ) != param )
+       if ( ( param & TEX_FLAG_MASK ) != param )
                return EXPP_ReturnIntError( PyExc_ValueError,
                                                "invalid bit(s) set in mask" );
 
index 6d5b20b46d95e3f19a7740feea78cf64c9e49daf..7804a443639a26f9a295381413acd42864130b29 100644 (file)
@@ -991,37 +991,37 @@ static PyObject *World_insertIpoKey( BPy_World * self, PyObject * args )
        map = texchannel_to_adrcode(self->world->texact);
 
        if(key == IPOKEY_ZENITH) {
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_ZEN_R);
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_ZEN_G);
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_ZEN_B);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_ZEN_R, 0);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_ZEN_G, 0);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_ZEN_B, 0);
        }
        if(key == IPOKEY_HORIZON) {
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_HOR_R);
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_HOR_G);
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_HOR_B);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_HOR_R, 0);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_HOR_G, 0);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_HOR_B, 0);
        }
        if(key == IPOKEY_MIST) {
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_MISI);
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_MISTDI);
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_MISTSTA);
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_MISTHI);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_MISI, 0);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_MISTDI, 0);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_MISTSTA, 0);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_MISTHI, 0);
        }
        if(key == IPOKEY_STARS) {
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_STAR_R);
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_STAR_G);
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_STAR_B);
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_STARDIST);
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_STARSIZE);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_STAR_R, 0);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_STAR_G, 0);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_STAR_B, 0);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_STARDIST, 0);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, WO_STARSIZE, 0);
        }
        if(key == IPOKEY_OFFSET) {
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, map+MAP_OFS_X);
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, map+MAP_OFS_Y);
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, map+MAP_OFS_Z);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, map+MAP_OFS_X, 0);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, map+MAP_OFS_Y, 0);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, map+MAP_OFS_Z, 0);
        }
        if(key == IPOKEY_SIZE) {
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, map+MAP_SIZE_X);
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, map+MAP_SIZE_Y);
-               insertkey((ID *)self->world, ID_WO, NULL, NULL, map+MAP_SIZE_Z);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, map+MAP_SIZE_X, 0);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, map+MAP_SIZE_Y, 0);
+               insertkey((ID *)self->world, ID_WO, NULL, NULL, map+MAP_SIZE_Z, 0);
        }
 
        allspace(REMAKEIPO, 0);
index bb81d2cba7a572b6ba8de59ddadffa70a30d7006..4c1981c523845ca69161b4be150c0c5098ced9a2 100644 (file)
@@ -86,6 +86,7 @@ Or to print all the constraints attached to each bone in a pose::
                - LOCK (int): values are LOCKX, LOCKY, LOCKZ
        - Used by Clamp To (CLAMPTO) constraint:
                - CLAMP (int): values are CLAMPAUTO, CLAMPX, CLAMPY, CLAMPZ
+               - CLAMPCYCLIC (bool)
        - Used by Floor (FLOOR) constraint:
                - MINMAX (int): values are MINX, MINY, MINZ, MAXX, MAXY, MAXZ
                - OFFSET (float): clamped to [-100.0,100.0]
index 93d3e7d830ecca6f42b84c132802581d50a9b12e..77e33e143f5b3084b3bebbbd64de3a13b78185fb 100644 (file)
@@ -357,6 +357,8 @@ class SceneObjects:
        @type context: sequence of L{Object}
        @ivar active: the active object in the scene.
        @type active: L{Object}
+       @ivar camera: the active camera in the scene.
+       @type camera: L{Object}
        """
 
        def new(data):
index 684897c8635e8fba5d7291e765ff816b0f0a94db..004cd2df274ba27f4677eb4c8a18b6b835fe7f79 100644 (file)
@@ -60,6 +60,9 @@ Example::
                - CHECKER_ODD - Fill the "odd" checkerboard tiles
                - CHECKER_EVEN - Fill the "even" checkerboard tiles
                - COLORBAND - Enable colorband for this texture
+        - PREVIEW_ALPHA - Show alpha in preview
+        - REPEAT_XMIR - Mirrors X direction repeat
+        - REPEAT_YMIR - Mirrors Y direction repeat
 
 @type ImageFlags: readonly dictionary
 @var ImageFlags: The available image flags for Texture.imageFlags:
index 182a147e86d65834a6fc5875ae59337928b48bf4..6a27d59436e4028c5777e78c00b5ede37f192eb6 100644 (file)
@@ -172,6 +172,7 @@ static PyObject *ThemeSpace_getAttr( BPy_ThemeSpace * self, char *name )
                ELSEIF_TSP_RGBA( edge_select )
                ELSEIF_TSP_RGBA( edge_seam )
                ELSEIF_TSP_RGBA( edge_sharp )
+               ELSEIF_TSP_RGBA( editmesh_active )
                ELSEIF_TSP_RGBA( edge_facesel )
                ELSEIF_TSP_RGBA( face )
                ELSEIF_TSP_RGBA( face_select )
@@ -199,13 +200,13 @@ static PyObject *ThemeSpace_getAttr( BPy_ThemeSpace * self, char *name )
                else if( !strcmp( name, "facedot_size" ) )
                attrib = Py_BuildValue( "i", tsp->facedot_size );
        else if( !strcmp( name, "__members__" ) )
-               attrib = Py_BuildValue("[sssssssssssssssssssssssssssssssssssssssssssssss]", "theme",
+               attrib = Py_BuildValue("[ssssssssssssssssssssssssssssssssssssssssssssssss]", "theme",
                                        "back", "text", "text_hi", "header",
                                        "panel", "shade1", "shade2", "hilite",
                                        "grid", "wire", "select", "lamp", "active",
                                        "group", "group_active",
                                        "transform", "vertex", "vertex_select",
-                                       "edge", "edge_select", "edge_seam", "edge_sharp",
+                                       "edge", "edge_select", "edge_seam", "edge_sharp", "editmesh_active",
                                        "edge_facesel", "face", "face_select",
                                        "face_dot", "normal", "bone_solid", "bone_pose",
                                        "strip", "strip_select",
index 03f5fb03fea3009695fd719d949c32ad0cf6ef0a..77767467d05ddf3558a29bb8ecb397429070f035 100644 (file)
@@ -736,8 +736,8 @@ static void QMC_freeSampler(QMCSampler *qsa)
 static void QMC_getSample(double *s, QMCSampler *qsa, int thread, int num)
 {
        if (qsa->type == SAMP_TYPE_HAMMERSLEY) {
-               s[0] = fmodf(qsa->samp2d[2*num+0] + qsa->offs[thread][0], 1.0f);
-               s[1] = fmodf(qsa->samp2d[2*num+1] + qsa->offs[thread][1], 1.0f);
+               s[0] = fmod(qsa->samp2d[2*num+0] + qsa->offs[thread][0], 1.0f);
+               s[1] = fmod(qsa->samp2d[2*num+1] + qsa->offs[thread][1], 1.0f);
        }
        else { /* SAMP_TYPE_HALTON */
                s[0] = qsa->samp2d[2*num+0];
@@ -831,7 +831,7 @@ void free_render_qmcsampler(Render *re)
 static int adaptive_sample_variance(int samples, float *col, float *colsq, float thresh)
 {
        float var[3], mean[3];
-       
+
        /* scale threshold just to give a bit more precision in input rather than dealing with 
         * tiny tiny numbers in the UI */
        thresh /= 2;
@@ -843,7 +843,7 @@ static int adaptive_sample_variance(int samples, float *col, float *colsq, float
        var[0] = (colsq[0] / (float)samples) - (mean[0]*mean[0]);
        var[1] = (colsq[1] / (float)samples) - (mean[1]*mean[1]);
        var[2] = (colsq[2] / (float)samples) - (mean[2]*mean[2]);
-
+       
        if ((var[0] * 0.4 < thresh) && (var[1] * 0.3 < thresh) && (var[2] * 0.6 < thresh))
                return 1;
        else
@@ -1658,11 +1658,13 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, float *lampco, float *
        float samp3d[3], jit[3];
 
        float fac=0.0f, vec[3];
+       float colsq[4];
        float adapt_thresh = lar->adapt_thresh;
        int max_samples = lar->ray_totsamp;
        float pos[3];
        int do_soft=1;
 
+       colsq[0] = colsq[1] = colsq[2] = 0.0;
        if(isec->mode==RE_RAY_SHADOW_TRA) {
                shadfac[0]= shadfac[1]= shadfac[2]= shadfac[3]= 0.0f;
        } else
@@ -1756,6 +1758,11 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, float *lampco, float *
                        shadfac[1] += isec->col[1];
                        shadfac[2] += isec->col[2];
                        shadfac[3] += isec->col[3];
+                       
+                       /* for variance calc */
+                       colsq[0] += isec->col[0]*isec->col[0];
+                       colsq[1] += isec->col[1]*isec->col[1];
+                       colsq[2] += isec->col[2]*isec->col[2];
                }
                else {
                        if( RE_ray_tree_intersect(R.raytree, isec) ) fac+= 1.0f;
@@ -1764,9 +1771,18 @@ static void ray_shadow_qmc(ShadeInput *shi, LampRen *lar, float *lampco, float *
                samples++;
                
                if ((lar->ray_samp_method == LA_SAMP_HALTON)) {
+               
                        /* adaptive sampling - consider samples below threshold as in shadow (or vice versa) and exit early */
-                       if ((do_soft) && (adapt_thresh > 0.0)) {
-                               if ( (samples > max_samples/3) && ((fac / samples > (1.0-adapt_thresh)) || (fac / samples < adapt_thresh)) ) break;
+                       if ((max_samples > 4) && (adapt_thresh > 0.0) && (samples > max_samples / 3)) {
+                               if (isec->mode==RE_RAY_SHADOW_TRA) {
+                                       if ((shadfac[3] / samples > (1.0-adapt_thresh)) || (shadfac[3] / samples < adapt_thresh))
+                                               break;
+                                       else if (adaptive_sample_variance(samples, shadfac, colsq, adapt_thresh))
+                                               break;
+                               } else {
+                                       if ((fac / samples > (1.0-adapt_thresh)) || (fac / samples < adapt_thresh))
+                                               break;
+                               }
                        }
                }
        }
index c80521df604f887c9f572f17b29540267459702e..064bd1c65dd4d7d07b895b6192081152ace93580 100644 (file)
 /* DataToC output of file <blenderbuttons> */
 
-int datatoc_blenderbuttons_size= 66177;
+int datatoc_blenderbuttons_size= 66284;
 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,  6,  0,  0,  0,197,144,206,103,
-  0,  0,  0,  6, 98, 75, 71, 68,  0,255,  0,255,  0,255,160,189,167,147,  0,  0,  0,  9,112, 72, 89,115,  0,  0, 11, 19,  0,  0,
- 11, 19,  1,  0,154,156, 24,  0,  0,  0,  7,116, 73, 77, 69,  7,215,  8, 19, 12, 42, 10, 55,151,233,213,  0,  0, 32,  0, 73, 68,
- 65, 84,120,218,236, 93,121, 92, 84, 85,255,126,206,157,157,125, 17, 81,113,  1, 21,215, 92,192, 61,151, 24,  3, 75,127,165,169,
-160,153, 37,165,111, 76,166,173,246,106,219,251,150,111,166,185, 85,190, 89, 58,190,165,105,169, 37,168,105,185, 36,232,160,166,
-228,174, 88, 46, 40,138,  8,138,224, 48, 48,195,108,119,102,238,249,253, 49, 51, 52, 32,195, 44,160, 97,205,243,113, 62,204,189,
-115,239,215,115,239, 57,231,251,124,151,179,144,222,189,123, 83,248,224,131, 15, 62,248,224,131, 15,127, 43, 48,190, 87,224,131,
- 15, 62,248,224,131, 15,127, 31,156, 60,149,  5,  0, 32,190,  8,128, 15, 62,248,224,131, 15, 62,248, 34,  0, 62,248,224,131, 15,
- 62,248,224,131,207,  0,240,193,  7, 31,124,240,193,  7, 31,124,  6,128, 15, 62,248,224,131, 15, 62,248,240,151,  0,223,241, 96,
-250,244,233,196, 91, 65, 43, 86,172,184, 99, 44,129, 79,158, 79, 94, 61,160, 43, 86,172,248,211,202,151,157,157, 77, 19, 18, 18,
-136,175, 62,238, 95,121,167, 79,159,246,186,241,245,238,221, 27,190,250,104,218,242, 78,157, 58,229,181,188,184,184,184,191,189,
- 60,143, 13,128,191, 51,100, 50, 89,141, 23, 40,151,203, 73, 83, 46,231,202,149, 43, 65,  8, 33,190,154,243,174,142, 39, 77,154,
-132,140,140,140,234,227,228,228,228,191,196,187,220,185,235,100,189,138, 96,212,200,248,191,116,155,145,132,110,133,216,208, 17,
- 49, 96, 81,133, 93,200,211,191,219,100,219, 98, 83,213, 49, 62,252, 77, 35,  0,247,162,177,238,220,185, 51, 97,219,182,109, 10,
-251,241,152, 49, 99,164,163, 70,141,202,110, 10, 47,131, 82,171,238,108,170,188, 42,147,201,104, 65, 65,  1,  0, 32, 58, 58, 26,
-  0,238, 11, 37, 82,219,184,178, 25, 88, 78, 61,115,119,229,110,220,184,209,109, 67, 77, 38,147,209, 77,155, 54, 85, 31,111,221,
-186, 21, 73, 73, 73,213,199, 25, 25, 25,244,207, 50,  2,250,244,233, 67,  1,224,196,137, 19,164, 49,174,219,246,131,188, 30,  3,
- 64,222,224,250,139,138,105,  3,  0,184,101, 48,192,172, 55, 90, 79, 86,168,  1,  0, 41, 41, 41, 72, 76, 76,116, 90,190, 85,137,
-171,104,236,205, 88,143,254,127,233,239, 82, 55,234, 69,130,208, 23,207,194,176,109, 43, 84,170,177, 80,  1,136,151, 44,198,187,
-146, 19,104, 35,  6,202, 12,249,120, 87, 63,193,163,255, 55, 43, 43, 43, 33, 61, 61, 93,225,120, 46, 37, 37, 69,154,152,152,152,
-221,148,250, 86, 99,233,128,251,225,121,239,  6, 90, 53, 19,147,  0, 65, 48, 49,138,133,212, 88,161,103,170,244,106,174,202,192,
-254, 45,102,199,185, 52,  0,118,238,220,153, 96,255,219, 80,162,182, 43,146,185,155,230, 33,160, 77, 48,170,174, 87,226,189,  9,
-239, 42,182,109,219,  6,159, 53,236, 26,114,185,156, 68, 71, 71,211,130,130,  2, 20, 20, 20, 96,247,238,221, 77,214,147,176,215,
-181, 92, 46, 39,114,185, 92, 32,147,201, 76,139, 22, 45, 58,  6,  0,179,103,207,238, 87,223,189, 99,199,142,173,254,110, 54, 91,
-192,154,140, 96,141, 44, 88,214,250, 49,155,205,152, 61,123,182, 71,101,113, 36,255,186,144,148,148,244,167, 26,  1,238, 24, 63,
-125,250,244,113, 41, 99,212,200,120,226, 13,201,187,141,144, 32,228, 94,249, 14, 18,180,134,  5,135, 80,250,229, 73,156,201, 87,
- 98,220, 71,107,220,186, 61,246,102,172,155,132,110,133,162,187,194,165, 34,150,140,122, 23, 97, 99,166,161,248,213,120, 64,175,
-170, 62,127, 82,255, 79,156,  4,  0, 61, 48, 76,146,130,189,161, 39, 16,  2,160,143,170,143,219,237,183, 54,210,211,211, 21,233,
-233,233, 77, 66, 95,217,203,216, 24, 58,224,126,120,222,198,198,144, 94,113,228,233,168, 24,254,203,201, 83,120,205,187, 70, 49,
-124,210,156,232, 42, 43, 57, 49, 34, 45,235,126,202,180, 76,121, 44,201,226,142, 28, 66,200, 13, 15,156,204, 86,110,200,155,229,
-129,188,165,119,213,  0,216,182,109,155, 98,211,191,222,198,132, 15,230, 43, 70,141, 26, 69, 26,210,192,236,196, 15,  0,183,117,
- 74, 32, 28,120,107,239,251, 80, 95, 81, 65,246,124,211, 34, 50,103, 29,226,207, 46,163,163, 17,240,232,163,143,162,160,160,  0,
-209,209,209, 77,238,221, 41, 20, 86, 71, 66, 42,149, 82,185, 92,206,200,229,242, 40,153, 76, 86,188,104,209,162, 19,238,202, 49,
-155,205, 96, 89, 83, 53,241, 59,146,255,241,227,199,209,183,111, 95,143,202, 53, 97,194, 31, 30,224,164, 73,147,144,153,153, 89,
-195,  0,104,140,182,226, 77, 61,156, 56,113,130,100,103,103,211, 17, 35, 70,220,241,219,158, 61,123,176,113,227,198,234,227,250,
-198, 45,220, 97,188, 55, 98, 58, 32, 42,166, 13,138, 85,149,216,242,194,120,132,147,193,200,255,223, 27,104, 63,182, 61, 50, 61,
- 32,127, 59,210,210,210, 40,  0,172, 90,181,170,193,109, 54,106,211, 33,232,174, 85,161, 88, 22, 83,239,117,103,197, 89,152,219,
-227, 22, 22,156,125,167, 65,245,217, 24,164,219,152, 50, 26, 35, 18,112,183,159,183,177,144,154,154,234,  7,224, 65,  0,  1, 14,
-167, 43,  0,228,174, 93,187,182,220, 93, 57,203, 86, 46, 99,216,219, 70,193,200,209, 99,197, 42,152,196,  2,  1,159,175, 54,136,
- 25,161, 80,207,241,130,252,205,172,196,100,226,151,220, 48,174,251,106,173, 97,202,180, 84, 11, 33,132,212, 53,102,196, 17, 21,
- 21, 21, 31,218,191,231,229,229,221,246,247,247,103,180, 90, 45,231,120, 77,255,254,253, 63,105, 76, 98,247,196, 80,240,202,  0,
-216,185,115,103, 66,167, 78,157, 16, 27, 16,132,134, 68,  1, 28,201,255,182, 78,137,  5, 15,191, 95,253,219,115,219, 94,  4,154,
-  3, 99, 23, 77,240,168,145, 57, 35,232,198, 34,233,235,215,175,  3,  0,218,180,105, 83,227,187,253,255,117,213, 32,238,102,136,
-207,209,  8, 48,153,204, 88,185,114,229, 93,243,  2, 60,149, 89,139,252, 29,239,191, 33,151,203, 67,101, 50,153,202,109,242, 55,
-153,192,178, 70, 24, 89, 22,166, 90,228, 79, 57,207, 34,116, 19, 38, 76,192,241,227,199,171,143,151, 46, 93,138,228,228,228,234,
-227,140,140,140,  6, 27, 59, 14,  6, 79,131,219,159, 35,241, 79,154, 52,  9,113,113,113, 94,201,105,172,116, 64,209,149, 66,104,
-183,254, 27,  1, 83,151, 33, 42,166, 13, 34,195, 37,184,178,245,138,149,252, 67,130,172, 41,  0,  1,207, 45, 89,141, 65,252,  0,
-208,233,220,101, 92,127,111, 30,244,233, 95,215, 31, 33,144, 72, 96, 48, 24,144,159,159,143, 82,195, 69,116, 66,148,211,107,179,
-178,178, 18,234,107,251,114,185,156,216,251, 73, 86, 86, 86,130, 39,225,113,199,168,152,189,191, 58,158,243,212, 17,112, 70,220,
-158,232,130,186,158, 55, 51, 51,147, 18, 66,144,152,152, 72, 26,242,188,118, 76,155, 54,141,126,245,213, 87, 13,170,243,212,212,
-212, 96,  0, 99,247,238,221,251,111,142,227,140, 14, 36,200,231,241,120,254,169,169,169,255, 88,187,118,237, 78, 87,114,222,120,
-243, 13,190, 68, 40, 22, 11,  4, 34,127,134, 79,130, 40, 79,228,199,241,120,124,142, 48,224,  8,223, 66,121, 60, 35,143, 35,  6,
- 45,207,162,243, 23, 10,200, 87,135,119, 25,196,163,155,115, 40,116, 93, 70,149, 74,165,214,233,116,102,  0,208,106,181,220,219,
-111,191, 93, 77,248,243,231,207,127,173,161,237, 61, 41, 41,233,  5,251,247,204,204,204,149,141,209,135, 24, 87,222,255,188,137,
-201, 48,148,149,225,141,238, 93,224,152,187,119,219, 11,177,165, 16, 28,201,127,204,152, 49, 82,185, 92, 78,198,140, 25, 35, 93,
- 51,230, 11,107,100,177,115,179, 26,215,187,131,217,159,231, 97,246,231,121,152,177,228, 60, 82, 63,248, 13,227,222, 58,221,224,
- 23, 82, 84, 84,228,150, 97,112,175,200,191,160,160,192, 41, 49, 71, 71, 71,195,196,178, 24,208,191,127,131,255, 31,123,152,124,
-211,166, 77, 80, 40, 20,213,159,250, 12, 45,103,100, 40,149, 74,107,147,127,181,161,236,142, 98, 50,155, 45, 86,207,223,104, 13,
-253,215, 38,127,139,197,  2,173, 94,235,209, 51,218, 35,  6,181,163,  6, 25, 25, 25,200,200,200,168, 97, 12,120,244,188,217, 53,
-245,161, 34, 59,219,163,119, 86, 31,249, 79,154, 52,  9,139, 22, 45,170, 38,127,  1, 95,224,145,156, 81, 35,227,137, 45,  5, 83,
-231,199, 19, 89,122, 20,162,106,236,  0,208,244, 55, 80,116,165, 16,116,108,215, 63,188,149,244, 55,192,111, 25,  1,132,132,220,
- 83,143, 80,123, 59, 31,250,244,175, 65, 41,197,217,179,103, 49,108,216, 48, 72, 36,146, 26,196, 31, 26, 26, 10,189, 94, 15,189,
- 94,143,226,226, 98, 60,165,127, 25, 95,134,190,234, 84,166, 61,  7, 94,223,251,177,255, 86, 59, 95,238, 46,113, 55,150,179, 98,
-191,183, 54,249,187,114,144,234,123,222,204,204, 76,154,145,145,129,244,244,116,100,101,101,209,134, 62,239,180,105,211, 40,159,
-207,199,180,105,211,188,238, 19,169,169,169, 98,  0,207,103,101,101,189,253,193,  7, 31, 28, 33,132, 68,219, 63,  0, 90,135,135,
-135,251,237,219,183,111, 69,106,106,234,176,250,228,172,144,175,228,241,136, 64,196,154,105,144,209,104,106,110,225,184,214, 22,
-142,139,177, 16,210, 22, 60, 94, 56, 33, 36,  4,132, 23,196, 81,132, 81,150, 11, 81,235, 77,254,205,131,204, 60,166,191,198,173,
- 58,210,233,116,230,218, 94,127, 83,  7,227,142,247,175, 43,185,137,145,113,241, 30, 19,180,221,136,152,187,105, 30,  0, 84,147,
-191, 61,138, 48,106,212,168,108,187, 17, 80,164,190,129,248,217,  3, 61, 50, 50,180,122, 11,180,122, 11,110, 42,141, 40, 46, 51,
-224,250, 45,131, 87,196,103,239, 44,174,200,255,207,130, 51, 35,  0,  0, 12,172, 17,  6,131,193,107,217,118,210,182,231,200, 35,
- 34, 34, 28,189, 89,184,171, 76,106,123,194,206, 66,137,238, 40, 61,214,100,180,122,254, 70, 22,172,169, 38,249,155, 76, 38,104,
-181, 90,104,212,154, 63,181, 78,172,  6, 83,186, 99, 64,206,254, 15,155, 54,165,123,109,  4, 56,146,191,157,248, 25,134,129, 88,
- 44,134,127,128, 95,131,202,188,115,215, 73,234,236,227,234,222,221,111,189,143,112, 12,134, 57,241, 37,  0, 64, 64,206,101,156,
-201, 87, 90, 13,182,196,151, 96, 58, 59, 23,184,173,244,168, 60,105,105,105,212,158, 14,240,  6,254,184, 13,  0,248,250,235,175,
-177,109,219, 54, 44, 94,188, 24, 71,143, 30,133,209,104, 68,105,105,169,221, 43,171,190, 62, 42, 42, 10,122,  0, 60, 92,253, 83,
-218,139,179,118, 95,219,155,247,214,160,168, 43, 45,224,169, 60,199, 72, 88,122,122,122,131,158,217, 78,254,  0,224,173, 17,144,
-154,154,218,194, 70,254,105,107,215,174, 61,247,238,187,239, 62,177, 97,195,  6,116,234,212,  9,  0,208,174, 93, 59, 84, 86, 86,
-138,230,206,157,123, 98,223,190,125,223,166,166,166, 70,215, 29, 47,  7,192, 81,  2,206, 44,182, 88,204, 97, 22,179,165,181,201,
- 98,234,200, 99, 72, 43, 33,159, 17,136,  5, 60, 61,223, 79, 88,225, 31,200, 83,243,196,212, 44,230,241,252,249,102, 54,232,234,
-201, 83,162,103, 34, 62,117, 89,238,188,188,188,219, 90,173,150,171, 43,204,223,171, 87,175,139, 44,203, 54, 90, 91,234,213,171,
- 87,163,201,226,215, 71,220,255, 75,155,246,  7,217, 22, 93,199, 27,221,187, 96,201,182,109, 30,143,  5,176,123,255,118,210,175,
-225,165,140, 26,149,189,109,219, 54,  0, 64,120,143, 22, 30, 21,190, 74,111,129, 70,103,134, 90,107, 70,101,149, 25, 21, 26,179,
-199, 47,160,174,145,255,142, 94,190,227,247, 43, 87,174,160,162,162,226,158, 41,141,149, 43, 87, 34, 58, 58, 26,246, 65,127,142,
-185,126,153, 76, 70, 87,174, 92,  9,131, 94,239,181,  1, 32,147,201,232,154, 53,107, 80, 84, 92, 12,  1,143,135,200, 22, 45,106,
-144,255,195, 15, 63,140,  9, 19, 38,184,165,156,228,114, 57,145, 74,165, 53,140,128,218,145, 12,119,199, 42,176, 70, 22,172,209,
-  8,147,137,133,217,108,169, 38,127,163,209,  8,157, 78,135,170,170, 42,104, 52,158, 27,  0,142, 41,  0, 59,188,245,252, 55,165,
-111,  2, 40,112,219, 70, 52,212,218,136, 64, 40,181, 26,  1,233,233,152,144,146,226,113, 58,160, 54,249, 11,  4,  2,136, 68, 34,
-136,197, 98,136,197, 98,175,158,187, 70,191,118,146, 18,112,149,210, 26,183,114, 51,232,232, 24,220, 26, 20,143,112, 12,134,100,
-252,103, 48,223, 44,  3, 66,130,192, 87,110,196, 79,159,158,  0,120, 60,143,202,210,208, 84,128,150,103,213, 41, 11, 22, 44, 64,
- 89, 89, 25, 86,172, 88,129, 94,189,122,225,131, 15, 62, 64,124,124, 60,244,122,125,109, 15,205,110, 82,223, 83,226,119,151,160,
-189, 77,  7, 56, 51, 36,188,145,147,146,146, 82, 77,252,222,244,141,186,200,191,154,108,248,124,152,205,102, 79,211,  1,129,185,
-185,185,255,157, 62,125,250,129, 30, 61,122,  4,  1,192,251,239,191,143,188,188, 60,  0,192,192,129,  3,177,101,203, 22, 12, 25,
- 50,196,255,169,167,158,202,207,206,206,206,154, 58,117,234, 83,119, 42,122, 32, 44, 60,140,187,114, 37,223,156,173,216,187,171,
- 99,199,216,236,152,118,209,231,120,129,146, 82, 30, 17,106, 25,145, 64,199,136,253, 52, 44,159,199,130,154,120,156,216, 20,168,
- 41, 86,  6, 28,221,119,186,127,179,208,200, 45, 46,141, 81,135,156,255,214,173, 91, 83,199,142, 29,187,214, 30,246, 87,171,213,
-140, 80, 40,108,112, 91,106,172,176,191,203,  8,128,221,203,239,219, 33, 22,134,178, 50,104,139,172, 36, 56,204,230, 29,122, 26,
-  5,184,242,219,229, 59,100,215,117,172, 60, 91,226, 81,225, 27, 74,254,142,196, 79, 41, 69,155, 54,109,106,252,102, 50,153,170,
- 63, 21, 21, 21,208,106,181, 40, 47, 47,191,103,202,195, 62,207,127,247,238,221, 53, 34,  1,118,242,239,217,179, 39, 12,  6,125,
-181,162,163,118,107,198, 77,197,244,249, 23,159,195,100, 50,161,117, 84, 20, 76, 22, 75,157,228,239,137, 34,177, 25,  1,119,120,
- 37,246,169,139,245, 69, 50,238, 48,  0, 88, 83, 53,249, 31, 59,122, 12, 58,189, 30, 26,141,  6,149,149,149,168,168,168,168,225,
-217,121, 10,123, 26,192,219,188, 63,  0, 40,111, 43,161, 84,222,198,109,101, 57,110, 43,149, 80, 42,149, 80,222,182,122,164, 93,
-186,118, 69,185,237,187,167,222, 63,  0,196,197,197,253,225,245,251,251, 35, 32, 32, 16,129,  1,129,208,104, 52,210,134,180,167,
-250, 82,  2,174,238,205, 95,156,  6,193,248,207, 16,142,193,224,231,124,  6,211,230,151,128,144, 32,108,127, 49, 25,215,182, 95,
-197,227,139,214,  1,252,123,188,172,136,225, 26, 36, 81, 18,104,181, 90, 24, 12,  6,232,116, 58,228,228,228,224,163,143, 62,170,
-243,114, 63, 63,123,  4,229,178,199,228,237,173, 87,237,248,126,107,191,111,103,199, 13, 49, 50,234, 74, 11,120, 34, 39, 49, 49,
-145,164,164,164, 32, 57, 57, 25, 73, 73, 73, 94, 71, 38,190,250,234, 43, 98, 54,215,212,201,102,179, 25,158,142,  5, 88,187,118,
-237,165,148,148,148, 94, 27, 54,108, 24,118,240,224,193,192,196,196,196,163,118,242,183, 57,170, 16,137, 68,244,218,181,107,130,
- 93,187,118,117, 14, 13, 13, 61, 54,120,240,224,252,186,100, 77,156, 48,145,139,141,233,164, 25, 56,112, 96,242,185,115,191, 15,
- 87,107, 53, 45,168,217,100,  6,  3,147,217,200, 24,141, 70,163, 94,141, 18, 53,103, 52,104,138, 11, 75,204, 63,237,216,185,176,
- 89,120, 68, 41,203,234, 92,186,239,117,121,255, 42,149,138, 15,  0, 65, 65, 65, 77, 54, 45,192, 56,243,254, 55,253,235,109,171,
-213, 92,114,179,198,111,158,142,  5, 24, 51,102,140,244,243,231,151,  1,176, 14,248,219,182,109,155,194,113,106,225,182,109,219,
- 20, 73,223, 60,  1,  0, 56,185,232, 87,140, 25, 51, 70,122,175, 30,222,177,147, 20, 21, 21, 85,123,251,118,210,119,168, 92,104,
- 52, 26, 24, 12,  6,  7, 37,114,239,202,248,194, 11,214,177, 31, 38,179, 25,231,206,157,195,169,147, 39,209,171,103, 47, 24, 12,
-  6,232,245,  6, 24,244,122,124,251,205, 55,176, 95,231, 78, 71, 95,186,116, 41,186,117,237,  6,147,201,132, 75,151, 46,193,108,
- 98, 81, 92, 84,220,168,239,212,126,108, 91,179,  0,209,209,209,110, 41, 38,214,100,132,217, 98, 13,251, 31, 57,242, 43,180,122,
- 45,170, 52,106, 84, 86, 86, 66, 85, 81,  1,149,170,188, 65,134,152, 61, 18,208, 16, 15,231,192,129,  3,208,104, 52,208,104,212,
-182,191, 26, 52, 11, 15, 71,151,174, 93,113,225,252,121,236, 63,112,192, 99,153,118,239,159,207, 23,192,207,207, 15,  1,  1,  1,
-  8, 12,  8, 64, 64,128, 31,202, 85,229, 82,  0,217,119, 59,212,239, 12,103,242,149, 48,157,157, 11, 37, 14,129,140, 90,  2, 50,
-248,223,200, 95,156,134,209,139,214, 66, 44, 96,  0,  1,223,250,241,  2,222,166,  2,138, 31,251,  2, 97, 27, 31,131, 78,167, 67,
- 88, 88, 24, 84, 42, 21, 84, 42, 21, 14, 31, 62,140,155, 55,111, 86,135,137,171,175, 47, 46,198,139,161, 18, 52,243, 43,171,207,
-  3,150, 58,146,170,227, 32, 57,251,119,251,111,246,107,189,241,206,221, 77, 15,184, 75,254,222,122,254,117, 61,111, 98, 98, 34,
- 73, 74, 74, 34, 13,121,222,218, 70,128, 55,228,111,199,219,111,191,157,251,196, 19, 79, 60,181, 96,193,130,206,103,206,156, 25,
- 44,145, 72,120,163, 71,143, 38, 34,145,  8, 28,199,145, 81,163, 70,229,190,242,202, 43, 61, 31,120,224,129,237,255,248,199, 63,
- 82,167, 77,155,230, 52, 23,149,246, 98, 26,247,251,249, 75,199, 30,232,209,243,233, 99, 71,143,142,219,190,227,199,249,199,143,
- 30,109,113, 46,239,130,248, 82,113, 62,253,118,217,247,146,  5, 75, 23,119,203,218,177, 99,105,199, 14, 29,127, 10,136,244, 63,
-176,118,237, 90, 11,220, 44,121, 98, 98, 34,142, 29, 59,214,123,229,202,149,115, 13,  6,131,224,131, 15, 62,248,120,251,246,237,
-147,138,139,139,239, 45,113, 52, 52,  5, 16,126,181,  0,229,182,208,191, 35,134, 69, 68, 96,  9, 46,184,239,117,216, 66,252, 23,
- 78,156, 67, 72,231,102, 72,250,230,  9,108,123,230,  7,133, 61,236,111, 39,127,187,247,239,201, 44,131, 45, 11, 26,103, 36, 62,
- 33,  4,231,207,159,135,189,177,214, 14,179, 10,  4,  2,  8,  4,  2,148,149,149, 97,212,168, 81,247,188,146,236,163,254, 87,174,
- 92,137,254,253,251,195, 96, 52, 66,111,208,195, 96, 27,220,164, 55, 88,211,  0,203,151, 47,119,169, 76,100, 50, 25, 93,180,104,
- 17, 44, 22, 11, 78,156, 56,  9,  1,223, 26,182,141,141,141,197,213,130,  2, 20, 23, 23, 99,227,198,239, 48,105,210,147,216,187,
-119, 47,117,140,  4,212,167,128,228,114,185, 16,128, 89, 38,147,113,117,121, 64,158, 76, 85,180,123,254, 57, 57, 57,208, 86,233,
-170, 13, 48,181, 70, 13,181,186, 18,106,117,149,215,161,112,187,247,111, 91,  9,208, 43, 67, 96,210,164, 73, 53,142, 99,162,163,
-209,165,171,117, 80,220,133,243,231,113,213, 22,241,168,125,157, 59, 24,244,224, 32,136,132, 34, 72, 36, 18,136,197, 98,136, 68,
- 34,148,148,148,184, 77,254,174, 66,253,222,174, 17, 48,238,163, 53,216,  2,224,209,  5,255,  7,154,254,  6,200,132,165, 56,147,
-175,  4,  9, 11,197,229, 34,181,213,251,247, 48,  5, 80, 59, 21,224,241,244, 64,189, 30,224,229,215, 10,239, 91,137,222,100, 50,
-225,203, 47,191,196,176, 97,127,140, 11,219,251,108, 20, 80,170, 67,231,157, 42,244,142,104,231, 76,129,103,215,202,125, 43,128,
-106,245,175,168,125,173, 55,132, 93, 95,222,222, 91,207,223, 91, 67,226,110, 63,175,205,  8,104,240, 44,128,249,243,231,111,212,
-106,181, 17,167,115,115, 39,232,245,250,158, 10,197, 62,137, 72, 44,226, 51,132,193,190,125,251,  2,187,117,235,182, 46, 37, 37,
-229,223, 99,199,142,117,233,173, 43,246,254,204,141, 30, 59,122,127,175, 94,113,179, 89,179,241,209,203,121,151,230,115,  5,249,
-102,  0, 84, 12,198,212,163, 99,231,244,230,205, 35,118,242,248,194,111, 63,124,119, 33,107, 79, 33,212,135,254,253,251,127,146,
-152,152,  8,  0, 40, 43, 43, 67, 86, 86, 86,208,234,213,171,231,  3,192,177, 99,199,250,119,239,222,125,247,125, 97,  0,216,189,
-243,135,191,221, 80,191,151,225,193,148, 64,187,245, 27, 63,123, 32,194,123,180,168, 38,125,199,208,255,201, 69,191,122,100,185,
- 54,214,156, 84,123,217,186,118,237,138,179,103,207,214, 32,150,138,138,138,124,  0, 29,234,186,167,174,181,171,239,182, 17, 80,
-151,178,248,246,155,111, 97, 48, 24, 96,100,141, 96, 89, 22,139, 22, 45,130, 43,242,183,131,227, 44, 16, 75,  2,160,215, 27,112,
-254,220, 57,240,  5,  2,152, 88, 22,126,254,126,216,184,113, 35,120, 60,158,125,238,124,189,207,186,104,209,162,221, 50,153,140,
-149,203,229,205,237,229,172,181, 14,128, 71,161,205,217,179,103,227,208,161, 67,168,170,170, 66,149, 86, 11,141, 90,109, 35,127,
- 53, 52,106, 13,170, 52, 85,208, 58, 40,124,119,222, 93,223,190,125,233,241,227,199,171,189,255,186,166,  1,186,187,  8, 80, 66,
- 66,194, 29,117, 97, 39,253, 83,167, 78, 85,123,243,238, 62,115,159, 62,125,168,125,145,159,  0,191,  0,136, 37, 98,104, 52, 26,
-169, 67, 14,219, 35,197,123,183, 22,  3,178, 27,  1, 99, 23,172,  6,221, 12, 52,123, 86,142,236, 87,147, 49,100,225,122, 64, 32,
-128,191,184, 97,121,206,218,134,  0,  0, 40, 14,185, 10, 54,222, 66,143,221,126, 40,249, 81,  7,213,188, 63,206,154, 76, 38, 12,
- 29, 58, 20,  0, 16, 21, 42,193, 47,242, 54, 88,252,209,117,124,113, 82, 95,175, 52, 71,143, 31,176, 14,132,179, 43,246,218,131,
-226, 60,157, 22,231, 56,126,167,161,158,127, 93, 58,193, 27, 89,119,243,121, 29,141,128,198,104,127,203,150, 45,251,239,212,231,
-166,238,234,215,167,111,127,141, 90, 29,102,182,152,141,145,145,145,101, 81, 81, 81, 37,106,181,250,204,216,177, 99,221, 86, 10,
-219,183,110,231,  0,108,124,230,233,127,228, 12, 30, 50,228,  7,137, 68, 18, 76, 64, 57, 66,  8, 56,142, 86,234,181, 42,197,197,
-220, 66,141,159, 80,224,150,158,183,191, 51,192, 58,144,186,246, 64,189,143, 62,250,232,223,247,133,  1, 48,106,212,168,236,134,
- 44,248,227, 78, 99,181, 27,  2,118,226,111, 76, 66,111, 72,217,122,244,232,129, 99,199,142,161,172,172, 58, 68,216,  1,  0,148,
- 74,107, 68,233,153,103,158,249, 83, 43,171,246, 59,162,148,210,167,159,121, 26,203,151,127,110,203,153,155, 17, 28, 28, 76,220,
-189,223, 14,137, 68,108,151,103,245,166,180, 58,199,123,  0,212,189, 89,135,  3,186, 46, 90,180,232,146, 76, 38, 43,149,203,229,
- 60,199,  1,129,182,105,129,110, 43, 58,251,220,247,193,131,  7, 55,250,187,235,219,183,111,237,189,  0,170,127,247,116,  5, 64,
-185, 92, 78,178,179,179,233,198,141, 27,107, 44,212, 99,151,237, 77,123, 78, 72, 72, 32, 38,179,  9, 38,141,169, 81,159,189,190,
-208,191,167,123,  3,140,251,104, 13,224,176,240,207, 67,111,255, 49, 46, 73,219, 72,229,173, 17,  1,232, 94,191,241, 89, 60,184,
- 24,197,  0,226, 23,135, 98,222,137, 78,136,  0, 80,150,175, 69,199,142, 29,  1,  0,255,157, 23,138, 71,250, 69, 32,230,145, 60,
-183,254,111, 79,166,186,165,167,167, 43,234, 91,246,216,149,190,105, 12,157,215, 80, 89,247,226,121, 27, 19,171,215,172,190,  4,
-224, 82, 99,201,251,230,219, 47, 11,208,  8,163, 66,179,178,178, 26,245, 57, 27, 99,145, 31,175, 12,128,187, 77, 96, 59,119,238,
- 76,216,182,168,233,237,  5, 96,239, 72,253,250,245,195,206,157, 59, 13, 54,210,231,  0,248,221,141,200, 67, 35, 53, 18, 34,151,
-203,171, 61,251,250,200,255,110, 98,246,236,217,142,241,212,106,133,109,159, 70,232,137,183,115, 55,223,175,163,236,236,236,236,
-  6, 47,251,155,144,144, 64, 18, 18, 18, 26, 92, 46, 87,107,251, 55,  6, 26,146, 18,152, 51,103, 14,174, 92,185,210,104,101,113,
-103,121, 95, 79,113,242,159, 42,156,132,117, 96,232,176, 20,  9,126, 62,210,  9,145,126,  1,248,253,248, 45,116,118,147,252, 93,
-181,191,166,186, 28,110, 99,172, 37,112, 63, 61,111, 83,131, 59,203,251,122, 40,111,233,189, 42,251, 61,223, 13,240,110, 69, 24,
- 26,211,  8, 24, 53,106,148,248,126,106,128,127,118,244,  4,128,125,133, 26,179,221,  0,240, 41,143,166,131,134,166,  4,218,183,
-111, 79,218,183,111,223, 40,250,198,147,125,  0,188,197,129,116, 61, 14,164,231,249,250,172, 15, 62,184,114, 34,123,247,238, 77,
-125,175,193,  7, 31,124,240,193,  7, 31,254, 94, 96,124,175,192,  7, 31,124,240,193,  7, 31,124,  6,128, 15, 62,248,224,131, 15,
- 62,248,224, 51,  0,124,240,193,  7, 31,124,240,193,  7,159,  1,224,131, 15, 62,248,224,131, 15, 62,  0,192, 81,  0,101,182,191,
-247, 37,106,204,  2,152, 62,125,186,215, 35, 83,235,154, 39,238,147,215,244,228,165,165,165,121, 37, 47, 46, 46,238, 14,121,167,
- 78,157,242,186,124,117,201,187, 95,234,195,211,119,184,106,213,170,123, 82,190,198,174,143,123, 89,191,174,166,137,122,250,254,
- 26, 91,158, 79,191,220,123,121, 77,188, 61, 31, 61,117,234, 84, 18, 96,219, 96, 18, 48, 52,181,254,230,177,  1,224,195, 95, 31,
-171, 86,173,242,189,132,191, 25, 66, 66, 66, 24, 88,167,103,242, 43, 43, 43, 57, 74,169,165, 41,149,207,190,239,124, 86, 86, 22,
-109,140,133,102, 26,107,165, 61, 31,238, 30,182,111,223,158, 48,122,244,232,236,251,248, 17,250,  3,176, 47, 59, 44,240,212,  0,
-104,146, 17,  0, 31,254,122,160,148,214,216,234,216,219,  8,192,138, 21, 43, 92, 94, 51, 98,196,136,132,204,204,204, 26, 43,139,
- 37, 37, 37, 73,247,236,217,227, 85, 71,207,200,200,168, 83, 94,114,114,114,147,144,215,148, 65,  8, 33,237, 34, 35, 81, 80, 82,
- 66, 43, 42, 42,236,251, 51,120,180,196,160,163,177,120,124,203,242, 34, 66, 48, 67,190, 43,119,155,108,100,207,111, 40,133,122,
-213,238,220, 25,115,198,245, 39, 96, 40, 95,165, 49,208,190,227, 95,242,120, 75,206,172,172,172,  4,251,146,179,182,191, 94, 45,
- 55, 91,155,252,237,237,190,161, 27,237,212,117,175,183, 50, 27, 67, 94, 67,183, 12,246, 38, 90,114, 55,200,127,231,206,157,138,
-209,163, 71,223,239,198,153,189,189,223,213,231,104,213, 76, 76,  2,  4,193,196, 40, 22, 82, 99,133,158,169,210,171,185, 42,  3,
-219, 40,211,247,239, 48,  0, 26,147, 32,188,149,229,169, 60, 66,  8,  3, 64,  2, 64, 79, 41,229,154, 90,249, 26,139, 96, 27,195,
-  0,176, 43,117,199,178, 18, 66,140,148, 82, 81, 67, 34,  5,132, 16, 10,  0, 75,151, 46,173,177, 99,216,172, 89,179, 20,132, 16,
- 80, 74,137,167, 74,  9,  0,184,239, 67,107,156,103, 38,102, 42, 50, 51, 51, 61, 86,128,141, 41,239,126,136,162, 80, 74,169,180,
- 67, 12,149,118,136,  1,  0,148,176,230,201, 45,132,252,245,246,223, 47,168,171, 68, 55,203,202, 88,119,100, 29,219,252, 89, 30,
-199, 33,234,193, 65,205,130, 62,126,117,200,158,158, 61, 67,174,205, 88,216,255, 67,  0,184, 85,169,251, 63,  1,159,252,  8,144,
-115,105,105,105,221, 61,125, 55,181,151,162,109,200,114,179,142,228,223, 24, 70,128,179,123,188, 37,203,198,144,151,146,146,130,
-244,244,116,183,158,201,147,136, 74,125,242, 26, 43, 50,227, 72,254, 28,199, 97,213,170, 85, 88,191,126, 61,157, 60,121, 50,241,
- 80,207,  8, 41,165,141,178, 94,118,120,120,120,154, 82,169,244,182, 67,139,108,158, 63,123, 55,250,240,144, 94,113,228,233,168,
- 24,254,203,201, 83,120,205,187, 70, 49,124,210,156,232, 42, 43, 57, 49, 34, 45,235,126,202,180, 76,121, 44,169,193,145, 60,190,
- 59,202, 77, 38,147, 69,  0,232, 11,224,184, 92, 46, 47,107, 98,158, 78, 16,128, 68,  0, 99,  1,108, 37,132,100, 81, 74,213,141,
- 32,247, 59, 74,233,147,222, 18,108, 83,  1,195, 48,245, 26, 41,132,144,254,  0,132,132,144,230,148,210, 82,103,215,213,103,160,
- 16, 66,232, 43,175,188,130,182,109,219,222,177, 93,232,210,165, 75,165,133,133,133, 10, 66,  8,117,215,  8,144,201,100,244,235,
-151,252, 49,101,200,157,155,203,112,223,135, 98,221, 47, 44,158,245,208,107,106, 76,121,149,149,149,  9,111,190,249,166, 98,194,
-132,  9,144, 74,173, 43,219,157, 62,125, 58, 97,197,138, 21,138,182,109,219,130,227, 56,232,245,122, 36, 36, 36, 96,196,136, 17,
- 46,101, 10, 43,181,  9,157,223,220,164,200,140,111, 45,109,241,124, 82, 54,  0,152, 75,204,  9, 23,223, 51, 43, 44,109,131,160,
-230,252,161,210,  7,161, 52,248,152,116,218,156,230, 46,189,227, 14,109, 90,180,104, 43,148,220,124,105,198, 51,198, 72,137, 80,
-168, 46,215,147, 69,171, 55,172,127,251,133,167, 17, 42,145, 80,131,201, 66,255,181,124,181, 17,  0,105,217,178, 25,191,164, 68,
-201,244,238, 93,247,206,154,253,154,239,137,189, 17,229, 23, 50,248,193,136,165,113,125,194,  4, 95,127,125, 57, 58,162,153,228,
-246, 39,175, 30, 89, 90,112, 45,206, 50,242,145,150, 57,121,151, 52,133,207, 78,233, 48,202,222,110, 60,233,  3,142, 27,228, 52,
-196, 11,173, 77,254,181,251,167, 55,242,155, 98,  4,192, 70,196,212,110,  4,164,164,164, 56,158,175, 65,218,142, 27,251,120,107,
- 84,216,229,164,167,167, 55, 56, 74,224, 72,254,179,102,205,194,241,227,199,233, 47,191,252,130,201,147, 39,123, 42,138, 37,132,
-  8, 40,165,230, 70, 80,145, 37,225,225,225, 99,149, 74,229, 86, 47,238, 13,134,117, 12, 64, 40,128,155,169,169,169, 33,  0,210,
-108,199,118,220,  2,240, 35,128,252,181,107,215,186, 37,116,217,202,101, 12,123,219, 40, 24, 57,122,172, 88,  5,147, 88, 32,224,
-243,213,  6, 49, 35, 20,234, 57, 94,144,191,153,149,152, 76,252,146, 27,198,117, 95,173, 53, 76,153,150,106, 33,132, 16,103,253,
-183,193, 17,  0, 66, 72, 27,  0,255,  3, 80, 12,224, 21,153, 76,246, 60,165,244,250,189,242, 96, 93,144,116, 56,128,117,  0,110,
-  0, 56, 12,224, 81,  0,211,  8, 33, 83, 40,165,202,  6,138,159, 72,  8,153,236, 42, 95,122, 47, 67,236,119,  9,  3,  1, 92,  4,
- 16,  3,160,148,216,152,218, 93,131,102,196,136, 17,  9,  0,106,144,255,172, 89,179, 20,142,209,  0,219,111,138, 17, 35, 70, 36,
-184, 74,  7,100,100,100, 36,  0,168, 65,214,204, 68, 21, 28,189,247, 41, 67,132,120,246, 51, 45, 50, 50, 50, 18, 92,133,239, 27,
- 91, 30,  0, 28, 57,114, 68, 33, 22,139,145,147,147, 83, 99,191,  3,134, 97,240,206, 59,239, 16,187,178,219,177, 99,135, 98,196,
-136, 17, 46, 43,160,197,145,115, 10, 42, 22,160,103,153, 80, 81,234, 16, 78, 36, 12, 69,207,119, 88,  2,176, 56,123,224, 90,194,
-141,205,143, 41,128,163,245, 42, 97,105,135, 24,218, 86, 40,193,235, 47, 78, 54, 70,  6,  8,133,183,207, 30, 34,254, 12, 31, 47,
- 15,141, 69,171, 16,  9,174,229, 28, 36,122,150,146, 89,105,207,176,210, 14, 49,180,139, 95, 32,110,210,219, 36, 46, 46,174, 78,
-121,205,154,  9, 31, 18, 10, 25,241,225,195, 55, 95, 49, 91, 12,159, 70,182,110,111, 10,105, 38, 32,106,245,101,191,246, 49,126,
-205,194,194, 68,101, 28, 85, 27,127, 58, 90,170,157, 62,244,207,105,192,181,195,254,142,125,211, 83, 35,192,126,141,227, 56,  2,
- 87,215,185,218,126,187, 49,229, 57, 26,  1,114,185, 10,128, 10, 50, 89, 40,234, 34,109,119,225,204,168,176, 69,100, 26, 20,245,
-112, 36,255, 29, 59,118, 40, 24,134,  1,195, 48, 24, 58,116, 40, 14, 30, 60, 88,163,190,220,133,197, 98,201,229,241,120, 38, 66,
-  8,191, 17,198,179, 72,148, 74,229,247,225,225,225,227,149, 74,229,102, 15,239, 53,193, 58,182,198,152,154,154, 26,  9,224,195,
-189,123,247,166,114, 28,199, 57,112, 20,225,241,120, 75,165, 82,233,127, 82, 83, 83,231,186, 50,  2,222,120,243, 13,190, 68, 40,
- 22, 11,  4, 34,127,134, 79,130, 40, 79,228,199,241,120,124,142, 48,224,  8,223, 66,121, 60, 35,143, 35,  6, 45,207,162,243, 23,
- 10,200, 87,135,119, 25,196,163,155,115, 40,188,123, 17,128, 79,  1,236,  5,240,  5,128, 23,  1,124,186,106,213,170,241, 94, 18,
-118, 40,128, 87,  0,244,  3, 48, 10,192, 78,  0,199,  0, 44,163,148,170,188, 16,121,192, 86,174, 21,148, 82,142, 16,226, 15, 32,
-213,118,190,123,  3, 12,139, 96,219, 87,127,  0,106, 79, 60,108, 39, 17, 20, 33,128,183,  1,204,151,203,229, 44,154, 22,250,  1,
- 56,  4,160,  5, 33,100,163,173, 78,190,169,109,208, 56, 51, 80, 50, 51, 51, 21,142, 97,255, 89,179,102, 85, 31, 59,126, 95,186,
-116,169,212,102, 24,212,219,227, 51, 51, 51, 21,142, 97,122,102,162, 10,151,118, 90,119, 97,100, 70,125, 83, 77,218,220,247,161,
- 96, 38,102, 42, 92,109,232, 83,151, 60,187, 50, 99, 38,202,168,167,242, 40,165,  9,135, 15, 31,198,228,201,147,241,229,151, 95,
-226,228,201,147,  9,241,241,241,217,181,175, 17,139,197,138,150, 45, 91,186, 19,171, 79,104,121,248, 55, 92,156,156,128,128, 47,
-207,130,220,212, 37,208,150,126, 54,121,196,118,  9, 18,  4,134,182,138,176,150,245,111,101, 43,237, 16, 67,211,254, 49,145,141,
-244, 23, 10, 76,151,143, 11, 67, 35,  2,137,226,166, 26,227,123,183, 65,151,168, 16,  8, 43, 46, 66,161,209,163,141, 64,132, 16,
-194, 19,188, 53,109, 50,173, 18,138,242,164, 29, 98, 40,130, 66,234,148,169,170,208,132,245,239, 31,176, 84,109, 30, 48, 39, 48,
-180, 76,100, 96,252, 57, 73,  0,107, 12,107, 22,206,248,133,136,249,170,242,155, 34,117,165, 25,130, 74, 35,113,108, 51,245, 25,
-180,182,188,191,194, 21,113,166,164,164, 72, 93,141,  7,168,203,243,175,109,  8,120, 98,  4,216,127,171,143,140, 29,207,187, 34,
-198,218,242,232,166,208, 59,245,205,  4, 21,220,149, 87, 95,184,191, 33,164, 93,219,168,  0,128,176,176,172, 70, 33,255,233,211,
-167, 91,211,111, 28,135, 55,222,120,  3,159,126,250,105, 53,249,175, 88,177,194, 99,217, 12,195,128,101,217, 83, 66,161,208,220,
-  8,145,128,114,  0, 80, 42,149,155,195,195,195,165, 74,165, 82,225, 73, 81,  0,128,101, 89, 62,128, 85, 89, 89, 89, 35,231,205,
-155,119,227,221,119,223,109, 91, 43,205, 64,247,237,219,247,238,240,225,195,203, 83, 83, 83, 63,171,207,  8,224, 17,129,136, 53,
-211, 32,142, 51,133, 11,121,188,102,148,144, 96,194,231, 19, 62,143,167, 37,132,176, 32, 60, 61, 71,225, 71, 89, 78,168,182,152,
-208, 33,200,108, 98,250,107,104,163, 25,  0,181,114,195, 81,  0,218, 80, 74,237,132,191,152, 16,114, 84, 38,147, 69, 81, 74,139,
- 61,241, 96,  9, 33,207,216,200,250, 99,  0,115,  0, 60, 13, 32, 10, 64, 10,128, 66, 66,200,139,148,210,111, 60, 32,233,127,  3,
-184, 76, 41,253,156, 16, 34,178,117,120, 51,165,244, 11, 66,200, 35,132,144,127, 83, 74,255,227,101,163, 24,  6,235,252,206,135,
-108,225, 27,183, 81, 87,  4, 64, 38,147, 77,  5,240, 30,128,146,180,180,180,149, 77, 44,  2,208,221, 86,182, 36,  0, 35,  1, 92,
-115,101,208, 56,131, 35,225, 59,146,126,237,113,  1,110,247, 46,  7,242,  7,128, 75, 59,159,169, 97,  4,120, 35,207, 81,153,201,
-229,114,226,104,  4,184,131,253,251,247,131,101, 89,244,233,211, 71,250,203, 47,191, 40, 10, 10, 10, 20,241,241,214, 45,117, 57,
-142,195,130,  5, 11,104, 85, 85, 21,  4,  2,  1,198,141, 27,231,242,185, 13, 57,199,192,176,102, 84,244,137,150, 10,126,185,161,
-184,188,102, 63, 58,188, 61,210, 74, 90, 28, 69,238,  2, 33, 45,175, 10,132, 94, 16,128,164,233,151, 92,191, 71,134, 87, 85,118,
- 54, 39,216, 96,180, 48,193, 18, 17, 77,238,221, 22, 65, 18,  1, 41, 82, 86,193,159,225, 99, 66, 92, 91,122,228,247, 82,252,250,
-227,110,180,243, 15,160,103, 52,234,107,  0, 58, 59, 19,151,115,170,213,140,129,113,183,247,  7,240, 99,204, 66,243,173, 14,195,
-  6, 77,  8, 48,176,254,143,241,  2,142, 49,234,138,114,191,130,243,199, 98, 76,236,249,178, 43,249,218, 32, 91,159,113, 73, 84,
-238,122,167,246,241,  1,206,242,207,206,188,105, 87, 94,165, 76, 38,163,222,134, 76,155, 18,106,123,254, 86,242,  6,210,211, 27,
-111,144, 96, 99,120,254,148, 82,152,205,127,112,244,144, 33, 67,112,240,224, 65,175,200,223,238,121, 11,  4,  2, 11,199,113,135,
- 25,134, 49, 53,208,  8,104,110,255,162, 84, 42, 21,225,225,225, 50,165, 82,233,238,206, 89,170,138,138, 10,209,177, 99,199,158,
-206,202,202, 26,185,118,237, 90,101,106,106,106,219, 13, 27, 54,224,253,247,223, 71, 94, 94, 30,218,181,107,135,146,146, 18, 50,
-119,238,220,210,247,222,123,239,147,225,195,135,159, 74, 77, 77,253,197,169, 68,206, 44,182,128,  9, 35, 28, 90,155,192,181,246,
- 19,136,  4, 66, 62,115, 91, 44,224,233,121, 18,161, 70, 36,226, 25,141, 22, 78,200, 55,241,253, 89,179,145,187,122,242,148,254,
-153,136, 79, 77, 71,224, 29,127,184,138,  0, 60,  2,224, 80,173,129, 99,135,  0, 60,178,106,213,170,213, 30,144,245, 83,  0, 94,
-  5, 16, 99,222,250,193,  0,  0, 32,  0, 73, 68, 65, 84, 93, 43, 52,175,  2,240, 27, 33,228,191,  0,246, 16, 66, 44,148,210, 13,
-110,200,243,179,229, 90,186,219,172,123, 99,173, 75,166,  0,248,157, 16,178,132, 82,170,243, 38,252, 15, 96,181,237,175, 71,  6,
- 64,109,194,148,201,100,207,  1,152, 97,123,151, 75,  9, 33, 70,185, 92,190,166, 41, 40, 16, 66, 72, 71, 88,183, 60,254,  9,192,
- 54,  0,246,122,130,187, 17,128,191, 27,138,139,139, 21,  3,  6, 12,  0, 33, 36,123,192,128,  1,248,225,135, 31,240,196, 19, 79,
- 36,180,104,209, 66,193, 48, 12,222,122,235, 45, 98, 83, 38,  9, 27, 55,110, 84, 24,141, 70,244,235,215,207,169,162, 27,116,245,
-134,162,100, 64, 87,128,144,236,223, 35, 45,210,238,167,195, 20,  6, 14, 82,107, 10,  0,232,249, 22, 75,  0, 37,180,202,202,132,
-125, 27, 59, 42,180,129, 71,165, 79,166,  6,213,233, 21, 23,177,230, 37,171, 86,109,120, 35,162,153,164,160, 82,203,  6, 71,135,
-250, 11, 82,122,181,247,139,139, 22, 17,131,206,  2,157,158,195,101,162,183,108, 43, 40,214,229,151, 84, 89, 90,  8,197, 55, 75,
- 88,195,136,235, 70,211,199,129,192,235,117,201, 12, 10,141,106,173,175,186,212,170, 91,226,112,230,220,145,155,195,138, 47,252,
-112,189, 99,223,180,230,188,174,189,139, 78, 29,252,190,146,240,130,250,113, 28, 87,126,235,150,222,165, 21, 85,155,176, 93, 29,
-219,189,217,244,244,116,167,132,237, 24, 94,175, 29,  9,112,231,250,251, 21,137,137,137,196,209,235,119,132, 99,  8,191, 33,104,
- 12, 57, 85, 85, 85, 10,  0,224,243,249,120,237,181,215,112,252,248,113,252,242,203, 47, 13, 21,107,  4, 96, 49, 26,141,230,226,
-226,226,204,168,168, 40, 19,188, 31,137,175,113, 60, 80, 42,149,242,240,240,240,199,149, 74,165, 59,122, 95,108, 48, 24, 34,102,
-207,158,189,116,250,244,233,149, 61,122,244, 16,  1,168, 38,127,  0, 24, 56,112, 32,182,108,217,130, 33, 67,134,136,158,122,234,
- 41, 77,118,118,246,190,238,221,187, 15,241,243,243,131, 78,119, 39, 53,113, 28, 53,103, 43,246,238,234,216, 49, 54, 59,166, 93,
-244, 57, 94,160,164,148, 71,132, 90, 70, 36,208, 49, 98, 63, 13,203,231,177,160, 38, 30, 39, 54,  5,106,138,149,  1, 71,247,157,
-238,223, 44, 52,114,139,183, 47,178,222,  8,128, 76, 38, 27,  1, 96,125, 45,175,118, 31,128,201,105,105,105,171,221,241, 96,  9,
- 33, 60, 91,248,123,140,179,188, 60,165, 84, 73,  8,153,  0, 96, 27, 33,228,123, 55,242, 58, 79,  1,216, 67, 41,173,116, 34,175,
-146, 16,178,199,118,221,151, 30,146,226,112,  0,225,  0,102,  2,216, 72,  8, 25, 78, 41,221,231, 77,  4,128, 16,146, 12, 96, 49,
-128,118,148, 82, 45, 33,100, 32,128,107, 50,153, 76, 67, 41,205,112, 55,  2, 32,179,154,250,238, 40, 45, 34,183,187,  1,238, 97,
- 16,128,163,148, 82, 74,172,110,211, 53,  0, 90, 66, 72, 27,251, 56, 15, 79, 34,  0,181, 61,254,134,120,255,213, 97,249, 81,223,
- 84, 71,  1, 98, 27,224,253,255, 17,230,255, 35,124, 43,147,121,230,253,155, 76, 38,122,252,248,113,  4,  6,  6, 34, 55, 55,151,
- 90, 44, 22,168,213,106,156, 63,127, 94, 17, 30, 30,142, 90, 97,191,236,110,221,186, 73, 55,109,218,164,232,215,175, 95,221,225,
- 62,147,137,182, 57,126, 22,194,192, 40,  8,114,149, 52,210, 18,  8,141,154,129,229,124, 21, 16, 94,115, 71,106,255,112,115,118,
-219,190, 39,164,187, 55, 79, 84,  0,187,234, 84,118,151,174, 95,255,103,108,155, 54,192,109,253, 27,  0,144,167, 87, 99,135,168,
-184,172,219, 67,195, 34,186,177,185,248,237,154, 10, 59, 78,223,226,231,151, 85,  5,  1, 64,  9,107,  8,189,110, 52,165,228, 23,
- 23,111,233, 29, 17, 81,167,  1,240,208, 99, 19, 24, 63,225,136, 30,102,237,111,133,109,187, 38,118,170,188,190,153,189,252, 91,
-102,133,137, 11,184, 85, 90,248,107,169,186,220,191, 31, 24,134,148,107, 12,193,178,137,241,109,228,223,159,188,238,172,205,200,
-229,114,226, 24,  1,112,244, 46,107,135,219,237, 36,157,146,146,130,196,196, 68, 82,215, 66, 49, 13, 25,141, 95,151,188,251, 17,
-246,238, 46,147,133,222, 17, 17,240, 54,170,144,158,158,222, 40,228,191,126,253,122,122,224,192,  1,208, 77,161, 32, 19, 84,248,
-228,147, 79, 64, 41,  5,195, 48, 88,185,114,165,215,145,  5,149, 74,101, 12, 11, 11,147, 30, 56,112, 96,215,176, 97,195, 70,218,
-116, 45,245,116,166,145, 13, 33,182,254,154,166, 84, 42, 87,133,135,135, 63,  3,160, 60, 60, 60,252, 57,165, 82,233,202, 81, 51,
-180,104,209,162,114,247,238,221, 83,165, 82,233,234, 46, 93,186,104, 19, 19, 19, 43,179,178,178,236, 41,100,108,219,182, 13, 34,
-145,  8,215,174, 93, 99,118,237,218, 21,212,170, 85,171,162,193,131,  7,231,159, 63,127,190, 78,129,177, 49,157, 52,122,189, 33,
-249,192,129,  3, 91,194,155,133,151,  7,  7,  5,221,128, 80,104, 50, 27, 25,163,153,103,212, 27,248,106,173,191,209,159,127,163,
-180, 76,178,111,247,174,165,221,186, 63,176,152, 53,232,188, 78, 43,243,107, 17, 13,145,201,100,246,151,216,194,246,217,111,155,
-102, 87, 29,  5,  5, 48,139, 16,210, 10, 64,137,157,115,235,178,208,109,164,242, 50,172,  3,244,174,214,146, 83, 27, 87,109,215,
-189, 76,  8,249,180, 30,121,  4,192, 56,  0, 11, 93,200, 91, 11, 96, 14, 33,100,181,139,242, 57, 54,154,104, 88,199, 59,244,129,
- 53,247,255, 14,128, 19,132,144, 14,  0, 10, 28,109, 12, 55,228, 61,  9, 96,154,141,100,245,182,178,234,109,199, 43,  9, 33, 66,
-  0,223,213, 39,207, 86, 23,207,  0,152,238,174,  1, 32,147,201, 86,  0,248,198,153, 60,155,204, 37,  0,  2, 97, 29,197,186,221,
- 86, 54, 49,172,131, 90,126,  3, 48,128, 16, 50, 19,192, 47,  0,118, 56, 43, 31, 96,157, 71,239, 36,215,143,218, 99,  3,146,146,
-146, 92, 26,  3, 73, 73, 73, 82,102,226, 31,121,123,187, 17, 96,255,238, 24,206,247, 90,222,196, 59,167,  4,186, 35,239,244,233,
-211,104,219,182, 45, 94,123,237,181,234, 54,179,110,221, 58,154,147,147,131,199, 30,123,236,142,235,253,252,252, 20, 98,177,216,
-169,188,232,211,167, 81,209,182, 37,142,188, 54,181, 90,222,197,127,110, 73,136,201,169, 84, 48,143,137,239, 40, 75, 97, 30, 11,
-145,184,254,217, 79,151,139,138,102,163,117,235, 95,  1, 12,164,160, 60, 92, 45,123, 77,103, 54,195,108,176,  6,201,206,149,149,
-225,170,129, 93,199, 39, 68,  3, 66, 76,151,139,138, 50,  0,192,217, 32,192, 86,209, 93,102,  3, 88,148,119,240,149,  2,113,228,
- 56, 85,113,137,184,117, 73,209, 49, 49,  4, 97, 29, 11,174, 89,162,148, 37,215, 33, 20, 10,154,119,143,244,127,170, 66, 99,250,
- 22,192,117, 87,158, 43,128,132,218,211,255,156,120,160, 82,111,214,  4,168, 43,255,255,119, 64, 67,167,234,217,239, 79, 79, 79,
-167, 13,149,183, 97,195,122,154,157,157, 13,146, 97, 53,140,247,188, 27,136, 17,243, 52, 24, 54,108, 24, 60,153,246, 87, 23,194,
-194,194,164,  0,240,224,131, 15,234,108,245,219, 16,121,170,240,240,240,201,  0,236,206,169, 81,169, 84,238,112,113,143,210,230,
- 36,114,  0,170, 34, 35, 35,115,159,120,226,137,229, 11, 22, 44,152, 97,177, 88,136, 68, 34, 65, 82, 82, 18,126,254,249,103,112,
- 28,135, 81,163, 70, 85,189,242,202, 43, 33,189,123,247, 62, 63,110,220,184,  1,  0,170, 12,134,186,215, 13, 74,123, 49,141,147,
- 62,252,200,177,  7,122,244,124,250,216,209,163,235, 78,241,249,201,237,219,181,127, 43, 40, 60,162, 92, 16, 33,166,251,119,237,
-147,148,171,148,177, 81, 97, 17,111,117,234,212,233,167,128, 72,255,  3,159,252, 71,110,113,214,127, 61,141,  0,240, 96,157,238,
- 55, 24,192,  7,  0, 94,178, 17,143,191, 99,127,130,117,144,216,101,  0,255,178,165,  4,142, 59,145,207,192, 58,200,108, 15,  0,
- 63, 55,202,115, 24,192,  8, 56,223,163,128,  1, 16,  1,160, 29,128, 19, 46,100,158,176, 93,215, 28,206,115,147, 12,  0, 33,172,
-211, 54,166,  0,120,194, 70,220,121, 54,217,121,182,227, 13,  0,126,128,117,198,129, 10,206,231,125,218,229, 77,180, 69, 30,186,
-216,140, 36,199,114,222,  4, 32,  3,112,193,118,237,247, 46,228,189, 10,235,236,  6,119, 82, 25,126,  0,118,  3, 88,239,162, 62,
-198,  3,248,208,246,247,148, 67,249,  4,182,186, 76,  7,240, 25,128,121,182,223,111, 58,251, 15,247,236,217,147, 77,  8, 65, 97,
- 97,161,194, 62, 19,160,182,215, 95, 88, 88,168,176, 95,235,234,  1,146,147,147,179, 51, 51, 51,177,238, 23,182,122,228,126,109,
- 47,125,221, 47,108,245,181,247, 82, 94, 78, 78, 14,134, 14,173, 57,212, 61, 58, 58, 90,186,105,211, 38, 69,251,246,237,165, 28,
-199, 41,230,207,159, 79,237,211,  0,  9, 33,232,219,183,175, 83,163,162,115, 78, 14,190, 11,111, 46, 13,114, 56,215,117,230,  8,
-104, 23, 95,  7, 30,110, 14,202,  1,185,243,  5,180,138, 11, 64,185, 62,  8, 42, 18,135, 94, 67,183, 75,235,107,246,182, 25, 28,
-155,  1,108,238,216, 46,170, 51,128,215,140, 22, 14, 25,185,  5, 24, 26,105, 77,119, 18, 74, 53, 26,179,249,131, 91,183,110,221,
-114,163, 77, 45,  6,224,159,119,161,252,233,138, 19,155,154,149,222, 44, 71,233, 45, 13,248,124,165,127,149,138,162, 66,109,161,
-205, 35,132, 33,124, 14, 99,245, 70,203,119,243, 94, 27, 28,210,188,107,106,133, 11,162,201,118, 69, 46, 13,206, 97, 39,110,178,
-254,205,154,224,161,  7,124,119,103,  1,144,  9, 42, 52, 68,158, 51,143,189, 79,159, 62, 77,198, 16,169, 30,236,104, 39,255, 92,
- 51,214, 40,172,125,172,161,228,111, 39,124, 62,159, 31,193,231,243, 75, 15, 31, 62,252, 85,  3,188,127,  0,104,171, 84, 42, 63,
-183, 69,  1, 38,218,102,  4, 76, 84, 42,149,223,215,115,207, 70, 91,132,152,218,116,119,213,252,249,243, 95,210,106,181,173, 78,
-231,230, 38,234,245,250, 64,133, 98, 31, 17,137, 69, 96,  8,131,125,251,246,  9,186,117,235,118, 42, 37, 37,101, 20,128,170,177,
- 99,199,226,195, 15, 63,116, 42, 92,177,247,103,110,244,216,209,251,123,245,138,155,205,154,141,143, 94,206,187, 52,159, 43,200,
- 55,  3,160, 98, 48,166, 30, 29, 59,167, 55,111, 30,177,147,199, 23,126,251,225,187, 11, 27, 52,168,188, 46,  3,224, 53,155,133,
-243, 24,128,243,  0,  2,234,184,111,167,205, 99, 79,134,117, 73,196, 41, 78,228,243,  0,196,218, 94,152, 59,  6,128,210,118, 61,
-175, 30,121,  9,  0, 46,185, 41,239,146,237,250, 45,245,200, 75,  3,240, 44,128,179,176,206, 80,184, 90, 75,182,194,230,253,207,
-176,121,195, 95,  3, 78, 71, 92,240,108, 30,251, 20,  0,189,109, 81,132,186,202,169,182,253,190,210,102,  4,124, 93,143,188,181,
-182,134,230,206,243, 82,219,245,245,189,191,143,109,145,141, 61, 54,163,  6,181,100,255, 12,160,155,173, 46,242,108,134, 84, 27,
- 87, 29,210,182, 64,135,162,174,133,128, 60,181,210,229,114, 57,121, 86, 38,163,207,126,166,173, 99,225, 30,149,199,  4,209, 88,
-242, 94,126,249,229, 59,174, 25, 54,108, 88,246,176, 97,195,  8,  0, 12, 31, 62,220, 35, 37,180,243,229,151, 73, 80,237, 52, 69,
-187,128,108,201,242,174,  4,  0,186,203,  5,196, 26,148,177,143,204,190,230,102, 51,176,213,139,133, 22,128, 15,240,170, 80, 77,
-254, 54, 23,249,150, 88, 44,118, 87,113, 16,  0,239, 31,204, 58,229, 23,217,186,221,227, 28,252, 98,139, 10, 75,120, 38, 67,  5,
-109,209, 60,128,  4,248, 11,136,217,196, 65, 85,193,154,137,132, 72, 42, 53,230,142,205,157, 59,  4,117,146, 69,237,239,127,230,
-242,189,119,123, 22, 64, 67,229, 57,243,216,219,183,111,223,100,200,159,251, 62, 20,123,114,173, 99,242,190, 86,176,248,238, 48,
- 11, 74,105,163,212,171, 93,143, 88, 44, 22, 37,  0,196,199,199, 55,104, 65, 32, 59,249,219,112,219,246,215, 85,223,152,233,160,
- 79, 77,  0,138,  0, 96,217,178,101,227,167, 62, 55, 53,169, 95,159,190, 99, 53,106,117,132,217, 98, 54, 68, 70, 70, 22, 71, 69,
- 69,229,171,213,234,173, 23, 46, 92,184,253,214, 91,111,185, 85,174,237, 91,183,115,  0, 54, 62,243,244, 63,114,  6, 15, 25,242,
-131, 68, 34,  9, 38,160, 28, 33,  4, 28, 71, 43,245, 90,149,226, 98,110,161,198, 79, 40,104, 80,120,171,182,  1, 96,  1,240, 92,
- 61,  4,226,136, 99,182,143,197,246,169, 11, 22, 88, 71,212,243,220, 44,143,  2, 64,150, 11,121,219, 96, 29,180,230, 14,158,118,
-163,124,171,  0,124,229, 66,206,239,176, 78,129,132, 27,242,190,177, 69, 12, 92,161,192,230,217,187, 83, 62,158,  7,117,186,202,
-133,188,135,221,144,103,143, 54,124,109,123, 55, 22,119, 58,230,136, 17, 35, 18,236,132,239, 24,130,247,102, 41, 96,185, 92, 78,
- 50, 50, 50, 18,152,137,141,179,116,111, 99,203,187, 31,144, 95,116,195, 24,219,166,205,215,211, 23,175,124,214,126,142, 21, 48,
-235, 13, 58,110,119, 73, 97,161,198,173,198,180,106, 21,189,125, 98, 13, 89,248,253,111,179,119, 44, 31,190,245,200,209,155, 47,
- 68,  4,115,163,153,176,160, 16, 74,  1, 66,168,209,104,230, 74, 56,224, 54,107,228, 66,138,111,234,217, 88, 15,202,152,146,146,
- 34,117, 76,  7,164,164,164, 72,155,202,251,107,138, 43,  1,222, 47,120,100,158,230,174, 62,163,109,218,119, 75,177, 88,124, 51,
- 62, 62,254,225,198,144,169, 84, 42,247,134,135,135, 63,171, 84, 42,191,118,243, 22, 30,172,105,128,106,125,186,122,205,234, 76,
-  0,153,141,245,156,223,124,251,101,  1,106,166,159, 27, 21,117, 25,  0,222,108,106,224,204, 10,225, 96, 29,177,233,147,247,215,
-148, 87,  3, 54,162,111,180,142,158,156,156,156,237,106, 94,254,159, 41,239,126, 64,185, 78, 55, 21,240, 51,  1,136,224, 64,139,
- 13,  6,118, 67, 73, 73,217, 25, 79,166, 77, 53,235,243, 28,221,246,201, 72,114,203,255,201,156,214, 67,144,147,181,250,227,215,
-194,194, 68,115,248, 60, 66,111, 42, 13, 23,111,178,230,117, 18,  1, 35,150,240,121, 60,147,153, 19,123, 82, 62,123,142,223, 62,
-240,204,219,125,  0,238,152,250,231, 16,250,247,102,177,153,218,158,185, 59,231,239,181,188,123,109,248,184, 11,102,162, 10,132,
- 16,140, 30,243,199,128,232,157,187, 78, 86,235,144, 81, 35,227, 27,229, 89, 41,165, 37,104,228,117,248, 61, 32,127,192,186,252,
- 60,135,187,180, 20,240,189,  0,191, 86,197, 83,119,149,125,109,212, 53,138,221, 39,239,175, 45,207,135,166, 15,165, 82, 73, 97,
- 77,115, 53,  8,183,252,199, 82,  0, 56,184,126, 25, 73,156,250,250, 39, 83,210,114, 63,123,105,210,225,110,172,150,196,132,  9,
-248,205, 64,136, 46, 64,194, 47,123,160, 75, 80,158,167,178, 19, 19, 19, 73,122,122,186,215,235,205,223, 45,242,188, 95, 34,  0,
- 77,207,120,176,198,134,254,  6,221, 43, 24,214, 13,129, 68,184, 79,119,  3, 36,189,123,247,254,123, 12,145,245,193,  7, 31,192,
-231,  1,126, 34,  2,142,179,234,232, 42,189,175,251,251,224,195,223, 86, 31,248, 94,129, 15, 62,252,125, 96,182,  0,106,157,157,
-244,125,228,239,131, 15,127,103, 48,190, 87,224,131, 15, 62,248,224,131, 15, 62,  3,192,  7, 31,124,240,193,  7, 31,124,240, 25,
-  0, 62,248,224,131, 15, 62,248,224,195, 95, 17, 53,198,  0, 76,159, 62,221,235,145,155,117,173,173, 93,151,188, 31,191,255, 95,
-194,  3, 61, 59, 42, 90,182,142,146,106,244, 90,197,126, 69,142, 52,121,226,139,217,222,202, 91,190,122,115, 66,239,158,  3, 20,
-183,138,139,225, 47,241,199,245,162,124,233,243, 83,199,120, 45,175,177,159,247,236,254,233,  9,  3,  7,180, 87, 72,252,121,224,
-243, 24, 16, 49,193, 77,245, 43,196, 91,121, 39,111,245, 76,232, 55,160,159, 34, 56,128,  7,240,129,242,211,171,136,187,229,139,
-125, 36,214,235,231,189,244,243,165, 59,228,245,239,223,223,107,121, 71,143, 30,189, 83, 94,172,247,229, 59,122,233,206,242, 13,
-232,212,201,107,121, 71,242,242,238, 59,121,143,212, 83,191, 11, 23,166,211, 57,115, 82,156,254,254,115, 29,245, 27,251,232, 35,
-222,183,151,221, 63,223,217,158, 31,241,190,189, 44,204, 84,210, 32, 46,191,198,185,102,177, 79,122, 45,239,246,165,239,238, 40,
-223,169,183,175,121,173, 72,227,230,183,187,227,220, 39,205,138,189,150,247,218,237, 40,252, 25,250,170, 41,201, 59,117,234,148,
-215,242,226,226,226,188,146, 71,  8,225,215, 53, 69,214, 91,121,141, 93, 62, 79,228,121,108,  0, 56,131, 97,163, 44, 22, 64,123,
- 88,215,  9,200, 23, 79,146, 95,117,247, 63,216,252,205,194,  4,  2, 14, 17, 33, 97,200,217,127, 82,177,118,237, 50, 12, 78, 28,
- 12,179, 86,167,232,214,101, 24, 56, 14,138,223, 99,214, 74,227,226,122,226,242,229,107,168,172,208,162,199,160,201,217,206,228,
-173,250, 86,145, 64, 65,208,174, 99,123,133,236,245,121, 80,254,119, 51,190,249,223, 23,  0,196,216,121,166,  8, 12,  3,197,178,
-247,223, 69, 94,222, 69, 68, 71,183,131, 72,194,199,141,162, 60,167,139,139, 92,217,242,  5, 21, 10,133,144, 72, 36,200,207,207,
- 71,171,230, 65,104,198, 15, 64,171,182, 33,  8,149,  4,195,159, 88,192, 48, 12, 40,103,129, 78,196, 71,229,173, 74,148,246,117,
- 61,151,188, 50,255,115, 26, 40,169,196,160,126, 29, 16,224,207,135, 80,194,128,207,  3, 24, 33, 31,157,163,254, 71, 77,148,135,
- 43, 55,166,186, 93,225,203,119, 25, 18,162,162,162, 48,248,193,214, 10,189,193,  8, 70, 36,  1, 76, 64,110, 85,124,130, 94,167,
-197,128,230, 23,179,255, 44, 43,114,213,170, 85, 52, 45, 45,237,111, 53,191,190,169,194, 21,209, 55,240,122,127,  0,253, 90, 72,
-252, 62, 44, 46, 46,238, 34, 16,139,192,249,249,125,  4,235,202,152, 85, 77,229, 29,228,255,190, 43,225,234,185,253,119,236, 53,
-144,152,242,209, 95,165,141,146,111,214,173,187, 32, 18, 10, 37, 28,199,  5,251,  7,  4,  4, 60, 62,122,180, 31,172,243,209,155,
-234,200, 78,123,180,153,107,240,195, 19, 18, 20, 28, 28, 60,171,115,231,206,227, 68, 34, 81,235,162,162,162,162,226,226,226,163,
- 44,203,206,167,148,230,123, 33, 47, 36, 52, 52,116,222,240,225,195, 71,190,248,226,139,209,253,251,247,191,117,246,236,217,195,
-  6,131, 97, 46,165,244,236,223, 38,  2,224,132,252,121,254, 34,126,191,103,134,116, 88,194, 81,106, 56,120,241,214,127,207,111,
-148,237, 17, 79,146,159,115,117,111,202,232,142,116,244,240,133, 48, 85, 85,128,111, 97,240,219,185,139, 72, 77,125,229,143, 22,
-193,  0,191,230,124,141,102,109,163, 20, 92,149, 26, 44, 71,176,111, 95,142,180, 72, 95,183, 60,153,108, 62,133, 48, 24,196, 47,
-  8, 39,207, 21,226,204,185,231,176,250,187,159,171,127,231, 56,224,209, 65,131,128,170, 18,  0,129,200, 63,123, 30,130,102, 33,
- 24, 60,240,  1, 69,133,174, 30,155,133, 48,  0, 97,208,187,103, 60, 90,248, 11,209,170,153, 24, 65,225, 97,  8, 21,  5, 34, 84,
-204,131,128,199,131,201, 98, 65,133,153,195,177,219, 39, 92,190,212,146, 51,243,104, 88, 48, 16,228,231,135,136,102,225,  8, 10,
-242,  3,101, 44, 48,115, 85,176,192,130,128,  0, 63, 52,107,209, 26,237, 99,127,161, 89,251,135,212,171,148, 86,102,178, 52, 56,
-208, 31,237, 99,154, 35,162, 89, 56,180, 90, 45,132, 34, 49,  4,  6,235,226,124, 49,209,237, 20,229,170, 10,124,159, 83, 32, 45,
- 44,186,  1, 85,201, 53,204,127, 49,190, 94, 99, 32,125, 97,186,219, 74, 34,241,217, 68,105,104,100,104,118,125,228,127, 47,140,
-128,183, 23, 47,166,  0, 48,255,159,255,108,148,255,227,173, 69,139, 40,  0, 44,152, 61,219,107,121, 63, 29, 58,148,202,178,236,
-215,  0, 48, 78, 42,101,188, 81,190,242, 77,155,168, 77,  9, 85,159,163,148,130, 16, 82,253,215,126,206,126, 93, 90,138,115,194,
-158, 51, 39,133,184, 75,234, 30,146,127, 55,127,147,121,115, 96, 72,112, 23,  0, 16, 74,196, 96,245,  6,112, 90,221,162,195,  7,
-246,191,255,208,248,241, 93,  1, 20,186, 18, 98,228,  9, 41,172,115,167,205, 54, 82,224,108,122,168, 78, 93,212,235,161,145,184,
-176,111,155, 71,117,116,245,220,126, 69,199,  7, 18,164,209, 93, 31,245,220, 40, 78, 41,247,232,242,  9, 19, 38, 96, 83, 74, 86,
-189,215, 72,179,106,110, 69,210, 45,196,250,168,165,  6, 14,122,179,181, 94,181,182,191,242,  1, 33,232, 20, 40,168, 87,222,146,
- 37, 75,178,223,126,245,141,230, 99,198,141, 13, 48, 24,244, 88,246,201,199,204,242,229,203, 13, 51,103,206,140,  2,112,163,177,
-251,222,238,221,187, 19,183,110,221,154,  9,120,182,230, 64, 78, 78, 14, 45, 40, 40,128, 82,169,132, 70,163, 65, 96, 96, 32,194,
-195,195, 17, 29, 29,141, 65,131,  6,121,213,239,  8, 33,195,226,227,227,215,189,254,250,235,151, 59,119,238,252,117, 92, 92,220,
-249, 91,183,110,181,206,201,201,137,159, 58,117,234, 14, 66,200, 34, 74,169, 39, 91,213, 75,199,141, 27,151,190,112,225,194,112,
-147,201,  4,137, 68,  2,127,127,255,150, 90,173,118,252,152, 49, 99, 30, 39,132,204,164,148,254,239,126, 36,247,211,167, 79,215,
- 56,174,107, 67, 55,190, 19,210,111,  3,160,  3,172, 75, 28, 90,180, 70,243,245,156, 75,165,159, 14,138,109,254,202,240,110, 45,
-223,111, 17, 44,105,165,216, 40,219,  8,224,162,120,146,220,233, 38, 53,198,170,114,180,232,248, 48,230,253,115, 28,190,150,255,
-209, 23,247, 31, 94,  9,173,206,136, 81,137,175,224,193,193,207,226,201,  9,195, 33,145,136,192, 90,204,208,232, 88, 69,167,129,
- 29,157, 52,142,107,  0, 11,140,155,188,  2,207,191,254, 66,245,217, 71, 31, 76,128, 88, 44,194, 15,251,126,198,206, 67, 57, 88,
-183,230, 11, 24,244, 70,  8,121,124,  4,248,  9,161, 85, 22, 73, 43,138, 80,231,238, 99,148, 82,128,114,214, 15,195,129, 82, 10,
- 35, 43,170, 94,222,129,178, 22, 88,120,128,  5, 22, 88, 88, 14,102, 75,253,  6,108,254,209,  5,180,117,  4, 69, 80,160, 63,162,
- 90,199,160, 75,143,142,  8, 12,144,160,178,170, 12, 37,101, 37, 80, 85,222,130,201, 64,224,231,231,135,136,136,193, 24, 63,246,
- 44,221,188,181,115,221, 97,252,245,215,169, 37, 48, 16,122, 62, 32, 20, 11,161,215,  9,193,234,132, 48,136, 69,224, 19, 51, 40,
-120, 48,232,171,160,215,105,208,186,117, 43,133,144,199, 71, 57,212,248,244,211,  3, 16,137,234,111, 28,139,215, 45,118,217,128,
-254, 57,229,159,245,254,174, 82,169,104,173,227, 62, 97, 97, 97,121,132, 16,  3,165,148, 31, 26, 26,234,151,159,159, 31,158,158,
-158,158,157,150,150,214,202,219,134, 44,140,140,156, 84,253,127,  0,  9,161, 64,163, 69, 59, 86,165,167,211, 25, 51,102, 72, 77,
-165,165, 30,201,252,233,208, 33, 89,255,254,253,231, 15,233,221, 27, 38,145,  8, 75,151, 46,229,198, 15, 31,158, 68, 41,205,242,
- 80,161, 97,201,251,239, 87, 31,207,122,239, 61, 44,157, 59,183,222, 99, 87,168,109,  4, 44, 92,152, 78,251,244,233,131,172,172,
- 43, 52, 49,177,125,119,  0, 87, 22, 46, 76,215,123, 72,254, 57, 61,186,119, 15,178,247, 25,127,177,  4, 55,203, 74,161, 86, 85,
- 32,190,255,  0,191,159, 86,175,201,122,108,234,115,221, 97, 93, 27,189, 62,152, 95,158,191,156,255,244,248,199,249,177,209,209,
-156,221, 51,124,111,233,103, 53, 46,154, 59,235, 37,171,225,247,234, 76,233,148,209, 73, 30,215,171, 87,228, 95,109, 33,135,121,
-112,113,162, 71,162,253,249,  4,103,230, 78,  3,  9,106,  6,203,149, 51, 48, 94,249, 29,121,229, 90,244,221, 85,234,214,253, 43,
-229,242,131,175,203,102,180,155,242,143,169, 33,233,235,191,227,162,163,163,153,121, 11, 23, 33,240,253,121,248,225,135, 31,138,
-159,120,226,  9,175, 12, 81, 39,196,159,180,117,235,214, 61,246,227,177, 99,199,142,112,231, 62,141, 70,147,176,103,207, 30,133,
-201,100, 66,135, 14, 29, 48,116,232, 80,  4,  7,  7,163,162,162,  2, 55,110,220,192,213,171, 87,113,227,198, 13, 58, 98,196,  8,
-105, 96, 96, 96,182,  7,125,101,236,240,225,195,151, 45, 89,178,100, 99, 92, 92,220, 50,187,177,211,170, 85, 43,140, 31, 63,158,
- 36, 39, 39,  7,  0,200, 33,132,228, 56,219,189,180,182,188,153, 51,103,102,204,152, 49,131, 57,113,226,  4,  8, 33,  8, 15, 15,
-175,254,236,218,181, 75, 56,112,224,192, 47,  8, 33, 71,220,145,215,148,201,223,126,174,246,115,240,235, 32,255,240,190, 49,225,
- 83,122,183, 11,155, 76,  8, 17, 80, 74, 77,156,245,195, 90, 76,  6,189,144,225, 90,245,104, 33,254,103,179,160, 14, 29,183, 30,
-187,250,157, 97,163,236,160,120,146,252,102, 61,234, 27,221,186,118,  6,195,100, 35,175, 66,  9,224, 60, 42,139, 47, 65, 32, 22,
- 97,219,142,255, 66,119,219,130,201,207,189,  6,142,  3, 70, 63, 62,  8, 22,126,128,203,135,203,203, 59, 15,142,  3, 70,245, 34,
-  0, 90,  1,104,  7,131,145, 69,242,163, 35, 32, 14, 97,176,110,195,110, 48, 12,144,241,221,215, 40,190,242,187,244,137,132,216,
-236,139,167,234,150,197, 81,128,227, 56,112, 28,  7,139,197,  2,163,128,194, 68, 76, 96, 89, 22, 58, 63,  3,192,137,193, 80, 11,
- 44, 66,138, 42,214,  0,173,186,178,222,178, 69,  4, 24,193,231, 75, 16, 30, 30,142,142, 29, 59, 34,178,197,  0,128,199,192, 98,
- 57,  1,134, 86,192,160, 53,195,194,105, 81,114,163, 28, 17,225,183, 17, 30, 50, 24, 42,205, 91,  9,117,109,242, 34, 49,152, 65,
-141,183,  1,131,  8, 44, 99,130, 86,200, 71,149, 68,  0,190, 64,  8,112,254, 32, 60,130, 42,173, 14,170,146,107,200, 63,113,  8,
-229,133,133,224, 56, 14, 12,229,121,213,104, 86,175,248,195,112,158, 58,125,170,107, 61,105,219,215,221,222,116,210,211,211,231,
-188,254,250,235, 47, 20, 22, 22, 50,132,144,  8,185, 92,254, 29,172,155, 59,249, 53,160, 45, 11, 62,255,252,243, 13,183,110,221,
- 66, 70, 70,  6,250,118,238,204, 11,237,209,163,193, 29,100,193,236,217, 68,  5, 36, 80, 74, 21,203,151, 47, 87,  0,128,108,194,
-  4,183,189, 18,150,101, 87, 14,177,117, 38,161, 80,136, 78,157, 58, 97,243,190,125,153,182,104,128,219,114,238,214, 86,181,115,
-230,164,144,172,172, 43,244,196,  9,107,196,202,225,239,239, 15, 61,244, 80,241,156, 57, 41,193,238,114,150,191,201,188,185, 71,
-247,238, 65, 60,134,193,139, 79, 79,134,222, 96,196,210,175,190,130,159, 68,  2,131,193,  0,131, 94,143, 94,113,189, 99,127, 94,
-191,126,198, 35,147, 39,127,234, 42,234, 56,119,214, 75, 28,  0,230, 82, 65,  1, 83,155,240,107,119, 79,111,158,189, 77,151, 97,
-210,172,244, 55,105,210,232,105, 82, 42,138,245,202, 16,112,220,181,143,110, 10,117,121,222,165,  5, 21,194,199,181, 42, 11,246,
- 39, 69, 64,240,138, 28,234,201, 49,224,135, 54,247,136,252,247,238,221, 91, 18,221,178,213,141,127,188,248, 66,155, 55, 95,155,
-141,229,107, 86,158,235, 31, 31,223,126,229,103, 43,253, 94,157,253,  6,214, 15, 26,128, 13, 27, 54, 60,243,212, 83, 79,173,107,
- 32,241, 39,108,221,186,181,218, 97,146,203,229,249,176,110,235,190,215,157,251,247,236,217,163,136,136,136, 64, 92, 92,156,153,
- 97, 24,190, 53, 58,203, 65, 32, 16, 32, 44, 44, 12, 45, 90,180,192,213,171, 87,177,103,207, 30,197,248,241,227,221,234, 43,132,
-144,148,199, 30,123,236,227, 37, 75,150,124,214,185,115,231, 21,132, 16, 14,192, 23,  0, 30,  1,112,  0,192, 92, 74,105,  1, 33,
-228, 13,  0,115,221,145,183,100,230,204,239,135,164,164,144,237,219,183,131,207,231, 67,161, 80,224,204,153, 51,232,216,177, 35,
- 62,248,224,  3, 60,240,192,  3,120,225,133, 23,248,239,188,243,206,146,251,145,252,211,230,124,244,135,163,179,240,205, 58,141,
-128,186,102,  1, 48,124, 30,195, 55,115, 84,163, 55,153,111, 16, 66, 68,  1, 34, 94,207, 32, 33,250, 74,186, 63,212,  1,210,231,
-129, 46, 67,209,210,159,142,125,102,112,204,155, 97, 65,126, 73,134,141,178,122,148,  9,  7, 30,207, 78, 72, 65,  0, 90, 35, 56,
-234, 49,232, 45,  6,172,144,175,193, 55, 27, 50, 48, 66, 58, 24,  0,160,211,  1, 60,190,115, 81, 18,191,206,  0,  0,139,197,113,
-111,154, 18,  0, 57, 96,120, 34, 76, 73,157,134,228,  9, 19,240,211, 14, 43,145,249,249,  3,218,170,155,245,190, 44, 19,120,213,
-228,111, 50, 91, 96, 84,155,160,171,208,161,194,196,162, 92,199, 66,101,212,160, 66, 83,  5, 85,169,  6,229, 21,  6,148, 87, 57,
- 95, 66,253,140, 98, 33, 37,132,128,199, 35, 32,140,  8, 22, 11,133, 89, 87,  8,109,197, 37, 20,151, 84,162, 92, 85,133, 74,141,
-  5,229, 42,  3,138,138, 74,112,238,194,105, 84, 84,158,198,128,248, 62, 78,247, 70,231,  1, 96, 52,  6,232, 47,223,128,242,183,
-243, 80, 22, 94,131,186,178, 28,234,202,114, 92, 59,119,  2,135,211, 87, 35,103,211, 58,148, 93,190, 12, 11,203, 89, 23,198,230,
-221,155, 52, 96, 90, 90, 26,177,133,253,217,228,228,228,174,243,230,205,123,189,101,203,150,218,140,140,140,158,233,233,233, 63,
-  2,136,179, 85,186,215, 11, 78,  9, 35, 35,103,  1,192,192,  7, 30,192,140, 25, 51, 74,143, 93,184,144,117,234,236,217,132,198,
- 40,127, 40,144, 45,155, 48,129,204,156, 57, 83, 10,  0,130,230,205, 61,146,107,178,133, 89, 54,111,222,140,230,205,155,227,205,
-153, 51, 49,107,214, 44,108, 81, 40,154, 68, 30,214, 78,250,114,185,188,250,  3,  0,251,247,239,143,  2,240,184,155, 98,250,133,
-132,134,118,225, 49, 12,158, 75, 78, 70, 69,165, 26, 69, 55,111, 64, 32,224,131,207,183,126,  4,  2,  1, 68, 18, 63,116,136,142,
-254,228,242,241, 19,110,109,230,115,169,160,  0,223,110,254,177,250, 99,199,123, 75, 63,195,123, 75, 63,195, 78,197,126, 47,158,
- 88,147,  0,  0,157,123,140,202, 78, 28, 61, 77,154,185,253, 43, 69, 86,250,155, 77,162, 46,114,215,126,138,210,231,227,241, 80,
-102, 25,186,133,240,193, 11, 10,131, 89, 85,138,190,187, 74,225,207,183,114, 32,207,197,156,172,171,151, 47, 43, 87,201,255,215,
-121,237,255,214,226,191, 95,125,113,237,139, 37, 31,191,247,250, 75, 47, 63, 62,111,254, 60, 72,  2,253, 49,116,224, 96, 28, 59,
-122,108,237,193, 67,  7,189,126,230,218,228,191,125,251,118,244,235,215,175,  3,128,201,238,134,253, 77, 38, 19,226,227,227, 57,
-139,197,194,175,172,172,132,209,104,132,209,104,196,133, 11, 23,160, 80, 40,112,232,208, 33,180,108,217, 18, 38,147,  9, 57, 57,
- 57, 46,203, 74,  8,153, 52, 97,194,132, 79,199,141, 27, 23,180, 98,197,138, 32, 66,136, 16,192,126,  0,149,  0,226,  1,252,  8,
-192,110,120,238,  5,240,128, 43,121, 91, 95,127,253,251,199,123,245, 34,235,147,147, 81,124,234, 20, 62,254,248, 99,238,167,159,
-126,250,207,245,235,215,155, 43, 20,138,231,231,204,153,  3,147,201,132,193,131,  7,195,223,223,127, 16,238,115, 56, 26,  3, 53,
-200,190,246,  9,241, 36,121,217,175,151,203, 86,126,125,224,242,107, 23,138, 43,247, 48,160,124,128,  2,143,125,128, 95,251,124,
-140, 15, 85,201,216,215,125, 17,240,200, 91,  8, 20,112,113,143,246,142,158,108, 75, 23,220,129,237,251,202,  9,160,198,152,212,
- 87,192,113,  0, 80, 14, 32, 16,128,  9,237, 58,199, 67, 44,226,195, 98, 54,130,178, 86, 82, 13, 12, 12,132,178, 92,229,244, 33,
- 62,253,228,117,  2,  0,231,126,253, 10, 12, 83,211, 73,224,244,191,195, 96, 52,129, 39, 16,131,  8,173, 57, 52,141, 90,141, 65,
-131,234,175, 59, 62,199,130,227, 56,152,205,102, 24,141, 70, 84,113,102, 84,178, 38,168,111,170, 81,121,163, 18,234,146,114,148,
-171, 43, 80, 98,208, 65,173,173, 64,133,209,249, 88,167,192,  0, 45,204,102, 14, 70,214,130,138, 74, 53,242, 46, 23,226,232,137,
- 92,252,122, 52, 23,231, 47,228,163,232,250,109, 84,105, 89,104,170,140,184, 89, 92,137,179,191, 95, 69, 78,206, 41, 20,221, 44,
-113, 42,211,209,212, 49, 87,106, 81,116,250, 60,126,219,181, 15,153,107, 62,193,190,141,107, 80,148,127, 25, 28, 53,129, 35,164,
-154,248, 61, 73,174,185, 10,243,187,  2,159,207,  7,128, 91,  0,110,133,134,134, 22,  5,  6,  6, 26,231,204,153,115, 12,214,  1,
- 99, 12,172,107,100,231,121, 43,255,243,207, 63, 95,144,156,156, 12,  0,136,137,136,104,110,203,137,243, 26,179,115,216,195,255,
-246, 72,128, 27,225,255, 68,  0, 88,186,116, 41, 46,221,188,137,113, 35, 70,192, 30, 13,200,205,205,  5,  0,187, 17,224, 86, 85,
-204,122,239, 61,188,241,254,251,213,225,125,251,119,251,177,253,187, 59,225,127, 59,178,178,174,216,183,214,173,113,222,126,156,
-149,117,229, 91,119,228,132,240,249, 31, 26, 88, 35,120, 60, 30, 46, 92,201,199,149,162,235, 56,114,250, 12, 88,214,  4,  6,  4,
-124, 62, 31,132, 16,112, 22, 11,244, 90, 29,114,247,103,239,115, 67, 44,227, 72,250, 79,143,127,252, 14,143,255,200,201, 92, 56,
- 70,  8,220,131, 67, 56, 89, 20,155,109, 31,244,151,149,254, 38, 21,152, 47, 37,252,169, 26,184,252, 38,132,109, 59,161,116,198,
-131,200, 93,251, 41,248,205, 90, 86,255, 84, 58,227, 65, 52, 19, 51,  8,226,215,223, 92, 58,199,118,110,229,231,231,239,247,223,
- 47, 63, 55, 72, 31,122, 72, 56, 96,208,192,245, 87, 47, 95,229, 46, 92,206,  3, 56, 10,177, 72,132,193,125,  6, 99,199,246, 29,
-216,186,117,171, 71, 70,192,238,221,187, 19,100, 50, 25,181,147,255,158, 61,123,176,114,229, 74, 22,  0,142, 30, 61,202,202,100,
-178,167,220, 73, 45, 20, 20, 20,192,182, 53, 49, 83, 80, 80,128,204,204, 76,228,230,230, 66,171,213, 66,165, 82,225,248,241,227,
- 40, 44, 44,196,245,235,215,209,174, 93, 59, 20, 20, 20,212, 43,143,199,227, 77,121,242,201, 39, 23, 39, 36, 36,  4, 28, 59,118,
- 44, 72,167,211,253, 67, 34,145,100,  3,248,140, 82,250, 22,165,180,210,102,  0,244, 35,132,  8, 41,165, 38,212, 51,189, 93, 40,
- 20, 78,249, 97,214,172,245,131,155, 55, 39,230,217,179, 49,136,101,113,108,251,118, 90, 92, 92, 60,141, 82,250, 30,165,180, 12,
-192,215,231,206,157, 51,155,205,102,  4,  4,  4, 32, 42, 42, 42,192,100, 50,225,175,136,186, 82,  0,145,  0, 58,140,237,219,246,
-197, 54,225,254,147, 97,210,  3,157,147,112, 50, 98, 44,134,207, 92, 13,253,237, 10,240,130,  2,161, 88, 54,  5, 67,187,253,138,
-176,220,204, 97,  0,218, 58,251, 15, 58,  6,181,198,111,185, 91, 28,236, 13, 45,172,105, 66, 19, 96, 50,130,207,241,192,216,250,
-253,214, 31,172,233,166,193, 35, 39, 56,111,168,103, 41, 30,141,115, 52,240,136,237, 49,  4,128, 64, 12, 51,177,192,230,  7, 99,
-226,228,151,  1, 64,113,237,240, 42,167, 61,203,194, 81,152, 57,  6,140,217, 12,134, 53, 66,103,179, 44,244, 60, 30,252,205,122,
-168,245, 20, 68, 64, 96,177, 88,160,179,  0,165, 90, 22,206,146,217,102,150,131, 65,192,  3,167, 51,195,204, 85, 66, 83,101,  2,
-143,  8, 96, 52,155,192, 82, 22,102, 19, 11,  8, 57, 48,  4, 32, 34, 14,149,122, 11, 74,202,116,208, 26,205,117, 58,201, 12,177,
- 84, 27,  0,132,252,193, 39, 38,131, 30,149,229,229, 96,  8, 15,124, 62,  5, 40, 31, 60,226,125,226,239,226,181,139,108,231,118,
-157,133,238,132,253,107, 89,210,144, 72, 36,  0,160,  7,192,242,249,124, 92,185,114,  5, 11, 23, 46,124, 28,192,245, 57,115,230,
-196,  5,  7,  7,135, 84, 86, 86, 94,171,168,168,240, 56,220, 45,140,140,156, 10,  0, 45, 90,180,168, 62, 55,115,230,204,138,207,
- 62,251, 44, 11, 64, 98, 92,143, 30,123, 27,171, 35,204,156, 57, 83,234,142,  1,240,211,161, 67,  9,253,251,247,143, 26,210,187,
- 55, 72, 96, 32, 22, 46, 92,136,217,179,103, 67, 32, 16,192,164, 82, 33, 56, 56, 24,111,206,156, 89, 61, 46,192,157,193,129,181,
-115,252,174,198,  4, 56,195, 66, 15,  6,119,158, 56,113,  2, 39, 78,156,168,190,222, 89,142, 83, 85, 94,222, 37, 32, 48, 16,183,
- 85, 42, 40,142, 28,  1,159,225,193,104, 50, 65,167,215,131,227,184,234,193,138,102, 19, 11,214,104,116,167,142, 57,  0,140, 45,
- 13,192, 57, 52,124,131,237, 60,222, 91,250,153, 16,  0, 98,163,163, 75,175,158,251,173, 65,245,154,152,242, 17,185,112, 50, 35,
- 97,215,214,175, 20,141, 49, 11,192,147,176,127,141,176,236,166,255,161,119,234,107, 16,197,244,180,234,138,219, 55,145, 87,174,
-181,218, 42,131, 30, 67,161,197, 12,191,229, 71,234,149,161, 86,171, 67, 68, 18, 49, 58,198,196,136,175, 22, 93,111,169, 44, 83,
- 98,226,211,147, 21, 59,247,102, 98,217, 71, 75, 51,182,238,220,158, 28, 27, 19,139, 41,227,159, 65,206,201, 67,216,186,121, 51,
- 29,235, 70,136,221,209,235,223,179,103, 15,146,146,146,236,198,162,240,198,141, 27,120,225,133, 23,132,246,199,119, 37, 75,169,
- 84, 98,232,208,161,176, 88, 44, 40, 40, 40,192,161, 67,125,246,199,222,  0,  0, 32,  0, 73, 68, 65, 84,135,208,173, 91, 55,  4,
-  7,  7,163, 77,155, 54,232,221,187, 55, 24,134,  1,195, 48,104,217,178,101,117,148,202,137,126,233,214,179,103,207, 79,  7, 13,
- 26,196,203,205,205, 13,178, 88, 44, 37,155, 55,111, 86,235,245,250,133,148, 82, 71,  3,246,197,145, 35, 71, 22,238,220,185, 51,
-134, 16,114, 19, 78, 54,230, 33,132,196,205,148, 74,191, 30,192,231,147,178,249,243, 65, 77, 38, 40,120, 60, 46, 71,167,123,150,
- 82,250,141,195,165,211,223,125,247, 93, 62,195, 48, 40, 47, 47,199,149, 43, 87, 74, 31,120,224,129,230,127,121,  3,192,176, 81,
- 22, 27, 25, 44, 25, 50,178, 87,212, 11, 65, 18, 65,127,179,133, 83,241,169, 37,  8, 33, 45,121, 55, 43, 12,208,223,174,  4,132,
-124, 88, 42, 52, 40, 82,177, 64,120, 91, 48, 28, 43,174, 47,196,123, 89,173, 70,167,144, 32,152,141,192,229,236,111,209, 49,225,
-145,106,  7,206,196,154, 32,  0,131, 42,131,117,135,218, 71, 19,226, 33,  9,143,170,183,192,143,246, 32,216,121,134, 66, 32,  6,
-132,109, 31,  1, 91,120,176,218,113, 16,  8, 69, 48,193,128,  0,137,117, 71,210,237, 59, 55,226,183,163,217,210,201, 35,250, 56,
-215, 70, 28,  7, 33,171,135,  9, 66, 48,140, 25, 48, 88, 21,155,201,100,130,209, 32,  0,143, 47,  0, 12,  0,229,172, 41,130,118,
-209, 49, 78,101,233, 12, 28,120, 60,  2,147,217,  4,131,145,131, 90, 99,109,135, 38,142,130, 53,114,  0, 31,224,  9,120,224,139,
-  1,162,183,128, 35,102,112,208, 67,163,183,  5,164, 93,192,  2,128,225,  0, 74,  0,134,225, 64,  8, 15, 28, 37, 96, 24,219, 88,
- 42,142,  1,199, 48, 32,156,123, 14,178,131,247, 47,244,182,  1,249,249,249,193,230,237, 71, 92,185,114,165,116,225,194,133, 82,
-  0, 79,204,153, 51,103, 68,251,246,237,181, 26,141, 70,105, 54,155,171,137,194, 19,254,255,252,243,207,191, 74, 78, 78, 70,116,
-179,102,213, 39,163,155, 53, 11,177, 69,  1, 34,254,140, 14,195,178,172,194,238,237, 83,141,  6,255,250,215,191, 96, 84, 42,171,
- 71,190,117,180, 25, 43,  2,163, 17,143, 63,254,120,105,113,105,233, 83, 81,126,126,235,239, 69,217, 28,  7,245, 57,230,255,235,
- 66,159, 62,125,144,152,216,190,250,250,186,214,  1,  0,  0,179,145, 69,  5, 91, 14,131,193,128,144,224, 96,136,133, 34,152, 44,
-102, 80, 74, 97,177, 88,192,178, 44, 76, 38, 19, 56,179,197,221,250,229, 46, 21, 20, 48,177,209,209,118,143,128,187, 84, 80,192,
-124,187,249, 71,177, 99, 68, 32, 54, 58,186,  2,141, 52,152,173, 75,124,114,118, 81,254,241, 70,121,199,222,142,  1,120, 40,179,
- 12,165,209, 25, 16,182,237,  4, 18,211, 19,237,214,156,194,109,  3,  7,127, 62,  1,251,203, 15,184,120,229,170,203,253,243,244,
-102, 22, 39,114,142,226,211, 37,159,224,193,132, 33,120,247, 63,239,227,231, 93, 63, 99,253,186,111, 48,104,216,144,228, 54,209,
-109,193,247, 19, 96,239,193,189,216,176,246, 27,108,249, 97, 51,118,236,216, 65,255,239,255,254,207,169,100,153, 76, 70,107, 19,
-191, 29, 21, 21, 21,158, 39, 97, 52, 26,  4,  7,  7, 31,  1, 48, 32, 58, 58, 26,125,250,244,  1,143,103, 77,179,182,107,215, 14,
- 34,145,  8,149,149,149,136,142,142, 70, 96, 96,224, 53,141, 70,211,206,169,177, 69,233, 57, 66,200,130, 45, 91,182,140,138,141,
-141,237,178,121,243,230, 42,149, 74, 53,151, 82,186,193,129,212,199, 62,244,208, 67,175,175, 89,179,102, 19,128, 82,  0, 41,  0,
-126,  5,208,171, 14,121,167,  8, 33, 11, 66,142, 31,127,251, 73,179, 25,159,  0,220, 87, 85, 85,207,212,146,247,196,203, 47,191,
-252, 73, 90, 90, 26,174, 94,189,138, 29, 59,118,192,108, 54,239,  3,240,228,253, 66,234,189,123,247,198,233,211,167,171,243,254,
-245,134,226,106, 29,183, 31,219,183,237,188, 32,137,160,127,153,218,240,243,225, 75,101, 11,193, 19,  1, 23, 15,226,225,104,138,
-183, 94,122, 28,125,186, 71,227,101,217, 72,140,238,192,  2,103,247,128, 10, 36,102,212, 59, 88,167,  2,121, 21,133,224,139,128,
- 71, 71,191,134, 13,255,253,  8,  0, 11,232,140,176,232,129, 31, 20,167,145,117,204, 58,163,176,117,219, 24, 48,124,215,228, 53,
-170, 23,129,201,  0,108,223,177, 27,125, 71,188,100,245,254, 33,  0, 79,  2, 76,120, 44,  5,163,134,141,  1,  0, 20, 93,203,135,
-217, 80,255, 86,205,148, 82,152,137,149,224,141,172,117,240,159,209,160,135, 78,167, 67, 85, 85, 21, 52,234, 74,104, 52, 26,168,
- 53, 85, 48, 84, 85, 65,175,215, 59,111,252, 85,  4,122,131,  5,122,131,  5, 90,157,  9,154, 42, 35, 84, 26, 35, 42,212, 44, 42,
- 53, 38, 84, 84, 88,255,150, 43,205, 40, 87,153, 81, 94,105,198,237,114, 22,183,110, 59, 47, 35, 67, 41, 44,  0,136,133,128, 48,
- 28, 40,161,  0,165,160,148,  7, 11,247, 71,245,113, 54,237,225,105,108,188,235,160,174, 56,180,243, 16,126,222,247,115,181, 81,
-112,241,218, 69,183,238,229,241,120,224, 91,235, 43, 10, 64,135, 69,139, 22,157,  1,176,252,205, 55,223,124,181,125,251,246,102,
-107,127,178, 22,204, 67,242, 39,194,200,200,173,  0, 16, 25, 25,121,199,143, 51,102,204, 48, 31,191,120,113, 99, 99,141,  5,176,
-135,255,221,221, 55,222,228, 48,197,226,251,239,191,199,229, 18,107, 10,231,167,236,236, 26,191, 93,188,120,177,121, 68, 68,132,
-234,207, 80,  2,137,137,237, 25,155,130,175,173,240,107,252,238,210,192, 11, 10,188,192, 89, 44, 80,151,171,112,251,246,109, 40,
- 43, 84,208,234,116,208,234,116,208, 84, 85, 65, 91,169,134,166,162,  2,  6,189, 14,172,193,  0,206,108,113,169,115, 98,163,163,
-237, 58,131,  3,192, 58,166,  3,  0,224,219,205, 63,226,189,165,159,133,  0,136,244,244,185,207,159,204, 72,168,157,247,207,255,
-125, 87,194,159,173,148,111, 78,140, 70,187, 53,167, 64, 98,122,194,184, 63,  3,215,158,139,131, 63,159,224, 96, 82,  4,204,149,
-101,232,187,187, 20, 46, 50,  0, 72, 78, 78, 38,207,191, 50, 29,151, 47, 94, 68, 78,246, 65,  4,  7,  6, 99,210,196, 73,  8,  9,
- 15,195,201,163,199, 17, 32, 20,195,223,223, 31, 45,163, 91, 97,227,119, 27,241,230, 59,111,163,202, 11, 18,183, 35, 62, 62,222,
-227,123,  2,  3,  3, 81, 89, 89, 57,128, 97, 24,182, 77,155, 54,232,223,191, 63,186,119,239,142,102,205,154, 65, 44, 22, 35, 58,
- 58, 26,189,122,245, 66, 72, 72,  8, 52, 26, 77,187,192,192, 64, 87,250,121,241,254,253,251, 51,215,173, 91, 39, 80,169, 84,239,
-214, 34,235,148,161, 67,135,126,186,102,205,154,213,145,145,145,243,  9, 33,  1,  0,222,  4,240, 94, 61,242,222,153,167,209, 44,
-158,102, 54, 91,190,210,235,159,170, 37, 47,249, 73,217,191,183,188,244,234, 44,222,197,139, 23,113,228,200, 17,172, 89,179,166,
- 10,192, 91,247,155,103, 95, 59,162,231, 44,194, 87,219,115, 23,241, 24, 18, 88,168,212,174,255,225,120,225, 82,  0, 33,253,218,
-135, 95,150,220,190,218, 89,188,229, 69,204, 31,254, 50,230, 39,245,  7,170,174,  3, 63,204,  5,202,139, 80,  5,191,179, 54,203,
-203,  9,  2, 96, 95, 35,228, 76,238,143,232,213,251,113,252,251,255,217,187,242,184,166,174,236,255,189, 47, 11,  1, 84, 22,247,
- 93,177,226, 94, 69,172,130, 86, 73, 52, 42,213,210,214, 86,212,202,212, 50,104,  9,118,218,106,173, 29,219,218,214,110,182,117,
-166,168,157, 46,  2,182,254,180, 51, 58, 42,216,197,173, 46,193,132,186,128, 20,237,166, 86, 69, 81, 81, 92, 80, 18,182, 36,100,
-123,247,247, 71,242, 98,192,144,188,  4,172,218,201,247,243,137,230, 45,156,220,247,222,125,247,123,206,185,231,158,243,250, 87,
-248,238,235,229,216,163,250, 29,178,216,  1, 16, 10,  3,176,119,255, 81, 80,129, 16, 38,171,149,247, 69,198, 71,245,197,174, 35,
- 39,129,244, 15, 49, 53, 97, 18, 30,126, 56,  1,187,247,125,  3,139,185, 14,147, 39, 62,  9,198,106, 70,128,200,253, 56, 71, 89,
- 43,172,182,213,142, 16, 90,172, 48, 83,161, 35, 38,128, 97,108,249,  1, 24, 98,243, 20,112, 30,131, 70,221, 95,134,150, 96,  4,
- 90,136,  3, 24,155,197,107,165,176,178,  4, 44,101, 97, 54, 83,152,140,  0, 35,161, 32,  2,  2, 34, 32,176, 50,  4, 70, 43, 69,
-165,142,122,112,181,215,159, 78,230,206, 22, 10, 40, 24,194,128,165,130,122,214,  3, 37,158,201,246,229, 89, 47,163, 95,108, 63,
-199,182,114,173, 18,202,181,182, 21,108,  7,119, 30,  4, 38,225, 28,128,158, 30,205, 57,214,246, 91, 57, 57, 57,  7,236,131,212,
-240,158, 61,123,182,  5, 80,203,178,108,128,217,108, 14,178, 88, 44, 22, 74,105,181, 43, 87,112, 35,174,255, 37,159,125,246,217,
-164,169, 83,167,162,103,219,182,188,166,174,154,  2, 46,248,111, 88,223,190, 30,  3,216,122,119,232, 32, 75, 79, 79, 87, 37, 36,
- 36, 84,159, 58,117,170,213,233,211,167,241,152,220,182, 20,172, 79,159, 62, 72, 79, 79, 71, 66, 66,130,233,212,169, 83,226, 11,
- 23, 46,128, 86, 87, 27,  6,245,235,231, 86,230, 75, 75,150,212,243,144, 44,124,235,173,122, 10,147, 55,115,255,206, 93, 59, 46,
- 46,238,217,188,188,188,207, 21, 10,  5, 50, 51, 51, 29,228, 31, 29, 29,205,203,157, 11,  0,197, 39,207, 22,181,109, 19, 58,210,
-100, 50,162,238,154, 30, 98,137,  4, 66,161,208,225,  1, 48,212,214,194,168,211,217,226,103, 42, 43, 17, 37,151,123,186,135, 22,
-206,197,255,246, 75,207,107,  0, 72, 70, 12,189, 31,135,143,254, 90,239, 36,167,184,  0,222, 56,113, 52, 71,122,249,108,145,106,
-240,240,155,109, 56,119,230,144,180,242,122,137,170, 41,253,131,179,250,125,117,255,  3,192,105,141, 14,165,115, 30,  0, 61,247,
- 43,218,173, 62, 10,157,133,162, 58,169, 39, 66, 54,156, 67,245, 95, 91, 67, 72,  0,134,135,  2,250,183,231,158, 35,111,124,248,
- 30,109,215,186, 13,204,172, 21,197, 23, 75,144,244,228, 76,124,245,159,255,224,187,111,183, 98,102,210, 76, 24,235,140,216, 95,
-116,  8,  6, 67, 45, 82,147,147,243,114,221,  4,218,101,102,102,146, 93,187,118, 73, 39, 76,152,160,114,229,  9,168,168,168,192,
-203, 47,191,140,127,254,243,159,188,174,179,117,235,214,184,124,249, 50,194,194,194,132, 25, 25, 25,120,224,129,  7, 16, 21, 21,
-  5,177, 88, 12,134, 97, 80, 80, 80,128,152,152, 24,  0,192,229,203,151,209,186,117,107,207, 29,153,210,247,  9, 33,223, 82, 74,
- 79, 56,145,245,147,163, 71,143, 94, 54,103,206,156,208,140,140, 12,201, 63,254,241, 15,  6,192, 55,  0, 22, 82, 74,175, 69, 69,
- 69,185,147,247,119, 66,200,  6, 74,233,207,206,242,102, 44,250,122,253, 19,147, 70,145, 73,115, 87, 66,241, 72, 63,124,241, 73,
- 58, 91, 93, 93,157, 66, 41, 61,239, 78,222,189,162,  4,240, 25, 72,207,254,247,208,185,231, 52, 58,227, 17,216,  2,183, 58,230,
- 23, 95,207, 26,211,183,253, 98,225,185,195,225,248,191,167,128,128, 96,192,168,  3, 40,133, 89, 32,185,182,255,248,149, 47,  1,
- 52,154,125,105,195,250,207,101, 51,147,102,169,  0, 64,199,154,113,166,178, 20,128, 21,247,181,234,  9,153,236,126,180,111,211,
-  1, 21, 85, 54,110,168, 52, 89,112,165, 82,  7,119,195,101,151,110,177,184, 84,154,111,127,106, 66,196, 15,182,197,  0,236,250,
-205,140,221,219,115,112,237,198,101,180, 14,181,173, 36,  8, 21,139,112,255, 48,247, 55,193,  4, 33,196,172,  5, 86,  8,192, 18,
-  2,198,202,  2,102, 11,172, 34,161,131,252,  1,219,114, 65, 80,247,171,146, 30,155,241, 10,249,246,223, 11,105,144,152, 66, 40,
-114,242, 48,152,  1, 11,  5,234, 76,128,213,104,  5, 33,  4, 68, 76, 96,177,  2, 58, 35, 48, 59,249, 31,196, 85, 42, 76,171, 19,
- 67,178, 12, 11, 98,119,255,219, 59, 44,172, 44,  3, 70, 96, 95, 41,  0,128, 10, 40, 64,249,121,  1,156,201,223,213,246,193,157,
-  7, 61,146,191,213,106,133,209,104,196,212,169, 83,  7,228,228,228,172,  0, 48, 36, 39, 39,103, 87, 78, 78,206,254,169, 83,167,
- 62,215,171, 87, 47, 51, 33,164,245,199, 31,127,188,231,149, 87, 94, 73,210,104, 52,121,110,188, 79,142, 62,185,112,225,194, 37,
- 11, 23, 46,196,174, 93,187,160,187,118,237,150, 19,122,182,109,139,115,231,206,  1,128,138, 79, 98,160,198,146,254,136,218,181,
-147,126,246,217,103, 42, 74, 41,134,245,233, 35, 27, 58,104,144,218,147,172, 65,253,250,169,  9,195, 76, 60,249,227,143, 61,  0,
-  4,  0,248,151, 57, 32,  0, 34,163, 17,189, 59,118,196,130,  5, 11,112,240,224,193,101,145,145,145,121,  3, 59,119,246, 24,163,
-224, 42, 15,128,175, 49,  0,206,224,242,  0,196,196, 36,254, 88, 80, 80,126, 80,161, 80,136,237,211,  4, 35,  1,228,243, 77,  2,
-212, 99,112,255,215, 12, 87,174, 78, 96, 45,214,190,186,170, 42, 84,221,184, 14, 66, 24, 80,202,162,174,174, 14,148, 82, 80, 74,
-113,238,196,239, 48,155,140,184,111, 88,180,218,139, 49, 39, 20,  0, 51, 73, 22,199, 78,146,197,213, 11,250,179, 79, 17,240,198,
-201,159,191,150, 94, 62, 91,164,  2,128, 30,221,187,227,187,  6, 94,128,182,221,134,202,238,228, 96, 60,236,251,114, 20, 61,  4,
- 12,137,150,163,252,111, 35,209,225,243, 67, 56,173,209, 33, 76, 76, 80,161,209, 66, 72,136, 71, 15,  0,135, 89,179,102,213, 59,
-115,219,182,109,116,210,228,135,176,125,235,118,108,222,188, 25,111, 45,126,  3,123,212,185, 16,  8,  5,232,220,165,115, 92, 85,
-149,251,165,203,241,241,241,234,248,248,120,151,138,192,222,189,123,113,230,204,153,186,204,204,204,142,124,218,214,163, 71, 15,
-148,148,148,160,127,255,254,150,249,243,231,139, 55,110,220,136,144,144, 16,156, 60,121,242, 22,207,107, 73, 73,  9,122,240,124,
-206, 13,200,255,169,  7, 30,120,224,157, 39,159,124, 50,164,168,168,168,101, 93, 93,221, 95,  3,  3,  3, 31, 54, 24, 12, 31, 81,
- 74,191,227, 41,207,153,252,159,122,248,249,141,235, 30, 28, 55,133,252, 67,  9,144, 78,143,224,253,149,175, 81, 77,241,201, 20,
- 74,105, 54,254,196,168,167,  0, 72,158,204, 60,174,249,175,226,180,228,201, 76,110, 74,179,244,216,127, 21,223,215,212, 89,116,
- 35,238,107, 51, 41, 60, 72,240,128,192, 88, 23,108,161, 76, 77, 69,141,169, 32,255,204,213,221,101, 26,125,158,228,201,204, 43,
- 88,181,202,229, 15,212,234,218,170,211,254, 54, 87,  6, 64,197, 10,184,105, 62,  1,206, 84, 95,193,155,207,165, 64,175, 55,162,
-218, 96,139,  1, 48, 49,  1, 24, 27,239, 62,205,238, 27,139,147,201,174, 29,195,108, 47,183,149,115,157, 91, 16, 63,136, 96,198,
-179,203, 17, 20, 20,128, 86,129, 18, 25,  0, 85,241,177,163,178,216,129,238, 19,130,  8,169,  5, 38, 98, 83,  2, 64,  8,172,148,
-218, 20,  1,139,125,185, 31, 97, 32,100, 89, 88,184,101,  7, 30,148,128, 74, 67, 40, 12,198, 10,136,133,140, 35,205,153,133,  5,
-204,102, 10,179,133,162,214,192,218,172,127, 16,152,217,155,174,123,151,  4,203, 50, 96,136, 21,196, 74, 64, 25,234,112,255,147,
- 70,102, 92, 56, 73, 47,188, 40, 35,171, 86,157,116,107,225,253,158,255,123, 83,251,142,137, 82, 10,131,193,128, 65,131,  6, 93,
-137,136,136,152,114,254,252,249,222,155, 55,111, 46,  4,240,104, 78, 78,206,163,206, 39,127,248,225,135,234, 87, 94,121, 69,166,
-209,104, 60, 17,132,227,134,164,165,165, 53,122,210, 19, 79, 63, 13,192,187,196, 64, 92,214,189,134, 24,222,175,159, 44,138,  7,
-249,115, 24,216,167,207, 30,103, 79, 70,122,122,250,167,  9,  9,  9,150, 83,167, 78,  9, 47, 92,184,128, 30,173, 91,231,119, 14,
- 10,202,229, 57, 16, 53,251, 75,221,128,220,175,229,229,229, 57,199,120,252,102, 87,  4,248,102, 12,212,  5,118,236,240,196,201,
-220,125,249,161,193,193,173,170,181,149,176, 88, 44,160,246,247, 64,123,173, 28,213, 90, 45, 40,165,124,172,127,219,203,122, 51,
-230,132,177, 47,  7,100, 70, 12,189, 31,147,100,113, 14,175, 80,241,249,243,252,149,  0,253, 47,210, 75,197,133, 14, 43,255,187,
-236, 47, 85,  0,208, 54, 98,148,108,112,116,130,250,206, 13,175,244, 86, 37,  0,171, 49, 36,237, 77, 92,101, 89, 12, 94, 91,136,
-194,248,246, 24,176,253, 26,132,  4,104, 41,242,173, 54, 91, 66, 66,  2,217,167,222, 71,199,142, 31,135,173, 91,190,197,187,203,
- 62,196,162,170, 42, 80,150,197,166, 77, 91, 80, 86, 86,246, 48,128,237, 30, 61,170, 46, 20,  1,  0,152, 50,101,202,207,  0,106,
-248,180, 37, 54, 54,150, 92,190,124,153, 30, 61,122, 84, 60,116,232, 80,140, 27, 55, 14, 42,149, 10,221,186,117,131,209,104, 68,
- 92, 92, 28, 40,165,236,209,163, 71, 25,145, 72,228,117, 70, 64, 66, 72,255,144,144,144, 21,211,167, 79, 23,157, 56,113,162,149,
-209,104,108, 44, 48,144,175,188,168,206, 67,166,173, 27, 50,102, 58,249, 50, 15,168, 54,  0,166,115,187, 88, 77,177,170, 97, 96,
-224, 61,  3, 46, 15,128,179,  7,192,213, 62,151,174, 84, 39,242,231,182,127,191,240, 95, 69,233,133, 27,181,249,  0, 58,218, 95,
- 94, 35,128, 50,  0, 37,146, 39, 51, 13, 30,231,146,  6, 63,162, 62,254,107,169,204, 74, 91,168,156, 95,142, 90, 93,181,109,221,
- 63, 19,132,191,127,196, 63,197,100,252,228,129,228,189,185, 15, 75,193,232, 85,206, 92,216,162, 69,  8,172,102, 45, 64,117,184,
-112, 40,139,204,154, 17,239, 81,150, 25,  2,128, 82, 27, 81, 67,  0, 49,181, 43,  2,118,242,183,229,  0,  4,192,115,106, 34, 57,
-245,117,146,245,201, 91,212, 98,214, 64,104, 95,216, 75, 41,133,213, 66, 81,103,  6,170,107, 44, 48,131,194, 66, 25,  8, 69,  4,
- 75,223,249,180,209,235,158, 51,199, 22,164,181,110,237, 25, 74,204, 54,235,159,  2,160,148,  0,212,110, 49, 80,  1,136,128,  5,
-203, 10,241,210,194,  9,188,238,225,156,119,231,200,206,159, 61,239,142,128, 69,176, 45,213,112,199, 78, 44,  0, 24,141, 70,104,
-181, 90,109, 72, 72,  8,162,163,163,127, 25, 62,124,120,192,245,235,215,113,246,236, 89,219,242, 48,150,149,110,217,178, 69,101,
- 87,  2, 84, 60,148,  0,115, 98,124,124, 98,143, 65,131,172, 15,244,237,171,179,247, 81, 35,234,175,136, 68, 98,188,237,217,246,
-224,145, 20,232,229,151, 95,150,  1,192,176, 62,125,110, 57, 22, 61,120,112,147,  8, 98, 80,191,126,159, 51, 12, 99, 61,249,227,
-143,193,237,219,183,191, 49,112,228,200,117,119,242,229,119, 65,234,186,232,232,104,231,104,107,199, 58, 86, 47,148,128, 19, 81,
-227,198,142,216,250,197,151, 91, 34,122,246,232,111, 52,214,193,106,182,128,101, 89,180, 12, 11, 67,149, 70,131, 40,185, 92,198,
-195,250,  7,128,202,183, 95,122,190, 29,  0, 83,241,249,243, 98,110,254,255,240,209, 95, 49, 73, 22,199, 46, 73,255,196, 83,114,
- 32,  7, 34, 59,106,233,201, 83, 39,101,251,118,127, 87,207,197, 63,118,226,163, 50,166, 85,108,147,158,107, 99,238,126,215,251,
-249,115,216,176,239,203,129,239,159,115,108,223,247,221,205, 37,192, 85,102,171,207,237, 29, 43, 29, 75,190, 42,253,234,161,  9,
-147,227,119, 62,243,212,236,  3,247, 15, 30,244,224,214,239,182, 33,255,231, 35, 72, 77, 77,221,177,170, 17,  3,205,131, 34, 48,
-251,155,111,190,249,226,155,111,190,137,137,143,143,231,221,184,  9, 19, 38,140,221,179,103,207,190,237,219,183, 35, 34, 34,  2,
-227,199,143, 71, 72, 72,200,233,170,170,170,200,227,199,143,163,164,164,132, 17,137, 68,152, 48, 97,130,220,235,231, 98, 11, 12,
- 92,182,109,219,182, 70,  3,  3,189,148,247, 19, 33,228,131,111,115, 30,121,205,208, 57,  9,134, 31, 95,103, 47,239, 95,250,148,
-175,242,238, 70, 69,192,155, 41,  0,151,144, 60,153,169,  3,240,171,253,227, 19,158,122,234, 57,117, 90,218, 43,178,140,204,119,
- 85,157,187,247,  6, 96,132, 40, 64,130, 75, 87,170, 17,151, 48,139,120, 47,239, 17,245,125,125, 35,177,118,205,215,  0,123,  1,
-128, 16,150, 58,  3, 58,119, 12,145,117,107,101,225,255,242, 91, 89,  8, 25, 22,102, 34,132,136, 90,110, 42,  2,176,  0,212, 10,
-190,129, 97,206, 72,125,254, 45,  2,  0, 75, 94,157, 75, 69, 66,155,181,111, 97,109, 46,243,202, 26, 10,171,  5, 16,  8, 89,124,
-254, 25, 63,165,231,233,100, 91,106,228, 53, 95,158,162,224,114,194, 51,  0, 75,108,238,254,  5, 11, 31,246,170,145, 85,181, 85,
-234,176,246, 97, 77,237, 95, 12, 96,139,137, 48, 24, 12,176, 90,173,168,174,174,134, 64, 32,128,213,106, 69,135, 14, 29, 96, 54,
-155,145,153,153,169,106,224,  9, 80,121,170, 25, 16, 53,104, 80, 14,  0, 52, 71,198, 63,  0,  8, 39, 68, 13,  0,225,131,  7,223,
- 22, 51,111, 64,159, 62, 25, 77, 17,208,156, 49,  0, 46,200, 92,231,110, 53,128, 23,233,128, 79, 62, 50,103,246, 64,  0,130,147,
-121,121,230, 58,189,  1,172,213,138,126,209,209,178,142,145,253,209, 99,112,127,126,239, 28, 37,211,119,127,191,195,177, 57,178,
-127,132,227,251,238,239,119,220,178,237, 46, 52,254,244,149, 48,194,180,138,197,184,137, 68,118,226,228, 89, 92,185,240,155, 10,
-  0,246,237,254, 78,213,190,219, 89,217,160, 17,127,241, 90,  9,152, 54,109, 26,188, 77,239,107, 37,238,243,110,151, 78,233,128,
-239, 47,215,221,246,  1,127,214,172, 89,223,  3, 96,138,138,138,216,220,130, 60,180,110,211, 26, 77,169,207, 17, 31, 31,255,101,
-124,124,252, 87,240,156,222,185, 30, 90,182,108,169,122,226,137, 39, 72,126,126, 62, 61,123,246, 44, 10, 11, 11, 81, 83, 83, 19,
-217, 28,181,  0,236,164,253, 79, 66,136, 40, 63, 63,127,144,201,100,122,157, 82,186,169, 73, 47, 48,165,139,  9, 33,162,144, 94,
- 95, 45,168, 58,187, 39,169,169,242,238, 52,184, 85,  0,174,246,251,164,  0,120, 59,149,208,168,171,234,241,167,213, 59,118,159,
- 33,143, 77, 14,162,237, 58,119,133,166,198,130,184,201, 79,249,220, 17, 98, 31,232, 75, 98, 31,120, 13, 10,197,155, 20,184,134,
-176,150, 66,116, 11,103,189,122,233,135,253,117,225,109, 43, 96,243,246,  7,171,  8,  0,204,155,255, 28, 53, 25,204, 96, 97, 91,
- 54,183,226,179, 21, 62,253,102,202,108, 91,205,128, 53, 95,156,164, 44, 21,224,213, 87, 30,189,147,213,205,196,206,110,108,163,
-209,  8,147,201,228, 32, 50,142,192,252, 85,  2,221,195,155,244,195, 62,194,180,104, 81, 98,128,221,131, 98,109,162, 44, 10,192,
-210, 55, 46,174, 94,155,123,116,236,192, 91, 64,  0,107, 84, 63,157,224,181,225,135,134,165,128,235,217,223,173, 98,212,  3,134,
-199, 96,192,112, 52,249, 94,122, 42,236,211, 80,  7,182,144,  0, 24, 24,247, 43, 82,207,214, 88, 16,217,146,207, 16,217, 44, 93,
-129, 14, 27, 54,172, 57,251,148,207, 25,112, 98, 99, 99,137,167, 68,108, 77, 32,237, 91,  2,  3,155, 40,239,150,192,192,123, 93,
-  9,224,  3, 50,100,200, 16, 10, 63,252,104, 34,122,247,238,141,226,226, 98,255,141,240,195, 15, 63,252,184, 71,192,248,111,129,
- 31,205,  1, 63,249,251,225,135, 31,126,248, 21,  0, 63,252,240,195, 15, 63,252,240,195,175,  0,248,225,135, 31,126,248,225,135,
- 31,126,  5,192, 15, 63,252,240,195, 15, 63,252,184,227,168, 23,154, 58,119,238, 92,159,163, 71, 93,101,178,243,203,243,203,243,
-203,187, 59,228, 41, 20, 10,154,153,217,248,178, 83,255,253,243,203,187,219,228,253,244,211, 79, 62,203,139,138,138,250,159,151,
-231,181,  2,192, 13, 20,222, 10,113, 55,176, 52,183, 60, 63,238, 78,120, 34, 24, 63,238,206,231,224,229,249,193,  0, 30, 56,112,
-224,192, 82,129, 64, 48, 50, 32, 32,  0,122,189,254,208,131, 15, 62,184, 24, 64, 33,  0,253,221,112, 15,148, 74,165, 52, 59, 59,
- 91,245,103, 28, 87,142, 29, 59,134,194,194, 66,143,231, 21, 20, 20,208, 99,199,142, 33, 43, 43,139, 12, 28, 56,176,201,242, 56,
- 12, 31, 62, 28,238,228,249,113, 15,123,  0, 56,120,147,158,148, 79,162, 28, 87,242, 26, 43, 15,235, 75,226,157, 63,251,128,206,
-247,220,137, 19, 39,202, 30,127,252,113, 53, 95,153,157, 59,223, 90,122,185,172,172,172,222,118, 98, 98, 34,228,114, 57,225, 35,
-239,118, 42,  1, 19, 39, 78,164,  0,176,123,247,110,114, 55,200,211,233,116,227,182,108,217,162, 60,125,250, 52,  0, 32, 34, 34,
-226,145,148,148,148,109,190, 62, 95,231,126, 79, 41,117,188, 31,220,126,238, 93, 33,132, 32, 35, 35,131,184, 83,158,249, 62,  7,
- 47,159, 87,255, 99,199,142,109,169,174,174,238,219,189,123,119,220,184,113,  3,117,117,117,  0, 48,114,203,150, 45,170,224,224,
-224,147,241,241,241,143,  1,112, 91, 74,114,212,168, 81, 94, 25,  4,  7, 15, 30,148,129,103,170,103, 14,217,217,217,170,196,196,
- 68,153, 92, 46, 87,123,251, 60, 82, 83, 83,189,106,223,180,105,211,120,191, 31, 28,186,119,183, 85,192,173,169,169,129,209,104,
-228,250, 19,175,247,173,176,176, 16,255,254,183,251, 12,181, 70,163,145,142, 28, 57, 18,253,250,245,195,250,245,235,203,141, 70,
- 99,183,198,214,133, 23, 22, 22, 34, 41, 41,137,215,181, 94,187,118, 13, 75,151, 46, 69,102,102,166,127, 96,190,  7,208, 48, 25,
-208,237, 76,  4,228,183, 98,111, 35,190,203,240,156,210,248,177,185,187,188,146,169, 82,221, 52,144, 78,159, 62,141,224,224, 96,
-199, 32,228,116, 63,248, 88, 91,180,225,118,195,  1, 76,169, 84,210,236,236,108,159, 45,176, 13, 27, 54, 72, 39, 78,156,216,168,
-252,166, 32, 45, 45,141,142, 25, 51, 70, 54,115,230, 76,175,200, 98,203,150, 45,202,118,237,218, 97,214,172, 89,208,106,181,108,
-122,122,250, 86,173, 86, 59, 35, 44, 44,204,171, 44, 98,132, 16,124,255,253,247,142,237,248,248,120,236,218,181,203,237,182, 39,
- 52, 84,  2, 20, 10,  5,141,142,142, 70, 86, 86, 22,229, 18, 51,121, 75,254, 85, 85, 85,249,189,122,245,106,  5,  0, 18,137,  4,
-129,129,129, 40, 47, 47, 71,101,101, 37, 66, 66, 66, 80, 94, 94,222,119,215,174, 93,133,241,241,241,125,  0, 92,117, 39,108,224,
-192,129, 72, 76, 76, 68, 68,196,205,172,127,203,150, 45,171,119,206,162, 69,139, 56, 75, 86, 53,115,230, 76,175,159,183, 47,228,
-207, 97,229,202,149,141, 29,106,180,130, 37, 95,  4,  7,  7,227,196,137, 19, 16,137, 68, 48,153, 76,216,181,107, 23,138,139,139,
-241,234,171,222, 85,156,189,214,160, 72,214, 35,143, 60, 34,  0, 32,255,225,135, 31,118,197,197,197, 93,123,236,177,199,218, 43,
-149, 74,  8,  4,130,182,161,161,161,  2,111,100, 53,134,243,231,207,251, 73,226, 30, 37,127,110,159,199, 90,  0,247, 42,214,172,
- 89, 35, 77, 73, 73, 81, 55, 85,206,189,226,202,238, 60,236,189,155, 86,123,209,235, 62,201,208,106,181,208,235,245, 14, 11, 36,
- 43, 43,203,217, 18,226,107,109,221,178, 45,151,203,177,119,239, 94, 74,  8,185,229,184, 47,248,225,135, 31, 84, 47,191,252, 50,
-114,114,114, 48,117,234,212,102,185,127,187,119,239, 38,185,185,185,148, 82,138,188,188, 60, 85, 94, 94,158, 87, 10,202,233,211,
-167, 49,107,214, 44, 22,  0, 35, 22,139,153,200,200, 72,164,167,167,111,  4,176, 49, 34, 34, 98,114, 74, 74,202, 78, 62,114,110,
- 71, 49, 32, 78,  9,200,202,202,162, 92, 26, 96,238,127,133, 66, 65, 19, 19, 19,189,185,214, 96,173, 86,187, 69, 34,145,180,  2,
-128,191,253,237,111,168,171,171, 67, 70, 70,  6,  2,  3,  3, 81, 87, 87,  7,131,193,  0,129, 64,128,170,170,170, 86,  0,210,  1,
-252,197,157, 64,142,220, 75, 74, 74,110,217,215, 28, 72, 76, 76,148,217,175, 83,230,171, 34,240,226,139, 47, 58,190,175, 88,177,
-130,251,202, 52,216,207, 91, 33,224,188, 38,175,191,254, 58,130,131,131,145,147,147,131,184,184, 56,159,200,191, 33, 70,143, 30,
- 13,216,178, 52,254,245,169,167,158, 66,239,222,189,219,239,218,181, 11, 21, 21, 21, 92,201, 93,147,135,119,161,185,187,159,116,
-242,228,201,170, 29, 59,118,184,242,222, 72,199,142, 29,171, 34,132, 32, 55, 55,215,239,238,189,205,228,159,186,232, 67,  0, 64,
-214,178, 87, 92, 42,  1,127,136,  2,144,149,149,229,234, 65,211,198,246,251,242, 27,135, 15, 31, 86,  1,144, 53, 85,  9, 72, 74,
- 74,250,159,153,207,214,235,245,183, 88,253,190, 16, 13, 71, 44, 83,167, 78,197,248,241,227,  9,  0,228,228,228, 52, 75, 27, 55,
-108,216, 32,181, 91,116,164,188,188, 92,154,157,157,173, 42, 47, 47,151,122,107,177,187,194,184,113,227,200,184,113,227,176, 97,
-195,  6,105, 94, 94,158,106,195,134, 13, 94,201,213,106,181,150,176,176, 48,241,150, 45, 91, 96,247,  6,212,105,181, 90, 38, 61,
- 61,125,135, 86,171,157, 16, 22, 22,182,247, 78, 62, 95,142,244,157,251,178, 66,161,160,156,146,198, 19, 15, 20, 23, 23,247, 29,
- 52,104, 16,102,207,158,141,170,170, 42, 84, 84, 84, 64, 36, 18, 65, 40, 20, 66, 40, 20, 66, 36, 18, 33, 48, 48, 16, 26,141,  6,
- 74,165,114,166, 92, 46,127,222,147,208,146,146,146,122,202, 33,167,  0,112,158,128,232,232,104,111,218,232,202,250,151,101,103,
-103,171,154,226,121,114,130,165,145,177,146,183, 55,224,252,249,243,200,203,203,195,228,201,147,209,189,123,119,180,105,211,  6,
-121,121,121,120,245,213, 87, 29,222, 55,129, 64,224,117,195, 70,143, 30,141,197,139, 23, 99,233,210,165, 29, 83, 82, 82,166, 63,
-249,228,147, 24, 63,126, 60,  0, 64, 32, 16,204,106,221,186,245,182,204,204, 76,179,187, 98, 64, 27, 54,108,224,229,  5, 40, 43,
- 43,195,140, 25, 51,248, 25, 40,157, 59, 35, 53, 53, 85, 85, 82, 82,  2,165, 82,201,221,127,105,106,106,170,138, 83,160,253,184,
-189,224,200,159,251,206, 41,  1,127,184,  7,160,177,121,108, 95,  2,  4,111,183, 18, 48,105,210,164, 38,123,  2,188,185, 46,111,
-126,227,137,231,118, 99,203,167, 19,155,229, 94,113, 47,160, 66,161,112, 57,167,119,232,208,161, 38, 43,  6,205,241,124,127,248,
-225,  7, 21,103,245,207,156, 57, 83,253,195, 15, 63,160, 93,187,118, 42, 52, 83,226,116, 78,110, 94, 94, 30,242,242,242, 60,186,
-155,117, 58,221,164, 45, 91,182,236,  0,128,244,244,116,113, 68, 68,  4, 82, 82, 82,184,195,146, 95,127,181,213,203, 74, 79, 79,
-223, 19, 17, 17,241, 88, 74, 74,138,199,250,228,241,241,241,245, 98, 98, 30,122,232,161,122,158,  1, 62,110,127, 23, 74, 55,117,
-213,191,184,231,226, 60, 29,224, 14,187,118,237, 90, 26, 25, 25,  9,  0, 56,115,230, 12, 40,165, 56,117,234,148,163,238,131, 80,
- 40,  4, 33,  4, 86,171, 21,122,189, 30,223,124,243, 13,228,114,185,199,170, 75,206,228,159,152,152,232, 82,121,113,158, 34,240,
- 69,  9,144,203,229, 68,161, 80,208,166,122,  3,154, 99,156, 52,155,205, 24, 58,116, 40,212,106, 53,134, 13, 27,  6,157, 78,231,
-152,218, 81,171,213,152, 56,113, 34, 44, 92,  9,114,239, 44,127, 44, 93,186,180, 83, 74, 74,202,165, 47,191,252,210,113,172, 83,
-167, 78, 88,190,124,249,191,249, 18,118, 51, 67,125,228,200, 17, 68, 71, 71, 35, 34, 34,  2, 67,135, 14,165, 71,143, 30,149,113,
-228, 95, 82, 82,  2,181, 90,237,183,254,239,  2,252, 33, 10,192, 31, 25,  4,216, 28, 74, 64,143, 30, 61,154,228,  9,224,  6,217,
-245,235,215,187, 60,190,115,231, 78,172, 95,191,222, 39,203,164,224, 92,127,196,244, 60,225,179,219,159,131,243,156,191, 82,169,
-132, 92, 46,119,184,253, 15, 29, 58,132,174, 93,187, 54,139,210,215, 20,235,139,179,254,111,220,184,225,168, 51, 47,149, 74,101,
-205,233,  5,224, 16, 23, 23, 39,203,203,203, 83,121, 58,111,203,150, 45, 59,184,185,127,157, 78,135,101,203,150,161,182,182, 22,
- 34,145,  8,  1,  1,  1, 56,119,238, 28,222,123,239, 61,104,181, 90,164,167,167,127,171,213,106,199,134,133,133,169, 60,144,108,
- 61,178,247, 20, 19,208, 28,138,231,145, 35, 71,234,157,223, 88,144, 88,120,120,248, 72,163,209,  8,139,197,130, 67,135, 14, 65,
- 32, 16,192,100, 50,193, 96, 48,128,101, 89,199,123,108, 54,155, 97, 52, 26,185,119,218, 99,152,120, 99, 46,255, 69,139, 22, 57,
-188,  0, 17, 17, 17, 40, 47, 47,111,178, 34,202,173, 10,240, 34,118, 68,  3, 32,220,213,  1,167,233,  0,175,144,158,158,142,151,
- 95,126, 25, 81, 81, 81, 14, 15,  8,151, 62, 59, 42, 42, 10,167, 78,157, 66,187,118,237,188,146,185,127,255,126,140, 30, 61,186,
-123, 74, 74,202,121,142,252,237,227,103,231, 77,155, 54, 93,110, 24,208,203, 87,161,104,236,183,188,244, 62,145, 35, 71,142, 72,
- 83, 83, 83, 85,195,134, 13,195,176, 97,195, 84,  0,112,234,212, 41,228,229,229,249,201,255, 54,130,171,  6,152,181,236,149, 91,
-166,  0,254,180, 49,  0,119,163, 18,144,148,148, 68, 23, 47, 94,124,139, 43,208, 23,242,127,226,185,230,157,167,211,233,116,183,
-  4,249,113, 86,191, 72, 36,194,213,171, 87,239, 40,249, 59, 91,255,206,150,219,140, 25, 51,212,106,181,186,217,189,  0,222,120,
- 78,102,205,154,165,  7, 16, 20, 28, 28,140, 55,222,120,  3, 34,145,200,113, 60, 57, 57, 25,  0, 16, 22, 22,134,132,132,  4, 28,
- 56,112, 96, 95, 66, 66,194, 31,210, 78,231,251,237, 60,255,239, 10,209,209,209,245, 42, 53,186, 90,135, 13,  0, 38,147,  9, 26,
-141,  6,117,117,117,  8,  9,  9, 65, 64, 64,  0, 44, 22, 11, 40,165,176, 90,173, 48,153, 76, 48,155,205,176, 90,173,206, 10,253,
- 13,119,237, 44, 41, 41,169,103,221, 55,156, 14,104, 24, 32,216, 84,200,229,114,181,151,177, 40,146,198, 14, 52, 18, 27,224, 17,
-239,189,247, 30, 38, 79,158,140, 30, 61,122, 32, 40, 40,  8, 82,169, 20, 26,141,  6,193,193,193,208,106,181, 88,187,118, 45, 24,
-198,187,248,194,209,163, 71,119, 73, 73, 73, 57, 63,127,254,124,108,221,186, 21,143, 62,250, 40,  0,116,216,191,127,255, 53, 95,
-238,147, 93,161,  0, 55,102,113, 99,149,183,228,239,236,  9,216,180,105,147,108,250,244,233, 42,  0,216,180,105,147,172,170,170,
- 74, 13, 63,254, 48,184,114,251, 59,227, 79,153,  9,112,196,136, 17,178,230,  8,  8,244,213, 74,119, 30,144,151, 46, 93,218,100,
-242,231, 48, 52,106,  8,114,247,169,176, 97, 95,144, 67, 41, 40, 56,215,191, 73,215, 24, 29, 29,141,146,146, 18,228,228,228,160,
-107,215,174, 88,183,110,157, 15, 86, 23,149,114,223,210,210,210,154,133,252, 57,235,191,188,188, 92,214,240,216,152, 49, 99,100,
- 57, 57, 57,142,115,154,  3,121,121,121, 42,190,222, 39,173, 86,251, 59,108,243,194,236,166, 77,155,176,118,237, 90,  0,192,198,
-141, 27,161,213,106,185,211, 44,167, 78,157, 66,219,182,109,239,200, 59,224, 28,237,239, 74, 57,227, 91,166,185,164,164,228,144,
-213,106,133, 86,171,197,141, 27, 55, 28,129,163,122,189, 30,181,181,181,168,174,174, 70, 85, 85, 21, 12,  6,  3,140, 70, 35,172,
- 86, 43,  0,228,187,147,217,144,220, 93,  5,146, 54, 92, 21,192, 23, 74,165, 82,218,240,154,149, 74,165,183,253, 36,168,185,159,
-199,186,117,235, 32,149, 74, 17, 20, 20,132, 19, 39, 78, 64,173, 86, 35, 56, 56, 24,111,190,249, 38, 14, 28, 56,128, 87, 95,125,
-213, 43,  5, 96,244,232,209, 29, 82, 82, 82, 46,206,152, 49,  3, 95,127,253, 53, 71,254,157,  0, 92,115,103,201,243, 81,  2,150,
- 46, 93,218, 28,228, 15,  0, 82,142,252,  1, 96,250,244,233,170,184,184, 56,127,245,217, 63,114, 28, 88,244, 97,189, 88,128,134,
-248,211,  4,  1, 54, 55,249,219,215,187, 54,217,114,227,166,  3,146,146,146,124, 38,255, 39,158,219,141,161, 81, 55, 93, 55, 91,
-190,254,  6, 91,190,182,125,207,221,167,  2,198,202,  0,120,183, 12, 80,161, 80, 32, 58, 58, 26,128, 45, 24,240,200,145, 35,216,
-187,215, 22,179,246,219,111,191, 33, 46, 46,206, 11,105, 68, 13,220, 12,252,107,106,164,254,134, 13, 27,164,174,172,255,134,104,
- 46, 47,  0,167, 72, 72,165, 82,153,167,115, 35, 34, 34, 38,164,167,167,239, 73, 72, 72,192,169, 83,167,112,250,244,105,188,247,
-222,123, 22,  0, 66,189, 94,143,244,244,116,216,143,  9, 47, 92,184,128,167,158,122,202,163,204,219, 17,  3,192, 89,210,217,217,
-217, 14, 47, 22, 71,140,220,115,231,131,200,200,200, 34,189, 94, 63,210,100, 50,225,250,245,235,  8,  8,  8,128, 80, 40,116,120,
-  0,116, 58, 29,244,122, 61,140, 70, 35,170,170,170,184,249,252, 75,238,100,114,228,206, 77,  3, 68, 71, 71,163,161,183,194, 85,
- 92,  0, 31,242,231,114,  0, 52,220,215,148,254,193, 89,253, 46, 44,126, 11,223, 49,180,184,184, 24,167, 78,157,130, 94,175, 71,
-108,108, 44,244,122, 61,178,179,179, 49,125,250,116,108,221,186, 21,  2,129,128,183,  2, 16, 25, 25,217,133, 35,255,194,194, 66,
-188,245,214, 91,  0,208, 45, 41, 41,233,202,250,245,235,201,254,253,251,155, 52,134,114,158,128,166,144,127,116,116, 52,229,250,
-217,209,163, 71, 81, 84, 84, 36, 75, 77, 77, 85,245,233,211,  7, 34,145,136, 58,  5,  6,250,209,204,224,111,204, 42, 38,  0,  0,
- 32,  0, 73, 68, 65, 84, 86,  1,184, 10,  2,188, 35,171,  0,254,168, 32,192,187,141,252, 27, 42,  1, 77,177,252,221,109,231,238,
- 83,249,242,130,222, 52,119,130,130,208,175, 95,191,122,199, 15, 31, 62,236,149,188,169, 83,167, 58, 20,128,156,156, 28,228,228,
-228,212, 91, 21,224,205,245,175, 91,183, 78,  5,  0,187,118,237,114, 73,158, 51,103,206, 84,175, 91,183, 14,  0,191, 37, 76,141,
- 37,253,225, 20, 13, 74, 41,226,226,226,100, 51,102,204,240,216,119, 82, 82, 82,246,106, 52,154,113,  7, 15, 30,204,141,140,140,
-196,233,211,167,161,213,106,133, 97, 97, 97, 72, 73, 73,129, 70,163,185,112,240,224,193,238,145,145,145,152, 53,107,150,199,235,
-117,149,  7,192,215, 24,128,134,239, 86,102,102, 38,145,203,229, 80, 42,149,180,225,180, 12,223,231, 17, 19, 19,243,154, 90,173,
-126,193,106,181,162,186,186, 26,102,179,217,161,172,212,213,213,129, 82, 90, 47, 48, 80, 46,151, 63,105, 39, 70,222,144,203,229,
-144,203,229,245,150,  5,122, 59,  5,224, 76,244,114,185, 92,221,112,108,113, 86, 10,154, 17,188,199, 79,110,169,223, 75, 47,189,
-  4,181, 90, 13,153, 76,134,226,226, 98,180,104,209,  2,165,165,165,188, 21,128,195,135, 15,147,148,148,148,139, 79, 61,245, 20,
-246,239,223,143, 55,223,124, 19,  0, 58, 39, 37, 37, 93,110, 14,242,119, 86,  2,154, 98,249,115,227, 75, 73, 73,  9,138,138,138,
-136,221, 16,148,165,166,166,170, 34, 34, 34, 32,149, 74,169, 63, 16,240,206, 67,216,216,160,212,156,112, 21,240,179,108,217,178,
- 70,247,223, 73,242, 79, 74, 74,186, 45, 41, 67,155, 34,243,226, 37,207,243,241,129,129,222,121, 45,221,205, 15,251,  2,185, 92,
- 46, 27, 63,126,188, 58, 55, 55,151,110,222,188,185,158, 34,208,144,148,248,202, 76, 75, 75,107, 84,179,225,146,146,120,147, 24,
-168, 49,133, 83, 38,147,241, 34,127, 14,225,225,225,142,121,253, 19, 39, 78,252, 37, 61, 61,253,223,156, 71,224,194,133, 11,221,
- 95,127,253,117, 25, 33,132,151,188,219,145,  7,160,225,125,118, 53,255,237,133, 82,170,139,139,139, 91,178,115,231,206,183, 45,
- 22, 11, 42, 43, 43, 29, 49,  0,  0,112,253,250,117, 84, 86, 86,130, 82,202, 89,237, 94, 77,182,115,243,255, 13,151,253, 53,140,
- 19,224, 75,254,206,207,249,110, 91,202,203, 41,  1,175,188,242, 10,242,242,242,144,144,144,128, 15, 62,248,  0, 11, 23, 46,132,
- 80, 40,132, 68, 34,241,244, 92,  9,165,148,157, 61,123, 54,254,253,239,127, 99,205,154, 53,  0,208,117,255,254,253,151,237, 22,
-187, 79,157,201,105,218,170,217, 80, 86, 86,  6, 23,121,  0,212, 89, 89, 89,178,177, 99,199,170,124, 89,242,232,135,119,112, 21,
-  4,200, 75,  1,240, 38, 41,135,175,132,221,220,104, 14,242,191, 27,  7,141,121,243,230,201, 78,158, 60,217,172, 50,237,214,144,
-170, 57,101,114,132,199,173,173,  7,224, 72,  6,196,178, 44,182,108,217,194, 91,  9,120,249,229,151,185,118,222, 18,  3,192, 48,
- 12, 88,150,197,223,255,254,119, 21, 95,242,116, 39,175,169, 43,  9, 82, 82, 82,254,163,209,104,174, 31, 60,120,112, 23, 95,171,
-255,118,123,219, 26,222, 95, 87, 46,118,111,148,  0, 66,200, 59,147, 39, 79,206, 89,191,126,253,113,177, 88, 12,110, 85,  0,203,
-178,  8, 13, 13,133, 86,171,229, 82,216,  6,  1,176,242, 53,  8,156,131,255,142, 28, 57,  2,185, 92, 94,111, 60,241, 52, 14,149,
-148,148,208,146,146, 18, 89, 67, 23,127, 19,151,252,  1,104,212,221,111, 89,177, 98,133,  4,128,  9,182,248, 41,238,227,149, 18,
-224,156,248,231,217,103,159,117,124,175,174,174,246,248,154,197,196,196,144,  1,  3,  6,208,175,190,250,234,177,141, 27, 55,126,
-199,145,237,198,141, 27,225,109,212, 63,135,203,151, 47, 59, 82, 18, 55, 19,212, 59,118,236,104,172, 79,169,247,237,219,231,183,
-252,111, 35,184, 85,  0,174,136,159,215, 42,128,230, 38,245,198,228,221, 45,202,195,221, 74,254,  0,208,191,127,127,117,255,254,
-253,155, 85,166,125,112,188,237,215,234,236,254,111, 72, 82,141, 45, 59,179,183,143, 79,219,136, 23,215,123, 91,175, 53, 60, 60,
-124,119, 83, 34,253,155, 51,  6,192, 85, 31,118,231,237,241,162,207,159, 72, 74, 74,106,177,103,207,158,247, 75, 75, 75, 95, 48,
- 24, 12,176, 90,173, 24, 50,100,  8,134, 13, 27,150, 46,151,203, 23,241, 33,127,  0, 40, 40, 40,112,124,119,142, 53, 41, 40, 40,
-184,101,219, 29, 34, 34, 34,136,221, 75, 32,  3,160,226,148,  9,167,169,  0,175,159,201,180,105,211, 26, 59, 36,116, 26, 47,197,
-119, 98, 92,201,204,204,100,143, 29, 59,134, 79, 62,249,132,  0,224,149,148,231,249,231,221,231,100, 26, 62,124, 56,166, 76,153,
-194,187, 13,158,228,249,113,247, 41,  1,141,145,191, 75,  5,160,185, 73,208, 95, 33,206, 15, 87,125,160,177,101,103,254,123,115,
- 87,255,134,110,194,132,  9,243,  0,204,243, 85,192,193,131,  7,201,204,153, 51,111,139, 66,235,107,230,192, 63, 82, 89,108, 42,
-  6, 14, 28,216,172,197,120,154, 91,158, 31,119,151, 18,224,209,138, 26, 50,100,136,127, 32,246,195, 15, 63,252,240,195,143,255,
- 49, 48,254, 91,224,135, 31,126,248,225,135, 31,126,  5,192, 15, 63,252,240,195, 15, 63,252,240, 43,  0,126,248,225,135, 31,126,
-220,131,176,  0, 96,253,183,193, 15,119, 16,250,111,129, 31,126,248,225,135,127,108,247,227,127,188,147,204,157, 59,215,231,  8,
- 88, 87, 81,221,238,228,121, 90,127,236,173,188,230,110,159, 95,158, 95,222,255,186,188,159, 94,187,224,243,192, 18,245,126,119,
-220,110,121, 71, 94,245, 93, 94,244,  7,183,202, 75, 75, 75, 35,  0, 64,  8,145,154,205,102,156, 59,119, 78,101, 50,153, 32, 20,
- 10,113,233,210, 37, 60, 25,210,  3,187,139,138, 96,184,191, 43, 98, 98, 98,100,  2,129,  0,148, 82, 53,  0,100,100,100,220,246,
-231,193,181,207, 25,132,144,254,  0,218, 29, 63,126,124, 71,167, 78,157, 24,141, 70, 35,233,212,169,211,123,129,129,129,171,  0,
- 92,182, 47, 39,101, 50, 50, 50,172,110,228,181,180,123, 11,244,132, 16, 10,  0, 23,143,253,103,181, 98,116,105,202,134,162,200,
-115,194,118, 19, 98, 90,180,108, 85, 11,128, 82, 74,133,  0,194, 50, 50, 50, 46,222,246,254,247,211, 79, 62,203,139,138,138,250,
-159,151,119, 91,181, 68,190,217,182,188,205,254,230, 75,202,220,202,181, 95, 75,133,225, 33,170,179,167,207,200,238, 11,104,129,
-224,231,147,212,119,147,150,213, 88, 62,114,255, 18,201, 59,143,173, 91,183, 74,119,238,220,169, 74,127,205,182,253,237,254,209,
- 72, 74, 74,226,245, 92,246,231, 31,146, 50,132,168, 78,157, 60,  9,173, 86,139,238,221,187,163, 69,203,150,136, 31, 63,129,247,
-115,221,187,119,111,189, 23, 55, 39, 39,199,109, 45,133,156,156, 28,159,251, 13, 87,168, 41, 35, 35,163,105,253, 46, 81, 99,255,
- 66,  1, 16, 32, 59,220,119, 89,209, 43,128,136,167,109,223, 75,214,  2, 71, 22, 52,253,161, 78,189, 81,191,125, 57,109,120,253,
- 25, 33,132,234,116, 58,217,158, 61,123, 84, 37, 37, 37, 72, 20,181, 70,135,174,109, 81,167, 51, 32, 80,111,193,168,133,207, 96,
- 76,194,116,108,255, 50,  3,219,114,115, 85, 19, 38, 76,144,221,  5, 93,248,180,213,106,237, 88, 82, 82,194, 14, 30, 60, 88, 28,
- 25, 25,137,163, 71,143,190, 86, 87, 87, 55,185,119,239,222,114, 66,136,134, 82,234,105, 42,160,198,121,195, 98,177, 48,191, 20,
-253,212,187,203,236, 40,252,125,248,128,182,  5,123, 62,218,188,229, 55,233,207,189,  7,142,253,192, 46,239,146, 93, 97, 96,253,
-158,134,255, 49, 55,145,183,249,251,189,201,131,239, 45,249, 91, 55,236,144,198,182,237,162, 34,157, 35, 80, 92, 91,137,142,157,
-122,168,204,172, 21, 39, 63, 93,135,242,238,109,101,195, 19, 38,241, 82,  4,142,168, 20,180,111, 47,110, 75,128,111,246,176,216,
-255, 35, 69,234, 12,160,111, 47, 96,193,210,166, 17, 55, 87,160,164,169,217,201, 92, 41, 19,205, 37,183, 41, 72, 77, 77,165, 88,
- 66, 64,222,105,252, 28, 74, 41,176,132, 96,218,239,137,119,205, 90,235,155,228, 79,237,228, 63,  6,  7, 14, 28, 64, 82, 82,146,
-199,191,189,127,240, 30,218,191,255, 48,100,103, 95,193,225,124, 91,194,154,211, 39, 79,  1,  0,230,252,245,107,122,234,204, 84,
- 89,176,132,223,115, 25, 63,126, 60,187,119,239, 94, 38, 39, 39,  7,251,246,237,115, 91,136,201,215, 20,170,141,189,183,105, 10,
-  5,205,240, 65,161,224,210,133, 55, 57,149,113,196,211,245,139,237, 52,135,  2,224,116,159,236,213,  9,121,225,236,217,179, 80,
-111,222,172,122, 71, 62, 13, 67,146,158,133,184,125, 24, 32,180, 39,251, 99, 41,192,138,192, 26, 41, 38, 61,157,138,210,127,125,
-136, 67,135, 14,169, 70,142, 28, 41,227,188,  0,119,  8, 86,134, 97,218,181,105,211,  6,106,181, 90, 56,120,240, 96, 12, 31, 62,
-156,185,122,245,106,212, 47,191,252,114,236,254,251,239, 31, 74,  8,185,106, 39,107,134,231,189,107, 49,110,236,248,136, 15,150,
-111,101, 22, 37,255,214, 42, 38,126,174, 44,102,132,114,244,194, 79, 46, 61, 28,249,192,172,104, 66, 72, 13,108, 49,  6, 76, 99,
-253,204, 57,177,149,167,126,212,100,133,212,143,122,104,152,  0,168, 33,124, 42,  6,228, 60,128, 12,153, 53,  8,115, 71, 61,199,
-128,103,229,190,134, 74,128, 66,161,160,209,209,209,200,202,202,162,206,101, 75,189, 34,214,188, 35,210,153, 81,177, 42,177,149,
-133, 21, 20,129,149, 65,184,122,253, 58,174,214, 84,161,103, 64, 11, 24,139, 47,171, 14,111,219, 41, 27,193, 67,  9,232,219, 11,
- 56,121,150,  1,165, 18, 88, 73,  0, 30, 27,111,198,148,  9,  6,220,140,161,105,122,170,132,166,146, 52, 71,252,139, 22, 45, 66,
- 81, 81, 17,  0, 96,199, 73, 17,234,204,102,149,226,175,195,188, 82,  4,188, 81,226,236, 41, 94,221, 63,151, 37,182,195,209,209,
-209,141,231,111, 95,226,219, 59,190,253,243, 43,210,109,191,188,229, 80,120, 38, 15, 90, 34,123,228,185, 78, 77, 30,112,183,110,
-221, 42,221,177, 99,135,138, 97, 24,188,244, 62, 28,213,207,248,212,193,  8, 11,251, 65, 26, 51, 34, 13,192, 54,140, 30,253,175,
-122,199,102,206,  4, 38, 77,  2, 38, 33, 71,181,226, 95,224,165,  4,112,228,175, 86,219, 78,157, 62,125,186,163,176,146, 55,  4,
-230,206,242,231, 82, 50, 59, 95, 95, 90,154,111,228,223,108,136, 94, 14,  0, 88,185,114,229, 77,  5, 96,104, 58,112,244,165, 59,
-210,156,125,251,246, 97,213,148, 84,244, 28, 59, 30, 16, 24, 65, 68, 12,136,144,  1, 17,136, 64, 41,  1,171,179,128, 90,173,160,
- 38, 43,158,121,250, 89, 60,251,230, 60,156,109,223, 94,213,171, 87,175, 59,233,  9, 32, 69, 69, 69,177, 93,187,118, 21,151,148,
-148, 32, 47, 47, 15, 39, 79,158,196,248,241,227, 17, 27, 27,219,113,205,154, 53,239, 78,155, 54,237, 25, 47, 20,  0,193,129,220,
-255,254,223,227, 67,244,237,143,212,  8, 48,115, 73, 45, 30,140,250, 24,207,205,159, 46,252,104, 81,101,207, 69, 31,173,159, 25,
- 17, 53, 51, 19,141,164, 65,118, 38,116,231, 49, 61, 45, 45,141,186,218,223,220,  5,225,252,184, 13, 30,  0,231,135,180, 97,215,
-250,202, 94,247,245, 10, 85,188,243, 12, 59,119,212,115,188,  7,143,204,204, 76,146,149,149, 69,185,180,164,220,255, 10,133,130,
- 38, 38, 38,122,103, 85,239, 58, 36,157, 24, 57, 64, 37,174,179, 32,240,163,151, 97,209,155, 32,121,105, 41, 66,196, 18,212,137,
- 12,208,213, 25, 16,  8,  2,227,197,114, 85, 85, 85,149, 44, 36, 36,196,237, 32,124,242, 44,144,181,145,  5,160,183,127,128,209,
- 15, 48,152, 50,129,192, 57,144, 54,117,  6,144,181,209,  7,143,105, 98,162,204,126,157, 62, 89,235, 28,249,115,196, 15,  0,153,
-  7,204, 48,152,116,  0,128,113,139,246, 34,123,217,120, 21,  0,222,242,207,126,120, 22, 34, 82,124,179, 35,144, 50,144, 54,125,
-157,182,203,209,246,175,252, 82,132,146,119,108,228,239,174,198, 60, 81,100, 83,219, 57,252,172,255,163, 59,204,210,172,173,207,
-171, 40, 40, 62,152,255, 45, 70, 72, 35,177,225,243,253,248, 98, 79,154,106,135,130, 98,238, 95,222,146, 13, 25,221,209, 39, 69,
-160,246,130,130,142, 29, 12,100,127,117, 28,148, 82,180,108,119,191,131,252, 87,173, 90,229,182,125,186, 58,165, 52, 53,177,163,
- 10,248, 12,192,183, 56,124, 24, 24, 49,226,230,241,119,223,189,249,253,197, 23,114, 84, 25, 95,244,145, 49,108, 87,183,237,228,
-200, 63, 46, 46, 14, 44,203,226,211, 79, 63,109,182, 23, 92,161, 80, 56,200,191,190, 82,160,160, 25, 25,238,223, 57,102,154,182,
-158,250, 75,236,255,176,137, 46,206, 35,246, 19,137,237,203,224,193,183,206,177, 51,211,181, 14,175, 60,  0,176,108, 50,230,207,
-159,239, 56, 62,127,254,124,172, 92,185, 18, 76,239,217, 55,127,213,126,190, 43,121,194,233,174,219,103,177,184, 56,143, 71,251,
-234,234,234,208,161,123, 15,128, 53,129,  9,  0,136, 80,  0, 75, 77, 21,234, 74,206,225,250,165, 50,116, 25, 41,  5, 17,135,130,
-152, 77,128,128,193,178,185, 11, 49, 62,235, 45, 44, 88,176,160, 89,  7,101, 79,169,178,157,200,150, 80, 74, 67, 13,  6,195,200,
-240,240,112,156, 58,117, 10, 44,203,226,220,185,115, 88,187,118, 45,250,245,235,135,206,157, 59,207,  2,240, 76,  3,178,102, 27,
- 35,111, 74,105,155,238,204, 97,105,199,110,241,226,202,188,223, 80,165, 13,192,191,183, 91,176,179,224, 63,120, 33, 49, 80, 40,
-212,179,209,192,204, 70,235, 32,220,142,226, 86,126,120,135,198,250,142, 43,207,128,144, 47,241, 83, 74, 33,123, 45, 14, 89,121,
-153,161,169, 80,224,231,175,126,  3, 70, 57, 94, 43, 94,224, 72, 95,175, 95, 15,128,160,174,110, 13,194,195,149,200,206,206,134,
- 55,105, 60,135,  7,180, 82,181,171,179, 66,178,228, 89, 88,111,104, 96,185,124,  3, 66,177,  8, 65, 68,128, 96, 34, 64,176, 64,
-136,112,145,  4,218,154, 74, 92,217,119, 72, 21, 50,229, 33,183,  3,157, 43, 82,223,255, 35,107, 87,  0,128,229,139,  9, 40,  1,
-108,225, 49,222,119,112, 59, 41,203,178,179,179, 85,217,217,217, 62, 77, 33, 56,147, 63,132,  2,148, 92,177, 13,126,165,215,234,
-208,173,189,  4,189,147,183, 33,123,109,130,138,175,123, 93, 68,138, 33, 36,101, 16,144, 27,176,210, 54,  8,104, 71, 16, 60,227,
- 50, 88, 86,131,186,186,108, 88,139,254,238,157, 39,151, 71,229, 54,111, 74,188,102,110,125, 78, 21, 27,254, 58, 62,253,118, 54,
- 90, 48,221,  0,  0,207, 62,223,  7,131,135, 71, 96,253,103,121, 88,245,159,183, 85,153,163,125,115, 29, 18,  2, 40, 94, 60,230,
- 24,244, 30,124,240, 65,236,223,191,223, 35,249,  3, 64,210, 12,145, 10,216,  7,224, 24, 42,175,181, 64,239,110,192,234,213,181,
- 80,169,128,222,189,129,136,  8,155,136,202,107, 45,108, 47,227,160,223, 85,191,254,210,149,184, 35,255,125,251,246,129,101, 89,
-  7, 73,111,218,180,169,201,  4,226,188,221,144,252,  1,192, 19,249,  3, 64, 70,102, 38,161,128,148,  0,234,212,212,212, 70, 59,
- 62,235, 52,232,103,102,101,201,  8,  1, 86,125,190,234,150,152,151, 85, 25,153,206,254, 21, 41,165, 84,245,241,199, 31, 59,118,
-124,252,241,199, 88,185,114, 37, 50, 50, 50,234, 87,145, 35,144,186,146,151, 97, 75, 97, 43,163,148,170,159,121,230,153, 70,219,
-103,113,242,162,100,173, 94, 45, 35,  4,200, 88,149,161,114, 69, 94,194,150, 45,  1,145,  0, 86,125, 37,126,223,153,139,245,155,
-115,240,249,229,115,  0,128,194,183, 91,161,247,152, 73, 48,150, 94,196,241, 95,142,224,183,115,167, 81,117,245, 42,142, 29, 59,
-214,108,133,181,214,174, 93, 43,229,215,135, 73,  8,165,180,111, 81, 81,209, 71,111,188,241,198,128,143, 62,250, 72,108, 50,153,
- 32, 16,  8,208,178,101, 75,232,116, 58, 20, 22, 22, 34, 34, 34,130,171, 91,224,206,250, 15, 38,132,176,148,210,240,202, 75,  7,
-127,124,251,255, 74,195,191,156,223,  9, 26,157, 24, 98, 33,131, 46, 97, 18, 92,189, 97,130,226, 31, 22, 12, 30, 22, 29,220,205,
-131, 39, 33, 45, 45,141,114,138,128,115, 95,108,236,187, 31,183, 31, 28,249, 55, 84, 14, 24, 79,131,  8, 87,239,187,158,155, 51,
- 62,201,235,  6,100,101,101, 81, 27,249,111,112,144,191,228,199,243,208,239,190,175,222,113,143,150,107,230,  6,105,136,166,  6,
-172, 88,  8,211,145,227, 48,254, 94,130,186, 61,251,  1,131, 17, 98, 74, 17,  4,  1,132, 32, 48,178, 22,104,140,117,248,124,239,
-118,143, 50,151, 47,182, 89,247,206,176,109,115,230, 10,197,169, 51, 20, 11,150,250,222,103,229,114,185,218,217,237,165, 84, 42,
-121,189,232, 74,165,210, 81, 91,155,195,147, 43, 47, 33,247,136, 22,165,215,234, 28, 74, 64,241, 37,  3, 32,223, 12,165, 82,201,
-203, 29, 41, 36,182,202, 97,162,154,223, 16, 28,124,  6,  1,146, 26,176,172,  6,102,243, 17,  8,  4, 17, 48,233, 42,238, 88,103,
-205,253,230,152, 20, 32,245,200,255,202, 41,138,161,  9,  2, 60,255,222,120, 60, 56,126,  0,  0,106, 63,207, 59,108,216,176,129,
-190,244, 62, 65,139,182,131, 64,  1,196, 79,153,139,  3,  7, 14,240,250, 91,150,185, 72,219,181,251,213, 65,254, 53, 21,182, 18,
-204,131,  7,219,200,159, 43,  4,104, 59, 22,136,154,138, 64,132,  7, 93,113, 43,115,234,212,169,144,201,100, 24, 59,118, 44,166,
- 79,159, 14,129, 64,112,203,199,121, 63, 95,184,122,111,125, 82,150,156,136,152, 16,226,248, 52,182,143,  0,106, 80,168, 27,145,
-117,243,253, 74, 77, 85,185,178,156,231,207,159,143,212,212,212,250,132,218,136,188,111, 51, 51,113,236,216, 49, 21, 33, 68, 10,
-160,222, 61,115,248,179, 27,236,115,215, 62, 49,165, 96,130,  2, 96,190,122,  1,153,175,191,142,181,186, 74,104,227, 98, 28,199,
-191,252,207, 90,188,181,112, 14, 34, 23, 60,137,119,126,219,135,205,218,115, 24,255,200, 35,136,136,136,240,122, 10, 96,237,218,
-181, 82,133, 66, 65,215,172, 89, 83,175, 15, 23, 20, 20,168,220, 77, 67, 17, 66, 68,132,144, 97,191,253,246, 91,105, 94, 94,158,
-250,165,151, 94,138,249,244,211, 79, 37,181,181,181,142, 50,205,117,117,117,104,209,162, 69,241,180,105,211,250,140, 26, 53,170,
-155,  7, 69,130, 33,132,116,255, 45,127, 75,249,233,221, 11,206, 47,120, 53,189,227,182, 37,157,240,123,153, 16, 85,181,  2,176,
-  4,168,168, 53,129,182,238, 85,247,226,107, 75,  7, 60,252,216, 95, 60, 78, 39,100,100,100, 16,110,172,203,204,204,244,248,221,
-143, 59, 67,254, 46, 61,  0,206,196,207,103,156,241,198, 18,185,233,106, 91,227,210, 59, 80, 47,206,160, 17, 55,198,128, 54,237,
- 85, 26,106,134,184, 66,  3,201,183,251, 64,132, 12, 80,103,  2,173,209,129, 88, 44, 16,  1,176, 82, 22,117, 86, 11,106, 44, 38,
-128,245, 60,135,202,  5,249, 45, 95,220,248, 48,104, 11, 18,108,250,128,154,153,153, 73, 56,151, 62, 31,107,253, 22,235, 31,192,
-127,159,235, 88,111,123,216, 43, 37, 16,209, 27, 48,147, 54,200,206,206,222,199,215, 11, 32,169, 85, 33,252,157,255,224,250, 75,
-105,184,161,  9, 68, 39,243,113, 88,173, 37,  0,128, 11, 63,119,184, 99, 29,118,243,174, 79, 84,115, 38,100,214, 35,127, 14, 49,
- 97,175, 99,228,128,169,136, 13, 63,142,205,187,222, 83,141,155,194,127, 16, 89,191,126, 61,253,225,135, 31, 80, 81, 49, 14,173,
- 91,231,162, 69,155,129,160,148,130, 97, 24, 94,129, 72,165,165, 64, 73,201, 49,110, 34,  1,144,212, 66,163,  3,134, 15,183,237,
- 41, 46,  6, 62,251, 12,168,169,  6,116,181, 64,173, 14,  8, 14,171,230,213,182,198,230,250,207,158, 61, 11,  0,120,255,253,247,
-  1,  0,145,145,145,205,230,102,118,238,147,124,254,102,222,188,121,112,182,216, 27, 18,183, 23,144,  2, 55,231,254,157,193,121,
-  1,236,231,168,221,  9,153,221, 57, 18,167,143,159, 64, 89, 88,152,138, 97, 24,188,240,194, 11,248,215,191,254,229,115,251, 70,
- 27, 67, 65,217, 90,204,121,127, 49,  6, 77,157,138,204,247,223,  7,195,220,228,185,204,226, 99, 55, 61,132,251,247, 99,239,222,
-189, 56,119,238,156,215, 65,128,107,215,174,149,230,231,231,171,  0,160,176,176, 80,197, 48,140, 44, 57, 57, 89,189,102,205, 26,
- 41,165, 20,177,177,177, 50,131,193,160,106, 68,177, 51, 23, 20, 20, 12, 74, 74, 74,106,213,179,103, 79,236,220,185, 83, 95, 85,
- 85, 37, 52, 24, 12, 54,111,135,125,254, 99,226,196,137,145,132,144, 64, 74,169,193,133, 24,198, 73, 30, 83,114,234,231,149,111,
-253, 61,165, 69,235,222,217,248, 41,251,105,252,122,145,160,244,154, 16,160, 12,140, 38, 51, 52,180,117,217,223,102, 63, 27, 67,
-  8, 41,163,205,160, 85,242,137,179,241,227,143, 65,163, 83,  0,121,121,121,183,236,171, 44,211,122, 77,118,206, 30,  0,219, 20,
-128,173,255, 72,126, 60,143,128, 99,101,176,134,218,172,168,134,115,200,141, 85,139, 59,113,169, 20,250,128, 64, 68, 88, 44,232,
- 18,216,  2, 65, 34, 49,136,217, 12,176, 20, 22,171, 21, 53, 86, 19,244, 86, 11,140,212, 10, 43, 40,168, 23,157,109,193,210,155,
- 74,128, 45, 46,224, 38,233, 47, 95, 44, 64,250, 98,130,151,150, 90,154,124,211,229,114,185,154, 43, 93,202,  7,139,178,109,247,
-125, 89, 98,152,131,240, 29,174,124,122,  3, 34,  0, 66,170,197, 87,115,194, 44, 79, 42,249,197,117,136,174,253,  8, 43,108,110,
-234,143,132, 33,120,242,218,  5, 20,253,163, 11,130, 59,244, 67, 85, 89, 25,174,158,191,124, 71, 59,230,224,225, 17,208,217,187,
-155, 62,240,  4,130, 12,253,241,245,219,102,199,241, 81,242,  1,200,223,236,157,229, 63,101,204, 15,248,246, 91, 57, 66,243,149,
- 88,177, 24,120,113, 41,197,152, 49, 99,120, 47,251,235,209,165, 43,233,213,171,190, 22,184,125,187, 45,240,111,195,  6,160,119,
-111,138,149, 43,  9,222,121,167,214,166, 32,  0,232,221, 39, 12, 47,189,200,175,141,156,149, 58,117,234, 84,108,218,180,169,158,
- 37, 27, 31, 31,223, 40,185,249,170,136,122,233,193,147,173, 92,185, 82,213,152,  2,176,124,249,114,100,101,101,241,178,132,159,
-121,230, 25, 21, 23,249,239, 10, 47,190,248, 34, 86,172, 88,161,202,202,202,114,219,198, 31, 78,148,226,181,119, 22, 98,246,146,
-191,227, 85,147,  9, 31,127,252,113,163,247,104,249,242,229, 80, 42,149, 32,132, 72, 27, 35,236, 49,253,187, 97,205,151,159, 33,
-122,230, 76,188,253,246,219,110,149,134,249,243,231, 99,249,242,229, 88,189,122,181,218,219,123,159,159,159,175,226,130,229, 20,
- 10,  5, 45, 40, 40, 80, 37, 39, 39,147,195,135, 15,171,  8, 33, 72, 78, 78, 86,175, 90,181,170,209,191,215,235,245,161,219,183,
-111,199,184,113,227, 80, 92, 92, 28,164,211,233, 96, 54,155,193, 48, 12, 76, 38, 19, 18, 19, 19,137,157,220, 13,124, 28, 91, 70,
-163, 81,124,100,203, 76,140,121,252, 29,236,206, 59,139,115, 87,  4,168,214, 49, 16,  8,129, 50, 93, 32, 94,120,101,113, 44,128,
- 75,124,185,159,139, 59,  1,248, 77,  7,248,113,103,172,127,184,114,227,112,174, 25,169, 84, 10,169, 84,138, 95,126,249,197,241,
- 41,249,241,  2,170, 12, 85,104, 61,220,251,117,191, 28,185,  7,  5, 37, 65,242,227,121,136, 46, 84,128, 18,  2,241,236,138,122,
-199, 61, 18,151, 88,  0, 43,  5, 46,233, 42, 81, 90,165,193,245,106, 45,170,234,234,160, 53, 25,112,221,104,192,149, 58, 61,202,
-234,106,161, 49, 27,161,101,205, 48,177,158,179, 97,142,126,192,197,128,231, 20, 23, 48,103,122, 11, 80,136, 65,189, 43,  3,238,
-112,225, 55,236,236,124,221,255, 14,203,243, 90, 29,114,143,104,235, 17, 63, 71,254,  1,236,  5,  4,176, 23,240,214, 68, 33, 74,
- 75, 75, 77,124,101,110, 57,199,162,109,122,134, 99,251,156,206,138, 75,103,203,112,234,224,113, 92, 61, 95,121,199, 59,238,134,
-207,109, 10,104,117, 57, 69,144,161, 63,164,179,133,120,124,137,200,241, 73,223, 60, 19,  4,132,247,128,244,232,131,121,120,122,
-129, 28, 97,  5,185, 32,132,224,187,131,182, 71,192,151,252, 57, 68,246,237,211, 64,177,  0, 62,253, 20, 56,115,198,230,  9,120,
-251,109,234,112,191, 83, 74, 17, 22, 22,230,121,  4,182,247, 81,171,213, 10,171,213,138,247,223,127, 31,103,207,158,197,233,211,
-167,113,250,244,105, 40,149, 74, 44, 92,184, 16,165,165,165,119,242,145,168, 27,179,164,231,205,155,199, 89,117,188,200,144, 16,
-226,210,250,231,224,238,152, 51,246,  7, 84,130, 48, 45,240,197,107, 75,209, 98,187, 18,169,169,169,112, 46, 53,172,232, 61, 16,
-243,162, 71, 34, 40, 40,  8, 99,198,140,193, 27,111,188,  1,165, 82,169,210,106,181, 46,223,191, 47,203, 78,227,202,128,254,232,
-220,185,179,140,101,217, 70,189, 29,156,167,194, 87,207,139,115,164,124,108,108,172,140, 35, 74,  0,136,137,137,145,121,184,119,
- 99,199,140, 25,211,170,180,180, 20,251,247,239,199,125,247,221,  7,161, 80,232, 80, 22, 59,119,238,204,119, 58,130,181,203, 35,
-189,250, 70, 45,202,218, 19,138, 95,119, 46,193,232,216,126,  8,150, 48,  8, 14,178, 34, 48,192,136,135, 30,157,198,  2,208, 52,
-212, 85, 61, 41,151,220,245,241,153, 14,240,227,206,129,113,247, 16, 51, 51, 51, 91,206,155, 55, 15,243,230,205,  3,  0,211,187,
-105,239,194, 92,110, 65, 96,160,196,167,100, 36,137,137,182,240,225,160,137,103, 64,  5, 12,222,248, 90,239,176,254,249, 34,168,
-115,103,153,165, 69, 16,180,212,138, 19, 58, 45,142, 85, 85,224,120,245, 13, 28,175,214,224,132, 78,131, 51,122, 45, 42,140,117,
-168,181, 88,112, 89,175,115,252,166, 59, 76,153, 64,176,124,177,  0,203, 23, 11, 64, 33,  0, 37, 12, 82,103, 16, 60, 51, 67,140,
-217,211,219,162, 87,175,246, 96, 33,  2,224,221, 37,115,174,254,196,196, 68, 89,195,125, 94,220, 51, 89,241, 37,155, 34, 95,244,
-161, 45,136,110,247,203, 33, 54,247, 13,213, 66, 64,117, 48, 50,182,136,102,141, 70, 19,148,152,152,232, 85, 81,244,232,232,104,
- 40,149, 74,108,168,213,193, 96, 98,240,244,198, 47, 80, 46,  9,132,193,116,231,202, 68, 36, 12,126, 75,150,175, 89,138, 13,255,
-190,105,226,127,253,182, 25, 49, 97,175,223, 84, 40, 31,254, 76,150,145,153,193, 43,183,196,138,215,129,228,  5,227, 16, 90,160,
-132,236, 31,113, 96, 38,  3,106,181,218,167, 62,220,189,123,253,232,241,177, 99,129,208, 80, 32, 34,  2, 24, 49,184, 37, 36, 98,
-  1,  4,204, 77,177,146,192, 64,143,  3, 50,195, 48,142,185,254,179,103,207, 34, 50, 50,178,222,231,157,119,222,193, 59,239,188,
-131,203,151,249,123,101, 92,205,215, 59, 35, 45,205,123, 11, 44, 43, 43, 75,182, 98,197, 10,151,132,205,215,250,119,114, 61,223,
- 18,167,192,109,179, 44,191, 20,246, 38, 66,192,234,141, 16,117,232, 14,197,123,239, 33, 57, 56, 20,161,234,124,199,241,217,127,
- 73,198, 91, 31,125,129,226,229,255,197,155,131,198, 98, 90, 88, 79,236,221,186, 21, 37, 37, 37, 46,223,191,199,210, 20, 24, 48,
-112,160,140, 11,106,228, 20, 50,231,233, 25, 87,251,220, 88, 95, 52, 45, 45,141,114,129,125,220,124,191, 51,201, 39, 39, 39,171,
- 99, 98, 98,100,156,235, 63, 57, 57, 89,237,225,190,229,137, 68,162,251, 30,123,236,177,179, 85, 85, 85,208,106,181,  8, 12, 12,
- 68,219,182,109, 17, 26, 26,138,208,208, 80, 79, 55,143,109, 32,207, 26, 16, 16,160,127, 34,237, 95,178,181, 63, 14,195,249,139,
-213,104, 31, 34, 64,108, 31,130,251,123, 82,  4,183,106, 85,  9,192,234,134, 55,252,245,  6,238, 81,235, 31,240,188, 12,176, 54,
- 51, 51, 51,  0, 64,176, 66,161,112,104,129, 93,226, 58,249,164,249,102,102,102, 18,185, 92, 14,165, 82, 73,197,179,179,235,185,
- 34,249,230,  1,104,253,200, 56,117, 69,246, 78,232, 45, 70, 84,235,244, 56,107, 54, 67,196,218, 28,245, 85,230, 58,176,148,130,
-  2,216,121,237, 28,116, 22, 51,  0,240, 24,152,  8, 22, 44,173,223,199,109, 83,  1, 44,172, 48,226,247, 51, 53, 88,179,169,218,
-171,235,117, 38,122,185, 92,174,110,232,  5,112, 86, 10,220, 65, 46,151,171,179, 21,211, 32, 26,247, 57,128,  8, 84, 84,220, 12,
-206, 19,179, 87, 96, 98, 58,226,111,131, 78,227,202, 21,219, 64,156,153,153,153,203, 71,110,218,215, 89,245, 20,175,236,236,108,
-112,147, 18, 27,127, 59,228,213,170,140,230,198,195,207,118, 84,111, 83, 80, 28, 84, 30,  7,  0,140, 28, 96,203,140,247,247,249,
- 75,112,232,248,  0,124,180,121, 38, 50,183, 63,171,202, 76,224, 71,224, 79, 47,144, 35, 60, 92,233,108,200, 66,163,145,131,210,
-108,187,171,146, 34, 59, 59,145,151,172,169,143, 63, 65,246,238,222, 67,  1,155,235, 95, 38, 35,184,113, 49,  4, 58,173,  4,134,
-106, 49, 54,174, 35,152, 55,143,226, 66,121, 13, 70,196,198, 96,230,244, 25,188,172, 98,171,213,234,152,239, 87, 42,109,109,117,
- 38,252,242,242,114,148,151,151,123,237,222, 87, 40, 20,148, 97,152, 91, 72, 53, 35, 35,147,248,144,  4, 72, 77, 41,173, 23, 11,
-224,228, 17,224,237, 10,119,118,237, 55,140,222,247,228,246,111,168,228, 88,106,106, 32,106, 19, 14, 65, 80, 11, 12,120, 98, 42,
-222,153, 48, 30,175,113,203,246,162,134,194,106,168,131,168,117,123, 12,138,145,162, 71,151,158,248,215,239,249, 24, 56,112,160,
-236,199, 31,127,188, 69,  9, 72, 83, 40,  0, 16, 21,  0, 60,155,150,230, 88, 58,104,105, 64,246, 66,161,  0,160, 55, 23, 42, 18,
-  0,131, 93, 12,178, 67,134, 12, 33,148, 82,135,139,191,176,176,208,225,226,119, 62,207,190,237,145,252,237,  6,251,235,161,161,
-161,  3, 98, 98, 98,122,157, 60,121, 18, 71,143, 30,133,213,106, 69,112,112, 48,244,122,125,121,120,120,248,121,111,140, 62, 66,
-  8,211,190,125,251,189,143, 62,250,104,251,130,  3,133, 88,153,189, 23,173,136, 24,125,218, 27,113,230, 70, 48, 30,236, 99, 62,
-  7,192,204, 41,104,118,133,210,234,238,153, 56,143,117,254, 41,128,187, 27,124,230,139, 77,  0, 76,206, 68,125, 41,239, 50, 48,
-211,123,242,119, 38, 27, 87,131, 22, 95, 37,160, 90,163,149,153,131, 36,170, 42,134,197,213,186, 90,192,108,134,149, 82, 16,  0,
-191,215, 86,162, 76, 95, 13, 74, 41,151,196,134,199,192, 68,145, 58,131, 32,107,227,205, 62,121,242, 44,208,183,151,  5,  2,232,
-154, 68,254,206,157,221, 87,151, 87, 98, 98,162, 44, 59,251, 89, 21, 80,  4,141, 70, 99, 42, 45, 45, 21, 46, 27, 15,102,209,222,
- 49,152, 63,240,144,195, 10,227,171, 84,184,242,186, 52,220,230, 72,136,175, 53,135, 37,  4,195,178, 74, 40,224,122,185,159, 35,
- 19,160, 18,148, 79,144, 98, 90,194,231,178,204,109,127, 83,229,111,166,136, 13, 63,142, 81,242,  1, 56,176,247, 56, 10,180,239,
-129,128, 64,145,240, 25,239,107, 13, 15, 87,130, 16,130, 41, 83,166, 96,245,234,106,112, 70,177,237,127,106,191,199,217,245,  6,
- 36, 55, 83,176,136, 27, 43,147,229,237, 83,169,198,142,  5, 76, 87,187,226, 98,101,  0, 88,251,108,107, 71, 93,123,188,156, 90,
-131,189,  5,125,208,178, 75, 31, 94,109,228,136,255,210,165, 75,  0,128,171, 87,175, 58, 60,  3,215,174, 93,115, 12,172,190, 32,
- 51, 51,147,112,137,128, 26,206,225,102,100,102, 18, 62,249,  0,156,177,122,245,234,122,177,  0, 43, 86,172,240,218,250,111, 72,
- 24,190, 66, 34,145,224,234,133,243,232,217,171, 55, 88,139, 17,196, 98,133,176,101, 43,180, 28, 58, 12, 45,162, 30,  0,171,179,
-192,170, 55,130, 90,172,128,149,197,162, 85, 31, 97,250,204,233,144, 72, 36, 46,229, 89, 54,134,241,250, 93, 87,231, 69,127,224,
-250,220,216,216, 88, 89, 65, 65,129,138, 27,  3, 70,141, 26,229,242, 94,241, 32,127, 16, 66, 88,  0,187,250,244,233, 19,245,201,
- 39,159,152,174, 95,191, 94, 55,126,252,248, 71,139,138,138,222,212,235,245, 21,109,218,180, 81,244,239,223, 95,227,197,189, 23,
-  1,232, 22, 51, 98, 68,219,180,217,105, 56,119,233,156,230,169,217,105,163, 15,239, 93,151,126,165, 70, 51,114, 88,220,120,182,
-125,151,200,199, 93,120, 13, 88,119, 99,129, 51, 87, 52,150,252,199,159,  8,232,222, 81,  0, 26,181, 46,124, 33,127,142,108,184,
-156,  0,190, 40,  1, 61, 21, 73,106,  0,164, 44,115, 45, 69,160,  4, 90,106,129,201, 98,  1, 75, 89,180, 14,  9,193, 37, 93, 21,
-191, 12,118,118,184, 90,222,119, 51,  6,192,187, 76,108,174, 92,252, 77, 77,215,107,255,219,132, 97,195,134,109, 91,180,104,145,
- 56, 60, 60,156,189,114,229, 10,230, 15,188, 82,143,252,189,249, 13, 87,247,223,103,216,179,252, 53, 76,242,228,234, 28,190,136,
-122, 88,160,206,120, 56,131,108,253,244,178,116,199,111,111,171,242, 55,  3,  4,  4,  9,131,223,146, 61,252, 44,255,  4, 64, 92,
- 95,178, 17,124,181,125,144,  2, 92,241,206,218,116,155,243, 36,184, 91,  6,  1, 86, 53, 58, 48,205,156, 62, 67, 61,115,250, 12,
- 82,161,253, 68,106,173,169, 81, 17,  1,160,175, 11,  4,169,177, 64,200,  8,161,103, 36,178,  9,211,230, 64, 72,137,199,118,142,
- 31, 63,158,220,119,223,125,244,118,189,127, 54,107, 63,131,164,165,165, 81,231,136,118,103, 79,128,151,226,212,156,229,239,164,
- 80,168,239,196,224, 53,118,236, 88,252,109,115, 22,222,169,169,196,144,184,  7,193,180, 15,179,181,201, 76,109,169,123, 33,  2,
- 17,  8, 65,196,  2,172,206, 88,142, 86,227,134,161, 87,175, 94,127,104,234, 94,206,186,207,207,207, 87,141, 24, 49, 66, 54,107,
-214,172, 38,253,246,217,179,103,229,185,185,185, 23,  4,  2,193,214,209,163, 71,191,203, 48,204,245,152,152,152, 60,135, 37,227,
-228, 81, 34,132,192,213, 51,119,242,  4, 40,143, 30, 61, 58,252,171,181,235, 24,177, 32,224,226,212, 39,167, 14,102, 24, 70,251,
-224,164, 57,147,  1,132,216,137,191,  6,  0,181, 88, 44, 14,121, 13,148, 54,127, 73,249,187, 16,124,220,255, 62, 41,  0,205,161,
- 48,184, 35, 31,111,  6, 56,153, 34,153, 40,247, 42,165,236,169, 98,149,206,104,130,197,106, 69,175,225, 67, 17,105, 25,225, 21,
- 25, 54,103, 48, 10,151,244,  7,128,138,243,116, 56, 77,  5,144, 38,200,221, 46,151,203,133, 74,165,114,193,178,101,203,254,225,
-164, 92,140,205,204,204,244, 42, 17,137,221, 83,208,108,201, 75,166,253,158,104,191,143,141, 95,223, 52,165,210, 39, 77,255,145,
-231, 58,169, 31, 65,211,159,143,141,220,  9,158, 94, 48,214,145,167,156, 27,199,214,166,231, 34,184, 91,  6,  9,238,150,232,149,
-204,208, 86,207,171, 15, 94,  0, 97,153,139, 82,131,222, 86,  7, 32, 88, 34, 87,135,116,134, 87, 43, 70,157,250,159,200,174,113,
- 54,251,188, 42,167,  4, 52,135, 44,123, 44,128,138,251,222, 84,121,190,174, 44,235,213,171, 23, 58,188,240,130,108,229,158, 61,
-170,146,119,191, 69,162,168, 53, 66,237,197,123, 12,122, 11,230, 45,124, 21,130,160,112,236, 92,151,137, 95,218, 16, 76,104, 66,
-222,126,171,213,  2,111, 99,128, 26, 42,  1,124,172,124, 15,247,137,156, 62,125,250, 58,165, 52,189,111,223,190,255, 87, 81, 81,
-161, 19, 10,133,176, 88, 44,180,117,235,214, 14,143,138, 78,167,131, 88, 44,118,120,145,220,200, 27, 83, 88, 88,  8,214, 66, 48,
-114,212,224,183, 46, 93,186,164,213,104, 52,  8, 15, 15,103,187,116,233,162,229,158, 77, 85, 85, 21, 36, 18,  9,  8, 33,  8,  8,
-  8,224,101,244,113, 74, 66,195,239, 13,189,162,126,220, 99, 30,128,219,165, 20,248, 76,140,227,229,106,140,151,223, 85,209,164,
-118, 37,128,220,134,121,116,171, 92, 46,255,167, 92, 46,255,103,115,180,175, 25,175,151, 52,199, 57,183, 19, 54,171, 30,176,167,
-216,111,112, 44,177, 73,178, 25,182,171, 58, 88,210,181, 57,154,105,190,157,247,160, 25,139,174,168,189,153,171,247,160, 76,248,
- 44,135, 82, 74,130,130,130, 48,101,202, 20,216,203,247,162,212,169,124,239,193,220,189,142,242,189,227, 98,198,193,174,244, 54,
-250,123,171,181, 31,144,103,194, 94,189,149,152,120, 86, 19,228,161,  4, 52, 25, 15, 60,240,128,209, 98,177,228,  1,208,177, 44,
- 75, 77, 38,219,194,159,235,215,175,  3,  0, 90,180,176, 45,237,229,246,139, 68, 34,183,247,239,225,135, 31,230,100,236, 97, 89,
- 22,161,161,161, 96, 89,214,177,226,196,190,138,133,212,213,213, 81,  0, 16,139,197, 32,132, 48,127,196,216,238,135,239,224,147,
- 74, 26,  0,200,144, 33, 67,252,154,152, 31,126,248,225,199,189,  3, 11,128, 58,  0,146,102, 54,226, 60, 21, 12,226, 93, 81,208,
-143,123,  3,254,135,233,135, 31,126,248,113,111, 65,  8,160,  5, 15,242,215,195, 22,196,221, 92,124,192,194,191,236,239, 79,215,
-145,252,240,195, 15, 63,252,248,243, 33,200,207, 23,126,248, 61,  0,126,248,225,135, 31,126,248,225,135, 95,  1,240,195, 15, 63,
-252,240,195,143,255,117,159,140, 30,231,  0,  0, 32,  0, 73, 68, 65, 84,212,115,233,204,157, 59,215,231,  8, 78, 87,197,123,238,
-118,121, 17, 67,  3, 16, 24,112, 21, 34,113, 37, 88,214,182, 44, 76, 32, 96,192, 16,129,237,127,134,128, 16,  6,148,  8,109,107,
- 96, 97,193,182, 29, 34, 80, 74, 17,206,180,134,151,237, 11,  0,208,  6,182,  0,158, 26,216,150,123,153, 97,159, 83,187, 23,239,
-159, 95,158, 95,158, 95,158, 95,222,237,146,247,211, 79, 63,249, 44, 47, 42, 42,234,127, 94,158,215, 10,192,255, 26,126, 56,112,
-  6,195,135,153, 17, 22, 10,104,180,  4, 63,253, 34,129,144, 17, 98,210, 68, 43,246,170,218,130, 16,  6,132, 97, 32,105,  9,140,
- 29, 94,  9, 64,136,  7, 99, 41, 10,139,132, 54, 26,231,  1,213,161,  3, 20,  0, 68,212,140, 17,163,199, 94, 56,253,235,143,198,
-242,234,186, 72,171,190, 14,114,185, 60, 20, 64,149, 95, 15,189,183,145,243,245,191,165,189,123,245, 84, 93,191, 94,215,164,132,
- 79,247, 16,164,169,169,169,206,121,  0,154,116,205,169,169,169, 62,167,  3,246,195, 15, 63,154,201,  3,192, 97,221, 87, 95,242,
-214, 38,158,158, 53,219,227,203,218,220,242,154, 19,133, 69, 34,196,143,183,226,151, 95,  3, 33, 22,  9, 33, 20,  8, 33, 18, 81,
-  4,  8,204,128,176, 37,132, 48, 96,248,  0, 11, 36,226,  0, 80,  0, 29,219,  3,143, 76, 98,145,187,149, 31,249,159,249,253, 52,
-238,235,223, 11,157, 58,135,226,210,133,147,221, 67, 58,244, 68,155, 78, 86,124,255,221,119, 80, 42,149,149,119,122,125,188, 82,
-169,156,148,157,157,189,131,219, 78, 76, 76,124, 88, 46,151,239,240,191, 26,158,241,235, 47, 74,106,169, 59, 46,155,241, 72, 47,
- 21,203, 86,160,170,147, 65,117,242,216,102,212, 26, 59, 98, 88,244,232, 63, 45,137,165,166,166,170,230,207,159, 15, 66,  8,175,
-178,189,124,192, 37,139,105,134,114,243,126, 52, 81,  1,115, 11, 74,145,181,122,117,163,207,155, 75,240,227,156, 45,144,171, 33,
-224, 84, 75,192,241,156,157, 43, 35,250,209,188,224,178,  1,114,112,149, 27,224,174,242,  0, 48,248, 99,251,193,164,  9,102, 80,
-  8, 32, 20,136, 48,114,  4, 65,187,182, 12,132, 66,  6,  1, 34,  1,250, 70, 50,184,112,209,130,225,209, 12, 90,135, 75,240,253,
-190, 86,  0,  0,  1, 53,192,150, 10,219,234,145,252,127, 45, 42, 66,143, 78, 93,240,107,126,  1, 14,155,204,208,222,208, 66, 28,
-208, 18,253,162, 70, 97,240,168,  9, 80,109,203,  6,192, 47, 55,254,109, 32,254,177,217,217,217,185,139, 22, 45, 66, 81, 81, 17,
-215, 97, 42,  1,188, 48,103,206,156,237,137,137,137,114,185, 92,158,251,167,123, 41,126, 82,210,  0,161,  6, 66,198,132,186, 58,
- 43,170,116,129,120,112,204, 52,175,238,255,230,156,175,164,173,  2, 53,248,203,244,161,232,209,253, 17, 85,171, 86, 33, 48, 91,
- 44,184,126,253,  6,218,151, 94, 68,241,217, 18, 28, 58,168,161, 35, 71, 61,234,211,115,205,202,202,162, 78,131,243,221, 54, 56,
- 74,129,155,229,112,237,213,  1,165,184, 67,233,128,255,192,247,133,110,217,178,229,214,122, 10,119,140,188,168,148,128,128, 54,
-195,125,167,165, 95,131, 28,158,227,204,241,246, 44,153,246,106, 72, 78,152,147,161,195,240,233,159,184, 85,228,190,255,254,123,
-199,118,124,124, 60,118,237,218,229,118,219,143,219, 79,254,206,251,156, 21,  1,183, 10,192,193,  3,135, 49,234,193, 17,127, 88,
-163, 89, 47,242,167, 58,167,146,244, 53,251, 20, 35, 20, 64,171, 17,162, 67, 59, 17, 58,180, 19,163,182, 86,  4,137, 72,  8,171,
- 48,  0, 67,  7, 17, 12,185, 95,  0,134,136,108, 41, 48, 69, 98,136, 24, 35,136, 68, 12,139, 30,176, 64,231,150,252, 15,236,203,
- 69,207,142,109,113,236,151, 99, 88,252,238, 91,245,218,183,244,237,247, 41, 35, 32, 24, 26, 61, 20,223,239,202,245,170,242, 30,
-203,178,210,162,162, 34,213,153, 51,103, 16, 24, 24,136,192,192, 64, 89,124,124,188,218,203,193, 76,150,157,157,157,203, 17,191,
- 83,231,  8,  5, 48,225,139, 47,190,184, 49,103,206, 28, 37,128,241,114,185, 92,121, 55,118,240, 53,107,214, 72, 83, 82, 82,120,
- 95,247,127, 55,173,147, 14,140,108,169,234,222,177, 14, 33,173,  2,192, 48, 65, 48, 24, 44,168,208, 24,144,167, 92, 73, 37,173,
-134, 98,196,240, 49,188,250,145,  8, 87, 49,229,225,251, 85,  3,  6,244,195,149,171, 90, 28,249,233, 40,106,107,117,  8,  9,105,
-137,136,136,238, 96,  4, 34, 88,173,165,248,233,231,  3, 52,106,200,131,127, 42,235, 38, 53, 53, 85,245,226,139, 47, 58,182,231,
-207,159,143, 21, 43, 86,168, 86,187,177, 10,189, 34,163,187,212,  3, 96, 87,210,105, 78, 78, 14, 92, 21, 86,250, 35,225,108,101,
-103,102,102,200, 40,109,154, 18,192,116,127,194, 65,222,133, 31,180,112,105,134,117,  8,101,208, 57,156,185,103,159,223,255, 42,
-156,201,222,149, 82,224,209,  3,112,240,192, 97,  0,104,178, 34,112,224,133, 98,183,199, 31,252, 87,111,159,  7, 11, 66,136, 79,
-213,246,148,234,118, 16,  9, 69,232,218,169, 22, 53, 53, 34, 28, 57,214, 21,  2,129,  0,  2, 34,128, 88,100,193,128,222,122,244,
-233, 45,  0,  1,  3,177, 40,  0, 98,  1, 65,244,253, 38,132,135,177,216,240,127,238,101,247,235,217, 30, 23,206,150,223, 66,254,
-  0,176,120,201,107,228,253,119,255, 65, 59,198,222,143,176,208,150,188,219,107, 48, 24,164, 43, 86,172, 80, 93,184,112,161,158,
-190, 97, 52, 26,241,232,163,252,173,205,236,236,236,125,206,228,239,  2,109,210,211,211, 43, 95,122,233,165,189,119,122,138,162,
- 49,242, 63,124,248,176, 42, 37, 37,133,119,219, 34, 35,194, 85,157,219, 87,163, 77,235, 96,116,233,220,  1, 65,193, 65,184,112,
-161, 12, 86, 43,139,206,157, 90,226,248,239,249, 88,123,170, 88,154,252,212,108,183,131,233,111,191, 29,160,143, 39,244, 67,183,
-110, 93,112,226,247, 11, 56,114,228,119, 92,191, 81,  3, 74,129,176,176, 64,232,245,181,136,138, 26,128,202,202, 42,148, 29,249,
-  9, 95,253,231,180,116,214, 95,248, 43, 42,119, 57,164,128,173,248, 20,135,143, 63,254,152,219,246,202, 11,144,154,154, 74,157,
- 93,194,206, 22,164,179, 75,186, 57,166, 23,222,125,247, 93,218,181,107,215, 38,231,226,151,203,229,132, 16, 66, 55,111,222,236,
- 54,199, 62,135,180,180, 52,234,202, 67,176,118,237, 90, 41, 87, 28,200,149, 18,171, 80, 40,104, 99,169, 92,157,235, 57, 80, 74,
-161, 80,164,169,154,226,133,104, 40,111,248,171,181,248,241,131, 22,245,136,223,143,123,211,250,111,216,135,154, 52,  5,208, 84,
- 69,224,193,127,245,110, 84,  9,240,133,252, 57,228,229,229,161,172,172, 12,  0,208,185,115,103,234,141, 18, 32,160,  6,  8,137,
- 21, 98,145,  8, 63, 29,107, 11,129, 80,136,150, 34,157, 45, 14,160,  5,131,178,178,150,184,127,  0, 11, 66,  8, 18, 31,177,128,
-178, 12, 64,  2,108,142, 55,212, 52, 42, 87, 95,121, 17, 87, 53,181,120,233,205, 55, 27,109, 75,101,149,  6,218,235, 87,237,178,
-120, 19,119, 67,242,  7,  0,236,220,185, 19, 86,171, 85,250,248,227,143,123, 28,224,148, 74,229,216,134,165,127,185, 14, 83, 85,
- 85, 47, 30, 49,116,201,146, 37, 80, 42,149,227,238,166,169,  0,142,252,189,249,155,255,110, 90, 39,189, 63,210,136,192,192, 80,
- 72,  2,196,232,217,179,  7,186,246,232,129,234,106, 53, 52,154, 90,136,197,  2,132,135, 73, 32, 12, 12,117,155, 43, 30,  0,132,
-180, 12, 45, 91,180,134,222, 96,193,177, 99,197,184,124,181, 10, 87,174,214,194, 96,148,160, 91,103, 11, 36,  1,  2, 20,159, 46,
-193,125,189,122,225,242,149,106, 24, 44,173, 60,202,180, 19, 29,245,180,223,219,233,128,198,100,250, 34,139,179,254,231,207,159,
-127,203,254, 23, 95,124,209,167, 88,  0, 87, 36,218,112,238,184,185,188, 10,249,249,249, 42, 52,177, 32, 79,110,110, 46,205,206,
-206, 70, 98, 98, 34, 92, 77,  7,240,241, 84,113,228, 15,  0,133,133,133, 42,134, 97,234,181,105,237,218,181, 82, 62, 70, 79,108,
-108,172,140,147,211, 28, 30,151,205, 47,  6, 99,218, 10,157, 75,226,239, 28,206,216, 71, 41,126,143, 55, 62, 62,190,158,151,228,
-161,135, 30,170,119,175,252,110,255,187,  7, 94,199,  0, 52,151, 71,160, 57, 81, 92,108, 83, 44,202,202,202,188, 82,  2,132, 66,
- 33, 68,  2, 17, 68, 34,130, 49,163,  0,189,206,136,115,103,197, 16,  9, 69, 16, 90,133,136, 25, 65, 33, 22,137, 32, 16, 48,  0,
- 37,208,104,129, 31,143, 10,193,178, 44,128,235,141,202, 61,250,211, 89,212,214, 54,158,129,243,195, 37, 75,104, 64,128,  4,  6,
- 67, 21,172,172,133,247,117, 30, 61,122,180,113,165, 67,175,231, 69, 52, 13, 93,255,174, 52,195,109,219,182, 57,159,175,188, 19,
- 94,  0, 87, 46,126,103,242,143,141,141,229, 93,133,174, 75,231,246, 42,134,185,  8,139,149,133,201,108,193,245, 27, 26,136,196,
- 18, 24,141,102,152, 45, 86, 88, 44, 44, 44, 86,138, 74,237, 13,143,178,196, 34, 29, 36,129, 93, 80, 81, 81,133,234, 26, 61, 52,
- 90,  3, 90,181, 30,140,145,247,223,143,194,131,187,208,201,100, 65, 85,117, 21,250,244,233,133,  0,177, 16,186, 26,205,159,101,
-172,144, 82, 74, 29,115,255,206, 88,185,114,165, 79,177,  0,243,231,207,175,231, 77,104,120,140,175,  2, 96, 43,245,204, 89,180,
-225, 24, 55,110, 92,189,254,202, 25,  8,165,165,165, 42,165, 82,233, 83, 97, 42,165, 82,233, 32,127,110, 58, 96,203,150, 45, 30,
-201,181,161,167, 42, 63, 63, 95,197,  5,190, 41, 20, 10, 90, 80, 80,160, 74, 78, 78,118, 28, 47, 40, 40, 80, 17,226,190,121,177,
-177,177, 50,231, 50,195,105,105,105,212,221,189,242, 52, 30, 38, 38, 38, 98,106,172, 18,155,  0, 76, 95,161,195,  3,175,214,186,
-189,247,195,167,187,191, 87, 13,231,248, 61,197,  4,248,113,251,189,  1,141,121,  0,254, 80,255,142, 43, 75,191, 41,214,127,  3,
-139, 21,197,197,197, 88,185,114, 37,239, 82,147,  2,129, 16, 49,195, 89,  8, 24, 33,126, 44,146,224, 84,177,  4,147, 39,  2, 15,
- 63,  4, 36,196, 19,116,108, 47,134, 68, 28,  0,137, 56,  0,129,146,  0,116,238, 24,  0,137, 88,  2,137,216,125, 73,204, 55, 22,
-191, 78,150,125,240, 14,105,108, 32,233,213,179, 59, 66, 66,131, 33, 97, 77,168,213,155,255,240, 78,113,224,192,129,220,  3,  7,
- 14,212, 35,124,231, 15,  0, 84, 84, 84, 32, 33, 33,225,142, 89,249,133,133,133, 42,103,107,136,219,  7,  0, 35, 70,140,240,202,
-146,179, 90,  1,157,222, 12,157,206,132,234,106, 35,174, 93,211,226,242,229, 27,168,169, 49,162,182,214,140,218, 90, 19,116, 58,
- 51,170, 42, 61,175,200, 52, 26, 45,168,171,179,194,108, 54,161,101, 75, 49,186,118,110,133,160,224, 96,  0, 64, 68,175, 30,232,
-210,169, 21, 66, 90, 73, 64,169, 21,102, 11, 11,163, 81,247,167, 24, 72, 82, 83, 83, 85, 11, 22, 44,112, 75,230,220,210, 64,158,
-222,  9,153, 93,105,112,137, 21, 43, 86, 96,245,234,213, 94,151, 26,182,185,197, 21,212,249,195, 17,106, 89, 89, 25,178,179,179,
-189, 46, 69,155,155,155, 75,115,114,114,156,201, 31,114,185,156, 76,157, 58,213,237,223,205,157, 59, 23,132, 16,135, 85,191,102,
-205, 26, 41,  0,196,196,196,200,156,149, 88,231,227,148, 82,199,113, 30, 87, 91,207,138,119,165, 56,120, 82, 38,  0,160, 77,155,
- 54, 32, 78,214, 67, 83,229,249,113,247,145,191,171,109,159, 60,  0,119,147,229,127,115,128,183, 66, 32, 16,120,253,119,163,134,
-179,104,215, 54,  0,213,213, 66,  4,  8, 45,  8, 16, 11,160, 62, 44,198,100,153,  8, 98,145,  8,213,213, 34, 28, 44, 10, 70, 43,
-  9,  1,195, 48,136,151,155,240,232,100, 10,134,161,120,239,103,239,219,169, 84, 42,169, 32, 72,  2,141,168, 13,130,204,151,112,
-166,140, 98,172,116, 12,239,191,143,138,138,194,161, 67,135, 92, 30, 11, 10, 10,226, 61, 88,106,181,218,113,246,129,  7,201,201,
-201,142,253, 21, 21, 21,142,239,201,201,201, 40, 47, 47,191, 35,207, 51, 37, 37, 69, 93, 88, 88,136,252,252,124, 21,203,178, 50,
-134, 97,192, 89,254,141,205,155,186, 67,233,197,203,178,182,173,244,170,  0,177,  0, 38, 51,139, 58,227, 37, 92,188, 84,  1,141,
-182, 26, 26,141, 30, 21, 26,  3, 42, 52,  6,132,134,247,240, 40,235,218, 13,138,171,215,110,160, 95,191, 94,168,212,106, 33, 18,
- 50,168,174,185,  4, 93, 37,139,254,247,233,208,190,109, 91,  4,  5,  5, 33, 32, 32, 16, 87,174,214,128,  8,194,248, 18, 44,113,
- 34,199,102, 89,  5,208,220, 43,  8, 26,179,214,129,122,177,  0,124,161,  6,128,121,243,230,221,226, 85,112,154,102, 80,251,210,
-206,105,211,166,213,179, 96,179,179,179, 29,228,245,196, 19, 79, 96,252,248,241,196, 85,226, 25,158,150,191,  3, 13, 61, 13, 13,
- 49,100,200, 16, 66, 41,117, 88,249,133,133,133, 42, 66,136,163, 52,112,114,114,178, 58, 63, 63, 31,249,249,249,170,228,228,100,
-114,248,240, 97,199,241, 85,171, 86, 53, 42, 55, 63, 63, 95,197, 48, 68, 86, 80, 96,123, 39,230,206,157,139,159,127,254, 73,198,
- 81,120, 65, 65,129,138,187,126, 62,202,196,170, 85,171,240,153, 44, 12,211, 87,234,  1,216,166,  3,156, 49,125,165,222,113, 63,
- 83,100, 34, 63,179,222, 43, 74,251,162, 15,235, 43,221,203, 94,193,207, 63,255,204,127, 21,192,237, 32,126,231, 88,128,166, 88,
-255,245, 45,249,250,228, 31, 31, 31, 15,133, 66,225,113, 42,160, 77, 27,  1, 24, 34, 64,219, 54,  2,244,238, 69,113,249,178, 16,
-140,128, 64, 36, 20, 66, 36, 20,225,215,223,130, 17, 30, 44,130, 64, 32,192,168, 17, 86,  4,  6,  6,128,101, 41, 64,173, 62,145,
-127,139,246, 93,113,173,150, 66,119, 70, 13, 33, 17,224,229, 37,139,137,151,  3,155,236,226,197,139,170,139, 23, 47,222,114,189,
- 83,166, 76,225, 53, 88, 38, 38, 38,142,175,168,168,216,203,145, 60,  0, 36, 36, 36, 96,237,218,181,142,115,170,171,171, 81, 94,
- 94,142,237,219,183, 35, 49, 49,113,236,157,232,188, 49, 49, 49,178,252,252,124, 85, 97, 97,161,138, 11, 22,139,137,137,241,105,
- 14,119,214, 95, 82,212, 27,255,155,  5, 90, 86, 13,189,193, 12,109, 64, 29, 40,180,168,171,179,160,186,218,136,242, 27,122, 92,
-190, 82,139,209,178,238, 30,101, 25, 76,109, 80,114,238, 58, 34,122,118, 67,207,158, 93, 80, 81,113,  3, 97,161, 86,244,238, 29,
-130,118,109, 35, 32,  9, 12, 68,101,101, 45,142, 28, 61,137, 75,101,213,232,208,101,192, 61, 59,128, 80,128, 18,  2, 25,199,165,
-206,164,234,110,221, 62,181,  7, 11,222,106, 62,162,222,170,178,172,172, 44,217,202,149, 43, 85, 13, 21,128,229,203,151,115,  9,
-134,220,202,163,148, 82, 66,  8, 81, 40,194,156,218, 68,111, 33,230,236,108,219, 20,193,212,169, 83,121,185,255,235, 79, 41,228,
-186, 36,127,190,136,141,141,149, 21, 20, 20,168, 56,175,195,168, 81,163,100,174,142,115,193,120,158,  8,155,155, 91, 63,120,240,
-144,138, 16,  2, 66,  8,134, 12, 25, 44, 27, 50,100,136,218, 73, 65,176,159, 11,120,122, 95, 56,121,204, 52, 45, 56,121,137, 99,
-123,212,123, 80,211, 86,156,112,200,227,  3,127, 12,192,189,  3,143, 10,192,221,104,241,115,152, 49, 99, 70,147,254,158, 97, 24,
-  8,  4,182, 79,191, 72,  6, 81,131,172,  8, 16, 75,108, 10,128, 72,132,145, 35,128,128,  0, 64, 36,  8, 64,155, 54, 18,  8,  4,
- 58, 88,173, 44, 88,214,123,183,189, 94,115, 21,146, 46,125,113, 78,249, 31,180, 21, 50,120,106,241,107, 94, 15, 40,129,129,129,
-234,215, 94,123, 77,214,148,101,128,114,185, 92,169, 80, 40,240,220,115,207, 57,246,113,150,126,117,117, 53,244,122, 61, 82, 82,
- 82,  0,  0,159,127,254, 57, 50, 51, 51, 85,119,226,217, 38, 39, 39,171, 89,150,149,113,150,255,240,225,195,155, 20,192,213,165,
-123, 31, 20, 21,236, 70,187, 54, 65,  8, 10,178,117,123,163,209,138,234, 26, 19, 52, 90,  3,186,246, 28,128,  7, 71,198,121,124,
- 38,147, 38, 61, 65,246,124,255,127,180,160,240, 56, 70,143, 26,140,238,221,187,195,108,170, 67,212,144,251, 17, 28, 18,130, 11,
- 37,165, 40,187, 92,137,131,249,191, 67, 91, 19,130, 41,177,113,247,172,207,116,110,154,  2,  0, 84,  0,193, 92,133,194, 65,224,
-108,  3,210,103, 24, 98,211, 22,236,188, 76,  0, 12,118, 49,223,152,166, 80, 80, 80, 56, 69,170, 16,164,166,166,214,243,  2,204,
-155, 55, 15,132, 16,164,165, 41, 84, 28,251,131,  0,131,  7, 15,113, 69, 94, 14,119,188, 39,146,227, 75,254, 13, 49,117,234, 84,
-140, 27, 55, 78,214,148,126, 12,251, 92,253,136, 17, 35,100,179,102,205, 82, 55,118,220,105,110,191, 81,112,177,  3,156,242,101,
-155, 70, 32,234,134, 74,  5,223,246, 53,148,183,249,197, 22,182,155, 46,105,239, 56,103,243,139,165, 14,133, 96,247, 47,238,199,
- 62, 87,121,  0,252, 49,  0,247,168,  2, 48,114,212,240,219, 50,231,211, 92,150,191,115, 71,242,  5, 26, 45, 65,199,246,140, 35,
-229,239,158, 92,219,252,126, 64,128,  4,  1,226,  0, 36, 60, 68, 32,  9, 16, 35, 80, 66,160,169, 16,160,240, 72, 75, 88, 89, 43,
-186,118,241,110, 94, 87,169, 84,210, 74,189,  1,218,162,157,232,221, 85,132, 99,101,190,207, 11, 51, 12,163, 30, 62,124, 56,249,
-127,246,190, 60,190,137,106,125,255,153,201,222,149,182,148,150,189, 80,168, 32, 91,129,138,136, 44,  9, 20, 80,150,138, 64,145,
- 77,191,200,245,182,224,118,  5,174,162,232,253,233,189, 10,138, 11,160,114,133,194, 85, 81,161, 98, 91, 89, 10, 22, 10,133,132,
- 69,212,178, 84, 86,161, 64, 89,186,  0,221, 66,210, 52,123,230,252,254, 72, 39,166, 33,109, 38,105,128,130,243,124, 62,249, 36,
- 57, 51,121, 51,115,230,156,243,188,239,123,222,243,158,  1,  3,  6,248, 44, 35, 57, 57, 89,177,114,229, 74, 37,235,230,175,170,
-170,122,234,225,135, 31,214,237,222,189,251,167, 39,158,120, 98, 84, 85, 85, 21,245,244,211, 79,231, 38, 39, 39, 43,238,102,227,
-172,115,245, 43,156, 62,251,222,230,236,228, 78, 10,207,158, 65, 89,209, 21,208, 52,  5,155,141, 64, 42, 11, 71, 92,247,158,120,
-114, 66, 50,231,134, 94, 86,193, 40,170,171,202,148, 70,163, 21,189,122,118, 70,219, 54, 45,113,181,248,  6,212, 39, 47,226, 92,
-225, 85,236,217,123,  2, 87, 74,  9,158,251,251, 75, 62,117,158,230,146,252,135,249, 33,204,231,243,250, 46,225, 40,239,226,215,
- 88,177, 98,133, 67,  1, 88,177, 98,  5, 80,180,238,150,115,221,201,107,192, 43,112,203,152,213,212,100, 61, 20, 69, 53,169,237,
-177, 36,223, 16,185,123, 58,238,206,171,224,242, 91,119,242,184, 63,231, 43, 63, 34,107,197, 51,246,177, 97,120,135,122,228, 15,
-  0,201, 99, 30,178,127, 80,255,238, 81,  1,224,243,  0, 52, 31,172, 89,250,250, 45,211,  0, 94, 41,  0,205, 57,224,195,215,228,
- 63,206, 56,114, 76,  2,169, 88,140,241, 99, 40,208, 20,133,  1,  9, 86,156, 60, 37,  3, 77,217,231,252,111,222,164,209, 38, 90,
-  0,154, 18,227,248, 73, 49,164, 18,192,108, 49,227,202, 85,153, 87,228,127,177,176,  0, 15,143, 24,  7, 97,203,135,113,177, 48,
- 31,194,235, 89,120,237,213, 55,200,135, 31,189,127, 87, 42,184, 46, 95,189, 34, 33, 33, 65,185,112,225, 66,244,236,217,179, 92,
-173, 86, 35, 33, 33, 65,161, 86,171,241,242,203, 47, 43,147,147,147,155, 69, 94,251,166, 18,191,171, 18, 48,120,208, 48,172,251,
-238, 75,121,235,232,214,202,192,192, 64, 78, 86,255, 45,  3,236, 51,127, 83,  1,160, 54,172, 79, 35,103,206,253,134,214, 81, 65,
-144, 74, 69,208,233,204, 40,189,166,  5, 37,108,143,231,254,254, 12, 31, 45,197,  5,199, 22,  0,177,207,162,222,242,194,163,243,
-155, 66,214, 77,190,164, 57,115,194,157, 20,  9,255, 16,154, 39, 82,246,134,180,155,154,207,192, 93,157, 37, 63, 34,177,223,171,
-225,154,253,197,227,158, 69,124,124,188, 35,224,111,205,210,215,111, 57,230, 81,  1,240,119, 62,254, 59,157,223,223,171,198, 15,
- 10,106, 53,133,128,104, 10, 17,225, 20, 18,250, 89, 32, 21, 11, 32, 17, 91, 16, 17, 46,173, 27,  4, 40, 12, 76,176, 33,255,152,
-200,238, 45,224, 56,200,228,229,229,145, 30, 15,132, 96,193, 63,254,  3,131,184, 29, 54,229,149, 34, 54,206,110,185,  7, 29,222,
-142,  5,255,124,131,124,242,241,221, 83,  2, 18, 19, 19,169,188,188, 60,249,210,165, 75,149,206,222,  1,127, 40, 87,205, 25,117,
-201,126,154,124,143, 51,102,166, 82,  7, 15,237, 35, 21, 85, 21, 48, 92,215, 67, 42,141, 64,187, 78,189,125, 82, 42,238, 53,216,
-211, 97,251,233, 54,139,214,193,177, 34,160,232,155,187,126,111,158,130,251,238, 55,140, 26,247,148, 87,150,187, 39,223, 35, 31,
-  3,208,188,148,128,134,200,223,163,  7,224,175,  0,  2,123, 84, 63, 69, 19, 16, 16,132,183, 32,216,119, 80,  8,169, 88,  4,137,
- 88,136,164, 49,  4,132, 48,  8,139,176,194,106,163,192, 48,182,186,193,207, 51,122,199,232, 48,118, 82, 50,116,194,174,104, 21,
- 20,136,233, 79,134, 35,125,243, 73,135, 18, 96,177,109,186,235,247,207, 42,  2,124,151,241,221,171,112,191,222,219, 26,245,  7,
- 84, 74,216,235,183, 50, 67,102,184,175,242,144, 18,246,250,173,  7,142,206,111,146,213,207,163,105,152,252,194, 74,191,181,225,
-251,221,120,184,215,148,  0,143,  6,112,124,124, 60, 63,105,195,131,  7, 15, 30, 60,120,252,197,192, 39,122,230,193,131,  7, 15,
- 30, 60,120,  5,128,  7, 15, 30, 60,120,240,224,193, 43,  0, 60,120,240,224,193,131,  7, 15, 94,  1,224,193,131,  7, 15, 30, 60,
-120,220, 31,168,183, 10, 96,238,220,185, 62, 71,112,186,203,173,237,111,121, 51,102,207,241,248,187,218,234,235,142,207,129,225,
-209,142,207, 27,190, 90,125,203,185,145,138,231, 60,202,219,189,252,207,140,121, 35,231,173,116,124,174, 80,254, 15,190, 92, 95,
- 67,240,245,250, 26,130,187,235,155,240,116,170,199,223, 29, 81,254,132,152,152, 24, 92,190,124, 25,  9,138,177,142,242, 45,223,
-165,221,246,250,123,238,218,181, 70,219,139, 73, 40,148, 47, 40, 45,117, 44, 89, 92, 25, 21,229, 56,255,127,173, 91,223,246,246,
-231, 42, 47, 59, 59, 91,158,147,147, 83, 47, 83,226,152, 49, 99, 20, 73, 73, 73,170,187,209, 63, 10, 10, 10,124,150,215,183,111,
-223,219,125,125,212,220,185,115,209,156,199,151,187, 33, 47, 61, 61,125, 90,175, 94,189,210, 79,158, 60, 57,105,250,244,233,155,
-154, 42,207,121,163, 35,231,136,252,123,177,254,252,221,158,255,106,242,188, 86,  0, 92, 97,181, 90,229, 70,163, 17,148, 64,  4,
-138,162, 96,179, 90, 32, 22,  9, 33,145, 72, 84, 77,213, 60,172, 86,171, 28,  0,132, 66, 97,147,100,213, 86, 95, 71, 96,120,180,
-131,248,163,219,199,  0,  0,174, 23, 95,246, 73,222,238,229, 47, 98,228,188,149, 14,226,250,111,118, 62,  0,224,133,164,  1,184,
- 31,113, 68,249, 19, 18, 20, 99,113, 68,249, 19,  0, 96,236,228, 25,  0,128,203,151,239,126,253,125,118,227,134,188, 16, 80,198,
-  1,138, 66,192,190,135,250,194,215,  0,  0,  3,150,126,120, 87,235, 77,165, 82,145,156,156, 28, 24,141,198,122,229, 82,169, 84,
- 25, 18, 18,  2,185, 92,222, 44,151, 67, 81, 20, 53,248,129, 78,109,191, 33, 54,155,190,240,234,245, 55,  8, 33,219,121, 59,168,
- 17,165,211,100, 26, 94, 80, 80, 16, 82, 86, 86, 22, 29, 30, 30,222,162,127,255,254,165,193,193,193,223,249, 42, 47, 61, 61,125,
-196,244,233,211,247,165,167,167, 63,  7, 32,116,234,179,115,102,  3, 96, 78,158, 60,249, 12,128, 45,  0, 24,111,228,177,123,158,
-176,196,223,148,254,230,186, 75,162,191,150,244, 53,164,148,240,104,102, 30,  0,103,104,107,116,242,214,113, 15, 41,135,245,234,
-134,  0,137,  8,132, 16,216,108,  4,167,206, 95,193,165, 19,  7, 20, 50,137,  8,  2,129,192, 39,242, 14,146, 94,150,247,232, 90,
-164, 60, 85,216, 89, 81,107,138,241,153,248,  1, 64, 22, 26,129,218,234,235, 14,226,111,204, 35,192,197, 82, 29, 48,227,117,236,
- 94,254,162,163, 35, 53,116, 94, 99,107, 44, 93,255, 83, 44, 22,  3,176,167,201,100, 24,123,255,182,217,108,142,235,167,  5, 34,
-206, 86, 52,  0,180,110,101, 79,213,105,214,222,132,201,106,  5,  0,232,172,118,121,157, 70,253, 13, 93,122,244,229, 68,252,  0,
-208,103,208,  8, 28, 81,254,228, 32,254,134,206,187,147,245,  7,  0, 47,222,184, 65,  0, 96,116, 96, 32,114,107,107,149, 44,241,
-  3,192,185, 93,187,111, 57, 47,190,117,107, 78,215,169,  9,172,148, 31,173, 60,140,210,171,199,209,181,227, 64, 12,148,202,189,
-110,195,217,217,217, 79,236,216,177,131, 37,127, 43,  0, 35,128,  0,  0,140,209,104, 20,202,100, 50,104,181, 90,185, 59, 79,192,
- 93, 38,255,168,135,226,123,237,200,253,126,117, 80,109,233, 31, 24,156, 60, 55,157,162,168,103,  8, 33, 91,154,219,192,148,151,
-151, 71,154,146,159,130,203,102, 96,141,193, 98,177,200,243,243,243,149,167, 79,159,118,148, 85, 86, 86,162,176,176, 16,173, 91,
-183,254, 86, 46,151, 43,130,131,131,185, 62, 95, 58, 61, 61,253,223,  0, 30, 25, 60,122,130, 44, 61, 61, 61,106,234,179,115,130,
-  1,216,  0,176, 13,247,129,186,243,134,114,189, 63,182,191,165,166,166,146,134,250, 27,123,158,167,254,150,154,154, 74,246,255,
-146, 15,129, 64,  8,155,205, 10, 77,141, 14,211, 39, 61, 65, 62,254,248,227, 38, 17,182,171, 82,209,212,231,194,195, 51,220,109,
-251,203,130, 83, 38,192, 90,131, 89, 62, 34,105,186,178,125,171, 80,  4, 72,133, 96, 24,  6, 54,  6, 16, 10, 40,132,135,118, 67,
-143,174, 29,148,121,185, 63, 41,108,150, 90,185,183, 74,128,217,108,150,119,239,113, 73,217,167,219, 37,  8,104,155, 82,117,164,
-173, 66, 44, 18,121, 37,163,182,250, 58,100,161, 17,  8, 13,  9,  6,  0,199,187,187,243,162,219,199,120,244,  6,236, 94,254, 34,
-  6,204,120, 29,255,247,212, 68,  0,112,188,187, 59,239,191,217,249, 94,105,215,  2,129,  0,237,218,181,131, 64, 32,128,217,108,
- 70,109,109, 45,108, 54, 27,212,106,181, 79, 15, 55, 72, 40,192, 87, 43, 54, 67, 18, 10,220,184, 12, 28,214,149,162,226,250,  5,
-124,183,252, 13,175,172,254, 62,131, 70,160, 93, 27,251, 20, 73, 59, 55,228, 31, 19, 19,227,152, 14,  0,128,146,146, 18,191,212,
- 31,151,228,170, 47,222,184, 65, 70,  7,  6,226,221, 23, 95,  0,  0,188,235, 68,252,235, 11, 11,235,147,191, 23,217, 90,247, 93,
- 94, 47,239,248,172, 80,249,122,135,153, 48, 49,137,144, 48,  4,127, 84,238,193,215, 31,101, 40, 38,247, 78,227,218,  6,133, 57,
- 57, 57, 91, 12,  6,  3,214,173, 91,103,156, 53,107,150, 20, 64, 16,  0,102,221,186,117,230, 89,179,102,  9, 13,  6,  3,164, 82,
-169, 50, 41, 41,169, 73,  3,221,166, 77,155,228,187,118,237, 82, 54, 53,151,189,163,237,136,233,255,247,249,187,175,201, 90,156,
-249, 30,178,115,123,241,206,240,176,224,151,183, 85,252,167,206,242,108, 86,228,159,145,145,  1,181,122, 36,201,204, 76,246,250,
-222,191,250,234, 43,121, 83,200,166,182,182, 86,158,157,157,173,172,169,169,113,123,252,218,181,107,200,202,202, 82,118,239,222,
- 93, 49,112,224, 64, 79,237,134, 74, 79, 79,255,110,240,232,  9, 83, 10, 11, 14,  9,219,181,137,182, 78,125,118, 78,189,113,119,
-239, 79,155,208,171, 87,175,110,233,233,233,143,247,234,213, 43, 27,  0, 14, 30, 60,216, 40,169,114,233,111,169,169,169,  4, 20,
-  5,120,200,242,183,122,245,106,114,189,188, 18,  5,167,206, 56,202,140, 70, 19, 62,252,124,141, 46,117,214, 52,158,176,239, 99,
-220, 18,  4, 88, 83, 83, 35, 31, 60,234, 73,101,183, 14, 17,144,136,104, 48, 12,131,235,215,175,227,228,241,  2,152,173, 12, 24,
-134, 32, 34, 52,  0,163, 30, 31,167, 52,152,172, 94,255,161, 68, 84,142,216, 14,215,  1,  1,133,  7,187, 22, 67, 34,188,225,181,
-229,239, 76,254,183, 88,120,218, 26, 92, 47,190, 12, 89,104, 68,131, 94,129,198,200,203, 21,223,252,176,  9, 47, 36, 13,192,128,
- 25,175, 55,104,213,186,131, 88, 44,134, 64, 32, 64, 72, 72,  8,138,138,138,160, 86,171,237,138,148,143,228,223,186, 85, 20,130,
-132,  2, 60,249,210,123,120,124,250, 32,108, 63, 85,138,235,  6, 52,153,252, 93, 81, 82,118, 29,167,143,252,140,200,176, 16, 59,
-249, 11,  5,126,169,191,199, 38,253, 31,  0, 32, 76, 40,242,138,252,  1,224, 95, 43,255,139,127,173,252,175,131,252,115,107,107,
-241,234,168,113,246,131,145, 98, 78,247,253,205,149, 15,228,127, 95,240,136,242,217,142,207, 67, 68,  7, 33, 16,  1,160, 33, 64,
-219,168, 71,241,226,187,243,149, 69,109,150,115, 82, 35, 84, 42,149,  5,  0,190,249,230, 27, 61,  0, 41,187,141,242,186,117,235,
- 24,  0,  1,206,219, 42,171, 84, 42,159,230,229,244,122,189,220,155,114, 14,150,255,224,135,250,197,235, 51, 55,109, 78,237,219,
- 51, 78, 80,123,102, 15, 46,151,215,224,218, 77, 61, 24, 66,124, 10,  4, 78, 73, 73, 33,201,201,153,100,195,134, 13,126, 77, 36,
-230, 68,254,  8, 15,207,243, 73, 70,126,126,190, 50, 45, 45,141,162, 40,202,161, 12,120,121, 13,183,144,255,145, 35, 71, 48,125,
-250,116,103, 15,  1,206,158, 61,171,212,235,245,141,110,152,149,158,158,254,226,224,209, 19,198, 45, 94, 52, 79,152,153,153,137,
-255,125,254,177,176,206, 99,228, 32,255,204,204, 76,172, 92,185, 18,189,122,245,202,246,212,223, 92,201,191,161,254,246,248,163,
-117, 94,192,224, 64,143,242, 62,249,124,149,131,252,203, 43,171, 80, 94, 89,  5, 77,141, 14, 34,145, 48,104,213,186,239,141,174,
- 86, 60,143,123,  3,241,241,241,183,188, 26, 85,  0,108, 54, 27,137,136,233,141,152,232, 22, 48, 90,108,160, 40, 32, 55,119, 39,
-190,253,102, 29, 78, 28, 63,142, 87,231,191,  2,129,128,  6, 99, 99, 16, 18, 32, 65, 76,239,193, 74,131,193,192,185,131, 89, 44,
- 22,121,143,174, 87,148, 33, 65,122,124,245, 77, 57,104,138, 96, 64,175,115, 74,139,197,226, 85, 39,117, 71,254, 44,241, 27, 52,
- 85,245, 20,  4,141,182,198,163, 60,119,157,137,237, 72,249, 27, 62,168, 71,112,223,252,192, 45,125,111,108,108, 44, 34, 34, 34,
-160,213,106, 33, 22,139, 65,211, 52, 12,  6,  3,212,106, 53,  4,  2,  1, 59, 48,115,190,231, 31,183,108,198, 43, 43,118, 97,243,
-231,111,161,117,171, 40,  4,  4,134,163,216, 86,138,239,150,191,129,160,186, 65, 67,192, 81,158, 59,242,103,137, 95, 83,118, 17,
-221,218,181, 66,141,222,  8, 73,128,  4,176,217, 60,198,  3,120,170,191, 55,214,110,199,233, 99,191,160,103,231,  7,161,177,121,
- 86, 26, 89,242, 63,183,107, 55,254,181,242,191,142,242,220,218, 90,228,214,214,162, 40,245,223,216,117,230,  4,122, 12,232, 12,
- 84,121,222,154, 57,253,252, 82,249,220,151, 71, 40, 35,  3,187,195, 64,106,  0, 83, 57,196,166,106,152,108, 53, 48, 50,  6, 48,
-226, 32,180, 29,146,128,172,223,151,120, 26,232,168,141, 27, 55,194,104, 52, 34, 53, 53, 53, 32, 53, 53, 21,176, 79,  1, 32, 53,
- 53, 21,117,223,235, 44, 40, 35, 54,110,220,232,117,167, 61,123,246,172,124,254,252,249,202, 79, 63,253,148, 80, 20,165,  4,128,
-  3,  7, 14,144, 37, 75,150,144,183,222,122,203,167,173,153,131, 37,244,186,255,190,254,172,108,116, 91,147,224,208,217,235,216,
-126,153,198,235, 59,110,152,254,173,210,105,106, 45,248, 63, 95,100,170,213, 35,111,167,229,143,240,240, 60,204,152, 49,195,235,
-221, 40,157,  9,127,245,234,213, 20,187,157, 52, 87, 28, 58,116, 72,126,227,  6, 55,163,196,108, 54,227,228,201,147,123, 27,107,
- 47,  0,228,237,218, 68,139,147,147,147,  1,  0, 71,143, 30,197,222,159, 54, 73, 75,202,174, 51, 44,249,  3, 64,114,114,178,163,
-191,157, 60,121,114,121, 83,250,219,135,179,198,225,212,197, 98, 68,119,110, 13,212,234, 57,223,123,121,101, 21, 44, 22,107,221,
- 88,109,133,197, 98, 69,241,149,203,210,166, 60, 83, 87,239,  1,239, 77,104, 94,168,231,138, 50,153, 76,232,219,173,155, 50, 64,
- 38,  2,195, 16,216, 24,224,231,  3,  7,241,239,119,223,  3, 67,128,243, 23, 46,224,196,241,223,209,179,103, 31,  8,  4, 20, 30,
-232,220, 14, 69,199,172,144,113,220, 28, 79, 44, 44, 71, 92, 76, 25, 32,164, 80,124,205,  2,  8, 41,244,238,118,  5,249, 39,203,
- 65,208,214,167, 27,112,118,239,187,243, 12, 24, 52, 85,245, 86,  3,120,130,179,123,223,157,166,157,191,225,  3,140,156,183,210,
-109, 20,187, 51,172, 86, 43,  2,  2,  2, 64,211, 52,194,194,194,160,215,235, 81, 91,107,223,  6, 56, 50, 50, 18, 85, 85, 85, 94,
-109,192, 97, 84,  3,  3,100, 50,188,250,249,  1,140,236,  3, 92, 41,  0, 14,215, 29,123,245,243,  3,248,108,158,  2, 54,198,230,
-117,253,157, 62,242,179,227,243,136,254,221, 32, 12,166,145,171, 58,131,190,221,218, 35, 36, 72,130,111,178,242,144,160, 24,139,
- 18, 55,171,  0, 60,213, 95,246, 25,  2, 92,  3,146, 70, 80, 88,187,189,  8, 17, 97,157, 48,241, 81,138, 83,253,177,238,254,220,
-218, 63,183, 78, 38,239, 44,  7,218,106, 64,253,253,109,144,127,191, 11,208,  6, 80,249, 75,176, 50, 42,138,250, 95, 35, 19,  1,
-177,147,130,148, 29, 91,244,135,214,166,131, 73,125,  1,223, 93, 77,199,193, 36, 53, 30,124, 78,129, 81, 47,  5, 65, 22,246,  0,
-164,194, 48,  8,147, 52, 56,188,233, 48,121, 40,225,161,134,  6, 41,199,127,208, 52, 13, 66,136,185, 78,137, 54,210, 52,173, 39,
-132,132,195, 30,196,229,243,242,218,110,221,186,169, 70,141, 26,165,168,170,170, 82,230,230,230,218, 21,159,220, 92,116,239,222,
- 29,221,186,117,243,105,123,230, 26, 19,243,242,236,127,125,182,237,163,177,209, 52, 49,106,240,247, 13,133, 22,171,197,178,210,
-100,195, 18, 66, 72,181, 47, 50, 39, 76, 48,223,118,242, 31, 58,116,168,202, 91, 57,249,249,249,245,166, 76, 88, 47,  0,215, 93,
- 37,109, 54,155, 87, 10,195,165, 75,151,240,240,195, 15, 55,212, 94,164,  0, 30,  4, 32, 28, 62,118,226,205,162,162,162, 22, 71,
-143, 30, 69,102,102, 38,250, 23, 21,209, 71,143, 30,  5,  0,244,239,223, 31,143, 13, 75, 64, 72,144,  4, 43,191,222, 92, 62,125,
-250,244, 69,171, 86,173,154,231,109,127,187,182,229,  3,  4,247,144, 34,168,235, 43,200,248,224, 57,244,233, 25,141,  7,198,189,
-135,180,180, 52,202, 93,148,189,179,241, 36,149, 74,  0,  0, 34,145, 16,122,189,209,175,207,150, 39,253,187,  3,175, 55,  3, 98,
- 24,  6,  1, 18, 49,204, 86,  2,154,  2,104, 10,120,251, 63,239,193,198,  0,181,181, 58, 92,191,126, 13, 81, 81,209, 32,132,129,
-213, 10, 72, 69, 66,  8, 68,220, 92,176, 86,171, 85,254, 96,108,137,178,101,152, 22,160, 40,187,110, 76,  1, 20, 69,208,175,199,
-121,229,111, 39,162, 20,222,174,  8, 96,173,251,134,166,  4,184, 88,255,174, 90,116, 67,196,239,141,245, 15,216,  3,134, 90,181,
-106,  5,137, 68,226,112, 25,178,129,127,161,161,161, 16,137, 68, 40, 46, 46,134,136,163,188,175,243,246,225,185,113,195,192,154,
- 55,133, 86,187,251, 31,  0,228,113, 64,200,123, 74,204,251,231, 32,132,121,113,191, 37,101,246, 96,197, 14,173,194,161, 54,153,
- 32, 12, 17,192, 88,161,  7,104, 26,173, 59,182,195,174,189,135,125,170,191,255, 91,176, 24,151,126,222,  3,225,117,224,102, 20,
- 16, 64,211, 24, 24,211,  9,195,135, 69,113,146,227, 58,215,191,254,169,231,240,163,233, 28,208,197,  8,252, 38,  4,130,132,192,
-248,254,104, 55,158,155,241, 26,219, 54, 28,102,115, 53, 68, 86, 11,190,187,154,142, 95,102,133, 98,232,147, 79,160, 91,171,238,
-138, 83,187, 84,202,190,201,181, 16,153,107, 97,237,198,160,226,  6,183,160,209, 58,229,205, 56,107,214,172, 32,  0,106, 66,136,
-  8,  0,102,205,154,213,228,220, 26, 19, 39, 78, 84, 29, 60,120, 80,241,199, 31,127, 40,  3,  2,  2, 16, 16, 16,128, 25, 51,102,
-248, 52,136, 82, 20, 21, 61,110,220,184,181,255,252,231, 63,233, 87,231,189,204,244,100, 46,208, 38,179,165,214,108, 35,255,244,
- 70, 78, 74, 74, 10, 81,171, 71, 98,194,  4, 51,102,204,152, 65,249,122, 61,183,147,252,221,185,251, 87,175, 94, 77,165,166,166,
-146,217,179,103,115,186, 94,157, 78, 87,207,237,239,140,249,243,231, 99,254,124,251,166, 69,  9,  9,  9,206,231, 75, 26, 16,215,
-  6, 64, 76,157, 82, 24,240,216,164,153,198,206,157, 59, 75, 51, 51, 51,193,146,127,114,114, 50,162, 90,183,118,238,111,219,225,
- 52, 69,192,165,191,165,140, 31,138, 95,203,202, 17,220, 39, 24,165,185, 23,  1,169,  4,147, 94,122,  6,225,237,198,113, 28,155,
-109, 40,189,118,195, 42, 18,  9,133,172,  7,  0,  0,138,175, 92,110,210,115,109,104,234,128, 87,  8,238,158, 66,224,170,  4,208,
-238, 76, 28, 66,  8, 24,  2,216, 24,187, 18, 64, 81,192,166, 31,179,240, 29,174,105,133,  0,  0, 32,  0, 73, 68, 65, 84,228,196,
-201,104, 25,217,202, 49,  0, 18, 47,246,202, 22,208,229,232,209,165,216,241,189,119,207,  0,135,147,172,223,131, 69, 16,208,229,
- 94,223,144,171,187,223,221,113,111,172,127, 87,119,191,187,227,206,107,217, 27,131, 86,171, 69, 77, 77, 13, 76, 38, 19, 24,134,
- 65, 69, 69,133,195,253,175,215,235,161,211,233,188,154,  2,216,252,249, 91, 80,157,  2, 52,151,  1,139,  1,248,108,161,194,225,
-254, 63, 86,  0,252,126,237,103,  8,188,172, 63, 77,217, 69,132,135,  6, 34, 34, 60, 16, 15,196,117, 71,209,165, 10, 20,150, 86,
-161, 67, 68, 40, 76, 55,202,113,225,252,133,122,185,  0,184,212,223, 32,249, 19, 24,172,152,134,205,219, 50,160,220,159,129,244,
-101, 11, 48,105,193, 18,156,176,  0, 21, 85,229,156,234,207,121,174,255,217, 65, 15, 99,198,131, 29,145,177,121, 47, 78,156,184,
-140,101, 39,143, 98,227,200,103,128, 47, 15,161,180,180,162, 94, 46,128,134,208,206, 40,129,205, 92,  9,179, 89,  3,  0,136,106,
-219, 30,221,186,119, 87,104,101,246, 88, 12,  3,163,  7,109,170,133,172, 86,128, 27,215,174,123, 34, 84,187, 71,198,104,132,209,
-104,148,  2, 48,  3,  8, 54, 26,141, 33,174, 75,  2,125,133, 94,175,151,239,223,191, 95,217,189,123,119,204,156, 57, 83, 81, 89,
- 89,137,220,220, 92,206,157,141,162,168,193, 18,137, 68, 23, 28, 28,108, 29, 57,114,228,181,133, 11, 23,182, 89,180,104, 81,209,
-225,130, 19, 99, 54,158, 54,157,181, 48,240,122, 63,214,219,225,242,247, 39,249,187, 90,255,108,140,130,179, 23,128,139, 12,145,
-232, 79,149,124,217,178,101,142,151,187,239,128, 99,133, 79, 67,207, 70, 92,247,162,  1,  8, 53,101, 23,221,186,211,217,254, 86,
-112,172,224,210,244,233,211, 83,188,233,111, 67, 30,122,  0,137,143,198, 97,241,127, 62,198, 39, 43,114,240,255,214,239,197,156,
-225,  9,184,190, 53,  7, 26,181,214, 35,217,166,165,165, 81,201, 73,143,193, 98,177, 22, 88, 44, 86,171,179,  2,  0,  0, 75,222,
-126,195,103,194,230,137,254,238,194,221,220,191,171, 87,160,158,  2, 64,211, 52, 52, 58, 61,  4, 52,  5,171,213,  6,134, 16, 88,
- 25,123, 16,233,241,223, 11, 48,124,196,104,187,155,140, 16,  8,104,  1,106,244,102, 88,205, 38,207, 26,166,205, 38,239,212,246,
-154, 50, 50, 92,227,208, 50,  6, 13,  8,178,119, 27,138,  2, 69, 17,244,237,126, 65,105,181,217,228, 92,111,142,181,238, 27, 11,
-  6,244,201,122,109, 36,184,198, 27,132,133,133,161,162,162,  2, 18,137,  4, 53, 53, 53,136,140,140,116,  4,  5, 26,141, 70,220,
-188,121,211, 43,  5, 32,101,241, 70,124,182, 80,129,208, 24, 64,117, 10,120,121,169, 18, 65, 66,  1, 38,254,227,125,148, 48,215,
-177, 97,217,107, 16,208,220,229,177,214,127,255,254,113,136,236, 28,131, 86,145, 45, 33,166, 41, 88, 41,130,138, 90,  3,212, 53,
- 70,159,234,239,147, 15,182, 96, 66,247, 78,  8,  9,137, 64, 64,100, 27, 88,170,213, 40,216,254, 61,110, 86, 95,245,169, 17,127,
-245,193,139,192,188, 68,  8,173,102,196,212,  2,229,  2, 45, 62,187,118, 24, 16,135,112,150,113,108,219,175,138, 74,218,128,171,
- 98, 61, 18,186, 40,240,224, 51, 65, 40, 10, 83, 41, 35, 35, 11,148,237,  7, 22, 65, 67,215,192, 68, 12,208,175,103, 32, 13, 10,
-230, 98,249, 59, 15,240,236, 42,  0,177,191, 58,238,206,157, 59,  1,  0, 51,102,204, 80,116,235,214, 77,245,228,147, 79, 58, 44,
- 70, 46,228, 31, 25, 25,185, 99,237,218,181,129,105,105,105,130,121,243,230,225,149, 87, 94, 33,135, 14, 29, 26, 72,  8,201,213,
- 91, 72,119, 66,200,111,222, 91,115, 97, 13,186,253,125, 13,  8,244, 39,249,187, 18,188,179,194,178,122,245,106, 42, 63, 63,159,
-147,107,191,164,164,228, 16,251, 57, 61, 61,221,241,114, 45, 99, 17, 30, 30, 14,  0, 13, 13,130, 37,  0,110,  2,160, 75,202,174,
-227,151, 95,126,113,204,249,247,239,223, 31,  0,144,153,153,137, 31,178,115,160,174, 49,234,  1, 44,129,125,105, 32,231,254,182,
-117,243, 59, 24,189,240, 37,140, 25, 51,  2, 45, 37,  2,212, 80,  4,185,133,197,248,229, 84,169, 87, 68, 61,119,214,180,135,138,
- 46, 92, 16, 22, 95,185, 12,246,181,228,237, 55, 26,181,228,121, 52,111,226,119, 45,115,135,122, 83,  0, 18,137,  4,231,207,156,
- 80,196,180,  9, 87,202, 68, 66,216,108, 12, 40,138,  2, 69,  1, 41,169, 47,128, 16,  6,182,186,124,  0,122,163, 17,127, 20, 22,
- 65, 44,246,236,196,182, 90,170,209,247,193, 75,206,163, 40,158,159,119,  9, 63,174,239,234,208,157, 19,122, 94,196,175,199,187,
- 67, 40,136,244,202,250,119, 71,252,  6, 77, 21,  0,248,100,253,187,235,104,249, 27, 62,  0,  0,206,214, 63, 96, 95,231, 31, 29,
- 29, 13,147,201,132, 27, 55,110,192,102,179,161,101,203,150,168,170,170, 66,203,150, 45,235,234,149, 59, 97, 87, 92,191,128,183,
-222, 83, 66,115, 25,248,104,193, 16,232,172, 54,204, 95,154,137, 79, 23, 38, 99,193,178,237, 16, 82, 20,188,224,127,104,202, 46,
-162,117,203, 22, 16, 65,  4, 27, 40, 92,187,116, 26, 87,202, 53,136,141, 12,199,214, 99,135,240,199, 25,120,109,253, 79,154, 61,
- 31,162,112,128, 22,  0,235,114, 46,225,199, 47, 94,197,236, 15,210, 48,127,124, 31,188, 48,162,163, 87,245,151, 91, 91,139, 79,
-146,166,  0, 55,165,  0, 37,  2, 62,249, 24,147, 15, 31,192,174, 17,115, 65,189,255, 18,168, 95, 95,227,100,253,  3,192,239,215,
- 34,240,176, 65,  3,157, 76,  0,189, 84,138,216, 73, 34,152,136,  1, 26, 90,  4, 43,226, 64,108,122, 88, 42,175,225,231,207, 53,
-152, 49, 61,246,174,116,218,163, 71,143,146, 58, 98,160, 38, 78,156,168,178,251,198,236, 24, 50,100,  8, 53,100,200, 16, 46,228,
-255,104,155, 54,109,118,190,255,254,251,129,231,207,159,135, 72, 36, 66, 72, 72,  8, 78,156, 56, 97, 33,132, 84, 52,229,250, 26,
- 91,147,239,139,119,192,159,228,239,106,253,219,137,245,214,229,131, 92, 98,  1,146,147,147,207,255,240,195, 15,131,172, 86,110,
- 43,156,164, 82,233,236, 70, 14,215,  0,184,  4,160,127, 97,193, 33, 56,207,249, 63, 63,123, 10,118,118,238, 12,118, 58, 96, 71,
-231,206,  1,211,167, 79,255,218,155,254,246, 84,226,195,  8,101,194,160,135,  8, 63, 46,127,  9, 95,108,255, 29,175, 62, 54, 24,
-179,150,165, 99,242,146,239,188,178,192,157,147,  9,185, 43,227,215,239,223,159,168,231,  1, 16,  8,  4,212,205,107, 23,112,177,
-184, 10, 66,145,  0, 86, 27,  3,139,213,134, 99,199,142,226,219,111,191,134,217, 70, 96,177, 49, 16, 11,105,148,171,117, 40,253,
-227, 23,133, 76, 38, 83,121, 32, 66,121,247,216, 43,127, 90,255,246,161, 10, 63,174,143,179,143,113, 52,  1,104,  2,154,102, 48,
-176,207, 31, 74, 27,  7, 47,128, 59,235,223,121, 21, 64, 96,120,180, 87,228,239,206,250,119,142,170, 29, 57,111,165, 87,228,101,
- 31, 20,213,208,233,116, 16,137, 68, 14,235,159, 97, 24,199,187,183, 10,192,119,203,223,192,177,210,125,  8,138,182,  7,253,  5,
- 11,  5,168,184,126,  1, 33, 18, 17,110, 86,151, 64, 64, 83, 16,210,220,166,159, 89,235,191,125,120, 48,206, 20, 93,130,213,108,
-134, 68, 40,134, 78,103,196, 86,229, 33, 36, 40,198,122, 69,254,108,253, 61,241,226,187,216,240,217,167,208, 51, 64,251,216,118,
- 56,117,250, 87,204, 31,223,199,167,250,  3,128,249,177,  9,216,118,126, 47,160,177,  2,210,150,216,157,127,  6,212,251, 47, 97,
-101, 84, 20,197,149,252,  1, 96,122,215,133,170,159,119,231,  3,230, 26,232,168, 26,168,105, 29, 52, 66, 11, 44, 54, 45, 36, 70,
- 61,164,101,151,176,113,209,121,196,196,199,161,145,  0,192,122,144, 57, 69,190, 74,165, 82, 72,165, 82,183,199,184, 98,237,218,
-181, 88,187,118,109,147, 58,115,112,112,240,203, 23, 46, 92,  8, 12,  9,  9,129, 76, 38, 67,120,120, 56, 42, 42, 42, 64, 81,148,
-222,159,131,  6,107,241,231,229,229, 17,192, 30, 16,232, 77, 80,160,191,201,255,171,175,190,146, 19,207,107,221, 57,173,  8,  8,
- 12, 12, 76, 17, 10,133, 23, 93,203,151, 45, 91, 86,207,242,  7,128,142, 29, 59, 34, 49, 49,113,157, 39,251,167,164,236,122,189,
-104,255,183,254, 53, 15, 18,161, 24, 81, 81, 81, 96, 87,  7,212, 29, 15,244,166,191, 61, 39,239,141, 87, 62,254, 20, 53, 55,202,
- 17, 25,210, 10,167,207, 92,197,172,101,233, 72, 75, 75,163,124, 33,107,246,119,206,191,119,150,195,123,  2,238, 13,252,254,251,
-239,141, 38,  3,106,208,  3, 80, 55,136,168,142,170,182, 40,  8, 73, 82,198,180,137, 64,112,128,  4, 15,246,140,199,131, 61,250,
- 64, 72,  3, 58,131, 13, 87,175, 85, 35, 95,245,147, 34, 40, 48,192,227, 31,212,234,245,136,235,120, 13, 70,147, 20,132, 53,106,
-  8, 32,147, 26, 65,  8, 80,125, 83,  2, 80, 64,112,160, 21,189,226, 46,227,192,145,190,  8, 14, 14,230,108,253, 59, 91,252,178,
-208,  8,136,136,  5,176,254, 57,222,217,132,158,175,209,217,250,119,182,248,217,178, 11,167, 11, 28,231,114,201,178,231,172,  4,
-  0, 64,116,180, 93, 25,169,174,174, 70, 72, 72,136,195,253,239,141,  2,192, 42,  1,192,251,152,155, 60, 12,248,236,  0,190,120,
-115, 44, 38, 47,248, 20,233, 31,188,  0, 33, 69, 65, 44,225,182, 98,135,181,254,207, 92, 45, 71,151,246, 45,241,229,255, 54, 34,
- 38, 38,  6,161,109, 98,209,167, 77, 44, 44,166, 63,221,255, 34, 14, 50, 89,235,255,189,217, 35,240,242,219,235,208,190, 51,213,
-164,250, 99,173,255, 81,155,191,194,174, 25,211, 64,181, 27,  8,192,158, 21, 16,176,167,  8,102,207,125, 57, 42,138, 19,113,244,
- 54,189, 70,165,127,188, 84, 30, 59,177, 70, 25,211,181, 39,180, 50,224, 18,174,160,230,114,  5, 42,150,216,160, 83,183,195,188,
-103, 22,112,126, 32,171, 86,173,162,100, 50, 25, 49, 24, 12,112,178, 60,137, 76, 38,195,170, 85,171,188, 72, 79,228, 63,212,212,
-212,124,244,194, 11, 47, 36,173, 93,187, 86, 26, 26, 26, 10,165, 82,137, 21, 43, 86,104,205,102,243, 99,254,252, 31,214,226,103,
-151,203,121, 27, 16,152,152,152, 72,169,213, 35,137, 63,200, 31,  0, 88, 98,231, 66, 80, 28, 50, 12,154,159,121,230,153,129, 25,
- 25, 25, 39,106,107,107, 91, 91, 44,246,101,166,174,228,255,224,131, 15, 98,224,192,129,227, 56, 60,103,161,166,236, 34, 22,191,
-243, 22, 54,109,219,129,209,131,251, 97, 79,222,175,118,  3,166, 77, 44, 66,219,196,162,127, 81, 17, 30,155, 52,179,242,106,149,
-126, 84,135,136,128, 44,174,214,255, 43,107,182, 97,209,223, 70,161, 77,180,220,161, 92,176,247,200,197,115,227,139,119,128,247,
-  4,220,187, 74,  1, 39,  5,  0,  0, 66,130,131, 84,199, 84, 91, 20,151,218, 61,128,206, 93,187, 43, 67,  2,101, 96,  8, 96, 48,
-153, 81, 84, 84,132,138,162,223, 21,193, 65,129,160,105,218, 99,199,149, 73,165,200,216, 57, 76,193, 70,192, 55,234,142,160,105,
-  4,  6,114,183,158,216, 37,128,129,225,209, 96,108, 22, 59,249,215,193, 66,137, 60,166,216,117,  5,187,164,102,228,188,149,245,
- 72,203, 23,242,119, 86,  2,156, 19,255, 84, 87, 87,123,126,  0, 30,148,128,239,156, 86,  9,175, 93,242,252,159, 95, 44, 58,  4,
-113,148,211, 62, 60, 24, 25, 71,126,199,169,179,231,144,160, 24, 91,143,244,189, 33,127, 22, 79,188,248, 46,126,236, 23,136, 23,
-159,236,230,151,250,155, 31,155,128,  5,217, 25,160, 22,191,141, 29, 81, 15, 99,133,238, 84,189,227, 19, 67, 91,160,157,212,187,
- 61, 41,166,119, 93,168,218,145,157,133, 18,245, 69, 84, 84, 93,195,141,194, 32,  8,108, 33,120,180,247, 16, 40,158, 81,220,213,
- 65,205, 31,217,254,  8, 33, 71, 40,138, 26, 73, 81,212,238, 79, 63,253, 84, 58, 97,194,  4,173, 94,175, 31,229,203,156,127, 99,
-240,199, 18,192,212,212, 48,191,144,191,171,149,234, 39, 84, 78,153, 50, 37,182,166,166,102,241,209,163, 71,231,149,150,150,162,
-182,182, 22, 98,177, 24,173, 91,183, 70,100,100,228,132,126,253,250,109,229, 40,235, 15,  0,253,219,135,  7,227,145, 71, 30,193,
-239,231, 75,209,178, 83,143,122,253,237,177, 73, 51,245,  0, 62,231, 66,254, 44,158,147,247,198,200,188,223, 48,227,237,111, 49,
-116,232, 80, 68, 69, 69,185, 85,180,252, 85, 33,172, 18,224, 77, 93, 55,164,144,241, 74,196,221, 35,125, 78,169,128,  1, 32, 36,
- 36, 68,101,170, 46,150, 31, 83, 21, 42,  0,123, 36, 45, 33,  4, 18,137,  4,161, 33,156,115, 96, 67, 36, 18,169, 66, 69, 34,191,
-223, 28,235,234, 23, 88,245,128, 85,239,136,128,103,137,223,219,181, 88,172,171,255,194,233,  2, 92, 56, 93,128,200,200, 72, 84,
- 84, 84,248, 68,252,161,145,109, 96,230, 16, 28,201, 21, 51,222,253, 14,135, 14,168,252, 38,239,242,229,203,142,221,254, 44, 38,
-227, 45,228,239, 13,241,179,120,166, 95,160,223,234, 15,  0,168,229,175, 57,136,159, 37,255, 75,181,181,138,137,161, 45, 48,158,
-163,213,239, 14,143,119,154, 76,161, 83,221, 23, 31,  2,219, 87,175, 94, 77,177,217,254, 86,173, 90, 69, 57,103,254, 91,183,110,
- 29,181,106,213, 42,199,231,213,171, 87,223,241, 78, 79,  8, 57, 72, 81,212,208,172,172,172,249, 90,173,118, 57, 33, 36,223,223,
-255,225,143, 37,128,254, 36,167,219,  4, 67,112,112,240,124,185, 92, 62,191,137,114, 14,158, 60,121,242, 81,  0,157, 90,118,234,
-161,183,152,140,  1,117,253, 77, 11, 64,  3,224,143, 14, 17,  1, 79,193, 30, 44,200, 25, 35,223, 90,123, 71,136,191, 41,138, 22,
- 79,242,119,  7,241,241,241,156,200,223,163,  1, 42, 20, 10, 85,158,220,241,119, 26,236,220, 62, 75,252,104, 34,241,179,115,211,
-154,242, 18,104,202, 75, 16, 25, 25,217, 36,139, 31,  0,172, 54,198,107,239, 67, 99, 40,175,214,248,124, 45,174, 96,231,246,253,
- 69,252,254,174, 63,118,110,127,155, 78, 71,156,173,254,190, 66, 81,147,136,255,175,  4, 66,200, 97,  0,211,248,154,184,251,152,
- 62,125,122, 26,128,111,175, 86,233,245, 22,147,209,121, 62, 50,164, 67, 68, 64, 24,188,220,253,143, 37, 85,103, 55,255, 61,164,
- 84,241,184,131, 74,  0, 39, 67, 43, 62, 62,158, 15,236,224,193,131,  7, 15, 30, 60,254, 98,160,249, 42,224,193,131,  7, 15, 30,
- 60,120,  5,128,  7, 15, 30, 60,120,240,224,193, 43,  0, 60,120,240,224,193,131,  7, 15, 94,  1,224,193,131,  7, 15, 30, 60,120,
-220, 23,168,183, 10, 96,238,220,185, 62, 71,145,186,219,110,178,185,203, 43, 40, 40,240, 89, 94,223,190,125,111,187, 60,127,223,
-111,203,150,241, 62,203,171,172,252,253,110, 63, 95,170, 78, 97,101,224, 38,249,202,189,216,254,238,148,188,186,196, 68,116, 93,
- 29, 18,  0,100,238,220,185, 12, 95,127,188, 60,126,124,190,127,229,121,173,  0,220, 15,104,106,146,137, 41, 83,166,200,  1, 56,
-167, 12, 85,100,100,100,168,120, 93,241,238, 64,163,209, 60,125,242,228,201, 62,  2,129, 96,129, 68, 34,129, 94,175,127,109,240,
-224,193, 31,195, 15,153,246,  8, 33, 94,103, 99,188, 23, 49,119,238, 92,  2,142,155,204,240,184,123,200,206,206,150, 39, 37, 37,
-169,124,252,173, 34, 39, 39,103,175, 63, 18, 74,213,201,123, 42, 39, 39,103,227,234,213,171,195, 97,223,211,192,134,187,144,221,
-146,199, 29,244,  0,220,235,200,203,203,147, 55,229,247, 83,166, 76,145,103,100,100, 40,167, 76,153,226, 92,172,156, 50,101,138,
-207, 74,  0,171, 80,100,102,102,178,169, 58,189,146,149,146,146, 66,188,252,191, 70,215,  3,239,222,253,181,183,242, 20,106,117,
-224,221, 80,128,168, 83,167, 78,125,164,213,106,255,214,177, 99,199, 22,149,149,149,168,219,110,247,195, 31,127,252,241,195,192,
-192,192,225,143, 61,246,152,178, 73,127,224,  3,249,167,166,206,245,122, 16, 76, 75, 91, 69,221, 57,121,141,167,195,109,104,211,
- 23,174,253, 43, 35, 35, 67,137,183, 41, 80,255,113,175, 80,225,109, 10, 83,254, 72,246,186, 94, 71,143, 30, 77,  0, 32, 55, 55,
-215, 47,  4,198,110,  5,156,154, 26,230,247,245,241,217,217,217,242,156,156, 28,165, 55,100,251,247,191,167, 16, 66,236, 91,171,
-187,195,248,241,227, 20, 57, 57, 57,202,164,164, 36,202,135,118, 60,124,199,142, 29,123,134, 13, 27,134, 57,115,230,144,244,244,
-244,145, 90,173, 54,207,155,107,115,163, 52, 98,234, 32, 49, 82,231,164, 86,191,182,126,225,214, 15,166,125,240,  4,123,108,237,
-218, 53,141, 94,227,204,153, 51,  9,  0,  4,  6, 54,188,181, 65,109,109, 45,  0, 96,214,172, 89,124,254,130, 59,  4, 54, 57,144,
-115,142,  0,161,135, 14,239, 54,111, 54,135,124,218,119, 11, 77, 34,  4,103,242,207,200,200,160,166, 76,153, 66,156,228,122,125,
-191,172, 66,193, 18, 77,221,134, 31,222, 43, 20,153,225, 94,252,107,162,199, 51,106,199, 63,207, 93,156,151,251,218, 52, 68, 64,
- 94,122,101, 40,141, 70,243, 67,207,158, 61, 39,  1,160,  9, 33,144,201,100, 40, 47, 47,199,205,155, 55, 17, 26, 26,138,242,242,
-242,189, 59,119,238, 84, 60,246,216, 99, 94, 41, 39,121,121,121,132,221,152,133,162, 40, 76,154, 52,  9,137,137,137, 10,138,162,
- 56,203,201,206,222,226,248,156,148, 52,193,227,119, 79, 48, 28,122,241,207,234, 30,180,178,222,119,215, 50,217, 32,207,155, 42,
-177,219,  9, 59, 99,255,254,253, 88,178,100,201, 45,207, 98,253,250,245,132, 99,189,201, 51, 51, 51,149,120,155,170, 35,216,228,
- 91,  7,238,183,169, 38, 91,136,205,120,108,169,103,105,167,165,165, 41,  8, 33,216,176, 97,  3, 57,120,240, 32,122,247,238,237,
-241,183,135, 26,200,201,184, 57,115,  1,114,114,114,148, 12,195, 96,205,154, 53,240,180,173, 50, 69, 81,114, 66,136,163,189,110,
-221,186, 53,128,162, 40, 76,155, 54,237,  6,128,168,233,211,167,239, 94,189,122, 53,237,141,197,254,241,238,143, 29,159,175,231,
- 94,  3, 69, 81, 72,255, 71,  0,  0, 10, 31,205,252,240,137,150, 45, 91,  2,  0,190,255, 38, 29,115,134,205,225, 36,179,127,255,
-254,232,220,185, 51,207,188,205,136,252, 93, 65, 55, 54,144,103,102,102, 98,205,154, 53,196,221,  0,234,203,206, 80, 77,181,208,
- 61,201,115,178,178,125, 54, 10, 51, 50, 50,168,140,140, 12,138, 85,  2,  0, 40,154,162, 80, 80, 20,133,228,228,100, 16, 66, 40,
-167,107,243, 90, 81,161,166,168, 29, 47, 46,229,158, 16,180,125,149,227,197,165,220, 27,242, 39,132,128,221,157,205,211, 46,109,
-238,218,164, 90,173,254, 54, 52, 52,116, 18,  0,122,246,236,217,152, 49, 99,  6,196, 98, 49,100, 50, 25,164, 82, 41, 40,138,130,
- 64, 32,128, 70,163,225, 92,143, 89, 89, 89,242,212,212, 84,146,149,149,  5,167,103,130, 31,127,252, 17,115,230,204, 81,102,101,
-101,201,155, 99,199,117,167, 16,220, 13,207, 90,102,102,166, 50, 45, 45,141,122,234,236, 20,183, 22,126,106,106, 42,153,242, 71,
-178,194,157,103,192, 19,230,204,153, 67, 94,125,245, 85,116,234,212,201, 47,215, 59,103,206, 28,146,154, 26,134,136,136, 61,126,
-173,135, 45, 91,182,140,200,203,203,219,219,167, 79, 31,234,139, 47,190, 80,177,228,223, 20,108,206, 92,128,229,203,151,131, 97,
- 24, 44, 88,176,  0, 92,100, 58,147, 63,  0,236,216,177, 99,219,208,161, 67,  1, 32,108,218,180,105,214, 97,195,134, 33, 53, 53,
-149,225,106,180,184,246,209, 21, 43, 86,224,169, 71,236,182, 97,250, 63,100,152, 58, 72,140,215, 70,191,202,249,158,  2,  3,  3,
- 49,116,232, 80,164,164,164, 80,137,137,137,110, 95,236, 57,188,245,127,247,200,191, 81,  5,128, 37,171,163, 71,143, 58,210, 78,
- 58, 91, 79,222, 18,173,195,130,240,243,160,228, 70, 25, 80,248,179,242, 50, 50, 50,148,126,144,225, 80, 40,146,147,147, 21,108,
- 29,222, 79,112, 38,127,  0, 40, 45, 45,117, 28, 43, 41, 41,225,172, 48,106, 52,154,247,245,122,253, 76,154,166,233,233,211,167,
- 67,163,209,160,172,172, 12, 34,145,  8, 66,161, 16, 66,161, 16, 34,145,  8, 50,153, 12,  6,131,193,109, 74, 84, 55,  3,156,124,
-247,238,221, 74,138,162, 48,121,242,100,172, 94,189,154, 74, 76, 76,164,210,210,210,168,201,147, 39,179,237, 71,201, 15, 21,141,
-147,127, 93, 93, 42,216, 65,220,249,217, 39, 39, 39, 43, 18, 19, 19, 85,128,111, 41,105, 19, 19, 19,169,213,171, 87, 83,153,153,
-153, 32,132,248, 69, 25,123,227,141, 55,144,153,153,201,169,141,120,194,166, 77,155, 70, 30, 57,114, 36, 47, 38, 38,  6, 58,157,
-142,  4,  6,  6,146,  3,  7, 14,  0,112,  4, 89,250, 68,254,203,150, 45,  3, 69, 81,160,105, 26, 71,142, 28,  1, 43,211, 11,143,
-196, 19, 20, 69, 97,234,212,169,214,186, 34,243,180,105,211,180,114,185, 28,115,230,204, 97,182,110,221,234,241,222,157,167,194,
-174,231, 94,  3, 40, 96,195,203,127,102, 45, 78,255, 71,  0,166, 61, 42,193,194,199, 94,227,124, 93, 92, 44,127,222, 59,112,231,
-200, 63,101,225,  7,110,143, 11, 27,235,144, 69, 69, 69,228,232,209,163,200,204,204,  4,251,153,117,237,120,211,201,111, 55,249,
- 59, 91,213,236, 32,212, 92,225, 60, 37,112,191,129, 16,130,210,210, 82, 92,191,126,221, 81,230,250,221,  3,  4,191,252,242,203,
-152,184,184, 56,  8,  4,  2, 92,184,112,  1,132, 16,156, 59,119, 14,102,179, 25, 20, 69, 65, 40, 20,130,162, 40,216,108, 54,232,
-245,122,108,222,188, 25,137,137,141, 79,123,236,217,179, 71,  9,  0,147, 39, 79,190,165,221,214,125, 39, 44, 81,112,105,215,174,
-110,125, 79,223,185, 88,249, 44, 26,154, 14,224,226,250,119,197,254,253,251, 81,103, 25, 54, 77,  1,126,155,  2,229,164,192,177,
- 10, 44, 59,231,159,231, 68,254,190, 88,235,172, 18,198,146,209,158, 61,123,148,190, 90,134,172,188,174, 93,187,222, 66,110,190,
- 96,213,170, 85,248,227,143, 63, 72,100,100, 36,218,182,109,235,216,246,249,242,229,203, 16,  8,  4,248,239,127,255,235,211, 31,
- 12,123,212,190,125, 25,195, 48,248,231, 63,255,137, 21, 43, 86,224,192,129,  3,160, 40, 10,227,147,254,142, 43,151,185,109,224,
-184, 99,199,142, 45,117,207,216,  8,251, 10, 25,  6,  0,166, 77,155,118, 19, 64,139,156,156, 28, 80, 20,197, 89,161,178, 91,255,
-183,238, 99, 98,159, 14,  0,190, 79, 47, 64,182, 38, 91, 14, 30,247, 60,249, 55,170,  0,  0, 64, 74, 74, 10,197, 90,253, 44,249,
-187,157,251,243,130,172, 27,179,  4,185,204, 19,123,146,231,122,252,110,237, 72, 53,101,202, 20,231,185,102,226,238, 56,235, 25,
-104, 18,233,102,132,249,245,186,117,227,230,250,100,249, 55, 52,216,182,107,215,238,150,115, 27,121, 38, 45,194,195,195,123,154,
- 76, 38, 84, 87, 87,227,208,161, 67, 16,  8,  4, 48,155,205, 48, 24, 12, 96, 24,198,177, 43,165,197, 98,129,201,100,226, 52,197,
-192, 62,135,134,218,109, 98, 98, 34,149,149,149, 69, 50, 51, 51, 61, 42, 19,118,171,235,246,196,  0,200,  6,173,188,133,232,217,
-239,190, 40,  2, 67,135, 14,109,186, 18,224, 50,231,159,151,151, 39,119,144,253,159,115,254, 62,197,200,184, 40, 97,  0,236,187,
- 45,166,166,166, 18, 46,207,129,171, 23,160, 46,246,193,235,216,  2,118,103,199,182,109,219, 34, 36, 36,132,114, 85,118,123,246,
-236,233,179,229, 79,  8,129,213,106,117,148, 13, 30, 60, 24,  7, 14, 28,192,190,159,109,248,120, 41,183, 57,246,236,236,236,209,
-117,115,255,103,  0,180,  4,224,188,217, 80, 25,128, 22,  0,144,147,147,163,236,211,167,143, 71,121,245,231,254,221,120, 10,234,
-222,185,202,227,209,252, 33,228,210, 57, 89,235,223, 91,203,191,168,168,136,248,211,221,237, 73, 94,221,180,132,223, 60, 13,107,
-214,172,161, 82, 82, 82,124,250,173,235,117,166,165,165,233, 82, 83, 83,131, 26, 58,238, 43,156,231,254,253,161, 12, 56,207,253,
-115, 85,  6,102,204,152,129,192,192, 64,  4,  5,  5, 33, 56, 56, 24,161,161,161, 76, 88, 88, 24,157,147,147,131,167,159,126,218,
-113,158, 84, 42,197,168, 81,163,144,154,154, 74, 26,216,173, 42,194,108, 54,163,186,186, 26, 70,163, 17,161,161,161,144, 72, 36,
-176, 90,173, 32,132,192,102,179,193,108, 54,195, 98,177,192,102,179,121, 21, 95,224,105,202,106,242,228,201,104, 14, 83, 51,158,
-  2,  2,189,  5,171,  4,248,220,190,254,211,112,221, 77,249, 35,185, 46,238,198, 55,217,174,214,191,179, 34,233, 75, 48,160,171,
-245,223,152, 98,202,149,252,  5,  2,  1,  9,  9,  9,  1,236,  1,117, 20,  0, 98,177, 88,160,209,104,208,170, 85, 43,159,238,155,
- 53,166,132, 66, 33,230,205,155,135, 35, 71,142,224,207,121,127,238,109,122,231,206,157, 59,135, 12, 25,  2,  0,193,176, 79,231,
-234,  1, 96,227,198,141,173,246,237,219, 23, 66,  8,113, 40,219,238,214,217,223, 98,253,127,186,  2, 83,  7,222,106,253,207,248,
- 76,143,141,135, 44, 32,132,160,239,244,190,152, 51,108, 14,197, 69, 30,143,230,109,253,  3, 28, 50,  1,230,229,229, 57, 92,255,
-206,241,  0, 92,208,185,115,103, 42, 57, 57,217,111,115,242, 28,228,249, 60,191, 62,101,202, 20,226,250,202,203,203, 99,216, 85,
-  1, 78, 43,  2,124, 66, 74, 74, 74,208,253,220,224,214,172, 89,131,101,203,150,213,107, 87, 44,249, 39, 37, 37, 33, 41, 41,  9,
-  0,176,111,223,190,198,196,132, 23, 21, 21, 25,109, 54, 27,212,106, 53, 42, 43, 43,161, 86,171,161,215,235,161,215,235,161,211,
-233,160,213,106,161,209,104, 96, 48, 24, 96, 50,153, 96,179,121, 94,222, 78, 81, 20,178,178,178,188, 82,216,238,101,236,223,191,
-191,222,203, 25,103,207,158,149, 59,127,231, 50,231,236, 58,231,239,106,185, 55, 37,144,203,221,111, 87,175, 94, 77,101,101,101,
-249, 53, 22, 32, 43, 43,139,243,216,197,146, 63, 77,211,164,174,125, 57, 92,255, 12,195,224,198,141, 27,232,218,181, 43, 53,119,
-238, 92,175,175,229,205,133,195,176,111,223, 62, 48, 63,180,  0, 33,  4,203,151, 47,119, 60,163,253,135, 56,199,237, 33, 59, 59,
-123,  2,  0, 76,155, 54,173,180, 78,  1, 48,125,255,253,134, 86,115,231,206,109,181,111,223, 62, 60,254,248,227, 35,189, 89,166,
-120, 61,247, 26, 40, 80,216,224,100,253, 79,255, 84, 15,193, 84, 13,190, 63,100,198, 43,175,188,130,165, 59, 63,228,153,245, 62,
- 34,127,143, 30,128, 53,107,214,212,155,247,119,142,  7, 72, 73, 73,161, 56,118,112, 85, 29, 49, 43,235, 44,225, 38,185,189,221,
-201, 99,221,254,137,137,137, 42,127, 69,149, 38, 38, 38,158,202,203,203,235,217, 28, 31, 48,107,245,251,203,253,207, 90,253,222,
-186,255, 89,108,216,176,193,241,249,223,255,254, 55,190,254,250,107,  0, 48,  3, 16,179,196, 15,  0,163, 70,141,242,164,  0, 24,
-226,226,226,160,215,235, 97, 54,155, 81, 81, 81,  1,137, 68,  2,161, 80,232,240,  0,212,214,214, 66,175,215,195,100, 50, 65,163,
-209, 96,210,164, 73, 30, 21, 76,214,186,111,108, 89, 43,123, 30, 23,220,206, 24,  0, 95,142,187,130, 93,238,231, 14,203,151, 47,
- 87,206,155, 55, 79,209,173, 91, 55,213,221,108,195, 13, 89,255,206,240, 38, 22,160, 33,235,223, 87,203,159,166,105,194, 48, 12,
-  5,224, 29,182,105,219,108,182,183,  3,  3,  3,209,174, 93, 59,159,198,152,183, 94, 31,  6,149, 74,  5, 42, 43,  2,  0,176,235,
-173, 96,140,122,175,  6, 67,135, 14,197,226,165,251,188, 74, 76,181, 99,199,142,205,195,134, 13,  3,128,138,141, 27,211,219,238,
-219,119,160,  5,161,  8,198, 60, 62, 38, 41, 41, 41,105,155, 55,195,  9, 96,159,251,159, 58, 72, 84,223,226,  7,193,188, 87,230,
- 33,106, 84,244, 95, 34, 97,214,125,103,148, 45,125,189, 65,  5,129,245,192, 10,185, 88,254,253,251,247,191, 37, 30,192, 27, 23,
-157, 43,105,251,129,156, 93,229,249, 61,130, 59, 37, 37,165,103, 94, 94,158,223,228,221,175, 29,136, 77, 44,195,186,137, 51, 51,
- 51,241,236,179,207,  2,128,152, 61,199,249, 88,221,160,213, 16, 78, 15, 28, 56,240,105,149, 74,149,105,179,217,160,213,106, 97,
-177, 88, 28,243,254, 70,163,209,177,196,144, 13, 12, 28, 53,106,148,138, 67,123,161, 50, 51, 51, 73,157, 23,160, 94,187,205,203,
-203, 99,203,145,152,152,200,201, 91,117,167, 99,  0, 92,167,  5, 60, 61,143,198,142,167,166,166,146,229,203,151, 43,159,122,234,
- 41,252,240,195, 15, 62, 61,115,215,229,183,236,247,140,140, 12,101, 74,105, 42,166,120,176,180, 71,143, 30, 77, 46, 93,186,132,
-157, 59,119, 54, 88,223,151, 46, 93,  2,  0,228,230,230,122,188,158,228,228, 76,146,156, 60,  2, 35, 71, 22,161,168,168,200,109,
-116,121, 85,213,  8,  0,106,164,166, 54, 60,110,177,228,111, 54,155,137, 88, 44,102,207,121,167, 78, 33,120,251,202,149, 43,232,
-216,177,163, 79,150, 63, 77, 83,118,133,157, 37,255, 19, 86,124,173, 52,  3,  0, 22, 47,221,231,245, 24,193,246,137,185,115,231,
-198, 19, 66, 48,118,220,216, 73,227,199,141,223,228,203,208, 52,225,201, 39,206, 80, 20,245, 32, 33,128, 96,170,  6,132, 16,204,
-155, 63, 15,209,163, 90,255, 57,241,225, 59, 88, 47, 51,  1,159, 73,176,217,161, 65,  5,192,121,185,159,139,171,143,100,102,102,
-130,107,192,148, 43,105,251,235,194,157,229,249, 97,253, 63,143, 38,194,217,133,238, 76, 66,108, 62,  9,215, 99, 13,204, 33, 90,
-  1,252, 56,108,216,176,151,114,114,114, 62,183, 90,173,184,121,243,166, 35,  6,  0,  0, 42, 42, 42,112,243,230, 77, 16, 66,224,
-205,244,210,200,145, 35, 21,187,119,239, 86,102,102,102, 34, 43, 43,139,184,206,249,143, 28, 57,210,171,100, 64,183,  3,134, 67,
- 47,122, 77,248,238,  8,190, 49, 37, 32, 45, 45,141,154, 51,103, 14,241,133,252,235,  5,&nb