Merge from mozilla-inbound to mozilla-central
authorMatt Brubeck <mbrubeck@mozilla.com>
Wed, 28 Dec 2011 11:02:59 -0800
changeset 84668 010fe7e7df1a9797a4b6b43c17462943db5d9a84
parent 84632 d144d8a5af9e89faa160725f063cd10f531bc3b2 (current diff)
parent 84667 97df9986ccf449b0e16f81364287b9b3b9936567 (diff)
child 84669 5f606d407c14b09e52911b6725360d756f75cf27
child 84697 855983168b2fcfc98e8b031be84735f1b927ebfe
push id805
push userakeybl@mozilla.com
push dateWed, 01 Feb 2012 18:17:35 +0000
treeherdermozilla-aurora@6fb3bf232436 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone12.0a1
Merge from mozilla-inbound to mozilla-central
intl/uconv/ucvlatin/8859-9.ut
js/src/tests/src/jstests.jar
layout/base/nsDisplayList.cpp
layout/generic/nsHTMLContainerFrame.cpp
layout/generic/nsHTMLContainerFrame.h
memory/Makefile.in
memory/mozutils/Makefile.in
memory/mozutils/dummy.cpp
memory/mozutils/fixcrt.py
memory/mozutils/mozutils.def.in
other-licenses/android/APKOpen.cpp
other-licenses/android/APKOpen.h
other-licenses/android/nsGeckoUtils.cpp
--- a/browser/components/build/Makefile.in
+++ b/browser/components/build/Makefile.in
@@ -7,23 +7,22 @@ include $(DEPTH)/config/autoconf.mk
 
 MODULE = browsercomps
 LIBRARY_NAME = browsercomps
 SHORT_LIBNAME = brwsrcmp
 IS_COMPONENT = 1
 MODULE_NAME = nsBrowserCompsModule
 FORCE_SHARED_LIB = 1
 
-# Because we are an application component, link against the CRT statically
-# (on Windows, but only if we're not building our own CRT for jemalloc)
-ifndef MOZ_MEMORY
+# Statically link the CRT on Windows if building against
+# a XULRunner SDK.
+ifdef LIBXUL_SDK
 USE_STATIC_LIBS = 1
 endif
 
-
 EXPORTS = nsBrowserCompsCID.h
 
 CPPSRCS = nsModule.cpp \
           $(NULL)
 
 ifeq ($(OS_ARCH),WINNT)
 OS_LIBS	+= $(call EXPAND_LIBNAME,ole32 shell32)
 endif
@@ -65,8 +64,11 @@ SHARED_LIBRARY_LIBS += ../migration/src/
 # GTK2: Need to link with glib for GNOME shell service
 ifneq (,$(filter cocoa gtk2,$(MOZ_WIDGET_TOOLKIT)))
 EXTRA_DSO_LDOPTS += \
   $(TK_LIBS) \
   $(NULL)
 endif
 
 include $(topsrcdir)/config/rules.mk
+
+# Ensure that we don't embed a manifest referencing the CRT.
+EMBED_MANIFEST_AT =
--- a/browser/themes/winstripe/browser-aero.css
+++ b/browser/themes/winstripe/browser-aero.css
@@ -289,31 +289,33 @@
   #tab-view:-moz-lwtheme {
     background-image: url("chrome://browser/skin/tabview/grain.png"),
                       -moz-linear-gradient(rgba(255,255,255,0), #CCD9EA 200px, #C7D5E7);
     background-attachment: fixed;
   }
 }
 
 @media not all and (-moz-windows-compositor) {
-  #main-window:-moz-system-metric(windows-default-theme) {
-    background-color: rgb(185,209,234);
-  }
-  #main-window:-moz-system-metric(windows-default-theme):-moz-window-inactive {
-    background-color: rgb(215,228,242);
-  }
+  @media (-moz-windows-default-theme) {
+    #main-window {
+      background-color: rgb(185,209,234);
+    }
+    #main-window:-moz-window-inactive {
+      background-color: rgb(215,228,242);
+    }
 
-  #toolbar-menubar:not([autohide=true]):not(:-moz-lwtheme):-moz-system-metric(windows-default-theme),
-  #TabsToolbar[tabsontop=true]:not(:-moz-lwtheme):-moz-system-metric(windows-default-theme),
-  #navigator-toolbox[tabsontop=false] > toolbar:not(#toolbar-menubar):not(:-moz-lwtheme):-moz-system-metric(windows-default-theme) {
-    -moz-binding: url("chrome://global/content/bindings/toolbar.xml#toolbar-drag");
-    background-color: transparent;
-  }
-  #toolbar-menubar[autohide=true]:-moz-system-metric(windows-default-theme) {
-    background-color: transparent;
+    #toolbar-menubar:not([autohide=true]):not(:-moz-lwtheme),
+    #TabsToolbar[tabsontop=true]:not(:-moz-lwtheme),
+    #navigator-toolbox[tabsontop=false] > toolbar:not(#toolbar-menubar):not(:-moz-lwtheme) {
+      -moz-binding: url("chrome://global/content/bindings/toolbar.xml#toolbar-drag");
+      background-color: transparent;
+    }
+    #toolbar-menubar[autohide=true] {
+      background-color: transparent !important;
+    }
   }
 
   #print-preview-toolbar:not(:-moz-lwtheme) {
     -moz-appearance: -moz-win-browsertabbar-toolbox;
   }
 }
 
 /* ::::: fullscreen window controls ::::: */
--- a/browser/themes/winstripe/browser.css
+++ b/browser/themes/winstripe/browser.css
@@ -1546,19 +1546,21 @@ html|*.urlbar-input:-moz-lwtheme:-moz-pl
 }
 
 .ac-url-text,
 .ac-action-text {
   color: -moz-nativehyperlinktext;
 }
 
 %ifndef WINSTRIPE_AERO
-.ac-url-text:-moz-system-metric(windows-default-theme),
-.ac-action-text:-moz-system-metric(windows-default-theme) {
-  color: #006600;
+@media (-moz-windows-default-theme) {
+  .ac-url-text,
+  .ac-action-text {
+    color: #006600;
+  }
 }
 %endif
 
 richlistitem[type~="action"][actiontype="switchtab"] > .ac-url-box > .ac-action-icon {
   list-style-image: url("chrome://browser/skin/actionicon-tab.png");
 }
 
 .autocomplete-treebody::-moz-tree-cell-text(treecolAutoCompleteComment) {
--- a/browser/themes/winstripe/places/places-aero.css
+++ b/browser/themes/winstripe/places/places-aero.css
@@ -1,12 +1,14 @@
 %include places.css
 
 /* Style Places sidebars as Vista media collection */
-#bookmarksPanel:-moz-system-metric(windows-default-theme),
-#history-panel:-moz-system-metric(windows-default-theme) {
-  background-color: #EEF3FA;
-}
+@media (-moz-windows-default-theme) {
+  #bookmarksPanel,
+  #history-panel {
+    background-color: #EEF3FA;
+  }
 
-.sidebar-placesTree:-moz-system-metric(windows-default-theme) {
-  background-color: transparent;
-  border-top: none;
+  .sidebar-placesTree {
+    background-color: transparent;
+    border-top: none;
+  }
 }
--- a/content/canvas/src/nsCanvasRenderingContext2DAzure.cpp
+++ b/content/canvas/src/nsCanvasRenderingContext2DAzure.cpp
@@ -804,17 +804,17 @@ protected:
                                                 state.patternStyles[aStyle]->mForceWriteOnly,
                                                 state.patternStyles[aStyle]->mCORSUsed);
         }
 
         ExtendMode mode;
         if (state.patternStyles[aStyle]->mRepeat == nsCanvasPatternAzure::NOREPEAT) {
           mode = EXTEND_CLAMP;
         } else {
-          mode = EXTEND_WRAP;
+          mode = EXTEND_REPEAT;
         }
         mPattern = new (mSurfacePattern.addr())
           SurfacePattern(state.patternStyles[aStyle]->mSurface, mode);
       }
 
       return *mPattern;
     }
 
--- a/docshell/test/unit/test_nsIDownloadHistory.js
+++ b/docshell/test/unit/test_nsIDownloadHistory.js
@@ -86,15 +86,18 @@ function run_test()
   try {
     Cc["@mozilla.org/browser/global-history;2"].
       getService(Ci.nsIGlobalHistory2);
   }
   catch (ex) {
     return;
   }
 
+  // Needed to properly setup and shutdown the profile.
+  do_get_profile();
+
   Services.prefs.setBoolPref("places.history.enabled", true);
 
   for (var i = 0; i < tests.length; i++)
     tests[i]();
 
   cleanup();
 }
--- a/dom/indexedDB/test/Makefile.in
+++ b/dom/indexedDB/test/Makefile.in
@@ -119,21 +119,22 @@ TEST_FILES = \
   test_transaction_lifetimes.html \
   test_transaction_lifetimes_nested.html \
   test_transaction_ordering.html \
   test_setVersion.html \
   test_setVersion_abort.html \
   test_setVersion_events.html \
   test_setVersion_exclusion.html \
   test_unique_index_update.html \
-  test_writer_starvation.html \
   third_party_iframe1.html \
   third_party_iframe2.html \
   $(NULL)
 
+#   test_writer_starvation.html  disabled for infinite loops, bug 595368
+
 ifeq (browser,$(MOZ_BUILD_APP))
 BROWSER_TEST_FILES = \
   browser_forgetThisSite.js \
   browser_forgetThisSiteAdd.html \
   browser_forgetThisSiteGet.html \
   browserHelpers.js \
   browser_permissionsPrompt.html \
   browser_permissionsPromptAllow.js \
--- a/extensions/spellcheck/hunspell/src/README.hunspell
+++ b/extensions/spellcheck/hunspell/src/README.hunspell
@@ -31,17 +31,17 @@
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 *
 ******* END LICENSE BLOCK *******
 
 Hunspell Version:   1.3.2
-Additional Patches: Bug 710967
+Additional Patches: 694002, 710967
 
 Hunspell Author: László Németh
 MySpell Author: Kevin Hendricks & David Einstein
 
 Hunspell is a spell checker and morphological analyser library. Hunspell
 is based on OpenOffice.org's Myspell. Documentation, tests, and examples
 are available at http://hunspell.sourceforge.net.
 
--- a/extensions/spellcheck/hunspell/src/affentry.cpp
+++ b/extensions/spellcheck/hunspell/src/affentry.cpp
@@ -462,17 +462,19 @@ SfxEntry::SfxEntry(AffixMgr * pmgr, affe
   numconds = dp->numconds;   // length of the condition
   opts = dp->opts;           // cross product flag
 
   // then copy over all of the conditions
   if (opts & aeLONGCOND) {
     memcpy(c.l.conds1, dp->c.l.conds1, MAXCONDLEN_1);
     c.l.conds2 = dp->c.l.conds2;
   } else memcpy(c.conds, dp->c.conds, MAXCONDLEN);
-
+  next = NULL;
+  nextne = NULL;
+  nexteq = NULL;
   rappnd = myrevstrdup(appnd);
   morphcode = dp->morphcode;
   contclass = dp->contclass;
   contclasslen = dp->contclasslen;
 }
 
 
 SfxEntry::~SfxEntry()
--- a/gfx/2d/2D.h
+++ b/gfx/2d/2D.h
@@ -143,23 +143,29 @@ struct StrokeOptions {
   CapStyle mLineCap : 3;
 };
 
 /*
  * This structure supplies additional options for calls to DrawSurface.
  *
  * mFilter - Filter used when resampling source surface region to the
  *           destination region.
+ * aSamplingBounds - This indicates whether the implementation is allowed
+ *                   to sample pixels outside the source rectangle as
+ *                   specified in DrawSurface on the surface.
  */
 struct DrawSurfaceOptions {
-  DrawSurfaceOptions(Filter aFilter = FILTER_LINEAR)
+  DrawSurfaceOptions(Filter aFilter = FILTER_LINEAR,
+                     SamplingBounds aSamplingBounds = SAMPLING_UNBOUNDED)
     : mFilter(aFilter)
+    , mSamplingBounds(aSamplingBounds)
   { }
 
   Filter mFilter : 3;
+  SamplingBounds mSamplingBounds : 1;
 };
 
 /*
  * This class is used to store gradient stops, it can only be used with a
  * matching DrawTarget. Not adhering to this condition will make a draw call
  * fail.
  */
 class GradientStops : public RefCounted<GradientStops>
@@ -207,89 +213,109 @@ public:
  * stored in a separate object and are backend dependent. This class itself
  * may be used on the stack.
  */
 class LinearGradientPattern : public Pattern
 {
 public:
   /*
    * aBegin Start of the linear gradient
-   * aEnd End of the linear gradient
+   * aEnd End of the linear gradient - NOTE: In the case of a zero length
+   *      gradient it will act as the color of the last stop.
    * aStops GradientStops object for this gradient, this should match the
    *        backend type of the draw target this pattern will be used with.
+   * aMatrix A matrix that transforms the pattern into user space
    */
   LinearGradientPattern(const Point &aBegin,
                         const Point &aEnd,
-                        GradientStops *aStops)
+                        GradientStops *aStops,
+                        const Matrix &aMatrix = Matrix())
     : mBegin(aBegin)
     , mEnd(aEnd)
     , mStops(aStops)
+    , mMatrix(aMatrix)
   {
   }
 
   virtual PatternType GetType() const { return PATTERN_LINEAR_GRADIENT; }
 
   Point mBegin;
   Point mEnd;
   RefPtr<GradientStops> mStops;
+  Matrix mMatrix;
 };
 
 /*
  * This class is used for Radial Gradient Patterns, the gradient stops are
  * stored in a separate object and are backend dependent. This class itself
  * may be used on the stack.
  */
 class RadialGradientPattern : public Pattern
 {
 public:
   /*
    * aBegin Start of the linear gradient
    * aEnd End of the linear gradient
    * aStops GradientStops object for this gradient, this should match the
    *        backend type of the draw target this pattern will be used with.
+   * aMatrix A matrix that transforms the pattern into user space
    */
   RadialGradientPattern(const Point &aCenter1,
                         const Point &aCenter2,
                         Float aRadius1,
                         Float aRadius2,
-                        GradientStops *aStops)
+                        GradientStops *aStops,
+                        const Matrix &aMatrix = Matrix())
     : mCenter1(aCenter1)
     , mCenter2(aCenter2)
     , mRadius1(aRadius1)
     , mRadius2(aRadius2)
     , mStops(aStops)
+    , mMatrix(aMatrix)
   {
   }
 
   virtual PatternType GetType() const { return PATTERN_RADIAL_GRADIENT; }
 
   Point mCenter1;
   Point mCenter2;
   Float mRadius1;
   Float mRadius2;
   RefPtr<GradientStops> mStops;
+  Matrix mMatrix;
 };
 
 /*
  * This class is used for Surface Patterns, they wrap a surface and a
  * repetition mode for the surface. This may be used on the stack.
  */
 class SurfacePattern : public Pattern
 {
 public:
-  SurfacePattern(SourceSurface *aSourceSurface, ExtendMode aExtendMode)
+  /*
+   * aSourceSurface Surface to use for drawing
+   * aExtendMode This determines how the image is extended outside the bounds
+   *             of the image.
+   * aMatrix A matrix that transforms the pattern into user space
+   * aFilter Resampling filter used for resampling the image.
+   */
+  SurfacePattern(SourceSurface *aSourceSurface, ExtendMode aExtendMode,
+                 const Matrix &aMatrix = Matrix(), Filter aFilter = FILTER_LINEAR)
     : mSurface(aSourceSurface)
     , mExtendMode(aExtendMode)
+    , mFilter(aFilter)
+    , mMatrix(aMatrix)
   {}
 
   virtual PatternType GetType() const { return PATTERN_SURFACE; }
 
   RefPtr<SourceSurface> mSurface;
   ExtendMode mExtendMode;
   Filter mFilter;
+  Matrix mMatrix;
 };
 
 /*
  * This is the base class for source surfaces. These objects are surfaces
  * which may be used as a source in a SurfacePattern of a DrawSurface call.
  * They cannot be drawn to directly.
  */
 class SourceSurface : public RefCounted<SourceSurface>
@@ -306,24 +332,31 @@ public:
    * DataSourceSurface's data can be accessed directly.
    */
   virtual TemporaryRef<DataSourceSurface> GetDataSurface() = 0;
 };
 
 class DataSourceSurface : public SourceSurface
 {
 public:
+  virtual SurfaceType GetType() const { return SURFACE_DATA; }
   /* Get the raw bitmap data of the surface */
   virtual unsigned char *GetData() = 0;
   /*
    * Stride of the surface, distance in bytes between the start of the image
    * data belonging to row y and row y+1. This may be negative.
    */
   virtual int32_t Stride() = 0;
 
+  /*
+   * This function is called after modifying the data on the source surface
+   * directly through the data pointer.
+   */
+  virtual void MarkDirty() {}
+
   virtual TemporaryRef<DataSourceSurface> GetDataSurface() { RefPtr<DataSourceSurface> temp = this; return temp.forget(); }
 };
 
 /* This is an abstract object that accepts path segments. */
 class PathSink : public RefCounted<PathSink>
 {
 public:
   virtual ~PathSink() {}
@@ -602,37 +635,58 @@ public:
    * Fill a series of clyphs on the draw target with a certain source pattern.
    */
   virtual void FillGlyphs(ScaledFont *aFont,
                           const GlyphBuffer &aBuffer,
                           const Pattern &aPattern,
                           const DrawOptions &aOptions = DrawOptions()) = 0;
 
   /*
+   * This takes a source pattern and a mask, and composites the source pattern
+   * onto the destination surface using the alpha channel of the mask pattern
+   * as a mask for the operation.
+   *
+   * aSource Source pattern
+   * aMask Mask pattern
+   * aOptions Drawing options
+   */
+  virtual void Mask(const Pattern &aSource,
+                    const Pattern &aMask,
+                    const DrawOptions &aOptions = DrawOptions()) = 0;
+
+  /*
    * Push a clip to the DrawTarget.
    *
    * aPath The path to clip to
    */
   virtual void PushClip(const Path *aPath) = 0;
 
+  /*
+   * Push an axis-aligned rectangular clip to the DrawTarget. This rectangle
+   * is specified in user space.
+   *
+   * aRect The rect to clip to
+   */
+  virtual void PushClipRect(const Rect &aRect) = 0;
+
   /* Pop a clip from the DrawTarget. A pop without a corresponding push will
    * be ignored.
    */
   virtual void PopClip() = 0;
 
   /*
    * Create a SourceSurface optimized for use with this DrawTarget from
    * existing bitmap data in memory.
    *
    * The SourceSurface does not take ownership of aData, and may be freed at any time.
    */
   virtual TemporaryRef<SourceSurface> CreateSourceSurfaceFromData(unsigned char *aData,
-                                                            const IntSize &aSize,
-                                                            int32_t aStride,
-                                                            SurfaceFormat aFormat) const = 0;
+                                                                  const IntSize &aSize,
+                                                                  int32_t aStride,
+                                                                  SurfaceFormat aFormat) const = 0;
 
   /*
    * Create a SourceSurface optimized for use with this DrawTarget from
    * an arbitrary other SourceSurface. This may return aSourceSurface or some
    * other existing surface.
    */
   virtual TemporaryRef<SourceSurface> OptimizeSourceSurface(SourceSurface *aSurface) const = 0;
 
@@ -661,18 +715,23 @@ public:
 
   /*
    * Create a GradientStops object that holds information about a set of
    * gradient stops, this object is required for linear or radial gradient
    * patterns to represent the color stops in the gradient.
    *
    * aStops An array of gradient stops
    * aNumStops Number of stops in the array aStops
+   * aExtendNone This describes how to extend the stop color outside of the
+   *             gradient area.
    */
-  virtual TemporaryRef<GradientStops> CreateGradientStops(GradientStop *aStops, uint32_t aNumStops) const = 0;
+  virtual TemporaryRef<GradientStops>
+    CreateGradientStops(GradientStop *aStops,
+                        uint32_t aNumStops,
+                        ExtendMode aExtendMode = EXTEND_CLAMP) const = 0;
 
   const Matrix &GetTransform() const { return mTransform; }
 
   /*
    * Set a transform on the surface, this transform is applied at drawing time
    * to both the mask and source of the operation.
    */
   virtual void SetTransform(const Matrix &aTransform)
@@ -690,22 +749,44 @@ protected:
   bool mTransformDirty : 1;
 
   SurfaceFormat mFormat;
 };
 
 class Factory
 {
 public:
-#ifdef USE_CAIRO
   static TemporaryRef<DrawTarget> CreateDrawTargetForCairoSurface(cairo_surface_t* aSurface);
-#endif
+
+  static TemporaryRef<DrawTarget>
+    CreateDrawTarget(BackendType aBackend, const IntSize &aSize, SurfaceFormat aFormat);
+  
+  static TemporaryRef<DrawTarget>
+    CreateDrawTargetForData(BackendType aBackend, unsigned char* aData, const IntSize &aSize, int32_t aStride, SurfaceFormat aFormat);
+
+  static TemporaryRef<ScaledFont>
+    CreateScaledFontForNativeFont(const NativeFont &aNativeFont, Float aSize);
 
-  static TemporaryRef<DrawTarget> CreateDrawTarget(BackendType aBackend, const IntSize &aSize, SurfaceFormat aFormat);
-  static TemporaryRef<ScaledFont> CreateScaledFontForNativeFont(const NativeFont &aNativeFont, Float aSize);
+  /*
+   * This creates a simple data source surface for a certain size. It allocates
+   * new memory for the surface. This memory is freed when the surface is
+   * destroyed.
+   */
+  static TemporaryRef<DataSourceSurface>
+    CreateDataSourceSurface(const IntSize &aSize, SurfaceFormat aFormat);
+  
+  /*
+   * This creates a simple data source surface for some existing data. It will
+   * wrap this data and the data for this source surface. The caller is
+   * responsible for deallocating the memory only after destruction of the
+   * surface.
+   */
+  static TemporaryRef<DataSourceSurface>
+    CreateDataSourceSurfaceFromData(unsigned char *aData, int32_t aStride,
+                                    const IntSize &aSize, SurfaceFormat aFormat);
 
 #ifdef WIN32
   static TemporaryRef<DrawTarget> CreateDrawTargetForD3D10Texture(ID3D10Texture2D *aTexture, SurfaceFormat aFormat);
   static void SetDirect3D10Device(ID3D10Device1 *aDevice);
   static ID3D10Device1 *GetDirect3D10Device();
 
 private:
   static ID3D10Device1 *mD3D10Device;
--- a/gfx/2d/DrawTargetCairo.h
+++ b/gfx/2d/DrawTargetCairo.h
@@ -101,34 +101,39 @@ public:
                     const DrawOptions &aOptions = DrawOptions())
   { return; }
 
   virtual void FillGlyphs(ScaledFont *aFont,
                           const GlyphBuffer &aBuffer,
                           const Pattern &aPattern,
                           const DrawOptions &aOptions)
   { return; }
+  virtual void Mask(const Pattern &aSource,
+                    const Pattern &aMask,
+                    const DrawOptions &aOptions = DrawOptions())
+  { return; }
 
   virtual void PushClip(const Path *aPath) { }
+  virtual void PushClipRect(const Rect &aRect) { }
   virtual void PopClip() { }
 
   virtual TemporaryRef<PathBuilder> CreatePathBuilder(FillRule aFillRule = FILL_WINDING) const { return NULL; }
 
   virtual TemporaryRef<SourceSurface> CreateSourceSurfaceFromData(unsigned char *aData,
                                                             const IntSize &aSize,
                                                             int32_t aStride,
                                                             SurfaceFormat aFormat) const;
   virtual TemporaryRef<SourceSurface> OptimizeSourceSurface(SourceSurface *aSurface) const;
   virtual TemporaryRef<SourceSurface>
     CreateSourceSurfaceFromNativeSurface(const NativeSurface &aSurface) const;
   virtual TemporaryRef<DrawTarget>
     CreateSimilarDrawTarget(const IntSize &aSize, SurfaceFormat aFormat) const
   { return NULL; }
 
-  virtual TemporaryRef<GradientStops> CreateGradientStops(GradientStop *aStops, uint32_t aNumStops) const
+  virtual TemporaryRef<GradientStops> CreateGradientStops(GradientStop *aStops, uint32_t aNumStops, ExtendMode aExtendMode = EXTEND_CLAMP) const
   { return NULL; }
 
   virtual void *GetNativeSurface(NativeSurfaceType aType)
   { return NULL; }
 
   virtual void SetTransform(const Matrix& aTransform);
 
   bool Init(cairo_surface_t* aSurface);
--- a/gfx/2d/DrawTargetD2D.cpp
+++ b/gfx/2d/DrawTargetD2D.cpp
@@ -263,16 +263,18 @@ DrawTargetD2D::DrawSurface(SourceSurface
                            const DrawOptions &aOptions)
 {
   RefPtr<ID2D1Bitmap> bitmap;
 
   ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, ColorPattern(Color()));
   
   PrepareForDrawing(rt);
 
+  rt->SetAntialiasMode(D2DAAMode(aOptions.mAntialiasMode));
+
   Rect srcRect = aSource;
 
   switch (aSurface->GetType()) {
 
   case SURFACE_D2D1_BITMAP:
     {
       SourceSurfaceD2D *srcSurf = static_cast<SourceSurfaceD2D*>(aSurface);
       bitmap = srcSurf->GetBitmap();
@@ -748,16 +750,18 @@ void
 DrawTargetD2D::FillRect(const Rect &aRect,
                         const Pattern &aPattern,
                         const DrawOptions &aOptions)
 {
   ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern);
 
   PrepareForDrawing(rt);
 
+  rt->SetAntialiasMode(D2DAAMode(aOptions.mAntialiasMode));
+
   RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha);
 
   if (brush) {
     rt->FillRectangle(D2DRect(aRect), brush);
   }
 
   FinalizeRTForOperation(aOptions.mCompositionOp, aPattern, aRect);
 }
@@ -767,16 +771,18 @@ DrawTargetD2D::StrokeRect(const Rect &aR
                           const Pattern &aPattern,
                           const StrokeOptions &aStrokeOptions,
                           const DrawOptions &aOptions)
 {
   ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern);
 
   PrepareForDrawing(rt);
 
+  rt->SetAntialiasMode(D2DAAMode(aOptions.mAntialiasMode));
+
   RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha);
 
   RefPtr<ID2D1StrokeStyle> strokeStyle = CreateStrokeStyleForOptions(aStrokeOptions);
 
   if (brush && strokeStyle) {
     rt->DrawRectangle(D2DRect(aRect), brush, aStrokeOptions.mLineWidth, strokeStyle);
   }
 
@@ -789,16 +795,18 @@ DrawTargetD2D::StrokeLine(const Point &a
                           const Pattern &aPattern,
                           const StrokeOptions &aStrokeOptions,
                           const DrawOptions &aOptions)
 {
   ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern);
 
   PrepareForDrawing(rt);
 
+  rt->SetAntialiasMode(D2DAAMode(aOptions.mAntialiasMode));
+
   RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha);
 
   RefPtr<ID2D1StrokeStyle> strokeStyle = CreateStrokeStyleForOptions(aStrokeOptions);
 
   if (brush && strokeStyle) {
     rt->DrawLine(D2DPoint(aStart), D2DPoint(aEnd), brush, aStrokeOptions.mLineWidth, strokeStyle);
   }
 
@@ -817,16 +825,18 @@ DrawTargetD2D::Stroke(const Path *aPath,
   }
 
   const PathD2D *d2dPath = static_cast<const PathD2D*>(aPath);
 
   ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern);
 
   PrepareForDrawing(rt);
 
+  rt->SetAntialiasMode(D2DAAMode(aOptions.mAntialiasMode));
+
   RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha);
 
   RefPtr<ID2D1StrokeStyle> strokeStyle = CreateStrokeStyleForOptions(aStrokeOptions);
 
   if (brush && strokeStyle) {
     rt->DrawGeometry(d2dPath->mGeometry, brush, aStrokeOptions.mLineWidth, strokeStyle);
   }
 
@@ -844,16 +854,18 @@ DrawTargetD2D::Fill(const Path *aPath,
   }
 
   const PathD2D *d2dPath = static_cast<const PathD2D*>(aPath);
 
   ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aPattern);
 
   PrepareForDrawing(rt);
 
+  rt->SetAntialiasMode(D2DAAMode(aOptions.mAntialiasMode));
+
   RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aPattern, aOptions.mAlpha);
 
   if (brush) {
     rt->FillGeometry(d2dPath->mGeometry, brush);
   }
 
   Rect bounds;
   if (aOptions.mCompositionOp != OP_OVER) {
@@ -912,16 +924,46 @@ DrawTargetD2D::FillGlyphs(ScaledFont *aF
   if (brush) {
     rt->DrawGlyphRun(D2D1::Point2F(), &glyphRun, brush);
   }
 
   FinalizeRTForOperation(aOptions.mCompositionOp, aPattern, Rect(0, 0, (Float)mSize.width, (Float)mSize.height));
 }
 
 void
+DrawTargetD2D::Mask(const Pattern &aSource,
+                    const Pattern &aMask,
+                    const DrawOptions &aOptions)
+{
+  ID2D1RenderTarget *rt = GetRTForOperation(aOptions.mCompositionOp, aSource);
+  
+  PrepareForDrawing(rt);
+
+  RefPtr<ID2D1Brush> brush = CreateBrushForPattern(aSource, aOptions.mAlpha);
+  RefPtr<ID2D1Brush> maskBrush = CreateBrushForPattern(aMask, 1.0f);
+
+  RefPtr<ID2D1Layer> layer;
+  rt->CreateLayer(byRef(layer));
+  rt->PushLayer(D2D1::LayerParameters(D2D1::InfiniteRect(), NULL,
+                                      D2D1_ANTIALIAS_MODE_PER_PRIMITIVE,
+                                      D2D1::IdentityMatrix(),
+                                      1.0f, maskBrush),
+                layer);
+
+  Rect rect(0, 0, mSize.width, mSize.height);
+  Matrix mat = mTransform;
+  mat.Invert();
+  
+  rt->FillRectangle(D2DRect(mat.TransformBounds(rect)), brush);
+  rt->PopLayer();
+
+  FinalizeRTForOperation(aOptions.mCompositionOp, aSource, Rect(0, 0, (Float)mSize.width, (Float)mSize.height));
+}
+
+void
 DrawTargetD2D::PushClip(const Path *aPath)
 {
   if (aPath->GetBackendType() != BACKEND_DIRECT2D) {
     gfxDebug() << *this << ": Ignoring clipping call for incompatible path.";
     return;
   }
 
   RefPtr<PathD2D> pathD2D = static_cast<PathD2D*>(const_cast<Path*>(aPath));
@@ -953,34 +995,67 @@ DrawTargetD2D::PushClip(const Path *aPat
     mRT->PushLayer(D2D1::LayerParameters(D2D1::InfiniteRect(), pathD2D->mGeometry,
                                          D2D1_ANTIALIAS_MODE_PER_PRIMITIVE,
                                          clip.mTransform, 1.0f, NULL,
                                          options), layer);
   }
 }
 
 void
+DrawTargetD2D::PushClipRect(const Rect &aRect)
+{
+  if (!mTransform.IsRectilinear()) {
+    // Whoops, this isn't a rectangle in device space, Direct2D will not deal
+    // with this transform the way we want it to.
+    // See remarks: http://msdn.microsoft.com/en-us/library/dd316860%28VS.85%29.aspx
+
+    RefPtr<PathBuilder> pathBuilder = CreatePathBuilder();
+    pathBuilder->MoveTo(aRect.TopLeft());
+    pathBuilder->LineTo(aRect.TopRight());
+    pathBuilder->LineTo(aRect.BottomRight());
+    pathBuilder->LineTo(aRect.BottomLeft());
+    pathBuilder->Close();
+    RefPtr<Path> path = pathBuilder->Finish();
+    return PushClip(path);
+  }
+
+  PushedClip clip;
+  // Do not store the transform, just store the device space rectangle directly.
+  clip.mBounds = D2DRect(mTransform.TransformBounds(aRect));
+
+  mPushedClips.push_back(clip);
+
+  mRT->SetTransform(D2D1::IdentityMatrix());
+  if (mClipsArePushed) {
+    mRT->PushAxisAlignedClip(clip.mBounds, D2D1_ANTIALIAS_MODE_PER_PRIMITIVE);
+  }
+}
+
+void
 DrawTargetD2D::PopClip()
 {
   if (mClipsArePushed) {
-    mRT->PopLayer();
+    if (mPushedClips.back().mLayer) {
+      mRT->PopLayer();
+    } else {
+      mRT->PopAxisAlignedClip();
+    }
   }
   mPushedClips.pop_back();
 }
 
 TemporaryRef<SourceSurface> 
 DrawTargetD2D::CreateSourceSurfaceFromData(unsigned char *aData,
                                            const IntSize &aSize,
                                            int32_t aStride,
                                            SurfaceFormat aFormat) const
 {
   RefPtr<SourceSurfaceD2D> newSurf = new SourceSurfaceD2D();
 
   if (!newSurf->InitFromData(aData, aSize, aStride, aFormat, mRT)) {
-    gfxDebug() << *this << ": Failure to create source surface from data. Size: " << aSize;
     return NULL;
   }
 
   return newSurf;
 }
 
 TemporaryRef<SourceSurface> 
 DrawTargetD2D::OptimizeSourceSurface(SourceSurface *aSurface) const
@@ -1044,28 +1119,32 @@ DrawTargetD2D::CreatePathBuilder(FillRul
   if (aFillRule == FILL_WINDING) {
     sink->SetFillMode(D2D1_FILL_MODE_WINDING);
   }
 
   return new PathBuilderD2D(sink, path, aFillRule);
 }
 
 TemporaryRef<GradientStops>
-DrawTargetD2D::CreateGradientStops(GradientStop *rawStops, uint32_t aNumStops) const
+DrawTargetD2D::CreateGradientStops(GradientStop *rawStops, uint32_t aNumStops, ExtendMode aExtendMode) const
 {
   D2D1_GRADIENT_STOP *stops = new D2D1_GRADIENT_STOP[aNumStops];
 
   for (uint32_t i = 0; i < aNumStops; i++) {
     stops[i].position = rawStops[i].offset;
     stops[i].color = D2DColor(rawStops[i].color);
   }
 
   RefPtr<ID2D1GradientStopCollection> stopCollection;
 
-  HRESULT hr = mRT->CreateGradientStopCollection(stops, aNumStops, byRef(stopCollection));
+  HRESULT hr =
+    mRT->CreateGradientStopCollection(stops, aNumStops,
+                                      D2D1_GAMMA_2_2, D2DExtend(aExtendMode),
+                                      byRef(stopCollection));
+  delete [] stops;
 
   if (FAILED(hr)) {
     gfxWarning() << "Failed to create GradientStopCollection. Code: " << hr;
     return NULL;
   }
 
   return new GradientStopsD2D(stopCollection);
 }
@@ -1092,30 +1171,35 @@ DrawTargetD2D::Init(const IntSize &aSize
   mFormat = aFormat;
 
   if (!Factory::GetDirect3D10Device()) {
     gfxDebug() << "Failed to Init Direct2D DrawTarget (No D3D10 Device set.)";
     return false;
   }
   mDevice = Factory::GetDirect3D10Device();
 
-  CD3D10_TEXTURE2D_DESC desc(DXGI_FORMAT_B8G8R8A8_UNORM,
+  CD3D10_TEXTURE2D_DESC desc(DXGIFormat(aFormat),
                              mSize.width,
                              mSize.height,
                              1, 1);
   desc.BindFlags = D3D10_BIND_RENDER_TARGET | D3D10_BIND_SHADER_RESOURCE;
 
   hr = mDevice->CreateTexture2D(&desc, NULL, byRef(mTexture));
 
   if (FAILED(hr)) {
     gfxDebug() << "Failed to init Direct2D DrawTarget. Size: " << mSize << " Code: " << hr;
     return false;
   }
 
-  return InitD2DRenderTarget();
+  if (!InitD2DRenderTarget()) {
+    return false;
+  }
+
+  mRT->Clear(D2D1::ColorF(0, 0));
+  return true;
 }
 
 bool
 DrawTargetD2D::Init(ID3D10Texture2D *aTexture, SurfaceFormat aFormat)
 {
   HRESULT hr;
 
   mTexture = aTexture;
@@ -1225,49 +1309,52 @@ DrawTargetD2D::InitD2DRenderTarget()
   mRT = CreateRTForTexture(mTexture);
 
   if (!mRT) {
     return false;
   }
 
   mRT->BeginDraw();
 
-  mRT->Clear(D2D1::ColorF(0, 0));
-
   if (mFormat == FORMAT_B8G8R8X8) {
     mRT->SetTextAntialiasMode(D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE);
   }
 
   return InitD3D10Data();
 }
 
 void
 DrawTargetD2D::PrepareForDrawing(ID2D1RenderTarget *aRT)
 {
   if (!mClipsArePushed || aRT == mTempRT) {
     if (mPushedClips.size()) {
       // The transform of clips is relative to the world matrix, since we use the total
       // transform for the clips, make the world matrix identity.
-      mRT->SetTransform(D2D1::IdentityMatrix());
-      mTransformDirty = true;
+      aRT->SetTransform(D2D1::IdentityMatrix());
+      if (aRT == mRT) {
+        mTransformDirty = true;
+        mClipsArePushed = true;
+      }
       for (std::vector<PushedClip>::iterator iter = mPushedClips.begin();
-           iter != mPushedClips.end(); iter++) {
+            iter != mPushedClips.end(); iter++) {
         D2D1_LAYER_OPTIONS options = D2D1_LAYER_OPTIONS_NONE;
+        if (iter->mLayer) {
+          D2D1_LAYER_OPTIONS options = D2D1_LAYER_OPTIONS_NONE;
 
-        if (mFormat == FORMAT_B8G8R8X8) {
-          options = D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE;
+          if (mFormat == FORMAT_B8G8R8X8) {
+            options = D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE;
+          }
+
+          aRT->PushLayer(D2D1::LayerParameters(D2D1::InfiniteRect(), iter->mPath->mGeometry,
+                                                D2D1_ANTIALIAS_MODE_PER_PRIMITIVE,
+                                                iter->mTransform, 1.0f, NULL,
+                                                options), iter->mLayer);
+        } else {
+          aRT->PushAxisAlignedClip(iter->mBounds, D2D1_ANTIALIAS_MODE_PER_PRIMITIVE);
         }
-
-        aRT->PushLayer(D2D1::LayerParameters(D2D1::InfiniteRect(), iter->mPath->mGeometry,
-                                             D2D1_ANTIALIAS_MODE_PER_PRIMITIVE,
-                                             iter->mTransform, 1.0f, NULL,
-                                             options), iter->mLayer);
-      }
-      if (aRT == mRT) {
-        mClipsArePushed = true;
       }
     }
   }
   FlushTransformToRT();
   MarkChanged();
 
   if (aRT == mTempRT) {
     mTempRT->SetTransform(D2DMatrix(mTransform));
@@ -1416,18 +1503,22 @@ DrawTargetD2D::FinalizeRTForOperation(Co
   if (aOperator == OP_OVER && !IsPatternSupportedByD2D(aPattern)) {
     return;
   }
 
   if (!mTempRT) {
     return;
   }
 
-  for (unsigned int i = 0; i < mPushedClips.size(); i++) {
-    mTempRT->PopLayer();
+  for (int i = mPushedClips.size() - 1; i >= 0; i--) {
+    if (mPushedClips[i].mLayer) {
+      mTempRT->PopLayer();
+    } else {
+      mTempRT->PopAxisAlignedClip();
+    }
   }
 
   mRT->Flush();
   mTempRT->Flush();
 
   AutoSaveRestoreClippedOut restoreClippedOut(this);
 
   bool needsWriteBack =
@@ -1530,17 +1621,17 @@ DrawTargetD2D::CreateRTForTexture(ID3D10
     return NULL;
   }
 
   D3D10_TEXTURE2D_DESC desc;
   aTexture->GetDesc(&desc);
 
   D2D1_ALPHA_MODE alphaMode = D2D1_ALPHA_MODE_PREMULTIPLIED;
 
-  if (mFormat == FORMAT_B8G8R8X8) {
+  if (mFormat == FORMAT_B8G8R8X8 && aTexture == mTexture) {
     alphaMode = D2D1_ALPHA_MODE_IGNORE;
   }
 
   D2D1_RENDER_TARGET_PROPERTIES props =
     D2D1::RenderTargetProperties(D2D1_RENDER_TARGET_TYPE_DEFAULT, D2D1::PixelFormat(desc.Format, alphaMode));
   hr = factory()->CreateDxgiSurfaceRenderTarget(surface, props, byRef(rt));
 
   if (FAILED(hr)) {
@@ -1587,18 +1678,22 @@ DrawTargetD2D::EnsureViews()
     gfxWarning() << *this << "Failed to create rendertarget view for temp texture. Code: " << hr;
   }
 }
 
 void
 DrawTargetD2D::PopAllClips()
 {
   if (mClipsArePushed) {
-    for (unsigned int i = 0; i < mPushedClips.size(); i++) {
-      mRT->PopLayer();
+    for (int i = mPushedClips.size() - 1; i >= 0; i--) {
+      if (mPushedClips[i].mLayer) {
+        mRT->PopLayer();
+      } else {
+        mRT->PopAxisAlignedClip();
+      }
     }
   
     mClipsArePushed = false;
   }
 }
 
 TemporaryRef<ID2D1Brush>
 DrawTargetD2D::CreateBrushForPattern(const Pattern &aPattern, Float aAlpha)
@@ -1624,19 +1719,30 @@ DrawTargetD2D::CreateBrushForPattern(con
 
     GradientStopsD2D *stops = static_cast<GradientStopsD2D*>(pat->mStops.get());
 
     if (!stops) {
       gfxDebug() << "No stops specified for gradient pattern.";
       return NULL;
     }
 
+    if (pat->mBegin == pat->mEnd) {
+      RefPtr<ID2D1SolidColorBrush> colBrush;
+      uint32_t stopCount = stops->mStopCollection->GetGradientStopCount();
+      vector<D2D1_GRADIENT_STOP> d2dStops(stopCount);
+      stops->mStopCollection->GetGradientStops(&d2dStops.front(), stopCount);
+      mRT->CreateSolidColorBrush(d2dStops.back().color,
+                                 D2D1::BrushProperties(aAlpha),
+                                 byRef(colBrush));
+      return colBrush;
+    }
+
     mRT->CreateLinearGradientBrush(D2D1::LinearGradientBrushProperties(D2DPoint(pat->mBegin),
                                                                        D2DPoint(pat->mEnd)),
-                                   D2D1::BrushProperties(aAlpha),
+                                   D2D1::BrushProperties(aAlpha, D2DMatrix(pat->mMatrix)),
                                    stops->mStopCollection,
                                    byRef(gradBrush));
     return gradBrush;
   } else if (aPattern.GetType() == PATTERN_RADIAL_GRADIENT) {
     RefPtr<ID2D1RadialGradientBrush> gradBrush;
     const RadialGradientPattern *pat =
       static_cast<const RadialGradientPattern*>(&aPattern);
 
@@ -1647,71 +1753,66 @@ DrawTargetD2D::CreateBrushForPattern(con
       return NULL;
     }
 
     // This will not be a complex radial gradient brush.
     mRT->CreateRadialGradientBrush(
       D2D1::RadialGradientBrushProperties(D2DPoint(pat->mCenter1),
                                           D2D1::Point2F(),
                                           pat->mRadius2, pat->mRadius2),
-      D2D1::BrushProperties(aAlpha),
+      D2D1::BrushProperties(aAlpha, D2DMatrix(pat->mMatrix)),
       stops->mStopCollection,
       byRef(gradBrush));
 
     return gradBrush;
   } else if (aPattern.GetType() == PATTERN_SURFACE) {
     RefPtr<ID2D1BitmapBrush> bmBrush;
     const SurfacePattern *pat =
       static_cast<const SurfacePattern*>(&aPattern);
 
     if (!pat->mSurface) {
       gfxDebug() << "No source surface specified for surface pattern";
       return NULL;
     }
 
     RefPtr<ID2D1Bitmap> bitmap;
+
+    Matrix mat = pat->mMatrix;
     
     switch (pat->mSurface->GetType()) {
     case SURFACE_D2D1_BITMAP:
       {
         SourceSurfaceD2D *surf = static_cast<SourceSurfaceD2D*>(pat->mSurface.get());
 
         bitmap = surf->mBitmap;
 
         if (!bitmap) {
-          gfxDebug() << "Source surface used for pattern too large!";
-          return NULL;
+          bitmap = CreatePartialBitmapForSurface(surf, mat);
+
+          if (!bitmap) {
+            return NULL;
+          }
         }
       }
       break;
     case SURFACE_D2D1_DRAWTARGET:
       {
         SourceSurfaceD2DTarget *surf =
           static_cast<SourceSurfaceD2DTarget*>(pat->mSurface.get());
         bitmap = surf->GetBitmap(mRT);
         AddDependencyOnSource(surf);
       }
       break;
     }
-
-    D2D1_EXTEND_MODE extend = D2D1_EXTEND_MODE_CLAMP;
-    switch (pat->mExtendMode) {
-    case EXTEND_WRAP:
-      extend = D2D1_EXTEND_MODE_WRAP;
-      break;
-    case EXTEND_MIRROR:
-      extend = D2D1_EXTEND_MODE_MIRROR;
-      break;
-    }
-
+    
     mRT->CreateBitmapBrush(bitmap,
-                           D2D1::BitmapBrushProperties(extend,
-                                                       extend,
+                           D2D1::BitmapBrushProperties(D2DExtend(pat->mExtendMode),
+                                                       D2DExtend(pat->mExtendMode),
                                                        D2DFilter(pat->mFilter)),
-                           D2D1::BrushProperties(aAlpha),
+                           D2D1::BrushProperties(aAlpha, D2DMatrix(mat)),
                            byRef(bmBrush));
 
     return bmBrush;
   }
 
   gfxWarning() << "Invalid pattern type detected.";
   return NULL;
 }
@@ -1850,16 +1951,69 @@ DrawTargetD2D::CreateGradientTexture(con
   data.pSysMem = &textureData.front();
 
   RefPtr<ID3D10Texture1D> tex;
   mDevice->CreateTexture1D(&desc, &data, byRef(tex));
 
   return tex;
 }
 
+TemporaryRef<ID2D1Bitmap>
+DrawTargetD2D::CreatePartialBitmapForSurface(SourceSurfaceD2D *aSurface, Matrix &aMatrix)
+{
+  RefPtr<ID2D1Bitmap> bitmap;
+
+  // This is where things get complicated. The source surface was
+  // created for a surface that was too large to fit in a texture.
+  // We'll need to figure out if we can work with a partial upload
+  // or downsample in software.
+
+  Matrix transform = mTransform;
+  transform = aMatrix * transform;
+  if (!transform.Invert()) {
+    // Singular transform, nothing to be drawn.
+    return NULL;
+  }
+
+  Rect rect(0, 0, mSize.width, mSize.height);
+
+  // Calculate the rectangle of the source mapped to our surface.
+  rect = transform.TransformBounds(rect);
+  rect.RoundOut();
+
+  Rect uploadRect(0, 0, aSurface->mSize.width, aSurface->mSize.height);
+
+  // Calculate the rectangle on the source bitmap that touches our
+  // surface.
+  uploadRect = uploadRect.Intersect(rect);
+
+  if (uploadRect.width <= mRT->GetMaximumBitmapSize() &&
+      uploadRect.height <= mRT->GetMaximumBitmapSize()) {
+            
+    int Bpp = BytesPerPixel(aSurface->mFormat);
+    int stride = Bpp * aSurface->mSize.width;
+
+    // A partial upload will suffice.
+    mRT->CreateBitmap(D2D1::SizeU(uint32_t(uploadRect.width), uint32_t(uploadRect.height)),
+                      &aSurface->mRawData.front() + int(uploadRect.x) + int(uploadRect.y) * stride,
+                      stride,
+                      D2D1::BitmapProperties(D2DPixelFormat(aSurface->mFormat)),
+                      byRef(bitmap));
+
+    aMatrix.Translate(-uploadRect.x, -uploadRect.y);
+
+    return bitmap;
+  } else {
+    // XXX - FIX ME!!
+    MOZ_ASSERT(false);
+    gfxDebug() << "Source surface used for pattern too large!";
+    return NULL;
+  }
+}
+
 void
 DrawTargetD2D::SetupEffectForRadialGradient(const RadialGradientPattern *aPattern)
 {
   mPrivateData->mEffect->GetTechniqueByName("SampleRadialGradient")->GetPassByIndex(0)->Apply(0);
   mPrivateData->mEffect->GetVariableByName("MaskTexCoords")->AsVector()->
     SetFloatVector(ShaderConstantRectD3D10(0, 0, 1.0f, 1.0f));
 
   float dimensions[] = { float(mSize.width), float(mSize.height), 0, 0 };
@@ -1902,23 +2056,36 @@ DrawTargetD2D::SetupEffectForRadialGradi
                       invTransform._21, invTransform._22, 0, 0,
                       invTransform._31, invTransform._32, 1.0f, 0,
                       0, 0, 0, 1.0f };
 
   mPrivateData->mEffect->GetVariableByName("DeviceSpaceToUserSpace")->
     AsMatrix()->SetMatrix(matrix);
 
   float A = dc.x * dc.x + dc.y * dc.y - dr * dr;
+
+  uint32_t offset = 0;
+  switch (stops->mStopCollection->GetExtendMode()) {
+  case D2D1_EXTEND_MODE_WRAP:
+    offset = 1;
+    break;
+  case D2D1_EXTEND_MODE_MIRROR:
+    offset = 2;
+    break;
+  default:
+    gfxWarning() << "This shouldn't happen! Invalid extend mode for gradient stops.";
+  }
+
   if (A == 0) {
     mPrivateData->mEffect->GetTechniqueByName("SampleRadialGradient")->
-      GetPassByIndex(1)->Apply(0);
+      GetPassByIndex(offset * 2 + 1)->Apply(0);
   } else {
     mPrivateData->mEffect->GetVariableByName("A")->AsScalar()->SetFloat(A);
     mPrivateData->mEffect->GetTechniqueByName("SampleRadialGradient")->
-      GetPassByIndex(0)->Apply(0);
+      GetPassByIndex(offset * 2)->Apply(0);
   }
 }
 
 ID2D1Factory*
 DrawTargetD2D::factory()
 {
   if (mFactory) {
     return mFactory;
@@ -1931,17 +2098,17 @@ DrawTargetD2D::factory()
 
   if (!createD2DFactory) {
     gfxWarning() << "Failed to locate D2D1CreateFactory function.";
     return NULL;
   }
 
   D2D1_FACTORY_OPTIONS options;
 #ifdef _DEBUG
-  options.debugLevel = D2D1_DEBUG_LEVEL_NONE;
+  options.debugLevel = D2D1_DEBUG_LEVEL_WARNING;
 #else
   options.debugLevel = D2D1_DEBUG_LEVEL_NONE;
 #endif
 
   HRESULT hr = createD2DFactory(D2D1_FACTORY_TYPE_MULTI_THREADED,
                                 __uuidof(ID2D1Factory),
                                 &options,
                                 (void**)&mFactory);
--- a/gfx/2d/DrawTargetD2D.h
+++ b/gfx/2d/DrawTargetD2D.h
@@ -51,16 +51,17 @@
 #else
 #include <unordered_set>
 #endif
 
 namespace mozilla {
 namespace gfx {
 
 class SourceSurfaceD2DTarget;
+class SourceSurfaceD2D;
 class GradientStopsD2D;
 
 struct PrivateD3D10DataD2D
 {
   RefPtr<ID3D10Effect> mEffect;
   RefPtr<ID3D10InputLayout> mInputLayout;
   RefPtr<ID3D10Buffer> mVB;
   RefPtr<ID3D10BlendState> mBlendStates[OP_COUNT];
@@ -112,34 +113,41 @@ public:
                       const DrawOptions &aOptions = DrawOptions());
   virtual void Fill(const Path *aPath,
                     const Pattern &aPattern,
                     const DrawOptions &aOptions = DrawOptions());
   virtual void FillGlyphs(ScaledFont *aFont,
                           const GlyphBuffer &aBuffer,
                           const Pattern &aPattern,
                           const DrawOptions &aOptions = DrawOptions());
+  virtual void Mask(const Pattern &aSource,
+                    const Pattern &aMask,
+                    const DrawOptions &aOptions = DrawOptions());
   virtual void PushClip(const Path *aPath);
+  virtual void PushClipRect(const Rect &aRect);
   virtual void PopClip();
 
   virtual TemporaryRef<SourceSurface> CreateSourceSurfaceFromData(unsigned char *aData,
                                                             const IntSize &aSize,
                                                             int32_t aStride,
                                                             SurfaceFormat aFormat) const;
   virtual TemporaryRef<SourceSurface> OptimizeSourceSurface(SourceSurface *aSurface) const;
 
   virtual TemporaryRef<SourceSurface>
     CreateSourceSurfaceFromNativeSurface(const NativeSurface &aSurface) const;
   
   virtual TemporaryRef<DrawTarget>
     CreateSimilarDrawTarget(const IntSize &aSize, SurfaceFormat aFormat) const;
 
   virtual TemporaryRef<PathBuilder> CreatePathBuilder(FillRule aFillRule = FILL_WINDING) const;
 
-  virtual TemporaryRef<GradientStops> CreateGradientStops(GradientStop *aStops, uint32_t aNumStops) const;
+  virtual TemporaryRef<GradientStops>
+    CreateGradientStops(GradientStop *aStops,
+                        uint32_t aNumStops,
+                        ExtendMode aExtendMode = EXTEND_CLAMP) const;
 
   virtual void *GetNativeSurface(NativeSurfaceType aType);
 
   bool Init(const IntSize &aSize, SurfaceFormat aFormat);
   bool Init(ID3D10Texture2D *aTexture, SurfaceFormat aFormat);
   bool InitD3D10Data();
 
   static ID2D1Factory *factory();
@@ -181,16 +189,21 @@ private:
 
   TemporaryRef<ID2D1RenderTarget> CreateRTForTexture(ID3D10Texture2D *aTexture);
   TemporaryRef<ID2D1Geometry> GetClippedGeometry();
 
   TemporaryRef<ID2D1Brush> CreateBrushForPattern(const Pattern &aPattern, Float aAlpha = 1.0f);
 
   TemporaryRef<ID3D10Texture1D> CreateGradientTexture(const GradientStopsD2D *aStops);
 
+  // This creates a partially uploaded bitmap for a SourceSurfaceD2D that is
+  // too big to fit in a bitmap. It adjusts the passed Matrix to accomodate the
+  // partial upload.
+  TemporaryRef<ID2D1Bitmap> CreatePartialBitmapForSurface(SourceSurfaceD2D *aSurface, Matrix &aMatrix);
+
   void SetupEffectForRadialGradient(const RadialGradientPattern *aPattern);
 
   static const uint32_t test = 4;
 
   IntSize mSize;
 
   RefPtr<ID3D10Device1> mDevice;
   RefPtr<ID3D10Texture2D> mTexture;
--- a/gfx/2d/DrawTargetSkia.cpp
+++ b/gfx/2d/DrawTargetSkia.cpp
@@ -194,19 +194,19 @@ DrawTargetSkia::Snapshot()
 
 SkShader::TileMode
 ExtendModeToTileMode(ExtendMode aMode)
 {
   switch (aMode)
   {
     case EXTEND_CLAMP:
       return SkShader::kClamp_TileMode;
-    case EXTEND_WRAP:
+    case EXTEND_REPEAT:
       return SkShader::kRepeat_TileMode;
-    case EXTEND_MIRROR:
+    case EXTEND_REFLECT:
       return SkShader::kMirror_TileMode;
   }
   return SkShader::kClamp_TileMode;
 }
 
 struct AutoPaintSetup {
   AutoPaintSetup(SkCanvas *aCanvas, const DrawOptions& aOptions, const Pattern& aPattern)
     : mNeedsRestore(false), mAlpha(1.0)
@@ -666,17 +666,17 @@ DrawTargetSkia::PushClip(const Path *aPa
 
 void
 DrawTargetSkia::PopClip()
 {
   mCanvas->restore();
 }
 
 TemporaryRef<GradientStops>
-DrawTargetSkia::CreateGradientStops(GradientStop *aStops, uint32_t aNumStops) const
+DrawTargetSkia::CreateGradientStops(GradientStop *aStops, uint32_t aNumStops, ExtendMode aExtendMode) const
 {
   std::vector<GradientStop> stops;
   stops.resize(aNumStops);
   for (uint32_t i = 0; i < aNumStops; i++) {
     stops[i] = aStops[i];
   }
   std::stable_sort(stops.begin(), stops.end());
   
--- a/gfx/2d/DrawTargetSkia.h
+++ b/gfx/2d/DrawTargetSkia.h
@@ -94,29 +94,34 @@ public:
                       const DrawOptions &aOptions = DrawOptions());
   virtual void Fill(const Path *aPath,
                     const Pattern &aPattern,
                     const DrawOptions &aOptions = DrawOptions());
   virtual void FillGlyphs(ScaledFont *aFont,
                           const GlyphBuffer &aBuffer,
                           const Pattern &aPattern,
                           const DrawOptions &aOptions = DrawOptions());
+  virtual void Mask(const Pattern &aSource,
+                    const Pattern &aMask,
+                    const DrawOptions &aOptions = DrawOptions())
+  { return; }
   virtual void PushClip(const Path *aPath);
+  virtual void PushClipRect(const Rect &aRect) { }
   virtual void PopClip();
   virtual TemporaryRef<SourceSurface> CreateSourceSurfaceFromData(unsigned char *aData,
                                                             const IntSize &aSize,
                                                             int32_t aStride,
                                                             SurfaceFormat aFormat) const;
   virtual TemporaryRef<SourceSurface> OptimizeSourceSurface(SourceSurface *aSurface) const;
   virtual TemporaryRef<SourceSurface>
     CreateSourceSurfaceFromNativeSurface(const NativeSurface &aSurface) const;
   virtual TemporaryRef<DrawTarget>
     CreateSimilarDrawTarget(const IntSize &aSize, SurfaceFormat aFormat) const;
   virtual TemporaryRef<PathBuilder> CreatePathBuilder(FillRule aFillRule = FILL_WINDING) const;
-  virtual TemporaryRef<GradientStops> CreateGradientStops(GradientStop *aStops, uint32_t aNumStops) const;
+  virtual TemporaryRef<GradientStops> CreateGradientStops(GradientStop *aStops, uint32_t aNumStops, ExtendMode aExtendMode = EXTEND_CLAMP) const;
   virtual void SetTransform(const Matrix &aTransform);
 
   bool Init(const IntSize &aSize, SurfaceFormat aFormat);
   
   operator std::string() const {
     std::stringstream stream;
     stream << "DrawTargetSkia(" << this << ")";
     return stream.str();
--- a/gfx/2d/HelpersD2D.h
+++ b/gfx/2d/HelpersD2D.h
@@ -54,31 +54,46 @@ static inline D2D1_SIZE_U D2DIntSize(con
   return D2D1::SizeU(aSize.width, aSize.height);
 }
 
 static inline D2D1_RECT_F D2DRect(const Rect &aRect)
 {
   return D2D1::RectF(aRect.x, aRect.y, aRect.XMost(), aRect.YMost());
 }
 
+static inline D2D1_EXTEND_MODE D2DExtend(ExtendMode aExtendMode)
+{
+  D2D1_EXTEND_MODE extend = D2D1_EXTEND_MODE_CLAMP;
+  switch (aExtendMode) {
+  case EXTEND_REPEAT:
+    extend = D2D1_EXTEND_MODE_WRAP;
+    break;
+  case EXTEND_REFLECT:
+    extend = D2D1_EXTEND_MODE_MIRROR;
+    break;
+  }
+
+  return extend;
+}
+
 static inline D2D1_BITMAP_INTERPOLATION_MODE D2DFilter(const Filter &aFilter)
 {
   switch (aFilter) {
   case FILTER_POINT:
     return D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR;
   }
 
   return D2D1_BITMAP_INTERPOLATION_MODE_LINEAR;
 }
 
-static inline D2D1_ANTIALIAS_MODE D2DAAMode(const AntialiasMode &aMode)
+static inline D2D1_ANTIALIAS_MODE D2DAAMode(AntialiasMode aMode)
 {
   switch (aMode) {
   case AA_NONE:
-    D2D1_ANTIALIAS_MODE_ALIASED;
+    return D2D1_ANTIALIAS_MODE_ALIASED;
   }
 
   return D2D1_ANTIALIAS_MODE_PER_PRIMITIVE;
 }
 
 static inline D2D1_MATRIX_3X2_F D2DMatrix(const Matrix &aTransform)
 {
   return D2D1::Matrix3x2F(aTransform._11, aTransform._12,
@@ -136,16 +151,21 @@ static inline D2D1_ALPHA_MODE AlphaMode(
   switch (aFormat) {
   case FORMAT_B8G8R8X8:
     return D2D1_ALPHA_MODE_IGNORE;
   }
 
   return D2D1_ALPHA_MODE_PREMULTIPLIED;
 }
 
+static inline D2D1_PIXEL_FORMAT D2DPixelFormat(SurfaceFormat aFormat)
+{
+  return D2D1::PixelFormat(DXGIFormat(aFormat), AlphaMode(aFormat));
+}
+
 static inline int BytesPerPixel(SurfaceFormat aFormat)
 {
   switch (aFormat) {
   case FORMAT_A8:
     return 1;
   default:
     return 4;
   }
--- a/gfx/2d/Matrix.h
+++ b/gfx/2d/Matrix.h
@@ -138,14 +138,32 @@ public:
     resultMatrix._12 = this->_11 * aMatrix._12 + this->_12 * aMatrix._22;
     resultMatrix._21 = this->_21 * aMatrix._11 + this->_22 * aMatrix._21;
     resultMatrix._22 = this->_21 * aMatrix._12 + this->_22 * aMatrix._22;
     resultMatrix._31 = this->_31 * aMatrix._11 + this->_32 * aMatrix._21 + aMatrix._31;
     resultMatrix._32 = this->_31 * aMatrix._12 + this->_32 * aMatrix._22 + aMatrix._32;
 
     return resultMatrix;
   }
+
+  /* Returns true if the matrix is a rectilinear transformation (i.e.
+   * grid-aligned rectangles are transformed to grid-aligned rectangles)
+   */
+  bool IsRectilinear() {
+    if (FuzzyEqual(_12, 0) && FuzzyEqual(_21, 0)) {
+      return true;
+    } else if (FuzzyEqual(_22, 0) && FuzzyEqual(_11, 0)) {
+      return true;
+    }
+
+    return false;
+  }
+private:
+  static bool FuzzyEqual(Float aV1, Float aV2) {
+    // XXX - Check if fabs does the smart thing and just negates the sign bit.
+    return fabs(aV2 - aV1) < 1e-6;
+  }
 };
 
 }
 }
 
 #endif /* MOZILLA_GFX_MATRIX_H_ */
--- a/gfx/2d/ShadersD2D.fx
+++ b/gfx/2d/ShadersD2D.fx
@@ -55,16 +55,30 @@ Texture2D mask;
 
 sampler sSampler = sampler_state {
     Filter = MIN_MAG_MIP_LINEAR;
     Texture = tex;
     AddressU = Clamp;
     AddressV = Clamp;
 };
 
+sampler sWrapSampler = sampler_state {
+    Filter = MIN_MAG_MIP_LINEAR;
+    Texture = tex;
+    AddressU = Wrap;
+    AddressV = Wrap;
+};
+
+sampler sMirrorSampler = sampler_state {
+    Filter = MIN_MAG_MIP_LINEAR;
+    Texture = tex;
+    AddressU = Mirror;
+    AddressV = Mirror;
+};
+
 sampler sMaskSampler = sampler_state {
     Filter = MIN_MAG_MIP_LINEAR;
     Texture = mask;
     AddressU = Clamp;
     AddressV = Clamp;
 };
 
 sampler sShadowSampler = sampler_state {
@@ -137,17 +151,17 @@ float4 SampleTexturePS( VS_OUTPUT In) : 
     return tex.Sample(sSampler, In.TexCoord);
 };
 
 float4 SampleMaskTexturePS( VS_OUTPUT In) : SV_Target
 {
     return tex.Sample(sSampler, In.TexCoord) * mask.Sample(sMaskSampler, In.MaskTexCoord).a;
 };
 
-float4 SampleRadialGradientPS( VS_RADIAL_OUTPUT In) : SV_Target
+float4 SampleRadialGradientPS(VS_RADIAL_OUTPUT In, uniform sampler aSampler) : SV_Target
 {
     // Radial gradient painting is defined as the set of circles whose centers
     // are described by C(t) = (C2 - C1) * t + C1; with radii
     // R(t) = (R2 - R1) * t + R1; for R(t) > 0. This shader solves the
     // quadratic equation that arises when calculating t for pixel (x, y).
     //
     // A more extensive derrivation can be found in the pixman radial gradient
     // code.
@@ -173,25 +187,25 @@ float4 SampleRadialGradientPS( VS_RADIAL
     float2 isValid = step(float2(-radius1, -radius1), t * diff.z);
 
     if (max(isValid.x, isValid.y) <= 0) {
       return float4(0, 0, 0, 0);
     }
 
     float upper_t = lerp(t.y, t.x, isValid.x);
 
-    float4 output = tex.Sample(sSampler, float2(upper_t, 0.5));
+    float4 output = tex.Sample(aSampler, float2(upper_t, 0.5));
     // Premultiply
     output.rgb *= output.a;
     // Multiply the output color by the input mask for the operation.
     output *= mask.Sample(sMaskSampler, In.MaskTexCoord).a;
     return output;
 };
 
-float4 SampleRadialGradientA0PS( VS_RADIAL_OUTPUT In) : SV_Target
+float4 SampleRadialGradientA0PS( VS_RADIAL_OUTPUT In, uniform sampler aSampler ) : SV_Target
 {
     // This simpler shader is used for the degenerate case where A is 0,
     // i.e. we're actually solving a linear equation.
 
     float2 p = In.PixelCoord;
     float3 dp = float3(p - center1, radius1);
 
     // dpx * dcx + dpy * dcy + r * dr
@@ -200,17 +214,17 @@ float4 SampleRadialGradientA0PS( VS_RADI
     float C = pow(dp.x, 2) + pow(dp.y, 2) - pow(radius1, 2);
 
     float t = 0.5 * C / B;
 
     if (-radius1 >= t * diff.z) {
       return float4(0, 0, 0, 0);
     }
 
-    float4 output = tex.Sample(sSampler, float2(t, 0.5));
+    float4 output = tex.Sample(aSampler, float2(t, 0.5));
     // Premultiply
     output.rgb *= output.a;
     // Multiply the output color by the input mask for the operation.
     output *= mask.Sample(sMaskSampler, In.MaskTexCoord).a;
     return output;
 };
 
 float4 SampleShadowHPS( VS_OUTPUT In) : SV_Target
@@ -272,29 +286,57 @@ technique10 SampleTexture
         SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleTextureVS()));
         SetGeometryShader(NULL);
         SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleTexturePS()));
     }
 }
 
 technique10 SampleRadialGradient
 {
-    pass P0
+    pass APos
+    {
+        SetRasterizerState(TextureRast);
+        SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleRadialVS()));
+        SetGeometryShader(NULL);
+        SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientPS( sSampler )));
+    }
+    pass A0
+    {
+        SetRasterizerState(TextureRast);
+        SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleRadialVS()));
+        SetGeometryShader(NULL);
+        SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientA0PS( sSampler )));
+    }
+    pass APosWrap
     {
         SetRasterizerState(TextureRast);
         SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleRadialVS()));
         SetGeometryShader(NULL);
-        SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientPS()));
+        SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientPS( sWrapSampler )));
     }
-    pass P1
+    pass A0Wrap
     {
         SetRasterizerState(TextureRast);
         SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleRadialVS()));
         SetGeometryShader(NULL);
-        SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientA0PS()));
+        SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientA0PS( sWrapSampler )));
+    }
+    pass APosMirror
+    {
+        SetRasterizerState(TextureRast);
+        SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleRadialVS()));
+        SetGeometryShader(NULL);
+        SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientPS( sMirrorSampler )));
+    }
+    pass A0Mirror
+    {
+        SetRasterizerState(TextureRast);
+        SetVertexShader(CompileShader(vs_4_0_level_9_3, SampleRadialVS()));
+        SetGeometryShader(NULL);
+        SetPixelShader(CompileShader(ps_4_0_level_9_3, SampleRadialGradientA0PS( sMirrorSampler )));
     }
 }
 
 technique10 SampleMaskedTexture
 {
     pass P0
     {
         SetRasterizerState(TextureRast);
--- a/gfx/2d/ShadersD2D.h
+++ b/gfx/2d/ShadersD2D.h
@@ -27,27 +27,41 @@ cbuffer cb2
     float3  diff;                       // Offset:   64, size:   12
     float2  center1;                    // Offset:   80, size:    8
     float   A;                          // Offset:   88, size:    4
     float   radius1;                    // Offset:   92, size:    4
     float   sq_radius1;                 // Offset:   96, size:    4
 }
 
 //
-// 8 local object(s)
+// 10 local object(s)
 //
 Texture2D tex;
 Texture2D mask;
 SamplerState sSampler
 {
     Filter   = uint(MIN_MAG_MIP_LINEAR /* 21 */);
     Texture  = tex;
     AddressU = uint(CLAMP /* 3 */);
     AddressV = uint(CLAMP /* 3 */);
 };
+SamplerState sWrapSampler
+{
+    Filter   = uint(MIN_MAG_MIP_LINEAR /* 21 */);
+    Texture  = tex;
+    AddressU = uint(WRAP /* 1 */);
+    AddressV = uint(WRAP /* 1 */);
+};
+SamplerState sMirrorSampler
+{
+    Filter   = uint(MIN_MAG_MIP_LINEAR /* 21 */);
+    Texture  = tex;
+    AddressU = uint(MIRROR /* 2 */);
+    AddressV = uint(MIRROR /* 2 */);
+};
 SamplerState sMaskSampler
 {
     Filter   = uint(MIN_MAG_MIP_LINEAR /* 21 */);
     Texture  = mask;
     AddressU = uint(CLAMP /* 3 */);
     AddressV = uint(CLAMP /* 3 */);
 };
 SamplerState sShadowSampler
@@ -227,17 +241,17 @@ technique10 SampleTexture
                     
         };
     }
 
 }
 
 technique10 SampleRadialGradient
 {
-    pass P0
+    pass APos
     {
         RasterizerState = TextureRast;
         VertexShader = asm {
             //
             // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
             //
             //
             // Buffer Definitions: 
@@ -495,17 +509,17 @@ technique10 SampleRadialGradient
             sample r0.xyzw, v1.xyxx, t1.xyzw, s1
             mul o0.xyzw, r0.wwww, r2.xyzw
             ret 
             // Approximately 33 instruction slots used
                     
         };
     }
 
-    pass P1
+    pass A0
     {
         RasterizerState = TextureRast;
         VertexShader = asm {
             //
             // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
             //
             //
             // Buffer Definitions: 
@@ -738,16 +752,1038 @@ technique10 SampleRadialGradient
             sample r0.xyzw, v1.xyxx, t1.xyzw, s1
             mul o0.xyzw, r0.wwww, r1.xyzw
             ret 
             // Approximately 19 instruction slots used
                     
         };
     }
 
+    pass APosWrap
+    {
+        RasterizerState = TextureRast;
+        VertexShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer cb0
+            // {
+            //
+            //   float4 QuadDesc;                   // Offset:    0 Size:    16
+            //   float4 TexCoords;                  // Offset:   16 Size:    16 [unused]
+            //   float4 MaskTexCoords;              // Offset:   32 Size:    16
+            //
+            // }
+            //
+            // cbuffer cb2
+            // {
+            //
+            //   float3x3 DeviceSpaceToUserSpace;   // Offset:    0 Size:    44
+            //   float2 dimensions;                 // Offset:   48 Size:     8
+            //   float3 diff;                       // Offset:   64 Size:    12 [unused]
+            //   float2 center1;                    // Offset:   80 Size:     8 [unused]
+            //   float A;                           // Offset:   88 Size:     4 [unused]
+            //   float radius1;                     // Offset:   92 Size:     4 [unused]
+            //   float sq_radius1;                  // Offset:   96 Size:     4 [unused]
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // cb0                               cbuffer      NA          NA    0        1
+            // cb2                               cbuffer      NA          NA    1        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // POSITION                 0   xyz         0     NONE  float   xy  
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float   xyzw
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            // TEXCOORD                 1     zw        1     NONE  float     zw
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c1         cb0             0         1  ( FLT, FLT, FLT, FLT)
+            // c2         cb0             2         1  ( FLT, FLT, FLT, FLT)
+            // c3         cb1             0         2  ( FLT, FLT, FLT, FLT)
+            // c5         cb1             3         1  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Runtime generated constant mappings:
+            //
+            // Target Reg                               Constant Description
+            // ---------- --------------------------------------------------
+            // c0                              Vertex Shader position offset
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                vs_2_x
+                def c6, 1, 0.5, 0, 0
+                dcl_texcoord v0
+                mad oT0.xy, v0, c2.zwzw, c2
+                mad r0.xy, v0, c1.zwzw, c1
+                add r0.z, r0.x, c6.x
+                mul r0.z, r0.z, c5.x
+                mul r1.x, r0.z, c6.y
+                add r0.z, -r0.y, c6.x
+                add oPos.xy, r0, c0
+                mul r0.x, r0.z, c5.y
+                mul r1.y, r0.x, c6.y
+                mov r1.z, c6.x
+                dp3 oT0.w, r1, c3
+                dp3 oT0.z, r1, c4
+                mov oPos.zw, c6.xyzx
+            
+            // approximately 13 instruction slots used
+            vs_4_0
+            dcl_constantbuffer cb0[3], immediateIndexed
+            dcl_constantbuffer cb1[4], immediateIndexed
+            dcl_input v0.xy
+            dcl_output_siv o0.xyzw, position
+            dcl_output o1.xy
+            dcl_output o1.zw
+            dcl_temps 2
+            mov o0.zw, l(0,0,0,1.000000)
+            mad r0.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
+            mov o0.xy, r0.xyxx
+            add r0.x, r0.x, l(1.000000)
+            add r0.y, -r0.y, l(1.000000)
+            mul r0.xy, r0.xyxx, cb1[3].xyxx
+            mul r1.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
+            mov r1.z, l(1.000000)
+            dp3 o1.z, r1.xyzx, cb1[0].xyzx
+            dp3 o1.w, r1.xyzx, cb1[1].xyzx
+            mad o1.xy, v0.xyxx, cb0[2].zwzz, cb0[2].xyxx
+            ret 
+            // Approximately 12 instruction slots used
+                    
+        };
+        GeometryShader = NULL;
+        PixelShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer cb2
+            // {
+            //
+            //   float3x3 DeviceSpaceToUserSpace;   // Offset:    0 Size:    44 [unused]
+            //   float2 dimensions;                 // Offset:   48 Size:     8 [unused]
+            //   float3 diff;                       // Offset:   64 Size:    12
+            //   float2 center1;                    // Offset:   80 Size:     8
+            //   float A;                           // Offset:   88 Size:     4
+            //   float radius1;                     // Offset:   92 Size:     4
+            //   float sq_radius1;                  // Offset:   96 Size:     4
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // sWrapSampler                      sampler      NA          NA    0        1
+            // sMaskSampler                      sampler      NA          NA    1        1
+            // tex                               texture  float4          2d    0        1
+            // mask                              texture  float4          2d    1        1
+            // cb2                               cbuffer      NA          NA    0        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float       
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            // TEXCOORD                 1     zw        1     NONE  float     zw
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Target                0   xyzw        0   TARGET  float   xyzw
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c0         cb0             4         3  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Sampler/Resource to DX9 shader sampler mappings:
+            //
+            // Target Sampler Source Sampler  Source Resource
+            // -------------- --------------- ----------------
+            // s0             s0              t0               
+            // s1             s1              t1               
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                ps_2_x
+                def c3, 0.5, 0, 0, 0
+                def c4, 1, -1, 0, -0
+                dcl t0
+                dcl_2d s0
+                dcl_2d s1
+                add r0.xy, t0.wzzw, -c1
+                dp2add r0.w, r0, r0, -c2.x
+                mul r0.w, r0.w, c1.z
+                mov r0.z, c1.w
+                dp3 r0.x, r0, c0
+                mad r0.y, r0.x, r0.x, -r0.w
+                abs r0.z, r0.y
+                rsq r0.z, r0.z
+                rcp r1.x, r0.z
+                mov r1.yz, -r1.x
+                add r0.xzw, r0.x, r1.xyyz
+                rcp r1.x, c1.z
+                mul r0.xzw, r0, r1.x
+                mov r1.w, c1.w
+                mad r1.xyz, r0.xzww, c0.z, r1.w
+                cmp r2.x, r1.x, r0.x, r0.w
+                cmp r0.xzw, r1.xyyz, c4.xyxy, c4.zyzw
+                mov r2.y, c3.x
+                texld r1, t0, s1
+                texld r2, r2, s0
+                mul r2.xyz, r2.w, r2
+                mul r1, r1.w, r2
+                add r0.w, r0.w, r0.x
+                cmp r0.x, r0.w, r0.x, r0.z
+                cmp r1, -r0.x, c4.z, r1
+                cmp r0, r0.y, r1, c4.z
+                mov oC0, r0
+            
+            // approximately 28 instruction slots used (2 texture, 26 arithmetic)
+            ps_4_0
+            dcl_constantbuffer cb0[7], immediateIndexed
+            dcl_sampler s0, mode_default
+            dcl_sampler s1, mode_default
+            dcl_resource_texture2d (float,float,float,float) t0
+            dcl_resource_texture2d (float,float,float,float) t1
+            dcl_input_ps linear v1.xy
+            dcl_input_ps linear v1.zw
+            dcl_output o0.xyzw
+            dcl_temps 3
+            add r0.xy, v1.zwzz, -cb0[5].xyxx
+            mov r0.z, cb0[5].w
+            dp3 r0.z, r0.xyzx, cb0[4].xyzx
+            dp2 r0.x, r0.xyxx, r0.xyxx
+            add r0.x, r0.x, -cb0[6].x
+            mul r0.x, r0.x, cb0[5].z
+            mad r0.x, r0.z, r0.z, -r0.x
+            lt r0.y, r0.x, l(0.000000)
+            sqrt r1.x, |r0.x|
+            mov r1.y, -r1.x
+            add r0.xz, r0.zzzz, r1.xxyx
+            div r0.xz, r0.xxzx, cb0[5].zzzz
+            mul r1.xy, r0.xzxx, cb0[4].zzzz
+            ge r1.xy, r1.xyxx, -cb0[5].wwww
+            and r1.xy, r1.xyxx, l(0x3f800000, 0x3f800000, 0, 0)
+            add r0.x, -r0.z, r0.x
+            mad r2.x, r1.x, r0.x, r0.z
+            mov r2.y, l(0.500000)
+            sample r2.xyzw, r2.xyxx, t0.xyzw, s0
+            if_nz r0.y
+              mov o0.xyzw, l(0,0,0,0)
+              ret 
+            endif 
+            max r0.x, r1.y, r1.x
+            ge r0.x, l(0.000000), r0.x
+            if_nz r0.x
+              mov o0.xyzw, l(0,0,0,0)
+              ret 
+            endif 
+            mul r2.xyz, r2.wwww, r2.xyzx
+            sample r0.xyzw, v1.xyxx, t1.xyzw, s1
+            mul o0.xyzw, r0.wwww, r2.xyzw
+            ret 
+            // Approximately 33 instruction slots used
+                    
+        };
+    }
+
+    pass A0Wrap
+    {
+        RasterizerState = TextureRast;
+        VertexShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer cb0
+            // {
+            //
+            //   float4 QuadDesc;                   // Offset:    0 Size:    16
+            //   float4 TexCoords;                  // Offset:   16 Size:    16 [unused]
+            //   float4 MaskTexCoords;              // Offset:   32 Size:    16
+            //
+            // }
+            //
+            // cbuffer cb2
+            // {
+            //
+            //   float3x3 DeviceSpaceToUserSpace;   // Offset:    0 Size:    44
+            //   float2 dimensions;                 // Offset:   48 Size:     8
+            //   float3 diff;                       // Offset:   64 Size:    12 [unused]
+            //   float2 center1;                    // Offset:   80 Size:     8 [unused]
+            //   float A;                           // Offset:   88 Size:     4 [unused]
+            //   float radius1;                     // Offset:   92 Size:     4 [unused]
+            //   float sq_radius1;                  // Offset:   96 Size:     4 [unused]
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // cb0                               cbuffer      NA          NA    0        1
+            // cb2                               cbuffer      NA          NA    1        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // POSITION                 0   xyz         0     NONE  float   xy  
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float   xyzw
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            // TEXCOORD                 1     zw        1     NONE  float     zw
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c1         cb0             0         1  ( FLT, FLT, FLT, FLT)
+            // c2         cb0             2         1  ( FLT, FLT, FLT, FLT)
+            // c3         cb1             0         2  ( FLT, FLT, FLT, FLT)
+            // c5         cb1             3         1  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Runtime generated constant mappings:
+            //
+            // Target Reg                               Constant Description
+            // ---------- --------------------------------------------------
+            // c0                              Vertex Shader position offset
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                vs_2_x
+                def c6, 1, 0.5, 0, 0
+                dcl_texcoord v0
+                mad oT0.xy, v0, c2.zwzw, c2
+                mad r0.xy, v0, c1.zwzw, c1
+                add r0.z, r0.x, c6.x
+                mul r0.z, r0.z, c5.x
+                mul r1.x, r0.z, c6.y
+                add r0.z, -r0.y, c6.x
+                add oPos.xy, r0, c0
+                mul r0.x, r0.z, c5.y
+                mul r1.y, r0.x, c6.y
+                mov r1.z, c6.x
+                dp3 oT0.w, r1, c3
+                dp3 oT0.z, r1, c4
+                mov oPos.zw, c6.xyzx
+            
+            // approximately 13 instruction slots used
+            vs_4_0
+            dcl_constantbuffer cb0[3], immediateIndexed
+            dcl_constantbuffer cb1[4], immediateIndexed
+            dcl_input v0.xy
+            dcl_output_siv o0.xyzw, position
+            dcl_output o1.xy
+            dcl_output o1.zw
+            dcl_temps 2
+            mov o0.zw, l(0,0,0,1.000000)
+            mad r0.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
+            mov o0.xy, r0.xyxx
+            add r0.x, r0.x, l(1.000000)
+            add r0.y, -r0.y, l(1.000000)
+            mul r0.xy, r0.xyxx, cb1[3].xyxx
+            mul r1.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
+            mov r1.z, l(1.000000)
+            dp3 o1.z, r1.xyzx, cb1[0].xyzx
+            dp3 o1.w, r1.xyzx, cb1[1].xyzx
+            mad o1.xy, v0.xyxx, cb0[2].zwzz, cb0[2].xyxx
+            ret 
+            // Approximately 12 instruction slots used
+                    
+        };
+        GeometryShader = NULL;
+        PixelShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer cb2
+            // {
+            //
+            //   float3x3 DeviceSpaceToUserSpace;   // Offset:    0 Size:    44 [unused]
+            //   float2 dimensions;                 // Offset:   48 Size:     8 [unused]
+            //   float3 diff;                       // Offset:   64 Size:    12
+            //   float2 center1;                    // Offset:   80 Size:     8
+            //   float A;                           // Offset:   88 Size:     4 [unused]
+            //   float radius1;                     // Offset:   92 Size:     4
+            //   float sq_radius1;                  // Offset:   96 Size:     4 [unused]
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // sWrapSampler                      sampler      NA          NA    0        1
+            // sMaskSampler                      sampler      NA          NA    1        1
+            // tex                               texture  float4          2d    0        1
+            // mask                              texture  float4          2d    1        1
+            // cb2                               cbuffer      NA          NA    0        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float       
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            // TEXCOORD                 1     zw        1     NONE  float     zw
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Target                0   xyzw        0   TARGET  float   xyzw
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c0         cb0             4         2  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Sampler/Resource to DX9 shader sampler mappings:
+            //
+            // Target Sampler Source Sampler  Source Resource
+            // -------------- --------------- ----------------
+            // s0             s0              t0               
+            // s1             s1              t1               
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                ps_2_x
+                def c2, 0.5, 0, 0, 0
+                dcl t0
+                dcl_2d s0
+                dcl_2d s1
+                mul r0.w, c1.w, c1.w
+                add r0.xy, t0.wzzw, -c1
+                dp2add r0.w, r0, r0, -r0.w
+                mul r0.w, r0.w, c2.x
+                mov r0.z, c1.w
+                dp3 r0.x, r0, c0
+                rcp r0.x, r0.x
+                mul r0.x, r0.x, r0.w
+                mov r0.y, c2.x
+                texld r1, t0, s1
+                texld r2, r0, s0
+                mov r0.w, c1.w
+                mad r0.x, r0.x, -c0.z, -r0.w
+                mul r2.xyz, r2.w, r2
+                mul r1, r1.w, r2
+                cmp r0, r0.x, c2.y, r1
+                mov oC0, r0
+            
+            // approximately 18 instruction slots used (2 texture, 16 arithmetic)
+            ps_4_0
+            dcl_constantbuffer cb0[6], immediateIndexed
+            dcl_sampler s0, mode_default
+            dcl_sampler s1, mode_default
+            dcl_resource_texture2d (float,float,float,float) t0
+            dcl_resource_texture2d (float,float,float,float) t1
+            dcl_input_ps linear v1.xy
+            dcl_input_ps linear v1.zw
+            dcl_output o0.xyzw
+            dcl_temps 2
+            add r0.xy, v1.zwzz, -cb0[5].xyxx
+            mov r0.z, cb0[5].w
+            dp3 r0.z, r0.xyzx, cb0[4].xyzx
+            dp2 r0.x, r0.xyxx, r0.xyxx
+            mad r0.x, -cb0[5].w, cb0[5].w, r0.x
+            mul r0.x, r0.x, l(0.500000)
+            div r0.x, r0.x, r0.z
+            mul r0.z, r0.x, cb0[4].z
+            ge r0.z, -cb0[5].w, r0.z
+            mov r0.y, l(0.500000)
+            sample r1.xyzw, r0.xyxx, t0.xyzw, s0
+            if_nz r0.z
+              mov o0.xyzw, l(0,0,0,0)
+              ret 
+            endif 
+            mul r1.xyz, r1.wwww, r1.xyzx
+            sample r0.xyzw, v1.xyxx, t1.xyzw, s1
+            mul o0.xyzw, r0.wwww, r1.xyzw
+            ret 
+            // Approximately 19 instruction slots used
+                    
+        };
+    }
+
+    pass APosMirror
+    {
+        RasterizerState = TextureRast;
+        VertexShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer cb0
+            // {
+            //
+            //   float4 QuadDesc;                   // Offset:    0 Size:    16
+            //   float4 TexCoords;                  // Offset:   16 Size:    16 [unused]
+            //   float4 MaskTexCoords;              // Offset:   32 Size:    16
+            //
+            // }
+            //
+            // cbuffer cb2
+            // {
+            //
+            //   float3x3 DeviceSpaceToUserSpace;   // Offset:    0 Size:    44
+            //   float2 dimensions;                 // Offset:   48 Size:     8
+            //   float3 diff;                       // Offset:   64 Size:    12 [unused]
+            //   float2 center1;                    // Offset:   80 Size:     8 [unused]
+            //   float A;                           // Offset:   88 Size:     4 [unused]
+            //   float radius1;                     // Offset:   92 Size:     4 [unused]
+            //   float sq_radius1;                  // Offset:   96 Size:     4 [unused]
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // cb0                               cbuffer      NA          NA    0        1
+            // cb2                               cbuffer      NA          NA    1        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // POSITION                 0   xyz         0     NONE  float   xy  
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float   xyzw
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            // TEXCOORD                 1     zw        1     NONE  float     zw
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c1         cb0             0         1  ( FLT, FLT, FLT, FLT)
+            // c2         cb0             2         1  ( FLT, FLT, FLT, FLT)
+            // c3         cb1             0         2  ( FLT, FLT, FLT, FLT)
+            // c5         cb1             3         1  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Runtime generated constant mappings:
+            //
+            // Target Reg                               Constant Description
+            // ---------- --------------------------------------------------
+            // c0                              Vertex Shader position offset
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                vs_2_x
+                def c6, 1, 0.5, 0, 0
+                dcl_texcoord v0
+                mad oT0.xy, v0, c2.zwzw, c2
+                mad r0.xy, v0, c1.zwzw, c1
+                add r0.z, r0.x, c6.x
+                mul r0.z, r0.z, c5.x
+                mul r1.x, r0.z, c6.y
+                add r0.z, -r0.y, c6.x
+                add oPos.xy, r0, c0
+                mul r0.x, r0.z, c5.y
+                mul r1.y, r0.x, c6.y
+                mov r1.z, c6.x
+                dp3 oT0.w, r1, c3
+                dp3 oT0.z, r1, c4
+                mov oPos.zw, c6.xyzx
+            
+            // approximately 13 instruction slots used
+            vs_4_0
+            dcl_constantbuffer cb0[3], immediateIndexed
+            dcl_constantbuffer cb1[4], immediateIndexed
+            dcl_input v0.xy
+            dcl_output_siv o0.xyzw, position
+            dcl_output o1.xy
+            dcl_output o1.zw
+            dcl_temps 2
+            mov o0.zw, l(0,0,0,1.000000)
+            mad r0.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
+            mov o0.xy, r0.xyxx
+            add r0.x, r0.x, l(1.000000)
+            add r0.y, -r0.y, l(1.000000)
+            mul r0.xy, r0.xyxx, cb1[3].xyxx
+            mul r1.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
+            mov r1.z, l(1.000000)
+            dp3 o1.z, r1.xyzx, cb1[0].xyzx
+            dp3 o1.w, r1.xyzx, cb1[1].xyzx
+            mad o1.xy, v0.xyxx, cb0[2].zwzz, cb0[2].xyxx
+            ret 
+            // Approximately 12 instruction slots used
+                    
+        };
+        GeometryShader = NULL;
+        PixelShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer cb2
+            // {
+            //
+            //   float3x3 DeviceSpaceToUserSpace;   // Offset:    0 Size:    44 [unused]
+            //   float2 dimensions;                 // Offset:   48 Size:     8 [unused]
+            //   float3 diff;                       // Offset:   64 Size:    12
+            //   float2 center1;                    // Offset:   80 Size:     8
+            //   float A;                           // Offset:   88 Size:     4
+            //   float radius1;                     // Offset:   92 Size:     4
+            //   float sq_radius1;                  // Offset:   96 Size:     4
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // sMirrorSampler                    sampler      NA          NA    0        1
+            // sMaskSampler                      sampler      NA          NA    1        1
+            // tex                               texture  float4          2d    0        1
+            // mask                              texture  float4          2d    1        1
+            // cb2                               cbuffer      NA          NA    0        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float       
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            // TEXCOORD                 1     zw        1     NONE  float     zw
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Target                0   xyzw        0   TARGET  float   xyzw
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c0         cb0             4         3  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Sampler/Resource to DX9 shader sampler mappings:
+            //
+            // Target Sampler Source Sampler  Source Resource
+            // -------------- --------------- ----------------
+            // s0             s0              t0               
+            // s1             s1              t1               
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                ps_2_x
+                def c3, 0.5, 0, 0, 0
+                def c4, 1, -1, 0, -0
+                dcl t0
+                dcl_2d s0
+                dcl_2d s1
+                add r0.xy, t0.wzzw, -c1
+                dp2add r0.w, r0, r0, -c2.x
+                mul r0.w, r0.w, c1.z
+                mov r0.z, c1.w
+                dp3 r0.x, r0, c0
+                mad r0.y, r0.x, r0.x, -r0.w
+                abs r0.z, r0.y
+                rsq r0.z, r0.z
+                rcp r1.x, r0.z
+                mov r1.yz, -r1.x
+                add r0.xzw, r0.x, r1.xyyz
+                rcp r1.x, c1.z
+                mul r0.xzw, r0, r1.x
+                mov r1.w, c1.w
+                mad r1.xyz, r0.xzww, c0.z, r1.w
+                cmp r2.x, r1.x, r0.x, r0.w
+                cmp r0.xzw, r1.xyyz, c4.xyxy, c4.zyzw
+                mov r2.y, c3.x
+                texld r1, t0, s1
+                texld r2, r2, s0
+                mul r2.xyz, r2.w, r2
+                mul r1, r1.w, r2
+                add r0.w, r0.w, r0.x
+                cmp r0.x, r0.w, r0.x, r0.z
+                cmp r1, -r0.x, c4.z, r1
+                cmp r0, r0.y, r1, c4.z
+                mov oC0, r0
+            
+            // approximately 28 instruction slots used (2 texture, 26 arithmetic)
+            ps_4_0
+            dcl_constantbuffer cb0[7], immediateIndexed
+            dcl_sampler s0, mode_default
+            dcl_sampler s1, mode_default
+            dcl_resource_texture2d (float,float,float,float) t0
+            dcl_resource_texture2d (float,float,float,float) t1
+            dcl_input_ps linear v1.xy
+            dcl_input_ps linear v1.zw
+            dcl_output o0.xyzw
+            dcl_temps 3
+            add r0.xy, v1.zwzz, -cb0[5].xyxx
+            mov r0.z, cb0[5].w
+            dp3 r0.z, r0.xyzx, cb0[4].xyzx
+            dp2 r0.x, r0.xyxx, r0.xyxx
+            add r0.x, r0.x, -cb0[6].x
+            mul r0.x, r0.x, cb0[5].z
+            mad r0.x, r0.z, r0.z, -r0.x
+            lt r0.y, r0.x, l(0.000000)
+            sqrt r1.x, |r0.x|
+            mov r1.y, -r1.x
+            add r0.xz, r0.zzzz, r1.xxyx
+            div r0.xz, r0.xxzx, cb0[5].zzzz
+            mul r1.xy, r0.xzxx, cb0[4].zzzz
+            ge r1.xy, r1.xyxx, -cb0[5].wwww
+            and r1.xy, r1.xyxx, l(0x3f800000, 0x3f800000, 0, 0)
+            add r0.x, -r0.z, r0.x
+            mad r2.x, r1.x, r0.x, r0.z
+            mov r2.y, l(0.500000)
+            sample r2.xyzw, r2.xyxx, t0.xyzw, s0
+            if_nz r0.y
+              mov o0.xyzw, l(0,0,0,0)
+              ret 
+            endif 
+            max r0.x, r1.y, r1.x
+            ge r0.x, l(0.000000), r0.x
+            if_nz r0.x
+              mov o0.xyzw, l(0,0,0,0)
+              ret 
+            endif 
+            mul r2.xyz, r2.wwww, r2.xyzx
+            sample r0.xyzw, v1.xyxx, t1.xyzw, s1
+            mul o0.xyzw, r0.wwww, r2.xyzw
+            ret 
+            // Approximately 33 instruction slots used
+                    
+        };
+    }
+
+    pass A0Mirror
+    {
+        RasterizerState = TextureRast;
+        VertexShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer cb0
+            // {
+            //
+            //   float4 QuadDesc;                   // Offset:    0 Size:    16
+            //   float4 TexCoords;                  // Offset:   16 Size:    16 [unused]
+            //   float4 MaskTexCoords;              // Offset:   32 Size:    16
+            //
+            // }
+            //
+            // cbuffer cb2
+            // {
+            //
+            //   float3x3 DeviceSpaceToUserSpace;   // Offset:    0 Size:    44
+            //   float2 dimensions;                 // Offset:   48 Size:     8
+            //   float3 diff;                       // Offset:   64 Size:    12 [unused]
+            //   float2 center1;                    // Offset:   80 Size:     8 [unused]
+            //   float A;                           // Offset:   88 Size:     4 [unused]
+            //   float radius1;                     // Offset:   92 Size:     4 [unused]
+            //   float sq_radius1;                  // Offset:   96 Size:     4 [unused]
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // cb0                               cbuffer      NA          NA    0        1
+            // cb2                               cbuffer      NA          NA    1        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // POSITION                 0   xyz         0     NONE  float   xy  
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float   xyzw
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            // TEXCOORD                 1     zw        1     NONE  float     zw
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c1         cb0             0         1  ( FLT, FLT, FLT, FLT)
+            // c2         cb0             2         1  ( FLT, FLT, FLT, FLT)
+            // c3         cb1             0         2  ( FLT, FLT, FLT, FLT)
+            // c5         cb1             3         1  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Runtime generated constant mappings:
+            //
+            // Target Reg                               Constant Description
+            // ---------- --------------------------------------------------
+            // c0                              Vertex Shader position offset
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                vs_2_x
+                def c6, 1, 0.5, 0, 0
+                dcl_texcoord v0
+                mad oT0.xy, v0, c2.zwzw, c2
+                mad r0.xy, v0, c1.zwzw, c1
+                add r0.z, r0.x, c6.x
+                mul r0.z, r0.z, c5.x
+                mul r1.x, r0.z, c6.y
+                add r0.z, -r0.y, c6.x
+                add oPos.xy, r0, c0
+                mul r0.x, r0.z, c5.y
+                mul r1.y, r0.x, c6.y
+                mov r1.z, c6.x
+                dp3 oT0.w, r1, c3
+                dp3 oT0.z, r1, c4
+                mov oPos.zw, c6.xyzx
+            
+            // approximately 13 instruction slots used
+            vs_4_0
+            dcl_constantbuffer cb0[3], immediateIndexed
+            dcl_constantbuffer cb1[4], immediateIndexed
+            dcl_input v0.xy
+            dcl_output_siv o0.xyzw, position
+            dcl_output o1.xy
+            dcl_output o1.zw
+            dcl_temps 2
+            mov o0.zw, l(0,0,0,1.000000)
+            mad r0.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
+            mov o0.xy, r0.xyxx
+            add r0.x, r0.x, l(1.000000)
+            add r0.y, -r0.y, l(1.000000)
+            mul r0.xy, r0.xyxx, cb1[3].xyxx
+            mul r1.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
+            mov r1.z, l(1.000000)
+            dp3 o1.z, r1.xyzx, cb1[0].xyzx
+            dp3 o1.w, r1.xyzx, cb1[1].xyzx
+            mad o1.xy, v0.xyxx, cb0[2].zwzz, cb0[2].xyxx
+            ret 
+            // Approximately 12 instruction slots used
+                    
+        };
+        GeometryShader = NULL;
+        PixelShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer cb2
+            // {
+            //
+            //   float3x3 DeviceSpaceToUserSpace;   // Offset:    0 Size:    44 [unused]
+            //   float2 dimensions;                 // Offset:   48 Size:     8 [unused]
+            //   float3 diff;                       // Offset:   64 Size:    12
+            //   float2 center1;                    // Offset:   80 Size:     8
+            //   float A;                           // Offset:   88 Size:     4 [unused]
+            //   float radius1;                     // Offset:   92 Size:     4
+            //   float sq_radius1;                  // Offset:   96 Size:     4 [unused]
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // sMirrorSampler                    sampler      NA          NA    0        1
+            // sMaskSampler                      sampler      NA          NA    1        1
+            // tex                               texture  float4          2d    0        1
+            // mask                              texture  float4          2d    1        1
+            // cb2                               cbuffer      NA          NA    0        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float       
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            // TEXCOORD                 1     zw        1     NONE  float     zw
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Target                0   xyzw        0   TARGET  float   xyzw
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c0         cb0             4         2  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Sampler/Resource to DX9 shader sampler mappings:
+            //
+            // Target Sampler Source Sampler  Source Resource
+            // -------------- --------------- ----------------
+            // s0             s0              t0               
+            // s1             s1              t1               
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                ps_2_x
+                def c2, 0.5, 0, 0, 0
+                dcl t0
+                dcl_2d s0
+                dcl_2d s1
+                mul r0.w, c1.w, c1.w
+                add r0.xy, t0.wzzw, -c1
+                dp2add r0.w, r0, r0, -r0.w
+                mul r0.w, r0.w, c2.x
+                mov r0.z, c1.w
+                dp3 r0.x, r0, c0
+                rcp r0.x, r0.x
+                mul r0.x, r0.x, r0.w
+                mov r0.y, c2.x
+                texld r1, t0, s1
+                texld r2, r0, s0
+                mov r0.w, c1.w
+                mad r0.x, r0.x, -c0.z, -r0.w
+                mul r2.xyz, r2.w, r2
+                mul r1, r1.w, r2
+                cmp r0, r0.x, c2.y, r1
+                mov oC0, r0
+            
+            // approximately 18 instruction slots used (2 texture, 16 arithmetic)
+            ps_4_0
+            dcl_constantbuffer cb0[6], immediateIndexed
+            dcl_sampler s0, mode_default
+            dcl_sampler s1, mode_default
+            dcl_resource_texture2d (float,float,float,float) t0
+            dcl_resource_texture2d (float,float,float,float) t1
+            dcl_input_ps linear v1.xy
+            dcl_input_ps linear v1.zw
+            dcl_output o0.xyzw
+            dcl_temps 2
+            add r0.xy, v1.zwzz, -cb0[5].xyxx
+            mov r0.z, cb0[5].w
+            dp3 r0.z, r0.xyzx, cb0[4].xyzx
+            dp2 r0.x, r0.xyxx, r0.xyxx
+            mad r0.x, -cb0[5].w, cb0[5].w, r0.x
+            mul r0.x, r0.x, l(0.500000)
+            div r0.x, r0.x, r0.z
+            mul r0.z, r0.x, cb0[4].z
+            ge r0.z, -cb0[5].w, r0.z
+            mov r0.y, l(0.500000)
+            sample r1.xyzw, r0.xyxx, t0.xyzw, s0
+            if_nz r0.z
+              mov o0.xyzw, l(0,0,0,0)
+              ret 
+            endif 
+            mul r1.xyz, r1.wwww, r1.xyzx
+            sample r0.xyzw, v1.xyxx, t1.xyzw, s1
+            mul o0.xyzw, r0.wwww, r1.xyzw
+            ret 
+            // Approximately 19 instruction slots used
+                    
+        };
+    }
+
 }
 
 technique10 SampleMaskedTexture
 {
     pass P0
     {
         RasterizerState = TextureRast;
         VertexShader = asm {
@@ -1616,36 +2652,36 @@ technique10 SampleTextureWithShadow
     }
 
 }
 
 #endif
 
 const BYTE d2deffect[] =
 {
-     68,  88,  66,  67, 109, 248, 
-     87, 153, 208, 172, 175,  58, 
-    169, 190, 216,  26, 197,   8, 
-    157,  19,   1,   0,   0,   0, 
-      1, 102,   0,   0,   1,   0, 
+     68,  88,  66,  67,  89, 219, 
+    143,  13, 125, 145, 119,   9, 
+    237,  27, 203,  21,   5, 113, 
+    148,  91,   1,   0,   0,   0, 
+     89, 168,   0,   0,   1,   0, 
       0,   0,  36,   0,   0,   0, 
-     70,  88,  49,  48, 213, 101, 
+     70,  88,  49,  48,  45, 168, 
       0,   0,   1,  16, 255, 254, 
       3,   0,   0,   0,  14,   0, 
-      0,   0,   8,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      4,   0,   0,   0, 157,  94, 
+      0,   0,  10,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,  21, 159, 
       0,   0,   0,   0,   0,   0, 
       2,   0,   0,   0,   0,   0, 
       0,   0,   2,   0,   0,   0, 
-      1,   0,   0,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  14,   0, 
-      0,   0,  14,   0,   0,   0, 
+      1,   0,   0,   0,   5,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  22,   0, 
+      0,   0,  22,   0,   0,   0, 
       0,   0,   0,   0,  99,  98, 
      48,   0, 102, 108, 111,  97, 
     116,  52,   0,   8,   0,   0, 
       0,   1,   0,   0,   0,   0, 
       0,   0,   0,  16,   0,   0, 
       0,  16,   0,   0,   0,  16, 
       0,   0,   0,  10,  33,   0, 
       0,  81, 117,  97, 100,  68, 
@@ -1720,236 +2756,683 @@ const BYTE d2deffect[] =
       0,   0,   0, 115,  83,  97, 
     109, 112, 108, 101, 114,   0, 
       1,   0,   0,   0,   2,   0, 
       0,   0,  21,   0,   0,   0, 
       1,   0,   0,   0,   2,   0, 
       0,   0,   3,   0,   0,   0, 
       1,   0,   0,   0,   2,   0, 
       0,   0,   3,   0,   0,   0, 
-    115,  77,  97, 115, 107,  83, 
+    115,  87, 114,  97, 112,  83, 
      97, 109, 112, 108, 101, 114, 
       0,   1,   0,   0,   0,   2, 
       0,   0,   0,  21,   0,   0, 
       0,   1,   0,   0,   0,   2, 
-      0,   0,   0,   3,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
       0,   1,   0,   0,   0,   2, 
-      0,   0,   0,   3,   0,   0, 
-      0, 115,  83, 104,  97, 100, 
-    111, 119,  83,  97, 109, 112, 
+      0,   0,   0,   1,   0,   0, 
+      0, 115,  77, 105, 114, 114, 
+    111, 114,  83,  97, 109, 112, 
     108, 101, 114,   0,   1,   0, 
       0,   0,   2,   0,   0,   0, 
      21,   0,   0,   0,   1,   0, 
       0,   0,   2,   0,   0,   0, 
-      4,   0,   0,   0,   1,   0, 
+      2,   0,   0,   0,   1,   0, 
       0,   0,   2,   0,   0,   0, 
-      4,   0,   0,   0,   4,   0, 
+      2,   0,   0,   0, 115,  77, 
+     97, 115, 107,  83,  97, 109, 
+    112, 108, 101, 114,   0,   1, 
+      0,   0,   0,   2,   0,   0, 
+      0,  21,   0,   0,   0,   1, 
+      0,   0,   0,   2,   0,   0, 
+      0,   3,   0,   0,   0,   1, 
+      0,   0,   0,   2,   0,   0, 
+      0,   3,   0,   0,   0, 115, 
+     83, 104,  97, 100, 111, 119, 
+     83,  97, 109, 112, 108, 101, 
+    114,   0,   1,   0,   0,   0, 
+      2,   0,   0,   0,  21,   0, 
+      0,   0,   1,   0,   0,   0, 
+      2,   0,   0,   0,   4,   0, 
+      0,   0,   1,   0,   0,   0, 
+      2,   0,   0,   0,   4,   0, 
+      0,   0,   4,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
       0,   0,   1,   0,   0,   0, 
       0,   0,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
       1,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,  82,  97, 
-    115, 116, 101, 114, 105, 122, 
-    101, 114,  83, 116,  97, 116, 
-    101,   0, 128,   2,   0,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   4,   0,   0,   0, 
-     84, 101, 120, 116, 117, 114, 
-    101,  82,  97, 115, 116,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-     66, 108, 101, 110, 100,  83, 
-    116,  97, 116, 101,   0, 208, 
-      2,   0,   0,   2,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0,  83, 104,  97, 
-    100, 111, 119,  66, 108, 101, 
-    110, 100,  72,   0,   1,   0, 
+      0,   0,  82,  97, 115, 116, 
+    101, 114, 105, 122, 101, 114, 
+     83, 116,  97, 116, 101,   0, 
+    228,   2,   0,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,  84, 101, 
+    120, 116, 117, 114, 101,  82, 
+     97, 115, 116,   0,   1,   0, 
       0,   0,   2,   0,   0,   0, 
       0,   0,   0,   0,   1,   0, 
-      0,   0,   3,   0,   0,   0, 
-     15,   0,   0,   0,  83, 104, 
-     97, 100, 111, 119,  66, 108, 
-    101, 110, 100,  86,   0,   1, 
-      0,   0,   0,   2,   0,   0, 
-      0,   1,   0,   0,   0,   1, 
-      0,   0,   0,   2,   0,   0, 
-      0,   2,   0,   0,   0,   1, 
-      0,   0,   0,   2,   0,   0, 
-      0,   6,   0,   0,   0,   1, 
-      0,   0,   0,   2,   0,   0, 
-      0,   1,   0,   0,   0,   1, 
-      0,   0,   0,   2,   0,   0, 
-      0,   2,   0,   0,   0,   1, 
-      0,   0,   0,   2,   0,   0, 
-      0,   6,   0,   0,   0,   1, 
+      0,   0,   2,   0,   0,   0, 
+      1,   0,   0,   0,  66, 108, 
+    101, 110, 100,  83, 116,  97, 
+    116, 101,   0,  52,   3,   0, 
+      0,   2,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   2,   0,   0, 
-      0,   1,   0,   0,   0,   1, 
-      0,   0,   0,   3,   0,   0, 
-      0,  15,   0,   0,   0,  83, 
-     97, 109, 112, 108, 101,  84, 
-    101, 120, 116, 117, 114, 101, 
-      0,  80,  48,   0,  36,   4, 
-      0,   0,  68,  88,  66,  67, 
-    116, 139,  68,  62,  73, 113, 
-     92,   4,  72,  76, 225, 161, 
-     30, 132, 222, 233,   1,   0, 
-      0,   0,  36,   4,   0,   0, 
-      6,   0,   0,   0,  56,   0, 
-      0,   0, 248,   0,   0,   0, 
-    244,   1,   0,   0, 112,   2, 
-      0,   0, 128,   3,   0,   0, 
-    180,   3,   0,   0,  65, 111, 
-    110,  57, 184,   0,   0,   0, 
-    184,   0,   0,   0,   0,   2, 
-    254, 255, 132,   0,   0,   0, 
-     52,   0,   0,   0,   1,   0, 
-     36,   0,   0,   0,  48,   0, 
+      0,  83, 104,  97, 100, 111, 
+    119,  66, 108, 101, 110, 100, 
+     72,   0,   1,   0,   0,   0, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,  15,   0, 
+      0,   0,  83, 104,  97, 100, 
+    111, 119,  66, 108, 101, 110, 
+    100,  86,   0,   1,   0,   0, 
+      0,   2,   0,   0,   0,   1, 
+      0,   0,   0,   1,   0,   0, 
+      0,   2,   0,   0,   0,   2, 
+      0,   0,   0,   1,   0,   0, 
+      0,   2,   0,   0,   0,   6, 
+      0,   0,   0,   1,   0,   0, 
+      0,   2,   0,   0,   0,   1, 
+      0,   0,   0,   1,   0,   0, 
+      0,   2,   0,   0,   0,   2, 
+      0,   0,   0,   1,   0,   0, 
+      0,   2,   0,   0,   0,   6, 
+      0,   0,   0,   1,   0,   0, 
+      0,   2,   0,   0,   0,   1, 
+      0,   0,   0,   1,   0,   0, 
+      0,   3,   0,   0,   0,  15, 
+      0,   0,   0,  83,  97, 109, 
+    112, 108, 101,  84, 101, 120, 
+    116, 117, 114, 101,   0,  80, 
+     48,   0,  36,   4,   0,   0, 
+     68,  88,  66,  67, 116, 139, 
+     68,  62,  73, 113,  92,   4, 
+     72,  76, 225, 161,  30, 132, 
+    222, 233,   1,   0,   0,   0, 
+     36,   4,   0,   0,   6,   0, 
+      0,   0,  56,   0,   0,   0, 
+    248,   0,   0,   0, 244,   1, 
+      0,   0, 112,   2,   0,   0, 
+    128,   3,   0,   0, 180,   3, 
+      0,   0,  65, 111, 110,  57, 
+    184,   0,   0,   0, 184,   0, 
+      0,   0,   0,   2, 254, 255, 
+    132,   0,   0,   0,  52,   0, 
+      0,   0,   1,   0,  36,   0, 
       0,   0,  48,   0,   0,   0, 
-     36,   0,   1,   0,  48,   0, 
-      0,   0,   0,   0,   3,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   2, 
-    254, 255,  81,   0,   0,   5, 
-      4,   0,  15, 160,   0,   0, 
+     48,   0,   0,   0,  36,   0, 
+      1,   0,  48,   0,   0,   0, 
+      0,   0,   3,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   2, 254, 255, 
+     81,   0,   0,   5,   4,   0, 
+     15, 160,   0,   0,   0,   0, 
+      0,   0, 128,  63,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     31,   0,   0,   2,   5,   0, 
+      0, 128,   0,   0,  15, 144, 
+      4,   0,   0,   4,   0,   0, 
+      3, 224,   0,   0, 228, 144, 
+      2,   0, 238, 160,   2,   0, 
+    228, 160,   4,   0,   0,   4, 
+      0,   0,  12, 224,   0,   0, 
+     20, 144,   3,   0, 180, 160, 
+      3,   0,  20, 160,   4,   0, 
+      0,   4,   0,   0,   3, 128, 
+      0,   0, 228, 144,   1,   0, 
+    238, 160,   1,   0, 228, 160, 
+      2,   0,   0,   3,   0,   0, 
+      3, 192,   0,   0, 228, 128, 
+      0,   0, 228, 160,   1,   0, 
+      0,   2,   0,   0,  12, 192, 
+      4,   0,  68, 160, 255, 255, 
+      0,   0,  83,  72,  68,  82, 
+    244,   0,   0,   0,  64,   0, 
+      1,   0,  61,   0,   0,   0, 
+     89,   0,   0,   4,  70, 142, 
+     32,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,  95,   0, 
+      0,   3,  50,  16,  16,   0, 
+      0,   0,   0,   0, 103,   0, 
+      0,   4, 242,  32,  16,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+     50,  32,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    194,  32,  16,   0,   1,   0, 
+      0,   0,  50,   0,   0,  11, 
+     50,  32,  16,   0,   0,   0, 
+      0,   0,  70,  16,  16,   0, 
+      0,   0,   0,   0, 230, 138, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  70, 128, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   8, 194,  32,  16,   0, 
+      0,   0,   0,   0,   2,  64, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0, 128,  63, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  31,   0,   0,   2, 
-      5,   0,   0, 128,   0,   0, 
-     15, 144,   4,   0,   0,   4, 
-      0,   0,   3, 224,   0,   0, 
-    228, 144,   2,   0, 238, 160, 
-      2,   0, 228, 160,   4,   0, 
-      0,   4,   0,   0,  12, 224, 
-      0,   0,  20, 144,   3,   0, 
-    180, 160,   3,   0,  20, 160, 
+     50,   0,   0,  11,  50,  32, 
+     16,   0,   1,   0,   0,   0, 
+     70,  16,  16,   0,   0,   0, 
+      0,   0, 230, 138,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  70, 128,  32,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,  50,   0,   0,  11, 
+    194,  32,  16,   0,   1,   0, 
+      0,   0,   6,  20,  16,   0, 
+      0,   0,   0,   0, 166, 142, 
+     32,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,   6, 132, 
+     32,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,   5,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     82,  68,  69,  70,   8,   1, 
+      0,   0,   1,   0,   0,   0, 
+     64,   0,   0,   0,   1,   0, 
+      0,   0,  28,   0,   0,   0, 
+      0,   4, 254, 255,   0,   1, 
+      0,   0, 212,   0,   0,   0, 
+     60,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  99,  98,  48,   0, 
+     60,   0,   0,   0,   3,   0, 
+      0,   0,  88,   0,   0,   0, 
+     48,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    160,   0,   0,   0,   0,   0, 
+      0,   0,  16,   0,   0,   0, 
+      2,   0,   0,   0, 172,   0, 
+      0,   0,   0,   0,   0,   0, 
+    188,   0,   0,   0,  16,   0, 
+      0,   0,  16,   0,   0,   0, 
+      2,   0,   0,   0, 172,   0, 
+      0,   0,   0,   0,   0,   0, 
+    198,   0,   0,   0,  32,   0, 
+      0,   0,  16,   0,   0,   0, 
+      2,   0,   0,   0, 172,   0, 
+      0,   0,   0,   0,   0,   0, 
+     81, 117,  97, 100,  68, 101, 
+    115,  99,   0, 171, 171, 171, 
+      1,   0,   3,   0,   1,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  84, 101, 
+    120,  67, 111, 111, 114, 100, 
+    115,   0,  77,  97, 115, 107, 
+     84, 101, 120,  67, 111, 111, 
+    114, 100, 115,   0,  77, 105, 
+     99, 114, 111, 115, 111, 102, 
+    116,  32,  40,  82,  41,  32, 
+     72,  76,  83,  76,  32,  83, 
+    104,  97, 100, 101, 114,  32, 
+     67, 111, 109, 112, 105, 108, 
+    101, 114,  32,  57,  46,  50, 
+     57,  46,  57,  53,  50,  46, 
+     51,  49,  49,  49,   0, 171, 
+    171, 171,  73,  83,  71,  78, 
+     44,   0,   0,   0,   1,   0, 
+      0,   0,   8,   0,   0,   0, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   7,   3,   0,   0, 
+     80,  79,  83,  73,  84,  73, 
+     79,  78,   0, 171, 171, 171, 
+     79,  83,  71,  78, 104,   0, 
+      0,   0,   3,   0,   0,   0, 
+      8,   0,   0,   0,  80,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  92,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,  12,   0,   0,  92,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+     12,   3,   0,   0,  83,  86, 
+     95,  80, 111, 115, 105, 116, 
+    105, 111, 110,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 171, 171, 171, 254,   3, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+    212,   2,   0,   0,  68,  88, 
+     66,  67,  22, 206,  82, 103, 
+    196, 235,  84, 233, 156,  39, 
+    210, 152,  32, 145, 169, 162, 
+      1,   0,   0,   0, 212,   2, 
+      0,   0,   6,   0,   0,   0, 
+     56,   0,   0,   0, 164,   0, 
+      0,   0,  16,   1,   0,   0, 
+    140,   1,   0,   0,  48,   2, 
+      0,   0, 160,   2,   0,   0, 
+     65, 111, 110,  57, 100,   0, 
+      0,   0, 100,   0,   0,   0, 
+      0,   2, 255, 255,  60,   0, 
+      0,   0,  40,   0,   0,   0, 
+      0,   0,  40,   0,   0,   0, 
+     40,   0,   0,   0,  40,   0, 
+      1,   0,  36,   0,   0,   0, 
+     40,   0,   0,   0,   0,   0, 
+      1,   2, 255, 255,  31,   0, 
+      0,   2,   0,   0,   0, 128, 
+      0,   0,  15, 176,  31,   0, 
+      0,   2,   0,   0,   0, 144, 
+      0,   8,  15, 160,  66,   0, 
+      0,   3,   0,   0,  15, 128, 
+      0,   0, 228, 176,   0,   8, 
+    228, 160,   1,   0,   0,   2, 
+      0,   8,  15, 128,   0,   0, 
+    228, 128, 255, 255,   0,   0, 
+     83,  72,  68,  82, 100,   0, 
+      0,   0,  64,   0,   0,   0, 
+     25,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0,  69,   0,   0,   9, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0,  70,  16,  16,   0, 
+      1,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+      0,  96,  16,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  82,  68, 
+     69,  70, 156,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+    105,   0,   0,   0,  92,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+    101,   0,   0,   0,   2,   0, 
+      0,   0,   5,   0,   0,   0, 
+      4,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+      1,   0,   0,   0,  12,   0, 
+      0,   0, 115,  83,  97, 109, 
+    112, 108, 101, 114,   0, 116, 
+    101, 120,   0,  77, 105,  99, 
+    114, 111, 115, 111, 102, 116, 
+     32,  40,  82,  41,  32,  72, 
+     76,  83,  76,  32,  83, 104, 
+     97, 100, 101, 114,  32,  67, 
+    111, 109, 112, 105, 108, 101, 
+    114,  32,  57,  46,  50,  57, 
+     46,  57,  53,  50,  46,  51, 
+     49,  49,  49,   0, 171, 171, 
+     73,  83,  71,  78, 104,   0, 
+      0,   0,   3,   0,   0,   0, 
+      8,   0,   0,   0,  80,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  92,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   3,   0,   0,  92,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   1,   0,   0,   0, 
+     12,   0,   0,   0,  83,  86, 
+     95,  80, 111, 115, 105, 116, 
+    105, 111, 110,   0,  84,  69, 
+     88,  67,  79,  79,  82,  68, 
+      0, 171, 171, 171,  79,  83, 
+     71,  78,  44,   0,   0,   0, 
+      1,   0,   0,   0,   8,   0, 
+      0,   0,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  83,  86,  95,  84, 
+     97, 114, 103, 101, 116,   0, 
+    171, 171,  58,   8,   0,   0, 
+      0,   0,   0,   0,  83,  97, 
+    109, 112, 108, 101,  82,  97, 
+    100, 105,  97, 108,  71, 114, 
+     97, 100, 105, 101, 110, 116, 
+      0,  65,  80, 111, 115,   0, 
+      4,   7,   0,   0,  68,  88, 
+     66,  67, 171,   7,  14, 215, 
+    173,  41,  24, 247, 237,   1, 
+     38,  39, 209, 221, 241, 232, 
+      1,   0,   0,   0,   4,   7, 
+      0,   0,   6,   0,   0,   0, 
+     56,   0,   0,   0, 148,   1, 
+      0,   0, 104,   3,   0,   0, 
+    228,   3,   0,   0,  96,   6, 
+      0,   0, 148,   6,   0,   0, 
+     65, 111, 110,  57,  84,   1, 
+      0,   0,  84,   1,   0,   0, 
+      0,   2, 254, 255, 252,   0, 
+      0,   0,  88,   0,   0,   0, 
+      4,   0,  36,   0,   0,   0, 
+     84,   0,   0,   0,  84,   0, 
+      0,   0,  36,   0,   1,   0, 
+     84,   0,   0,   0,   0,   0, 
+      1,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      1,   0,   2,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      2,   0,   3,   0,   0,   0, 
+      0,   0,   1,   0,   3,   0, 
+      1,   0,   5,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   2, 254, 255,  81,   0, 
+      0,   5,   6,   0,  15, 160, 
+      0,   0, 128,  63,   0,   0, 
+      0,  63,   0,   0,   0,   0, 
+      0,   0,   0,   0,  31,   0, 
+      0,   2,   5,   0,   0, 128, 
+      0,   0,  15, 144,   4,   0, 
+      0,   4,   0,   0,   3, 224, 
+      0,   0, 228, 144,   2,   0, 
+    238, 160,   2,   0, 228, 160, 
       4,   0,   0,   4,   0,   0, 
       3, 128,   0,   0, 228, 144, 
       1,   0, 238, 160,   1,   0, 
     228, 160,   2,   0,   0,   3, 
-      0,   0,   3, 192,   0,   0, 
-    228, 128,   0,   0, 228, 160, 
-      1,   0,   0,   2,   0,   0, 
-     12, 192,   4,   0,  68, 160, 
-    255, 255,   0,   0,  83,  72, 
-     68,  82, 244,   0,   0,   0, 
-     64,   0,   1,   0,  61,   0, 
+      0,   0,   4, 128,   0,   0, 
+      0, 128,   6,   0,   0, 160, 
+      5,   0,   0,   3,   0,   0, 
+      4, 128,   0,   0, 170, 128, 
+      5,   0,   0, 160,   5,   0, 
+      0,   3,   1,   0,   1, 128, 
+      0,   0, 170, 128,   6,   0, 
+     85, 160,   2,   0,   0,   3, 
+      0,   0,   4, 128,   0,   0, 
+     85, 129,   6,   0,   0, 160, 
+      2,   0,   0,   3,   0,   0, 
+      3, 192,   0,   0, 228, 128, 
+      0,   0, 228, 160,   5,   0, 
+      0,   3,   0,   0,   1, 128, 
+      0,   0, 170, 128,   5,   0, 
+     85, 160,   5,   0,   0,   3, 
+      1,   0,   2, 128,   0,   0, 
+      0, 128,   6,   0,  85, 160, 
+      1,   0,   0,   2,   1,   0, 
+      4, 128,   6,   0,   0, 160, 
+      8,   0,   0,   3,   0,   0, 
+      8, 224,   1,   0, 228, 128, 
+      3,   0, 228, 160,   8,   0, 
+      0,   3,   0,   0,   4, 224, 
+      1,   0, 228, 128,   4,   0, 
+    228, 160,   1,   0,   0,   2, 
+      0,   0,  12, 192,   6,   0, 
+     36, 160, 255, 255,   0,   0, 
+     83,  72,  68,  82, 204,   1, 
+      0,   0,  64,   0,   1,   0, 
+    115,   0,   0,   0,  89,   0, 
+      0,   4,  70, 142,  32,   0, 
+      0,   0,   0,   0,   3,   0, 
       0,   0,  89,   0,   0,   4, 
-     70, 142,  32,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
+     70, 142,  32,   0,   1,   0, 
+      0,   0,   4,   0,   0,   0, 
      95,   0,   0,   3,  50,  16, 
      16,   0,   0,   0,   0,   0, 
     103,   0,   0,   4, 242,  32, 
      16,   0,   0,   0,   0,   0, 
       1,   0,   0,   0, 101,   0, 
       0,   3,  50,  32,  16,   0, 
       1,   0,   0,   0, 101,   0, 
       0,   3, 194,  32,  16,   0, 
-      1,   0,   0,   0,  50,   0, 
-      0,  11,  50,  32,  16,   0, 
-      0,   0,   0,   0,  70,  16, 
-     16,   0,   0,   0,   0,   0, 
-    230, 138,  32,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     70, 128,  32,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0, 104,   0, 
+      0,   2,   2,   0,   0,   0, 
      54,   0,   0,   8, 194,  32, 
      16,   0,   0,   0,   0,   0, 
       2,  64,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
     128,  63,  50,   0,   0,  11, 
-     50,  32,  16,   0,   1,   0, 
+     50,   0,  16,   0,   0,   0, 
       0,   0,  70,  16,  16,   0, 
       0,   0,   0,   0, 230, 138, 
      32,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,  70, 128, 
+      0,   0,   0,   0,  70, 128, 
      32,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,  50,   0, 
-      0,  11, 194,  32,  16,   0, 
-      1,   0,   0,   0,   6,  20, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5,  50,  32,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+      0,   0,   0,   7,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0, 128,  63,   0,   0, 
+      0,   8,  34,   0,  16,   0, 
+      0,   0,   0,   0,  26,   0, 
+     16, 128,  65,   0,   0,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0, 128,  63, 
+     56,   0,   0,   8,  50,   0, 
      16,   0,   0,   0,   0,   0, 
-    166, 142,  32,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-      6, 132,  32,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  70, 128,  32,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,  56,   0,   0,  10, 
+     50,   0,  16,   0,   1,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,   2,  64, 
+      0,   0,   0,   0,   0,  63, 
+      0,   0,   0,  63,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5,  66,   0, 
+     16,   0,   1,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+    128,  63,  16,   0,   0,   8, 
+     66,  32,  16,   0,   1,   0, 
+      0,   0,  70,   2,  16,   0, 
+      1,   0,   0,   0,  70, 130, 
+     32,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,  16,   0, 
+      0,   8, 130,  32,  16,   0, 
+      1,   0,   0,   0,  70,   2, 
+     16,   0,   1,   0,   0,   0, 
+     70, 130,  32,   0,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+     50,   0,   0,  11,  50,  32, 
+     16,   0,   1,   0,   0,   0, 
+     70,  16,  16,   0,   0,   0, 
+      0,   0, 230, 138,  32,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,  70, 128,  32,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,  12,   0,   0,   0, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
+      6,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  82,  68, 
+     69,  70, 116,   2,   0,   0, 
+      2,   0,   0,   0, 100,   0, 
       0,   0,   2,   0,   0,   0, 
-     62,   0,   0,   1,  83,  84, 
-     65,  84, 116,   0,   0,   0, 
-      5,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    254, 255,   0,   1,   0,   0, 
+     67,   2,   0,   0,  92,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  82,  68,  69,  70, 
-      8,   1,   0,   0,   1,   0, 
-      0,   0,  64,   0,   0,   0, 
-      1,   0,   0,   0,  28,   0, 
-      0,   0,   0,   4, 254, 255, 
-      0,   1,   0,   0, 212,   0, 
-      0,   0,  60,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+     96,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,  99,  98, 
-     48,   0,  60,   0,   0,   0, 
-      3,   0,   0,   0,  88,   0, 
-      0,   0,  48,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 160,   0,   0,   0, 
-      0,   0,   0,   0,  16,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  99,  98,  48,   0, 
+     99,  98,  50,   0,  92,   0, 
+      0,   0,   3,   0,   0,   0, 
+    148,   0,   0,   0,  48,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  96,   0, 
+      0,   0,   7,   0,   0,   0, 
+     16,   1,   0,   0, 112,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 220,   0, 
+      0,   0,   0,   0,   0,   0, 
+     16,   0,   0,   0,   2,   0, 
+      0,   0, 232,   0,   0,   0, 
+      0,   0,   0,   0, 248,   0, 
+      0,   0,  16,   0,   0,   0, 
+     16,   0,   0,   0,   0,   0, 
+      0,   0, 232,   0,   0,   0, 
+      0,   0,   0,   0,   2,   1, 
+      0,   0,  32,   0,   0,   0, 
+     16,   0,   0,   0,   2,   0, 
+      0,   0, 232,   0,   0,   0, 
+      0,   0,   0,   0,  81, 117, 
+     97, 100,  68, 101, 115,  99, 
+      0, 171, 171, 171,   1,   0, 
+      3,   0,   1,   0,   4,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  84, 101, 120,  67, 
+    111, 111, 114, 100, 115,   0, 
+     77,  97, 115, 107,  84, 101, 
+    120,  67, 111, 111, 114, 100, 
+    115,   0, 184,   1,   0,   0, 
+      0,   0,   0,   0,  44,   0, 
       0,   0,   2,   0,   0,   0, 
-    172,   0,   0,   0,   0,   0, 
-      0,   0, 188,   0,   0,   0, 
-     16,   0,   0,   0,  16,   0, 
-      0,   0,   2,   0,   0,   0, 
-    172,   0,   0,   0,   0,   0, 
-      0,   0, 198,   0,   0,   0, 
-     32,   0,   0,   0,  16,   0, 
+    208,   1,   0,   0,   0,   0, 
+      0,   0, 224,   1,   0,   0, 
+     48,   0,   0,   0,   8,   0, 
       0,   0,   2,   0,   0,   0, 
-    172,   0,   0,   0,   0,   0, 
-      0,   0,  81, 117,  97, 100, 
-     68, 101, 115,  99,   0, 171, 
-    171, 171,   1,   0,   3,   0, 
-      1,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     84, 101, 120,  67, 111, 111, 
-    114, 100, 115,   0,  77,  97, 
-    115, 107,  84, 101, 120,  67, 
-    111, 111, 114, 100, 115,   0, 
-     77, 105,  99, 114, 111, 115, 
-    111, 102, 116,  32,  40,  82, 
-     41,  32,  72,  76,  83,  76, 
-     32,  83, 104,  97, 100, 101, 
-    114,  32,  67, 111, 109, 112, 
-    105, 108, 101, 114,  32,  57, 
-     46,  50,  57,  46,  57,  53, 
-     50,  46,  51,  49,  49,  49, 
-      0, 171, 171, 171,  73,  83, 
+    236,   1,   0,   0,   0,   0, 
+      0,   0, 252,   1,   0,   0, 
+     64,   0,   0,   0,  12,   0, 
+      0,   0,   0,   0,   0,   0, 
+      4,   2,   0,   0,   0,   0, 
+      0,   0,  20,   2,   0,   0, 
+     80,   0,   0,   0,   8,   0, 
+      0,   0,   0,   0,   0,   0, 
+    236,   1,   0,   0,   0,   0, 
+      0,   0,  28,   2,   0,   0, 
+     88,   0,   0,   0,   4,   0, 
+      0,   0,   0,   0,   0,   0, 
+     32,   2,   0,   0,   0,   0, 
+      0,   0,  48,   2,   0,   0, 
+     92,   0,   0,   0,   4,   0, 
+      0,   0,   0,   0,   0,   0, 
+     32,   2,   0,   0,   0,   0, 
+      0,   0,  56,   2,   0,   0, 
+     96,   0,   0,   0,   4,   0, 
+      0,   0,   0,   0,   0,   0, 
+     32,   2,   0,   0,   0,   0, 
+      0,   0,  68, 101, 118, 105, 
+     99, 101,  83, 112,  97,  99, 
+    101,  84, 111,  85, 115, 101, 
+    114,  83, 112,  97,  99, 101, 
+      0, 171,   3,   0,   3,   0, 
+      3,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    100, 105, 109, 101, 110, 115, 
+    105, 111, 110, 115,   0, 171, 
+      1,   0,   3,   0,   1,   0, 
+      2,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 100, 105, 
+    102, 102,   0, 171, 171, 171, 
+      1,   0,   3,   0,   1,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  99, 101, 
+    110, 116, 101, 114,  49,   0, 
+     65,   0, 171, 171,   0,   0, 
+      3,   0,   1,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 114,  97, 100, 105, 
+    117, 115,  49,   0, 115, 113, 
+     95, 114,  97, 100, 105, 117, 
+    115,  49,   0,  77, 105,  99, 
+    114, 111, 115, 111, 102, 116, 
+     32,  40,  82,  41,  32,  72, 
+     76,  83,  76,  32,  83, 104, 
+     97, 100, 101, 114,  32,  67, 
+    111, 109, 112, 105, 108, 101, 
+    114,  32,  57,  46,  50,  57, 
+     46,  57,  53,  50,  46,  51, 
+     49,  49,  49,   0,  73,  83, 
      71,  78,  44,   0,   0,   0, 
       1,   0,   0,   0,   8,   0, 
       0,   0,  32,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   3,   0,   0,   0, 
       0,   0,   0,   0,   7,   3, 
       0,   0,  80,  79,  83,  73, 
      84,  73,  79,  78,   0, 171, 
@@ -1967,146 +3450,443 @@ const BYTE d2deffect[] =
      92,   0,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
       3,   0,   0,   0,   1,   0, 
       0,   0,  12,   3,   0,   0, 
      83,  86,  95,  80, 111, 115, 
     105, 116, 105, 111, 110,   0, 
      84,  69,  88,  67,  79,  79, 
      82,  68,   0, 171, 171, 171, 
-    154,   3,   0,   0,   0,   0, 
+     52,  11,   0,   0,   0,   0, 
       0,   0,   1,   0,   0,   0, 
       2,   0,   0,   0,   0,   0, 
-      0,   0, 212,   2,   0,   0, 
-     68,  88,  66,  67,  22, 206, 
-     82, 103, 196, 235,  84, 233, 
-    156,  39, 210, 152,  32, 145, 
-    169, 162,   1,   0,   0,   0, 
-    212,   2,   0,   0,   6,   0, 
+      0,   0, 220,   9,   0,   0, 
+     68,  88,  66,  67,  75, 110, 
+    115, 165, 159, 108, 132, 208, 
+    154,  90, 141,  18, 236, 102, 
+     72, 112,   1,   0,   0,   0, 
+    220,   9,   0,   0,   6,   0, 
       0,   0,  56,   0,   0,   0, 
-    164,   0,   0,   0,  16,   1, 
-      0,   0, 140,   1,   0,   0, 
-     48,   2,   0,   0, 160,   2, 
+    128,   2,   0,   0,  88,   6, 
+      0,   0, 212,   6,   0,   0, 
+     56,   9,   0,   0, 168,   9, 
       0,   0,  65, 111, 110,  57, 
-    100,   0,   0,   0, 100,   0, 
+     64,   2,   0,   0,  64,   2, 
       0,   0,   0,   2, 255, 255, 
-     60,   0,   0,   0,  40,   0, 
-      0,   0,   0,   0,  40,   0, 
-      0,   0,  40,   0,   0,   0, 
-     40,   0,   1,   0,  36,   0, 
-      0,   0,  40,   0,   0,   0, 
-      0,   0,   1,   2, 255, 255, 
-     31,   0,   0,   2,   0,   0, 
-      0, 128,   0,   0,  15, 176, 
-     31,   0,   0,   2,   0,   0, 
-      0, 144,   0,   8,  15, 160, 
-     66,   0,   0,   3,   0,   0, 
-     15, 128,   0,   0, 228, 176, 
-      0,   8, 228, 160,   1,   0, 
-      0,   2,   0,   8,  15, 128, 
-      0,   0, 228, 128, 255, 255, 
-      0,   0,  83,  72,  68,  82, 
-    100,   0,   0,   0,  64,   0, 
-      0,   0,  25,   0,   0,   0, 
+      8,   2,   0,   0,  56,   0, 
+      0,   0,   1,   0,  44,   0, 
+      0,   0,  56,   0,   0,   0, 
+     56,   0,   2,   0,  36,   0, 
+      0,   0,  56,   0,   0,   0, 
+      0,   0,   1,   1,   1,   0, 
+      0,   0,   4,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   2, 255, 255,  81,   0, 
+      0,   5,   3,   0,  15, 160, 
+      0,   0,   0,  63,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  81,   0, 
+      0,   5,   4,   0,  15, 160, 
+      0,   0, 128,  63,   0,   0, 
+    128, 191,   0,   0,   0,   0, 
+      0,   0,   0, 128,  31,   0, 
+      0,   2,   0,   0,   0, 128, 
+      0,   0,  15, 176,  31,   0, 
+      0,   2,   0,   0,   0, 144, 
+      0,   8,  15, 160,  31,   0, 
+      0,   2,   0,   0,   0, 144, 
+      1,   8,  15, 160,   2,   0, 
+      0,   3,   0,   0,   3, 128, 
+      0,   0, 235, 176,   1,   0, 
+    228, 161,  90,   0,   0,   4, 
+      0,   0,   8, 128,   0,   0, 
+    228, 128,   0,   0, 228, 128, 
+      2,   0,   0, 161,   5,   0, 
+      0,   3,   0,   0,   8, 128, 
+      0,   0, 255, 128,   1,   0, 
+    170, 160,   1,   0,   0,   2, 
+      0,   0,   4, 128,   1,   0, 
+    255, 160,   8,   0,   0,   3, 
+      0,   0,   1, 128,   0,   0, 
+    228, 128,   0,   0, 228, 160, 
+      4,   0,   0,   4,   0,   0, 
+      2, 128,   0,   0,   0, 128, 
+      0,   0,   0, 128,   0,   0, 
+    255, 129,  35,   0,   0,   2, 
+      0,   0,   4, 128,   0,   0, 
+     85, 128,   7,   0,   0,   2, 
+      0,   0,   4, 128,   0,   0, 
+    170, 128,   6,   0,   0,   2, 
+      1,   0,   1, 128,   0,   0, 
+    170, 128,   1,   0,   0,   2, 
+      1,   0,   6, 128,   1,   0, 
+      0, 129,   2,   0,   0,   3, 
+      0,   0,  13, 128,   0,   0, 
+      0, 128,   1,   0, 148, 128, 
+      6,   0,   0,   2,   1,   0, 
+      1, 128,   1,   0, 170, 160, 
+      5,   0,   0,   3,   0,   0, 
+     13, 128,   0,   0, 228, 128, 
+      1,   0,   0, 128,   1,   0, 
+      0,   2,   1,   0,   8, 128, 
+      1,   0, 255, 160,   4,   0, 
+      0,   4,   1,   0,   7, 128, 
+      0,   0, 248, 128,   0,   0, 
+    170, 160,   1,   0, 255, 128, 
+     88,   0,   0,   4,   2,   0, 
+      1, 128,   1,   0,   0, 128, 
+      0,   0,   0, 128,   0,   0, 
+    255, 128,  88,   0,   0,   4, 
+      0,   0,  13, 128,   1,   0, 
+    148, 128,   4,   0,  68, 160, 
+      4,   0, 230, 160,   1,   0, 
+      0,   2,   2,   0,   2, 128, 
+      3,   0,   0, 160,  66,   0, 
+      0,   3,   1,   0,  15, 128, 
+      0,   0, 228, 176,   1,   8, 
+    228, 160,  66,   0,   0,   3, 
+      2,   0,  15, 128,   2,   0, 
+    228, 128,   0,   8, 228, 160, 
+      5,   0,   0,   3,   2,   0, 
+      7, 128,   2,   0, 255, 128, 
+      2,   0, 228, 128,   5,   0, 
+      0,   3,   1,   0,  15, 128, 
+      1,   0, 255, 128,   2,   0, 
+    228, 128,   2,   0,   0,   3, 
+      0,   0,   8, 128,   0,   0, 
+    255, 128,   0,   0,   0, 128, 
+     88,   0,   0,   4,   0,   0, 
+      1, 128,   0,   0, 255, 128, 
+      0,   0,   0, 128,   0,   0, 
+    170, 128,  88,   0,   0,   4, 
+      1,   0,  15, 128,   0,   0, 
+      0, 129,   4,   0, 170, 160, 
+      1,   0, 228, 128,  88,   0, 
+      0,   4,   0,   0,  15, 128, 
+      0,   0,  85, 128,   1,   0, 
+    228, 128,   4,   0, 170, 160, 
+      1,   0,   0,   2,   0,   8, 
+     15, 128,   0,   0, 228, 128, 
+    255, 255,   0,   0,  83,  72, 
+     68,  82, 208,   3,   0,   0, 
+     64,   0,   0,   0, 244,   0, 
+      0,   0,  89,   0,   0,   4, 
+     70, 142,  32,   0,   0,   0, 
+      0,   0,   7,   0,   0,   0, 
      90,   0,   0,   3,   0,  96, 
      16,   0,   0,   0,   0,   0, 
+     90,   0,   0,   3,   0,  96, 
+     16,   0,   1,   0,   0,   0, 
      88,  24,   0,   4,   0, 112, 
      16,   0,   0,   0,   0,   0, 
-     85,  85,   0,   0,  98,  16, 
-      0,   3,  50,  16,  16,   0, 
-      1,   0,   0,   0, 101,   0, 
-      0,   3, 242,  32,  16,   0, 
-      0,   0,   0,   0,  69,   0, 
-      0,   9, 242,  32,  16,   0, 
-      0,   0,   0,   0,  70,  16, 
+     85,  85,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      1,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0,  98,  16,   0,   3, 
+    194,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      3,   0,   0,   0,   0,   0, 
+      0,   9,  50,   0,  16,   0, 
+      0,   0,   0,   0, 230,  26, 
+     16,   0,   1,   0,   0,   0, 
+     70, 128,  32, 128,  65,   0, 
+      0,   0,   0,   0,   0,   0, 
+      5,   0,   0,   0,  54,   0, 
+      0,   6,  66,   0,  16,   0, 
+      0,   0,   0,   0,  58, 128, 
+     32,   0,   0,   0,   0,   0, 
+      5,   0,   0,   0,  16,   0, 
+      0,   8,  66,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     70, 130,  32,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
+     15,   0,   0,   7,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   9,  18,   0,  16,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     10, 128,  32, 128,  65,   0, 
+      0,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,  56,   0, 
+      0,   8,  18,   0,  16,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     42, 128,  32,   0,   0,   0, 
+      0,   0,   5,   0,   0,   0, 
+     50,   0,   0,  10,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     42,   0,  16,   0,   0,   0, 
+      0,   0,  42,   0,  16,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16, 128,  65,   0,   0,   0, 
+      0,   0,   0,   0,  49,   0, 
+      0,   7,  34,   0,  16,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  75,   0,   0,   6, 
+     18,   0,  16,   0,   1,   0, 
+      0,   0,  10,   0,  16, 128, 
+    129,   0,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   6, 
+     34,   0,  16,   0,   1,   0, 
+      0,   0,  10,   0,  16, 128, 
+     65,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   7, 
+     82,   0,  16,   0,   0,   0, 
+      0,   0, 166,  10,  16,   0, 
+      0,   0,   0,   0,   6,   1, 
+     16,   0,   1,   0,   0,   0, 
+     14,   0,   0,   8,  82,   0, 
+     16,   0,   0,   0,   0,   0, 
+      6,   2,  16,   0,   0,   0, 
+      0,   0, 166, 138,  32,   0, 
+      0,   0,   0,   0,   5,   0, 
+      0,   0,  56,   0,   0,   8, 
+     50,   0,  16,   0,   1,   0, 
+      0,   0, 134,   0,  16,   0, 
+      0,   0,   0,   0, 166, 138, 
+     32,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,  29,   0, 
+      0,   9,  50,   0,  16,   0, 
+      1,   0,   0,   0,  70,   0, 
+     16,   0,   1,   0,   0,   0, 
+    246, 143,  32, 128,  65,   0, 
+      0,   0,   0,   0,   0,   0, 
+      5,   0,   0,   0,   1,   0, 
+      0,  10,  50,   0,  16,   0, 
+      1,   0,   0,   0,  70,   0, 
      16,   0,   1,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  62,   0, 
-      0,   1,  83,  84,  65,  84, 
-    116,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
+      2,  64,   0,   0,   0,   0, 
+    128,  63,   0,   0, 128,  63, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   8, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  42,   0,  16, 128, 
+     65,   0,   0,   0,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  50,   0, 
+      0,   9,  18,   0,  16,   0, 
+      2,   0,   0,   0,  10,   0, 
+     16,   0,   1,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  42,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5,  34,   0,  16,   0, 
+      2,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,  63, 
+     69,   0,   0,   9, 242,   0, 
+     16,   0,   2,   0,   0,   0, 
+     70,   0,  16,   0,   2,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     31,   0,   4,   3,  26,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+      2,  64,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     21,   0,   0,   1,  52,   0, 
+      0,   7,  18,   0,  16,   0, 
+      0,   0,   0,   0,  26,   0, 
+     16,   0,   1,   0,   0,   0, 
+     10,   0,  16,   0,   1,   0, 
+      0,   0,  29,   0,   0,   7, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     31,   0,   4,   3,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+      2,  64,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     21,   0,   0,   1,  56,   0, 
+      0,   7, 114,   0,  16,   0, 
+      2,   0,   0,   0, 246,  15, 
+     16,   0,   2,   0,   0,   0, 
+     70,   2,  16,   0,   2,   0, 
+      0,   0,  69,   0,   0,   9, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,  70,  16,  16,   0, 
+      1,   0,   0,   0,  70, 126, 
+     16,   0,   1,   0,   0,   0, 
+      0,  96,  16,   0,   1,   0, 
+      0,   0,  56,   0,   0,   7, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 246,  15,  16,   0, 
+      0,   0,   0,   0,  70,  14, 
+     16,   0,   2,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 116,   0,   0,   0, 
+     33,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,  17,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   5,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  82,  68,  69,  70, 
+     92,   2,   0,   0,   1,   0, 
+      0,   0, 224,   0,   0,   0, 
+      5,   0,   0,   0,  28,   0, 
+      0,   0,   0,   4, 255, 255, 
+      0,   1,   0,   0,  43,   2, 
+      0,   0, 188,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     82,  68,  69,  70, 156,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
-      0,   0,  28,   0,   0,   0, 
-      0,   4, 255, 255,   0,   1, 
-      0,   0, 105,   0,   0,   0, 
-     92,   0,   0,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0, 101,   0,   0,   0, 
+      0,   0,   0,   0, 197,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+    210,   0,   0,   0,   2,   0, 
+      0,   0,   5,   0,   0,   0, 
+      4,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+      1,   0,   0,   0,  12,   0, 
+      0,   0, 214,   0,   0,   0, 
       2,   0,   0,   0,   5,   0, 
       0,   0,   4,   0,   0,   0, 
-    255, 255, 255, 255,   0,   0, 
+    255, 255, 255, 255,   1,   0, 
       0,   0,   1,   0,   0,   0, 
-     12,   0,   0,   0, 115,  83, 
-     97, 109, 112, 108, 101, 114, 
-      0, 116, 101, 120,   0,  77, 
-    105,  99, 114, 111, 115, 111, 
-    102, 116,  32,  40,  82,  41, 
-     32,  72,  76,  83,  76,  32, 
-     83, 104,  97, 100, 101, 114, 
-     32,  67, 111, 109, 112, 105, 
-    108, 101, 114,  32,  57,  46, 
-     50,  57,  46,  57,  53,  50, 
-     46,  51,  49,  49,  49,   0, 
-    171, 171,  73,  83,  71,  78, 
+     12,   0,   0,   0, 219,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+    115,  83,  97, 109, 112, 108, 
+    101, 114,   0, 115,  77,  97, 
+    115, 107,  83,  97, 109, 112, 
+    108, 101, 114,   0, 116, 101, 
+    120,   0, 109,  97, 115, 107, 
+      0,  99,  98,  50,   0, 171, 
+    219,   0,   0,   0,   7,   0, 
+      0,   0, 248,   0,   0,   0, 
+    112,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    160,   1,   0,   0,   0,   0, 
+      0,   0,  44,   0,   0,   0, 
+      0,   0,   0,   0, 184,   1, 
+      0,   0,   0,   0,   0,   0, 
+    200,   1,   0,   0,  48,   0, 
+      0,   0,   8,   0,   0,   0, 
+      0,   0,   0,   0, 212,   1, 
+      0,   0,   0,   0,   0,   0, 
+    228,   1,   0,   0,  64,   0, 
+      0,   0,  12,   0,   0,   0, 
+      2,   0,   0,   0, 236,   1, 
+      0,   0,   0,   0,   0,   0, 
+    252,   1,   0,   0,  80,   0, 
+      0,   0,   8,   0,   0,   0, 
+      2,   0,   0,   0, 212,   1, 
+      0,   0,   0,   0,   0,   0, 
+      4,   2,   0,   0,  88,   0, 
+      0,   0,   4,   0,   0,   0, 
+      2,   0,   0,   0,   8,   2, 
+      0,   0,   0,   0,   0,   0, 
+     24,   2,   0,   0,  92,   0, 
+      0,   0,   4,   0,   0,   0, 
+      2,   0,   0,   0,   8,   2, 
+      0,   0,   0,   0,   0,   0, 
+     32,   2,   0,   0,  96,   0, 
+      0,   0,   4,   0,   0,   0, 
+      2,   0,   0,   0,   8,   2, 
+      0,   0,   0,   0,   0,   0, 
+     68, 101, 118, 105,  99, 101, 
+     83, 112,  97,  99, 101,  84, 
+    111,  85, 115, 101, 114,  83, 
+    112,  97,  99, 101,   0, 171, 
+      3,   0,   3,   0,   3,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 100, 105, 
+    109, 101, 110, 115, 105, 111, 
+    110, 115,   0, 171,   1,   0, 
+      3,   0,   1,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 100, 105, 102, 102, 
+      0, 171, 171, 171,   1,   0, 
+      3,   0,   1,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  99, 101, 110, 116, 
+    101, 114,  49,   0,  65,   0, 
+    171, 171,   0,   0,   3,   0, 
+      1,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    114,  97, 100, 105, 117, 115, 
+     49,   0, 115, 113,  95, 114, 
+     97, 100, 105, 117, 115,  49, 
+      0,  77, 105,  99, 114, 111, 
+    115, 111, 102, 116,  32,  40, 
+     82,  41,  32,  72,  76,  83, 
+     76,  32,  83, 104,  97, 100, 
+    101, 114,  32,  67, 111, 109, 
+    112, 105, 108, 101, 114,  32, 
+     57,  46,  50,  57,  46,  57, 
+     53,  50,  46,  51,  49,  49, 
+     49,   0,  73,  83,  71,  78, 
     104,   0,   0,   0,   3,   0, 
       0,   0,   8,   0,   0,   0, 
      80,   0,   0,   0,   0,   0, 
       0,   0,   1,   0,   0,   0, 
       3,   0,   0,   0,   0,   0, 
       0,   0,  15,   0,   0,   0, 
      92,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       3,   0,   0,   0,   1,   0, 
       0,   0,   3,   3,   0,   0, 
      92,   0,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
       3,   0,   0,   0,   1,   0, 
-      0,   0,  12,   0,   0,   0, 
+      0,   0,  12,  12,   0,   0, 
      83,  86,  95,  80, 111, 115, 
     105, 116, 105, 111, 110,   0, 
      84,  69,  88,  67,  79,  79, 
      82,  68,   0, 171, 171, 171, 
      79,  83,  71,  78,  44,   0, 
       0,   0,   1,   0,   0,   0, 
       8,   0,   0,   0,  32,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   3,   0, 
       0,   0,   0,   0,   0,   0, 
      15,   0,   0,   0,  83,  86, 
      95,  84,  97, 114, 103, 101, 
-    116,   0, 171, 171, 214,   7, 
-      0,   0,   0,   0,   0,   0, 
-     83,  97, 109, 112, 108, 101, 
-     82,  97, 100, 105,  97, 108, 
-     71, 114,  97, 100, 105, 101, 
-    110, 116,   0,   4,   7,   0, 
+    116,   0, 171, 171,  80,  18, 
+      0,   0,   0,   0,   0,   0, 
+     65,  48,   0,   4,   7,   0, 
       0,  68,  88,  66,  67, 171, 
       7,  14, 215, 173,  41,  24, 
     247, 237,   1,  38,  39, 209, 
     221, 241, 232,   1,   0,   0, 
       0,   4,   7,   0,   0,   6, 
       0,   0,   0,  56,   0,   0, 
       0, 148,   1,   0,   0, 104, 
       3,   0,   0, 228,   3,   0, 
@@ -2396,382 +4176,1322 @@ const BYTE d2deffect[] =
      12,   0,   0,  92,   0,   0, 
       0,   1,   0,   0,   0,   0, 
       0,   0,   0,   3,   0,   0, 
       0,   1,   0,   0,   0,  12, 
       3,   0,   0,  83,  86,  95, 
      80, 111, 115, 105, 116, 105, 
     111, 110,   0,  84,  69,  88, 
      67,  79,  79,  82,  68,   0, 
-    171, 171, 171, 203,  10,   0, 
+    171, 171, 171,  59,  28,   0, 
       0,   0,   0,   0,   0,   1, 
       0,   0,   0,   2,   0,   0, 
-      0,   0,   0,   0,   0, 220, 
-      9,   0,   0,  68,  88,  66, 
-     67,  75, 110, 115, 165, 159, 
-    108, 132, 208, 154,  90, 141, 
-     18, 236, 102,  72, 112,   1, 
-      0,   0,   0, 220,   9,   0, 
+      0,   0,   0,   0,   0, 188, 
+      7,   0,   0,  68,  88,  66, 
+     67, 158, 207, 216, 153, 107, 
+    204, 140, 217, 118, 241, 126, 
+    175, 204, 121,  49,  49,   1, 
+      0,   0,   0, 188,   7,   0, 
       0,   6,   0,   0,   0,  56, 
-      0,   0,   0, 128,   2,   0, 
-      0,  88,   6,   0,   0, 212, 
-      6,   0,   0,  56,   9,   0, 
-      0, 168,   9,   0,   0,  65, 
-    111, 110,  57,  64,   2,   0, 
-      0,  64,   2,   0,   0,   0, 
-      2, 255, 255,   8,   2,   0, 
+      0,   0,   0, 196,   1,   0, 
+      0,  56,   4,   0,   0, 180, 
+      4,   0,   0,  24,   7,   0, 
+      0, 136,   7,   0,   0,  65, 
+    111, 110,  57, 132,   1,   0, 
+      0, 132,   1,   0,   0,   0, 
+      2, 255, 255,  76,   1,   0, 
       0,  56,   0,   0,   0,   1, 
       0,  44,   0,   0,   0,  56, 
       0,   0,   0,  56,   0,   2, 
       0,  36,   0,   0,   0,  56, 
       0,   0,   0,   0,   0,   1, 
       1,   1,   0,   0,   0,   4, 
-      0,   3,   0,   0,   0,   0, 
+      0,   2,   0,   0,   0,   0, 
       0,   0,   0,   1,   2, 255, 
-    255,  81,   0,   0,   5,   3, 
+    255,  81,   0,   0,   5,   2, 
       0,  15, 160,   0,   0,   0, 
      63,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,  81,   0,   0,   5,   4, 
-      0,  15, 160,   0,   0, 128, 
-     63,   0,   0, 128, 191,   0, 
-      0,   0,   0,   0,   0,   0, 
-    128,  31,   0,   0,   2,   0, 
+      0,  31,   0,   0,   2,   0, 
       0,   0, 128,   0,   0,  15, 
     176,  31,   0,   0,   2,   0, 
       0,   0, 144,   0,   8,  15, 
     160,  31,   0,   0,   2,   0, 
       0,   0, 144,   1,   8,  15, 
-    160,   2,   0,   0,   3,   0, 
-      0,   3, 128,   0,   0, 235, 
-    176,   1,   0, 228, 161,  90, 
-      0,   0,   4,   0,   0,   8, 
-    128,   0,   0, 228, 128,   0, 
-      0, 228, 128,   2,   0,   0, 
-    161,   5,   0,   0,   3,   0, 
-      0,   8, 128,   0,   0, 255, 
-    128,   1,   0, 170, 160,   1, 
-      0,   0,   2,   0,   0,   4, 
-    128,   1,   0, 255, 160,   8, 
-      0,   0,   3,   0,   0,   1, 
-    128,   0,   0, 228, 128,   0, 
-      0, 228, 160,   4,   0,   0, 
-      4,   0,   0,   2, 128,   0, 
-      0,   0, 128,   0,   0,   0, 
-    128,   0,   0, 255, 129,  35, 
-      0,   0,   2,   0,   0,   4, 
-    128,   0,   0,  85, 128,   7, 
-      0,   0,   2,   0,   0,   4, 
-    128,   0,   0, 170, 128,   6, 
-      0,   0,   2,   1,   0,   1, 
-    128,   0,   0, 170, 128,   1, 
-      0,   0,   2,   1,   0,   6, 
-    128,   1,   0,   0, 129,   2, 
-      0,   0,   3,   0,   0,  13, 
-    128,   0,   0,   0, 128,   1, 
-      0, 148, 128,   6,   0,   0, 
-      2,   1,   0,   1, 128,   1, 
-      0, 170, 160,   5,   0,   0, 
-      3,   0,   0,  13, 128,   0, 
-      0, 228, 128,   1,   0,   0, 
-    128,   1,   0,   0,   2,   1, 
+    160,   5,   0,   0,   3,   0, 
       0,   8, 128,   1,   0, 255, 
-    160,   4,   0,   0,   4,   1, 
-      0,   7, 128,   0,   0, 248, 
-    128,   0,   0, 170, 160,   1, 
-      0, 255, 128,  88,   0,   0, 
-      4,   2,   0,   1, 128,   1, 
-      0,   0, 128,   0,   0,   0, 
-    128,   0,   0, 255, 128,  88, 
-      0,   0,   4,   0,   0,  13, 
-    128,   1,   0, 148, 128,   4, 
-      0,  68, 160,   4,   0, 230, 
-    160,   1,   0,   0,   2,   2, 
-      0,   2, 128,   3,   0,   0, 
-    160,  66,   0,   0,   3,   1, 
-      0,  15, 128,   0,   0, 228, 
-    176,   1,   8, 228, 160,  66, 
-      0,   0,   3,   2,   0,  15, 
-    128,   2,   0, 228, 128,   0, 
-      8, 228, 160,   5,   0,   0, 
+    160,   1,   0, 255, 160,   2, 
+      0,   0,   3,   0,   0,   3, 
+    128,   0,   0, 235, 176,   1, 
+      0, 228, 161,  90,   0,   0, 
+      4,   0,   0,   8, 128,   0, 
+      0, 228, 128,   0,   0, 228, 
+    128,   0,   0, 255, 129,   5, 
+      0,   0,   3,   0,   0,   8, 
+    128,   0,   0, 255, 128,   2, 
+      0,   0, 160,   1,   0,   0, 
+      2,   0,   0,   4, 128,   1, 
+      0, 255, 160,   8,   0,   0, 
+      3,   0,   0,   1, 128,   0, 
+      0, 228, 128,   0,   0, 228, 
+    160,   6,   0,   0,   2,   0, 
+      0,   1, 128,   0,   0,   0, 
+    128,   5,   0,   0,   3,   0, 
+      0,   1, 128,   0,   0,   0, 
+    128,   0,   0, 255, 128,   1, 
+      0,   0,   2,   0,   0,   2, 
+    128,   2,   0,   0, 160,  66, 
+      0,   0,   3,   1,   0,  15, 
+    128,   0,   0, 228, 176,   1, 
+      8, 228, 160,  66,   0,   0, 
+      3,   2,   0,  15, 128,   0, 
+      0, 228, 128,   0,   8, 228, 
+    160,   1,   0,   0,   2,   0, 
+      0,   8, 128,   1,   0, 255, 
+    160,   4,   0,   0,   4,   0, 
+      0,   1, 128,   0,   0,   0, 
+    128,   0,   0, 170, 161,   0, 
+      0, 255, 129,   5,   0,   0, 
       3,   2,   0,   7, 128,   2, 
       0, 255, 128,   2,   0, 228, 
     128,   5,   0,   0,   3,   1, 
       0,  15, 128,   1,   0, 255, 
-    128,   2,   0, 228, 128,   2, 
-      0,   0,   3,   0,   0,   8, 
-    128,   0,   0, 255, 128,   0, 
-      0,   0, 128,  88,   0,   0, 
-      4,   0,   0,   1, 128,   0, 
-      0, 255, 128,   0,   0,   0, 
-    128,   0,   0, 170, 128,  88, 
-      0,   0,   4,   1,   0,  15, 
-    128,   0,   0,   0, 129,   4, 
-      0, 170, 160,   1,   0, 228, 
-    128,  88,   0,   0,   4,   0, 
-      0,  15, 128,   0,   0,  85, 
-    128,   1,   0, 228, 128,   4, 
-      0, 170, 160,   1,   0,   0, 
-      2,   0,   8,  15, 128,   0, 
-      0, 228, 128, 255, 255,   0, 
-      0,  83,  72,  68,  82, 208, 
-      3,   0,   0,  64,   0,   0, 
-      0, 244,   0,   0,   0,  89, 
-      0,   0,   4,  70, 142,  32, 
-      0,   0,   0,   0,   0,   7, 
-      0,   0,   0,  90,   0,   0, 
-      3,   0,  96,  16,   0,   0, 
-      0,   0,   0,  90,   0,   0, 
-      3,   0,  96,  16,   0,   1, 
-      0,   0,   0,  88,  24,   0, 
-      4,   0, 112,  16,   0,   0, 
-      0,   0,   0,  85,  85,   0, 
+    128,   2,   0, 228, 128,  88, 
+      0,   0,   4,   0,   0,  15, 
+    128,   0,   0,   0, 128,   2, 
+      0,  85, 160,   1,   0, 228, 
+    128,   1,   0,   0,   2,   0, 
+      8,  15, 128,   0,   0, 228, 
+    128, 255, 255,   0,   0,  83, 
+     72,  68,  82, 108,   2,   0, 
+      0,  64,   0,   0,   0, 155, 
+      0,   0,   0,  89,   0,   0, 
+      4,  70, 142,  32,   0,   0, 
+      0,   0,   0,   6,   0,   0, 
+      0,  90,   0,   0,   3,   0, 
+     96,  16,   0,   0,   0,   0, 
+      0,  90,   0,   0,   3,   0, 
+     96,  16,   0,   1,   0,   0, 
       0,  88,  24,   0,   4,   0, 
-    112,  16,   0,   1,   0,   0, 
-      0,  85,  85,   0,   0,  98, 
-     16,   0,   3,  50,  16,  16, 
-      0,   1,   0,   0,   0,  98, 
-     16,   0,   3, 194,  16,  16, 
-      0,   1,   0,   0,   0, 101, 
-      0,   0,   3, 242,  32,  16, 
-      0,   0,   0,   0,   0, 104, 
-      0,   0,   2,   3,   0,   0, 
-      0,   0,   0,   0,   9,  50, 
-      0,  16,   0,   0,   0,   0, 
-      0, 230,  26,  16,   0,   1, 
-      0,   0,   0,  70, 128,  32, 
-    128,  65,   0,   0,   0,   0, 
-      0,   0,   0,   5,   0,   0, 
-      0,  54,   0,   0,   6,  66, 
+    112,  16,   0,   0,   0,   0, 
+      0,  85,  85,   0,   0,  88, 
+     24,   0,   4,   0, 112,  16, 
+      0,   1,   0,   0,   0,  85, 
+     85,   0,   0,  98,  16,   0, 
+      3,  50,  16,  16,   0,   1, 
+      0,   0,   0,  98,  16,   0, 
+      3, 194,  16,  16,   0,   1, 
+      0,   0,   0, 101,   0,   0, 
+      3, 242,  32,  16,   0,   0, 
+      0,   0,   0, 104,   0,   0, 
+      2,   2,   0,   0,   0,   0, 
+      0,   0,   9,  50,   0,  16, 
+      0,   0,   0,   0,   0, 230, 
+     26,  16,   0,   1,   0,   0, 
+      0,  70, 128,  32, 128,  65, 
+      0,   0,   0,   0,   0,   0, 
+      0,   5,   0,   0,   0,  54, 
+      0,   0,   6,  66,   0,  16, 
+      0,   0,   0,   0,   0,  58, 
+    128,  32,   0,   0,   0,   0, 
+      0,   5,   0,   0,   0,  16, 
+      0,   0,   8,  66,   0,  16, 
+      0,   0,   0,   0,   0,  70, 
+      2,  16,   0,   0,   0,   0, 
+      0,  70, 130,  32,   0,   0, 
+      0,   0,   0,   4,   0,   0, 
+      0,  15,   0,   0,   7,  18, 
       0,  16,   0,   0,   0,   0, 
-      0,  58, 128,  32,   0,   0, 
-      0,   0,   0,   5,   0,   0, 
-      0,  16,   0,   0,   8,  66, 
-      0,  16,   0,   0,   0,   0, 
-      0,  70,   2,  16,   0,   0, 
-      0,   0,   0,  70, 130,  32, 
-      0,   0,   0,   0,   0,   4, 
-      0,   0,   0,  15,   0,   0, 
-      7,  18,   0,  16,   0,   0, 
+      0,  70,   0,  16,   0,   0, 
       0,   0,   0,  70,   0,  16, 
-      0,   0,   0,   0,   0,  70, 
-      0,  16,   0,   0,   0,   0, 
-      0,   0,   0,   0,   9,  18, 
+      0,   0,   0,   0,   0,  50, 
+      0,   0,  12,  18,   0,  16, 
+      0,   0,   0,   0,   0,  58, 
+    128,  32, 128,  65,   0,   0, 
+      0,   0,   0,   0,   0,   5, 
+      0,   0,   0,  58, 128,  32, 
+      0,   0,   0,   0,   0,   5, 
+      0,   0,   0,  10,   0,  16, 
+      0,   0,   0,   0,   0,  56, 
+      0,   0,   7,  18,   0,  16, 
+      0,   0,   0,   0,   0,  10, 
       0,  16,   0,   0,   0,   0, 
-      0,  10,   0,  16,   0,   0, 
-      0,   0,   0,  10, 128,  32, 
-    128,  65,   0,   0,   0,   0, 
-      0,   0,   0,   6,   0,   0, 
-      0,  56,   0,   0,   8,  18, 
+      0,   1,  64,   0,   0,   0, 
+      0,   0,  63,  14,   0,   0, 
+      7,  18,   0,  16,   0,   0, 
+      0,   0,   0,  10,   0,  16, 
+      0,   0,   0,   0,   0,  42, 
+      0,  16,   0,   0,   0,   0, 
+      0,  56,   0,   0,   8,  66, 
       0,  16,   0,   0,   0,   0, 
       0,  10,   0,  16,   0,   0, 
       0,   0,   0,  42, 128,  32, 
-      0,   0,   0,   0,   0,   5, 
-      0,   0,   0,  50,   0,   0, 
-     10,  18,   0,  16,   0,   0, 
-      0,   0,   0,  42,   0,  16, 
-      0,   0,   0,   0,   0,  42, 
+      0,   0,   0,   0,   0,   4, 
+      0,   0,   0,  29,   0,   0, 
+      9,  66,   0,  16,   0,   0, 
+      0,   0,   0,  58, 128,  32, 
+    128,  65,   0,   0,   0,   0, 
+      0,   0,   0,   5,   0,   0, 
+      0,  42,   0,  16,   0,   0, 
+      0,   0,   0,  54,   0,   0, 
+      5,  34,   0,  16,   0,   0, 
+      0,   0,   0,   1,  64,   0, 
+      0,   0,   0,   0,  63,  69, 
+      0,   0,   9, 242,   0,  16, 
+      0,   1,   0,   0,   0,  70, 
+      0,  16,   0,   0,   0,   0, 
+      0,  70, 126,  16,   0,   0, 
+      0,   0,   0,   0,  96,  16, 
+      0,   0,   0,   0,   0,  31, 
+      0,   4,   3,  42,   0,  16, 
+      0,   0,   0,   0,   0,  54, 
+      0,   0,   8, 242,  32,  16, 
+      0,   0,   0,   0,   0,   2, 
+     64,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  62,   0,   0,   1,  21, 
+      0,   0,   1,  56,   0,   0, 
+      7, 114,   0,  16,   0,   1, 
+      0,   0,   0, 246,  15,  16, 
+      0,   1,   0,   0,   0,  70, 
+      2,  16,   0,   1,   0,   0, 
+      0,  69,   0,   0,   9, 242, 
       0,  16,   0,   0,   0,   0, 
-      0,  10,   0,  16, 128,  65, 
-      0,   0,   0,   0,   0,   0, 
-      0,  49,   0,   0,   7,  34, 
+      0,  70,  16,  16,   0,   1, 
+      0,   0,   0,  70, 126,  16, 
+      0,   1,   0,   0,   0,   0, 
+     96,  16,   0,   1,   0,   0, 
+      0,  56,   0,   0,   7, 242, 
+     32,  16,   0,   0,   0,   0, 
+      0, 246,  15,  16,   0,   0, 
+      0,   0,   0,  70,  14,  16, 
+      0,   1,   0,   0,   0,  62, 
+      0,   0,   1,  83,  84,  65, 
+     84, 116,   0,   0,   0,  19, 
+      0,   0,   0,   2,   0,   0, 
+      0,   0,   0,   0,   0,   3, 
+      0,   0,   0,   9,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   2,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   2,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   4,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  82,  68,  69,  70,  92, 
+      2,   0,   0,   1,   0,   0, 
+      0, 224,   0,   0,   0,   5, 
+      0,   0,   0,  28,   0,   0, 
+      0,   0,   4, 255, 255,   0, 
+      1,   0,   0,  43,   2,   0, 
+      0, 188,   0,   0,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0, 197,   0,   0, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0, 210, 
+      0,   0,   0,   2,   0,   0, 
+      0,   5,   0,   0,   0,   4, 
+      0,   0,   0, 255, 255, 255, 
+    255,   0,   0,   0,   0,   1, 
+      0,   0,   0,  12,   0,   0, 
+      0, 214,   0,   0,   0,   2, 
+      0,   0,   0,   5,   0,   0, 
+      0,   4,   0,   0,   0, 255, 
+    255, 255, 255,   1,   0,   0, 
+      0,   1,   0,   0,   0,  12, 
+      0,   0,   0, 219,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0, 115, 
+     83,  97, 109, 112, 108, 101, 
+    114,   0, 115,  77,  97, 115, 
+    107,  83,  97, 109, 112, 108, 
+    101, 114,   0, 116, 101, 120, 
+      0, 109,  97, 115, 107,   0, 
+     99,  98,  50,   0, 171, 219, 
+      0,   0,   0,   7,   0,   0, 
+      0, 248,   0,   0,   0, 112, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 160, 
+      1,   0,   0,   0,   0,   0, 
+      0,  44,   0,   0,   0,   0, 
+      0,   0,   0, 184,   1,   0, 
+      0,   0,   0,   0,   0, 200, 
+      1,   0,   0,  48,   0,   0, 
+      0,   8,   0,   0,   0,   0, 
+      0,   0,   0, 212,   1,   0, 
+      0,   0,   0,   0,   0, 228, 
+      1,   0,   0,  64,   0,   0, 
+      0,  12,   0,   0,   0,   2, 
+      0,   0,   0, 236,   1,   0, 
+      0,   0,   0,   0,   0, 252, 
+      1,   0,   0,  80,   0,   0, 
+      0,   8,   0,   0,   0,   2, 
+      0,   0,   0, 212,   1,   0, 
+      0,   0,   0,   0,   0,   4, 
+      2,   0,   0,  88,   0,   0, 
+      0,   4,   0,   0,   0,   0, 
+      0,   0,   0,   8,   2,   0, 
+      0,   0,   0,   0,   0,  24, 
+      2,   0,   0,  92,   0,   0, 
+      0,   4,   0,   0,   0,   2, 
+      0,   0,   0,   8,   2,   0, 
+      0,   0,   0,   0,   0,  32, 
+      2,   0,   0,  96,   0,   0, 
+      0,   4,   0,   0,   0,   0, 
+      0,   0,   0,   8,   2,   0, 
+      0,   0,   0,   0,   0,  68, 
+    101, 118, 105,  99, 101,  83, 
+    112,  97,  99, 101,  84, 111, 
+     85, 115, 101, 114,  83, 112, 
+     97,  99, 101,   0, 171,   3, 
+      0,   3,   0,   3,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0, 100, 105, 109, 
+    101, 110, 115, 105, 111, 110, 
+    115,   0, 171,   1,   0,   3, 
+      0,   1,   0,   2,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0, 100, 105, 102, 102,   0, 
+    171, 171, 171,   1,   0,   3, 
+      0,   1,   0,   3,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  99, 101, 110, 116, 101, 
+    114,  49,   0,  65,   0, 171, 
+    171,   0,   0,   3,   0,   1, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 114, 
+     97, 100, 105, 117, 115,  49, 
+      0, 115, 113,  95, 114,  97, 
+    100, 105, 117, 115,  49,   0, 
+     77, 105,  99, 114, 111, 115, 
+    111, 102, 116,  32,  40,  82, 
+     41,  32,  72,  76,  83,  76, 
+     32,  83, 104,  97, 100, 101, 
+    114,  32,  67, 111, 109, 112, 
+    105, 108, 101, 114,  32,  57, 
+     46,  50,  57,  46,  57,  53, 
+     50,  46,  51,  49,  49,  49, 
+      0,  73,  83,  71,  78, 104, 
+      0,   0,   0,   3,   0,   0, 
+      0,   8,   0,   0,   0,  80, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,  15,   0,   0,   0,  92, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   3, 
+      0,   0,   0,   1,   0,   0, 
+      0,   3,   3,   0,   0,  92, 
+      0,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,   3, 
+      0,   0,   0,   1,   0,   0, 
+      0,  12,  12,   0,   0,  83, 
+     86,  95,  80, 111, 115, 105, 
+    116, 105, 111, 110,   0,  84, 
+     69,  88,  67,  79,  79,  82, 
+     68,   0, 171, 171, 171,  79, 
+     83,  71,  78,  44,   0,   0, 
+      0,   1,   0,   0,   0,   8, 
+      0,   0,   0,  32,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
+      0,   0,   0,   0,   0,  15, 
+      0,   0,   0,  83,  86,  95, 
+     84,  97, 114, 103, 101, 116, 
+      0, 171, 171,  87,  35,   0, 
+      0,   0,   0,   0,   0,  65, 
+     80, 111, 115,  87, 114,  97, 
+    112,   0,   4,   7,   0,   0, 
+     68,  88,  66,  67, 171,   7, 
+     14, 215, 173,  41,  24, 247, 
+    237,   1,  38,  39, 209, 221, 
+    241, 232,   1,   0,   0,   0, 
+      4,   7,   0,   0,   6,   0, 
+      0,   0,  56,   0,   0,   0, 
+    148,   1,   0,   0, 104,   3, 
+      0,   0, 228,   3,   0,   0, 
+     96,   6,   0,   0, 148,   6, 
+      0,   0,  65, 111, 110,  57, 
+     84,   1,   0,   0,  84,   1, 
+      0,   0,   0,   2, 254, 255, 
+    252,   0,   0,   0,  88,   0, 
+      0,   0,   4,   0,  36,   0, 
+      0,   0,  84,   0,   0,   0, 
+     84,   0,   0,   0,  36,   0, 
+      1,   0,  84,   0,   0,   0, 
+      0,   0,   1,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   0,   1,   0,   2,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   2,   0,   3,   0, 
+      0,   0,   0,   0,   1,   0, 
+      3,   0,   1,   0,   5,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   2, 254, 255, 
+     81,   0,   0,   5,   6,   0, 
+     15, 160,   0,   0, 128,  63, 
+      0,   0,   0,  63,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     31,   0,   0,   2,   5,   0, 
+      0, 128,   0,   0,  15, 144, 
+      4,   0,   0,   4,   0,   0, 
+      3, 224,   0,   0, 228, 144, 
+      2,   0, 238, 160,   2,   0, 
+    228, 160,   4,   0,   0,   4, 
+      0,   0,   3, 128,   0,   0, 
+    228, 144,   1,   0, 238, 160, 
+      1,   0, 228, 160,   2,   0, 
+      0,   3,   0,   0,   4, 128, 
+      0,   0,   0, 128,   6,   0, 
+      0, 160,   5,   0,   0,   3, 
+      0,   0,   4, 128,   0,   0, 
+    170, 128,   5,   0,   0, 160, 
+      5,   0,   0,   3,   1,   0, 
+      1, 128,   0,   0, 170, 128, 
+      6,   0,  85, 160,   2,   0, 
+      0,   3,   0,   0,   4, 128, 
+      0,   0,  85, 129,   6,   0, 
+      0, 160,   2,   0,   0,   3, 
+      0,   0,   3, 192,   0,   0, 
+    228, 128,   0,   0, 228, 160, 
+      5,   0,   0,   3,   0,   0, 
+      1, 128,   0,   0, 170, 128, 
+      5,   0,  85, 160,   5,   0, 
+      0,   3,   1,   0,   2, 128, 
+      0,   0,   0, 128,   6,   0, 
+     85, 160,   1,   0,   0,   2, 
+      1,   0,   4, 128,   6,   0, 
+      0, 160,   8,   0,   0,   3, 
+      0,   0,   8, 224,   1,   0, 
+    228, 128,   3,   0, 228, 160, 
+      8,   0,   0,   3,   0,   0, 
+      4, 224,   1,   0, 228, 128, 
+      4,   0, 228, 160,   1,   0, 
+      0,   2,   0,   0,  12, 192, 
+      6,   0,  36, 160, 255, 255, 
+      0,   0,  83,  72,  68,  82, 
+    204,   1,   0,   0,  64,   0, 
+      1,   0, 115,   0,   0,   0, 
+     89,   0,   0,   4,  70, 142, 
+     32,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,  89,   0, 
+      0,   4,  70, 142,  32,   0, 
+      1,   0,   0,   0,   4,   0, 
+      0,   0,  95,   0,   0,   3, 
+     50,  16,  16,   0,   0,   0, 
+      0,   0, 103,   0,   0,   4, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+    101,   0,   0,   3,  50,  32, 
+     16,   0,   1,   0,   0,   0, 
+    101,   0,   0,   3, 194,  32, 
+     16,   0,   1,   0,   0,   0, 
+    104,   0,   0,   2,   2,   0, 
+      0,   0,  54,   0,   0,   8, 
+    194,  32,  16,   0,   0,   0, 
+      0,   0,   2,  64,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 128,  63,  50,   0, 
+      0,  11,  50,   0,  16,   0, 
+      0,   0,   0,   0,  70,  16, 
+     16,   0,   0,   0,   0,   0, 
+    230, 138,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     70, 128,  32,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5,  50,  32, 
+     16,   0,   0,   0,   0,   0, 
+     70,   0,  16,   0,   0,   0, 
+      0,   0,   0,   0,   0,   7, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0, 128,  63, 
+      0,   0,   0,   8,  34,   0, 
+     16,   0,   0,   0,   0,   0, 
+     26,   0,  16, 128,  65,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+    128,  63,  56,   0,   0,   8, 
+     50,   0,  16,   0,   0,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,  70, 128, 
+     32,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,  56,   0, 
+      0,  10,  50,   0,  16,   0, 
+      1,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+      2,  64,   0,   0,   0,   0, 
+      0,  63,   0,   0,   0,  63, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   5, 
+     66,   0,  16,   0,   1,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0, 128,  63,  16,   0, 
+      0,   8,  66,  32,  16,   0, 
+      1,   0,   0,   0,  70,   2, 
+     16,   0,   1,   0,   0,   0, 
+     70, 130,  32,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+     16,   0,   0,   8, 130,  32, 
+     16,   0,   1,   0,   0,   0, 
+     70,   2,  16,   0,   1,   0, 
+      0,   0,  70, 130,  32,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,  50,   0,   0,  11, 
+     50,  32,  16,   0,   1,   0, 
+      0,   0,  70,  16,  16,   0, 
+      0,   0,   0,   0, 230, 138, 
+     32,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,  70, 128, 
+     32,   0,   0,   0,   0,   0, 
+      2,   0,   0,   0,  62,   0, 
+      0,   1,  83,  84,  65,  84, 
+    116,   0,   0,   0,  12,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,   6,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     82,  68,  69,  70, 116,   2, 
+      0,   0,   2,   0,   0,   0, 
+    100,   0,   0,   0,   2,   0, 
+      0,   0,  28,   0,   0,   0, 
+      0,   4, 254, 255,   0,   1, 
+      0,   0,  67,   2,   0,   0, 
+     92,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,  96,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,  99,  98, 
+     48,   0,  99,  98,  50,   0, 
+     92,   0,   0,   0,   3,   0, 
+      0,   0, 148,   0,   0,   0, 
+     48,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     96,   0,   0,   0,   7,   0, 
+      0,   0,  16,   1,   0,   0, 
+    112,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    220,   0,   0,   0,   0,   0, 
+      0,   0,  16,   0,   0,   0, 
+      2,   0,   0,   0, 232,   0, 
+      0,   0,   0,   0,   0,   0, 
+    248,   0,   0,   0,  16,   0, 
+      0,   0,  16,   0,   0,   0, 
+      0,   0,   0,   0, 232,   0, 
+      0,   0,   0,   0,   0,   0, 
+      2,   1,   0,   0,  32,   0, 
+      0,   0,  16,   0,   0,   0, 
+      2,   0,   0,   0, 232,   0, 
+      0,   0,   0,   0,   0,   0, 
+     81, 117,  97, 100,  68, 101, 
+    115,  99,   0, 171, 171, 171, 
+      1,   0,   3,   0,   1,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  84, 101, 
+    120,  67, 111, 111, 114, 100, 
+    115,   0,  77,  97, 115, 107, 
+     84, 101, 120,  67, 111, 111, 
+    114, 100, 115,   0, 184,   1, 
+      0,   0,   0,   0,   0,   0, 
+     44,   0,   0,   0,   2,   0, 
+      0,   0, 208,   1,   0,   0, 
+      0,   0,   0,   0, 224,   1, 
+      0,   0,  48,   0,   0,   0, 
+      8,   0,   0,   0,   2,   0, 
+      0,   0, 236,   1,   0,   0, 
+      0,   0,   0,   0, 252,   1, 
+      0,   0,  64,   0,   0,   0, 
+     12,   0,   0,   0,   0,   0, 
+      0,   0,   4,   2,   0,   0, 
+      0,   0,   0,   0,  20,   2, 
+      0,   0,  80,   0,   0,   0, 
+      8,   0,   0,   0,   0,   0, 
+      0,   0, 236,   1,   0,   0, 
+      0,   0,   0,   0,  28,   2, 
+      0,   0,  88,   0,   0,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,  32,   2,   0,   0, 
+      0,   0,   0,   0,  48,   2, 
+      0,   0,  92,   0,   0,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,  32,   2,   0,   0, 
+      0,   0,   0,   0,  56,   2, 
+      0,   0,  96,   0,   0,   0, 
+      4,   0,   0,   0,   0,   0, 
+      0,   0,  32,   2,   0,   0, 
+      0,   0,   0,   0,  68, 101, 
+    118, 105,  99, 101,  83, 112, 
+     97,  99, 101,  84, 111,  85, 
+    115, 101, 114,  83, 112,  97, 
+     99, 101,   0, 171,   3,   0, 
+      3,   0,   3,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 100, 105, 109, 101, 
+    110, 115, 105, 111, 110, 115, 
+      0, 171,   1,   0,   3,   0, 
+      1,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    100, 105, 102, 102,   0, 171, 
+    171, 171,   1,   0,   3,   0, 
+      1,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     99, 101, 110, 116, 101, 114, 
+     49,   0,  65,   0, 171, 171, 
+      0,   0,   3,   0,   1,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 114,  97, 
+    100, 105, 117, 115,  49,   0, 
+    115, 113,  95, 114,  97, 100, 
+    105, 117, 115,  49,   0,  77, 
+    105,  99, 114, 111, 115, 111, 
+    102, 116,  32,  40,  82,  41, 
+     32,  72,  76,  83,  76,  32, 
+     83, 104,  97, 100, 101, 114, 
+     32,  67, 111, 109, 112, 105, 
+    108, 101, 114,  32,  57,  46, 
+     50,  57,  46,  57,  53,  50, 
+     46,  51,  49,  49,  49,   0, 
+     73,  83,  71,  78,  44,   0, 
+      0,   0,   1,   0,   0,   0, 
+      8,   0,   0,   0,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      7,   3,   0,   0,  80,  79, 
+     83,  73,  84,  73,  79,  78, 
+      0, 171, 171, 171,  79,  83, 
+     71,  78, 104,   0,   0,   0, 
+      3,   0,   0,   0,   8,   0, 
+      0,   0,  80,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,   3,  12, 
+      0,   0,  92,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+      1,   0,   0,   0,  12,   3, 
+      0,   0,  83,  86,  95,  80, 
+    111, 115, 105, 116, 105, 111, 
+    110,   0,  84,  69,  88,  67, 
+     79,  79,  82,  68,   0, 171, 
+    171, 171,  40,  43,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0, 224,   9, 
+      0,   0,  68,  88,  66,  67, 
+     24, 242,  43,  93, 196,  38, 
+    133, 163, 204,  85, 187,  56, 
+    214,  99,  96, 127,   1,   0, 
+      0,   0, 224,   9,   0,   0, 
+      6,   0,   0,   0,  56,   0, 
+      0,   0, 128,   2,   0,   0, 
+     88,   6,   0,   0, 212,   6, 
+      0,   0,  60,   9,   0,   0, 
+    172,   9,   0,   0,  65, 111, 
+    110,  57,  64,   2,   0,   0, 
+     64,   2,   0,   0,   0,   2, 
+    255, 255,   8,   2,   0,   0, 
+     56,   0,   0,   0,   1,   0, 
+     44,   0,   0,   0,  56,   0, 
+      0,   0,  56,   0,   2,   0, 
+     36,   0,   0,   0,  56,   0, 
+      0,   0,   0,   0,   1,   1, 
+      1,   0,   0,   0,   4,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   1,   2, 255, 255, 
+     81,   0,   0,   5,   3,   0, 
+     15, 160,   0,   0,   0,  63, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     81,   0,   0,   5,   4,   0, 
+     15, 160,   0,   0, 128,  63, 
+      0,   0, 128, 191,   0,   0, 
+      0,   0,   0,   0,   0, 128, 
+     31,   0,   0,   2,   0,   0, 
+      0, 128,   0,   0,  15, 176, 
+     31,   0,   0,   2,   0,   0, 
+      0, 144,   0,   8,  15, 160, 
+     31,   0,   0,   2,   0,   0, 
+      0, 144,   1,   8,  15, 160, 
+      2,   0,   0,   3,   0,   0, 
+      3, 128,   0,   0, 235, 176, 
+      1,   0, 228, 161,  90,   0, 
+      0,   4,   0,   0,   8, 128, 
+      0,   0, 228, 128,   0,   0, 
+    228, 128,   2,   0,   0, 161, 
+      5,   0,   0,   3,   0,   0, 
+      8, 128,   0,   0, 255, 128, 
+      1,   0, 170, 160,   1,   0, 
+      0,   2,   0,   0,   4, 128, 
+      1,   0, 255, 160,   8,   0, 
+      0,   3,   0,   0,   1, 128, 
+      0,   0, 228, 128,   0,   0, 
+    228, 160,   4,   0,   0,   4, 
+      0,   0,   2, 128,   0,   0, 
+      0, 128,   0,   0,   0, 128, 
+      0,   0, 255, 129,  35,   0, 
+      0,   2,   0,   0,   4, 128, 
+      0,   0,  85, 128,   7,   0, 
+      0,   2,   0,   0,   4, 128, 
+      0,   0, 170, 128,   6,   0, 
+      0,   2,   1,   0,   1, 128, 
+      0,   0, 170, 128,   1,   0, 
+      0,   2,   1,   0,   6, 128, 
+      1,   0,   0, 129,   2,   0, 
+      0,   3,   0,   0,  13, 128, 
+      0,   0,   0, 128,   1,   0, 
+    148, 128,   6,   0,   0,   2, 
+      1,   0,   1, 128,   1,   0, 
+    170, 160,   5,   0,   0,   3, 
+      0,   0,  13, 128,   0,   0, 
+    228, 128,   1,   0,   0, 128, 
+      1,   0,   0,   2,   1,   0, 
+      8, 128,   1,   0, 255, 160, 
+      4,   0,   0,   4,   1,   0, 
+      7, 128,   0,   0, 248, 128, 
+      0,   0, 170, 160,   1,   0, 
+    255, 128,  88,   0,   0,   4, 
+      2,   0,   1, 128,   1,   0, 
+      0, 128,   0,   0,   0, 128, 
+      0,   0, 255, 128,  88,   0, 
+      0,   4,   0,   0,  13, 128, 
+      1,   0, 148, 128,   4,   0, 
+     68, 160,   4,   0, 230, 160, 
+      1,   0,   0,   2,   2,   0, 
+      2, 128,   3,   0,   0, 160, 
+     66,   0,   0,   3,   1,   0, 
+     15, 128,   0,   0, 228, 176, 
+      1,   8, 228, 160,  66,   0, 
+      0,   3,   2,   0,  15, 128, 
+      2,   0, 228, 128,   0,   8, 
+    228, 160,   5,   0,   0,   3, 
+      2,   0,   7, 128,   2,   0, 
+    255, 128,   2,   0, 228, 128, 
+      5,   0,   0,   3,   1,   0, 
+     15, 128,   1,   0, 255, 128, 
+      2,   0, 228, 128,   2,   0, 
+      0,   3,   0,   0,   8, 128, 
+      0,   0, 255, 128,   0,   0, 
+      0, 128,  88,   0,   0,   4, 
+      0,   0,   1, 128,   0,   0, 
+    255, 128,   0,   0,   0, 128, 
+      0,   0, 170, 128,  88,   0, 
+      0,   4,   1,   0,  15, 128, 
+      0,   0,   0, 129,   4,   0, 
+    170, 160,   1,   0, 228, 128, 
+     88,   0,   0,   4,   0,   0, 
+     15, 128,   0,   0,  85, 128, 
+      1,   0, 228, 128,   4,   0, 
+    170, 160,   1,   0,   0,   2, 
+      0,   8,  15, 128,   0,   0, 
+    228, 128, 255, 255,   0,   0, 
+     83,  72,  68,  82, 208,   3, 
+      0,   0,  64,   0,   0,   0, 
+    244,   0,   0,   0,  89,   0, 
+      0,   4,  70, 142,  32,   0, 
+      0,   0,   0,   0,   7,   0, 
+      0,   0,  90,   0,   0,   3, 
+      0,  96,  16,   0,   0,   0, 
+      0,   0,  90,   0,   0,   3, 
+      0,  96,  16,   0,   1,   0, 
+      0,   0,  88,  24,   0,   4, 
+      0, 112,  16,   0,   0,   0, 
+      0,   0,  85,  85,   0,   0, 
+     88,  24,   0,   4,   0, 112, 
+     16,   0,   1,   0,   0,   0, 
+     85,  85,   0,   0,  98,  16, 
+      0,   3,  50,  16,  16,   0, 
+      1,   0,   0,   0,  98,  16, 
+      0,   3, 194,  16,  16,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   3, 242,  32,  16,   0, 
+      0,   0,   0,   0, 104,   0, 
+      0,   2,   3,   0,   0,   0, 
+      0,   0,   0,   9,  50,   0, 
+     16,   0,   0,   0,   0,   0, 
+    230,  26,  16,   0,   1,   0, 
+      0,   0,  70, 128,  32, 128, 
+     65,   0,   0,   0,   0,   0, 
+      0,   0,   5,   0,   0,   0, 
+     54,   0,   0,   6,  66,   0, 
+     16,   0,   0,   0,   0,   0, 
+     58, 128,  32,   0,   0,   0, 
+      0,   0,   5,   0,   0,   0, 
+     16,   0,   0,   8,  66,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70,   2,  16,   0,   0,   0, 
+      0,   0,  70, 130,  32,   0, 
+      0,   0,   0,   0,   4,   0, 
+      0,   0,  15,   0,   0,   7, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+      0,   0,   0,   9,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  10, 128,  32, 128, 
+     65,   0,   0,   0,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+     56,   0,   0,   8,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  42, 128,  32,   0, 
+      0,   0,   0,   0,   5,   0, 
+      0,   0,  50,   0,   0,  10, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  42,   0,  16,   0, 
+      0,   0,   0,   0,  42,   0, 
+     16,   0,   0,   0,   0,   0, 
+     10,   0,  16, 128,  65,   0, 
+      0,   0,   0,   0,   0,   0, 
+     49,   0,   0,   7,  34,   0, 
+     16,   0,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0,   0,   0,  75,   0, 
+      0,   6,  18,   0,  16,   0, 
+      1,   0,   0,   0,  10,   0, 
+     16, 128, 129,   0,   0,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   6,  34,   0,  16,   0, 
+      1,   0,   0,   0,  10,   0, 
+     16, 128,  65,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   7,  82,   0,  16,   0, 
+      0,   0,   0,   0, 166,  10, 
+     16,   0,   0,   0,   0,   0, 
+      6,   1,  16,   0,   1,   0, 
+      0,   0,  14,   0,   0,   8, 
+     82,   0,  16,   0,   0,   0, 
+      0,   0,   6,   2,  16,   0, 
+      0,   0,   0,   0, 166, 138, 
+     32,   0,   0,   0,   0,   0, 
+      5,   0,   0,   0,  56,   0, 
+      0,   8,  50,   0,  16,   0, 
+      1,   0,   0,   0, 134,   0, 
+     16,   0,   0,   0,   0,   0, 
+    166, 138,  32,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
+     29,   0,   0,   9,  50,   0, 
+     16,   0,   1,   0,   0,   0, 
+     70,   0,  16,   0,   1,   0, 
+      0,   0, 246, 143,  32, 128, 
+     65,   0,   0,   0,   0,   0, 
+      0,   0,   5,   0,   0,   0, 
+      1,   0,   0,  10,  50,   0, 
+     16,   0,   1,   0,   0,   0, 
+     70,   0,  16,   0,   1,   0, 
+      0,   0,   2,  64,   0,   0, 
+      0,   0, 128,  63,   0,   0, 
+    128,  63,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   8,  18,   0,  16,   0, 
+      0,   0,   0,   0,  42,   0, 
+     16, 128,  65,   0,   0,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     50,   0,   0,   9,  18,   0, 
+     16,   0,   2,   0,   0,   0, 
+     10,   0,  16,   0,   1,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  42,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   5,  34,   0, 
+     16,   0,   2,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,  63,  69,   0,   0,   9, 
+    242,   0,  16,   0,   2,   0, 
+      0,   0,  70,   0,  16,   0, 
+      2,   0,   0,   0,  70, 126, 
+     16,   0,   0,   0,   0,   0, 
+      0,  96,  16,   0,   0,   0, 
+      0,   0,  31,   0,   4,   3, 
+     26,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   8, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0,   2,  64,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  21,   0,   0,   1, 
+     52,   0,   0,   7,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+     26,   0,  16,   0,   1,   0, 
+      0,   0,  10,   0,  16,   0, 
+      1,   0,   0,   0,  29,   0, 
+      0,   7,  18,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,   0, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  31,   0,   4,   3, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   8, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0,   2,  64,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  62,   0, 
+      0,   1,  21,   0,   0,   1, 
+     56,   0,   0,   7, 114,   0, 
+     16,   0,   2,   0,   0,   0, 
+    246,  15,  16,   0,   2,   0, 
+      0,   0,  70,   2,  16,   0, 
+      2,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      0,   0,   0,   0,  70,  16, 
+     16,   0,   1,   0,   0,   0, 
+     70, 126,  16,   0,   1,   0, 
+      0,   0,   0,  96,  16,   0, 
+      1,   0,   0,   0,  56,   0, 
+      0,   7, 242,  32,  16,   0, 
+      0,   0,   0,   0, 246,  15, 
+     16,   0,   0,   0,   0,   0, 
+     70,  14,  16,   0,   2,   0, 
+      0,   0,  62,   0,   0,   1, 
+     83,  84,  65,  84, 116,   0, 
+      0,   0,  33,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   3,   0,   0,   0, 
+     17,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      5,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  82,  68, 
+     69,  70,  96,   2,   0,   0, 
+      1,   0,   0,   0, 228,   0, 
+      0,   0,   5,   0,   0,   0, 
+     28,   0,   0,   0,   0,   4, 
+    255, 255,   0,   1,   0,   0, 
+     47,   2,   0,   0, 188,   0, 
+      0,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+    201,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0, 214,   0,   0,   0, 
+      2,   0,   0,   0,   5,   0, 
+      0,   0,   4,   0,   0,   0, 
+    255, 255, 255, 255,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+     12,   0,   0,   0, 218,   0, 
+      0,   0,   2,   0,   0,   0, 
+      5,   0,   0,   0,   4,   0, 
+      0,   0, 255, 255, 255, 255, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,  12,   0,   0,   0, 
+    223,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0, 115,  87, 114,  97, 
+    112,  83,  97, 109, 112, 108, 
+    101, 114,   0, 115,  77,  97, 
+    115, 107,  83,  97, 109, 112, 
+    108, 101, 114,   0, 116, 101, 
+    120,   0, 109,  97, 115, 107, 
+      0,  99,  98,  50,   0, 171, 
+    223,   0,   0,   0,   7,   0, 
+      0,   0, 252,   0,   0,   0, 
+    112,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    164,   1,   0,   0,   0,   0, 
+      0,   0,  44,   0,   0,   0, 
+      0,   0,   0,   0, 188,   1, 
+      0,   0,   0,   0,   0,   0, 
+    204,   1,   0,   0,  48,   0, 
+      0,   0,   8,   0,   0,   0, 
+      0,   0,   0,   0, 216,   1, 
+      0,   0,   0,   0,   0,   0, 
+    232,   1,   0,   0,  64,   0, 
+      0,   0,  12,   0,   0,   0, 
+      2,   0,   0,   0, 240,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,   2,   0,   0,  80,   0, 
+      0,   0,   8,   0,   0,   0, 
+      2,   0,   0,   0, 216,   1, 
+      0,   0,   0,   0,   0,   0, 
+      8,   2,   0,   0,  88,   0, 
+      0,   0,   4,   0,   0,   0, 
+      2,   0,   0,   0,  12,   2, 
+      0,   0,   0,   0,   0,   0, 
+     28,   2,   0,   0,  92,   0, 
+      0,   0,   4,   0,   0,   0, 
+      2,   0,   0,   0,  12,   2, 
+      0,   0,   0,   0,   0,   0, 
+     36,   2,   0,   0,  96,   0, 
+      0,   0,   4,   0,   0,   0, 
+      2,   0,   0,   0,  12,   2, 
+      0,   0,   0,   0,   0,   0, 
+     68, 101, 118, 105,  99, 101, 
+     83, 112,  97,  99, 101,  84, 
+    111,  85, 115, 101, 114,  83, 
+    112,  97,  99, 101,   0, 171, 
+      3,   0,   3,   0,   3,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 100, 105, 
+    109, 101, 110, 115, 105, 111, 
+    110, 115,   0, 171,   1,   0, 
+      3,   0,   1,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 100, 105, 102, 102, 
+      0, 171, 171, 171,   1,   0, 
+      3,   0,   1,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  99, 101, 110, 116, 
+    101, 114,  49,   0,  65,   0, 
+    171, 171,   0,   0,   3,   0, 
+      1,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    114,  97, 100, 105, 117, 115, 
+     49,   0, 115, 113,  95, 114, 
+     97, 100, 105, 117, 115,  49, 
+      0,  77, 105,  99, 114, 111, 
+    115, 111, 102, 116,  32,  40, 
+     82,  41,  32,  72,  76,  83, 
+     76,  32,  83, 104,  97, 100, 
+    101, 114,  32,  67, 111, 109, 
+    112, 105, 108, 101, 114,  32, 
+     57,  46,  50,  57,  46,  57, 
+     53,  50,  46,  51,  49,  49, 
+     49,   0,  73,  83,  71,  78, 
+    104,   0,   0,   0,   3,   0, 
+      0,   0,   8,   0,   0,   0, 
+     80,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  15,   0,   0,   0, 
+     92,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,   3,   3,   0,   0, 
+     92,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,   1,   0, 
+      0,   0,  12,  12,   0,   0, 
+     83,  86,  95,  80, 111, 115, 
+    105, 116, 105, 111, 110,   0, 
+     84,  69,  88,  67,  79,  79, 
+     82,  68,   0, 171, 171, 171, 
+     79,  83,  71,  78,  44,   0, 
+      0,   0,   1,   0,   0,   0, 
+      8,   0,   0,   0,  32,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     15,   0,   0,   0,  83,  86, 
+     95,  84,  97, 114, 103, 101, 
+    116,   0, 171, 171,  68,  50, 
+      0,   0,   0,   0,   0,   0, 
+     65,  48,  87, 114,  97, 112, 
+      0,   4,   7,   0,   0,  68, 
+     88,  66,  67, 171,   7,  14, 
+    215, 173,  41,  24, 247, 237, 
+      1,  38,  39, 209, 221, 241, 
+    232,   1,   0,   0,   0,   4, 
+      7,   0,   0,   6,   0,   0, 
+      0,  56,   0,   0,   0, 148, 
+      1,   0,   0, 104,   3,   0, 
+      0, 228,   3,   0,   0,  96, 
+      6,   0,   0, 148,   6,   0, 
+      0,  65, 111, 110,  57,  84, 
+      1,   0,   0,  84,   1,   0, 
+      0,   0,   2, 254, 255, 252, 
+      0,   0,   0,  88,   0,   0, 
+      0,   4,   0,  36,   0,   0, 
+      0,  84,   0,   0,   0,  84, 
+      0,   0,   0,  36,   0,   1, 
+      0,  84,   0,   0,   0,   0, 
+      0,   1,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,   2, 
+      0,   1,   0,   2,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,   2,   0,   3,   0,   0, 
+      0,   0,   0,   1,   0,   3, 
+      0,   1,   0,   5,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   2, 254, 255,  81, 
+      0,   0,   5,   6,   0,  15, 
+    160,   0,   0, 128,  63,   0, 
+      0,   0,  63,   0,   0,   0, 
+      0,   0,   0,   0,   0,  31, 
+      0,   0,   2,   5,   0,   0, 
+    128,   0,   0,  15, 144,   4, 
+      0,   0,   4,   0,   0,   3, 
+    224,   0,   0, 228, 144,   2, 
+      0, 238, 160,   2,   0, 228, 
+    160,   4,   0,   0,   4,   0, 
+      0,   3, 128,   0,   0, 228, 
+    144,   1,   0, 238, 160,   1, 
+      0, 228, 160,   2,   0,   0, 
+      3,   0,   0,   4, 128,   0, 
+      0,   0, 128,   6,   0,   0, 
+    160,   5,   0,   0,   3,   0, 
+      0,   4, 128,   0,   0, 170, 
+    128,   5,   0,   0, 160,   5, 
+      0,   0,   3,   1,   0,   1, 
+    128,   0,   0, 170, 128,   6, 
+      0,  85, 160,   2,   0,   0, 
+      3,   0,   0,   4, 128,   0, 
+      0,  85, 129,   6,   0,   0, 
+    160,   2,   0,   0,   3,   0, 
+      0,   3, 192,   0,   0, 228, 
+    128,   0,   0, 228, 160,   5, 
+      0,   0,   3,   0,   0,   1, 
+    128,   0,   0, 170, 128,   5, 
+      0,  85, 160,   5,   0,   0, 
+      3,   1,   0,   2, 128,   0, 
+      0,   0, 128,   6,   0,  85, 
+    160,   1,   0,   0,   2,   1, 
+      0,   4, 128,   6,   0,   0, 
+    160,   8,   0,   0,   3,   0, 
+      0,   8, 224,   1,   0, 228, 
+    128,   3,   0, 228, 160,   8, 
+      0,   0,   3,   0,   0,   4, 
+    224,   1,   0, 228, 128,   4, 
+      0, 228, 160,   1,   0,   0, 
+      2,   0,   0,  12, 192,   6, 
+      0,  36, 160, 255, 255,   0, 
+      0,  83,  72,  68,  82, 204, 
+      1,   0,   0,  64,   0,   1, 
+      0, 115,   0,   0,   0,  89, 
+      0,   0,   4,  70, 142,  32, 
+      0,   0,   0,   0,   0,   3, 
+      0,   0,   0,  89,   0,   0, 
+      4,  70, 142,  32,   0,   1, 
+      0,   0,   0,   4,   0,   0, 
+      0,  95,   0,   0,   3,  50, 
+     16,  16,   0,   0,   0,   0, 
+      0, 103,   0,   0,   4, 242, 
+     32,  16,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0, 101, 
+      0,   0,   3,  50,  32,  16, 
+      0,   1,   0,   0,   0, 101, 
+      0,   0,   3, 194,  32,  16, 
+      0,   1,   0,   0,   0, 104, 
+      0,   0,   2,   2,   0,   0, 
+      0,  54,   0,   0,   8, 194, 
+     32,  16,   0,   0,   0,   0, 
+      0,   2,  64,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0, 128,  63,  50,   0,   0, 
+     11,  50,   0,  16,   0,   0, 
+      0,   0,   0,  70,  16,  16, 
+      0,   0,   0,   0,   0, 230, 
+    138,  32,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  70, 
+    128,  32,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  54, 
+      0,   0,   5,  50,  32,  16, 
+      0,   0,   0,   0,   0,  70, 
+      0,  16,   0,   0,   0,   0, 
+      0,   0,   0,   0,   7,  18, 
       0,  16,   0,   0,   0,   0, 
       0,  10,   0,  16,   0,   0, 
       0,   0,   0,   1,  64,   0, 
-      0,   0,   0,   0,   0,  75, 
-      0,   0,   6,  18,   0,  16, 
-      0,   1,   0,   0,   0,  10, 
-      0,  16, 128, 129,   0,   0, 
-      0,   0,   0,   0,   0,  54, 
-      0,   0,   6,  34,   0,  16, 
-      0,   1,   0,   0,   0,  10, 
+      0,   0,   0, 128,  63,   0, 
+      0,   0,   8,  34,   0,  16, 
+      0,   0,   0,   0,   0,  26, 
       0,  16, 128,  65,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   7,  82,   0,  16, 
-      0,   0,   0,   0,   0, 166, 
-     10,  16,   0,   0,   0,   0, 
-      0,   6,   1,  16,   0,   1, 
-      0,   0,   0,  14,   0,   0, 
-      8,  82,   0,  16,   0,   0, 
-      0,   0,   0,   6,   2,  16, 
-      0,   0,   0,   0,   0, 166, 
-    138,  32,   0,   0,   0,   0, 
-      0,   5,   0,   0,   0,  56, 
-      0,   0,   8,  50,   0,  16, 
-      0,   1,   0,   0,   0, 134, 
-      0,  16,   0,   0,   0,   0, 
-      0, 166, 138,  32,   0,   0, 
-      0,   0,   0,   4,   0,   0, 
-      0,  29,   0,   0,   9,  50, 
-      0,  16,   0,   1,   0,   0, 
-      0,  70,   0,  16,   0,   1, 
-      0,   0,   0, 246, 143,  32, 
-    128,  65,   0,   0,   0,   0, 
-      0,   0,   0,   5,   0,   0, 
-      0,   1,   0,   0,  10,  50, 
-      0,  16,   0,   1,   0,   0, 
-      0,  70,   0,  16,   0,   1, 
-      0,   0,   0,   2,  64,   0, 
-      0,   0,   0, 128,  63,   0, 
-      0, 128,  63,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   8,  18,   0,  16, 
-      0,   0,   0,   0,   0,  42, 
-      0,  16, 128,  65,   0,   0, 
-      0,   0,   0,   0,   0,  10, 
-      0,  16,   0,   0,   0,   0, 
-      0,  50,   0,   0,   9,  18, 
-      0,  16,   0,   2,   0,   0, 
-      0,  10,   0,  16,   0,   1, 
-      0,   0,   0,  10,   0,  16, 
-      0,   0,   0,   0,   0,  42, 
+      0,   0,   0,   0,   0,   1, 
+     64,   0,   0,   0,   0, 128, 
+     63,  56,   0,   0,   8,  50, 
       0,  16,   0,   0,   0,   0, 
-      0,  54,   0,   0,   5,  34, 
-      0,  16,   0,   2,   0,   0, 
-      0,   1,  64,   0,   0,   0, 
-      0,   0,  63,  69,   0,   0, 
-      9, 242,   0,  16,   0,   2, 
+      0,  70,   0,  16,   0,   0, 
+      0,   0,   0,  70, 128,  32, 
+      0,   1,   0,   0,   0,   3, 
+      0,   0,   0,  56,   0,   0, 
+     10,  50,   0,  16,   0,   1, 
       0,   0,   0,  70,   0,  16, 
-      0,   2,   0,   0,   0,  70, 
-    126,  16,   0,   0,   0,   0, 
-      0,   0,  96,  16,   0,   0, 
-      0,   0,   0,  31,   0,   4, 
-      3,  26,   0,  16,   0,   0, 
-      0,   0,   0,  54,   0,   0, 
-      8, 242,  32,  16,   0,   0, 
-      0,   0,   0,   2,  64,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,  62, 
-      0,   0,   1,  21,   0,   0, 
-      1,  52,   0,   0,   7,  18, 
-      0,  16,   0,   0,   0,   0, 
-      0,  26,   0,  16,   0,   1, 
-      0,   0,   0,  10,   0,  16, 
-      0,   1,   0,   0,   0,  29, 
-      0,   0,   7,  18,   0,  16, 
-      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   2, 
      64,   0,   0,   0,   0,   0, 
-      0,  10,   0,  16,   0,   0, 
-      0,   0,   0,  31,   0,   4, 
-      3,  10,   0,  16,   0,   0, 
-      0,   0,   0,  54,   0,   0, 
-      8, 242,  32,  16,   0,   0, 
-      0,   0,   0,   2,  64,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,  62, 
-      0,   0,   1,  21,   0,   0, 
-      1,  56,   0,   0,   7, 114, 
-      0,  16,   0,   2,   0,   0, 
-      0, 246,  15,  16,   0,   2, 
+     63,   0,   0,   0,  63,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  54,   0,   0,   5,  66, 
+      0,  16,   0,   1,   0,   0, 
+      0,   1,  64,   0,   0,   0, 
+      0, 128,  63,  16,   0,   0, 
+      8,  66,  32,  16,   0,   1, 
       0,   0,   0,  70,   2,  16, 
-      0,   2,   0,   0,   0,  69, 
-      0,   0,   9, 242,   0,  16, 
-      0,   0,   0,   0,   0,  70, 
-     16,  16,   0,   1,   0,   0, 
-      0,  70, 126,  16,   0,   1, 
-      0,   0,   0,   0,  96,  16, 
-      0,   1,   0,   0,   0,  56, 
-      0,   0,   7, 242,  32,  16, 
-      0,   0,   0,   0,   0, 246, 
-     15,  16,   0,   0,   0,   0, 
-      0,  70,  14,  16,   0,   2, 
+      0,   1,   0,   0,   0,  70, 
+    130,  32,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,  16, 
+      0,   0,   8, 130,  32,  16, 
+      0,   1,   0,   0,   0,  70, 
+      2,  16,   0,   1,   0,   0, 
+      0,  70, 130,  32,   0,   1, 
+      0,   0,   0,   1,   0,   0, 
+      0,  50,   0,   0,  11,  50, 
+     32,  16,   0,   1,   0,   0, 
+      0,  70,  16,  16,   0,   0, 
+      0,   0,   0, 230, 138,  32, 
+      0,   0,   0,   0,   0,   2, 
+      0,   0,   0,  70, 128,  32, 
+      0,   0,   0,   0,   0,   2, 
       0,   0,   0,  62,   0,   0, 
       1,  83,  84,  65,  84, 116, 
-      0,   0,   0,  33,   0,   0, 
+      0,   0,   0,  12,   0,   0, 
+      0,   2,   0,   0,   0,   0, 
+      0,   0,   0,   4,   0,   0, 
+      0,   6,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
       0,   3,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,  17,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   3,   0,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   5,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,  82, 
-     68,  69,  70,  92,   2,   0, 
-      0,   1,   0,   0,   0, 224, 
-      0,   0,   0,   5,   0,   0, 
+     68,  69,  70, 116,   2,   0, 
+      0,   2,   0,   0,   0, 100, 
+      0,   0,   0,   2,   0,   0, 
       0,  28,   0,   0,   0,   0, 
-      4, 255, 255,   0,   1,   0, 
-      0,  43,   2,   0,   0, 188, 
-      0,   0,   0,   3,   0,   0, 
+      4, 254, 255,   0,   1,   0, 
+      0,  67,   2,   0,   0,  92, 
+      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   1, 
       0,   0,   0,   0,   0,   0, 
-      0, 197,   0,   0,   0,   3, 
+      0,  96,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   1,   0,   0, 
       0,   1,   0,   0,   0,   0, 
-      0,   0,   0, 210,   0,   0, 
-      0,   2,   0,   0,   0,   5, 
-      0,   0,   0,   4,   0,   0, 
-      0, 255, 255, 255, 255,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  12,   0,   0,   0, 214, 
+      0,   0,   0,  99,  98,  48, 
+      0,  99,  98,  50,   0,  92, 
+      0,   0,   0,   3,   0,   0, 
+      0, 148,   0,   0,   0,  48, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  96, 
+      0,   0,   0,   7,   0,   0, 
+      0,  16,   1,   0,   0, 112, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 220, 
+      0,   0,   0,   0,   0,   0, 
+      0,  16,   0,   0,   0,   2, 
+      0,   0,   0, 232,   0,   0, 
+      0,   0,   0,   0,   0, 248, 
+      0,   0,   0,  16,   0,   0, 
+      0,  16,   0,   0,   0,   0, 
+      0,   0,   0, 232,   0,   0, 
+      0,   0,   0,   0,   0,   2, 
+      1,   0,   0,  32,   0,   0, 
+      0,  16,   0,   0,   0,   2, 
+      0,   0,   0, 232,   0,   0, 
+      0,   0,   0,   0,   0,  81, 
+    117,  97, 100,  68, 101, 115, 
+     99,   0, 171, 171, 171,   1, 
+      0,   3,   0,   1,   0,   4, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  84, 101, 120, 
+     67, 111, 111, 114, 100, 115, 
+      0,  77,  97, 115, 107,  84, 
+    101, 120,  67, 111, 111, 114, 
+    100, 115,   0, 184,   1,   0, 
+      0,   0,   0,   0,   0,  44, 
       0,   0,   0,   2,   0,   0, 
-      0,   5,   0,   0,   0,   4, 
-      0,   0,   0, 255, 255, 255, 
-    255,   1,   0,   0,   0,   1, 
-      0,   0,   0,  12,   0,   0, 
-      0, 219,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0, 115,  83,  97, 
-    109, 112, 108, 101, 114,   0, 
-    115,  77,  97, 115, 107,  83, 
-     97, 109, 112, 108, 101, 114, 
-      0, 116, 101, 120,   0, 109, 
-     97, 115, 107,   0,  99,  98, 
-     50,   0, 171, 219,   0,   0, 
-      0,   7,   0,   0,   0, 248, 
-      0,   0,   0, 112,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 160,   1,   0, 
-      0,   0,   0,   0,   0,  44, 
-      0,   0,   0,   0,   0,   0, 
-      0, 184,   1,   0,   0,   0, 
-      0,   0,   0, 200,   1,   0, 
+      0, 208,   1,   0,   0,   0, 
+      0,   0,   0, 224,   1,   0, 
       0,  48,   0,   0,   0,   8, 
-      0,   0,   0,   0,   0,   0, 
-      0, 212,   1,   0,   0,   0, 
-      0,   0,   0, 228,   1,   0, 
-      0,  64,   0,   0,   0,  12, 
       0,   0,   0,   2,   0,   0, 
       0, 236,   1,   0,   0,   0, 
       0,   0,   0, 252,   1,   0, 
+      0,  64,   0,   0,   0,  12, 
+      0,   0,   0,   0,   0,   0, 
+      0,   4,   2,   0,   0,   0, 
+      0,   0,   0,  20,   2,   0, 
       0,  80,   0,   0,   0,   8, 
-      0,   0,   0,   2,   0,   0, 
-      0, 212,   1,   0,   0,   0, 
-      0,   0,   0,   4,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0, 236,   1,   0,   0,   0, 
+      0,   0,   0,  28,   2,   0, 
       0,  88,   0,   0,   0,   4, 
-      0,   0,   0,   2,   0,   0, 
-      0,   8,   2,   0,   0,   0, 
-      0,   0,   0,  24,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  32,   2,   0,   0,   0, 
+      0,   0,   0,  48,   2,   0, 
       0,  92,   0,   0,   0,   4, 
-      0,   0,   0,   2,   0,   0, 
-      0,   8,   2,   0,   0,   0, 
-      0,   0,   0,  32,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  32,   2,   0,   0,   0, 
+      0,   0,   0,  56,   2,   0, 
       0,  96,   0,   0,   0,   4, 
-      0,   0,   0,   2,   0,   0, 
-      0,   8,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  32,   2,   0,   0,   0, 
       0,   0,   0,  68, 101, 118, 
     105,  99, 101,  83, 112,  97, 
      99, 101,  84, 111,  85, 115, 
     101, 114,  83, 112,  97,  99, 
     101,   0, 171,   3,   0,   3, 
       0,   3,   0,   3,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0, 100, 105, 109, 101, 110, 
@@ -2794,45 +5514,381 @@ const BYTE d2deffect[] =
      99, 114, 111, 115, 111, 102, 
     116,  32,  40,  82,  41,  32, 
      72,  76,  83,  76,  32,  83, 
     104,  97, 100, 101, 114,  32, 
      67, 111, 109, 112, 105, 108, 
     101, 114,  32,  57,  46,  50, 
      57,  46,  57,  53,  50,  46, 
      51,  49,  49,  49,   0,  73, 
-     83,  71,  78, 104,   0,   0, 
-      0,   3,   0,   0,   0,   8, 
-      0,   0,   0,  80,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,  15, 
-      0,   0,   0,  92,   0,   0, 
+     83,  71,  78,  44,   0,   0, 
+      0,   1,   0,   0,   0,   8, 
+      0,   0,   0,  32,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   3,   0,   0, 
-      0,   1,   0,   0,   0,   3, 
-      3,   0,   0,  92,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   1,   0,   0,   0,  12, 
-     12,   0,   0,  83,  86,  95, 
-     80, 111, 115, 105, 116, 105, 
-    111, 110,   0,  84,  69,  88, 
-     67,  79,  79,  82,  68,   0, 
+      0,   0,   0,   0,   0,   7, 
+      3,   0,   0,  80,  79,  83, 
+     73,  84,  73,  79,  78,   0, 
     171, 171, 171,  79,  83,  71, 
-     78,  44,   0,   0,   0,   1, 
+     78, 104,   0,   0,   0,   3, 
       0,   0,   0,   8,   0,   0, 
-      0,  32,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+      0,  80,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
       0,   3,   0,   0,   0,   0, 
       0,   0,   0,  15,   0,   0, 
-      0,  83,  86,  95,  84,  97, 
-    114, 103, 101, 116,   0, 171, 
-    171, 231,  17,   0,   0,   0, 
-      0,   0,   0,  80,  49,   0, 
+      0,  92,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,   1, 
+      0,   0,   0,   3,  12,   0, 
+      0,  92,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,   1, 
+      0,   0,   0,  12,   3,   0, 
+      0,  83,  86,  95,  80, 111, 
+    115, 105, 116, 105, 111, 110, 
+      0,  84,  69,  88,  67,  79, 
+     79,  82,  68,   0, 171, 171, 
+    171,  55,  60,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,   2,   0,   0,   0,   0, 
+      0,   0,   0, 192,   7,   0, 
+      0,  68,  88,  66,  67, 148, 
+    128,  74, 221, 199, 126,  74, 
+     95,   7, 207, 141,  28, 193, 
+     83,  71, 108,   1,   0,   0, 
+      0, 192,   7,   0,   0,   6, 
+      0,   0,   0,  56,   0,   0, 
+      0, 196,   1,   0,   0,  56, 
+      4,   0,   0, 180,   4,   0, 
+      0,  28,   7,   0,   0, 140, 
+      7,   0,   0,  65, 111, 110, 
+     57, 132,   1,   0,   0, 132, 
+      1,   0,   0,   0,   2, 255, 
+    255,  76,   1,   0,   0,  56, 
+      0,   0,   0,   1,   0,  44, 
+      0,   0,   0,  56,   0,   0, 
+      0,  56,   0,   2,   0,  36, 
+      0,   0,   0,  56,   0,   0, 
+      0,   0,   0,   1,   1,   1, 
+      0,   0,   0,   4,   0,   2, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   2, 255, 255,  81, 
+      0,   0,   5,   2,   0,  15, 
+    160,   0,   0,   0,  63,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  31, 
+      0,   0,   2,   0,   0,   0, 
+    128,   0,   0,  15, 176,  31, 
+      0,   0,   2,   0,   0,   0, 
+    144,   0,   8,  15, 160,  31, 
+      0,   0,   2,   0,   0,   0, 
+    144,   1,   8,  15, 160,   5, 
+      0,   0,   3,   0,   0,   8, 
+    128,   1,   0, 255, 160,   1, 
+      0, 255, 160,   2,   0,   0, 
+      3,   0,   0,   3, 128,   0, 
+      0, 235, 176,   1,   0, 228, 
+    161,  90,   0,   0,   4,   0, 
+      0,   8, 128,   0,   0, 228, 
+    128,   0,   0, 228, 128,   0, 
+      0, 255, 129,   5,   0,   0, 
+      3,   0,   0,   8, 128,   0, 
+      0, 255, 128,   2,   0,   0, 
+    160,   1,   0,   0,   2,   0, 
+      0,   4, 128,   1,   0, 255, 
+    160,   8,   0,   0,   3,   0, 
+      0,   1, 128,   0,   0, 228, 
+    128,   0,   0, 228, 160,   6, 
+      0,   0,   2,   0,   0,   1, 
+    128,   0,   0,   0, 128,   5, 
+      0,   0,   3,   0,   0,   1, 
+    128,   0,   0,   0, 128,   0, 
+      0, 255, 128,   1,   0,   0, 
+      2,   0,   0,   2, 128,   2, 
+      0,   0, 160,  66,   0,   0, 
+      3,   1,   0,  15, 128,   0, 
+      0, 228, 176,   1,   8, 228, 
+    160,  66,   0,   0,   3,   2, 
+      0,  15, 128,   0,   0, 228, 
+    128,   0,   8, 228, 160,   1, 
+      0,   0,   2,   0,   0,   8, 
+    128,   1,   0, 255, 160,   4, 
+      0,   0,   4,   0,   0,   1, 
+    128,   0,   0,   0, 128,   0, 
+      0, 170, 161,   0,   0, 255, 
+    129,   5,   0,   0,   3,   2, 
+      0,   7, 128,   2,   0, 255, 
+    128,   2,   0, 228, 128,   5, 
+      0,   0,   3,   1,   0,  15, 
+    128,   1,   0, 255, 128,   2, 
+      0, 228, 128,  88,   0,   0, 
+      4,   0,   0,  15, 128,   0, 
+      0,   0, 128,   2,   0,  85, 
+    160,   1,   0, 228, 128,   1, 
+      0,   0,   2,   0,   8,  15, 
+    128,   0,   0, 228, 128, 255, 
+    255,   0,   0,  83,  72,  68, 
+     82, 108,   2,   0,   0,  64, 
+      0,   0,   0, 155,   0,   0, 
+      0,  89,   0,   0,   4,  70, 
+    142,  32,   0,   0,   0,   0, 
+      0,   6,   0,   0,   0,  90, 
+      0,   0,   3,   0,  96,  16, 
+      0,   0,   0,   0,   0,  90, 
+      0,   0,   3,   0,  96,  16, 
+      0,   1,   0,   0,   0,  88, 
+     24,   0,   4,   0, 112,  16, 
+      0,   0,   0,   0,   0,  85, 
+     85,   0,   0,  88,  24,   0, 
+      4,   0, 112,  16,   0,   1, 
+      0,   0,   0,  85,  85,   0, 
+      0,  98,  16,   0,   3,  50, 
+     16,  16,   0,   1,   0,   0, 
+      0,  98,  16,   0,   3, 194, 
+     16,  16,   0,   1,   0,   0, 
+      0, 101,   0,   0,   3, 242, 
+     32,  16,   0,   0,   0,   0, 
+      0, 104,   0,   0,   2,   2, 
+      0,   0,   0,   0,   0,   0, 
+      9,  50,   0,  16,   0,   0, 
+      0,   0,   0, 230,  26,  16, 
+      0,   1,   0,   0,   0,  70, 
+    128,  32, 128,  65,   0,   0, 
+      0,   0,   0,   0,   0,   5, 
+      0,   0,   0,  54,   0,   0, 
+      6,  66,   0,  16,   0,   0, 
+      0,   0,   0,  58, 128,  32, 
+      0,   0,   0,   0,   0,   5, 
+      0,   0,   0,  16,   0,   0, 
+      8,  66,   0,  16,   0,   0, 
+      0,   0,   0,  70,   2,  16, 
+      0,   0,   0,   0,   0,  70, 
+    130,  32,   0,   0,   0,   0, 
+      0,   4,   0,   0,   0,  15, 
+      0,   0,   7,  18,   0,  16, 
+      0,   0,   0,   0,   0,  70, 
+      0,  16,   0,   0,   0,   0, 
+      0,  70,   0,  16,   0,   0, 
+      0,   0,   0,  50,   0,   0, 
+     12,  18,   0,  16,   0,   0, 
+      0,   0,   0,  58, 128,  32, 
+    128,  65,   0,   0,   0,   0, 
+      0,   0,   0,   5,   0,   0, 
+      0,  58, 128,  32,   0,   0, 
+      0,   0,   0,   5,   0,   0, 
+      0,  10,   0,  16,   0,   0, 
+      0,   0,   0,  56,   0,   0, 
+      7,  18,   0,  16,   0,   0, 
+      0,   0,   0,  10,   0,  16, 
+      0,   0,   0,   0,   0,   1, 
+     64,   0,   0,   0,   0,   0, 
+     63,  14,   0,   0,   7,  18, 
+      0,  16,   0,   0,   0,   0, 
+      0,  10,   0,  16,   0,   0, 
+      0,   0,   0,  42,   0,  16, 
+      0,   0,   0,   0,   0,  56, 
+      0,   0,   8,  66,   0,  16, 
+      0,   0,   0,   0,   0,  10, 
+      0,  16,   0,   0,   0,   0, 
+      0,  42, 128,  32,   0,   0, 
+      0,   0,   0,   4,   0,   0, 
+      0,  29,   0,   0,   9,  66, 
+      0,  16,   0,   0,   0,   0, 
+      0,  58, 128,  32, 128,  65, 
+      0,   0,   0,   0,   0,   0, 
+      0,   5,   0,   0,   0,  42, 
+      0,  16,   0,   0,   0,   0, 
+      0,  54,   0,   0,   5,  34, 
+      0,  16,   0,   0,   0,   0, 
+      0,   1,  64,   0,   0,   0, 
+      0,   0,  63,  69,   0,   0, 
+      9, 242,   0,  16,   0,   1, 
+      0,   0,   0,  70,   0,  16, 
+      0,   0,   0,   0,   0,  70, 
+    126,  16,   0,   0,   0,   0, 
+      0,   0,  96,  16,   0,   0, 
+      0,   0,   0,  31,   0,   4, 
+      3,  42,   0,  16,   0,   0, 
+      0,   0,   0,  54,   0,   0, 
+      8, 242,  32,  16,   0,   0, 
+      0,   0,   0,   2,  64,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  62, 
+      0,   0,   1,  21,   0,   0, 
+      1,  56,   0,   0,   7, 114, 
+      0,  16,   0,   1,   0,   0, 
+      0, 246,  15,  16,   0,   1, 
+      0,   0,   0,  70,   2,  16, 
+      0,   1,   0,   0,   0,  69, 
+      0,   0,   9, 242,   0,  16, 
+      0,   0,   0,   0,   0,  70, 
+     16,  16,   0,   1,   0,   0, 
+      0,  70, 126,  16,   0,   1, 
+      0,   0,   0,   0,  96,  16, 
+      0,   1,   0,   0,   0,  56, 
+      0,   0,   7, 242,  32,  16, 
+      0,   0,   0,   0,   0, 246, 
+     15,  16,   0,   0,   0,   0, 
+      0,  70,  14,  16,   0,   1, 
+      0,   0,   0,  62,   0,   0, 
+      1,  83,  84,  65,  84, 116, 
+      0,   0,   0,  19,   0,   0, 
+      0,   2,   0,   0,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
+      0,   9,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   2,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   2, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   4,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  82, 
+     68,  69,  70,  96,   2,   0, 
+      0,   1,   0,   0,   0, 228, 
+      0,   0,   0,   5,   0,   0, 
+      0,  28,   0,   0,   0,   0, 
+      4, 255, 255,   0,   1,   0, 
+      0,  47,   2,   0,   0, 188, 
+      0,   0,   0,   3,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0, 201,   0,   0,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0, 214,   0,   0, 
+      0,   2,   0,   0,   0,   5, 
+      0,   0,   0,   4,   0,   0, 
+      0, 255, 255, 255, 255,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,  12,   0,   0,   0, 218, 
+      0,   0,   0,   2,   0,   0, 
+      0,   5,   0,   0,   0,   4, 
+      0,   0,   0, 255, 255, 255, 
+    255,   1,   0,   0,   0,   1, 
+      0,   0,   0,  12,   0,   0, 
+      0, 223,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0, 115,  87, 114, 
+     97, 112,  83,  97, 109, 112, 
+    108, 101, 114,   0, 115,  77, 
+     97, 115, 107,  83,  97, 109, 
+    112, 108, 101, 114,   0, 116, 
+    101, 120,   0, 109,  97, 115, 
+    107,   0,  99,  98,  50,   0, 
+    171, 223,   0,   0,   0,   7, 
+      0,   0,   0, 252,   0,   0, 
+      0, 112,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0, 164,   1,   0,   0,   0, 
+      0,   0,   0,  44,   0,   0, 
+      0,   0,   0,   0,   0, 188, 
+      1,   0,   0,   0,   0,   0, 
+      0, 204,   1,   0,   0,  48, 
+      0,   0,   0,   8,   0,   0, 
+      0,   0,   0,   0,   0, 216, 
+      1,   0,   0,   0,   0,   0, 
+      0, 232,   1,   0,   0,  64, 
+      0,   0,   0,  12,   0,   0, 
+      0,   2,   0,   0,   0, 240, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,  80, 
+      0,   0,   0,   8,   0,   0, 
+      0,   2,   0,   0,   0, 216, 
+      1,   0,   0,   0,   0,   0, 
+      0,   8,   2,   0,   0,  88, 
+      0,   0,   0,   4,   0,   0, 
+      0,   0,   0,   0,   0,  12, 
+      2,   0,   0,   0,   0,   0, 
+      0,  28,   2,   0,   0,  92, 
+      0,   0,   0,   4,   0,   0, 
+      0,   2,   0,   0,   0,  12, 
+      2,   0,   0,   0,   0,   0, 
+      0,  36,   2,   0,   0,  96, 
+      0,   0,   0,   4,   0,   0, 
+      0,   0,   0,   0,   0,  12, 
+      2,   0,   0,   0,   0,   0, 
+      0,  68, 101, 118, 105,  99, 
+    101,  83, 112,  97,  99, 101, 
+     84, 111,  85, 115, 101, 114, 
+     83, 112,  97,  99, 101,   0, 
+    171,   3,   0,   3,   0,   3, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 100, 
+    105, 109, 101, 110, 115, 105, 
+    111, 110, 115,   0, 171,   1, 
+      0,   3,   0,   1,   0,   2, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0, 100, 105, 102, 
+    102,   0, 171, 171, 171,   1, 
+      0,   3,   0,   1,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  99, 101, 110, 
+    116, 101, 114,  49,   0,  65, 
+      0, 171, 171,   0,   0,   3, 
+      0,   1,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0, 114,  97, 100, 105, 117, 
+    115,  49,   0, 115, 113,  95, 
+    114,  97, 100, 105, 117, 115, 
+     49,   0,  77, 105,  99, 114, 
+    111, 115, 111, 102, 116,  32, 
+     40,  82,  41,  32,  72,  76, 
+     83,  76,  32,  83, 104,  97, 
+    100, 101, 114,  32,  67, 111, 
+    109, 112, 105, 108, 101, 114, 
+     32,  57,  46,  50,  57,  46, 
+     57,  53,  50,  46,  51,  49, 
+     49,  49,   0,  73,  83,  71, 
+     78, 104,   0,   0,   0,   3, 
+      0,   0,   0,   8,   0,   0, 
+      0,  80,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0,  15,   0,   0, 
+      0,  92,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,   1, 
+      0,   0,   0,   3,   3,   0, 
+      0,  92,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,   1, 
+      0,   0,   0,  12,  12,   0, 
+      0,  83,  86,  95,  80, 111, 
+    115, 105, 116, 105, 111, 110, 
+      0,  84,  69,  88,  67,  79, 
+     79,  82,  68,   0, 171, 171, 
+    171,  79,  83,  71,  78,  44, 
+      0,   0,   0,   1,   0,   0, 
+      0,   8,   0,   0,   0,  32, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,  15,   0,   0,   0,  83, 
+     86,  95,  84,  97, 114, 103, 
+    101, 116,   0, 171, 171,  83, 
+     67,   0,   0,   0,   0,   0, 
+      0,  65,  80, 111, 115,  77, 
+    105, 114, 114, 111, 114,   0, 
       4,   7,   0,   0,  68,  88, 
      66,  67, 171,   7,  14, 215, 
     173,  41,  24, 247, 237,   1, 
      38,  39, 209, 221, 241, 232, 
       1,   0,   0,   0,   4,   7, 
       0,   0,   6,   0,   0,   0, 
      56,   0,   0,   0, 148,   1, 
       0,   0, 104,   3,   0,   0, 
@@ -3123,291 +6179,383 @@ const BYTE d2deffect[] =
      92,   0,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
       3,   0,   0,   0,   1,   0, 
       0,   0,  12,   3,   0,   0, 
      83,  86,  95,  80, 111, 115, 
     105, 116, 105, 111, 110,   0, 
      84,  69,  88,  67,  79,  79, 
      82,  68,   0, 171, 171, 171, 
-    210,  27,   0,   0,   0,   0, 
+     42,  75,   0,   0,   0,   0, 
       0,   0,   1,   0,   0,   0, 
       2,   0,   0,   0,   0,   0, 
-      0,   0, 188,   7,   0,   0, 
-     68,  88,  66,  67, 158, 207, 
-    216, 153, 107, 204, 140, 217, 
-    118, 241, 126, 175, 204, 121, 
-     49,  49,   1,   0,   0,   0, 
-    188,   7,   0,   0,   6,   0, 
+      0,   0, 228,   9,   0,   0, 
+     68,  88,  66,  67,  90, 139, 
+    199, 161, 131,   3,  38, 117, 
+    153, 113,  42, 204,  54, 196, 
+    132,  44,   1,   0,   0,   0, 
+    228,   9,   0,   0,   6,   0, 
       0,   0,  56,   0,   0,   0, 
-    196,   1,   0,   0,  56,   4, 
-      0,   0, 180,   4,   0,   0, 
-     24,   7,   0,   0, 136,   7, 
+    128,   2,   0,   0,  88,   6, 
+      0,   0, 212,   6,   0,   0, 
+     64,   9,   0,   0, 176,   9, 
       0,   0,  65, 111, 110,  57, 
-    132,   1,   0,   0, 132,   1, 
+     64,   2,   0,   0,  64,   2, 
       0,   0,   0,   2, 255, 255, 
-     76,   1,   0,   0,  56,   0, 
+      8,   2,   0,   0,  56,   0, 
       0,   0,   1,   0,  44,   0, 
       0,   0,  56,   0,   0,   0, 
      56,   0,   2,   0,  36,   0, 
       0,   0,  56,   0,   0,   0, 
       0,   0,   1,   1,   1,   0, 
-      0,   0,   4,   0,   2,   0, 
+      0,   0,   4,   0,   3,   0, 
       0,   0,   0,   0,   0,   0, 
       1,   2, 255, 255,  81,   0, 
-      0,   5,   2,   0,  15, 160, 
+      0,   5,   3,   0,  15, 160, 
       0,   0,   0,  63,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  31,   0, 
+      0,   0,   0,   0,  81,   0, 
+      0,   5,   4,   0,  15, 160, 
+      0,   0, 128,  63,   0,   0, 
+    128, 191,   0,   0,   0,   0, 
+      0,   0,   0, 128,  31,   0, 
       0,   2,   0,   0,   0, 128, 
       0,   0,  15, 176,  31,   0, 
       0,   2,   0,   0,   0, 144, 
       0,   8,  15, 160,  31,   0, 
       0,   2,   0,   0,   0, 144, 
-      1,   8,  15, 160,   5,   0, 
-      0,   3,   0,   0,   8, 128, 
-      1,   0, 255, 160,   1,   0, 
-    255, 160,   2,   0,   0,   3, 
-      0,   0,   3, 128,   0,   0, 
-    235, 176,   1,   0, 228, 161, 
-     90,   0,   0,   4,   0,   0, 
-      8, 128,   0,   0, 228, 128, 
-      0,   0, 228, 128,   0,   0, 
-    255, 129,   5,   0,   0,   3, 
+      1,   8,  15, 160,   2,   0, 
+      0,   3,   0,   0,   3, 128, 
+      0,   0, 235, 176,   1,   0, 
+    228, 161,  90,   0,   0,   4, 
       0,   0,   8, 128,   0,   0, 
-    255, 128,   2,   0,   0, 160, 
-      1,   0,   0,   2,   0,   0, 
-      4, 128,   1,   0, 255, 160, 
-      8,   0,   0,   3,   0,   0, 
-      1, 128,   0,   0, 228, 128, 
-      0,   0, 228, 160,   6,   0, 
-      0,   2,   0,   0,   1, 128, 
-      0,   0,   0, 128,   5,   0, 
-      0,   3,   0,   0,   1, 128, 
+    228, 128,   0,   0, 228, 128, 
+      2,   0,   0, 161,   5,   0, 
+      0,   3,   0,   0,   8, 128, 
+      0,   0, 255, 128,   1,   0, 
+    170, 160,   1,   0,   0,   2, 
+      0,   0,   4, 128,   1,   0, 
+    255, 160,   8,   0,   0,   3, 
+      0,   0,   1, 128,   0,   0, 
+    228, 128,   0,   0, 228, 160, 
+      4,   0,   0,   4,   0,   0, 
+      2, 128,   0,   0,   0, 128, 
       0,   0,   0, 128,   0,   0, 
-    255, 128,   1,   0,   0,   2, 
-      0,   0,   2, 128,   2,   0, 
-      0, 160,  66,   0,   0,   3, 
-      1,   0,  15, 128,   0,   0, 
-    228, 176,   1,   8, 228, 160, 
-     66,   0,   0,   3,   2,   0, 
-     15, 128,   0,   0, 228, 128, 
-      0,   8, 228, 160,   1,   0, 
-      0,   2,   0,   0,   8, 128, 
+    255, 129,  35,   0,   0,   2, 
+      0,   0,   4, 128,   0,   0, 
+     85, 128,   7,   0,   0,   2, 
+      0,   0,   4, 128,   0,   0, 
+    170, 128,   6,   0,   0,   2, 
+      1,   0,   1, 128,   0,   0, 
+    170, 128,   1,   0,   0,   2, 
+      1,   0,   6, 128,   1,   0, 
+      0, 129,   2,   0,   0,   3, 
+      0,   0,  13, 128,   0,   0, 
+      0, 128,   1,   0, 148, 128, 
+      6,   0,   0,   2,   1,   0, 
+      1, 128,   1,   0, 170, 160, 
+      5,   0,   0,   3,   0,   0, 
+     13, 128,   0,   0, 228, 128, 
+      1,   0,   0, 128,   1,   0, 
+      0,   2,   1,   0,   8, 128, 
       1,   0, 255, 160,   4,   0, 
-      0,   4,   0,   0,   1, 128, 
+      0,   4,   1,   0,   7, 128, 
+      0,   0, 248, 128,   0,   0, 
+    170, 160,   1,   0, 255, 128, 
+     88,   0,   0,   4,   2,   0, 
+      1, 128,   1,   0,   0, 128, 
       0,   0,   0, 128,   0,   0, 
-    170, 161,   0,   0, 255, 129, 
+    255, 128,  88,   0,   0,   4, 
+      0,   0,  13, 128,   1,   0, 
+    148, 128,   4,   0,  68, 160, 
+      4,   0, 230, 160,   1,   0, 
+      0,   2,   2,   0,   2, 128, 
+      3,   0,   0, 160,  66,   0, 
+      0,   3,   1,   0,  15, 128, 
+      0,   0, 228, 176,   1,   8, 
+    228, 160,  66,   0,   0,   3, 
+      2,   0,  15, 128,   2,   0, 
+    228, 128,   0,   8, 228, 160, 
       5,   0,   0,   3,   2,   0, 
       7, 128,   2,   0, 255, 128, 
       2,   0, 228, 128,   5,   0, 
       0,   3,   1,   0,  15, 128, 
       1,   0, 255, 128,   2,   0, 
-    228, 128,  88,   0,   0,   4, 
-      0,   0,  15, 128,   0,   0, 
-      0, 128,   2,   0,  85, 160, 
-      1,   0, 228, 128,   1,   0, 
-      0,   2,   0,   8,  15, 128, 
-      0,   0, 228, 128, 255, 255, 
-      0,   0,  83,  72,  68,  82, 
-    108,   2,   0,   0,  64,   0, 
-      0,   0, 155,   0,   0,   0, 
-     89,   0,   0,   4,  70, 142, 
-     32,   0,   0,   0,   0,   0, 
-      6,   0,   0,   0,  90,   0, 
-      0,   3,   0,  96,  16,   0, 
-      0,   0,   0,   0,  90,   0, 
-      0,   3,   0,  96,  16,   0, 
-      1,   0,   0,   0,  88,  24, 
-      0,   4,   0, 112,  16,   0, 
-      0,   0,   0,   0,  85,  85, 
-      0,   0,  88,  24,   0,   4, 
-      0, 112,  16,   0,   1,   0, 
-      0,   0,  85,  85,   0,   0, 
-     98,  16,   0,   3,  50,  16, 
+    228, 128,   2,   0,   0,   3, 
+      0,   0,   8, 128,   0,   0, 
+    255, 128,   0,   0,   0, 128, 
+     88,   0,   0,   4,   0,   0, 
+      1, 128,   0,   0, 255, 128, 
+      0,   0,   0, 128,   0,   0, 
+    170, 128,  88,   0,   0,   4, 
+      1,   0,  15, 128,   0,   0, 
+      0, 129,   4,   0, 170, 160, 
+      1,   0, 228, 128,  88,   0, 
+      0,   4,   0,   0,  15, 128, 
+      0,   0,  85, 128,   1,   0, 
+    228, 128,   4,   0, 170, 160, 
+      1,   0,   0,   2,   0,   8, 
+     15, 128,   0,   0, 228, 128, 
+    255, 255,   0,   0,  83,  72, 
+     68,  82, 208,   3,   0,   0, 
+     64,   0,   0,   0, 244,   0, 
+      0,   0,  89,   0,   0,   4, 
+     70, 142,  32,   0,   0,   0, 
+      0,   0,   7,   0,   0,   0, 
+     90,   0,   0,   3,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     90,   0,   0,   3,   0,  96, 
      16,   0,   1,   0,   0,   0, 
-     98,  16,   0,   3, 194,  16, 
-     16,   0,   1,   0,   0,   0, 
-    101,   0,   0,   3, 242,  32, 
+     88,  24,   0,   4,   0, 112, 
      16,   0,   0,   0,   0,   0, 
-    104,   0,   0,   2,   2,   0, 
-      0,   0,   0,   0,   0,   9, 
-     50,   0,  16,   0,   0,   0, 
-      0,   0, 230,  26,  16,   0, 
-      1,   0,   0,   0,  70, 128, 
-     32, 128,  65,   0,   0,   0, 
-      0,   0,   0,   0,   5,   0, 
-      0,   0,  54,   0,   0,   6, 
-     66,   0,  16,   0,   0,   0, 
-      0,   0,  58, 128,  32,   0, 
-      0,   0,   0,   0,   5,   0, 
-      0,   0,  16,   0,   0,   8, 
-     66,   0,  16,   0,   0,   0, 
-      0,   0,  70,   2,  16,   0, 
-      0,   0,   0,   0,  70, 130, 
+     85,  85,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      1,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0,  98,  16,   0,   3, 
+    194,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      3,   0,   0,   0,   0,   0, 
+      0,   9,  50,   0,  16,   0, 
+      0,   0,   0,   0, 230,  26, 
+     16,   0,   1,   0,   0,   0, 
+     70, 128,  32, 128,  65,   0, 
+      0,   0,   0,   0,   0,   0, 
+      5,   0,   0,   0,  54,   0, 
+      0,   6,  66,   0,  16,   0, 
+      0,   0,   0,   0,  58, 128, 
      32,   0,   0,   0,   0,   0, 
-      4,   0,   0,   0,  15,   0, 
-      0,   7,  18,   0,  16,   0, 
-      0,   0,   0,   0,  70,   0, 
+      5,   0,   0,   0,  16,   0, 
+      0,   8,  66,   0,  16,   0, 
+      0,   0,   0,   0,  70,   2, 
+     16,   0,   0,   0,   0,   0, 
+     70, 130,  32,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
+     15,   0,   0,   7,  18,   0, 
      16,   0,   0,   0,   0,   0, 
      70,   0,  16,   0,   0,   0, 
-      0,   0,  50,   0,   0,  12, 
-     18,   0,  16,   0,   0,   0, 
-      0,   0,  58, 128,  32, 128, 
-     65,   0,   0,   0,   0,   0, 
-      0,   0,   5,   0,   0,   0, 
-     58, 128,  32,   0,   0,   0, 
-      0,   0,   5,   0,   0,   0, 
-     10,   0,  16,   0,   0,   0, 
-      0,   0,  56,   0,   0,   7, 
-     18,   0,  16,   0,   0,   0, 
-      0,   0,  10,   0,  16,   0, 
-      0,   0,   0,   0,   1,  64, 
-      0,   0,   0,   0,   0,  63, 
-     14,   0,   0,   7,  18,   0, 
+      0,   0,  70,   0,  16,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   9,  18,   0,  16,   0, 
+      0,   0,   0,   0,  10,   0, 
      16,   0,   0,   0,   0,   0, 
-     10,   0,  16,   0,   0,   0, 
-      0,   0,  42,   0,  16,   0, 
-      0,   0,   0,   0,  56,   0, 
-      0,   8,  66,   0,  16,   0, 
+     10, 128,  32, 128,  65,   0, 
+      0,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,  56,   0, 
+      0,   8,  18,   0,  16,   0, 
       0,   0,   0,   0,  10,   0, 
      16,   0,   0,   0,   0,   0, 
      42, 128,  32,   0,   0,   0, 
-      0,   0,   4,   0,   0,   0, 
-     29,   0,   0,   9,  66,   0, 
+      0,   0,   5,   0,   0,   0, 
+     50,   0,   0,  10,  18,   0, 
      16,   0,   0,   0,   0,   0, 
-     58, 128,  32, 128,  65,   0, 
-      0,   0,   0,   0,   0,   0, 
-      5,   0,   0,   0,  42,   0, 
-     16,   0,   0,   0,   0,   0, 
-     54,   0,   0,   5,  34,   0, 
+     42,   0,  16,   0,   0,   0, 
+      0,   0,  42,   0,  16,   0, 
+      0,   0,   0,   0,  10,   0, 
+     16, 128,  65,   0,   0,   0, 
+      0,   0,   0,   0,  49,   0, 
+      0,   7,  34,   0,  16,   0, 
+      0,   0,   0,   0,  10,   0, 
      16,   0,   0,   0,   0,   0, 
       1,  64,   0,   0,   0,   0, 
-      0,  63,  69,   0,   0,   9, 
-    242,   0,  16,   0,   1,   0, 
-      0,   0,  70,   0,  16,   0, 
-      0,   0,   0,   0,  70, 126, 
+      0,   0,  75,   0,   0,   6, 
+     18,   0,  16,   0,   1,   0, 
+      0,   0,  10,   0,  16, 128, 
+    129,   0,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   6, 
+     34,   0,  16,   0,   1,   0, 
+      0,   0,  10,   0,  16, 128, 
+     65,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   7, 
+     82,   0,  16,   0,   0,   0, 
+      0,   0, 166,  10,  16,   0, 
+      0,   0,   0,   0,   6,   1, 
+     16,   0,   1,   0,   0,   0, 
+     14,   0,   0,   8,  82,   0, 
      16,   0,   0,   0,   0,   0, 
-      0,  96,  16,   0,   0,   0, 
-      0,   0,  31,   0,   4,   3, 
-     42,   0,  16,   0,   0,   0, 
-      0,   0,  54,   0,   0,   8, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0,   2,  64,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  62,   0, 
-      0,   1,  21,   0,   0,   1, 
-     56,   0,   0,   7, 114,   0, 
+      6,   2,  16,   0,   0,   0, 
+      0,   0, 166, 138,  32,   0, 
+      0,   0,   0,   0,   5,   0, 
+      0,   0,  56,   0,   0,   8, 
+     50,   0,  16,   0,   1,   0, 
+      0,   0, 134,   0,  16,   0, 
+      0,   0,   0,   0, 166, 138, 
+     32,   0,   0,   0,   0,   0, 
+      4,   0,   0,   0,  29,   0, 
+      0,   9,  50,   0,  16,   0, 
+      1,   0,   0,   0,  70,   0, 
+     16,   0,   1,   0,   0,   0, 
+    246, 143,  32, 128,  65,   0, 
+      0,   0,   0,   0,   0,   0, 
+      5,   0,   0,   0,   1,   0, 
+      0,  10,  50,   0,  16,   0, 
+      1,   0,   0,   0,  70,   0, 
+     16,   0,   1,   0,   0,   0, 
+      2,  64,   0,   0,   0,   0, 
+    128,  63,   0,   0, 128,  63, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   8, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,  42,   0,  16, 128, 
+     65,   0,   0,   0,   0,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  50,   0, 
+      0,   9,  18,   0,  16,   0, 
+      2,   0,   0,   0,  10,   0, 
      16,   0,   1,   0,   0,   0, 
-    246,  15,  16,   0,   1,   0, 
-      0,   0,  70,   2,  16,   0, 
-      1,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      0,   0,   0,   0,  70,  16, 
+     10,   0,  16,   0,   0,   0, 
+      0,   0,  42,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5,  34,   0,  16,   0, 
+      2,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0,  63, 
+     69,   0,   0,   9, 242,   0, 
+     16,   0,   2,   0,   0,   0, 
+     70,   0,  16,   0,   2,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     31,   0,   4,   3,  26,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+      2,  64,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  62,   0,   0,   1, 
+     21,   0,   0,   1,  52,   0, 
+      0,   7,  18,   0,  16,   0, 
+      0,   0,   0,   0,  26,   0, 
      16,   0,   1,   0,   0,   0, 
-     70, 126,  16,   0,   1,   0, 
-      0,   0,   0,  96,  16,   0, 
-      1,   0,   0,   0,  56,   0, 
-      0,   7, 242,  32,  16,   0, 
-      0,   0,   0,   0, 246,  15, 
+     10,   0,  16,   0,   1,   0, 
+      0,   0,  29,   0,   0,   7, 
+     18,   0,  16,   0,   0,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0,   0,   0,  10,   0, 
      16,   0,   0,   0,   0,   0, 
-     70,  14,  16,   0,   1,   0, 
+     31,   0,   4,   3,  10,   0, 
+     16,   0,   0,   0,   0,   0, 
+     54,   0,   0,   8, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+      2,  64,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
       0,   0,  62,   0,   0,   1, 
-     83,  84,  65,  84, 116,   0, 
-      0,   0,  19,   0,   0,   0, 
-      2,   0,   0,   0,   0,   0, 
+     21,   0,   0,   1,  56,   0, 
+      0,   7, 114,   0,  16,   0, 
+      2,   0,   0,   0, 246,  15, 
+     16,   0,   2,   0,   0,   0, 
+     70,   2,  16,   0,   2,   0, 
+      0,   0,  69,   0,   0,   9, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,  70,  16,  16,   0, 
+      1,   0,   0,   0,  70, 126, 
+     16,   0,   1,   0,   0,   0, 
+      0,  96,  16,   0,   1,   0, 
+      0,   0,  56,   0,   0,   7, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 246,  15,  16,   0, 
+      0,   0,   0,   0,  70,  14, 
+     16,   0,   2,   0,   0,   0, 
+     62,   0,   0,   1,  83,  84, 
+     65,  84, 116,   0,   0,   0, 
+     33,   0,   0,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   0,  17,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   3,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   5,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,  82,  68,  69,  70, 
+    100,   2,   0,   0,   1,   0, 
+      0,   0, 232,   0,   0,   0, 
+      5,   0,   0,   0,  28,   0, 
+      0,   0,   0,   4, 255, 255, 
+      0,   1,   0,   0,  51,   2, 
+      0,   0, 188,   0,   0,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   0,   0,   0, 203,   0, 
       0,   0,   3,   0,   0,   0, 
-      9,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      2,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  82,  68, 
-     69,  70,  92,   2,   0,   0, 
-      1,   0,   0,   0, 224,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
+    216,   0,   0,   0,   2,   0, 
       0,   0,   5,   0,   0,   0, 
-     28,   0,   0,   0,   0,   4, 
-    255, 255,   0,   1,   0,   0, 
-     43,   2,   0,   0, 188,   0, 
-      0,   0,   3,   0,   0,   0, 
+      4,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+      1,   0,   0,   0,  12,   0, 
+      0,   0, 220,   0,   0,   0, 
+      2,   0,   0,   0,   5,   0, 
+      0,   0,   4,   0,   0,   0, 
+    255, 255, 255, 255,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+     12,   0,   0,   0, 225,   0, 
+      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
-    197,   0,   0,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0, 210,   0,   0,   0, 
-      2,   0,   0,   0,   5,   0, 
-      0,   0,   4,   0,   0,   0, 
-    255, 255, 255, 255,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-     12,   0,   0,   0, 214,   0, 
-      0,   0,   2,   0,   0,   0, 
-      5,   0,   0,   0,   4,   0, 
-      0,   0, 255, 255, 255, 255, 
-      1,   0,   0,   0,   1,   0, 
-      0,   0,  12,   0,   0,   0, 
-    219,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0, 115,  83,  97, 109, 
-    112, 108, 101, 114,   0, 115, 
-     77,  97, 115, 107,  83,  97, 
-    109, 112, 108, 101, 114,   0, 
-    116, 101, 120,   0, 109,  97, 
-    115, 107,   0,  99,  98,  50, 
-      0, 171, 219,   0,   0,   0, 
-      7,   0,   0,   0, 248,   0, 
+    115,  77, 105, 114, 114, 111, 
+    114,  83,  97, 109, 112, 108, 
+    101, 114,   0, 115,  77,  97, 
+    115, 107,  83,  97, 109, 112, 
+    108, 101, 114,   0, 116, 101, 
+    120,   0, 109,  97, 115, 107, 
+      0,  99,  98,  50,   0, 171, 
+    171, 171, 225,   0,   0,   0, 
+      7,   0,   0,   0,   0,   1, 
       0,   0, 112,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0, 160,   1,   0,   0, 
+      0,   0, 168,   1,   0,   0, 
       0,   0,   0,   0,  44,   0, 
       0,   0,   0,   0,   0,   0, 
-    184,   1,   0,   0,   0,   0, 
-      0,   0, 200,   1,   0,   0, 
+    192,   1,   0,   0,   0,   0, 
+      0,   0, 208,   1,   0,   0, 
      48,   0,   0,   0,   8,   0, 
       0,   0,   0,   0,   0,   0, 
-    212,   1,   0,   0,   0,   0, 
-      0,   0, 228,   1,   0,   0, 
+    220,   1,   0,   0,   0,   0, 
+      0,   0, 236,   1,   0,   0, 
      64,   0,   0,   0,  12,   0, 
       0,   0,   2,   0,   0,   0, 
-    236,   1,   0,   0,   0,   0, 
-      0,   0, 252,   1,   0,   0, 
+    244,   1,   0,   0,   0,   0, 
+      0,   0,   4,   2,   0,   0, 
      80,   0,   0,   0,   8,   0, 
       0,   0,   2,   0,   0,   0, 
-    212,   1,   0,   0,   0,   0, 
-      0,   0,   4,   2,   0,   0, 
+    220,   1,   0,   0,   0,   0, 
+      0,   0,  12,   2,   0,   0, 
      88,   0,   0,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-      8,   2,   0,   0,   0,   0, 
-      0,   0,  24,   2,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     16,   2,   0,   0,   0,   0, 
+      0,   0,  32,   2,   0,   0, 
      92,   0,   0,   0,   4,   0, 
       0,   0,   2,   0,   0,   0, 
-      8,   2,   0,   0,   0,   0, 
-      0,   0,  32,   2,   0,   0, 
+     16,   2,   0,   0,   0,   0, 
+      0,   0,  40,   2,   0,   0, 
      96,   0,   0,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-      8,   2,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
+     16,   2,   0,   0,   0,   0, 
       0,   0,  68, 101, 118, 105, 
      99, 101,  83, 112,  97,  99, 
     101,  84, 111,  85, 115, 101, 
     114,  83, 112,  97,  99, 101, 
       0, 171,   3,   0,   3,   0, 
       3,   0,   3,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
     100, 105, 109, 101, 110, 115, 
@@ -3457,370 +6605,1622 @@ const BYTE d2deffect[] =
      44,   0,   0,   0,   1,   0, 
       0,   0,   8,   0,   0,   0, 
      32,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       3,   0,   0,   0,   0,   0, 
       0,   0,  15,   0,   0,   0, 
      83,  86,  95,  84,  97, 114, 
     103, 101, 116,   0, 171, 171, 
-    238,  34,   0,   0,   0,   0, 
-      0,   0,  83,  97, 109, 112, 
-    108, 101,  77,  97, 115, 107, 
-    101, 100,  84, 101, 120, 116, 
-    117, 114, 101,   0,  36,   4, 
-      0,   0,  68,  88,  66,  67, 
-    116, 139,  68,  62,  73, 113, 
-     92,   4,  72,  76, 225, 161, 
-     30, 132, 222, 233,   1,   0, 
-      0,   0,  36,   4,   0,   0, 
-      6,   0,   0,   0,  56,   0, 
-      0,   0, 248,   0,   0,   0, 
-    244,   1,   0,   0, 112,   2, 
-      0,   0, 128,   3,   0,   0, 
-    180,   3,   0,   0,  65, 111, 
-    110,  57, 184,   0,   0,   0, 
-    184,   0,   0,   0,   0,   2, 
-    254, 255, 132,   0,   0,   0, 
-     52,   0,   0,   0,   1,   0, 
-     36,   0,   0,   0,  48,   0, 
-      0,   0,  48,   0,   0,   0, 
-     36,   0,   1,   0,  48,   0, 
-      0,   0,   0,   0,   3,   0, 
+     70,  82,   0,   0,   0,   0, 
+      0,   0,  65,  48,  77, 105, 
+    114, 114, 111, 114,   0,   4, 
+      7,   0,   0,  68,  88,  66, 
+     67, 171,   7,  14, 215, 173, 
+     41,  24, 247, 237,   1,  38, 
+     39, 209, 221, 241, 232,   1, 
+      0,   0,   0,   4,   7,   0, 
+      0,   6,   0,   0,   0,  56, 
+      0,   0,   0, 148,   1,   0, 
+      0, 104,   3,   0,   0, 228, 
+      3,   0,   0,  96,   6,   0, 
+      0, 148,   6,   0,   0,  65, 
+    111, 110,  57,  84,   1,   0, 
+      0,  84,   1,   0,   0,   0, 
+      2, 254, 255, 252,   0,   0, 
+      0,  88,   0,   0,   0,   4, 
+      0,  36,   0,   0,   0,  84, 
+      0,   0,   0,  84,   0,   0, 
+      0,  36,   0,   1,   0,  84, 
+      0,   0,   0,   0,   0,   1, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0,   2,   0,   1, 
+      0,   2,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   2, 
+      0,   3,   0,   0,   0,   0, 
+      0,   1,   0,   3,   0,   1, 
+      0,   5,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      2, 254, 255,  81,   0,   0, 
+      5,   6,   0,  15, 160,   0, 
+      0, 128,  63,   0,   0,   0, 
+     63,   0,   0,   0,   0,   0, 
+      0,   0,   0,  31,   0,   0, 
+      2,   5,   0,   0, 128,   0, 
+      0,  15, 144,   4,   0,   0, 
+      4,   0,   0,   3, 224,   0, 
+      0, 228, 144,   2,   0, 238, 
+    160,   2,   0, 228, 160,   4, 
+      0,   0,   4,   0,   0,   3, 
+    128,   0,   0, 228, 144,   1, 
+      0, 238, 160,   1,   0, 228, 
+    160,   2,   0,   0,   3,   0, 
+      0,   4, 128,   0,   0,   0, 
+    128,   6,   0,   0, 160,   5, 
+      0,   0,   3,   0,   0,   4, 
+    128,   0,   0, 170, 128,   5, 
+      0,   0, 160,   5,   0,   0, 
+      3,   1,   0,   1, 128,   0, 
+      0, 170, 128,   6,   0,  85, 
+    160,   2,   0,   0,   3,   0, 
+      0,   4, 128,   0,   0,  85, 
+    129,   6,   0,   0, 160,   2, 
+      0,   0,   3,   0,   0,   3, 
+    192,   0,   0, 228, 128,   0, 
+      0, 228, 160,   5,   0,   0, 
+      3,   0,   0,   1, 128,   0, 
+      0, 170, 128,   5,   0,  85, 
+    160,   5,   0,   0,   3,   1, 
+      0,   2, 128,   0,   0,   0, 
+    128,   6,   0,  85, 160,   1, 
+      0,   0,   2,   1,   0,   4, 
+    128,   6,   0,   0, 160,   8, 
+      0,   0,   3,   0,   0,   8, 
+    224,   1,   0, 228, 128,   3, 
+      0, 228, 160,   8,   0,   0, 
+      3,   0,   0,   4, 224,   1, 
+      0, 228, 128,   4,   0, 228, 
+    160,   1,   0,   0,   2,   0, 
+      0,  12, 192,   6,   0,  36, 
+    160, 255, 255,   0,   0,  83, 
+     72,  68,  82, 204,   1,   0, 
+      0,  64,   0,   1,   0, 115, 
+      0,   0,   0,  89,   0,   0, 
+      4,  70, 142,  32,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
+      0,  89,   0,   0,   4,  70, 
+    142,  32,   0,   1,   0,   0, 
+      0,   4,   0,   0,   0,  95, 
+      0,   0,   3,  50,  16,  16, 
+      0,   0,   0,   0,   0, 103, 
+      0,   0,   4, 242,  32,  16, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0, 101,   0,   0, 
+      3,  50,  32,  16,   0,   1, 
+      0,   0,   0, 101,   0,   0, 
+      3, 194,  32,  16,   0,   1, 
+      0,   0,   0, 104,   0,   0, 
+      2,   2,   0,   0,   0,  54, 
+      0,   0,   8, 194,  32,  16, 
+      0,   0,   0,   0,   0,   2, 
+     64,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 128, 
+     63,  50,   0,   0,  11,  50, 
+      0,  16,   0,   0,   0,   0, 
+      0,  70,  16,  16,   0,   0, 
+      0,   0,   0, 230, 138,  32, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  70, 128,  32, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  54,   0,   0, 
+      5,  50,  32,  16,   0,   0, 
+      0,   0,   0,  70,   0,  16, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   7,  18,   0,  16, 
+      0,   0,   0,   0,   0,  10, 
+      0,  16,   0,   0,   0,   0, 
+      0,   1,  64,   0,   0,   0, 
+      0, 128,  63,   0,   0,   0, 
+      8,  34,   0,  16,   0,   0, 
+      0,   0,   0,  26,   0,  16, 
+    128,  65,   0,   0,   0,   0, 
+      0,   0,   0,   1,  64,   0, 
+      0,   0,   0, 128,  63,  56, 
+      0,   0,   8,  50,   0,  16, 
+      0,   0,   0,   0,   0,  70, 
+      0,  16,   0,   0,   0,   0, 
+      0,  70, 128,  32,   0,   1, 
+      0,   0,   0,   3,   0,   0, 
+      0,  56,   0,   0,  10,  50, 
+      0,  16,   0,   1,   0,   0, 
+      0,  70,   0,  16,   0,   0, 
+      0,   0,   0,   2,  64,   0, 
+      0,   0,   0,   0,  63,   0, 
+      0,   0,  63,   0,   0,   0, 
+      0,   0,   0,   0,   0,  54, 
+      0,   0,   5,  66,   0,  16, 
+      0,   1,   0,   0,   0,   1, 
+     64,   0,   0,   0,   0, 128, 
+     63,  16,   0,   0,   8,  66, 
+     32,  16,   0,   1,   0,   0, 
+      0,  70,   2,  16,   0,   1, 
+      0,   0,   0,  70, 130,  32, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0,  16,   0,   0, 
+      8, 130,  32,  16,   0,   1, 
+      0,   0,   0,  70,   2,  16, 
+      0,   1,   0,   0,   0,  70, 
+    130,  32,   0,   1,   0,   0, 
+      0,   1,   0,   0,   0,  50, 
+      0,   0,  11,  50,  32,  16, 
+      0,   1,   0,   0,   0,  70, 
+     16,  16,   0,   0,   0,   0, 
+      0, 230, 138,  32,   0,   0, 
+      0,   0,   0,   2,   0,   0, 
+      0,  70, 128,  32,   0,   0, 
+      0,   0,   0,   2,   0,   0, 
+      0,  62,   0,   0,   1,  83, 
+     84,  65,  84, 116,   0,   0, 
+      0,  12,   0,   0,   0,   2, 
+      0,   0,   0,   0,   0,   0, 
+      0,   4,   0,   0,   0,   6, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  82,  68,  69, 
+     70, 116,   2,   0,   0,   2, 
+      0,   0,   0, 100,   0,   0, 
+      0,   2,   0,   0,   0,  28, 
+      0,   0,   0,   0,   4, 254, 
+    255,   0,   1,   0,   0,  67, 
+      2,   0,   0,  92,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,  96, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,  99,  98,  48,   0,  99, 
+     98,  50,   0,  92,   0,   0, 
+      0,   3,   0,   0,   0, 148, 
+      0,   0,   0,  48,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  96,   0,   0, 
+      0,   7,   0,   0,   0,  16, 
+      1,   0,   0, 112,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0, 220,   0,   0, 
+      0,   0,   0,   0,   0,  16, 
+      0,   0,   0,   2,   0,   0, 
+      0, 232,   0,   0,   0,   0, 
+      0,   0,   0, 248,   0,   0, 
+      0,  16,   0,   0,   0,  16, 
+      0,   0,   0,   0,   0,   0, 
+      0, 232,   0,   0,   0,   0, 
+      0,   0,   0,   2,   1,   0, 
+      0,  32,   0,   0,   0,  16, 
+      0,   0,   0,   2,   0,   0, 
+      0, 232,   0,   0,   0,   0, 
+      0,   0,   0,  81, 117,  97, 
+    100,  68, 101, 115,  99,   0, 
+    171, 171, 171,   1,   0,   3, 
+      0,   1,   0,   4,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  84, 101, 120,  67, 111, 
+    111, 114, 100, 115,   0,  77, 
+     97, 115, 107,  84, 101, 120, 
+     67, 111, 111, 114, 100, 115, 
+      0, 184,   1,   0,   0,   0, 
+      0,   0,   0,  44,   0,   0, 
+      0,   2,   0,   0,   0, 208, 
+      1,   0,   0,   0,   0,   0, 
+      0, 224,   1,   0,   0,  48, 
+      0,   0,   0,   8,   0,   0, 
+      0,   2,   0,   0,   0, 236, 
+      1,   0,   0,   0,   0,   0, 
+      0, 252,   1,   0,   0,  64, 
+      0,   0,   0,  12,   0,   0, 
+      0,   0,   0,   0,   0,   4, 
+      2,   0,   0,   0,   0,   0, 
+      0,  20,   2,   0,   0,  80, 
+      0,   0,   0,   8,   0,   0, 
+      0,   0,   0,   0,   0, 236, 
       1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   2, 
-    254, 255,  81,   0,   0,   5, 
-      4,   0,  15, 160,   0,   0, 
-      0,   0,   0,   0, 128,  63, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  31,   0,   0,   2, 
-      5,   0,   0, 128,   0,   0, 
-     15, 144,   4,   0,   0,   4, 
-      0,   0,   3, 224,   0,   0, 
-    228, 144,   2,   0, 238, 160, 
-      2,   0, 228, 160,   4,   0, 
-      0,   4,   0,   0,  12, 224, 
-      0,   0,  20, 144,   3,   0, 
-    180, 160,   3,   0,  20, 160, 
-      4,   0,   0,   4,   0,   0, 
-      3, 128,   0,   0, 228, 144, 
-      1,   0, 238, 160,   1,   0, 
-    228, 160,   2,   0,   0,   3, 
-      0,   0,   3, 192,   0,   0, 
-    228, 128,   0,   0, 228, 160, 
-      1,   0,   0,   2,   0,   0, 
-     12, 192,   4,   0,  68, 160, 
-    255, 255,   0,   0,  83,  72, 
-     68,  82, 244,   0,   0,   0, 
-     64,   0,   1,   0,  61,   0, 
-      0,   0,  89,   0,   0,   4, 
-     70, 142,  32,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-     95,   0,   0,   3,  50,  16, 
-     16,   0,   0,   0,   0,   0, 
-    103,   0,   0,   4, 242,  32, 
-     16,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0, 101,   0, 
-      0,   3,  50,  32,  16,   0, 
-      1,   0,   0,   0, 101,   0, 
-      0,   3, 194,  32,  16,   0, 
-      1,   0,   0,   0,  50,   0, 
-      0,  11,  50,  32,  16,   0, 
-      0,   0,   0,   0,  70,  16, 
-     16,   0,   0,   0,   0,   0, 
-    230, 138,  32,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     70, 128,  32,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     54,   0,   0,   8, 194,  32, 
-     16,   0,   0,   0,   0,   0, 
-      2,  64,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    128,  63,  50,   0,   0,  11, 
-     50,  32,  16,   0,   1,   0, 
-      0,   0,  70,  16,  16,   0, 
-      0,   0,   0,   0, 230, 138, 
-     32,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,  70, 128, 
-     32,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,  50,   0, 
-      0,  11, 194,  32,  16,   0, 
-      1,   0,   0,   0,   6,  20, 
-     16,   0,   0,   0,   0,   0, 
-    166, 142,  32,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-      6, 132,  32,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-     62,   0,   0,   1,  83,  84, 
-     65,  84, 116,   0,   0,   0, 
-      5,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  82,  68,  69,  70, 
-      8,   1,   0,   0,   1,   0, 
-      0,   0,  64,   0,   0,   0, 
-      1,   0,   0,   0,  28,   0, 
-      0,   0,   0,   4, 254, 255, 
-      0,   1,   0,   0, 212,   0, 
-      0,   0,  60,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,  99,  98, 
-     48,   0,  60,   0,   0,   0, 
-      3,   0,   0,   0,  88,   0, 
-      0,   0,  48,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 160,   0,   0,   0, 
-      0,   0,   0,   0,  16,   0, 
-      0,   0,   2,   0,   0,   0, 
-    172,   0,   0,   0,   0,   0, 
-      0,   0, 188,   0,   0,   0, 
-     16,   0,   0,   0,  16,   0, 
-      0,   0,   2,   0,   0,   0, 
-    172,   0,   0,   0,   0,   0, 
-      0,   0, 198,   0,   0,   0, 
-     32,   0,   0,   0,  16,   0, 
-      0,   0,   2,   0,   0,   0, 
-    172,   0,   0,   0,   0,   0, 
-      0,   0,  81, 117,  97, 100, 
-     68, 101, 115,  99,   0, 171, 
-    171, 171,   1,   0,   3,   0, 
-      1,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     84, 101, 120,  67, 111, 111, 
-    114, 100, 115,   0,  77,  97, 
-    115, 107,  84, 101, 120,  67, 
-    111, 111, 114, 100, 115,   0, 
-     77, 105,  99, 114, 111, 115, 
-    111, 102, 116,  32,  40,  82, 
-     41,  32,  72,  76,  83,  76, 
-     32,  83, 104,  97, 100, 101, 
-    114,  32,  67, 111, 109, 112, 
-    105, 108, 101, 114,  32,  57, 
-     46,  50,  57,  46,  57,  53, 
-     50,  46,  51,  49,  49,  49, 
-      0, 171, 171, 171,  73,  83, 
-     71,  78,  44,   0,   0,   0, 
-      1,   0,   0,   0,   8,   0, 
-      0,   0,  32,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,   7,   3, 
-      0,   0,  80,  79,  83,  73, 
-     84,  73,  79,  78,   0, 171, 
-    171, 171,  79,  83,  71,  78, 
-    104,   0,   0,   0,   3,   0, 
-      0,   0,   8,   0,   0,   0, 
-     80,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,  15,   0,   0,   0, 
+      0,  28,   2,   0,   0,  88, 
+      0,   0,   0,   4,   0,   0, 
+      0,   0,   0,   0,   0,  32, 
+      2,   0,   0,   0,   0,   0, 
+      0,  48,   2,   0,   0,  92, 
+      0,   0,   0,   4,   0,   0, 
+      0,   0,   0,   0,   0,  32, 
+      2,   0,   0,   0,   0,   0, 
+      0,  56,   2,   0,   0,  96, 
+      0,   0,   0,   4,   0,   0, 
+      0,   0,   0,   0,   0,  32, 
+      2,   0,   0,   0,   0,   0, 
+      0,  68, 101, 118, 105,  99, 
+    101,  83, 112,  97,  99, 101, 
+     84, 111,  85, 115, 101, 114, 
+     83, 112,  97,  99, 101,   0, 
+    171,   3,   0,   3,   0,   3, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 100, 
+    105, 109, 101, 110, 115, 105, 
+    111, 110, 115,   0, 171,   1, 
+      0,   3,   0,   1,   0,   2, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0, 100, 105, 102, 
+    102,   0, 171, 171, 171,   1, 
+      0,   3,   0,   1,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  99, 101, 110, 
+    116, 101, 114,  49,   0,  65, 
+      0, 171, 171,   0,   0,   3, 
+      0,   1,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0, 114,  97, 100, 105, 117, 
+    115,  49,   0, 115, 113,  95, 
+    114,  97, 100, 105, 117, 115, 
+     49,   0,  77, 105,  99, 114, 
+    111, 115, 111, 102, 116,  32, 
+     40,  82,  41,  32,  72,  76, 
+     83,  76,  32,  83, 104,  97, 
+    100, 101, 114,  32,  67, 111, 
+    109, 112, 105, 108, 101, 114, 
+     32,  57,  46,  50,  57,  46, 
+     57,  53,  50,  46,  51,  49, 
+     49,  49,   0,  73,  83,  71, 
+     78,  44,   0,   0,   0,   1, 
+      0,   0,   0,   8,   0,   0, 
+      0,  32,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0,   7,   3,   0, 
+      0,  80,  79,  83,  73,  84, 
+     73,  79,  78,   0, 171, 171, 
+    171,  79,  83,  71,  78, 104, 
+      0,   0,   0,   3,   0,   0, 
+      0,   8,   0,   0,   0,  80, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,  15,   0,   0,   0,  92, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   3, 
+      0,   0,   0,   1,   0,   0, 
+      0,   3,  12,   0,   0,  92, 
+      0,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,   3, 
+      0,   0,   0,   1,   0,   0, 
+      0,  12,   3,   0,   0,  83, 
+     86,  95,  80, 111, 115, 105, 
+    116, 105, 111, 110,   0,  84, 
+     69,  88,  67,  79,  79,  82, 
+     68,   0, 171, 171, 171,  63, 
      92,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,   3,  12,   0,   0, 
-     92,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,  12,   3,   0,   0, 
-     83,  86,  95,  80, 111, 115, 
-    105, 116, 105, 111, 110,   0, 
-     84,  69,  88,  67,  79,  79, 
-     82,  68,   0, 171, 171, 171, 
-    202,  42,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,   0, 208,   3,   0,   0, 
-     68,  88,  66,  67, 145,  96, 
-    208, 189, 244, 147,  57, 205, 
-    242, 133,  35, 176,  39, 143, 
-    121, 235,   1,   0,   0,   0, 
-    208,   3,   0,   0,   6,   0, 
-      0,   0,  56,   0,   0,   0, 
-    224,   0,   0,   0, 188,   1, 
-      0,   0,  56,   2,   0,   0, 
-     44,   3,   0,   0, 156,   3, 
-      0,   0,  65, 111, 110,  57, 
-    160,   0,   0,   0, 160,   0, 
-      0,   0,   0,   2, 255, 255, 
-    116,   0,   0,   0,  44,   0, 
-      0,   0,   0,   0,  44,   0, 
-      0,   0,  44,   0,   0,   0, 
-     44,   0,   2,   0,  36,   0, 
-      0,   0,  44,   0,   0,   0, 
-      0,   0,   1,   1,   1,   0, 
-      1,   2, 255, 255,  31,   0, 
-      0,   2,   0,   0,   0, 128, 
-      0,   0,  15, 176,  31,   0, 
-      0,   2,   0,   0,   0, 144, 
-      0,   8,  15, 160,  31,   0, 
-      0,   2,   0,   0,   0, 144, 
-      1,   8,  15, 160,   1,   0, 
-      0,   2,   0,   0,   3, 128, 
-      0,   0, 235, 176,  66,   0, 
-      0,   3,   1,   0,  15, 128, 
-      0,   0, 228, 176,   0,   8, 
-    228, 160,  66,   0,   0,   3, 
-      0,   0,  15, 128,   0,   0, 
-    228, 128,   1,   8, 228, 160, 
-      5,   0,   0,   3,   0,   0, 
-     15, 128,   0,   0, 255, 128, 
-      1,   0, 228, 128,   1,   0, 
-      0,   2,   0,   8,  15, 128, 
-      0,   0, 228, 128, 255, 255, 
-      0,   0,  83,  72,  68,  82, 
-    212,   0,   0,   0,  64,   0, 
-      0,   0,  53,   0,   0,   0, 
-     90,   0,   0,   3,   0,  96, 
-     16,   0,   0,   0,   0,   0, 
-     90,   0,   0,   3,   0,  96, 
-     16,   0,   1,   0,   0,   0, 
-     88,  24,   0,   4,   0, 112, 
-     16,   0,   0,   0,   0,   0, 
-     85,  85,   0,   0,  88,  24, 
-      0,   4,   0, 112,  16,   0, 
-      1,   0,   0,   0,  85,  85, 
-      0,   0,  98,  16,   0,   3, 
-     50,  16,  16,   0,   1,   0, 
-      0,   0,  98,  16,   0,   3, 
-    194,  16,  16,   0,   1,   0, 
-      0,   0, 101,   0,   0,   3, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0, 104,   0,   0,   2, 
-      2,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      0,   0,   0,   0,  70,  16, 
-     16,   0,   1,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      1,   0,   0,   0, 230,  26, 
-     16,   0,   1,   0,   0,   0, 
-     70, 126,  16,   0,   1,   0, 
-      0,   0,   0,  96,  16,   0, 
-      1,   0,   0,   0,  56,   0, 
-      0,   7, 242,  32,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
-     16,   0,   0,   0,   0,   0, 
-    246,  15,  16,   0,   1,   0, 
-      0,   0,  62,   0,   0,   1, 
-     83,  84,  65,  84, 116,   0, 
-      0,   0,   4,   0,   0,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  82,  68, 
-     69,  70, 236,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   4,   0,   0,   0, 
-     28,   0,   0,   0,   0,   4, 
-    255, 255,   0,   1,   0,   0, 
-    187,   0,   0,   0, 156,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-    165,   0,   0,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0, 178,   0,   0,   0, 
-      2,   0,   0,   0,   5,   0, 
-      0,   0,   4,   0,   0,   0, 
-    255, 255, 255, 255,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-     12,   0,   0,   0, 182,   0, 
-      0,   0,   2,   0,   0,   0, 
-      5,   0,   0,   0,   4,   0, 
-      0,   0, 255, 255, 255, 255, 
-      1,   0,   0,   0,   1,   0, 
-      0,   0,  12,   0,   0,   0, 
-    115,  83,  97, 109, 112, 108, 
-    101, 114,   0, 115,  77,  97, 
-    115, 107,  83,  97, 109, 112, 
-    108, 101, 114,   0, 116, 101, 
-    120,   0, 109,  97, 115, 107, 
+      0,   1,   0,   0,   0,   2, 
+      0,   0,   0,   0,   0,   0, 
+      0, 196,   7,   0,   0,  68, 
+     88,  66,  67,  10,  64, 223, 
+    200, 195, 240,   1, 206,   6, 
+    135,  41, 112, 246, 195, 250, 
+     98,   1,   0,   0,   0, 196, 
+      7,   0,   0,   6,   0,   0, 
+      0,  56,   0,   0,   0, 196, 
+      1,   0,   0,  56,   4,   0, 
+      0, 180,   4,   0,   0,  32, 
+      7,   0,   0, 144,   7,   0, 
+      0,  65, 111, 110,  57, 132, 
+      1,   0,   0, 132,   1,   0, 
+      0,   0,   2, 255, 255,  76, 
+      1,   0,   0,  56,   0,   0, 
+      0,   1,   0,  44,   0,   0, 
+      0,  56,   0,   0,   0,  56, 
+      0,   2,   0,  36,   0,   0, 
+      0,  56,   0,   0,   0,   0, 
+      0,   1,   1,   1,   0,   0, 
+      0,   4,   0,   2,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      2, 255, 255,  81,   0,   0, 
+      5,   2,   0,  15, 160,   0, 
+      0,   0,  63,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  31,   0,   0, 
+      2,   0,   0,   0, 128,   0, 
+      0,  15, 176,  31,   0,   0, 
+      2,   0,   0,   0, 144,   0, 
+      8,  15, 160,  31,   0,   0, 
+      2,   0,   0,   0, 144,   1, 
+      8,  15, 160,   5,   0,   0, 
+      3,   0,   0,   8, 128,   1, 
+      0, 255, 160,   1,   0, 255, 
+    160,   2,   0,   0,   3,   0, 
+      0,   3, 128,   0,   0, 235, 
+    176,   1,   0, 228, 161,  90, 
+      0,   0,   4,   0,   0,   8, 
+    128,   0,   0, 228, 128,   0, 
+      0, 228, 128,   0,   0, 255, 
+    129,   5,   0,   0,   3,   0, 
+      0,   8, 128,   0,   0, 255, 
+    128,   2,   0,   0, 160,   1, 
+      0,   0,   2,   0,   0,   4, 
+    128,   1,   0, 255, 160,   8, 
+      0,   0,   3,   0,   0,   1, 
+    128,   0,   0, 228, 128,   0, 
+      0, 228, 160,   6,   0,   0, 
+      2,   0,   0,   1, 128,   0, 
+      0,   0, 128,   5,   0,   0, 
+      3,   0,   0,   1, 128,   0, 
+      0,   0, 128,   0,   0, 255, 
+    128,   1,   0,   0,   2,   0, 
+      0,   2, 128,   2,   0,   0, 
+    160,  66,   0,   0,   3,   1, 
+      0,  15, 128,   0,   0, 228, 
+    176,   1,   8, 228, 160,  66, 
+      0,   0,   3,   2,   0,  15, 
+    128,   0,   0, 228, 128,   0, 
+      8, 228, 160,   1,   0,   0, 
+      2,   0,   0,   8, 128,   1, 
+      0, 255, 160,   4,   0,   0, 
+      4,   0,   0,   1, 128,   0, 
+      0,   0, 128,   0,   0, 170, 
+    161,   0,   0, 255, 129,   5, 
+      0,   0,   3,   2,   0,   7, 
+    128,   2,   0, 255, 128,   2, 
+      0, 228, 128,   5,   0,   0, 
+      3,   1,   0,  15, 128,   1, 
+      0, 255, 128,   2,   0, 228, 
+    128,  88,   0,   0,   4,   0, 
+      0,  15, 128,   0,   0,   0, 
+    128,   2,   0,  85, 160,   1, 
+      0, 228, 128,   1,   0,   0, 
+      2,   0,   8,  15, 128,   0, 
+      0, 228, 128, 255, 255,   0, 
+      0,  83,  72,  68,  82, 108, 
+      2,   0,   0,  64,   0,   0, 
+      0, 155,   0,   0,   0,  89, 
+      0,   0,   4,  70, 142,  32, 
+      0,   0,   0,   0,   0,   6, 
+      0,   0,   0,  90,   0,   0, 
+      3,   0,  96,  16,   0,   0, 
+      0,   0,   0,  90,   0,   0, 
+      3,   0,  96,  16,   0,   1, 
+      0,   0,   0,  88,  24,   0, 
+      4,   0, 112,  16,   0,   0, 
+      0,   0,   0,  85,  85,   0, 
+      0,  88,  24,   0,   4,   0, 
+    112,  16,   0,   1,   0,   0, 
+      0,  85,  85,   0,   0,  98, 
+     16,   0,   3,  50,  16,  16, 
+      0,   1,   0,   0,   0,  98, 
+     16,   0,   3, 194,  16,  16, 
+      0,   1,   0,   0,   0, 101, 
+      0,   0,   3, 242,  32,  16, 
+      0,   0,   0,   0,   0, 104, 
+      0,   0,   2,   2,   0,   0, 
+      0,   0,   0,   0,   9,  50, 
+      0,  16,   0,   0,   0,   0, 
+      0, 230,  26,  16,   0,   1, 
+      0,   0,   0,  70, 128,  32, 
+    128,  65,   0,   0,   0,   0, 
+      0,   0,   0,   5,   0,   0, 
+      0,  54,   0,   0,   6,  66, 
+      0,  16,   0,   0,   0,   0, 
+      0,  58, 128,  32,   0,   0, 
+      0,   0,   0,   5,   0,   0, 
+      0,  16,   0,   0,   8,  66, 
+      0,  16,   0,   0,   0,   0, 
+      0,  70,   2,  16,   0,   0, 
+      0,   0,   0,  70, 130,  32, 
+      0,   0,   0,   0,   0,   4, 
+      0,   0,   0,  15,   0,   0, 
+      7,  18,   0,  16,   0,   0, 
+      0,   0,   0,  70,   0,  16, 
+      0,   0,   0,   0,   0,  70, 
+      0,  16,   0,   0,   0,   0, 
+      0,  50,   0,   0,  12,  18, 
+      0,  16,   0,   0,   0,   0, 
+      0,  58, 128,  32, 128,  65, 
+      0,   0,   0,   0,   0,   0, 
+      0,   5,   0,   0,   0,  58, 
+    128,  32,   0,   0,   0,   0, 
+      0,   5,   0,   0,   0,  10, 
+      0,  16,   0,   0,   0,   0, 
+      0,  56,   0,   0,   7,  18, 
+      0,  16,   0,   0,   0,   0, 
+      0,  10,   0,  16,   0,   0, 
+      0,   0,   0,   1,  64,   0, 
+      0,   0,   0,   0,  63,  14, 
+      0,   0,   7,  18,   0,  16, 
+      0,   0,   0,   0,   0,  10, 
+      0,  16,   0,   0,   0,   0, 
+      0,  42,   0,  16,   0,   0, 
+      0,   0,   0,  56,   0,   0, 
+      8,  66,   0,  16,   0,   0, 
+      0,   0,   0,  10,   0,  16, 
+      0,   0,   0,   0,   0,  42, 
+    128,  32,   0,   0,   0,   0, 
+      0,   4,   0,   0,   0,  29, 
+      0,   0,   9,  66,   0,  16, 
+      0,   0,   0,   0,   0,  58, 
+    128,  32, 128,  65,   0,   0, 
+      0,   0,   0,   0,   0,   5, 
+      0,   0,   0,  42,   0,  16, 
+      0,   0,   0,   0,   0,  54, 
+      0,   0,   5,  34,   0,  16, 
+      0,   0,   0,   0,   0,   1, 
+     64,   0,   0,   0,   0,   0, 
+     63,  69,   0,   0,   9, 242, 
+      0,  16,   0,   1,   0,   0, 
+      0,  70,   0,  16,   0,   0, 
+      0,   0,   0,  70, 126,  16, 
+      0,   0,   0,   0,   0,   0, 
+     96,  16,   0,   0,   0,   0, 
+      0,  31,   0,   4,   3,  42, 
+      0,  16,   0,   0,   0,   0, 
+      0,  54,   0,   0,   8, 242, 
+     32,  16,   0,   0,   0,   0, 
+      0,   2,  64,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  62,   0,   0, 
+      1,  21,   0,   0,   1,  56, 
+      0,   0,   7, 114,   0,  16, 
+      0,   1,   0,   0,   0, 246, 
+     15,  16,   0,   1,   0,   0, 
+      0,  70,   2,  16,   0,   1, 
+      0,   0,   0,  69,   0,   0, 
+      9, 242,   0,  16,   0,   0, 
+      0,   0,   0,  70,  16,  16, 
+      0,   1,   0,   0,   0,  70, 
+    126,  16,   0,   1,   0,   0, 
+      0,   0,  96,  16,   0,   1, 
+      0,   0,   0,  56,   0,   0, 
+      7, 242,  32,  16,   0,   0, 
+      0,   0,   0, 246,  15,  16, 
+      0,   0,   0,   0,   0,  70, 
+     14,  16,   0,   1,   0,   0, 
+      0,  62,   0,   0,   1,  83, 
+     84,  65,  84, 116,   0,   0, 
+      0,  19,   0,   0,   0,   2, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,   9, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   2, 
+      0,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   2,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   4, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  82,  68,  69, 
+     70, 100,   2,   0,   0,   1, 
+      0,   0,   0, 232,   0,   0, 
+      0,   5,   0,   0,   0,  28, 
+      0,   0,   0,   0,   4, 255, 
+    255,   0,   1,   0,   0,  51, 
+      2,   0,   0, 188,   0,   0, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0, 203, 
+      0,   0,   0,   3,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0, 216,   0,   0,   0,   2, 
+      0,   0,   0,   5,   0,   0, 
+      0,   4,   0,   0,   0, 255, 
+    255, 255, 255,   0,   0,   0, 
+      0,   1,   0,   0,   0,  12, 
+      0,   0,   0, 220,   0,   0, 
+      0,   2,   0,   0,   0,   5, 
+      0,   0,   0,   4,   0,   0, 
+      0, 255, 255, 255, 255,   1, 
+      0,   0,   0,   1,   0,   0, 
+      0,  12,   0,   0,   0, 225, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0, 115,  77, 105, 114, 114, 
+    111, 114,  83,  97, 109, 112, 
+    108, 101, 114,   0, 115,  77, 
+     97, 115, 107,  83,  97, 109, 
+    112, 108, 101, 114,   0, 116, 
+    101, 120,   0, 109,  97, 115, 
+    107,   0,  99,  98,  50,   0, 
+    171, 171, 171, 225,   0,   0, 
+      0,   7,   0,   0,   0,   0, 
+      1,   0,   0, 112,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0, 168,   1,   0, 
+      0,   0,   0,   0,   0,  44, 
+      0,   0,   0,   0,   0,   0, 
+      0, 192,   1,   0,   0,   0, 
+      0,   0,   0, 208,   1,   0, 
+      0,  48,   0,   0,   0,   8, 
+      0,   0,   0,   0,   0,   0, 
+      0, 220,   1,   0,   0,   0, 
+      0,   0,   0, 236,   1,   0, 
+      0,  64,   0,   0,   0,  12, 
+      0,   0,   0,   2,   0,   0, 
+      0, 244,   1,   0,   0,   0, 
+      0,   0,   0,   4,   2,   0, 
+      0,  80,   0,   0,   0,   8, 
+      0,   0,   0,   2,   0,   0, 
+      0, 220,   1,   0,   0,   0, 
+      0,   0,   0,  12,   2,   0, 
+      0,  88,   0,   0,   0,   4, 
+      0,   0,   0,   0,   0,   0, 
+      0,  16,   2,   0,   0,   0, 
+      0,   0,   0,  32,   2,   0, 
+      0,  92,   0,   0,   0,   4, 
+      0,   0,   0,   2,   0,   0, 
+      0,  16,   2,   0,   0,   0, 
+      0,   0,   0,  40,   2,   0, 
+      0,  96,   0,   0,   0,   4, 
+      0,   0,   0,   0,   0,   0, 
+      0,  16,   2,   0,   0,   0, 
+      0,   0,   0,  68, 101, 118, 
+    105,  99, 101,  83, 112,  97, 
+     99, 101,  84, 111,  85, 115, 
+    101, 114,  83, 112,  97,  99, 
+    101,   0, 171,   3,   0,   3, 
+      0,   3,   0,   3,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0, 100, 105, 109, 101, 110, 
+    115, 105, 111, 110, 115,   0, 
+    171,   1,   0,   3,   0,   1, 
+      0,   2,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 100, 
+    105, 102, 102,   0, 171, 171, 
+    171,   1,   0,   3,   0,   1, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  99, 
+    101, 110, 116, 101, 114,  49, 
+      0,  65,   0, 171, 171,   0, 
+      0,   3,   0,   1,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0, 114,  97, 100, 
+    105, 117, 115,  49,   0, 115, 
+    113,  95, 114,  97, 100, 105, 
+    117, 115,  49,   0,  77, 105, 
+     99, 114, 111, 115, 111, 102, 
+    116,  32,  40,  82,  41,  32, 
+     72,  76,  83,  76,  32,  83, 
+    104,  97, 100, 101, 114,  32, 
+     67, 111, 109, 112, 105, 108, 
+    101, 114,  32,  57,  46,  50, 
+     57,  46,  57,  53,  50,  46, 
+     51,  49,  49,  49,   0,  73, 
+     83,  71,  78, 104,   0,   0, 
+      0,   3,   0,   0,   0,   8, 
+      0,   0,   0,  80,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   3,   0,   0, 
+      0,   0,   0,   0,   0,  15, 
+      0,   0,   0,  92,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
+      0,   1,   0,   0,   0,   3, 
+      3,   0,   0,  92,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
+      0,   1,   0,   0,   0,  12, 
+     12,   0,   0,  83,  86,  95, 
+     80, 111, 115, 105, 116, 105, 
+    111, 110,   0,  84,  69,  88, 
+     67,  79,  79,  82,  68,   0, 
+    171, 171, 171,  79,  83,  71, 
+     78,  44,   0,   0,   0,   1, 
+      0,   0,   0,   8,   0,   0, 
+      0,  32,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0,  15,   0,   0, 
+      0,  83,  86,  95,  84,  97, 
+    114, 103, 101, 116,   0, 171, 
+    171,  91,  99,   0,   0,   0, 
+      0,   0,   0,  83,  97, 109, 
+    112, 108, 101,  77,  97, 115, 
+    107, 101, 100,  84, 101, 120, 
+    116, 117, 114, 101,   0,  36, 
+      4,   0,   0,  68,  88,  66, 
+     67, 116, 139,  68,  62,  73, 
+    113,  92,   4,  72,  76, 225, 
+    161,  30, 132, 222, 233,   1, 
+      0,   0,   0,  36,   4,   0, 
+      0,   6,   0,   0,   0,  56, 
+      0,   0,   0, 248,   0,   0, 
+      0, 244,   1,   0,   0, 112, 
+      2,   0,   0, 128,   3,   0, 
+      0, 180,   3,   0,   0,  65, 
+    111, 110,  57, 184,   0,   0, 
+      0, 184,   0,   0,   0,   0, 
+      2, 254, 255, 132,   0,   0, 
+      0,  52,   0,   0,   0,   1, 
+      0,  36,   0,   0,   0,  48, 
+      0,   0,   0,  48,   0,   0, 
+      0,  36,   0,   1,   0,  48, 
+      0,   0,   0,   0,   0,   3, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      2, 254, 255,  81,   0,   0, 
+      5,   4,   0,  15, 160,   0, 
+      0,   0,   0,   0,   0, 128, 
+     63,   0,   0,   0,   0,   0, 
+      0,   0,   0,  31,   0,   0, 
+      2,   5,   0,   0, 128,   0, 
+      0,  15, 144,   4,   0,   0, 
+      4,   0,   0,   3, 224,   0, 
+      0, 228, 144,   2,   0, 238, 
+    160,   2,   0, 228, 160,   4, 
+      0,   0,   4,   0,   0,  12, 
+    224,   0,   0,  20, 144,   3, 
+      0, 180, 160,   3,   0,  20, 
+    160,   4,   0,   0,   4,   0, 
+      0,   3, 128,   0,   0, 228, 
+    144,   1,   0, 238, 160,   1, 
+      0, 228, 160,   2,   0,   0, 
+      3,   0,   0,   3, 192,   0, 
+      0, 228, 128,   0,   0, 228, 
+    160,   1,   0,   0,   2,   0, 
+      0,  12, 192,   4,   0,  68, 
+    160, 255, 255,   0,   0,  83, 
+     72,  68,  82, 244,   0,   0, 
+      0,  64,   0,   1,   0,  61, 
+      0,   0,   0,  89,   0,   0, 
+      4,  70, 142,  32,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
+      0,  95,   0,   0,   3,  50, 
+     16,  16,   0,   0,   0,   0, 
+      0, 103,   0,   0,   4, 242, 
+     32,  16,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0, 101, 
+      0,   0,   3,  50,  32,  16, 
+      0,   1,   0,   0,   0, 101, 
+      0,   0,   3, 194,  32,  16, 
+      0,   1,   0,   0,   0,  50, 
+      0,   0,  11,  50,  32,  16, 
+      0,   0,   0,   0,   0,  70, 
+     16,  16,   0,   0,   0,   0, 
+      0, 230, 138,  32,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  70, 128,  32,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  54,   0,   0,   8, 194, 
+     32,  16,   0,   0,   0,   0, 
+      0,   2,  64,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0, 128,  63,  50,   0,   0, 
+     11,  50,  32,  16,   0,   1, 
+      0,   0,   0,  70,  16,  16, 
+      0,   0,   0,   0,   0, 230, 
+    138,  32,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,  70, 
+    128,  32,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,  50, 
+      0,   0,  11, 194,  32,  16, 
+      0,   1,   0,   0,   0,   6, 
+     20,  16,   0,   0,   0,   0, 
+      0, 166, 142,  32,   0,   0, 
+      0,   0,   0,   2,   0,   0, 
+      0,   6, 132,  32,   0,   0, 
+      0,   0,   0,   2,   0,   0, 
+      0,  62,   0,   0,   1,  83, 
+     84,  65,  84, 116,   0,   0, 
+      0,   5,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   4,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  82,  68,  69, 
+     70,   8,   1,   0,   0,   1, 
+      0,   0,   0,  64,   0,   0, 
+      0,   1,   0,   0,   0,  28, 
+      0,   0,   0,   0,   4, 254, 
+    255,   0,   1,   0,   0, 212, 
+      0,   0,   0,  60,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,  99, 
+     98,  48,   0,  60,   0,   0, 
+      0,   3,   0,   0,   0,  88, 
+      0,   0,   0,  48,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0, 160,   0,   0, 
+      0,   0,   0,   0,   0,  16, 
+      0,   0,   0,   2,   0,   0, 
+      0, 172,   0,   0,   0,   0, 
+      0,   0,   0, 188,   0,   0, 
+      0,  16,   0,   0,   0,  16, 
+      0,   0,   0,   2,   0,   0, 
+      0, 172,   0,   0,   0,   0, 
+      0,   0,   0, 198,   0,   0, 
+      0,  32,   0,   0,   0,  16, 
+      0,   0,   0,   2,   0,   0, 
+      0, 172,   0,   0,   0,   0, 
+      0,   0,   0,  81, 117,  97, 
+    100,  68, 101, 115,  99,   0, 
+    171, 171, 171,   1,   0,   3, 
+      0,   1,   0,   4,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  84, 101, 120,  67, 111, 
+    111, 114, 100, 115,   0,  77, 
+     97, 115, 107,  84, 101, 120, 
+     67, 111, 111, 114, 100, 115, 
       0,  77, 105,  99, 114, 111, 
     115, 111, 102, 116,  32,  40, 
      82,  41,  32,  72,  76,  83, 
      76,  32,  83, 104,  97, 100, 
     101, 114,  32,  67, 111, 109, 
     112, 105, 108, 101, 114,  32, 
      57,  46,  50,  57,  46,  57, 
      53,  50,  46,  51,  49,  49, 
-     49,   0,  73,  83,  71,  78, 
-    104,   0,   0,   0,   3,   0, 
-      0,   0,   8,   0,   0,   0, 
-     80,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,  15,   0,   0,   0, 
-     92,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,   3,   3,   0,   0, 
-     92,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,  12,  12,   0,   0, 
-     83,  86,  95,  80, 111, 115, 
-    105, 116, 105, 111, 110,   0, 
-     84,  69,  88,  67,  79,  79, 
-     82,  68,   0, 171, 171, 171, 
-     79,  83,  71,  78,  44,   0, 
-      0,   0,   1,   0,   0,   0, 
-      8,   0,   0,   0,  32,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-     15,   0,   0,   0,  83,  86, 
-     95,  84,  97, 114, 103, 101, 
-    116,   0, 171, 171,   6,  47, 
-      0,   0,   0,   0,   0,   0, 
-     83,  97, 109, 112, 108, 101, 
-     84, 101, 120, 116, 117, 114, 
-    101,  87, 105, 116, 104,  83, 
-    104,  97, 100, 111, 119,   0, 
+     49,   0, 171, 171, 171,  73, 
+     83,  71,  78,  44,   0,   0, 
+      0,   1,   0,   0,   0,   8, 
+      0,   0,   0,  32,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
+      0,   0,   0,   0,   0,   7, 
+      3,   0,   0,  80,  79,  83, 
+     73,  84,  73,  79,  78,   0, 
+    171, 171, 171,  79,  83,  71, 
+     78, 104,   0,   0,   0,   3, 
+      0,   0,   0,   8,   0,   0, 
+      0,  80,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0,  15,   0,   0, 
+      0,  92,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,   1, 
+      0,   0,   0,   3,  12,   0, 
+      0,  92,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,   1, 
+      0,   0,   0,  12,   3,   0, 
+      0,  83,  86,  95,  80, 111, 
+    115, 105, 116, 105, 111, 110, 
+      0,  84,  69,  88,  67,  79, 
+     79,  82,  68,   0, 171, 171, 
+    171,  63, 107,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,   2,   0,   0,   0,   0, 
+      0,   0,   0, 208,   3,   0, 
+      0,  68,  88,  66,  67, 145, 
+     96, 208, 189, 244, 147,  57, 
+    205, 242, 133,  35, 176,  39, 
+    143, 121, 235,   1,   0,   0, 
+      0, 208,   3,   0,   0,   6, 
+      0,   0,   0,  56,   0,   0, 
+      0, 224,   0,   0,   0, 188, 
+      1,   0,   0,  56,   2,   0, 
+      0,  44,   3,   0,   0, 156, 
+      3,   0,   0,  65, 111, 110, 
+     57, 160,   0,   0,   0, 160, 
+      0,   0,   0,   0,   2, 255, 
+    255, 116,   0,   0,   0,  44, 
+      0,   0,   0,   0,   0,  44, 
+      0,   0,   0,  44,   0,   0, 
+      0,  44,   0,   2,   0,  36, 
+      0,   0,   0,  44,   0,   0, 
+      0,   0,   0,   1,   1,   1, 
+      0,   1,   2, 255, 255,  31, 
+      0,   0,   2,   0,   0,   0, 
+    128,   0,   0,  15, 176,  31, 
+      0,   0,   2,   0,   0,   0, 
+    144,   0,   8,  15, 160,  31, 
+      0,   0,   2,   0,   0,   0, 
+    144,   1,   8,  15, 160,   1, 
+      0,   0,   2,   0,   0,   3, 
+    128,   0,   0, 235, 176,  66, 
+      0,   0,   3,   1,   0,  15, 
+    128,   0,   0, 228, 176,   0, 
+      8, 228, 160,  66,   0,   0, 
+      3,   0,   0,  15, 128,   0, 
+      0, 228, 128,   1,   8, 228, 
+    160,   5,   0,   0,   3,   0, 
+      0,  15, 128,   0,   0, 255, 
+    128,   1,   0, 228, 128,   1, 
+      0,   0,   2,   0,   8,  15, 
+    128,   0,   0, 228, 128, 255, 
+    255,   0,   0,  83,  72,  68, 
+     82, 212,   0,   0,   0,  64, 
+      0,   0,   0,  53,   0,   0, 
+      0,  90,   0,   0,   3,   0, 
+     96,  16,   0,   0,   0,   0, 
+      0,  90,   0,   0,   3,   0, 
+     96,  16,   0,   1,   0,   0, 
+      0,  88,  24,   0,   4,   0, 
+    112,  16,   0,   0,   0,   0, 
+      0,  85,  85,   0,   0,  88, 
+     24,   0,   4,   0, 112,  16, 
+      0,   1,   0,   0,   0,  85, 
+     85,   0,   0,  98,  16,   0, 
+      3,  50,  16,  16,   0,   1, 
+      0,   0,   0,  98,  16,   0, 
+      3, 194,  16,  16,   0,   1, 
+      0,   0,   0, 101,   0,   0, 
+      3, 242,  32,  16,   0,   0, 
+      0,   0,   0, 104,   0,   0, 
+      2,   2,   0,   0,   0,  69, 
+      0,   0,   9, 242,   0,  16, 
+      0,   0,   0,   0,   0,  70, 
+     16,  16,   0,   1,   0,   0, 
+      0,  70, 126,  16,   0,   0, 
+      0,   0,   0,   0,  96,  16, 
+      0,   0,   0,   0,   0,  69, 
+      0,   0,   9, 242,   0,  16, 
+      0,   1,   0,   0,   0, 230, 
+     26,  16,   0,   1,   0,   0, 
+      0,  70, 126,  16,   0,   1, 
+      0,   0,   0,   0,  96,  16, 
+      0,   1,   0,   0,   0,  56, 
+      0,   0,   7, 242,  32,  16, 
+      0,   0,   0,   0,   0,  70, 
+     14,  16,   0,   0,   0,   0, 
+      0, 246,  15,  16,   0,   1, 
+      0,   0,   0,  62,   0,   0, 
+      1,  83,  84,  65,  84, 116, 
+      0,   0,   0,   4,   0,   0, 
+      0,   2,   0,   0,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   2, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  82, 
+     68,  69,  70, 236,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   4,   0,   0, 
+      0,  28,   0,   0,   0,   0, 
+      4, 255, 255,   0,   1,   0, 
+      0, 187,   0,   0,   0, 156, 
+      0,   0,   0,   3,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0, 165,   0,   0,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0, 178,   0,   0, 
+      0,   2,   0,   0,   0,   5, 
+      0,   0,   0,   4,   0,   0, 
+      0, 255, 255, 255, 255,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,  12,   0,   0,   0, 182, 
+      0,   0,   0,   2,   0,   0, 
+      0,   5,   0,   0,   0,   4, 
+      0,   0,   0, 255, 255, 255, 
+    255,   1,   0,   0,   0,   1, 
+      0,   0,   0,  12,   0,   0, 
+      0, 115,  83,  97, 109, 112, 
+    108, 101, 114,   0, 115,  77, 
+     97, 115, 107,  83,  97, 109, 
+    112, 108, 101, 114,   0, 116, 
+    101, 120,   0, 109,  97, 115, 
+    107,   0,  77, 105,  99, 114, 
+    111, 115, 111, 102, 116,  32, 
+     40,  82,  41,  32,  72,  76, 
+     83,  76,  32,  83, 104,  97, 
+    100, 101, 114,  32,  67, 111, 
+    109, 112, 105, 108, 101, 114, 
+     32,  57,  46,  50,  57,  46, 
+     57,  53,  50,  46,  51,  49, 
+     49,  49,   0,  73,  83,  71, 
+     78, 104,   0,   0,   0,   3, 
+      0,   0,   0,   8,   0,   0, 
+      0,  80,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0,  15,   0,   0, 
+      0,  92,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,   1, 
+      0,   0,   0,   3,   3,   0, 
+      0,  92,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,   1, 
+      0,   0,   0,  12,  12,   0, 
+      0,  83,  86,  95,  80, 111, 
+    115, 105, 116, 105, 111, 110, 
+      0,  84,  69,  88,  67,  79, 
+     79,  82,  68,   0, 171, 171, 
+    171,  79,  83,  71,  78,  44, 
+      0,   0,   0,   1,   0,   0, 
+      0,   8,   0,   0,   0,  32, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,  15,   0,   0,   0,  83, 
+     86,  95,  84,  97, 114, 103, 
+    101, 116,   0, 171, 171, 123, 
+    111,   0,   0,   0,   0,   0, 
+      0,  83,  97, 109, 112, 108, 
+    101,  84, 101, 120, 116, 117, 
+    114, 101,  87, 105, 116, 104, 
+     83, 104,  97, 100, 111, 119, 
+      0,   4,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0, 128, 
+     63,   1,   0,   0,   0,   0, 
+      0, 128,  63,   1,   0,   0, 
+      0,   0,   0, 128,  63,   1, 
+      0,   0,   0,   0,   0, 128, 
+     63,   1,   0,   0,   0,   3, 
+      0,   0,   0, 255, 255, 255, 
+    255,  36,   4,   0,   0,  68, 
+     88,  66,  67, 116, 139,  68, 
+     62,  73, 113,  92,   4,  72, 
+     76, 225, 161,  30, 132, 222, 
+    233,   1,   0,   0,   0,  36, 
+      4,   0,   0,   6,   0,   0, 
+      0,  56,   0,   0,   0, 248, 
+      0,   0,   0, 244,   1,   0, 
+      0, 112,   2,   0,   0, 128, 
+      3,   0,   0, 180,   3,   0, 
+      0,  65, 111, 110,  57, 184, 
+      0,   0,   0, 184,   0,   0, 
+      0,   0,   2, 254, 255, 132, 
+      0,   0,   0,  52,   0,   0, 
+      0,   1,   0,  36,   0,   0, 
+      0,  48,   0,   0,   0,  48, 
+      0,   0,   0,  36,   0,   1, 
+      0,  48,   0,   0,   0,   0, 
+      0,   3,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   2, 254, 255,  81, 
+      0,   0,   5,   4,   0,  15, 
+    160,   0,   0,   0,   0,   0, 
+      0, 128,  63,   0,   0,   0, 
+      0,   0,   0,   0,   0,  31, 
+      0,   0,   2,   5,   0,   0, 
+    128,   0,   0,  15, 144,   4, 
+      0,   0,   4,   0,   0,   3, 
+    224,   0,   0, 228, 144,   2, 
+      0, 238, 160,   2,   0, 228, 
+    160,   4,   0,   0,   4,   0, 
+      0,  12, 224,   0,   0,  20, 
+    144,   3,   0, 180, 160,   3, 
+      0,  20, 160,   4,   0,   0, 
+      4,   0,   0,   3, 128,   0, 
+      0, 228, 144,   1,   0, 238, 
+    160,   1,   0, 228, 160,   2, 
+      0,   0,   3,   0,   0,   3, 
+    192,   0,   0, 228, 128,   0, 
+      0, 228, 160,   1,   0,   0, 
+      2,   0,   0,  12, 192,   4, 
+      0,  68, 160, 255, 255,   0, 
+      0,  83,  72,  68,  82, 244, 
+      0,   0,   0,  64,   0,   1, 
+      0,  61,   0,   0,   0,  89, 
+      0,   0,   4,  70, 142,  32, 
+      0,   0,   0,   0,   0,   3, 
+      0,   0,   0,  95,   0,   0, 
+      3,  50,  16,  16,   0,   0, 
+      0,   0,   0, 103,   0,   0, 
+      4, 242,  32,  16,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0, 101,   0,   0,   3,  50, 
+     32,  16,   0,   1,   0,   0, 
+      0, 101,   0,   0,   3, 194, 
+     32,  16,   0,   1,   0,   0, 
+      0,  50,   0,   0,  11,  50, 
+     32,  16,   0,   0,   0,   0, 
+      0,  70,  16,  16,   0,   0, 
+      0,   0,   0, 230, 138,  32, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  70, 128,  32, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  54,   0,   0, 
+      8, 194,  32,  16,   0,   0, 
+      0,   0,   0,   2,  64,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0, 128,  63,  50, 
+      0,   0,  11,  50,  32,  16, 
+      0,   1,   0,   0,   0,  70, 
+     16,  16,   0,   0,   0,   0, 
+      0, 230, 138,  32,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,  70, 128,  32,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,  50,   0,   0,  11, 194, 
+     32,  16,   0,   1,   0,   0, 
+      0,   6,  20,  16,   0,   0, 
+      0,   0,   0, 166, 142,  32, 
+      0,   0,   0,   0,   0,   2, 
+      0,   0,   0,   6, 132,  32, 
+      0,   0,   0,   0,   0,   2, 
+      0,   0,   0,  62,   0,   0, 
+      1,  83,  84,  65,  84, 116, 
+      0,   0,   0,   5,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   4,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  82, 
+     68,  69,  70,   8,   1,   0, 
+      0,   1,   0,   0,   0,  64, 
+      0,   0,   0,   1,   0,   0, 
+      0,  28,   0,   0,   0,   0, 
+      4, 254, 255,   0,   1,   0, 
+      0, 212,   0,   0,   0,  60, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0,  99,  98,  48,   0,  60, 
+      0,   0,   0,   3,   0,   0, 
+      0,  88,   0,   0,   0,  48, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0, 160, 
+      0,   0,   0,   0,   0,   0, 
+      0,  16,   0,   0,   0,   2, 
+      0,   0,   0, 172,   0,   0, 
+      0,   0,   0,   0,   0, 188, 
+      0,   0,   0,  16,   0,   0, 
+      0,  16,   0,   0,   0,   2, 
+      0,   0,   0, 172,   0,   0, 
+      0,   0,   0,   0,   0, 198, 
+      0,   0,   0,  32,   0,   0, 
+      0,  16,   0,   0,   0,   2, 
+      0,   0,   0, 172,   0,   0, 
+      0,   0,   0,   0,   0,  81, 
+    117,  97, 100,  68, 101, 115, 
+     99,   0, 171, 171, 171,   1, 
+      0,   3,   0,   1,   0,   4, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,  84, 101, 120, 
+     67, 111, 111, 114, 100, 115, 
+      0,  77,  97, 115, 107,  84, 
+    101, 120,  67, 111, 111, 114, 
+    100, 115,   0,  77, 105,  99, 
+    114, 111, 115, 111, 102, 116, 
+     32,  40,  82,  41,  32,  72, 
+     76,  83,  76,  32,  83, 104, 
+     97, 100, 101, 114,  32,  67, 
+    111, 109, 112, 105, 108, 101, 
+    114,  32,  57,  46,  50,  57, 
+     46,  57,  53,  50,  46,  51, 
+     49,  49,  49,   0, 171, 171, 
+    171,  73,  83,  71,  78,  44, 
+      0,   0,   0,   1,   0,   0, 
+      0,   8,   0,   0,   0,  32, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,   7,   3,   0,   0,  80, 
+     79,  83,  73,  84,  73,  79, 
+     78,   0, 171, 171, 171,  79, 
+     83,  71,  78, 104,   0,   0, 
+      0,   3,   0,   0,   0,   8, 
+      0,   0,   0,  80,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   3,   0,   0, 
+      0,   0,   0,   0,   0,  15, 
+      0,   0,   0,  92,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
+      0,   1,   0,   0,   0,   3, 
+     12,   0,   0,  92,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
+      0,   1,   0,   0,   0,  12, 
+      3,   0,   0,  83,  86,  95, 
+     80, 111, 115, 105, 116, 105, 
+    111, 110,   0,  84,  69,  88, 
+     67,  79,  79,  82,  68,   0, 
+    171, 171, 171, 159, 115,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   2,   0,   0, 
+      0,   0,   0,   0,   0, 232, 
+      9,   0,   0,  68,  88,  66, 
+     67,  45,  80,  33,   8,   5, 
+     16, 134, 134, 115,  16, 129, 
+     43, 103, 216, 255, 210,   1, 
+      0,   0,   0, 232,   9,   0, 
+      0,   6,   0,   0,   0,  56, 
+      0,   0,   0, 248,   2,   0, 
+      0,   8,   7,   0,   0, 132, 
+      7,   0,   0,  68,   9,   0, 
+      0, 180,   9,   0,   0,  65, 
+    111, 110,  57, 184,   2,   0, 
+      0, 184,   2,   0,   0,   0, 
+      2, 255, 255, 120,   2,   0, 
+      0,  64,   0,   0,   0,   2, 
+      0,  40,   0,   0,   0,  64, 
+      0,   0,   0,  64,   0,   1, 
+      0,  36,   0,   0,   0,  64, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   6,   0,   4,   0,   3, 
+      0,   0,   0,   0,   0,   1, 
+      2, 255, 255,  31,   0,   0, 
+      2,   0,   0,   0, 128,   0, 
+      0,  15, 176,  31,   0,   0, 
+      2,   0,   0,   0, 144,   0, 
+      8,  15, 160,   2,   0,   0, 
+      3,   0,   0,   1, 128,   0, 
+      0,   0, 176,   0,   0,  85, 
+    160,   1,   0,   0,   2,   0, 
+      0,   2, 128,   0,   0,  85, 
+    176,   2,   0,   0,   3,   1, 
+      0,   1, 128,   0,   0,   0, 
+    176,   0,   0,   0, 160,   1, 
+      0,   0,   2,   1,   0,   2, 
+    128,   0,   0,  85, 176,  66, 
+      0,   0,   3,   0,   0,  15, 
+    128,   0,   0, 228, 128,   0, 
+      8, 228, 160,  66,   0,   0, 
+      3,   1,   0,  15, 128,   1, 
+      0, 228, 128,   0,   8, 228, 
+    160,   5,   0,   0,   3,   0, 
+      0,   1, 128,   0,   0, 255, 
+    128,   3,   0,  85, 160,   4, 
+      0,   0,   4,   0,   0,   1, 
+    128,   3,   0,   0, 160,   1, 
+      0, 255, 128,   0,   0,   0, 
+    128,   2,   0,   0,   3,   1, 
+      0,   1, 128,   0,   0,   0, 
+    176,   0,   0, 170, 160,   1, 
+      0,   0,   2,   1,   0,   2, 
+    128,   0,   0,  85, 176,   2, 
+      0,   0,   3,   2,   0,   1, 
+    128,   0,   0,   0, 176,   0, 
+      0, 255, 160,   1,   0,   0, 
+      2,   2,   0,   2, 128,   0, 
+      0,  85, 176,  66,   0,   0, 
+      3,   1,   0,  15, 128,   1, 
+      0, 228, 128,   0,   8, 228, 
+    160,  66,   0,   0,   3,   2, 
+      0,  15, 128,   2,   0, 228, 
+    128,   0,   8, 228, 160,   4, 
+      0,   0,   4,   0,   0,   1, 
+    128,   3,   0, 170, 160,   1, 
+      0, 255, 128,   0,   0,   0, 
+    128,   4,   0,   0,   4,   0, 
+      0,   1, 128,   3,   0, 255, 
+    160,   2,   0, 255, 128,   0, 
+      0,   0, 128,   2,   0,   0, 
+      3,   1,   0,   1, 128,   0, 
+      0,   0, 176,   1,   0,   0, 
+    160,   1,   0,   0,   2,   1, 
+      0,   2, 128,   0,   0,  85, 
+    176,   2,   0,   0,   3,   2, 
+      0,   1, 128,   0,   0,   0, 
+    176,   1,   0,  85, 160,   1, 
+      0,   0,   2,   2,   0,   2, 
+    128,   0,   0,  85, 176,  66, 
+      0,   0,   3,   1,   0,  15, 
+    128,   1,   0, 228, 128,   0, 
+      8, 228, 160,  66,   0,   0, 
+      3,   2,   0,  15, 128,   2, 
+      0, 228, 128,   0,   8, 228, 
+    160,   4,   0,   0,   4,   0, 
+      0,   1, 128,   4,   0,   0, 
+    160,   1,   0, 255, 128,   0, 
+      0,   0, 128,   4,   0,   0, 
+      4,   0,   0,   1, 128,   4, 
+      0,  85, 160,   2,   0, 255, 
+    128,   0,   0,   0, 128,   2, 
+      0,   0,   3,   1,   0,   1, 
+    128,   0,   0,   0, 176,   1, 
+      0, 170, 160,   1,   0,   0, 
+      2,   1,   0,   2, 128,   0, 
+      0,  85, 176,   2,   0,   0, 
+      3,   2,   0,   1, 128,   0, 
+      0,   0, 176,   1,   0, 255, 
+    160,   1,   0,   0,   2,   2, 
+      0,   2, 128,   0,   0,  85, 
+    176,  66,   0,   0,   3,   1, 
+      0,  15, 128,   1,   0, 228, 
+    128,   0,   8, 228, 160,  66, 
+      0,   0,   3,   2,   0,  15, 
+    128,   2,   0, 228, 128,   0, 
+      8, 228, 160,   4,   0,   0, 
+      4,   0,   0,   1, 128,   4, 
+      0, 170, 160,   1,   0, 255, 
+    128,   0,   0,   0, 128,   4, 
+      0,   0,   4,   0,   0,   1, 
+    128,   4,   0, 255, 160,   2, 
+      0, 255, 128,   0,   0,   0, 
+    128,   2,   0,   0,   3,   1, 
+      0,   1, 128,   0,   0,   0, 
+    176,   2,   0,   0, 160,   1, 
+      0,   0,   2,   1,   0,   2, 
+    128,   0,   0,  85, 176,  66, 
+      0,   0,   3,   1,   0,  15, 
+    128,   1,   0, 228, 128,   0, 
+      8, 228, 160,   4,   0,   0, 
+      4,   0,   0,   1, 128,   5, 
+      0,   0, 160,   1,   0, 255, 
+    128,   0,   0,   0, 128,   5, 
+      0,   0,   3,   0,   0,  15, 
+    128,   0,   0,   0, 128,   6, 
+      0, 228, 160,   1,   0,   0, 
+      2,   0,   8,  15, 128,   0, 
+      0, 228, 128, 255, 255,   0, 
+      0,  83,  72,  68,  82,   8, 
+      4,   0,   0,  64,   0,   0, 
+      0,   2,   1,   0,   0,  89, 
+      0,   0,   4,  70, 142,  32, 
+      0,   0,   0,   0,   0,  10, 
+      0,   0,   0,  90,   0,   0, 
+      3,   0,  96,  16,   0,   0, 
+      0,   0,   0,  88,  24,   0, 
+      4,   0, 112,  16,   0,   0, 
+      0,   0,   0,  85,  85,   0, 
+      0,  98,  16,   0,   3,  50, 
+     16,  16,   0,   1,   0,   0, 
+      0, 101,   0,   0,   3, 242, 
+     32,  16,   0,   0,   0,   0, 
+      0, 104,   0,   0,   2,   4, 
+      0,   0,   0,   0,   0,   0, 
+      8, 242,   0,  16,   0,   0, 
+      0,   0,   0,   6,  16,  16, 
+      0,   1,   0,   0,   0,  38, 
+    135,  32,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,  54, 
+      0,   0,   5,  82,   0,  16, 
+      0,   1,   0,   0,   0,  86, 
+      7,  16,   0,   0,   0,   0, 
+      0,  54,   0,   0,   5, 162, 
+      0,  16,   0,   1,   0,   0, 
+      0,  86,  21,  16,   0,   1, 
+      0,   0,   0,  69,   0,   0, 
+      9, 242,   0,  16,   0,   2, 
+      0,   0,   0, 230,  10,  16, 
+      0,   1,   0,   0,   0,  70, 
+    126,  16,   0,   0,   0,   0, 
+      0,   0,  96,  16,   0,   0, 
+      0,   0,   0,  69,   0,   0, 
+      9, 242,   0,  16,   0,   1, 
+      0,   0,   0,  70,   0,  16, 
+      0,   1,   0,   0,   0,  70, 
+    126,  16,   0,   0,   0,   0, 
+      0,   0,  96,  16,   0,   0, 
+      0,   0,   0,  56,   0,   0, 
+      8,  18,   0,  16,   0,   1, 
+      0,   0,   0,  58,   0,  16, 
+      0,   2,   0,   0,   0,  26, 
+    128,  32,   0,   0,   0,   0, 
+      0,   6,   0,   0,   0,  50, 
+      0,   0,  10,  18,   0,  16, 
+      0,   1,   0,   0,   0,  10, 
+    128,  32,   0,   0,   0,   0, 
+      0,   6,   0,   0,   0,  58, 
+      0,  16,   0,   1,   0,   0, 
+      0,  10,   0,  16,   0,   1, 
+      0,   0,   0,  54,   0,   0, 
+      5, 162,   0,  16,   0,   0, 
+      0,   0,   0,  86,  21,  16, 
+      0,   1,   0,   0,   0,  69, 
+      0,   0,   9, 242,   0,  16, 
+      0,   2,   0,   0,   0,  70, 
+      0,  16,   0,   0,   0,   0, 
+      0,  70, 126,  16,   0,   0, 
+      0,   0,   0,   0,  96,  16, 
+      0,   0,   0,   0,   0,  69, 
+      0,   0,   9, 242,   0,  16, 
+      0,   0,   0,   0,   0, 230, 
+     10,  16,   0,   0,   0,   0, 
+      0,  70, 126,  16,   0,   0, 
+      0,   0,   0,   0,  96,  16, 
+      0,   0,   0,   0,   0,  50, 
+      0,   0,  10,  18,   0,  16, 
+      0,   0,   0,   0,   0,  42, 
+    128,  32,   0,   0,   0,   0, 
+      0,   6,   0,   0,   0,  58, 
+      0,  16,   0,   2,   0,   0, 
+      0,  10,   0,  16,   0,   1, 
+      0,   0,   0,  50,   0,   0, 
+     10,  18,   0,  16,   0,   0, 
+      0,   0,   0,  58, 128,  32, 
+      0,   0,   0,   0,   0,   6, 
+      0,   0,   0,  58,   0,  16, 
+      0,   0,   0,   0,   0,  10, 
+      0,  16,   0,   0,   0,   0, 
+      0,   0,   0,   0,   8, 242, 
+      0,  16,   0,   1,   0,   0, 
+      0,   6,  16,  16,   0,   1, 
+      0,   0,   0,  38, 135,  32, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,  54,   0,   0, 
+      5,  82,   0,  16,   0,   2, 
+      0,   0,   0,  86,   7,  16, 
+      0,   1,   0,   0,   0,  54, 
+      0,   0,   5, 162,   0,  16, 
+      0,   2,   0,   0,   0,  86, 
+     21,  16,   0,   1,   0,   0, 
+      0,  69,   0,   0,   9, 242, 
+      0,  16,   0,   3,   0,   0, 
+      0,  70,   0,  16,   0,   2, 
+      0,   0,   0,  70, 126,  16, 
+      0,   0,   0,   0,   0,   0, 
+     96,  16,   0,   0,   0,   0, 
+      0,  69,   0,   0,   9, 242, 
+      0,  16,   0,   2,   0,   0, 
+      0, 230,  10,  16,   0,   2, 
+      0,   0,   0,  70, 126,  16, 
+      0,   0,   0,   0,   0,   0, 
+     96,  16,   0,   0,   0,   0, 
+      0,  50,   0,   0,  10,  18, 
+      0,  16,   0,   0,   0,   0, 
+      0,  10, 128,  32,   0,   0, 
+      0,   0,   0,   7,   0,   0, 
+      0,  58,   0,  16,   0,   3, 
+      0,   0,   0,  10,   0,  16, 
+      0,   0,   0,   0,   0,  50, 
+      0,   0,  10,  18,   0,  16, 
+      0,   0,   0,   0,   0,  26, 
+    128,  32,   0,   0,   0,   0, 
+      0,   7,   0,   0,   0,  58, 
+      0,  16,   0,   2,   0,   0, 
+      0,  10,   0,  16,   0,   0, 
+      0,   0,   0,  54,   0,   0, 
+      5, 162,   0,  16,   0,   1, 
+      0,   0,   0,  86,  21,  16, 
+      0,   1,   0,   0,   0,  69, 
+      0,   0,   9, 242,   0,  16, 
+      0,   2,   0,   0,   0,  70, 
+      0,  16,   0,   1,   0,   0, 
+      0,  70, 126,  16,   0,   0, 
+      0,   0,   0,   0,  96,  16, 
+      0,   0,   0,   0,   0,  69, 
+      0,   0,   9, 242,   0,  16, 
+      0,   1,   0,   0,   0, 230, 
+     10,  16,   0,   1,   0,   0, 
+      0,  70, 126,  16,   0,   0, 
+      0,   0,   0,   0,  96,  16, 
+      0,   0,   0,   0,   0,  50, 
+      0,   0,  10,  18,   0,  16, 
+      0,   0,   0,   0,   0,  42, 
+    128,  32,   0,   0,   0,   0, 
+      0,   7,   0,   0,   0,  58, 
+      0,  16,   0,   2,   0,   0, 
+      0,  10,   0,  16,   0,   0, 
+      0,   0,   0,  50,   0,   0, 
+     10,  18,   0,  16,   0,   0, 
+      0,   0,   0,  58, 128,  32, 
+      0,   0,   0,   0,   0,   7, 
+      0,   0,   0,  58,   0,  16, 
+      0,   1,   0,   0,   0,  10, 
+      0,  16,   0,   0,   0,   0, 
+      0,   0,   0,   0,   8,  18, 
+      0,  16,   0,   1,   0,   0, 
+      0,  10,  16,  16,   0,   1, 
+      0,   0,   0,  10, 128,  32, 
+      0,   0,   0,   0,   0,   2, 
+      0,   0,   0,  54,   0,   0, 
+      5,  34,   0,  16,   0,   1, 
+      0,   0,   0,  26,  16,  16, 
+      0,   1,   0,   0,   0,  69, 
+      0,   0,   9, 242,   0,  16, 
+      0,   1,   0,   0,   0,  70, 
+      0,  16,   0,   1,   0,   0, 
+      0,  70, 126,  16,   0,   0, 
+      0,   0,   0,   0,  96,  16, 
+      0,   0,   0,   0,   0,  50, 
+      0,   0,  10,  18,   0,  16, 
+      0,   0,   0,   0,   0,  10, 
+    128,  32,   0,   0,   0,   0, 
+      0,   8,   0,   0,   0,  58, 
+      0,  16,   0,   1,   0,   0, 
+      0,  10,   0,  16,   0,   0, 
+      0,   0,   0,  56,   0,   0, 
+      8, 242,  32,  16,   0,   0, 
+      0,   0,   0,   6,   0,  16, 
+      0,   0,   0,   0,   0,  70, 
+    142,  32,   0,   0,   0,   0, 
+      0,   9,   0,   0,   0,  62, 
+      0,   0,   1,  83,  84,  65, 
+     84, 116,   0,   0,   0,  30, 
+      0,   0,   0,   4,   0,   0, 
+      0,   0,   0,   0,   0,   2, 
+      0,   0,   0,   5,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   9,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   9,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  82,  68,  69,  70, 184, 
+      1,   0,   0,   1,   0,   0, 
+      0, 148,   0,   0,   0,   3, 
+      0,   0,   0,  28,   0,   0, 
+      0,   0,   4, 255, 255,   0, 
+      1,   0,   0, 132,   1,   0, 
+      0, 124,   0,   0,   0,   3, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0, 139,   0,   0, 
+      0,   2,   0,   0,   0,   5, 
+      0,   0,   0,   4,   0,   0, 
+      0, 255, 255, 255, 255,   0, 
+      0,   0,   0,   1,   0,   0, 
+      0,  12,   0,   0,   0, 143, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   0,   0,   0, 
+      0, 115,  83, 104,  97, 100, 
+    111, 119,  83,  97, 109, 112, 
+    108, 101, 114,   0, 116, 101, 
+    120,   0,  99,  98,  49,   0, 
+    171, 143,   0,   0,   0,   4, 
+      0,   0,   0, 172,   0,   0, 
+      0, 160,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  12,   1,   0,   0,   0, 
+      0,   0,   0,  48,   0,   0, 
+      0,   2,   0,   0,   0,  28, 
+      1,   0,   0,   0,   0,   0, 
+      0,  44,   1,   0,   0,  48, 
+      0,   0,   0,  48,   0,   0, 
+      0,   0,   0,   0,   0,  60, 
+      1,   0,   0,   0,   0,   0, 
+      0,  76,   1,   0,   0,  96, 
+      0,   0,   0,  48,   0,   0, 
+      0,   2,   0,   0,   0,  88, 
+      1,   0,   0,   0,   0,   0, 
+      0, 104,   1,   0,   0, 144, 
+      0,   0,   0,  16,   0,   0, 
+      0,   2,   0,   0,   0, 116, 
+      1,   0,   0,   0,   0,   0, 
+      0,  66, 108, 117, 114,  79, 
+    102, 102, 115, 101, 116, 115, 
+     72,   0, 171, 171, 171,   1, 
+      0,   3,   0,   1,   0,   4, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0,  66, 108, 117, 
+    114,  79, 102, 102, 115, 101, 
+    116, 115,  86,   0, 171, 171, 
+    171,   1,   0,   3,   0,   1, 
+      0,   4,   0,   3,   0,   0, 
+      0,   0,   0,   0,   0,  66, 
+    108, 117, 114,  87, 101, 105, 
+    103, 104, 116, 115,   0,   1, 
+      0,   3,   0,   1,   0,   4, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0,  83, 104,  97, 
+    100, 111, 119,  67, 111, 108, 
+    111, 114,   0,   1,   0,   3, 
+      0,   1,   0,   4,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,  77, 105,  99, 114, 111, 
+    115, 111, 102, 116,  32,  40, 
+     82,  41,  32,  72,  76,  83, 
+     76,  32,  83, 104,  97, 100, 
+    101, 114,  32,  67, 111, 109, 
+    112, 105, 108, 101, 114,  32, 
+     57,  46,  50,  57,  46,  57, 
+     53,  50,  46,  51,  49,  49, 
+     49,   0, 171, 171, 171,  73, 
+     83,  71,  78, 104,   0,   0, 
+      0,   3,   0,   0,   0,   8, 
+      0,   0,   0,  80,   0,   0, 
+      0,   0,   0,   0,   0,   1, 
+      0,   0,   0,   3,   0,   0, 
+      0,   0,   0,   0,   0,  15, 
+      0,   0,   0,  92,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
+      0,   1,   0,   0,   0,   3, 
+      3,   0,   0,  92,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
+      0,   0,   0,   3,   0,   0, 
+      0,   1,   0,   0,   0,  12, 
+      0,   0,   0,  83,  86,  95, 
+     80, 111, 115, 105, 116, 105, 
+    111, 110,   0,  84,  69,  88, 
+     67,  79,  79,  82,  68,   0, 
+    171, 171, 171,  79,  83,  71, 
+     78,  44,   0,   0,   0,   1, 
+      0,   0,   0,   8,   0,   0, 
+      0,  32,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   3,   0,   0,   0,   0, 
+      0,   0,   0,  15,   0,   0, 
+      0,  83,  86,  95,  84,  97, 
+    114, 103, 101, 116,   0, 171, 
+    171, 219, 119,   0,   0,   0, 
+      0,   0,   0,  80,  49,   0, 
       4,   0,   0,   0,   1,   0, 
       0,   0,   0,   0, 128,  63, 
       1,   0,   0,   0,   0,   0, 
     128,  63,   1,   0,   0,   0, 
       0,   0, 128,  63,   1,   0, 
       0,   0,   0,   0, 128,  63, 
       1,   0,   0,   0,   3,   0, 
       0,   0, 255, 255, 255, 255, 
@@ -3996,325 +8396,315 @@ const BYTE d2deffect[] =
       0,   0,  92,   0,   0,   0, 
       1,   0,   0,   0,   0,   0, 
       0,   0,   3,   0,   0,   0, 
       1,   0,   0,   0,  12,   3, 
       0,   0,  83,  86,  95,  80, 
     111, 115, 105, 116, 105, 111, 
     110,   0,  84,  69,  88,  67, 
      79,  79,  82,  68,   0, 171, 
-    171, 171,  42,  51,   0,   0, 
+    171, 171,   2, 130,   0,   0, 
       0,   0,   0,   0,   1,   0, 
       0,   0,   2,   0,   0,   0, 
-      0,   0,   0,   0, 232,   9, 
+      0,   0,   0,   0, 172,   9, 
       0,   0,  68,  88,  66,  67, 
-     45,  80,  33,   8,   5,  16, 
-    134, 134, 115,  16, 129,  43, 
-    103, 216, 255, 210,   1,   0, 
-      0,   0, 232,   9,   0,   0, 
+    110,  68, 159, 211, 251, 173, 
+    118,  80, 154, 213, 185, 171, 
+    243,  23, 113, 100,   1,   0, 
+      0,   0, 172,   9,   0,   0, 
       6,   0,   0,   0,  56,   0, 
-      0,   0, 248,   2,   0,   0, 
-      8,   7,   0,   0, 132,   7, 
-      0,   0,  68,   9,   0,   0, 
-    180,   9,   0,   0,  65, 111, 
-    110,  57, 184,   2,   0,   0, 
-    184,   2,   0,   0,   0,   2, 
-    255, 255, 120,   2,   0,   0, 
-     64,   0,   0,   0,   2,   0, 
-     40,   0,   0,   0,  64,   0, 
-      0,   0,  64,   0,   1,   0, 
-     36,   0,   0,   0,  64,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      6,   0,   4,   0,   3,   0, 
+      0,   0, 220,   2,   0,   0, 
+    204,   6,   0,   0,  72,   7, 
+      0,   0,   8,   9,   0,   0, 
+    120,   9,   0,   0,  65, 111, 
+    110,  57, 156,   2,   0,   0, 
+    156,   2,   0,   0,   0,   2, 
+    255, 255, 104,   2,   0,   0, 
+     52,   0,   0,   0,   1,   0, 
+     40,   0,   0,   0,  52,   0, 
+      0,   0,  52,   0,   1,   0, 
+     36,   0,   0,   0,  52,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   6,   0,   0,   0, 
       0,   0,   0,   0,   1,   2, 
     255, 255,  31,   0,   0,   2, 
       0,   0,   0, 128,   0,   0, 
      15, 176,  31,   0,   0,   2, 
       0,   0,   0, 144,   0,   8, 
      15, 160,   2,   0,   0,   3, 
-      0,   0,   1, 128,   0,   0, 
-      0, 176,   0,   0,  85, 160, 
+      0,   0,   2, 128,   0,   0, 
+     85, 176,   0,   0,  85, 160, 
       1,   0,   0,   2,   0,   0, 
-      2, 128,   0,   0,  85, 176, 
+      1, 128,   0,   0,   0, 176, 
       2,   0,   0,   3,   1,   0, 
-      1, 128,   0,   0,   0, 176, 
+      2, 128,   0,   0,  85, 176, 
       0,   0,   0, 160,   1,   0, 
-      0,   2,   1,   0,   2, 128, 
-      0,   0,  85, 176,  66,   0, 
+      0,   2,   1,   0,   1, 128, 
+      0,   0,   0, 176,  66,   0, 
       0,   3,   0,   0,  15, 128, 
       0,   0, 228, 128,   0,   8, 
     228, 160,  66,   0,   0,   3, 
       1,   0,  15, 128,   1,   0, 
     228, 128,   0,   8, 228, 160, 
       5,   0,   0,   3,   0,   0, 
-      1, 128,   0,   0, 255, 128, 
+     15, 128,   0,   0, 228, 128, 
       3,   0,  85, 160,   4,   0, 
-      0,   4,   0,   0,   1, 128, 
+      0,   4,   0,   0,  15, 128, 
       3,   0,   0, 160,   1,   0, 
-    255, 128,   0,   0,   0, 128, 
+    228, 128,   0,   0, 228, 128, 
       2,   0,   0,   3,   1,   0, 
-      1, 128,   0,   0,   0, 176, 
+      2, 128,   0,   0,  85, 176, 
       0,   0, 170, 160,   1,   0, 
-      0,   2,   1,   0,   2, 128, 
-      0,   0,  85, 176,   2,   0, 
-      0,   3,   2,   0,   1, 128, 
-      0,   0,   0, 176,   0,   0, 
+      0,   2,   1,   0,   1, 128, 
+      0,   0,   0, 176,   2,   0, 
+      0,   3,   2,   0,   2, 128, 
+      0,   0,  85, 176,   0,   0, 
     255, 160,   1,   0,   0,   2, 
-      2,   0,   2, 128,   0,   0, 
-     85, 176,  66,   0,   0,   3, 
+      2,   0,   1, 128,   0,   0, 
+      0, 176,  66,   0,   0,   3, 
       1,   0,  15, 128,   1,   0, 
     228, 128,   0,   8, 228, 160, 
      66,   0,   0,   3,   2,   0, 
      15, 128,   2,   0, 228, 128, 
       0,   8, 228, 160,   4,   0, 
-      0,   4,   0,   0,   1, 128, 
+      0,   4,   0,   0,  15, 128, 
       3,   0, 170, 160,   1,   0, 
-    255, 128,   0,   0,   0, 128, 
+    228, 128,   0,   0, 228, 128, 
       4,   0,   0,   4,   0,   0, 
-      1, 128,   3,   0, 255, 160, 
-      2,   0, 255, 128,   0,   0, 
-      0, 128,   2,   0,   0,   3, 
-      1,   0,   1, 128,   0,   0, 
-      0, 176,   1,   0,   0, 160, 
+     15, 128,   3,   0, 255, 160, 
+      2,   0, 228, 128,   0,   0, 
+    228, 128,   2,   0,   0,   3, 
+      1,   0,   2, 128,   0,   0, 
+     85, 176,   1,   0,   0, 160, 
       1,   0,   0,   2,   1,   0, 
-      2, 128,   0,   0,  85, 176, 
+      1, 128,   0,   0,   0, 176, 
       2,   0,   0,   3,   2,   0, 
-      1, 128,   0,   0,   0, 176, 
+      2, 128,   0,   0,  85, 176, 
       1,   0,  85, 160,   1,   0, 
-      0,   2,   2,   0,   2, 128, 
-      0,   0,  85, 176,  66,   0, 
+      0,   2,   2,   0,   1, 128, 
+      0,   0,   0, 176,  66,   0, 
       0,   3,   1,   0,  15, 128, 
       1,   0, 228, 128,   0,   8, 
     228, 160,  66,   0,   0,   3, 
       2,   0,  15, 128,   2,   0, 
     228, 128,   0,   8, 228, 160, 
       4,   0,   0,   4,   0,   0, 
-      1, 128,   4,   0,   0, 160, 
-      1,   0, 255, 128,   0,   0, 
-      0, 128,   4,   0,   0,   4, 
-      0,   0,   1, 128,   4,   0, 
-     85, 160,   2,   0, 255, 128, 
-      0,   0,   0, 128,   2,   0, 
-      0,   3,   1,   0,   1, 128, 
-      0,   0,   0, 176,   1,   0, 
+     15, 128,   4,   0,   0, 160, 
+      1,   0, 228, 128,   0,   0, 
+    228, 128,   4,   0,   0,   4, 
+      0,   0,  15, 128,   4,   0, 
+     85, 160,   2,   0, 228, 128, 
+      0,   0, 228, 128,   2,   0, 
+      0,   3,   1,   0,   2, 128, 
+      0,   0,  85, 176,   1,   0, 
     170, 160,   1,   0,   0,   2, 
-      1,   0,   2, 128,   0,   0, 
-     85, 176,   2,   0,   0,   3, 
-      2,   0,   1, 128,   0,   0, 
-      0, 176,   1,   0, 255, 160, 
+      1,   0,   1, 128,   0,   0, 
+      0, 176,   2,   0,   0,   3, 
+      2,   0,   2, 128,   0,   0, 
+     85, 176,   1,   0, 255, 160, 
       1,   0,   0,   2,   2,   0, 
-      2, 128,   0,   0,  85, 176, 
+      1, 128,   0,   0,   0, 176, 
      66,   0,   0,   3,   1,   0, 
      15, 128,   1,   0, 228, 128, 
       0,   8, 228, 160,  66,   0, 
       0,   3,   2,   0,  15, 128, 
       2,   0, 228, 128,   0,   8, 
     228, 160,   4,   0,   0,   4, 
-      0,   0,   1, 128,   4,   0, 
-    170, 160,   1,   0, 255, 128, 
-      0,   0,   0, 128,   4,   0, 
-      0,   4,   0,   0,   1, 128, 
+      0,   0,  15, 128,   4,   0, 
+    170, 160,   1,   0, 228, 128, 
+      0,   0, 228, 128,   4,   0, 
+      0,   4,   0,   0,  15, 128, 
       4,   0, 255, 160,   2,   0, 
-    255, 128,   0,   0,   0, 128, 
+    228, 128,   0,   0, 228, 128, 
       2,   0,   0,   3,   1,   0, 
-      1, 128,   0,   0,   0, 176, 
+      2, 128,   0,   0,  85, 176, 
       2,   0,   0, 160,   1,   0, 
-      0,   2,   1,   0,   2, 128, 
-      0,   0,  85, 176,  66,   0, 
+      0,   2,   1,   0,   1, 128, 
+      0,   0,   0, 176,  66,   0, 
       0,   3,   1,   0,  15, 128, 
       1,   0, 228, 128,   0,   8, 
     228, 160,   4,   0,   0,   4, 
-      0,   0,   1, 128,   5,   0, 
-      0, 160,   1,   0, 255, 128, 
-      0,   0,   0, 128,   5,   0, 
-      0,   3,   0,   0,  15, 128, 
-      0,   0,   0, 128,   6,   0, 
-    228, 160,   1,   0,   0,   2, 
-      0,   8,  15, 128,   0,   0, 
-    228, 128, 255, 255,   0,   0, 
-     83,  72,  68,  82,   8,   4, 
-      0,   0,  64,   0,   0,   0, 
-      2,   1,   0,   0,  89,   0, 
-      0,   4,  70, 142,  32,   0, 
-      0,   0,   0,   0,  10,   0, 
-      0,   0,  90,   0,   0,   3, 
-      0,  96,  16,   0,   0,   0, 
-      0,   0,  88,  24,   0,   4, 
-      0, 112,  16,   0,   0,   0, 
-      0,   0,  85,  85,   0,   0, 
-     98,  16,   0,   3,  50,  16, 
+      0,   0,  15, 128,   5,   0, 
+      0, 160,   1,   0, 228, 128, 
+      0,   0, 228, 128,   1,   0, 
+      0,   2,   0,   8,  15, 128, 
+      0,   0, 228, 128, 255, 255, 
+      0,   0,  83,  72,  68,  82, 
+    232,   3,   0,   0,  64,   0, 
+      0,   0, 250,   0,   0,   0, 
+     89,   0,   0,   4,  70, 142, 
+     32,   0,   0,   0,   0,   0, 
+      9,   0,   0,   0,  90,   0, 
+      0,   3,   0,  96,  16,   0, 
+      0,   0,   0,   0,  88,  24, 
+      0,   4,   0, 112,  16,   0, 
+      0,   0,   0,   0,  85,  85, 
+      0,   0,  98,  16,   0,   3, 
+     50,  16,  16,   0,   1,   0, 
+      0,   0, 101,   0,   0,   3, 
+    242,  32,  16,   0,   0,   0, 
+      0,   0, 104,   0,   0,   2, 
+      4,   0,   0,   0,  54,   0, 
+      0,   5,  82,   0,  16,   0, 
+      0,   0,   0,   0,   6,  16, 
+     16,   0,   1,   0,   0,   0, 
+      0,   0,   0,   8, 242,   0, 
      16,   0,   1,   0,   0,   0, 
-    101,   0,   0,   3, 242,  32, 
+     86,  21,  16,   0,   1,   0, 
+      0,   0, 134, 141,  32,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   0,  54,   0,   0,   5, 
+    162,   0,  16,   0,   0,   0, 
+      0,   0,   6,   8,  16,   0, 
+      1,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      2,   0,   0,   0, 230,  10, 
+     16,   0,   0,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  69,   0, 
+      0,   9, 242,   0,  16,   0, 
+      0,   0,   0,   0,  70,   0, 
+     16,   0,   0,   0,   0,   0, 
+     70, 126,  16,   0,   0,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  56,   0, 
+      0,   8, 242,   0,  16,   0, 
+      2,   0,   0,   0,  70,  14, 
+     16,   0,   2,   0,   0,   0, 
+     86, 133,  32,   0,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+     50,   0,   0,  10, 242,   0, 
      16,   0,   0,   0,   0,   0, 
-    104,   0,   0,   2,   4,   0, 
-      0,   0,   0,   0,   0,   8, 
-    242,   0,  16,   0,   0,   0, 
+      6, 128,  32,   0,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  70,  14,  16,   0, 
+      2,   0,   0,   0,  54,   0, 
+      0,   5,  82,   0,  16,   0, 
+      1,   0,   0,   0,   6,  16, 
+     16,   0,   1,   0,   0,   0, 
+     69,   0,   0,   9, 242,   0, 
+     16,   0,   2,   0,   0,   0, 
+     70,   0,  16,   0,   1,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     69,   0,   0,   9, 242,   0, 
+     16,   0,   1,   0,   0,   0, 
+    230,  10,  16,   0,   1,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     50,   0,   0,  10, 242,   0, 
+     16,   0,   0,   0,   0,   0, 
+    166, 138,  32,   0,   0,   0, 
+      0,   0,   6,   0,   0,   0, 
+     70,  14,  16,   0,   2,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  50,   0, 
+      0,  10, 242,   0,  16,   0, 
+      0,   0,   0,   0, 246, 143, 
+     32,   0,   0,   0,   0,   0, 
+      6,   0,   0,   0,  70,  14, 
+     16,   0,   1,   0,   0,   0, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,  54,   0,   0,   5, 
+     82,   0,  16,   0,   1,   0, 
       0,   0,   6,  16,  16,   0, 
-      1,   0,   0,   0,  38, 135, 
-     32,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  54,   0, 
-      0,   5,  82,   0,  16,   0, 
-      1,   0,   0,   0,  86,   7, 
-     16,   0,   0,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+      0,   8, 242,   0,  16,   0, 
+      2,   0,   0,   0,  86,  21, 
+     16,   0,   1,   0,   0,   0, 
+    134, 141,  32,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
      54,   0,   0,   5, 162,   0, 
      16,   0,   1,   0,   0,   0, 
-     86,  21,  16,   0,   1,   0, 
+      6,   8,  16,   0,   2,   0, 
       0,   0,  69,   0,   0,   9, 
-    242,   0,  16,   0,   2,   0, 
-      0,   0, 230,  10,  16,   0, 
+    242,   0,  16,   0,   3,   0, 
+      0,   0,  70,   0,  16,   0, 
       1,   0,   0,   0,  70, 126, 
      16,   0,   0,   0,   0,   0, 
       0,  96,  16,   0,   0,   0, 
       0,   0,  69,   0,   0,   9, 
     242,   0,  16,   0,   1,   0, 
-      0,   0,  70,   0,  16,   0, 
+      0,   0, 230,  10,  16,   0, 
       1,   0,   0,   0,  70, 126, 
      16,   0,   0,   0,   0,   0, 
       0,  96,  16,   0,   0,   0, 
-      0,   0,  56,   0,   0,   8, 
-     18,   0,  16,   0,   1,   0, 
-      0,   0,  58,   0,  16,   0, 
-      2,   0,   0,   0,  26, 128, 
-     32,   0,   0,   0,   0,   0, 
-      6,   0,   0,   0,  50,   0, 
-      0,  10,  18,   0,  16,   0, 
-      1,   0,   0,   0,  10, 128, 
-     32,   0,   0,   0,   0,   0, 
-      6,   0,   0,   0,  58,   0, 
-     16,   0,   1,   0,   0,   0, 
-     10,   0,  16,   0,   1,   0, 
-      0,   0,  54,   0,   0,   5, 
-    162,   0,  16,   0,   0,   0, 
-      0,   0,  86,  21,  16,   0, 
-      1,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      2,   0,   0,   0,  70,   0, 
-     16,   0,   0,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      0,   0,   0,   0, 230,  10, 
+      0,   0,  50,   0,   0,  10, 
+    242,   0,  16,   0,   0,   0, 
+      0,   0,   6, 128,  32,   0, 
+      0,   0,   0,   0,   7,   0, 
+      0,   0,  70,  14,  16,   0, 
+      3,   0,   0,   0,  70,  14, 
      16,   0,   0,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  50,   0, 
-      0,  10,  18,   0,  16,   0, 
-      0,   0,   0,   0,  42, 128, 
-     32,   0,   0,   0,   0,   0, 
-      6,   0,   0,   0,  58,   0, 
-     16,   0,   2,   0,   0,   0, 
-     10,   0,  16,   0,   1,   0, 
-      0,   0,  50,   0,   0,  10, 
-     18,   0,  16,   0,   0,   0, 
-      0,   0,  58, 128,  32,   0, 
-      0,   0,   0,   0,   6,   0, 
-      0,   0,  58,   0,  16,   0, 
-      0,   0,   0,   0,  10,   0, 
+     50,   0,   0,  10, 242,   0, 
      16,   0,   0,   0,   0,   0, 
-      0,   0,   0,   8, 242,   0, 
-     16,   0,   1,   0,   0,   0, 
-      6,  16,  16,   0,   1,   0, 
-      0,   0,  38, 135,  32,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,  54,   0,   0,   5, 
-     82,   0,  16,   0,   2,   0, 
-      0,   0,  86,   7,  16,   0, 
-      1,   0,   0,   0,  54,   0, 
-      0,   5, 162,   0,  16,   0, 
-      2,   0,   0,   0,  86,  21, 
+     86, 133,  32,   0,   0,   0, 
+      0,   0,   7,   0,   0,   0, 
+     70,  14,  16,   0,   1,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5,  82,   0,  16,   0, 
+      2,   0,   0,   0,   6,  16, 
      16,   0,   1,   0,   0,   0, 
      69,   0,   0,   9, 242,   0, 
-     16,   0,   3,   0,   0,   0, 
+     16,   0,   1,   0,   0,   0, 
      70,   0,  16,   0,   2,   0, 
       0,   0,  70, 126,  16,   0, 
       0,   0,   0,   0,   0,  96, 
      16,   0,   0,   0,   0,   0, 
      69,   0,   0,   9, 242,   0, 
      16,   0,   2,   0,   0,   0, 
     230,  10,  16,   0,   2,   0, 
       0,   0,  70, 126,  16,   0, 
       0,   0,   0,   0,   0,  96, 
      16,   0,   0,   0,   0,   0, 
-     50,   0,   0,  10,  18,   0, 
+     50,   0,   0,  10, 242,   0, 
      16,   0,   0,   0,   0,   0, 
-     10, 128,  32,   0,   0,   0, 
+    166, 138,  32,   0,   0,   0, 
       0,   0,   7,   0,   0,   0, 
-     58,   0,  16,   0,   3,   0, 
-      0,   0,  10,   0,  16,   0, 
+     70,  14,  16,   0,   1,   0, 
+      0,   0,  70,  14,  16,   0, 
       0,   0,   0,   0,  50,   0, 
-      0,  10,  18,   0,  16,   0, 
-      0,   0,   0,   0,  26, 128, 
+      0,  10, 242,   0,  16,   0, 
+      0,   0,   0,   0, 246, 143, 
      32,   0,   0,   0,   0,   0, 
-      7,   0,   0,   0,  58,   0, 
+      7,   0,   0,   0,  70,  14, 
      16,   0,   2,   0,   0,   0, 
-     10,   0,  16,   0,   0,   0, 
-      0,   0,  54,   0,   0,   5, 
-    162,   0,  16,   0,   1,   0, 
-      0,   0,  86,  21,  16,   0, 
-      1,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      2,   0,   0,   0,  70,   0, 
-     16,   0,   1,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      1,   0,   0,   0, 230,  10, 
-     16,   0,   1,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  50,   0, 
-      0,  10,  18,   0,  16,   0, 
-      0,   0,   0,   0,  42, 128, 
-     32,   0,   0,   0,   0,   0, 
-      7,   0,   0,   0,  58,   0, 
-     16,   0,   2,   0,   0,   0, 
-     10,   0,  16,   0,   0,   0, 
-      0,   0,  50,   0,   0,  10, 
-     18,   0,  16,   0,   0,   0, 
-      0,   0,  58, 128,  32,   0, 
-      0,   0,   0,   0,   7,   0, 
-      0,   0,  58,   0,  16,   0, 
-      1,   0,   0,   0,  10,   0, 
-     16,   0,   0,   0,   0,   0, 
-      0,   0,   0,   8,  18,   0, 
-     16,   0,   1,   0,   0,   0, 
-     10,  16,  16,   0,   1,   0, 
-      0,   0,  10, 128,  32,   0, 
-      0,   0,   0,   0,   2,   0, 
-      0,   0,  54,   0,   0,   5, 
+     70,  14,  16,   0,   0,   0, 
+      0,   0,   0,   0,   0,   8, 
      34,   0,  16,   0,   1,   0, 
       0,   0,  26,  16,  16,   0, 
-      1,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      1,   0,   0,   0,  70,   0, 
-     16,   0,   1,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  50,   0, 
-      0,  10,  18,   0,  16,   0, 
-      0,   0,   0,   0,  10, 128, 
+      1,   0,   0,   0,  10, 128, 
      32,   0,   0,   0,   0,   0, 
-      8,   0,   0,   0,  58,   0, 
+      5,   0,   0,   0,  54,   0, 
+      0,   5,  18,   0,  16,   0, 
+      1,   0,   0,   0,  10,  16, 
+     16,   0,   1,   0,   0,   0, 
+     69,   0,   0,   9, 242,   0, 
      16,   0,   1,   0,   0,   0, 
-     10,   0,  16,   0,   0,   0, 
-      0,   0,  56,   0,   0,   8, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0,   6,   0,  16,   0, 
-      0,   0,   0,   0,  70, 142, 
-     32,   0,   0,   0,   0,   0, 
-      9,   0,   0,   0,  62,   0, 
+     70,   0,  16,   0,   1,   0, 
+      0,   0,  70, 126,  16,   0, 
+      0,   0,   0,   0,   0,  96, 
+     16,   0,   0,   0,   0,   0, 
+     50,   0,   0,  10, 242,  32, 
+     16,   0,   0,   0,   0,   0, 
+      6, 128,  32,   0,   0,   0, 
+      0,   0,   8,   0,   0,   0, 
+     70,  14,  16,   0,   1,   0, 
+      0,   0,  70,  14,  16,   0, 
+      0,   0,   0,   0,  62,   0, 
       0,   1,  83,  84,  65,  84, 
-    116,   0,   0,   0,  30,   0, 
+    116,   0,   0,   0,  29,   0, 
       0,   0,   4,   0,   0,   0, 
       0,   0,   0,   0,   2,   0, 
-      0,   0,   5,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       9,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -4353,29 +8743,29 @@ const BYTE d2deffect[] =
     101, 114,   0, 116, 101, 120, 
       0,  99,  98,  49,   0, 171, 
     143,   0,   0,   0,   4,   0, 
       0,   0, 172,   0,   0,   0, 
     160,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
      12,   1,   0,   0,   0,   0, 
       0,   0,  48,   0,   0,   0, 
-      2,   0,   0,   0,  28,   1, 
+      0,   0,   0,   0,  28,   1, 
       0,   0,   0,   0,   0,   0, 
      44,   1,   0,   0,  48,   0, 
       0,   0,  48,   0,   0,   0, 
-      0,   0,   0,   0,  60,   1, 
+      2,   0,   0,   0,  60,   1, 
       0,   0,   0,   0,   0,   0, 
      76,   1,   0,   0,  96,   0, 
       0,   0,  48,   0,   0,   0, 
       2,   0,   0,   0,  88,   1, 
       0,   0,   0,   0,   0,   0, 
     104,   1,   0,   0, 144,   0, 
       0,   0,  16,   0,   0,   0, 
-      2,   0,   0,   0, 116,   1, 
+      0,   0,   0,   0, 116,   1, 
       0,   0,   0,   0,   0,   0, 
      66, 108, 117, 114,  79, 102, 
     102, 115, 101, 116, 115,  72, 
       0, 171, 171, 171,   1,   0, 
       3,   0,   1,   0,   4,   0, 
       3,   0,   0,   0,   0,   0, 
       0,   0,  66, 108, 117, 114, 
      79, 102, 102, 115, 101, 116, 
@@ -4423,1555 +8813,1031 @@ const BYTE d2deffect[] =
      44,   0,   0,   0,   1,   0, 
       0,   0,   8,   0,   0,   0, 
      32,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       3,   0,   0,   0,   0,   0, 
       0,   0,  15,   0,   0,   0, 
      83,  86,  95,  84,  97, 114, 
     103, 101, 116,   0, 171, 171, 
-    102,  55,   0,   0,   0,   0, 
-      0,   0,   4,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-    128,  63,   1,   0,   0,   0, 
-      0,   0, 128,  63,   1,   0, 
-      0,   0,   0,   0, 128,  63, 
-      1,   0,   0,   0,   0,   0, 
-    128,  63,   1,   0,   0,   0, 
-      3,   0,   0,   0, 255, 255, 
-    255, 255,  36,   4,   0,   0, 
-     68,  88,  66,  67, 116, 139, 
-     68,  62,  73, 113,  92,   4, 
-     72,  76, 225, 161,  30, 132, 
-    222, 233,   1,   0,   0,   0, 
-     36,   4,   0,   0,   6,   0, 
-      0,   0,  56,   0,   0,   0, 
-    248,   0,   0,   0, 244,   1, 
-      0,   0, 112,   2,   0,   0, 
-    128,   3,   0,   0, 180,   3, 
-      0,   0,  65, 111, 110,  57, 
-    184,   0,   0,   0, 184,   0, 
-      0,   0,   0,   2, 254, 255, 
-    132,   0,   0,   0,  52,   0, 
-      0,   0,   1,   0,  36,   0, 
-      0,   0,  48,   0,   0,   0, 
-     48,   0,   0,   0,  36,   0, 
-      1,   0,  48,   0,   0,   0, 
-      0,   0,   3,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   2, 254, 255, 
-     81,   0,   0,   5,   4,   0, 
-     15, 160,   0,   0,   0,   0, 
-      0,   0, 128,  63,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     31,   0,   0,   2,   5,   0, 
-      0, 128,   0,   0,  15, 144, 
-      4,   0,   0,   4,   0,   0, 
-      3, 224,   0,   0, 228, 144, 
-      2,   0, 238, 160,   2,   0, 
-    228, 160,   4,   0,   0,   4, 
-      0,   0,  12, 224,   0,   0, 
-     20, 144,   3,   0, 180, 160, 
-      3,   0,  20, 160,   4,   0, 
-      0,   4,   0,   0,   3, 128, 
-      0,   0, 228, 144,   1,   0, 
-    238, 160,   1,   0, 228, 160, 
-      2,   0,   0,   3,   0,   0, 
-      3, 192,   0,   0, 228, 128, 
-      0,   0, 228, 160,   1,   0, 
-      0,   2,   0,   0,  12, 192, 
-      4,   0,  68, 160, 255, 255, 
-      0,   0,  83,  72,  68,  82, 
-    244,   0,   0,   0,  64,   0, 
-      1,   0,  61,   0,   0,   0, 
-     89,   0,   0,   4,  70, 142, 
-     32,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,  95,   0, 
-      0,   3,  50,  16,  16,   0, 
-      0,   0,   0,   0, 103,   0, 
-      0,   4, 242,  32,  16,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0, 101,   0,   0,   3, 
-     50,  32,  16,   0,   1,   0, 
-      0,   0, 101,   0,   0,   3, 
-    194,  32,  16,   0,   1,   0, 
-      0,   0,  50,   0,   0,  11, 
-     50,  32,  16,   0,   0,   0, 
-      0,   0,  70,  16,  16,   0, 
-      0,   0,   0,   0, 230, 138, 
-     32,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  70, 128, 
-     32,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  54,   0, 
-      0,   8, 194,  32,  16,   0, 
-      0,   0,   0,   0,   2,  64, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 128,  63, 
-     50,   0,   0,  11,  50,  32, 
-     16,   0,   1,   0,   0,   0, 
-     70,  16,  16,   0,   0,   0, 
-      0,   0, 230, 138,  32,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,  70, 128,  32,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,  50,   0,   0,  11, 
-    194,  32,  16,   0,   1,   0, 
-      0,   0,   6,  20,  16,   0, 
-      0,   0,   0,   0, 166, 142, 
-     32,   0,   0,   0,   0,   0, 
-      2,   0,   0,   0,   6, 132, 
-     32,   0,   0,   0,   0,   0, 
-      2,   0,   0,   0,  62,   0, 
-      0,   1,  83,  84,  65,  84, 
-    116,   0,   0,   0,   5,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     82,  68,  69,  70,   8,   1, 
-      0,   0,   1,   0,   0,   0, 
-     64,   0,   0,   0,   1,   0, 
-      0,   0,  28,   0,   0,   0, 
-      0,   4, 254, 255,   0,   1, 
-      0,   0, 212,   0,   0,   0, 
-     60,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,  99,  98,  48,   0, 
-     60,   0,   0,   0,   3,   0, 
-      0,   0,  88,   0,   0,   0, 
-     48,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    160,   0,   0,   0,   0,   0, 
-      0,   0,  16,   0,   0,   0, 
-      2,   0,   0,   0, 172,   0, 
-      0,   0,   0,   0,   0,   0, 
-    188,   0,   0,   0,  16,   0, 
-      0,   0,  16,   0,   0,   0, 
-      2,   0,   0,   0, 172,   0, 
-      0,   0,   0,   0,   0,   0, 
-    198,   0,   0,   0,  32,   0, 
-      0,   0,  16,   0,   0,   0, 
-      2,   0,   0,   0, 172,   0, 
-      0,   0,   0,   0,   0,   0, 
-     81, 117,  97, 100,  68, 101, 
-    115,  99,   0, 171, 171, 171, 
-      1,   0,   3,   0,   1,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  84, 101, 
-    120,  67, 111, 111, 114, 100, 
-    115,   0,  77,  97, 115, 107, 
-     84, 101, 120,  67, 111, 111, 
-    114, 100, 115,   0,  77, 105, 
-     99, 114, 111, 115, 111, 102, 
-    116,  32,  40,  82,  41,  32, 
-     72,  76,  83,  76,  32,  83, 
-    104,  97, 100, 101, 114,  32, 
-     67, 111, 109, 112, 105, 108, 
-    101, 114,  32,  57,  46,  50, 
-     57,  46,  57,  53,  50,  46, 
-     51,  49,  49,  49,   0, 171, 
-    171, 171,  73,  83,  71,  78, 
-     44,   0,   0,   0,   1,   0, 
-      0,   0,   8,   0,   0,   0, 
-     32,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,   7,   3,   0,   0, 
-     80,  79,  83,  73,  84,  73, 
-     79,  78,   0, 171, 171, 171, 
-     79,  83,  71,  78, 104,   0, 
-      0,   0,   3,   0,   0,   0, 
-      8,   0,   0,   0,  80,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-     15,   0,   0,   0,  92,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   3,   0, 
-      0,   0,   1,   0,   0,   0, 
-      3,  12,   0,   0,  92,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   3,   0, 
-      0,   0,   1,   0,   0,   0, 
-     12,   3,   0,   0,  83,  86, 
-     95,  80, 111, 115, 105, 116, 
-    105, 111, 110,   0,  84,  69, 
-     88,  67,  79,  79,  82,  68, 
-      0, 171, 171, 171, 138,  65, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-    172,   9,   0,   0,  68,  88, 
-     66,  67, 110,  68, 159, 211, 
-    251, 173, 118,  80, 154, 213, 
-    185, 171, 243,  23, 113, 100, 
-      1,   0,   0,   0, 172,   9, 
-      0,   0,   6,   0,   0,   0, 
-     56,   0,   0,   0, 220,   2, 
-      0,   0, 204,   6,   0,   0, 
-     72,   7,   0,   0,   8,   9, 
-      0,   0, 120,   9,   0,   0, 
-     65, 111, 110,  57, 156,   2, 
-      0,   0, 156,   2,   0,   0, 
-      0,   2, 255, 255, 104,   2, 
-      0,   0,  52,   0,   0,   0, 
-      1,   0,  40,   0,   0,   0, 
-     52,   0,   0,   0,  52,   0, 
-      1,   0,  36,   0,   0,   0, 
-     52,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   6,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   2, 255, 255,  31,   0, 
-      0,   2,   0,   0,   0, 128, 
-      0,   0,  15, 176,  31,   0, 
-      0,   2,   0,   0,   0, 144, 
-      0,   8,  15, 160,   2,   0, 
-      0,   3,   0,   0,   2, 128, 
-      0,   0,  85, 176,   0,   0, 
-     85, 160,   1,   0,   0,   2, 
-      0,   0,   1, 128,   0,   0, 
-      0, 176,   2,   0,   0,   3, 
-      1,   0,   2, 128,   0,   0, 
-     85, 176,   0,   0,   0, 160, 
-      1,   0,   0,   2,   1,   0, 
-      1, 128,   0,   0,   0, 176, 
-     66,   0,   0,   3,   0,   0, 
-     15, 128,   0,   0, 228, 128, 
-      0,   8, 228, 160,  66,   0, 
-      0,   3,   1,   0,  15, 128, 
-      1,   0, 228, 128,   0,   8, 
-    228, 160,   5,   0,   0,   3, 
-      0,   0,  15, 128,   0,   0, 
-    228, 128,   3,   0,  85, 160, 
-      4,   0,   0,   4,   0,   0, 
-     15, 128,   3,   0,   0, 160, 
-      1,   0, 228, 128,   0,   0, 
-    228, 128,   2,   0,   0,   3, 
-      1,   0,   2, 128,   0,   0, 
-     85, 176,   0,   0, 170, 160, 
-      1,   0,   0,   2,   1,   0, 
-      1, 128,   0,   0,   0, 176, 
-      2,   0,   0,   3,   2,   0, 
-      2, 128,   0,   0,  85, 176, 
-      0,   0, 255, 160,   1,   0, 
-      0,   2,   2,   0,   1, 128, 
-      0,   0,   0, 176,  66,   0, 
-      0,   3,   1,   0,  15, 128, 
-      1,   0, 228, 128,   0,   8, 
-    228, 160,  66,   0,   0,   3, 
-      2,   0,  15, 128,   2,   0, 
-    228, 128,   0,   8, 228, 160, 
-      4,   0,   0,   4,   0,   0, 
-     15, 128,   3,   0, 170, 160, 
-      1,   0, 228, 128,   0,   0, 
-    228, 128,   4,   0,   0,   4, 
-      0,   0,  15, 128,   3,   0, 
-    255, 160,   2,   0, 228, 128, 
-      0,   0, 228, 128,   2,   0, 
-      0,   3,   1,   0,   2, 128, 
-      0,   0,  85, 176,   1,   0, 
-      0, 160,   1,   0,   0,   2, 
-      1,   0,   1, 128,   0,   0, 
-      0, 176,   2,   0,   0,   3, 
-      2,   0,   2, 128,   0,   0, 
-     85, 176,   1,   0,  85, 160, 
-      1,   0,   0,   2,   2,   0, 
-      1, 128,   0,   0,   0, 176, 
-     66,   0,   0,   3,   1,   0, 
-     15, 128,   1,   0, 228, 128, 
-      0,   8, 228, 160,  66,   0, 
-      0,   3,   2,   0,  15, 128, 
-      2,   0, 228, 128,   0,   8, 
-    228, 160,   4,   0,   0,   4, 
-      0,   0,  15, 128,   4,   0, 
-      0, 160,   1,   0, 228, 128, 
-      0,   0, 228, 128,   4,   0, 
-      0,   4,   0,   0,  15, 128, 
-      4,   0,  85, 160,   2,   0, 
-    228, 128,   0,   0, 228, 128, 
-      2,   0,   0,   3,   1,   0, 
-      2, 128,   0,   0,  85, 176, 
-      1,   0, 170, 160,   1,   0, 
-      0,   2,   1,   0,   1, 128, 
-      0,   0,   0, 176,   2,   0, 
-      0,   3,   2,   0,   2, 128, 
-      0,   0,  85, 176,   1,   0, 
-    255, 160,   1,   0,   0,   2, 
-      2,   0,   1, 128,   0,   0, 
-      0, 176,  66,   0,   0,   3, 
-      1,   0,  15, 128,   1,   0, 
-    228, 128,   0,   8, 228, 160, 
-     66,   0,   0,   3,   2,   0, 
-     15, 128,   2,   0, 228, 128, 
-      0,   8, 228, 160,   4,   0, 
-      0,   4,   0,   0,  15, 128, 
-      4,   0, 170, 160,   1,   0, 
-    228, 128,   0,   0, 228, 128, 
-      4,   0,   0,   4,   0,   0, 
-     15, 128,   4,   0, 255, 160, 
-      2,   0, 228, 128,   0,   0, 
-    228, 128,   2,   0,   0,   3, 
-      1,   0,   2, 128,   0,   0, 
-     85, 176,   2,   0,   0, 160, 
-      1,   0,   0,   2,   1,   0, 
-      1, 128,   0,   0,   0, 176, 
-     66,   0,   0,   3,   1,   0, 
-     15, 128,   1,   0, 228, 128, 
-      0,   8, 228, 160,   4,   0, 
-      0,   4,   0,   0,  15, 128, 
-      5,   0,   0, 160,   1,   0, 
-    228, 128,   0,   0, 228, 128, 
-      1,   0,   0,   2,   0,   8, 
-     15, 128,   0,   0, 228, 128, 
-    255, 255,   0,   0,  83,  72, 
-     68,  82, 232,   3,   0,   0, 
-     64,   0,   0,   0, 250,   0, 
-      0,   0,  89,   0,   0,   4, 
-     70, 142,  32,   0,   0,   0, 
-      0,   0,   9,   0,   0,   0, 
-     90,   0,   0,   3,   0,  96, 
-     16,   0,   0,   0,   0,   0, 
-     88,  24,   0,   4,   0, 112, 
-     16,   0,   0,   0,   0,   0, 
-     85,  85,   0,   0,  98,  16, 
-      0,   3,  50,  16,  16,   0, 
-      1,   0,   0,   0, 101,   0, 
-      0,   3, 242,  32,  16,   0, 
-      0,   0,   0,   0, 104,   0, 
-      0,   2,   4,   0,   0,   0, 
-     54,   0,   0,   5,  82,   0, 
-     16,   0,   0,   0,   0,   0, 
-      6,  16,  16,   0,   1,   0, 
-      0,   0,   0,   0,   0,   8, 
-    242,   0,  16,   0,   1,   0, 
-      0,   0,  86,  21,  16,   0, 
-      1,   0,   0,   0, 134, 141, 
-     32,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,  54,   0, 
-      0,   5, 162,   0,  16,   0, 
-      0,   0,   0,   0,   6,   8, 
-     16,   0,   1,   0,   0,   0, 
-     69,   0,   0,   9, 242,   0, 
-     16,   0,   2,   0,   0,   0, 
-    230,  10,  16,   0,   0,   0, 
-      0,   0,  70, 126,  16,   0, 
-      0,   0,   0,   0,   0,  96, 
-     16,   0,   0,   0,   0,   0, 
-     69,   0,   0,   9, 242,   0, 
-     16,   0,   0,   0,   0,   0, 
-     70,   0,  16,   0,   0,   0, 
-      0,   0,  70, 126,  16,   0, 
-      0,   0,   0,   0,   0,  96, 
-     16,   0,   0,   0,   0,   0, 
-     56,   0,   0,   8, 242,   0, 
-     16,   0,   2,   0,   0,   0, 
-     70,  14,  16,   0,   2,   0, 
-      0,   0,  86, 133,  32,   0, 
-      0,   0,   0,   0,   6,   0, 
-      0,   0,  50,   0,   0,  10, 
-    242,   0,  16,   0,   0,   0, 
-      0,   0,   6, 128,  32,   0, 
-      0,   0,   0,   0,   6,   0, 
-      0,   0,  70,  14,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
-     16,   0,   2,   0,   0,   0, 
-     54,   0,   0,   5,  82,   0, 
-     16,   0,   1,   0,   0,   0, 
-      6,  16,  16,   0,   1,   0, 
-      0,   0,  69,   0,   0,   9, 
-    242,   0,  16,   0,   2,   0, 
-      0,   0,  70,   0,  16,   0, 
-      1,   0,   0,   0,  70, 126, 
-     16,   0,   0,   0,   0,   0, 
-      0,  96,  16,   0,   0,   0, 
-      0,   0,  69,   0,   0,   9, 
-    242,   0,  16,   0,   1,   0, 
-      0,   0, 230,  10,  16,   0, 
-      1,   0,   0,   0,  70, 126, 
-     16,   0,   0,   0,   0,   0, 
-      0,  96,  16,   0,   0,   0, 
-      0,   0,  50,   0,   0,  10, 
-    242,   0,  16,   0,   0,   0, 
-      0,   0, 166, 138,  32,   0, 
-      0,   0,   0,   0,   6,   0, 
-      0,   0,  70,  14,  16,   0, 
-      2,   0,   0,   0,  70,  14, 
-     16,   0,   0,   0,   0,   0, 
-     50,   0,   0,  10, 242,   0, 
-     16,   0,   0,   0,   0,   0, 
-    246, 143,  32,   0,   0,   0, 
-      0,   0,   6,   0,   0,   0, 
-     70,  14,  16,   0,   1,   0, 
-      0,   0,  70,  14,  16,   0, 
-      0,   0,   0,   0,  54,   0, 
-      0,   5,  82,   0,  16,   0, 
-      1,   0,   0,   0,   6,  16, 
-     16,   0,   1,   0,   0,   0, 
-      0,   0,   0,   8, 242,   0, 
-     16,   0,   2,   0,   0,   0, 
-     86,  21,  16,   0,   1,   0, 
-      0,   0, 134, 141,  32,   0, 
-      0,   0,   0,   0,   4,   0, 
-      0,   0,  54,   0,   0,   5, 
-    162,   0,  16,   0,   1,   0, 
-      0,   0,   6,   8,  16,   0, 
-      2,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      3,   0,   0,   0,  70,   0, 
-     16,   0,   1,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      1,   0,   0,   0, 230,  10, 
-     16,   0,   1,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  50,   0, 
-      0,  10, 242,   0,  16,   0,