[Swfdec-commits] 17 commits - swfdec/Makefile.am swfdec/swfdec_actor.c swfdec/swfdec_actor.h swfdec/swfdec_as_object.c swfdec/swfdec_as_object.h swfdec/swfdec_as_strings.c swfdec/swfdec_audio.c swfdec/swfdec_audio_event.c swfdec/swfdec_audio_event.h swfdec/swfdec_audio_flv.c swfdec/swfdec_audio.h swfdec/swfdec_audio_internal.h swfdec/swfdec_audio_stream.c swfdec/swfdec_audio_stream.h swfdec/swfdec_player.c swfdec/swfdec_player.h swfdec/swfdec_player_internal.h swfdec/swfdec_renderer.c swfdec/swfdec_sound_matrix.c swfdec/swfdec_sound_matrix.h swfdec/swfdec_sound_object.c swfdec/swfdec_sound_object.h swfdec/swfdec_sprite_movie.c swfdec/swfdec_sprite_movie.h test/image test/trace

Benjamin Otte company at kemper.freedesktop.org
Wed Jun 11 10:54:09 PDT 2008


 swfdec/Makefile.am                                      |    2 
 swfdec/swfdec_actor.c                                   |    1 
 swfdec/swfdec_actor.h                                   |    4 
 swfdec/swfdec_as_object.c                               |    9 
 swfdec/swfdec_as_object.h                               |    2 
 swfdec/swfdec_as_strings.c                              |    4 
 swfdec/swfdec_audio.c                                   |   76 
 swfdec/swfdec_audio.h                                   |    6 
 swfdec/swfdec_audio_event.c                             |   16 
 swfdec/swfdec_audio_event.h                             |   12 
 swfdec/swfdec_audio_flv.c                               |   10 
 swfdec/swfdec_audio_internal.h                          |   30 
 swfdec/swfdec_audio_stream.c                            |   12 
 swfdec/swfdec_audio_stream.h                            |    2 
 swfdec/swfdec_player.c                                  |   11 
 swfdec/swfdec_player.h                                  |   64 
 swfdec/swfdec_player_internal.h                         |    2 
 swfdec/swfdec_renderer.c                                |    3 
 swfdec/swfdec_sound_matrix.c                            |  123 
 swfdec/swfdec_sound_matrix.h                            |   56 
 swfdec/swfdec_sound_object.c                            |  127 
 swfdec/swfdec_sound_object.h                            |    2 
 swfdec/swfdec_sprite_movie.c                            |    2 
 swfdec/swfdec_sprite_movie.h                            |    2 
 test/image/Makefile.am                                  |    9 
 test/image/setMask-matrices-5.swf                       |binary
 test/image/setMask-matrices-5.swf.png                   |binary
 test/image/setMask-matrices-6.swf                       |binary
 test/image/setMask-matrices-6.swf.png                   |binary
 test/image/setMask-matrices-7.swf                       |binary
 test/image/setMask-matrices-7.swf.png                   |binary
 test/image/setMask-matrices-8.swf                       |binary
 test/image/setMask-matrices-8.swf.png                   |binary
 test/image/setMask-matrices.as                          |   26 
 test/trace/Makefile.am                                  |   27 
 test/trace/sound-set-5.swf                              |binary
 test/trace/sound-set-5.swf.trace                        |   39 
 test/trace/sound-set-6.swf                              |binary
 test/trace/sound-set-6.swf.trace                        |   39 
 test/trace/sound-set-7.swf                              |binary
 test/trace/sound-set-7.swf.trace                        |   39 
 test/trace/sound-set-8.swf                              |binary
 test/trace/sound-set-8.swf.trace                        |   39 
 test/trace/sound-set.as                                 |   32 
 test/trace/sound-setTransform-propertytypes-5.swf       |binary
 test/trace/sound-setTransform-propertytypes-5.swf.trace | 1625 +++++++++
 test/trace/sound-setTransform-propertytypes-6.swf       |binary
 test/trace/sound-setTransform-propertytypes-6.swf.trace | 2625 ++++++++++++++++
 test/trace/sound-setTransform-propertytypes-7.swf       |binary
 test/trace/sound-setTransform-propertytypes-7.swf.trace | 2625 ++++++++++++++++
 test/trace/sound-setTransform-propertytypes-8.swf       |binary
 test/trace/sound-setTransform-propertytypes-8.swf.trace | 2625 ++++++++++++++++
 test/trace/sound-setTransform-propertytypes.as          |   45 
 test/trace/sound-textfield-5.swf                        |binary
 test/trace/sound-textfield-5.swf.trace                  |    3 
 test/trace/sound-textfield-6.swf                        |binary
 test/trace/sound-textfield-6.swf.trace                  |    3 
 test/trace/sound-textfield-7.swf                        |binary
 test/trace/sound-textfield-7.swf.trace                  |    3 
 test/trace/sound-textfield-8.swf                        |binary
 test/trace/sound-textfield-8.swf.trace                  |    3 
 test/trace/sound-textfield.as                           |   20 
 62 files changed, 10307 insertions(+), 98 deletions(-)

New commits:
commit 0f6b097ec6e6e0b767f2d8049f7d11b8230454fa
Author: Benjamin Otte <otte at gnome.org>
Date:   Wed Jun 11 17:58:05 2008 +0200

    make sample sizes gsize instead of guint

diff --git a/swfdec/swfdec_audio.c b/swfdec/swfdec_audio.c
index db085f4..7e6f448 100644
--- a/swfdec/swfdec_audio.c
+++ b/swfdec/swfdec_audio.c
@@ -158,7 +158,7 @@ swfdec_audio_remove (SwfdecAudio *audio)
  * Returns: maximum number of remaining frames. If G_MAXUINT is returned,
  *          then the number of frames isn't known yet.
  **/
-guint
+gsize
 swfdec_audio_iterate (SwfdecAudio *audio, guint n_samples)
 {
   SwfdecAudioClass *klass;
@@ -228,9 +228,9 @@ swfdec_audio_update_matrix (SwfdecAudio *audio)
  *          stream is still loading, this number may be lower. It indicates 
  *          that no more samples are available.
  **/
-guint
+gsize
 swfdec_audio_render (SwfdecAudio *audio, gint16 *dest, 
-    guint start_offset, guint n_samples)
+    gsize start_offset, gsize n_samples)
 {
   SwfdecAudioClass *klass;
   guint rendered;
diff --git a/swfdec/swfdec_audio.h b/swfdec/swfdec_audio.h
index 842dd92..e6b2078 100644
--- a/swfdec/swfdec_audio.h
+++ b/swfdec/swfdec_audio.h
@@ -38,10 +38,10 @@ typedef struct _SwfdecAudioClass SwfdecAudioClass;
 
 GType		swfdec_audio_get_type		(void);
 
-guint		swfdec_audio_render		(SwfdecAudio *	audio,
+gsize		swfdec_audio_render		(SwfdecAudio *	audio,
 						 gint16 *	dest,
-						 guint		start_offset,
-						 guint		n_samples);
+						 gsize		start_offset,
+						 gsize		n_samples);
 
 G_END_DECLS
 #endif
diff --git a/swfdec/swfdec_audio_event.c b/swfdec/swfdec_audio_event.c
index 10114e4..b72494d 100644
--- a/swfdec/swfdec_audio_event.c
+++ b/swfdec/swfdec_audio_event.c
@@ -1,7 +1,7 @@
 /* Swfdec
  * Copyright (C) 2003-2006 David Schleef <ds at schleef.org>
  *		 2005-2006 Eric Anholt <eric at anholt.net>
- *		 2006-2007 Benjamin Otte <otte at gnome.org>
+ *		 2006-2008 Benjamin Otte <otte at gnome.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -32,8 +32,8 @@
 G_DEFINE_TYPE (SwfdecAudioEvent, swfdec_audio_event, SWFDEC_TYPE_AUDIO)
 
 
-static guint
-swfdec_audio_event_iterate (SwfdecAudio *audio, guint remove)
+static gsize
+swfdec_audio_event_iterate (SwfdecAudio *audio, gsize remove)
 {
   SwfdecAudioEvent *event = SWFDEC_AUDIO_EVENT (audio);
 
@@ -78,13 +78,13 @@ swfdec_audio_event_get_envelop_volume (SwfdecAudioEvent *event, guint pos,
     event->envelope[pos].volume[channel] * (offset / distance);
 }
 
-static guint
-swfdec_audio_event_render (SwfdecAudio *audio, gint16* dest, guint start,
-    guint n_samples)
+static gsize
+swfdec_audio_event_render (SwfdecAudio *audio, gint16* dest, gsize start,
+    gsize n_samples)
 {
   SwfdecAudioEvent *event = SWFDEC_AUDIO_EVENT (audio);
-  guint offset = event->offset + start;
-  guint loop, samples, global_offset, pos, i, rendered;
+  gsize offset = event->offset + start;
+  gsize loop, samples, global_offset, pos, i, rendered;
   gint16 *dest_end;
 
   if (event->n_samples == 0)
diff --git a/swfdec/swfdec_audio_event.h b/swfdec/swfdec_audio_event.h
index 6f86692..cc4dcba 100644
--- a/swfdec/swfdec_audio_event.h
+++ b/swfdec/swfdec_audio_event.h
@@ -43,16 +43,16 @@ struct _SwfdecAudioEvent
 
   /* static data */
   SwfdecSound *		sound;		      	/* sound we're playing */
-  guint			start_sample; 		/* sample at which to start playing */
-  guint			stop_sample;	      	/* first sample to not play anymore or 0 for playing all */
-  guint			n_loops;		/* amount of times this sample still needs to be played back */
+  gsize			start_sample; 		/* sample at which to start playing */
+  gsize			stop_sample;	      	/* first sample to not play anymore or 0 for playing all */
+  gsize			n_loops;		/* amount of times this sample still needs to be played back */
   guint			n_envelopes;		/* amount of points in the envelope */
   SwfdecSoundEnvelope *	envelope;		/* volume envelope or NULL if none */
   /* dynamic data */
   SwfdecBuffer *	decoded;		/* the decoded buffer we play back or NULL if failure */
-  guint			offset;			/* current offset in 44.1kHz */
-  guint			loop;			/* current loop we're in */
-  guint			n_samples;	      	/* length of decoded buffer in 44.1kHz samples - can be 0 */
+  gsize			offset;			/* current offset in 44.1kHz */
+  gsize			loop;			/* current loop we're in */
+  gsize			n_samples;	      	/* length of decoded buffer in 44.1kHz samples - can be 0 */
 };
 
 struct _SwfdecAudioEventClass
diff --git a/swfdec/swfdec_audio_flv.c b/swfdec/swfdec_audio_flv.c
index df00208..7b46c65 100644
--- a/swfdec/swfdec_audio_flv.c
+++ b/swfdec/swfdec_audio_flv.c
@@ -112,13 +112,13 @@ swfdec_audio_flv_decode_one (SwfdecAudioFlv *flv)
   return buffer;
 }
 
-static guint
+static gsize
 swfdec_audio_flv_render (SwfdecAudio *audio, gint16* dest,
-    guint start, guint n_samples)
+    gsize start, gsize n_samples)
 {
   SwfdecAudioFlv *flv = SWFDEC_AUDIO_FLV (audio);
   GList *walk;
-  guint samples, rendered;
+  gsize samples, rendered;
   SwfdecBuffer *buffer;
 
   g_assert (start < G_MAXINT);
@@ -156,8 +156,8 @@ swfdec_audio_flv_render (SwfdecAudio *audio, gint16* dest,
   return rendered;
 }
 
-static guint
-swfdec_audio_flv_iterate (SwfdecAudio *audio, guint remove)
+static gsize
+swfdec_audio_flv_iterate (SwfdecAudio *audio, gsize remove)
 {
   SwfdecAudioFlv *flv = SWFDEC_AUDIO_FLV (audio);
   SwfdecBuffer *buffer;
diff --git a/swfdec/swfdec_audio_internal.h b/swfdec/swfdec_audio_internal.h
index 7d854f8..41ca683 100644
--- a/swfdec/swfdec_audio_internal.h
+++ b/swfdec/swfdec_audio_internal.h
@@ -48,11 +48,11 @@ struct _SwfdecAudioClass {
   GObjectClass		object_class;
 
   guint			(* iterate)	  		(SwfdecAudio *		audio,
-							 guint			n_samples);
+							 gsize			n_samples);
   guint			(* render)			(SwfdecAudio *		audio,
 							 gint16 *		dest,
-							 guint			start, 
-							 guint			n_samples);
+							 gsize			start, 
+							 gsize			n_samples);
 };
 
 void			swfdec_audio_add		(SwfdecAudio *		audio,
@@ -61,8 +61,8 @@ void			swfdec_audio_remove		(SwfdecAudio *		audio);
 void			swfdec_audio_set_actor		(SwfdecAudio *		audio,
 							 SwfdecActor *		actor);
 
-guint			swfdec_audio_iterate		(SwfdecAudio *		audio,
-							 guint			n_samples);
+gsize			swfdec_audio_iterate		(SwfdecAudio *		audio,
+							 gsize			n_samples);
 void			swfdec_audio_update_matrix	(SwfdecAudio *		audio);
 
 SwfdecAudioFormat	swfdec_audio_format_parse	(SwfdecBits *	  	bits);
diff --git a/swfdec/swfdec_audio_stream.c b/swfdec/swfdec_audio_stream.c
index ba781f5..e116d9e 100644
--- a/swfdec/swfdec_audio_stream.c
+++ b/swfdec/swfdec_audio_stream.c
@@ -75,13 +75,13 @@ swfdec_audio_stream_require (SwfdecAudioStream *stream, guint n_samples)
   }
 }
 
-static guint
+static gsize
 swfdec_audio_stream_render (SwfdecAudio *audio, gint16* dest,
-    guint start, guint n_samples)
+    gsize start, gsize n_samples)
 {
   SwfdecAudioStream *stream = SWFDEC_AUDIO_STREAM (audio);
   GList *walk;
-  guint samples, rendered, skip;
+  gsize samples, rendered, skip;
   SwfdecBuffer *buffer;
 
   g_assert (start < G_MAXINT);
@@ -117,12 +117,12 @@ swfdec_audio_stream_render (SwfdecAudio *audio, gint16* dest,
   return rendered - start;
 }
 
-static guint
-swfdec_audio_stream_iterate (SwfdecAudio *audio, guint remove)
+static gsize
+swfdec_audio_stream_iterate (SwfdecAudio *audio, gsize remove)
 {
   SwfdecAudioStream *stream = SWFDEC_AUDIO_STREAM (audio);
   SwfdecBuffer *buffer;
-  guint samples, cur_samples;
+  gsize samples, cur_samples;
 
   swfdec_audio_stream_require (stream, remove);
   samples = MIN (remove, stream->queue_size);
diff --git a/swfdec/swfdec_audio_stream.h b/swfdec/swfdec_audio_stream.h
index 96ea53f..824d477 100644
--- a/swfdec/swfdec_audio_stream.h
+++ b/swfdec/swfdec_audio_stream.h
@@ -43,7 +43,7 @@ struct _SwfdecAudioStream
 
   SwfdecAudioDecoder *	decoder;	/* decoder in use */
   GQueue *		queue;		/* all the samples we've decoded so far */
-  guint			queue_size;	/* size of queue in samples */
+  gsize			queue_size;	/* size of queue in samples */
   gboolean		done;		/* no more data will arrive */
 };
 
commit 6c95b90301333239148afeb26117a717d5a110d8
Author: Benjamin Otte <otte at gnome.org>
Date:   Wed Jun 11 16:56:40 2008 +0200

    attach the played sound to the movieclip that created it

diff --git a/swfdec/swfdec_sound_object.c b/swfdec/swfdec_sound_object.c
index c5cb8a1..b689c61 100644
--- a/swfdec/swfdec_sound_object.c
+++ b/swfdec/swfdec_sound_object.c
@@ -372,6 +372,8 @@ swfdec_sound_object_start (SwfdecAsContext *cx, SwfdecAsObject *object, guint ar
     offset = 0;
 
   audio = swfdec_audio_event_new (SWFDEC_PLAYER (cx), sound->attached, offset / 44100, loops);
+  if (sound->target && !sound->global)
+    swfdec_audio_set_actor (audio, SWFDEC_ACTOR (sound->target));
   g_object_unref (audio);
 }
 
commit 3300a4c0de0027a1449027f8689d76c3792ee1f2
Author: Benjamin Otte <otte at gnome.org>
Date:   Wed Jun 11 16:54:52 2008 +0200

    make audio gain a "changed" signal so people know when audio changes

diff --git a/swfdec/swfdec_audio.c b/swfdec/swfdec_audio.c
index 9848b92..db085f4 100644
--- a/swfdec/swfdec_audio.c
+++ b/swfdec/swfdec_audio.c
@@ -58,6 +58,13 @@
 
 G_DEFINE_ABSTRACT_TYPE (SwfdecAudio, swfdec_audio, G_TYPE_OBJECT)
 
+enum {
+  CHANGED,
+  LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0, };
+
 static void
 swfdec_audio_dispose (GObject *object)
 {
@@ -74,6 +81,18 @@ swfdec_audio_class_init (SwfdecAudioClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
+  /**
+   * SwfdecAudio::changed:
+   * @audio: the #SwfdecAudio affected
+   *
+   * This signal is emitted whenever the data of the @audio changed and cached
+   * data should be rerendered. This happens for example when the volume of the
+   * audio is changed by the Flash file.
+   */
+  signals[CHANGED] = g_signal_new ("changed", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID,
+      G_TYPE_NONE, 0);
+
   object_class->dispose = swfdec_audio_dispose;
 }
 
@@ -168,6 +187,30 @@ swfdec_audio_set_actor (SwfdecAudio *audio, SwfdecActor *actor)
   audio->actor = actor;
 }
 
+/* FIXME: This function is pretty much a polling approach at sound matrix 
+ * handling and it would be much nicer if we had a "changed" signal on the
+ * matrices. But matrices can't emit signals...
+ */
+void
+swfdec_audio_update_matrix (SwfdecAudio *audio)
+{
+  SwfdecSoundMatrix sound;
+
+  g_return_if_fail (SWFDEC_IS_AUDIO (audio));
+
+  if (audio->actor) {
+    swfdec_sound_matrix_multiply (&sound, &audio->actor->sound_matrix,
+	&audio->player->priv->sound_matrix);
+  } else if (audio->player) {
+    sound = audio->player->priv->sound_matrix;
+  }
+  if (swfdec_sound_matrix_is_equal (&sound, &audio->matrix))
+    return;
+
+  audio->matrix = sound;
+  g_signal_emit (audio, signals[CHANGED], 0);
+}
+
 /**
  * swfdec_audio_render:
  * @audio: a #SwfdecAudio
@@ -198,15 +241,7 @@ swfdec_audio_render (SwfdecAudio *audio, gint16 *dest,
 
   klass = SWFDEC_AUDIO_GET_CLASS (audio);
   rendered = klass->render (audio, dest, start_offset, n_samples);
-  if (audio->actor) {
-    SwfdecSoundMatrix sound;
-
-    swfdec_sound_matrix_multiply (&sound, &audio->actor->sound_matrix,
-	&audio->player->priv->sound_matrix);
-    swfdec_sound_matrix_apply (&sound, dest, rendered);
-  } else if (audio->player) {
-    swfdec_sound_matrix_apply (&audio->player->priv->sound_matrix, dest, rendered);
-  }
+  swfdec_sound_matrix_apply (&audio->matrix, dest, rendered);
 
   return rendered;
 }
diff --git a/swfdec/swfdec_audio_internal.h b/swfdec/swfdec_audio_internal.h
index e7deff8..7d854f8 100644
--- a/swfdec/swfdec_audio_internal.h
+++ b/swfdec/swfdec_audio_internal.h
@@ -25,6 +25,7 @@
 #include <swfdec/swfdec.h>
 #include <swfdec/swfdec_audio.h>
 #include <swfdec/swfdec_bits.h>
+#include <swfdec/swfdec_sound_matrix.h>
 #include <swfdec/swfdec_types.h>
 
 G_BEGIN_DECLS
@@ -40,6 +41,7 @@ struct _SwfdecAudio {
   SwfdecPlayer *	player;		/* the player that plays us */
   gboolean		added;		/* set to TRUE after the added signal has been emitted */
   SwfdecActor *		actor;		/* NULL or movieclip that controls our volume */
+  SwfdecSoundMatrix	matrix;		/* matrix used by this audio instance */
 };
 
 struct _SwfdecAudioClass {
@@ -61,6 +63,7 @@ void			swfdec_audio_set_actor		(SwfdecAudio *		audio,
 
 guint			swfdec_audio_iterate		(SwfdecAudio *		audio,
 							 guint			n_samples);
+void			swfdec_audio_update_matrix	(SwfdecAudio *		audio);
 
 SwfdecAudioFormat	swfdec_audio_format_parse	(SwfdecBits *	  	bits);
 SwfdecAudioFormat	swfdec_audio_format_new		(guint			rate,
diff --git a/swfdec/swfdec_player.c b/swfdec/swfdec_player.c
index 87763e0..c9f6dfa 100644
--- a/swfdec/swfdec_player.c
+++ b/swfdec/swfdec_player.c
@@ -828,10 +828,11 @@ swfdec_player_emit_signals (SwfdecPlayer *player)
   for (walk = priv->audio; walk; walk = walk->next) {
     SwfdecAudio *audio = walk->data;
 
-    if (audio->added)
-      continue;
-    g_signal_emit (player, signals[AUDIO_ADDED], 0, audio);
-    audio->added = TRUE;
+    swfdec_audio_update_matrix (audio);
+    if (!audio->added) {
+      g_signal_emit (player, signals[AUDIO_ADDED], 0, audio);
+      audio->added = TRUE;
+    }
   }
 
   /* emit missing-plugin signal for newly discovered plugins */
commit f416af4bacbf407c324502c7d154c0cb6b9849ec
Author: Benjamin Otte <otte at gnome.org>
Date:   Wed Jun 11 16:07:33 2008 +0200

    add swfdec_sound_matrix_is_equal()
    
    and fix a bug in swfdec_sound_matrix_is_identity() that made it always return
    FALSE

diff --git a/swfdec/swfdec_sound_matrix.c b/swfdec/swfdec_sound_matrix.c
index 645c77d..5531a43 100644
--- a/swfdec/swfdec_sound_matrix.c
+++ b/swfdec/swfdec_sound_matrix.c
@@ -65,7 +65,17 @@ swfdec_sound_matrix_is_identity (const SwfdecSoundMatrix *sound)
   g_return_val_if_fail (sound != NULL, FALSE);
 
   return sound->ll == 100 && sound->rr == 100 &&
-    sound->lr == 0 && sound->rr == 0 && sound->volume == 100;
+    sound->lr == 0 && sound->rl == 0 && sound->volume == 100;
+}
+
+gboolean
+swfdec_sound_matrix_is_equal (const SwfdecSoundMatrix *a, const SwfdecSoundMatrix *b)
+{
+  g_return_val_if_fail (a != NULL, FALSE);
+  g_return_val_if_fail (b != NULL, FALSE);
+
+  return a->ll == b->ll && a->rr == b->rr &&
+    a->lr == b->lr && a->rl == b->rl && a->volume == b->volume;
 }
 
 void
diff --git a/swfdec/swfdec_sound_matrix.h b/swfdec/swfdec_sound_matrix.h
index 0f3327c..aa0042e 100644
--- a/swfdec/swfdec_sound_matrix.h
+++ b/swfdec/swfdec_sound_matrix.h
@@ -36,6 +36,8 @@ struct _SwfdecSoundMatrix
 void		swfdec_sound_matrix_init_identity	(SwfdecSoundMatrix *		sound);
 
 gboolean	swfdec_sound_matrix_is_identity		(const SwfdecSoundMatrix *	sound);
+gboolean	swfdec_sound_matrix_is_equal		(const SwfdecSoundMatrix *	a,
+							 const SwfdecSoundMatrix *	b);
 
 int		swfdec_sound_matrix_get_pan		(const SwfdecSoundMatrix *	sound);
 void		swfdec_sound_matrix_set_pan		(SwfdecSoundMatrix *		sound,
commit 1189026d95f7c24878b9f6c370d32e89ec609065
Author: Benjamin Otte <otte at gnome.org>
Date:   Wed Jun 11 14:53:32 2008 +0200

    add a test for setting various values

diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index f26bc10..00226b2 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -3100,6 +3100,15 @@ EXTRA_DIST = \
 	sound-properties-8.swf.trace \
 	sound-properties-9.swf \
 	sound-properties-9.swf.trace \
+	sound-set-5.swf \
+	sound-set-5.swf.trace \
+	sound-set-6.swf \
+	sound-set-6.swf.trace \
+	sound-set-7.swf \
+	sound-set-7.swf.trace \
+	sound-set-8.swf \
+	sound-set-8.swf.trace \
+	sound-set.as \
 	sound-setTransform-propertytypes-5.swf \
 	sound-setTransform-propertytypes-5.swf.trace \
 	sound-setTransform-propertytypes-6.swf \
diff --git a/test/trace/sound-set-5.swf b/test/trace/sound-set-5.swf
new file mode 100644
index 0000000..bb06889
Binary files /dev/null and b/test/trace/sound-set-5.swf differ
diff --git a/test/trace/sound-set-5.swf.trace b/test/trace/sound-set-5.swf.trace
new file mode 100644
index 0000000..a523db9
--- /dev/null
+++ b/test/trace/sound-set-5.swf.trace
@@ -0,0 +1,39 @@
+{ 0, 0, 0, 0} (100, 100)
+{ 0, 0, 0, 0} (100, 100)
+{ 0, 0, 0, 0} (100, 100)
+{ -1234567890, -1234567890, -1234567890, -1234567890} (100, -1234567790)
+{ 1234567890, 1234567890, 1234567890, 1234567890} (100, -1234567790)
+{ -20, -20, -20, -20} (100, 80)
+{ 0, 0, 0, 0} (100, 100)
+{ 20, 20, 20, 20} (100, 80)
+{ 40, 40, 40, 40} (100, 60)
+{ 60, 60, 60, 60} (100, 40)
+{ 80, 80, 80, 80} (100, 20)
+{ 100, 100, 100, 100} (100, 0)
+{ 120, 120, 120, 120} (100, -20)
+{ 120, 120, 120, 120} (0, -20)
+{ 120, 120, 120, 120} (0, -20)
+{ 120, 120, 120, 120} (0, -20)
+{ 120, 120, 120, 120} (-1234567890, -20)
+{ 120, 120, 120, 120} (1234567890, -20)
+{ 120, 120, 120, 120} (-20, -20)
+{ 120, 120, 120, 120} (0, -20)
+{ 120, 120, 120, 120} (20, -20)
+{ 120, 120, 120, 120} (40, -20)
+{ 120, 120, 120, 120} (60, -20)
+{ 120, 120, 120, 120} (80, -20)
+{ 120, 120, 120, 120} (100, -20)
+{ 120, 120, 120, 120} (120, -20)
+{ 100, 0, 0, 100} (120, 0)
+{ 100, 0, 0, 100} (120, 0)
+{ 100, 0, 0, 100} (120, 0)
+{ 100, 0, 0, -1234567790} (120, 1234567690)
+{ -1234567790, 0, 0, 100} (120, -1234567690)
+{ 100, 0, 0, 80} (120, -20)
+{ 100, 0, 0, 100} (120, 0)
+{ 80, 0, 0, 100} (120, 20)
+{ 60, 0, 0, 100} (120, 40)
+{ 40, 0, 0, 100} (120, 60)
+{ 20, 0, 0, 100} (120, 80)
+{ 0, 0, 0, 100} (120, 100)
+{ -20, 0, 0, 100} (120, 80)
diff --git a/test/trace/sound-set-6.swf b/test/trace/sound-set-6.swf
new file mode 100644
index 0000000..809c5c7
Binary files /dev/null and b/test/trace/sound-set-6.swf differ
diff --git a/test/trace/sound-set-6.swf.trace b/test/trace/sound-set-6.swf.trace
new file mode 100644
index 0000000..dba9b37
--- /dev/null
+++ b/test/trace/sound-set-6.swf.trace
@@ -0,0 +1,39 @@
+{ 0, 0, 0, 0} (100, 100)
+{ 0, 0, 0, 0} (100, 100)
+{ 0, 0, 0, 0} (100, 100)
+{ -1234567890, -1234567890, -1234567890, -1234567890} (100, -1234567790)
+{ 1234567890, 1234567890, 1234567890, 1234567890} (100, -1234567790)
+{ -20, -20, -20, -20} (100, 80)
+{ 0, 0, 0, 0} (100, 100)
+{ 20, 20, 20, 20} (100, 80)
+{ 40, 40, 40, 40} (100, 60)
+{ 60, 60, 60, 60} (100, 40)
+{ 80, 80, 80, 80} (100, 20)
+{ 100, 100, 100, 100} (100, 0)
+{ 120, 120, 120, 120} (100, -20)
+{ 100, 0, 0, 100} (0, 0)
+{ 100, 0, 0, 100} (0, 0)
+{ 100, 0, 0, 100} (0, 0)
+{ 100, 0, 0, 100} (-1234567890, 0)
+{ 100, 0, 0, 100} (1234567890, 0)
+{ 100, 0, 0, 100} (-20, 0)
+{ 100, 0, 0, 100} (0, 0)
+{ 100, 0, 0, 100} (20, 0)
+{ 100, 0, 0, 100} (40, 0)
+{ 100, 0, 0, 100} (60, 0)
+{ 100, 0, 0, 100} (80, 0)
+{ 100, 0, 0, 100} (100, 0)
+{ 100, 0, 0, 100} (120, 0)
+{ 100, 0, 0, 100} (100, 0)
+{ 100, 0, 0, 100} (100, 0)
+{ 100, 0, 0, 100} (100, 0)
+{ 100, 0, 0, -1234567790} (100, 1234567690)
+{ -1234567790, 0, 0, 100} (100, -1234567690)
+{ 100, 0, 0, 80} (100, -20)
+{ 100, 0, 0, 100} (100, 0)
+{ 80, 0, 0, 100} (100, 20)
+{ 60, 0, 0, 100} (100, 40)
+{ 40, 0, 0, 100} (100, 60)
+{ 20, 0, 0, 100} (100, 80)
+{ 0, 0, 0, 100} (100, 100)
+{ -20, 0, 0, 100} (100, 80)
diff --git a/test/trace/sound-set-7.swf b/test/trace/sound-set-7.swf
new file mode 100644
index 0000000..93eeae2
Binary files /dev/null and b/test/trace/sound-set-7.swf differ
diff --git a/test/trace/sound-set-7.swf.trace b/test/trace/sound-set-7.swf.trace
new file mode 100644
index 0000000..dba9b37
--- /dev/null
+++ b/test/trace/sound-set-7.swf.trace
@@ -0,0 +1,39 @@
+{ 0, 0, 0, 0} (100, 100)
+{ 0, 0, 0, 0} (100, 100)
+{ 0, 0, 0, 0} (100, 100)
+{ -1234567890, -1234567890, -1234567890, -1234567890} (100, -1234567790)
+{ 1234567890, 1234567890, 1234567890, 1234567890} (100, -1234567790)
+{ -20, -20, -20, -20} (100, 80)
+{ 0, 0, 0, 0} (100, 100)
+{ 20, 20, 20, 20} (100, 80)
+{ 40, 40, 40, 40} (100, 60)
+{ 60, 60, 60, 60} (100, 40)
+{ 80, 80, 80, 80} (100, 20)
+{ 100, 100, 100, 100} (100, 0)
+{ 120, 120, 120, 120} (100, -20)
+{ 100, 0, 0, 100} (0, 0)
+{ 100, 0, 0, 100} (0, 0)
+{ 100, 0, 0, 100} (0, 0)
+{ 100, 0, 0, 100} (-1234567890, 0)
+{ 100, 0, 0, 100} (1234567890, 0)
+{ 100, 0, 0, 100} (-20, 0)
+{ 100, 0, 0, 100} (0, 0)
+{ 100, 0, 0, 100} (20, 0)
+{ 100, 0, 0, 100} (40, 0)
+{ 100, 0, 0, 100} (60, 0)
+{ 100, 0, 0, 100} (80, 0)
+{ 100, 0, 0, 100} (100, 0)
+{ 100, 0, 0, 100} (120, 0)
+{ 100, 0, 0, 100} (100, 0)
+{ 100, 0, 0, 100} (100, 0)
+{ 100, 0, 0, 100} (100, 0)
+{ 100, 0, 0, -1234567790} (100, 1234567690)
+{ -1234567790, 0, 0, 100} (100, -1234567690)
+{ 100, 0, 0, 80} (100, -20)
+{ 100, 0, 0, 100} (100, 0)
+{ 80, 0, 0, 100} (100, 20)
+{ 60, 0, 0, 100} (100, 40)
+{ 40, 0, 0, 100} (100, 60)
+{ 20, 0, 0, 100} (100, 80)
+{ 0, 0, 0, 100} (100, 100)
+{ -20, 0, 0, 100} (100, 80)
diff --git a/test/trace/sound-set-8.swf b/test/trace/sound-set-8.swf
new file mode 100644
index 0000000..4ab03ca
Binary files /dev/null and b/test/trace/sound-set-8.swf differ
diff --git a/test/trace/sound-set-8.swf.trace b/test/trace/sound-set-8.swf.trace
new file mode 100644
index 0000000..dba9b37
--- /dev/null
+++ b/test/trace/sound-set-8.swf.trace
@@ -0,0 +1,39 @@
+{ 0, 0, 0, 0} (100, 100)
+{ 0, 0, 0, 0} (100, 100)
+{ 0, 0, 0, 0} (100, 100)
+{ -1234567890, -1234567890, -1234567890, -1234567890} (100, -1234567790)
+{ 1234567890, 1234567890, 1234567890, 1234567890} (100, -1234567790)
+{ -20, -20, -20, -20} (100, 80)
+{ 0, 0, 0, 0} (100, 100)
+{ 20, 20, 20, 20} (100, 80)
+{ 40, 40, 40, 40} (100, 60)
+{ 60, 60, 60, 60} (100, 40)
+{ 80, 80, 80, 80} (100, 20)
+{ 100, 100, 100, 100} (100, 0)
+{ 120, 120, 120, 120} (100, -20)
+{ 100, 0, 0, 100} (0, 0)
+{ 100, 0, 0, 100} (0, 0)
+{ 100, 0, 0, 100} (0, 0)
+{ 100, 0, 0, 100} (-1234567890, 0)
+{ 100, 0, 0, 100} (1234567890, 0)
+{ 100, 0, 0, 100} (-20, 0)
+{ 100, 0, 0, 100} (0, 0)
+{ 100, 0, 0, 100} (20, 0)
+{ 100, 0, 0, 100} (40, 0)
+{ 100, 0, 0, 100} (60, 0)
+{ 100, 0, 0, 100} (80, 0)
+{ 100, 0, 0, 100} (100, 0)
+{ 100, 0, 0, 100} (120, 0)
+{ 100, 0, 0, 100} (100, 0)
+{ 100, 0, 0, 100} (100, 0)
+{ 100, 0, 0, 100} (100, 0)
+{ 100, 0, 0, -1234567790} (100, 1234567690)
+{ -1234567790, 0, 0, 100} (100, -1234567690)
+{ 100, 0, 0, 80} (100, -20)
+{ 100, 0, 0, 100} (100, 0)
+{ 80, 0, 0, 100} (100, 20)
+{ 60, 0, 0, 100} (100, 40)
+{ 40, 0, 0, 100} (100, 60)
+{ 20, 0, 0, 100} (100, 80)
+{ 0, 0, 0, 100} (100, 100)
+{ -20, 0, 0, 100} (100, 80)
diff --git a/test/trace/sound-set.as b/test/trace/sound-set.as
new file mode 100644
index 0000000..6fc3f08
--- /dev/null
+++ b/test/trace/sound-set.as
@@ -0,0 +1,32 @@
+// makeswf -v 7 -s 200x150 -r 1 -o sound-set.swf sound-set.as
+
+Sound.prototype.toString = function () {
+  var tf = this.getTransform ();
+  return "{ " + tf.ll + ", " + tf.rl + ", " + tf.lr + ", " + tf.rr + "} (" + this.getVolume () + ", " + this.getPan () + ")";
+};
+
+values = [ undefined, NaN, Infinity, -1234567890, 1234567890, -20, 0, 20, 40, 60, 80, 100, 120];
+
+for (i = 0; i < values.length; i++) {
+  createEmptyMovieClip ("a", 0);
+  x = new Sound (a);
+  x.setTransform ({ ll:values[i], lr:values[i], rl:values[i], rr:values[i] });
+  trace (x);
+};
+
+for (i = 0; i < values.length; i++) {
+  createEmptyMovieClip ("a", 0);
+  x = new Sound (a);
+  x.setVolume (values[i]);
+  trace (x);
+};
+
+for (i = 0; i < values.length; i++) {
+  createEmptyMovieClip ("a", 0);
+  x = new Sound (a);
+  x.setTransform ({ ll: random(101), lr: random (101), rl: random (101), rr: random (101) });
+  x.setPan (values[i]);
+  trace (x);
+};
+
+getURL ("fscommand:quit", "");
commit ed4ffd15c8069f8962fa1fee2dc5ec88a2ff2bf3
Author: Benjamin Otte <otte at gnome.org>
Date:   Wed Jun 11 14:53:14 2008 +0200

    setPan sets lr and rl members to 0

diff --git a/swfdec/swfdec_sound_matrix.c b/swfdec/swfdec_sound_matrix.c
index f686f18..645c77d 100644
--- a/swfdec/swfdec_sound_matrix.c
+++ b/swfdec/swfdec_sound_matrix.c
@@ -55,6 +55,8 @@ swfdec_sound_matrix_set_pan (SwfdecSoundMatrix *sound, int pan)
     sound->ll = 100;
     sound->rr = 100 + pan;
   }
+  sound->lr = 0;
+  sound->rl = 0;
 }
 
 gboolean
commit dd5d788a6964eb27068bc5b200ddb5de6ddcb2b1
Author: Benjamin Otte <otte at gnome.org>
Date:   Wed Jun 11 14:00:57 2008 +0200

    add test that tests if Sound objects works on textfields

diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index 3063c2d..f26bc10 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -3109,6 +3109,15 @@ EXTRA_DIST = \
 	sound-setTransform-propertytypes-8.swf \
 	sound-setTransform-propertytypes-8.swf.trace \
 	sound-setTransform-propertytypes.as \
+	sound-textfield-5.swf \
+	sound-textfield-5.swf.trace \
+	sound-textfield-6.swf \
+	sound-textfield-6.swf.trace \
+	sound-textfield-7.swf \
+	sound-textfield-7.swf.trace \
+	sound-textfield-8.swf \
+	sound-textfield-8.swf.trace \
+	sound-textfield.as \
 	stack-overflow.as \
 	stack-overflow-5.swf \
 	stack-overflow-5.swf.trace \
diff --git a/test/trace/sound-textfield-5.swf b/test/trace/sound-textfield-5.swf
new file mode 100644
index 0000000..374a9c2
Binary files /dev/null and b/test/trace/sound-textfield-5.swf differ
diff --git a/test/trace/sound-textfield-5.swf.trace b/test/trace/sound-textfield-5.swf.trace
new file mode 100644
index 0000000..4d3be27
--- /dev/null
+++ b/test/trace/sound-textfield-5.swf.trace
@@ -0,0 +1,3 @@
+[object Object]: { 100, 0, 0, 50} (100, -50)
+[object Object]: { 50, 0, 0, 100} (100, 50)
+: { , , , } (, )
diff --git a/test/trace/sound-textfield-6.swf b/test/trace/sound-textfield-6.swf
new file mode 100644
index 0000000..52d4f3b
Binary files /dev/null and b/test/trace/sound-textfield-6.swf differ
diff --git a/test/trace/sound-textfield-6.swf.trace b/test/trace/sound-textfield-6.swf.trace
new file mode 100644
index 0000000..4d3be27
--- /dev/null
+++ b/test/trace/sound-textfield-6.swf.trace
@@ -0,0 +1,3 @@
+[object Object]: { 100, 0, 0, 50} (100, -50)
+[object Object]: { 50, 0, 0, 100} (100, 50)
+: { , , , } (, )
diff --git a/test/trace/sound-textfield-7.swf b/test/trace/sound-textfield-7.swf
new file mode 100644
index 0000000..f7b213d
Binary files /dev/null and b/test/trace/sound-textfield-7.swf differ
diff --git a/test/trace/sound-textfield-7.swf.trace b/test/trace/sound-textfield-7.swf.trace
new file mode 100644
index 0000000..405bbf1
--- /dev/null
+++ b/test/trace/sound-textfield-7.swf.trace
@@ -0,0 +1,3 @@
+[object Object]: { 100, 0, 0, 50} (100, -50)
+[object Object]: { 50, 0, 0, 100} (100, 50)
+undefined: { undefined, undefined, undefined, undefined} (undefined, undefined)
diff --git a/test/trace/sound-textfield-8.swf b/test/trace/sound-textfield-8.swf
new file mode 100644
index 0000000..0e193a2
Binary files /dev/null and b/test/trace/sound-textfield-8.swf differ
diff --git a/test/trace/sound-textfield-8.swf.trace b/test/trace/sound-textfield-8.swf.trace
new file mode 100644
index 0000000..405bbf1
--- /dev/null
+++ b/test/trace/sound-textfield-8.swf.trace
@@ -0,0 +1,3 @@
+[object Object]: { 100, 0, 0, 50} (100, -50)
+[object Object]: { 50, 0, 0, 100} (100, 50)
+undefined: { undefined, undefined, undefined, undefined} (undefined, undefined)
diff --git a/test/trace/sound-textfield.as b/test/trace/sound-textfield.as
new file mode 100644
index 0000000..be826a8
--- /dev/null
+++ b/test/trace/sound-textfield.as
@@ -0,0 +1,20 @@
+// makeswf -v 7 -s 200x150 -r 1 -o sound-textfield.swf sound-textfield.as
+
+Sound.prototype.toString = function () {
+  var tf = this.getTransform ();
+  return tf + ": { " + tf.ll + ", " + tf.rl + ", " + tf.lr + ", " + tf.rr + "} (" + this.getVolume () + ", " + this.getPan () + ")";
+};
+
+x = new Sound ();
+x.setPan (-50);
+createTextField ("t", 0, 0, 0, 100, 50);
+x = new Sound (t);
+x.setPan (50);
+x = new Sound ();
+trace (x);
+x = new Sound (t);
+trace (x);
+x = new Sound ("asdf");
+trace (x);
+
+getURL ("fscommand:quit", "");
commit 33ef1e777e66c3c24c538eabc0b6950460db9718
Author: Benjamin Otte <otte at gnome.org>
Date:   Wed Jun 11 14:00:24 2008 +0200

    make setPan work right
    
    s/+/-/ and vice versa

diff --git a/swfdec/swfdec_sound_matrix.c b/swfdec/swfdec_sound_matrix.c
index 40c76c9..f686f18 100644
--- a/swfdec/swfdec_sound_matrix.c
+++ b/swfdec/swfdec_sound_matrix.c
@@ -50,10 +50,10 @@ swfdec_sound_matrix_set_pan (SwfdecSoundMatrix *sound, int pan)
 
   if (pan > 0) {
     sound->rr = 100;
-    sound->ll = 100 + pan;
+    sound->ll = 100 - pan;
   } else {
     sound->ll = 100;
-    sound->rr = 100 - pan;
+    sound->rr = 100 + pan;
   }
 }
 
commit 6d656fb75a4a0bc30e9915e7f17faa3e37cef084
Author: Benjamin Otte <otte at gnome.org>
Date:   Wed Jun 11 13:46:59 2008 +0200

    add test for how Sound.setTransform() parses properties on the passed object

diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index b0c25b2..3063c2d 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -3100,6 +3100,15 @@ EXTRA_DIST = \
 	sound-properties-8.swf.trace \
 	sound-properties-9.swf \
 	sound-properties-9.swf.trace \
+	sound-setTransform-propertytypes-5.swf \
+	sound-setTransform-propertytypes-5.swf.trace \
+	sound-setTransform-propertytypes-6.swf \
+	sound-setTransform-propertytypes-6.swf.trace \
+	sound-setTransform-propertytypes-7.swf \
+	sound-setTransform-propertytypes-7.swf.trace \
+	sound-setTransform-propertytypes-8.swf \
+	sound-setTransform-propertytypes-8.swf.trace \
+	sound-setTransform-propertytypes.as \
 	stack-overflow.as \
 	stack-overflow-5.swf \
 	stack-overflow-5.swf.trace \
diff --git a/test/trace/sound-setTransform-propertytypes-5.swf b/test/trace/sound-setTransform-propertytypes-5.swf
new file mode 100644
index 0000000..3fa315e
Binary files /dev/null and b/test/trace/sound-setTransform-propertytypes-5.swf differ
diff --git a/test/trace/sound-setTransform-propertytypes-5.swf.trace b/test/trace/sound-setTransform-propertytypes-5.swf.trace
new file mode 100644
index 0000000..48bdd16
--- /dev/null
+++ b/test/trace/sound-setTransform-propertytypes-5.swf.trace
@@ -0,0 +1,1625 @@
+0 (        ) [object Object]: { 100, 0, 0, 100} (100, 0)
+1 (44      ) [object Object]: { 44, 0, 0, 100} (100, 56)
+2 (        ) [object Object]: { 44, 0, 0, 100} (100, 56)
+3 (22      ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf 
+valueOf 
+4 (      ) [object Object]: { 0, 0, 0, 100} (100, 100)
+5 (  42    ) [object Object]: { 0, 0, 42, 100} (100, 100)
+6 (4442    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+7 (  42    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+8 (2242    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf 
+valueOf 
+9 (42    ) [object Object]: { 0, 0, 42, 100} (100, 100)
+10 (        ) [object Object]: { 0, 0, 42, 100} (100, 100)
+11 (44      ) [object Object]: { 44, 0, 42, 100} (100, 56)
+12 (        ) [object Object]: { 44, 0, 42, 100} (100, 56)
+13 (22      ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf 
+valueOf 
+14 (      ) [object Object]: { 0, 0, 42, 100} (100, 100)
+15 (  21    ) [object Object]: { 0, 0, 42, 100} (100, 100)
+16 (4421    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+17 (  21    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+18 (2221    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf 
+valueOf 
+19 (21    ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf 
+valueOf 
+20 (      ) [object Object]: { 0, 0, 0, 100} (100, 100)
+valueOf 
+valueOf 
+21 (44    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf 
+valueOf 
+22 (      ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf 
+valueOf 
+23 (22    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+24 (    ) [object Object]: { 0, 0, 0, 100} (100, 100)
+25 (    24  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+26 (44  24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+27 (    24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+28 (22  24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf 
+valueOf 
+29 (  24  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+30 (  4224  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+31 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+32 (  4224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+33 (224224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf 
+valueOf 
+34 (4224  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+35 (    24  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+36 (44  24  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+37 (    24  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+38 (22  24  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf 
+valueOf 
+39 (  24  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+40 (  2124  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+41 (442124  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+42 (  2124  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+43 (222124  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf 
+valueOf 
+44 (2124  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf 
+valueOf 
+45 (  24  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf 
+valueOf 
+46 (4424  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf 
+valueOf 
+47 (  24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf 
+valueOf 
+48 (2224  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+49 (24  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+50 (        ) [object Object]: { 0, 24, 0, 100} (100, 100)
+51 (44      ) [object Object]: { 44, 24, 0, 100} (100, 56)
+52 (        ) [object Object]: { 44, 24, 0, 100} (100, 56)
+53 (22      ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf 
+valueOf 
+54 (      ) [object Object]: { 0, 24, 0, 100} (100, 100)
+55 (  42    ) [object Object]: { 0, 24, 42, 100} (100, 100)
+56 (4442    ) [object Object]: { 44, 24, 42, 100} (100, 56)
+57 (  42    ) [object Object]: { 44, 24, 42, 100} (100, 56)
+58 (2242    ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf 
+valueOf 
+59 (42    ) [object Object]: { 0, 24, 42, 100} (100, 100)
+60 (        ) [object Object]: { 0, 24, 42, 100} (100, 100)
+61 (44      ) [object Object]: { 44, 24, 42, 100} (100, 56)
+62 (        ) [object Object]: { 44, 24, 42, 100} (100, 56)
+63 (22      ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf 
+valueOf 
+64 (      ) [object Object]: { 0, 24, 42, 100} (100, 100)
+65 (  21    ) [object Object]: { 0, 24, 42, 100} (100, 100)
+66 (4421    ) [object Object]: { 44, 24, 42, 100} (100, 56)
+67 (  21    ) [object Object]: { 44, 24, 42, 100} (100, 56)
+68 (2221    ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf 
+valueOf 
+69 (21    ) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf 
+valueOf 
+70 (      ) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf 
+valueOf 
+71 (44    ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf 
+valueOf 
+72 (      ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf 
+valueOf 
+73 (22    ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+74 (    ) [object Object]: { 0, 24, 0, 100} (100, 100)
+75 (    12  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+76 (44  12  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+77 (    12  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+78 (22  12  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf 
+valueOf 
+79 (  12  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+80 (  4212  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+81 (444212  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+82 (  4212  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+83 (224212  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf 
+valueOf 
+84 (4212  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+85 (    12  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+86 (44  12  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+87 (    12  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+88 (22  12  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf 
+valueOf 
+89 (  12  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+90 (  2112  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+91 (442112  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+92 (  2112  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+93 (222112  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf 
+valueOf 
+94 (2112  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf 
+valueOf 
+95 (  12  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf 
+valueOf 
+96 (4412  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf 
+valueOf 
+97 (  12  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf 
+valueOf 
+98 (2212  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+99 (12  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf 
+valueOf 
+100 (      ) [object Object]: { 0, 0, 0, 100} (100, 100)
+valueOf 
+valueOf 
+101 (44    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf 
+valueOf 
+102 (      ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf 
+valueOf 
+103 (22    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+104 (    ) [object Object]: { 0, 0, 0, 100} (100, 100)
+valueOf 
+valueOf 
+105 (  42  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf 
+valueOf 
+106 (4442  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf 
+valueOf 
+107 (  42  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf 
+valueOf 
+108 (2242  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+109 (42  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf 
+valueOf 
+110 (      ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf 
+valueOf 
+111 (44    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf 
+valueOf 
+112 (      ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf 
+valueOf 
+113 (22    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+114 (    ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf 
+valueOf 
+115 (  21  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf 
+valueOf 
+116 (4421  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf 
+valueOf 
+117 (  21  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf 
+valueOf 
+118 (2221  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+119 (21  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+120 (    ) [object Object]: { 0, 0, 0, 100} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+121 (44  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+122 (    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+123 (22  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+124 (  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+125 (      22) [object Object]: { 0, 0, 0, 22} (100, 100)
+126 (44    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+127 (      22) [object Object]: { 44, 0, 0, 22} (100, 56)
+128 (22    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+129 (    22) [object Object]: { 0, 0, 0, 22} (100, 100)
+130 (  42  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+131 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+132 (  42  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+133 (2242  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+134 (42  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+135 (      22) [object Object]: { 0, 0, 42, 22} (100, 100)
+136 (44    22) [object Object]: { 44, 0, 42, 22} (100, 56)
+137 (      22) [object Object]: { 44, 0, 42, 22} (100, 56)
+138 (22    22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+139 (    22) [object Object]: { 0, 0, 42, 22} (100, 100)
+140 (  21  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+141 (4421  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+142 (  21  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+143 (2221  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+144 (21  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+145 (    22) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf 
+valueOf 
+146 (44  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+147 (    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+148 (22  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+149 (  22) [object Object]: { 0, 0, 0, 22} (100, 100)
+150 (    2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+151 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+152 (    2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+153 (22  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+154 (  2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+155 (  422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+156 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+157 (  422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+158 (22422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+159 (422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+160 (    2422) [object Object]: { 0, 24, 42, 22} (100, 100)
+161 (44  2422) [object Object]: { 44, 24, 42, 22} (100, 56)
+162 (    2422) [object Object]: { 44, 24, 42, 22} (100, 56)
+163 (22  2422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+164 (  2422) [object Object]: { 0, 24, 42, 22} (100, 100)
+165 (  212422) [object Object]: { 0, 24, 42, 22} (100, 100)
+166 (44212422) [object Object]: { 44, 24, 42, 22} (100, 56)
+167 (  212422) [object Object]: { 44, 24, 42, 22} (100, 56)
+168 (22212422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+169 (212422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf 
+valueOf 
+170 (  2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf 
+valueOf 
+171 (442422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+172 (  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+173 (222422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+174 (2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+175 (      22) [object Object]: { 0, 24, 0, 22} (100, 100)
+176 (44    22) [object Object]: { 44, 24, 0, 22} (100, 56)
+177 (      22) [object Object]: { 44, 24, 0, 22} (100, 56)
+178 (22    22) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+179 (    22) [object Object]: { 0, 24, 0, 22} (100, 100)
+180 (  42  22) [object Object]: { 0, 24, 42, 22} (100, 100)
+181 (4442  22) [object Object]: { 44, 24, 42, 22} (100, 56)
+182 (  42  22) [object Object]: { 44, 24, 42, 22} (100, 56)
+183 (2242  22) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+184 (42  22) [object Object]: { 0, 24, 42, 22} (100, 100)
+185 (      22) [object Object]: { 0, 24, 42, 22} (100, 100)
+186 (44    22) [object Object]: { 44, 24, 42, 22} (100, 56)
+187 (      22) [object Object]: { 44, 24, 42, 22} (100, 56)
+188 (22    22) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+189 (    22) [object Object]: { 0, 24, 42, 22} (100, 100)
+190 (  21  22) [object Object]: { 0, 24, 42, 22} (100, 100)
+191 (4421  22) [object Object]: { 44, 24, 42, 22} (100, 56)
+192 (  21  22) [object Object]: { 44, 24, 42, 22} (100, 56)
+193 (2221  22) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+194 (21  22) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf 
+valueOf 
+195 (    22) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf 
+valueOf 
+196 (44  22) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+197 (    22) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+198 (22  22) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+199 (  22) [object Object]: { 0, 24, 0, 22} (100, 100)
+200 (    1222) [object Object]: { 0, 24, 0, 22} (100, 100)
+201 (44  1222) [object Object]: { 44, 24, 0, 22} (100, 56)
+202 (    1222) [object Object]: { 44, 24, 0, 22} (100, 56)
+203 (22  1222) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+204 (  1222) [object Object]: { 0, 24, 0, 22} (100, 100)
+205 (  421222) [object Object]: { 0, 24, 42, 22} (100, 100)
+206 (44421222) [object Object]: { 44, 24, 42, 22} (100, 56)
+207 (  421222) [object Object]: { 44, 24, 42, 22} (100, 56)
+208 (22421222) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+209 (421222) [object Object]: { 0, 24, 42, 22} (100, 100)
+210 (    1222) [object Object]: { 0, 24, 42, 22} (100, 100)
+211 (44  1222) [object Object]: { 44, 24, 42, 22} (100, 56)
+212 (    1222) [object Object]: { 44, 24, 42, 22} (100, 56)
+213 (22  1222) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+214 (  1222) [object Object]: { 0, 24, 42, 22} (100, 100)
+215 (  211222) [object Object]: { 0, 24, 42, 22} (100, 100)
+216 (44211222) [object Object]: { 44, 24, 42, 22} (100, 56)
+217 (  211222) [object Object]: { 44, 24, 42, 22} (100, 56)
+218 (22211222) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+219 (211222) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf 
+valueOf 
+220 (  1222) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf 
+valueOf 
+221 (441222) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+222 (  1222) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+223 (221222) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+224 (1222) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf 
+valueOf 
+225 (    22) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf 
+valueOf 
+226 (44  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+227 (    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+228 (22  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+229 (  22) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf 
+valueOf 
+230 (  4222) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+231 (444222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+232 (  4222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+233 (224222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+234 (4222) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+235 (    22) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+236 (44  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+237 (    22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+238 (22  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+239 (  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+240 (  2122) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+241 (442122) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+242 (  2122) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+243 (222122) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+244 (2122) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+245 (  22) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+246 (4422) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+247 (  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+248 (2222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+249 (22) [object Object]: { 0, 0, 0, 22} (100, 100)
+250 (        ) [object Object]: { 0, 0, 0, 22} (100, 100)
+251 (44      ) [object Object]: { 44, 0, 0, 22} (100, 56)
+252 (        ) [object Object]: { 44, 0, 0, 22} (100, 56)
+253 (22      ) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+254 (      ) [object Object]: { 0, 0, 0, 22} (100, 100)
+255 (  42    ) [object Object]: { 0, 0, 42, 22} (100, 100)
+256 (4442    ) [object Object]: { 44, 0, 42, 22} (100, 56)
+257 (  42    ) [object Object]: { 44, 0, 42, 22} (100, 56)
+258 (2242    ) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+259 (42    ) [object Object]: { 0, 0, 42, 22} (100, 100)
+260 (        ) [object Object]: { 0, 0, 42, 22} (100, 100)
+261 (44      ) [object Object]: { 44, 0, 42, 22} (100, 56)
+262 (        ) [object Object]: { 44, 0, 42, 22} (100, 56)
+263 (22      ) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+264 (      ) [object Object]: { 0, 0, 42, 22} (100, 100)
+265 (  21    ) [object Object]: { 0, 0, 42, 22} (100, 100)
+266 (4421    ) [object Object]: { 44, 0, 42, 22} (100, 56)
+267 (  21    ) [object Object]: { 44, 0, 42, 22} (100, 56)
+268 (2221    ) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+269 (21    ) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+270 (      ) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf 
+valueOf 
+271 (44    ) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+272 (      ) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+273 (22    ) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+274 (    ) [object Object]: { 0, 0, 0, 22} (100, 100)
+275 (    24  ) [object Object]: { 0, 24, 0, 22} (100, 100)
+276 (44  24  ) [object Object]: { 44, 24, 0, 22} (100, 56)
+277 (    24  ) [object Object]: { 44, 24, 0, 22} (100, 56)
+278 (22  24  ) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+279 (  24  ) [object Object]: { 0, 24, 0, 22} (100, 100)
+280 (  4224  ) [object Object]: { 0, 24, 42, 22} (100, 100)
+281 (444224  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+282 (  4224  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+283 (224224  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+284 (4224  ) [object Object]: { 0, 24, 42, 22} (100, 100)
+285 (    24  ) [object Object]: { 0, 24, 42, 22} (100, 100)
+286 (44  24  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+287 (    24  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+288 (22  24  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+289 (  24  ) [object Object]: { 0, 24, 42, 22} (100, 100)
+290 (  2124  ) [object Object]: { 0, 24, 42, 22} (100, 100)
+291 (442124  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+292 (  2124  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+293 (222124  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+294 (2124  ) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf 
+valueOf 
+295 (  24  ) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf 
+valueOf 
+296 (4424  ) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+297 (  24  ) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+298 (2224  ) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+299 (24  ) [object Object]: { 0, 24, 0, 22} (100, 100)
+300 (        ) [object Object]: { 0, 24, 0, 22} (100, 100)
+301 (44      ) [object Object]: { 44, 24, 0, 22} (100, 56)
+302 (        ) [object Object]: { 44, 24, 0, 22} (100, 56)
+303 (22      ) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+304 (      ) [object Object]: { 0, 24, 0, 22} (100, 100)
+305 (  42    ) [object Object]: { 0, 24, 42, 22} (100, 100)
+306 (4442    ) [object Object]: { 44, 24, 42, 22} (100, 56)
+307 (  42    ) [object Object]: { 44, 24, 42, 22} (100, 56)
+308 (2242    ) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+309 (42    ) [object Object]: { 0, 24, 42, 22} (100, 100)
+310 (        ) [object Object]: { 0, 24, 42, 22} (100, 100)
+311 (44      ) [object Object]: { 44, 24, 42, 22} (100, 56)
+312 (        ) [object Object]: { 44, 24, 42, 22} (100, 56)
+313 (22      ) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+314 (      ) [object Object]: { 0, 24, 42, 22} (100, 100)
+315 (  21    ) [object Object]: { 0, 24, 42, 22} (100, 100)
+316 (4421    ) [object Object]: { 44, 24, 42, 22} (100, 56)
+317 (  21    ) [object Object]: { 44, 24, 42, 22} (100, 56)
+318 (2221    ) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+319 (21    ) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf 
+valueOf 
+320 (      ) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf 
+valueOf 
+321 (44    ) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+322 (      ) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+323 (22    ) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+324 (    ) [object Object]: { 0, 24, 0, 22} (100, 100)
+325 (    12  ) [object Object]: { 0, 24, 0, 22} (100, 100)
+326 (44  12  ) [object Object]: { 44, 24, 0, 22} (100, 56)
+327 (    12  ) [object Object]: { 44, 24, 0, 22} (100, 56)
+328 (22  12  ) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+329 (  12  ) [object Object]: { 0, 24, 0, 22} (100, 100)
+330 (  4212  ) [object Object]: { 0, 24, 42, 22} (100, 100)
+331 (444212  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+332 (  4212  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+333 (224212  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+334 (4212  ) [object Object]: { 0, 24, 42, 22} (100, 100)
+335 (    12  ) [object Object]: { 0, 24, 42, 22} (100, 100)
+336 (44  12  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+337 (    12  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+338 (22  12  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+339 (  12  ) [object Object]: { 0, 24, 42, 22} (100, 100)
+340 (  2112  ) [object Object]: { 0, 24, 42, 22} (100, 100)
+341 (442112  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+342 (  2112  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+343 (222112  ) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+344 (2112  ) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf 
+valueOf 
+345 (  12  ) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf 
+valueOf 
+346 (4412  ) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+347 (  12  ) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+348 (2212  ) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+349 (12  ) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf 
+valueOf 
+350 (      ) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf 
+valueOf 
+351 (44    ) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+352 (      ) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+353 (22    ) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+354 (    ) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf 
+valueOf 
+355 (  42  ) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+356 (4442  ) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+357 (  42  ) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+358 (2242  ) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+359 (42  ) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+360 (      ) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+361 (44    ) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+362 (      ) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+363 (22    ) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+364 (    ) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+365 (  21  ) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+366 (4421  ) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+367 (  21  ) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+368 (2221  ) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+369 (21  ) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+370 (    ) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+371 (44  ) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+372 (    ) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+373 (22  ) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+374 (  ) [object Object]: { 0, 0, 0, 22} (100, 100)
+375 (      11) [object Object]: { 0, 0, 0, 22} (100, 100)
+376 (44    11) [object Object]: { 44, 0, 0, 22} (100, 56)
+377 (      11) [object Object]: { 44, 0, 0, 22} (100, 56)
+378 (22    11) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+379 (    11) [object Object]: { 0, 0, 0, 22} (100, 100)
+380 (  42  11) [object Object]: { 0, 0, 42, 22} (100, 100)
+381 (4442  11) [object Object]: { 44, 0, 42, 22} (100, 56)
+382 (  42  11) [object Object]: { 44, 0, 42, 22} (100, 56)
+383 (2242  11) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+384 (42  11) [object Object]: { 0, 0, 42, 22} (100, 100)
+385 (      11) [object Object]: { 0, 0, 42, 22} (100, 100)
+386 (44    11) [object Object]: { 44, 0, 42, 22} (100, 56)
+387 (      11) [object Object]: { 44, 0, 42, 22} (100, 56)
+388 (22    11) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+389 (    11) [object Object]: { 0, 0, 42, 22} (100, 100)
+390 (  21  11) [object Object]: { 0, 0, 42, 22} (100, 100)
+391 (4421  11) [object Object]: { 44, 0, 42, 22} (100, 56)
+392 (  21  11) [object Object]: { 44, 0, 42, 22} (100, 56)
+393 (2221  11) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+394 (21  11) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+395 (    11) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf 
+valueOf 
+396 (44  11) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+397 (    11) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+398 (22  11) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+399 (  11) [object Object]: { 0, 0, 0, 22} (100, 100)
+400 (    2411) [object Object]: { 0, 24, 0, 22} (100, 100)
+401 (44  2411) [object Object]: { 44, 24, 0, 22} (100, 56)
+402 (    2411) [object Object]: { 44, 24, 0, 22} (100, 56)
+403 (22  2411) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+404 (  2411) [object Object]: { 0, 24, 0, 22} (100, 100)
+405 (  422411) [object Object]: { 0, 24, 42, 22} (100, 100)
+406 (44422411) [object Object]: { 44, 24, 42, 22} (100, 56)
+407 (  422411) [object Object]: { 44, 24, 42, 22} (100, 56)
+408 (22422411) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+409 (422411) [object Object]: { 0, 24, 42, 22} (100, 100)
+410 (    2411) [object Object]: { 0, 24, 42, 22} (100, 100)
+411 (44  2411) [object Object]: { 44, 24, 42, 22} (100, 56)
+412 (    2411) [object Object]: { 44, 24, 42, 22} (100, 56)
+413 (22  2411) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+414 (  2411) [object Object]: { 0, 24, 42, 22} (100, 100)
+415 (  212411) [object Object]: { 0, 24, 42, 22} (100, 100)
+416 (44212411) [object Object]: { 44, 24, 42, 22} (100, 56)
+417 (  212411) [object Object]: { 44, 24, 42, 22} (100, 56)
+418 (22212411) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+419 (212411) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf 
+valueOf 
+420 (  2411) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf 
+valueOf 
+421 (442411) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+422 (  2411) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+423 (222411) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+424 (2411) [object Object]: { 0, 24, 0, 22} (100, 100)
+425 (      11) [object Object]: { 0, 24, 0, 22} (100, 100)
+426 (44    11) [object Object]: { 44, 24, 0, 22} (100, 56)
+427 (      11) [object Object]: { 44, 24, 0, 22} (100, 56)
+428 (22    11) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+429 (    11) [object Object]: { 0, 24, 0, 22} (100, 100)
+430 (  42  11) [object Object]: { 0, 24, 42, 22} (100, 100)
+431 (4442  11) [object Object]: { 44, 24, 42, 22} (100, 56)
+432 (  42  11) [object Object]: { 44, 24, 42, 22} (100, 56)
+433 (2242  11) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+434 (42  11) [object Object]: { 0, 24, 42, 22} (100, 100)
+435 (      11) [object Object]: { 0, 24, 42, 22} (100, 100)
+436 (44    11) [object Object]: { 44, 24, 42, 22} (100, 56)
+437 (      11) [object Object]: { 44, 24, 42, 22} (100, 56)
+438 (22    11) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+439 (    11) [object Object]: { 0, 24, 42, 22} (100, 100)
+440 (  21  11) [object Object]: { 0, 24, 42, 22} (100, 100)
+441 (4421  11) [object Object]: { 44, 24, 42, 22} (100, 56)
+442 (  21  11) [object Object]: { 44, 24, 42, 22} (100, 56)
+443 (2221  11) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+444 (21  11) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf 
+valueOf 
+445 (    11) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf 
+valueOf 
+446 (44  11) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+447 (    11) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+448 (22  11) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+449 (  11) [object Object]: { 0, 24, 0, 22} (100, 100)
+450 (    1211) [object Object]: { 0, 24, 0, 22} (100, 100)
+451 (44  1211) [object Object]: { 44, 24, 0, 22} (100, 56)
+452 (    1211) [object Object]: { 44, 24, 0, 22} (100, 56)
+453 (22  1211) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+454 (  1211) [object Object]: { 0, 24, 0, 22} (100, 100)
+455 (  421211) [object Object]: { 0, 24, 42, 22} (100, 100)
+456 (44421211) [object Object]: { 44, 24, 42, 22} (100, 56)
+457 (  421211) [object Object]: { 44, 24, 42, 22} (100, 56)
+458 (22421211) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+459 (421211) [object Object]: { 0, 24, 42, 22} (100, 100)
+460 (    1211) [object Object]: { 0, 24, 42, 22} (100, 100)
+461 (44  1211) [object Object]: { 44, 24, 42, 22} (100, 56)
+462 (    1211) [object Object]: { 44, 24, 42, 22} (100, 56)
+463 (22  1211) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+464 (  1211) [object Object]: { 0, 24, 42, 22} (100, 100)
+465 (  211211) [object Object]: { 0, 24, 42, 22} (100, 100)
+466 (44211211) [object Object]: { 44, 24, 42, 22} (100, 56)
+467 (  211211) [object Object]: { 44, 24, 42, 22} (100, 56)
+468 (22211211) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf 
+valueOf 
+469 (211211) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf 
+valueOf 
+470 (  1211) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf 
+valueOf 
+471 (441211) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+472 (  1211) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+473 (221211) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+474 (1211) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf 
+valueOf 
+475 (    11) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf 
+valueOf 
+476 (44  11) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+477 (    11) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+478 (22  11) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+479 (  11) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf 
+valueOf 
+480 (  4211) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+481 (444211) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+482 (  4211) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+483 (224211) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+484 (4211) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+485 (    11) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+486 (44  11) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+487 (    11) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+488 (22  11) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+489 (  11) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+490 (  2111) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+491 (442111) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+492 (  2111) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+493 (222111) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+494 (2111) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+495 (  11) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+496 (4411) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+497 (  11) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+498 (2211) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+499 (11) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf 
+valueOf 
+500 (      ) [object Object]: { 0, 0, 0, 0} (100, 100)
+valueOf 
+valueOf 
+501 (44    ) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf 
+valueOf 
+502 (      ) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf 
+valueOf 
+503 (22    ) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+504 (    ) [object Object]: { 0, 0, 0, 0} (100, 100)
+valueOf 
+valueOf 
+505 (  42  ) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf 
+valueOf 
+506 (4442  ) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+507 (  42  ) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+508 (2242  ) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+509 (42  ) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf 
+valueOf 
+510 (      ) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf 
+valueOf 
+511 (44    ) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+512 (      ) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+513 (22    ) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+514 (    ) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf 
+valueOf 
+515 (  21  ) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf 
+valueOf 
+516 (4421  ) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+517 (  21  ) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+518 (2221  ) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+519 (21  ) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+520 (    ) [object Object]: { 0, 0, 0, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+521 (44  ) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+522 (    ) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+523 (22  ) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+524 (  ) [object Object]: { 0, 0, 0, 0} (100, 100)
+valueOf 
+valueOf 
+525 (    24) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf 
+valueOf 
+526 (44  24) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+527 (    24) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+528 (22  24) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+529 (  24) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf 
+valueOf 
+530 (  4224) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+531 (444224) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+532 (  4224) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+533 (224224) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+534 (4224) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+535 (    24) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+536 (44  24) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+537 (    24) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+538 (22  24) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+539 (  24) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+540 (  2124) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+541 (442124) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+542 (  2124) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+543 (222124) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+544 (2124) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+545 (  24) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+546 (4424) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+547 (  24) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+548 (2224) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+549 (24) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf 
+valueOf 
+550 (      ) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf 
+valueOf 
+551 (44    ) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+552 (      ) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+553 (22    ) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+554 (    ) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf 
+valueOf 
+555 (  42  ) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+556 (4442  ) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+557 (  42  ) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+558 (2242  ) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+559 (42  ) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+560 (      ) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+561 (44    ) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+562 (      ) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+563 (22    ) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+564 (    ) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+565 (  21  ) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+566 (4421  ) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+567 (  21  ) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+568 (2221  ) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+569 (21  ) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+570 (    ) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+571 (44  ) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+572 (    ) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+573 (22  ) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+574 (  ) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf 
+valueOf 
+575 (    12) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf 
+valueOf 
+576 (44  12) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+577 (    12) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+578 (22  12) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+579 (  12) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf 
+valueOf 
+580 (  4212) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+581 (444212) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+582 (  4212) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+583 (224212) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+584 (4212) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+585 (    12) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+586 (44  12) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+587 (    12) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+588 (22  12) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+589 (  12) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+590 (  2112) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+591 (442112) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+592 (  2112) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+593 (222112) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+594 (2112) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+595 (  12) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+596 (4412) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+597 (  12) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+598 (2212) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+599 (12) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+600 (    ) [object Object]: { 0, 0, 0, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+601 (44  ) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+602 (    ) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+603 (22  ) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+604 (  ) [object Object]: { 0, 0, 0, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+605 (  42) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+606 (4442) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+607 (  42) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+608 (2242) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+609 (42) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+610 (    ) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+611 (44  ) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+612 (    ) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+613 (22  ) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+614 (  ) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+615 (  21) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+616 (4421) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+617 (  21) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+618 (2221) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+619 (21) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+620 (  ) [object Object]: { 0, 0, 0, 0} (100, 100)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+621 (44) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+622 (  ) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+623 (22) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+valueOf 
+624 () [object Object]: { 0, 0, 0, 0} (100, 100)
diff --git a/test/trace/sound-setTransform-propertytypes-6.swf b/test/trace/sound-setTransform-propertytypes-6.swf
new file mode 100644
index 0000000..0a8980e
Binary files /dev/null and b/test/trace/sound-setTransform-propertytypes-6.swf differ
diff --git a/test/trace/sound-setTransform-propertytypes-6.swf.trace b/test/trace/sound-setTransform-propertytypes-6.swf.trace
new file mode 100644
index 0000000..e366510
--- /dev/null
+++ b/test/trace/sound-setTransform-propertytypes-6.swf.trace
@@ -0,0 +1,2625 @@
+0 (        ) [object Object]: { 100, 0, 0, 100} (100, 0)
+1 (44      ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+2 (88      ) [object Object]: { 0, 0, 0, 100} (100, 100)
+3 (22      ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+4 (44      ) [object Object]: { 44, 0, 0, 100} (100, 56)
+5 (  42    ) [object Object]: { 100, 0, 42, 100} (100, 0)
+6 (4442    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+7 (8842    ) [object Object]: { 0, 0, 42, 100} (100, 100)
+8 (2242    ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+9 (4442    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+10 (  84    ) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+11 (4484    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+12 (8884    ) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+13 (2284    ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+14 (4484    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+15 (  21    ) [object Object]: { 100, 0, 0, 100} (100, 0)
+16 (4421    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+17 (8821    ) [object Object]: { 0, 0, 0, 100} (100, 100)
+18 (2221    ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+19 (4421    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+20 (  42    ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+21 (4442    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+22 (8842    ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+23 (2242    ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+24 (4442    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+25 (    24  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+26 (44  24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+27 (88  24  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+28 (22  24  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+29 (44  24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+30 (  4224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+31 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+ll
+ll
+32 (884224  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+33 (224224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+34 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+lr
+lr
+35 (  8424  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+lr
+lr
+36 (448424  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+37 (888424  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+lr
+lr
+38 (228424  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+39 (448424  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+40 (  2124  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+41 (442124  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+42 (882124  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+43 (222124  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+44 (442124  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+45 (  4224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+46 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+47 (884224  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+48 (224224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+49 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+rl
+rl
+50 (    48  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+rl
+rl
+51 (44  48  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+rl
+rl
+52 (88  48  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+rl
+rl
+53 (22  48  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+54 (44  48  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+rl
+rl
+55 (  4248  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+rl
+rl
+56 (444248  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+rl
+rl
+57 (884248  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+rl
+rl
+58 (224248  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+59 (444248  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+rl
+rl
+60 (  8448  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+rl
+rl
+61 (448448  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+rl
+rl
+62 (888448  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+rl
+rl
+63 (228448  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+rl
+rl
+64 (448448  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+rl
+rl
+65 (  2148  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+rl
+rl
+66 (442148  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+rl
+rl
+67 (882148  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+rl
+rl
+68 (222148  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+69 (442148  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+rl
+rl
+70 (  4248  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+rl
+rl
+71 (444248  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rl
+rl
+72 (884248  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+rl
+rl
+73 (224248  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rl
+rl
+74 (444248  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+75 (    12  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+76 (44  12  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+77 (88  12  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+78 (22  12  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+79 (44  12  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+80 (  4212  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+81 (444212  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+82 (884212  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+83 (224212  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+84 (444212  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+85 (  8412  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+86 (448412  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+87 (888412  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+88 (228412  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+89 (448412  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+90 (  2112  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+91 (442112  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+92 (882112  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+93 (222112  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+94 (442112  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+95 (  4212  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+96 (444212  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+97 (884212  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+98 (224212  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+99 (444212  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf rl
+valueOf rl
+100 (    24  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+valueOf rl
+101 (44  24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+102 (88  24  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+valueOf rl
+103 (22  24  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+104 (44  24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+valueOf rl
+105 (  4224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf rl
+valueOf rl
+106 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+107 (884224  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf rl
+valueOf rl
+108 (224224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+109 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf rl
+lr
+lr
+valueOf rl
+110 (  8424  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+lr
+lr
+valueOf rl
+111 (448424  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+lr
+lr
+valueOf rl
+112 (888424  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+lr
+lr
+valueOf rl
+113 (228424  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+lr
+lr
+valueOf rl
+114 (448424  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+valueOf rl
+115 (  2124  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+valueOf rl
+116 (442124  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+117 (882124  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+valueOf rl
+118 (222124  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+119 (442124  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+120 (  4224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+121 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf lr
+valueOf rl
+ll
+ll
+valueOf lr
+valueOf rl
+122 (884224  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+123 (224224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf rl
+valueOf ll
+valueOf lr
+valueOf rl
+124 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+125 (      22) [object Object]: { 100, 0, 0, 22} (100, -78)
+126 (44    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+127 (88    22) [object Object]: { 0, 0, 0, 22} (100, 100)
+128 (22    22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+129 (44    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+130 (  42  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+131 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+ll
+ll
+132 (8842  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+133 (2242  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf ll
+134 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+lr
+lr
+135 (  84  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+lr
+lr
+136 (4484  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+lr
+lr
+137 (8884  22) [object Object]: { 0, 0, 0, 22} (100, 100)
+lr
+lr
+138 (2284  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+lr
+lr
+139 (4484  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+140 (  21  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+141 (4421  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+142 (8821  22) [object Object]: { 0, 0, 0, 22} (100, 100)
+143 (2221  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+144 (4421  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf lr
+145 (  42  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf lr
+146 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+147 (8842  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf lr
+148 (2242  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+149 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+150 (    2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+151 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+ll
+ll
+152 (88  2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+153 (22  2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+154 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+155 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+156 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+ll
+ll
+157 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+158 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf ll
+159 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+lr
+lr
+160 (  842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+lr
+lr
+161 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+ll
+ll
+lr
+lr
+162 (88842422) [object Object]: { 0, 24, 0, 22} (100, 100)
+lr
+lr
+163 (22842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+lr
+lr
+164 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+165 (  212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+166 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+ll
+ll
+167 (88212422) [object Object]: { 0, 24, 0, 22} (100, 100)
+168 (22212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+169 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf lr
+valueOf lr
+170 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf lr
+valueOf lr
+171 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+172 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf lr
+valueOf lr
+173 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+174 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+rl
+rl
+175 (    4822) [object Object]: { 100, 0, 0, 22} (100, -78)
+rl
+rl
+176 (44  4822) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+rl
+rl
+177 (88  4822) [object Object]: { 0, 0, 0, 22} (100, 100)
+rl
+rl
+178 (22  4822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+rl
+rl
+179 (44  4822) [object Object]: { 44, 0, 0, 22} (100, 56)
+rl
+rl
+180 (  424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+rl
+rl
+181 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+ll
+ll
+rl
+rl
+182 (88424822) [object Object]: { 0, 0, 42, 22} (100, 100)
+rl
+rl
+183 (22424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf ll
+rl
+rl
+184 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+lr
+lr
+rl
+rl
+185 (  844822) [object Object]: { 100, 0, 0, 22} (100, -78)
+lr
+lr
+rl
+rl
+186 (44844822) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+lr
+lr
+rl
+rl
+187 (88844822) [object Object]: { 0, 0, 0, 22} (100, 100)
+lr
+lr
+rl
+rl
+188 (22844822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+lr
+lr
+rl
+rl
+189 (44844822) [object Object]: { 44, 0, 0, 22} (100, 56)
+rl
+rl
+190 (  214822) [object Object]: { 100, 0, 0, 22} (100, -78)
+rl
+rl
+191 (44214822) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+rl
+rl
+192 (88214822) [object Object]: { 0, 0, 0, 22} (100, 100)
+rl
+rl
+193 (22214822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+rl
+rl
+194 (44214822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf lr
+rl
+rl
+195 (  424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf lr
+rl
+rl
+196 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rl
+rl
+197 (88424822) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf lr
+rl
+rl
+198 (22424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rl
+rl
+199 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+200 (    1222) [object Object]: { 100, 0, 0, 22} (100, -78)
+201 (44  1222) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+202 (88  1222) [object Object]: { 0, 0, 0, 22} (100, 100)
+203 (22  1222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+204 (44  1222) [object Object]: { 44, 0, 0, 22} (100, 56)
+205 (  421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+206 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+ll
+ll
+207 (88421222) [object Object]: { 0, 0, 42, 22} (100, 100)
+208 (22421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf ll
+209 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+lr
+lr
+210 (  841222) [object Object]: { 100, 0, 0, 22} (100, -78)
+lr
+lr
+211 (44841222) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+lr
+lr
+212 (88841222) [object Object]: { 0, 0, 0, 22} (100, 100)
+lr
+lr
+213 (22841222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+lr
+lr
+214 (44841222) [object Object]: { 44, 0, 0, 22} (100, 56)
+215 (  211222) [object Object]: { 100, 0, 0, 22} (100, -78)
+216 (44211222) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+217 (88211222) [object Object]: { 0, 0, 0, 22} (100, 100)
+218 (22211222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+219 (44211222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf lr
+220 (  421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf lr
+221 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+222 (88421222) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf lr
+223 (22421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+224 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rl
+valueOf rl
+225 (    2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rl
+valueOf rl
+226 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+227 (88  2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rl
+valueOf rl
+228 (22  2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+229 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rl
+valueOf rl
+230 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf rl
+valueOf rl
+231 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+232 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf rl
+valueOf rl
+233 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+234 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rl
+lr
+lr
+valueOf rl
+235 (  842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rl
+lr
+lr
+valueOf rl
+236 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rl
+ll
+ll
+lr
+lr
+valueOf rl
+237 (88842422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rl
+lr
+lr
+valueOf rl
+238 (22842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rl
+valueOf ll
+lr
+lr
+valueOf rl
+239 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rl
+valueOf rl
+240 (  212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rl
+valueOf rl
+241 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+242 (88212422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rl
+valueOf rl
+243 (22212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+244 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+245 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+246 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf lr
+valueOf rl
+ll
+ll
+valueOf lr
+valueOf rl
+247 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+248 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rl
+valueOf ll
+valueOf lr
+valueOf rl
+249 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+rr
+rr
+250 (      44) [object Object]: { 100, 0, 0, 0} (100, -100)
+rr
+rr
+251 (44    44) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+252 (88    44) [object Object]: { 0, 0, 0, 0} (100, 100)
+rr
+rr
+253 (22    44) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+254 (44    44) [object Object]: { 44, 0, 0, 0} (100, 56)
+rr
+rr
+255 (  42  44) [object Object]: { 100, 0, 42, 0} (100, -100)
+rr
+rr
+256 (4442  44) [object Object]: { 44, 0, 42, 0} (100, 56)
+ll
+ll
+rr
+rr
+257 (8842  44) [object Object]: { 0, 0, 42, 0} (100, 100)
+rr
+rr
+258 (2242  44) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+259 (4442  44) [object Object]: { 44, 0, 42, 0} (100, 56)
+lr
+lr
+rr
+rr
+260 (  84  44) [object Object]: { 100, 0, 0, 0} (100, -100)
+lr
+lr
+rr
+rr
+261 (4484  44) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+lr
+lr
+rr
+rr
+262 (8884  44) [object Object]: { 0, 0, 0, 0} (100, 100)
+lr
+lr
+rr
+rr
+263 (2284  44) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+lr
+lr
+rr
+rr
+264 (4484  44) [object Object]: { 44, 0, 0, 0} (100, 56)
+rr
+rr
+265 (  21  44) [object Object]: { 100, 0, 0, 0} (100, -100)
+rr
+rr
+266 (4421  44) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+267 (8821  44) [object Object]: { 0, 0, 0, 0} (100, 100)
+rr
+rr
+268 (2221  44) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+269 (4421  44) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf lr
+valueOf lr
+rr
+rr
+270 (  42  44) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf lr
+valueOf lr
+rr
+rr
+271 (4442  44) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rr
+rr
+272 (8842  44) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf lr
+valueOf lr
+rr
+rr
+273 (2242  44) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rr
+rr
+274 (4442  44) [object Object]: { 44, 0, 42, 0} (100, 56)
+rr
+rr
+275 (    2444) [object Object]: { 100, 24, 0, 0} (100, -100)
+rr
+rr
+276 (44  2444) [object Object]: { 44, 24, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+277 (88  2444) [object Object]: { 0, 24, 0, 0} (100, 100)
+rr
+rr
+278 (22  2444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+279 (44  2444) [object Object]: { 44, 24, 0, 0} (100, 56)
+rr
+rr
+280 (  422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+rr
+rr
+281 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+ll
+ll
+rr
+rr
+282 (88422444) [object Object]: { 0, 24, 42, 0} (100, 100)
+rr
+rr
+283 (22422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+284 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+lr
+lr
+rr
+rr
+285 (  842444) [object Object]: { 100, 24, 0, 0} (100, -100)
+lr
+lr
+rr
+rr
+286 (44842444) [object Object]: { 44, 24, 0, 0} (100, 56)
+ll
+ll
+lr
+lr
+rr
+rr
+287 (88842444) [object Object]: { 0, 24, 0, 0} (100, 100)
+lr
+lr
+rr
+rr
+288 (22842444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+lr
+lr
+rr
+rr
+289 (44842444) [object Object]: { 44, 24, 0, 0} (100, 56)
+rr
+rr
+290 (  212444) [object Object]: { 100, 24, 0, 0} (100, -100)
+rr
+rr
+291 (44212444) [object Object]: { 44, 24, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+292 (88212444) [object Object]: { 0, 24, 0, 0} (100, 100)
+rr
+rr
+293 (22212444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+294 (44212444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf lr
+valueOf lr
+rr
+rr
+295 (  422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf lr
+valueOf lr
+rr
+rr
+296 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rr
+rr
+297 (88422444) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf lr
+valueOf lr
+rr
+rr
+298 (22422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rr
+rr
+299 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+rl
+rl
+rr
+rr
+300 (    4844) [object Object]: { 100, 0, 0, 0} (100, -100)
+rl
+rl
+rr
+rr
+301 (44  4844) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rl
+rl
+rr
+rr
+302 (88  4844) [object Object]: { 0, 0, 0, 0} (100, 100)
+rl
+rl
+rr
+rr
+303 (22  4844) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rl
+rl
+rr
+rr
+304 (44  4844) [object Object]: { 44, 0, 0, 0} (100, 56)
+rl
+rl
+rr
+rr
+305 (  424844) [object Object]: { 100, 0, 42, 0} (100, -100)
+rl
+rl
+rr
+rr
+306 (44424844) [object Object]: { 44, 0, 42, 0} (100, 56)
+ll
+ll
+rl
+rl
+rr
+rr
+307 (88424844) [object Object]: { 0, 0, 42, 0} (100, 100)
+rl
+rl
+rr
+rr
+308 (22424844) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf ll
+rl
+rl
+rr
+rr
+309 (44424844) [object Object]: { 44, 0, 42, 0} (100, 56)
+lr
+lr
+rl
+rl
+rr
+rr
+310 (  844844) [object Object]: { 100, 0, 0, 0} (100, -100)
+lr
+lr
+rl
+rl
+rr
+rr
+311 (44844844) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+lr
+lr
+rl
+rl
+rr
+rr
+312 (88844844) [object Object]: { 0, 0, 0, 0} (100, 100)
+lr
+lr
+rl
+rl
+rr
+rr
+313 (22844844) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+lr
+lr
+rl
+rl
+rr
+rr
+314 (44844844) [object Object]: { 44, 0, 0, 0} (100, 56)
+rl
+rl
+rr
+rr
+315 (  214844) [object Object]: { 100, 0, 0, 0} (100, -100)
+rl
+rl
+rr
+rr
+316 (44214844) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rl
+rl
+rr
+rr
+317 (88214844) [object Object]: { 0, 0, 0, 0} (100, 100)
+rl
+rl
+rr
+rr
+318 (22214844) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rl
+rl
+rr
+rr
+319 (44214844) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf lr
+valueOf lr
+rl
+rl
+rr
+rr
+320 (  424844) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf lr
+valueOf lr
+rl
+rl
+rr
+rr
+321 (44424844) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rl
+rl
+rr
+rr
+322 (88424844) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf lr
+valueOf lr
+rl
+rl
+rr
+rr
+323 (22424844) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rl
+rl
+rr
+rr
+324 (44424844) [object Object]: { 44, 0, 42, 0} (100, 56)
+rr
+rr
+325 (    1244) [object Object]: { 100, 0, 0, 0} (100, -100)
+rr
+rr
+326 (44  1244) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+327 (88  1244) [object Object]: { 0, 0, 0, 0} (100, 100)
+rr
+rr
+328 (22  1244) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+329 (44  1244) [object Object]: { 44, 0, 0, 0} (100, 56)
+rr
+rr
+330 (  421244) [object Object]: { 100, 0, 42, 0} (100, -100)
+rr
+rr
+331 (44421244) [object Object]: { 44, 0, 42, 0} (100, 56)
+ll
+ll
+rr
+rr
+332 (88421244) [object Object]: { 0, 0, 42, 0} (100, 100)
+rr
+rr
+333 (22421244) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+334 (44421244) [object Object]: { 44, 0, 42, 0} (100, 56)
+lr
+lr
+rr
+rr
+335 (  841244) [object Object]: { 100, 0, 0, 0} (100, -100)
+lr
+lr
+rr
+rr
+336 (44841244) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+lr
+lr
+rr
+rr
+337 (88841244) [object Object]: { 0, 0, 0, 0} (100, 100)
+lr
+lr
+rr
+rr
+338 (22841244) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+lr
+lr
+rr
+rr
+339 (44841244) [object Object]: { 44, 0, 0, 0} (100, 56)
+rr
+rr
+340 (  211244) [object Object]: { 100, 0, 0, 0} (100, -100)
+rr
+rr
+341 (44211244) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+342 (88211244) [object Object]: { 0, 0, 0, 0} (100, 100)
+rr
+rr
+343 (22211244) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+344 (44211244) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf lr
+valueOf lr
+rr
+rr
+345 (  421244) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf lr
+valueOf lr
+rr
+rr
+346 (44421244) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rr
+rr
+347 (88421244) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf lr
+valueOf lr
+rr
+rr
+348 (22421244) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rr
+rr
+349 (44421244) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf rl
+valueOf rl
+rr
+rr
+350 (    2444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf rl
+valueOf rl
+rr
+rr
+351 (44  2444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+rr
+rr
+352 (88  2444) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf rl
+valueOf rl
+rr
+rr
+353 (22  2444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+rr
+rr
+354 (44  2444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf rl
+valueOf rl
+rr
+rr
+355 (  422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf rl
+valueOf rl
+rr
+rr
+356 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+rr
+rr
+357 (88422444) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf rl
+valueOf rl
+rr
+rr
+358 (22422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+rr
+rr
+359 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf rl
+lr
+lr
+valueOf rl
+rr
+rr
+360 (  842444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf rl
+lr
+lr
+valueOf rl
+rr
+rr
+361 (44842444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf rl
+ll
+ll
+lr
+lr
+valueOf rl
+rr
+rr
+362 (88842444) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf rl
+lr
+lr
+valueOf rl
+rr
+rr
+363 (22842444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf rl
+valueOf ll
+lr
+lr
+valueOf rl
+rr
+rr
+364 (44842444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf rl
+valueOf rl
+rr
+rr
+365 (  212444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf rl
+valueOf rl
+rr
+rr
+366 (44212444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+rr
+rr
+367 (88212444) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf rl
+valueOf rl
+rr
+rr
+368 (22212444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+rr
+rr
+369 (44212444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+rr
+rr
+370 (  422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+rr
+rr
+371 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf lr
+valueOf rl
+ll
+ll
+valueOf lr
+valueOf rl
+rr
+rr
+372 (88422444) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+rr
+rr
+373 (22422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf ll
+valueOf lr
+valueOf rl
+valueOf ll
+valueOf lr
+valueOf rl
+rr
+rr
+374 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+375 (      11) [object Object]: { 100, 0, 0, 100} (100, 0)
+376 (44    11) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+377 (88    11) [object Object]: { 0, 0, 0, 100} (100, 100)
+378 (22    11) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+379 (44    11) [object Object]: { 44, 0, 0, 100} (100, 56)
+380 (  42  11) [object Object]: { 100, 0, 42, 100} (100, 0)
+381 (4442  11) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+382 (8842  11) [object Object]: { 0, 0, 42, 100} (100, 100)
+383 (2242  11) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+384 (4442  11) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+385 (  84  11) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+386 (4484  11) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+387 (8884  11) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+388 (2284  11) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+389 (4484  11) [object Object]: { 44, 0, 0, 100} (100, 56)
+390 (  21  11) [object Object]: { 100, 0, 0, 100} (100, 0)
+391 (4421  11) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+392 (8821  11) [object Object]: { 0, 0, 0, 100} (100, 100)
+393 (2221  11) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+394 (4421  11) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+395 (  42  11) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+396 (4442  11) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+397 (8842  11) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+398 (2242  11) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+399 (4442  11) [object Object]: { 44, 0, 42, 100} (100, 56)
+400 (    2411) [object Object]: { 100, 24, 0, 100} (100, 0)
+401 (44  2411) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+402 (88  2411) [object Object]: { 0, 24, 0, 100} (100, 100)
+403 (22  2411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+404 (44  2411) [object Object]: { 44, 24, 0, 100} (100, 56)
+405 (  422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+406 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+ll
+ll
+407 (88422411) [object Object]: { 0, 24, 42, 100} (100, 100)
+408 (22422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+409 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+lr
+lr
+410 (  842411) [object Object]: { 100, 24, 0, 100} (100, 0)
+lr
+lr
+411 (44842411) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+412 (88842411) [object Object]: { 0, 24, 0, 100} (100, 100)
+lr
+lr
+413 (22842411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+414 (44842411) [object Object]: { 44, 24, 0, 100} (100, 56)
+415 (  212411) [object Object]: { 100, 24, 0, 100} (100, 0)
+416 (44212411) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+417 (88212411) [object Object]: { 0, 24, 0, 100} (100, 100)
+418 (22212411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+419 (44212411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+420 (  422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+421 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+422 (88422411) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+423 (22422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+424 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+rl
+rl
+425 (    4811) [object Object]: { 100, 0, 0, 100} (100, 0)
+rl
+rl
+426 (44  4811) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+rl
+rl
+427 (88  4811) [object Object]: { 0, 0, 0, 100} (100, 100)
+rl
+rl
+428 (22  4811) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+429 (44  4811) [object Object]: { 44, 0, 0, 100} (100, 56)
+rl
+rl
+430 (  424811) [object Object]: { 100, 0, 42, 100} (100, 0)
+rl
+rl
+431 (44424811) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+rl
+rl
+432 (88424811) [object Object]: { 0, 0, 42, 100} (100, 100)
+rl
+rl
+433 (22424811) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+434 (44424811) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+rl
+rl
+435 (  844811) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+rl
+rl
+436 (44844811) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+rl
+rl
+437 (88844811) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+rl
+rl
+438 (22844811) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+rl
+rl
+439 (44844811) [object Object]: { 44, 0, 0, 100} (100, 56)
+rl
+rl
+440 (  214811) [object Object]: { 100, 0, 0, 100} (100, 0)
+rl
+rl
+441 (44214811) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+rl
+rl
+442 (88214811) [object Object]: { 0, 0, 0, 100} (100, 100)
+rl
+rl
+443 (22214811) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+444 (44214811) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+rl
+rl
+445 (  424811) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+rl
+rl
+446 (44424811) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rl
+rl
+447 (88424811) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+rl
+rl
+448 (22424811) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rl
+rl
+449 (44424811) [object Object]: { 44, 0, 42, 100} (100, 56)
+450 (    1211) [object Object]: { 100, 0, 0, 100} (100, 0)
+451 (44  1211) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+452 (88  1211) [object Object]: { 0, 0, 0, 100} (100, 100)
+453 (22  1211) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+454 (44  1211) [object Object]: { 44, 0, 0, 100} (100, 56)
+455 (  421211) [object Object]: { 100, 0, 42, 100} (100, 0)
+456 (44421211) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+457 (88421211) [object Object]: { 0, 0, 42, 100} (100, 100)
+458 (22421211) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+459 (44421211) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+460 (  841211) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+461 (44841211) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+462 (88841211) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+463 (22841211) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+464 (44841211) [object Object]: { 44, 0, 0, 100} (100, 56)
+465 (  211211) [object Object]: { 100, 0, 0, 100} (100, 0)
+466 (44211211) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+467 (88211211) [object Object]: { 0, 0, 0, 100} (100, 100)
+468 (22211211) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+469 (44211211) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+470 (  421211) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+471 (44421211) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+472 (88421211) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+473 (22421211) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+474 (44421211) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf rl
+valueOf rl
+475 (    2411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+valueOf rl
+476 (44  2411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+477 (88  2411) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+valueOf rl
+478 (22  2411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+479 (44  2411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+valueOf rl
+480 (  422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf rl
+valueOf rl
+481 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+482 (88422411) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf rl
+valueOf rl
+483 (22422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+484 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf rl
+lr
+lr
+valueOf rl
+485 (  842411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+lr
+lr
+valueOf rl
+486 (44842411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+lr
+lr
+valueOf rl
+487 (88842411) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+lr
+lr
+valueOf rl
+488 (22842411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+lr
+lr
+valueOf rl
+489 (44842411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+valueOf rl
+490 (  212411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+valueOf rl
+491 (44212411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+492 (88212411) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+valueOf rl
+493 (22212411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+494 (44212411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+495 (  422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+496 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf lr
+valueOf rl
+ll
+ll
+valueOf lr
+valueOf rl
+497 (88422411) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+498 (22422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf rl
+valueOf ll
+valueOf lr
+valueOf rl
+499 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf rr
+valueOf rr
+500 (      22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+501 (44    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+502 (88    22) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+503 (22    22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+504 (44    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+505 (  42  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf rr
+valueOf rr
+506 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+507 (8842  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf rr
+valueOf rr
+508 (2242  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+509 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+lr
+lr
+valueOf rr
+510 (  84  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+lr
+lr
+valueOf rr
+511 (4484  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+lr
+lr
+valueOf rr
+512 (8884  22) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+lr
+lr
+valueOf rr
+513 (2284  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+lr
+lr
+valueOf rr
+514 (4484  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+515 (  21  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+516 (4421  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+517 (8821  22) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+518 (2221  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+519 (4421  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+520 (  42  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+521 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+valueOf rr
+ll
+ll
+valueOf lr
+valueOf rr
+522 (8842  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+523 (2242  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rr
+valueOf ll
+valueOf lr
+valueOf rr
+524 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+valueOf rr
+525 (    2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+526 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+527 (88  2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+528 (22  2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+529 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+530 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf rr
+valueOf rr
+531 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+532 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf rr
+valueOf rr
+533 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+534 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rr
+lr
+lr
+valueOf rr
+535 (  842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+lr
+lr
+valueOf rr
+536 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+lr
+lr
+valueOf rr
+537 (88842422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+lr
+lr
+valueOf rr
+538 (22842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+lr
+lr
+valueOf rr
+539 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+540 (  212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+541 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+542 (88212422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+543 (22212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+544 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+545 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+546 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf lr
+valueOf rr
+ll
+ll
+valueOf lr
+valueOf rr
+547 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+548 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rr
+valueOf ll
+valueOf lr
+valueOf rr
+549 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rr
+rl
+rl
+valueOf rr
+550 (    4822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+rl
+rl
+valueOf rr
+551 (44  4822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+rl
+rl
+valueOf rr
+552 (88  4822) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+rl
+rl
+valueOf rr
+553 (22  4822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+rl
+rl
+valueOf rr
+554 (44  4822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+rl
+rl
+valueOf rr
+555 (  424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf rr
+rl
+rl
+valueOf rr
+556 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+ll
+ll
+rl
+rl
+valueOf rr
+557 (88424822) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf rr
+rl
+rl
+valueOf rr
+558 (22424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+rl
+rl
+valueOf rr
+559 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+lr
+lr
+rl
+rl
+valueOf rr
+560 (  844822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+lr
+lr
+rl
+rl
+valueOf rr
+561 (44844822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+lr
+lr
+rl
+rl
+valueOf rr
+562 (88844822) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+lr
+lr
+rl
+rl
+valueOf rr
+563 (22844822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+lr
+lr
+rl
+rl
+valueOf rr
+564 (44844822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+rl
+rl
+valueOf rr
+565 (  214822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+rl
+rl
+valueOf rr
+566 (44214822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+rl
+rl
+valueOf rr
+567 (88214822) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+rl
+rl
+valueOf rr
+568 (22214822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+rl
+rl
+valueOf rr
+569 (44214822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf lr
+rl
+rl
+valueOf rr
+570 (  424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf rr
+valueOf lr
+rl
+rl
+valueOf rr
+571 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+valueOf rr
+ll
+ll
+valueOf lr
+rl
+rl
+valueOf rr
+572 (88424822) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf rr
+valueOf lr
+rl
+rl
+valueOf rr
+573 (22424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rr
+valueOf ll
+valueOf lr
+rl
+rl
+valueOf rr
+574 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+valueOf rr
+575 (    1222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+576 (44  1222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+577 (88  1222) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+578 (22  1222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+579 (44  1222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+580 (  421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf rr
+valueOf rr
+581 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+582 (88421222) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf rr
+valueOf rr
+583 (22421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+584 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+lr
+lr
+valueOf rr
+585 (  841222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+lr
+lr
+valueOf rr
+586 (44841222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+lr
+lr
+valueOf rr
+587 (88841222) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+lr
+lr
+valueOf rr
+588 (22841222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+lr
+lr
+valueOf rr
+589 (44841222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+590 (  211222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+591 (44211222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+592 (88211222) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+593 (22211222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+594 (44211222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+595 (  421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+596 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+valueOf rr
+ll
+ll
+valueOf lr
+valueOf rr
+597 (88421222) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+598 (22421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rr
+valueOf ll
+valueOf lr
+valueOf rr
+599 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+600 (    2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+601 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rl
+ll
+ll
+valueOf rl
+valueOf rr
+602 (88  2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+603 (22  2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf rl
+valueOf ll
+valueOf rl
+valueOf rr
+604 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+605 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+606 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rr
+valueOf rl
+ll
+ll
+valueOf rl
+valueOf rr
+607 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+608 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf rl
+valueOf ll
+valueOf rl
+valueOf rr
+609 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rr
+valueOf rl
+lr
+lr
+valueOf rl
+valueOf rr
+610 (  842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+valueOf rl
+lr
+lr
+valueOf rl
+valueOf rr
+611 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rl
+ll
+ll
+lr
+lr
+valueOf rl
+valueOf rr
+612 (88842422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+valueOf rl
+lr
+lr
+valueOf rl
+valueOf rr
+613 (22842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf rl
+valueOf ll
+lr
+lr
+valueOf rl
+valueOf rr
+614 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+615 (  212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+616 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rl
+ll
+ll
+valueOf rl
+valueOf rr
+617 (88212422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+618 (22212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf rl
+valueOf ll
+valueOf rl
+valueOf rr
+619 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf rl
+valueOf lr
+valueOf rl
+valueOf rr
+620 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf lr
+valueOf rr
+valueOf rl
+valueOf lr
+valueOf rl
+valueOf rr
+621 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf rl
+ll
+ll
+valueOf lr
+valueOf rl
+valueOf rr
+622 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf lr
+valueOf rr
+valueOf rl
+valueOf lr
+valueOf rl
+valueOf rr
+623 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rr
+valueOf rl
+valueOf ll
+valueOf lr
+valueOf rl
+valueOf rr
+624 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
diff --git a/test/trace/sound-setTransform-propertytypes-7.swf b/test/trace/sound-setTransform-propertytypes-7.swf
new file mode 100644
index 0000000..7327ebd
Binary files /dev/null and b/test/trace/sound-setTransform-propertytypes-7.swf differ
diff --git a/test/trace/sound-setTransform-propertytypes-7.swf.trace b/test/trace/sound-setTransform-propertytypes-7.swf.trace
new file mode 100644
index 0000000..e366510
--- /dev/null
+++ b/test/trace/sound-setTransform-propertytypes-7.swf.trace
@@ -0,0 +1,2625 @@
+0 (        ) [object Object]: { 100, 0, 0, 100} (100, 0)
+1 (44      ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+2 (88      ) [object Object]: { 0, 0, 0, 100} (100, 100)
+3 (22      ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+4 (44      ) [object Object]: { 44, 0, 0, 100} (100, 56)
+5 (  42    ) [object Object]: { 100, 0, 42, 100} (100, 0)
+6 (4442    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+7 (8842    ) [object Object]: { 0, 0, 42, 100} (100, 100)
+8 (2242    ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+9 (4442    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+10 (  84    ) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+11 (4484    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+12 (8884    ) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+13 (2284    ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+14 (4484    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+15 (  21    ) [object Object]: { 100, 0, 0, 100} (100, 0)
+16 (4421    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+17 (8821    ) [object Object]: { 0, 0, 0, 100} (100, 100)
+18 (2221    ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+19 (4421    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+20 (  42    ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+21 (4442    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+22 (8842    ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+23 (2242    ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+24 (4442    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+25 (    24  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+26 (44  24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+27 (88  24  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+28 (22  24  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+29 (44  24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+30 (  4224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+31 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+ll
+ll
+32 (884224  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+33 (224224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+34 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+lr
+lr
+35 (  8424  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+lr
+lr
+36 (448424  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+37 (888424  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+lr
+lr
+38 (228424  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+39 (448424  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+40 (  2124  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+41 (442124  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+42 (882124  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+43 (222124  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+44 (442124  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+45 (  4224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+46 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+47 (884224  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+48 (224224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+49 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+rl
+rl
+50 (    48  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+rl
+rl
+51 (44  48  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+rl
+rl
+52 (88  48  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+rl
+rl
+53 (22  48  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+54 (44  48  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+rl
+rl
+55 (  4248  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+rl
+rl
+56 (444248  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+rl
+rl
+57 (884248  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+rl
+rl
+58 (224248  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+59 (444248  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+rl
+rl
+60 (  8448  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+rl
+rl
+61 (448448  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+rl
+rl
+62 (888448  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+rl
+rl
+63 (228448  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+rl
+rl
+64 (448448  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+rl
+rl
+65 (  2148  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+rl
+rl
+66 (442148  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+rl
+rl
+67 (882148  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+rl
+rl
+68 (222148  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+69 (442148  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+rl
+rl
+70 (  4248  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+rl
+rl
+71 (444248  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rl
+rl
+72 (884248  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+rl
+rl
+73 (224248  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rl
+rl
+74 (444248  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+75 (    12  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+76 (44  12  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+77 (88  12  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+78 (22  12  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+79 (44  12  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+80 (  4212  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+81 (444212  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+82 (884212  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+83 (224212  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+84 (444212  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+85 (  8412  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+86 (448412  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+87 (888412  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+88 (228412  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+89 (448412  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+90 (  2112  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+91 (442112  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+92 (882112  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+93 (222112  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+94 (442112  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+95 (  4212  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+96 (444212  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+97 (884212  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+98 (224212  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+99 (444212  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf rl
+valueOf rl
+100 (    24  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+valueOf rl
+101 (44  24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+102 (88  24  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+valueOf rl
+103 (22  24  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+104 (44  24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+valueOf rl
+105 (  4224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf rl
+valueOf rl
+106 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+107 (884224  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf rl
+valueOf rl
+108 (224224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+109 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf rl
+lr
+lr
+valueOf rl
+110 (  8424  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+lr
+lr
+valueOf rl
+111 (448424  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+lr
+lr
+valueOf rl
+112 (888424  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+lr
+lr
+valueOf rl
+113 (228424  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+lr
+lr
+valueOf rl
+114 (448424  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+valueOf rl
+115 (  2124  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+valueOf rl
+116 (442124  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+117 (882124  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+valueOf rl
+118 (222124  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+119 (442124  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+120 (  4224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+121 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf lr
+valueOf rl
+ll
+ll
+valueOf lr
+valueOf rl
+122 (884224  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+123 (224224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf rl
+valueOf ll
+valueOf lr
+valueOf rl
+124 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+125 (      22) [object Object]: { 100, 0, 0, 22} (100, -78)
+126 (44    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+127 (88    22) [object Object]: { 0, 0, 0, 22} (100, 100)
+128 (22    22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+129 (44    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+130 (  42  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+131 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+ll
+ll
+132 (8842  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+133 (2242  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf ll
+134 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+lr
+lr
+135 (  84  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+lr
+lr
+136 (4484  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+lr
+lr
+137 (8884  22) [object Object]: { 0, 0, 0, 22} (100, 100)
+lr
+lr
+138 (2284  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+lr
+lr
+139 (4484  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+140 (  21  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+141 (4421  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+142 (8821  22) [object Object]: { 0, 0, 0, 22} (100, 100)
+143 (2221  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+144 (4421  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf lr
+145 (  42  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf lr
+146 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+147 (8842  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf lr
+148 (2242  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+149 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+150 (    2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+151 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+ll
+ll
+152 (88  2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+153 (22  2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+154 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+155 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+156 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+ll
+ll
+157 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+158 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf ll
+159 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+lr
+lr
+160 (  842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+lr
+lr
+161 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+ll
+ll
+lr
+lr
+162 (88842422) [object Object]: { 0, 24, 0, 22} (100, 100)
+lr
+lr
+163 (22842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+lr
+lr
+164 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+165 (  212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+166 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+ll
+ll
+167 (88212422) [object Object]: { 0, 24, 0, 22} (100, 100)
+168 (22212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+169 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf lr
+valueOf lr
+170 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf lr
+valueOf lr
+171 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+172 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf lr
+valueOf lr
+173 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+174 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+rl
+rl
+175 (    4822) [object Object]: { 100, 0, 0, 22} (100, -78)
+rl
+rl
+176 (44  4822) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+rl
+rl
+177 (88  4822) [object Object]: { 0, 0, 0, 22} (100, 100)
+rl
+rl
+178 (22  4822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+rl
+rl
+179 (44  4822) [object Object]: { 44, 0, 0, 22} (100, 56)
+rl
+rl
+180 (  424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+rl
+rl
+181 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+ll
+ll
+rl
+rl
+182 (88424822) [object Object]: { 0, 0, 42, 22} (100, 100)
+rl
+rl
+183 (22424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf ll
+rl
+rl
+184 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+lr
+lr
+rl
+rl
+185 (  844822) [object Object]: { 100, 0, 0, 22} (100, -78)
+lr
+lr
+rl
+rl
+186 (44844822) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+lr
+lr
+rl
+rl
+187 (88844822) [object Object]: { 0, 0, 0, 22} (100, 100)
+lr
+lr
+rl
+rl
+188 (22844822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+lr
+lr
+rl
+rl
+189 (44844822) [object Object]: { 44, 0, 0, 22} (100, 56)
+rl
+rl
+190 (  214822) [object Object]: { 100, 0, 0, 22} (100, -78)
+rl
+rl
+191 (44214822) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+rl
+rl
+192 (88214822) [object Object]: { 0, 0, 0, 22} (100, 100)
+rl
+rl
+193 (22214822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+rl
+rl
+194 (44214822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf lr
+rl
+rl
+195 (  424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf lr
+rl
+rl
+196 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rl
+rl
+197 (88424822) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf lr
+rl
+rl
+198 (22424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rl
+rl
+199 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+200 (    1222) [object Object]: { 100, 0, 0, 22} (100, -78)
+201 (44  1222) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+202 (88  1222) [object Object]: { 0, 0, 0, 22} (100, 100)
+203 (22  1222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+204 (44  1222) [object Object]: { 44, 0, 0, 22} (100, 56)
+205 (  421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+206 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+ll
+ll
+207 (88421222) [object Object]: { 0, 0, 42, 22} (100, 100)
+208 (22421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf ll
+209 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+lr
+lr
+210 (  841222) [object Object]: { 100, 0, 0, 22} (100, -78)
+lr
+lr
+211 (44841222) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+lr
+lr
+212 (88841222) [object Object]: { 0, 0, 0, 22} (100, 100)
+lr
+lr
+213 (22841222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+lr
+lr
+214 (44841222) [object Object]: { 44, 0, 0, 22} (100, 56)
+215 (  211222) [object Object]: { 100, 0, 0, 22} (100, -78)
+216 (44211222) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+217 (88211222) [object Object]: { 0, 0, 0, 22} (100, 100)
+218 (22211222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+219 (44211222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf lr
+220 (  421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf lr
+221 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+222 (88421222) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf lr
+223 (22421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+224 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rl
+valueOf rl
+225 (    2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rl
+valueOf rl
+226 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+227 (88  2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rl
+valueOf rl
+228 (22  2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+229 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rl
+valueOf rl
+230 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf rl
+valueOf rl
+231 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+232 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf rl
+valueOf rl
+233 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+234 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rl
+lr
+lr
+valueOf rl
+235 (  842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rl
+lr
+lr
+valueOf rl
+236 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rl
+ll
+ll
+lr
+lr
+valueOf rl
+237 (88842422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rl
+lr
+lr
+valueOf rl
+238 (22842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rl
+valueOf ll
+lr
+lr
+valueOf rl
+239 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rl
+valueOf rl
+240 (  212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rl
+valueOf rl
+241 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+242 (88212422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rl
+valueOf rl
+243 (22212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+244 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+245 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+246 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf lr
+valueOf rl
+ll
+ll
+valueOf lr
+valueOf rl
+247 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+248 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rl
+valueOf ll
+valueOf lr
+valueOf rl
+249 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+rr
+rr
+250 (      44) [object Object]: { 100, 0, 0, 0} (100, -100)
+rr
+rr
+251 (44    44) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+252 (88    44) [object Object]: { 0, 0, 0, 0} (100, 100)
+rr
+rr
+253 (22    44) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+254 (44    44) [object Object]: { 44, 0, 0, 0} (100, 56)
+rr
+rr
+255 (  42  44) [object Object]: { 100, 0, 42, 0} (100, -100)
+rr
+rr
+256 (4442  44) [object Object]: { 44, 0, 42, 0} (100, 56)
+ll
+ll
+rr
+rr
+257 (8842  44) [object Object]: { 0, 0, 42, 0} (100, 100)
+rr
+rr
+258 (2242  44) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+259 (4442  44) [object Object]: { 44, 0, 42, 0} (100, 56)
+lr
+lr
+rr
+rr
+260 (  84  44) [object Object]: { 100, 0, 0, 0} (100, -100)
+lr
+lr
+rr
+rr
+261 (4484  44) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+lr
+lr
+rr
+rr
+262 (8884  44) [object Object]: { 0, 0, 0, 0} (100, 100)
+lr
+lr
+rr
+rr
+263 (2284  44) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+lr
+lr
+rr
+rr
+264 (4484  44) [object Object]: { 44, 0, 0, 0} (100, 56)
+rr
+rr
+265 (  21  44) [object Object]: { 100, 0, 0, 0} (100, -100)
+rr
+rr
+266 (4421  44) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+267 (8821  44) [object Object]: { 0, 0, 0, 0} (100, 100)
+rr
+rr
+268 (2221  44) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+269 (4421  44) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf lr
+valueOf lr
+rr
+rr
+270 (  42  44) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf lr
+valueOf lr
+rr
+rr
+271 (4442  44) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rr
+rr
+272 (8842  44) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf lr
+valueOf lr
+rr
+rr
+273 (2242  44) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rr
+rr
+274 (4442  44) [object Object]: { 44, 0, 42, 0} (100, 56)
+rr
+rr
+275 (    2444) [object Object]: { 100, 24, 0, 0} (100, -100)
+rr
+rr
+276 (44  2444) [object Object]: { 44, 24, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+277 (88  2444) [object Object]: { 0, 24, 0, 0} (100, 100)
+rr
+rr
+278 (22  2444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+279 (44  2444) [object Object]: { 44, 24, 0, 0} (100, 56)
+rr
+rr
+280 (  422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+rr
+rr
+281 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+ll
+ll
+rr
+rr
+282 (88422444) [object Object]: { 0, 24, 42, 0} (100, 100)
+rr
+rr
+283 (22422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+284 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+lr
+lr
+rr
+rr
+285 (  842444) [object Object]: { 100, 24, 0, 0} (100, -100)
+lr
+lr
+rr
+rr
+286 (44842444) [object Object]: { 44, 24, 0, 0} (100, 56)
+ll
+ll
+lr
+lr
+rr
+rr
+287 (88842444) [object Object]: { 0, 24, 0, 0} (100, 100)
+lr
+lr
+rr
+rr
+288 (22842444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+lr
+lr
+rr
+rr
+289 (44842444) [object Object]: { 44, 24, 0, 0} (100, 56)
+rr
+rr
+290 (  212444) [object Object]: { 100, 24, 0, 0} (100, -100)
+rr
+rr
+291 (44212444) [object Object]: { 44, 24, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+292 (88212444) [object Object]: { 0, 24, 0, 0} (100, 100)
+rr
+rr
+293 (22212444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+294 (44212444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf lr
+valueOf lr
+rr
+rr
+295 (  422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf lr
+valueOf lr
+rr
+rr
+296 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rr
+rr
+297 (88422444) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf lr
+valueOf lr
+rr
+rr
+298 (22422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rr
+rr
+299 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+rl
+rl
+rr
+rr
+300 (    4844) [object Object]: { 100, 0, 0, 0} (100, -100)
+rl
+rl
+rr
+rr
+301 (44  4844) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rl
+rl
+rr
+rr
+302 (88  4844) [object Object]: { 0, 0, 0, 0} (100, 100)
+rl
+rl
+rr
+rr
+303 (22  4844) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rl
+rl
+rr
+rr
+304 (44  4844) [object Object]: { 44, 0, 0, 0} (100, 56)
+rl
+rl
+rr
+rr
+305 (  424844) [object Object]: { 100, 0, 42, 0} (100, -100)
+rl
+rl
+rr
+rr
+306 (44424844) [object Object]: { 44, 0, 42, 0} (100, 56)
+ll
+ll
+rl
+rl
+rr
+rr
+307 (88424844) [object Object]: { 0, 0, 42, 0} (100, 100)
+rl
+rl
+rr
+rr
+308 (22424844) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf ll
+rl
+rl
+rr
+rr
+309 (44424844) [object Object]: { 44, 0, 42, 0} (100, 56)
+lr
+lr
+rl
+rl
+rr
+rr
+310 (  844844) [object Object]: { 100, 0, 0, 0} (100, -100)
+lr
+lr
+rl
+rl
+rr
+rr
+311 (44844844) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+lr
+lr
+rl
+rl
+rr
+rr
+312 (88844844) [object Object]: { 0, 0, 0, 0} (100, 100)
+lr
+lr
+rl
+rl
+rr
+rr
+313 (22844844) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+lr
+lr
+rl
+rl
+rr
+rr
+314 (44844844) [object Object]: { 44, 0, 0, 0} (100, 56)
+rl
+rl
+rr
+rr
+315 (  214844) [object Object]: { 100, 0, 0, 0} (100, -100)
+rl
+rl
+rr
+rr
+316 (44214844) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rl
+rl
+rr
+rr
+317 (88214844) [object Object]: { 0, 0, 0, 0} (100, 100)
+rl
+rl
+rr
+rr
+318 (22214844) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rl
+rl
+rr
+rr
+319 (44214844) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf lr
+valueOf lr
+rl
+rl
+rr
+rr
+320 (  424844) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf lr
+valueOf lr
+rl
+rl
+rr
+rr
+321 (44424844) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rl
+rl
+rr
+rr
+322 (88424844) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf lr
+valueOf lr
+rl
+rl
+rr
+rr
+323 (22424844) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rl
+rl
+rr
+rr
+324 (44424844) [object Object]: { 44, 0, 42, 0} (100, 56)
+rr
+rr
+325 (    1244) [object Object]: { 100, 0, 0, 0} (100, -100)
+rr
+rr
+326 (44  1244) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+327 (88  1244) [object Object]: { 0, 0, 0, 0} (100, 100)
+rr
+rr
+328 (22  1244) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+329 (44  1244) [object Object]: { 44, 0, 0, 0} (100, 56)
+rr
+rr
+330 (  421244) [object Object]: { 100, 0, 42, 0} (100, -100)
+rr
+rr
+331 (44421244) [object Object]: { 44, 0, 42, 0} (100, 56)
+ll
+ll
+rr
+rr
+332 (88421244) [object Object]: { 0, 0, 42, 0} (100, 100)
+rr
+rr
+333 (22421244) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+334 (44421244) [object Object]: { 44, 0, 42, 0} (100, 56)
+lr
+lr
+rr
+rr
+335 (  841244) [object Object]: { 100, 0, 0, 0} (100, -100)
+lr
+lr
+rr
+rr
+336 (44841244) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+lr
+lr
+rr
+rr
+337 (88841244) [object Object]: { 0, 0, 0, 0} (100, 100)
+lr
+lr
+rr
+rr
+338 (22841244) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+lr
+lr
+rr
+rr
+339 (44841244) [object Object]: { 44, 0, 0, 0} (100, 56)
+rr
+rr
+340 (  211244) [object Object]: { 100, 0, 0, 0} (100, -100)
+rr
+rr
+341 (44211244) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+342 (88211244) [object Object]: { 0, 0, 0, 0} (100, 100)
+rr
+rr
+343 (22211244) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+344 (44211244) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf lr
+valueOf lr
+rr
+rr
+345 (  421244) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf lr
+valueOf lr
+rr
+rr
+346 (44421244) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rr
+rr
+347 (88421244) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf lr
+valueOf lr
+rr
+rr
+348 (22421244) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rr
+rr
+349 (44421244) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf rl
+valueOf rl
+rr
+rr
+350 (    2444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf rl
+valueOf rl
+rr
+rr
+351 (44  2444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+rr
+rr
+352 (88  2444) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf rl
+valueOf rl
+rr
+rr
+353 (22  2444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+rr
+rr
+354 (44  2444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf rl
+valueOf rl
+rr
+rr
+355 (  422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf rl
+valueOf rl
+rr
+rr
+356 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+rr
+rr
+357 (88422444) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf rl
+valueOf rl
+rr
+rr
+358 (22422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+rr
+rr
+359 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf rl
+lr
+lr
+valueOf rl
+rr
+rr
+360 (  842444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf rl
+lr
+lr
+valueOf rl
+rr
+rr
+361 (44842444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf rl
+ll
+ll
+lr
+lr
+valueOf rl
+rr
+rr
+362 (88842444) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf rl
+lr
+lr
+valueOf rl
+rr
+rr
+363 (22842444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf rl
+valueOf ll
+lr
+lr
+valueOf rl
+rr
+rr
+364 (44842444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf rl
+valueOf rl
+rr
+rr
+365 (  212444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf rl
+valueOf rl
+rr
+rr
+366 (44212444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+rr
+rr
+367 (88212444) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf rl
+valueOf rl
+rr
+rr
+368 (22212444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+rr
+rr
+369 (44212444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+rr
+rr
+370 (  422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+rr
+rr
+371 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf lr
+valueOf rl
+ll
+ll
+valueOf lr
+valueOf rl
+rr
+rr
+372 (88422444) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+rr
+rr
+373 (22422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf ll
+valueOf lr
+valueOf rl
+valueOf ll
+valueOf lr
+valueOf rl
+rr
+rr
+374 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+375 (      11) [object Object]: { 100, 0, 0, 100} (100, 0)
+376 (44    11) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+377 (88    11) [object Object]: { 0, 0, 0, 100} (100, 100)
+378 (22    11) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+379 (44    11) [object Object]: { 44, 0, 0, 100} (100, 56)
+380 (  42  11) [object Object]: { 100, 0, 42, 100} (100, 0)
+381 (4442  11) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+382 (8842  11) [object Object]: { 0, 0, 42, 100} (100, 100)
+383 (2242  11) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+384 (4442  11) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+385 (  84  11) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+386 (4484  11) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+387 (8884  11) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+388 (2284  11) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+389 (4484  11) [object Object]: { 44, 0, 0, 100} (100, 56)
+390 (  21  11) [object Object]: { 100, 0, 0, 100} (100, 0)
+391 (4421  11) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+392 (8821  11) [object Object]: { 0, 0, 0, 100} (100, 100)
+393 (2221  11) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+394 (4421  11) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+395 (  42  11) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+396 (4442  11) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+397 (8842  11) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+398 (2242  11) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+399 (4442  11) [object Object]: { 44, 0, 42, 100} (100, 56)
+400 (    2411) [object Object]: { 100, 24, 0, 100} (100, 0)
+401 (44  2411) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+402 (88  2411) [object Object]: { 0, 24, 0, 100} (100, 100)
+403 (22  2411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+404 (44  2411) [object Object]: { 44, 24, 0, 100} (100, 56)
+405 (  422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+406 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+ll
+ll
+407 (88422411) [object Object]: { 0, 24, 42, 100} (100, 100)
+408 (22422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+409 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+lr
+lr
+410 (  842411) [object Object]: { 100, 24, 0, 100} (100, 0)
+lr
+lr
+411 (44842411) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+412 (88842411) [object Object]: { 0, 24, 0, 100} (100, 100)
+lr
+lr
+413 (22842411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+414 (44842411) [object Object]: { 44, 24, 0, 100} (100, 56)
+415 (  212411) [object Object]: { 100, 24, 0, 100} (100, 0)
+416 (44212411) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+417 (88212411) [object Object]: { 0, 24, 0, 100} (100, 100)
+418 (22212411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+419 (44212411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+420 (  422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+421 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+422 (88422411) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+423 (22422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+424 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+rl
+rl
+425 (    4811) [object Object]: { 100, 0, 0, 100} (100, 0)
+rl
+rl
+426 (44  4811) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+rl
+rl
+427 (88  4811) [object Object]: { 0, 0, 0, 100} (100, 100)
+rl
+rl
+428 (22  4811) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+429 (44  4811) [object Object]: { 44, 0, 0, 100} (100, 56)
+rl
+rl
+430 (  424811) [object Object]: { 100, 0, 42, 100} (100, 0)
+rl
+rl
+431 (44424811) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+rl
+rl
+432 (88424811) [object Object]: { 0, 0, 42, 100} (100, 100)
+rl
+rl
+433 (22424811) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+434 (44424811) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+rl
+rl
+435 (  844811) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+rl
+rl
+436 (44844811) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+rl
+rl
+437 (88844811) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+rl
+rl
+438 (22844811) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+rl
+rl
+439 (44844811) [object Object]: { 44, 0, 0, 100} (100, 56)
+rl
+rl
+440 (  214811) [object Object]: { 100, 0, 0, 100} (100, 0)
+rl
+rl
+441 (44214811) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+rl
+rl
+442 (88214811) [object Object]: { 0, 0, 0, 100} (100, 100)
+rl
+rl
+443 (22214811) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+444 (44214811) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+rl
+rl
+445 (  424811) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+rl
+rl
+446 (44424811) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rl
+rl
+447 (88424811) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+rl
+rl
+448 (22424811) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rl
+rl
+449 (44424811) [object Object]: { 44, 0, 42, 100} (100, 56)
+450 (    1211) [object Object]: { 100, 0, 0, 100} (100, 0)
+451 (44  1211) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+452 (88  1211) [object Object]: { 0, 0, 0, 100} (100, 100)
+453 (22  1211) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+454 (44  1211) [object Object]: { 44, 0, 0, 100} (100, 56)
+455 (  421211) [object Object]: { 100, 0, 42, 100} (100, 0)
+456 (44421211) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+457 (88421211) [object Object]: { 0, 0, 42, 100} (100, 100)
+458 (22421211) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+459 (44421211) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+460 (  841211) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+461 (44841211) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+462 (88841211) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+463 (22841211) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+464 (44841211) [object Object]: { 44, 0, 0, 100} (100, 56)
+465 (  211211) [object Object]: { 100, 0, 0, 100} (100, 0)
+466 (44211211) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+467 (88211211) [object Object]: { 0, 0, 0, 100} (100, 100)
+468 (22211211) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+469 (44211211) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+470 (  421211) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+471 (44421211) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+472 (88421211) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+473 (22421211) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+474 (44421211) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf rl
+valueOf rl
+475 (    2411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+valueOf rl
+476 (44  2411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+477 (88  2411) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+valueOf rl
+478 (22  2411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+479 (44  2411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+valueOf rl
+480 (  422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf rl
+valueOf rl
+481 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+482 (88422411) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf rl
+valueOf rl
+483 (22422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+484 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf rl
+lr
+lr
+valueOf rl
+485 (  842411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+lr
+lr
+valueOf rl
+486 (44842411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+lr
+lr
+valueOf rl
+487 (88842411) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+lr
+lr
+valueOf rl
+488 (22842411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+lr
+lr
+valueOf rl
+489 (44842411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+valueOf rl
+490 (  212411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+valueOf rl
+491 (44212411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+492 (88212411) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+valueOf rl
+493 (22212411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+494 (44212411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+495 (  422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+496 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf lr
+valueOf rl
+ll
+ll
+valueOf lr
+valueOf rl
+497 (88422411) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+498 (22422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf rl
+valueOf ll
+valueOf lr
+valueOf rl
+499 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf rr
+valueOf rr
+500 (      22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+501 (44    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+502 (88    22) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+503 (22    22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+504 (44    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+505 (  42  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf rr
+valueOf rr
+506 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+507 (8842  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf rr
+valueOf rr
+508 (2242  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+509 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+lr
+lr
+valueOf rr
+510 (  84  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+lr
+lr
+valueOf rr
+511 (4484  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+lr
+lr
+valueOf rr
+512 (8884  22) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+lr
+lr
+valueOf rr
+513 (2284  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+lr
+lr
+valueOf rr
+514 (4484  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+515 (  21  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+516 (4421  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+517 (8821  22) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+518 (2221  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+519 (4421  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+520 (  42  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+521 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+valueOf rr
+ll
+ll
+valueOf lr
+valueOf rr
+522 (8842  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+523 (2242  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rr
+valueOf ll
+valueOf lr
+valueOf rr
+524 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+valueOf rr
+525 (    2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+526 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+527 (88  2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+528 (22  2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+529 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+530 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf rr
+valueOf rr
+531 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+532 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf rr
+valueOf rr
+533 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+534 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rr
+lr
+lr
+valueOf rr
+535 (  842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+lr
+lr
+valueOf rr
+536 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+lr
+lr
+valueOf rr
+537 (88842422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+lr
+lr
+valueOf rr
+538 (22842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+lr
+lr
+valueOf rr
+539 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+540 (  212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+541 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+542 (88212422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+543 (22212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+544 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+545 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+546 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf lr
+valueOf rr
+ll
+ll
+valueOf lr
+valueOf rr
+547 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+548 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rr
+valueOf ll
+valueOf lr
+valueOf rr
+549 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rr
+rl
+rl
+valueOf rr
+550 (    4822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+rl
+rl
+valueOf rr
+551 (44  4822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+rl
+rl
+valueOf rr
+552 (88  4822) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+rl
+rl
+valueOf rr
+553 (22  4822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+rl
+rl
+valueOf rr
+554 (44  4822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+rl
+rl
+valueOf rr
+555 (  424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf rr
+rl
+rl
+valueOf rr
+556 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+ll
+ll
+rl
+rl
+valueOf rr
+557 (88424822) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf rr
+rl
+rl
+valueOf rr
+558 (22424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+rl
+rl
+valueOf rr
+559 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+lr
+lr
+rl
+rl
+valueOf rr
+560 (  844822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+lr
+lr
+rl
+rl
+valueOf rr
+561 (44844822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+lr
+lr
+rl
+rl
+valueOf rr
+562 (88844822) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+lr
+lr
+rl
+rl
+valueOf rr
+563 (22844822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+lr
+lr
+rl
+rl
+valueOf rr
+564 (44844822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+rl
+rl
+valueOf rr
+565 (  214822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+rl
+rl
+valueOf rr
+566 (44214822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+rl
+rl
+valueOf rr
+567 (88214822) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+rl
+rl
+valueOf rr
+568 (22214822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+rl
+rl
+valueOf rr
+569 (44214822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf lr
+rl
+rl
+valueOf rr
+570 (  424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf rr
+valueOf lr
+rl
+rl
+valueOf rr
+571 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+valueOf rr
+ll
+ll
+valueOf lr
+rl
+rl
+valueOf rr
+572 (88424822) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf rr
+valueOf lr
+rl
+rl
+valueOf rr
+573 (22424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rr
+valueOf ll
+valueOf lr
+rl
+rl
+valueOf rr
+574 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+valueOf rr
+575 (    1222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+576 (44  1222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+577 (88  1222) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+578 (22  1222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+579 (44  1222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+580 (  421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf rr
+valueOf rr
+581 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+582 (88421222) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf rr
+valueOf rr
+583 (22421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+584 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+lr
+lr
+valueOf rr
+585 (  841222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+lr
+lr
+valueOf rr
+586 (44841222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+lr
+lr
+valueOf rr
+587 (88841222) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+lr
+lr
+valueOf rr
+588 (22841222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+lr
+lr
+valueOf rr
+589 (44841222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+590 (  211222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+591 (44211222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+592 (88211222) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+593 (22211222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+594 (44211222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+595 (  421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+596 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+valueOf rr
+ll
+ll
+valueOf lr
+valueOf rr
+597 (88421222) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+598 (22421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rr
+valueOf ll
+valueOf lr
+valueOf rr
+599 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+600 (    2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+601 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rl
+ll
+ll
+valueOf rl
+valueOf rr
+602 (88  2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+603 (22  2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf rl
+valueOf ll
+valueOf rl
+valueOf rr
+604 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+605 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+606 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rr
+valueOf rl
+ll
+ll
+valueOf rl
+valueOf rr
+607 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+608 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf rl
+valueOf ll
+valueOf rl
+valueOf rr
+609 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rr
+valueOf rl
+lr
+lr
+valueOf rl
+valueOf rr
+610 (  842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+valueOf rl
+lr
+lr
+valueOf rl
+valueOf rr
+611 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rl
+ll
+ll
+lr
+lr
+valueOf rl
+valueOf rr
+612 (88842422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+valueOf rl
+lr
+lr
+valueOf rl
+valueOf rr
+613 (22842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf rl
+valueOf ll
+lr
+lr
+valueOf rl
+valueOf rr
+614 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+615 (  212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+616 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rl
+ll
+ll
+valueOf rl
+valueOf rr
+617 (88212422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+618 (22212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf rl
+valueOf ll
+valueOf rl
+valueOf rr
+619 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf rl
+valueOf lr
+valueOf rl
+valueOf rr
+620 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf lr
+valueOf rr
+valueOf rl
+valueOf lr
+valueOf rl
+valueOf rr
+621 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf rl
+ll
+ll
+valueOf lr
+valueOf rl
+valueOf rr
+622 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf lr
+valueOf rr
+valueOf rl
+valueOf lr
+valueOf rl
+valueOf rr
+623 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rr
+valueOf rl
+valueOf ll
+valueOf lr
+valueOf rl
+valueOf rr
+624 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
diff --git a/test/trace/sound-setTransform-propertytypes-8.swf b/test/trace/sound-setTransform-propertytypes-8.swf
new file mode 100644
index 0000000..2bf9fb8
Binary files /dev/null and b/test/trace/sound-setTransform-propertytypes-8.swf differ
diff --git a/test/trace/sound-setTransform-propertytypes-8.swf.trace b/test/trace/sound-setTransform-propertytypes-8.swf.trace
new file mode 100644
index 0000000..e366510
--- /dev/null
+++ b/test/trace/sound-setTransform-propertytypes-8.swf.trace
@@ -0,0 +1,2625 @@
+0 (        ) [object Object]: { 100, 0, 0, 100} (100, 0)
+1 (44      ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+2 (88      ) [object Object]: { 0, 0, 0, 100} (100, 100)
+3 (22      ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+4 (44      ) [object Object]: { 44, 0, 0, 100} (100, 56)
+5 (  42    ) [object Object]: { 100, 0, 42, 100} (100, 0)
+6 (4442    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+7 (8842    ) [object Object]: { 0, 0, 42, 100} (100, 100)
+8 (2242    ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+9 (4442    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+10 (  84    ) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+11 (4484    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+12 (8884    ) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+13 (2284    ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+14 (4484    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+15 (  21    ) [object Object]: { 100, 0, 0, 100} (100, 0)
+16 (4421    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+17 (8821    ) [object Object]: { 0, 0, 0, 100} (100, 100)
+18 (2221    ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+19 (4421    ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+20 (  42    ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+21 (4442    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+22 (8842    ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+23 (2242    ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+24 (4442    ) [object Object]: { 44, 0, 42, 100} (100, 56)
+25 (    24  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+26 (44  24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+27 (88  24  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+28 (22  24  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+29 (44  24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+30 (  4224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+31 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+ll
+ll
+32 (884224  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+33 (224224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+34 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+lr
+lr
+35 (  8424  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+lr
+lr
+36 (448424  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+37 (888424  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+lr
+lr
+38 (228424  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+39 (448424  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+40 (  2124  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+41 (442124  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+42 (882124  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+43 (222124  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+44 (442124  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+45 (  4224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+46 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+47 (884224  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+48 (224224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+49 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+rl
+rl
+50 (    48  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+rl
+rl
+51 (44  48  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+rl
+rl
+52 (88  48  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+rl
+rl
+53 (22  48  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+54 (44  48  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+rl
+rl
+55 (  4248  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+rl
+rl
+56 (444248  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+rl
+rl
+57 (884248  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+rl
+rl
+58 (224248  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+59 (444248  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+rl
+rl
+60 (  8448  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+rl
+rl
+61 (448448  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+rl
+rl
+62 (888448  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+rl
+rl
+63 (228448  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+rl
+rl
+64 (448448  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+rl
+rl
+65 (  2148  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+rl
+rl
+66 (442148  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+rl
+rl
+67 (882148  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+rl
+rl
+68 (222148  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+69 (442148  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+rl
+rl
+70 (  4248  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+rl
+rl
+71 (444248  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rl
+rl
+72 (884248  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+rl
+rl
+73 (224248  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rl
+rl
+74 (444248  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+75 (    12  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+76 (44  12  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+77 (88  12  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+78 (22  12  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+79 (44  12  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+80 (  4212  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+81 (444212  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+82 (884212  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+83 (224212  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+84 (444212  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+85 (  8412  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+86 (448412  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+87 (888412  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+88 (228412  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+89 (448412  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+90 (  2112  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+91 (442112  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+92 (882112  ) [object Object]: { 0, 0, 0, 100} (100, 100)
+93 (222112  ) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+94 (442112  ) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+95 (  4212  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+96 (444212  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+97 (884212  ) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+98 (224212  ) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+99 (444212  ) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf rl
+valueOf rl
+100 (    24  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+valueOf rl
+101 (44  24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+102 (88  24  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+valueOf rl
+103 (22  24  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+104 (44  24  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+valueOf rl
+105 (  4224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf rl
+valueOf rl
+106 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+107 (884224  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf rl
+valueOf rl
+108 (224224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+109 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf rl
+lr
+lr
+valueOf rl
+110 (  8424  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+lr
+lr
+valueOf rl
+111 (448424  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+lr
+lr
+valueOf rl
+112 (888424  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+lr
+lr
+valueOf rl
+113 (228424  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+lr
+lr
+valueOf rl
+114 (448424  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+valueOf rl
+115 (  2124  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+valueOf rl
+116 (442124  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+117 (882124  ) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+valueOf rl
+118 (222124  ) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+119 (442124  ) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+120 (  4224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+121 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf lr
+valueOf rl
+ll
+ll
+valueOf lr
+valueOf rl
+122 (884224  ) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+123 (224224  ) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf rl
+valueOf ll
+valueOf lr
+valueOf rl
+124 (444224  ) [object Object]: { 44, 24, 42, 100} (100, 56)
+125 (      22) [object Object]: { 100, 0, 0, 22} (100, -78)
+126 (44    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+127 (88    22) [object Object]: { 0, 0, 0, 22} (100, 100)
+128 (22    22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+129 (44    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+130 (  42  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+131 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+ll
+ll
+132 (8842  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+133 (2242  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf ll
+134 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+lr
+lr
+135 (  84  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+lr
+lr
+136 (4484  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+lr
+lr
+137 (8884  22) [object Object]: { 0, 0, 0, 22} (100, 100)
+lr
+lr
+138 (2284  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+lr
+lr
+139 (4484  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+140 (  21  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+141 (4421  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+142 (8821  22) [object Object]: { 0, 0, 0, 22} (100, 100)
+143 (2221  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+144 (4421  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf lr
+145 (  42  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf lr
+146 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+147 (8842  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf lr
+148 (2242  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+149 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+150 (    2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+151 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+ll
+ll
+152 (88  2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+153 (22  2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+154 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+155 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+156 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+ll
+ll
+157 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+158 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf ll
+159 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+lr
+lr
+160 (  842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+lr
+lr
+161 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+ll
+ll
+lr
+lr
+162 (88842422) [object Object]: { 0, 24, 0, 22} (100, 100)
+lr
+lr
+163 (22842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+lr
+lr
+164 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+165 (  212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+166 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+ll
+ll
+167 (88212422) [object Object]: { 0, 24, 0, 22} (100, 100)
+168 (22212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+169 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf lr
+valueOf lr
+170 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf lr
+valueOf lr
+171 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+172 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf lr
+valueOf lr
+173 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+174 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+rl
+rl
+175 (    4822) [object Object]: { 100, 0, 0, 22} (100, -78)
+rl
+rl
+176 (44  4822) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+rl
+rl
+177 (88  4822) [object Object]: { 0, 0, 0, 22} (100, 100)
+rl
+rl
+178 (22  4822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+rl
+rl
+179 (44  4822) [object Object]: { 44, 0, 0, 22} (100, 56)
+rl
+rl
+180 (  424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+rl
+rl
+181 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+ll
+ll
+rl
+rl
+182 (88424822) [object Object]: { 0, 0, 42, 22} (100, 100)
+rl
+rl
+183 (22424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf ll
+rl
+rl
+184 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+lr
+lr
+rl
+rl
+185 (  844822) [object Object]: { 100, 0, 0, 22} (100, -78)
+lr
+lr
+rl
+rl
+186 (44844822) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+lr
+lr
+rl
+rl
+187 (88844822) [object Object]: { 0, 0, 0, 22} (100, 100)
+lr
+lr
+rl
+rl
+188 (22844822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+lr
+lr
+rl
+rl
+189 (44844822) [object Object]: { 44, 0, 0, 22} (100, 56)
+rl
+rl
+190 (  214822) [object Object]: { 100, 0, 0, 22} (100, -78)
+rl
+rl
+191 (44214822) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+rl
+rl
+192 (88214822) [object Object]: { 0, 0, 0, 22} (100, 100)
+rl
+rl
+193 (22214822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+rl
+rl
+194 (44214822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf lr
+rl
+rl
+195 (  424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf lr
+rl
+rl
+196 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rl
+rl
+197 (88424822) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf lr
+rl
+rl
+198 (22424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rl
+rl
+199 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+200 (    1222) [object Object]: { 100, 0, 0, 22} (100, -78)
+201 (44  1222) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+202 (88  1222) [object Object]: { 0, 0, 0, 22} (100, 100)
+203 (22  1222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+204 (44  1222) [object Object]: { 44, 0, 0, 22} (100, 56)
+205 (  421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+206 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+ll
+ll
+207 (88421222) [object Object]: { 0, 0, 42, 22} (100, 100)
+208 (22421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf ll
+209 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+lr
+lr
+210 (  841222) [object Object]: { 100, 0, 0, 22} (100, -78)
+lr
+lr
+211 (44841222) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+lr
+lr
+212 (88841222) [object Object]: { 0, 0, 0, 22} (100, 100)
+lr
+lr
+213 (22841222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+lr
+lr
+214 (44841222) [object Object]: { 44, 0, 0, 22} (100, 56)
+215 (  211222) [object Object]: { 100, 0, 0, 22} (100, -78)
+216 (44211222) [object Object]: { 44, 0, 0, 22} (100, 56)
+ll
+ll
+217 (88211222) [object Object]: { 0, 0, 0, 22} (100, 100)
+218 (22211222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf ll
+219 (44211222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf lr
+220 (  421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf lr
+221 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+222 (88421222) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf lr
+223 (22421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+224 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rl
+valueOf rl
+225 (    2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rl
+valueOf rl
+226 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+227 (88  2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rl
+valueOf rl
+228 (22  2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+229 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rl
+valueOf rl
+230 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf rl
+valueOf rl
+231 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+232 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf rl
+valueOf rl
+233 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+234 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rl
+lr
+lr
+valueOf rl
+235 (  842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rl
+lr
+lr
+valueOf rl
+236 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rl
+ll
+ll
+lr
+lr
+valueOf rl
+237 (88842422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rl
+lr
+lr
+valueOf rl
+238 (22842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rl
+valueOf ll
+lr
+lr
+valueOf rl
+239 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rl
+valueOf rl
+240 (  212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rl
+valueOf rl
+241 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+242 (88212422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rl
+valueOf rl
+243 (22212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+244 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+245 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+246 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf lr
+valueOf rl
+ll
+ll
+valueOf lr
+valueOf rl
+247 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+248 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rl
+valueOf ll
+valueOf lr
+valueOf rl
+249 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+rr
+rr
+250 (      44) [object Object]: { 100, 0, 0, 0} (100, -100)
+rr
+rr
+251 (44    44) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+252 (88    44) [object Object]: { 0, 0, 0, 0} (100, 100)
+rr
+rr
+253 (22    44) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+254 (44    44) [object Object]: { 44, 0, 0, 0} (100, 56)
+rr
+rr
+255 (  42  44) [object Object]: { 100, 0, 42, 0} (100, -100)
+rr
+rr
+256 (4442  44) [object Object]: { 44, 0, 42, 0} (100, 56)
+ll
+ll
+rr
+rr
+257 (8842  44) [object Object]: { 0, 0, 42, 0} (100, 100)
+rr
+rr
+258 (2242  44) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+259 (4442  44) [object Object]: { 44, 0, 42, 0} (100, 56)
+lr
+lr
+rr
+rr
+260 (  84  44) [object Object]: { 100, 0, 0, 0} (100, -100)
+lr
+lr
+rr
+rr
+261 (4484  44) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+lr
+lr
+rr
+rr
+262 (8884  44) [object Object]: { 0, 0, 0, 0} (100, 100)
+lr
+lr
+rr
+rr
+263 (2284  44) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+lr
+lr
+rr
+rr
+264 (4484  44) [object Object]: { 44, 0, 0, 0} (100, 56)
+rr
+rr
+265 (  21  44) [object Object]: { 100, 0, 0, 0} (100, -100)
+rr
+rr
+266 (4421  44) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+267 (8821  44) [object Object]: { 0, 0, 0, 0} (100, 100)
+rr
+rr
+268 (2221  44) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+269 (4421  44) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf lr
+valueOf lr
+rr
+rr
+270 (  42  44) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf lr
+valueOf lr
+rr
+rr
+271 (4442  44) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rr
+rr
+272 (8842  44) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf lr
+valueOf lr
+rr
+rr
+273 (2242  44) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rr
+rr
+274 (4442  44) [object Object]: { 44, 0, 42, 0} (100, 56)
+rr
+rr
+275 (    2444) [object Object]: { 100, 24, 0, 0} (100, -100)
+rr
+rr
+276 (44  2444) [object Object]: { 44, 24, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+277 (88  2444) [object Object]: { 0, 24, 0, 0} (100, 100)
+rr
+rr
+278 (22  2444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+279 (44  2444) [object Object]: { 44, 24, 0, 0} (100, 56)
+rr
+rr
+280 (  422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+rr
+rr
+281 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+ll
+ll
+rr
+rr
+282 (88422444) [object Object]: { 0, 24, 42, 0} (100, 100)
+rr
+rr
+283 (22422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+284 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+lr
+lr
+rr
+rr
+285 (  842444) [object Object]: { 100, 24, 0, 0} (100, -100)
+lr
+lr
+rr
+rr
+286 (44842444) [object Object]: { 44, 24, 0, 0} (100, 56)
+ll
+ll
+lr
+lr
+rr
+rr
+287 (88842444) [object Object]: { 0, 24, 0, 0} (100, 100)
+lr
+lr
+rr
+rr
+288 (22842444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+lr
+lr
+rr
+rr
+289 (44842444) [object Object]: { 44, 24, 0, 0} (100, 56)
+rr
+rr
+290 (  212444) [object Object]: { 100, 24, 0, 0} (100, -100)
+rr
+rr
+291 (44212444) [object Object]: { 44, 24, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+292 (88212444) [object Object]: { 0, 24, 0, 0} (100, 100)
+rr
+rr
+293 (22212444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+294 (44212444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf lr
+valueOf lr
+rr
+rr
+295 (  422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf lr
+valueOf lr
+rr
+rr
+296 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rr
+rr
+297 (88422444) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf lr
+valueOf lr
+rr
+rr
+298 (22422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rr
+rr
+299 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+rl
+rl
+rr
+rr
+300 (    4844) [object Object]: { 100, 0, 0, 0} (100, -100)
+rl
+rl
+rr
+rr
+301 (44  4844) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rl
+rl
+rr
+rr
+302 (88  4844) [object Object]: { 0, 0, 0, 0} (100, 100)
+rl
+rl
+rr
+rr
+303 (22  4844) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rl
+rl
+rr
+rr
+304 (44  4844) [object Object]: { 44, 0, 0, 0} (100, 56)
+rl
+rl
+rr
+rr
+305 (  424844) [object Object]: { 100, 0, 42, 0} (100, -100)
+rl
+rl
+rr
+rr
+306 (44424844) [object Object]: { 44, 0, 42, 0} (100, 56)
+ll
+ll
+rl
+rl
+rr
+rr
+307 (88424844) [object Object]: { 0, 0, 42, 0} (100, 100)
+rl
+rl
+rr
+rr
+308 (22424844) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf ll
+rl
+rl
+rr
+rr
+309 (44424844) [object Object]: { 44, 0, 42, 0} (100, 56)
+lr
+lr
+rl
+rl
+rr
+rr
+310 (  844844) [object Object]: { 100, 0, 0, 0} (100, -100)
+lr
+lr
+rl
+rl
+rr
+rr
+311 (44844844) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+lr
+lr
+rl
+rl
+rr
+rr
+312 (88844844) [object Object]: { 0, 0, 0, 0} (100, 100)
+lr
+lr
+rl
+rl
+rr
+rr
+313 (22844844) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+lr
+lr
+rl
+rl
+rr
+rr
+314 (44844844) [object Object]: { 44, 0, 0, 0} (100, 56)
+rl
+rl
+rr
+rr
+315 (  214844) [object Object]: { 100, 0, 0, 0} (100, -100)
+rl
+rl
+rr
+rr
+316 (44214844) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rl
+rl
+rr
+rr
+317 (88214844) [object Object]: { 0, 0, 0, 0} (100, 100)
+rl
+rl
+rr
+rr
+318 (22214844) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rl
+rl
+rr
+rr
+319 (44214844) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf lr
+valueOf lr
+rl
+rl
+rr
+rr
+320 (  424844) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf lr
+valueOf lr
+rl
+rl
+rr
+rr
+321 (44424844) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rl
+rl
+rr
+rr
+322 (88424844) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf lr
+valueOf lr
+rl
+rl
+rr
+rr
+323 (22424844) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rl
+rl
+rr
+rr
+324 (44424844) [object Object]: { 44, 0, 42, 0} (100, 56)
+rr
+rr
+325 (    1244) [object Object]: { 100, 0, 0, 0} (100, -100)
+rr
+rr
+326 (44  1244) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+327 (88  1244) [object Object]: { 0, 0, 0, 0} (100, 100)
+rr
+rr
+328 (22  1244) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+329 (44  1244) [object Object]: { 44, 0, 0, 0} (100, 56)
+rr
+rr
+330 (  421244) [object Object]: { 100, 0, 42, 0} (100, -100)
+rr
+rr
+331 (44421244) [object Object]: { 44, 0, 42, 0} (100, 56)
+ll
+ll
+rr
+rr
+332 (88421244) [object Object]: { 0, 0, 42, 0} (100, 100)
+rr
+rr
+333 (22421244) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+334 (44421244) [object Object]: { 44, 0, 42, 0} (100, 56)
+lr
+lr
+rr
+rr
+335 (  841244) [object Object]: { 100, 0, 0, 0} (100, -100)
+lr
+lr
+rr
+rr
+336 (44841244) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+lr
+lr
+rr
+rr
+337 (88841244) [object Object]: { 0, 0, 0, 0} (100, 100)
+lr
+lr
+rr
+rr
+338 (22841244) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+lr
+lr
+rr
+rr
+339 (44841244) [object Object]: { 44, 0, 0, 0} (100, 56)
+rr
+rr
+340 (  211244) [object Object]: { 100, 0, 0, 0} (100, -100)
+rr
+rr
+341 (44211244) [object Object]: { 44, 0, 0, 0} (100, 56)
+ll
+ll
+rr
+rr
+342 (88211244) [object Object]: { 0, 0, 0, 0} (100, 100)
+rr
+rr
+343 (22211244) [object Object]: { 100, 0, 0, 0} (100, -100)
+valueOf ll
+valueOf ll
+rr
+rr
+344 (44211244) [object Object]: { 44, 0, 0, 0} (100, 56)
+valueOf lr
+valueOf lr
+rr
+rr
+345 (  421244) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf lr
+valueOf lr
+rr
+rr
+346 (44421244) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rr
+rr
+347 (88421244) [object Object]: { 0, 0, 42, 0} (100, 100)
+valueOf lr
+valueOf lr
+rr
+rr
+348 (22421244) [object Object]: { 100, 0, 42, 0} (100, -100)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rr
+rr
+349 (44421244) [object Object]: { 44, 0, 42, 0} (100, 56)
+valueOf rl
+valueOf rl
+rr
+rr
+350 (    2444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf rl
+valueOf rl
+rr
+rr
+351 (44  2444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+rr
+rr
+352 (88  2444) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf rl
+valueOf rl
+rr
+rr
+353 (22  2444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+rr
+rr
+354 (44  2444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf rl
+valueOf rl
+rr
+rr
+355 (  422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf rl
+valueOf rl
+rr
+rr
+356 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+rr
+rr
+357 (88422444) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf rl
+valueOf rl
+rr
+rr
+358 (22422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+rr
+rr
+359 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf rl
+lr
+lr
+valueOf rl
+rr
+rr
+360 (  842444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf rl
+lr
+lr
+valueOf rl
+rr
+rr
+361 (44842444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf rl
+ll
+ll
+lr
+lr
+valueOf rl
+rr
+rr
+362 (88842444) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf rl
+lr
+lr
+valueOf rl
+rr
+rr
+363 (22842444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf rl
+valueOf ll
+lr
+lr
+valueOf rl
+rr
+rr
+364 (44842444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf rl
+valueOf rl
+rr
+rr
+365 (  212444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf rl
+valueOf rl
+rr
+rr
+366 (44212444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+rr
+rr
+367 (88212444) [object Object]: { 0, 24, 0, 0} (100, 100)
+valueOf rl
+valueOf rl
+rr
+rr
+368 (22212444) [object Object]: { 100, 24, 0, 0} (100, -100)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+rr
+rr
+369 (44212444) [object Object]: { 44, 24, 0, 0} (100, 56)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+rr
+rr
+370 (  422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+rr
+rr
+371 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+valueOf lr
+valueOf rl
+ll
+ll
+valueOf lr
+valueOf rl
+rr
+rr
+372 (88422444) [object Object]: { 0, 24, 42, 0} (100, 100)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+rr
+rr
+373 (22422444) [object Object]: { 100, 24, 42, 0} (100, -100)
+valueOf ll
+valueOf lr
+valueOf rl
+valueOf ll
+valueOf lr
+valueOf rl
+rr
+rr
+374 (44422444) [object Object]: { 44, 24, 42, 0} (100, 56)
+375 (      11) [object Object]: { 100, 0, 0, 100} (100, 0)
+376 (44    11) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+377 (88    11) [object Object]: { 0, 0, 0, 100} (100, 100)
+378 (22    11) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+379 (44    11) [object Object]: { 44, 0, 0, 100} (100, 56)
+380 (  42  11) [object Object]: { 100, 0, 42, 100} (100, 0)
+381 (4442  11) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+382 (8842  11) [object Object]: { 0, 0, 42, 100} (100, 100)
+383 (2242  11) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+384 (4442  11) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+385 (  84  11) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+386 (4484  11) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+387 (8884  11) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+388 (2284  11) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+389 (4484  11) [object Object]: { 44, 0, 0, 100} (100, 56)
+390 (  21  11) [object Object]: { 100, 0, 0, 100} (100, 0)
+391 (4421  11) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+392 (8821  11) [object Object]: { 0, 0, 0, 100} (100, 100)
+393 (2221  11) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+394 (4421  11) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+395 (  42  11) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+396 (4442  11) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+397 (8842  11) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+398 (2242  11) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+399 (4442  11) [object Object]: { 44, 0, 42, 100} (100, 56)
+400 (    2411) [object Object]: { 100, 24, 0, 100} (100, 0)
+401 (44  2411) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+402 (88  2411) [object Object]: { 0, 24, 0, 100} (100, 100)
+403 (22  2411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+404 (44  2411) [object Object]: { 44, 24, 0, 100} (100, 56)
+405 (  422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+406 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+ll
+ll
+407 (88422411) [object Object]: { 0, 24, 42, 100} (100, 100)
+408 (22422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+409 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+lr
+lr
+410 (  842411) [object Object]: { 100, 24, 0, 100} (100, 0)
+lr
+lr
+411 (44842411) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+412 (88842411) [object Object]: { 0, 24, 0, 100} (100, 100)
+lr
+lr
+413 (22842411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+414 (44842411) [object Object]: { 44, 24, 0, 100} (100, 56)
+415 (  212411) [object Object]: { 100, 24, 0, 100} (100, 0)
+416 (44212411) [object Object]: { 44, 24, 0, 100} (100, 56)
+ll
+ll
+417 (88212411) [object Object]: { 0, 24, 0, 100} (100, 100)
+418 (22212411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+419 (44212411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+420 (  422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+421 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+422 (88422411) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+423 (22422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+424 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+rl
+rl
+425 (    4811) [object Object]: { 100, 0, 0, 100} (100, 0)
+rl
+rl
+426 (44  4811) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+rl
+rl
+427 (88  4811) [object Object]: { 0, 0, 0, 100} (100, 100)
+rl
+rl
+428 (22  4811) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+429 (44  4811) [object Object]: { 44, 0, 0, 100} (100, 56)
+rl
+rl
+430 (  424811) [object Object]: { 100, 0, 42, 100} (100, 0)
+rl
+rl
+431 (44424811) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+rl
+rl
+432 (88424811) [object Object]: { 0, 0, 42, 100} (100, 100)
+rl
+rl
+433 (22424811) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+434 (44424811) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+rl
+rl
+435 (  844811) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+rl
+rl
+436 (44844811) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+rl
+rl
+437 (88844811) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+rl
+rl
+438 (22844811) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+rl
+rl
+439 (44844811) [object Object]: { 44, 0, 0, 100} (100, 56)
+rl
+rl
+440 (  214811) [object Object]: { 100, 0, 0, 100} (100, 0)
+rl
+rl
+441 (44214811) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+rl
+rl
+442 (88214811) [object Object]: { 0, 0, 0, 100} (100, 100)
+rl
+rl
+443 (22214811) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+rl
+rl
+444 (44214811) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+rl
+rl
+445 (  424811) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+rl
+rl
+446 (44424811) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+rl
+rl
+447 (88424811) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+rl
+rl
+448 (22424811) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+rl
+rl
+449 (44424811) [object Object]: { 44, 0, 42, 100} (100, 56)
+450 (    1211) [object Object]: { 100, 0, 0, 100} (100, 0)
+451 (44  1211) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+452 (88  1211) [object Object]: { 0, 0, 0, 100} (100, 100)
+453 (22  1211) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+454 (44  1211) [object Object]: { 44, 0, 0, 100} (100, 56)
+455 (  421211) [object Object]: { 100, 0, 42, 100} (100, 0)
+456 (44421211) [object Object]: { 44, 0, 42, 100} (100, 56)
+ll
+ll
+457 (88421211) [object Object]: { 0, 0, 42, 100} (100, 100)
+458 (22421211) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf ll
+459 (44421211) [object Object]: { 44, 0, 42, 100} (100, 56)
+lr
+lr
+460 (  841211) [object Object]: { 100, 0, 0, 100} (100, 0)
+lr
+lr
+461 (44841211) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+lr
+lr
+462 (88841211) [object Object]: { 0, 0, 0, 100} (100, 100)
+lr
+lr
+463 (22841211) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+lr
+lr
+464 (44841211) [object Object]: { 44, 0, 0, 100} (100, 56)
+465 (  211211) [object Object]: { 100, 0, 0, 100} (100, 0)
+466 (44211211) [object Object]: { 44, 0, 0, 100} (100, 56)
+ll
+ll
+467 (88211211) [object Object]: { 0, 0, 0, 100} (100, 100)
+468 (22211211) [object Object]: { 100, 0, 0, 100} (100, 0)
+valueOf ll
+valueOf ll
+469 (44211211) [object Object]: { 44, 0, 0, 100} (100, 56)
+valueOf lr
+valueOf lr
+470 (  421211) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf lr
+valueOf lr
+471 (44421211) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf lr
+ll
+ll
+valueOf lr
+472 (88421211) [object Object]: { 0, 0, 42, 100} (100, 100)
+valueOf lr
+valueOf lr
+473 (22421211) [object Object]: { 100, 0, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf ll
+valueOf lr
+474 (44421211) [object Object]: { 44, 0, 42, 100} (100, 56)
+valueOf rl
+valueOf rl
+475 (    2411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+valueOf rl
+476 (44  2411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+477 (88  2411) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+valueOf rl
+478 (22  2411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+479 (44  2411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+valueOf rl
+480 (  422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf rl
+valueOf rl
+481 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+482 (88422411) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf rl
+valueOf rl
+483 (22422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+484 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf rl
+lr
+lr
+valueOf rl
+485 (  842411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+lr
+lr
+valueOf rl
+486 (44842411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+lr
+lr
+valueOf rl
+487 (88842411) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+lr
+lr
+valueOf rl
+488 (22842411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+lr
+lr
+valueOf rl
+489 (44842411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+valueOf rl
+490 (  212411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf rl
+valueOf rl
+491 (44212411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf rl
+ll
+ll
+valueOf rl
+492 (88212411) [object Object]: { 0, 24, 0, 100} (100, 100)
+valueOf rl
+valueOf rl
+493 (22212411) [object Object]: { 100, 24, 0, 100} (100, 0)
+valueOf ll
+valueOf rl
+valueOf ll
+valueOf rl
+494 (44212411) [object Object]: { 44, 24, 0, 100} (100, 56)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+495 (  422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+496 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf lr
+valueOf rl
+ll
+ll
+valueOf lr
+valueOf rl
+497 (88422411) [object Object]: { 0, 24, 42, 100} (100, 100)
+valueOf lr
+valueOf rl
+valueOf lr
+valueOf rl
+498 (22422411) [object Object]: { 100, 24, 42, 100} (100, 0)
+valueOf ll
+valueOf lr
+valueOf rl
+valueOf ll
+valueOf lr
+valueOf rl
+499 (44422411) [object Object]: { 44, 24, 42, 100} (100, 56)
+valueOf rr
+valueOf rr
+500 (      22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+501 (44    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+502 (88    22) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+503 (22    22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+504 (44    22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+505 (  42  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf rr
+valueOf rr
+506 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+507 (8842  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf rr
+valueOf rr
+508 (2242  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+509 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+lr
+lr
+valueOf rr
+510 (  84  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+lr
+lr
+valueOf rr
+511 (4484  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+lr
+lr
+valueOf rr
+512 (8884  22) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+lr
+lr
+valueOf rr
+513 (2284  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+lr
+lr
+valueOf rr
+514 (4484  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+515 (  21  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+516 (4421  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+517 (8821  22) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+518 (2221  22) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+519 (4421  22) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+520 (  42  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+521 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+valueOf rr
+ll
+ll
+valueOf lr
+valueOf rr
+522 (8842  22) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+523 (2242  22) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rr
+valueOf ll
+valueOf lr
+valueOf rr
+524 (4442  22) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+valueOf rr
+525 (    2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+526 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+527 (88  2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+528 (22  2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+529 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+530 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf rr
+valueOf rr
+531 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+532 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf rr
+valueOf rr
+533 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+534 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rr
+lr
+lr
+valueOf rr
+535 (  842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+lr
+lr
+valueOf rr
+536 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+lr
+lr
+valueOf rr
+537 (88842422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+lr
+lr
+valueOf rr
+538 (22842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+lr
+lr
+valueOf rr
+539 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+540 (  212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+541 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+542 (88212422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+543 (22212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+544 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+545 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+546 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf lr
+valueOf rr
+ll
+ll
+valueOf lr
+valueOf rr
+547 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+548 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rr
+valueOf ll
+valueOf lr
+valueOf rr
+549 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rr
+rl
+rl
+valueOf rr
+550 (    4822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+rl
+rl
+valueOf rr
+551 (44  4822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+rl
+rl
+valueOf rr
+552 (88  4822) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+rl
+rl
+valueOf rr
+553 (22  4822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+rl
+rl
+valueOf rr
+554 (44  4822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+rl
+rl
+valueOf rr
+555 (  424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf rr
+rl
+rl
+valueOf rr
+556 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+ll
+ll
+rl
+rl
+valueOf rr
+557 (88424822) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf rr
+rl
+rl
+valueOf rr
+558 (22424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+rl
+rl
+valueOf rr
+559 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+lr
+lr
+rl
+rl
+valueOf rr
+560 (  844822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+lr
+lr
+rl
+rl
+valueOf rr
+561 (44844822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+lr
+lr
+rl
+rl
+valueOf rr
+562 (88844822) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+lr
+lr
+rl
+rl
+valueOf rr
+563 (22844822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+lr
+lr
+rl
+rl
+valueOf rr
+564 (44844822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+rl
+rl
+valueOf rr
+565 (  214822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+rl
+rl
+valueOf rr
+566 (44214822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+rl
+rl
+valueOf rr
+567 (88214822) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+rl
+rl
+valueOf rr
+568 (22214822) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+rl
+rl
+valueOf rr
+569 (44214822) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf lr
+rl
+rl
+valueOf rr
+570 (  424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf rr
+valueOf lr
+rl
+rl
+valueOf rr
+571 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+valueOf rr
+ll
+ll
+valueOf lr
+rl
+rl
+valueOf rr
+572 (88424822) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf rr
+valueOf lr
+rl
+rl
+valueOf rr
+573 (22424822) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rr
+valueOf ll
+valueOf lr
+rl
+rl
+valueOf rr
+574 (44424822) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+valueOf rr
+575 (    1222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+576 (44  1222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+577 (88  1222) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+578 (22  1222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+579 (44  1222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+580 (  421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf rr
+valueOf rr
+581 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+582 (88421222) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf rr
+valueOf rr
+583 (22421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+584 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+lr
+lr
+valueOf rr
+585 (  841222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+lr
+lr
+valueOf rr
+586 (44841222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+lr
+lr
+valueOf rr
+587 (88841222) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+lr
+lr
+valueOf rr
+588 (22841222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+lr
+lr
+valueOf rr
+589 (44841222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+valueOf rr
+590 (  211222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf rr
+valueOf rr
+591 (44211222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf rr
+ll
+ll
+valueOf rr
+592 (88211222) [object Object]: { 0, 0, 0, 22} (100, 100)
+valueOf rr
+valueOf rr
+593 (22211222) [object Object]: { 100, 0, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf ll
+valueOf rr
+594 (44211222) [object Object]: { 44, 0, 0, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+595 (  421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+596 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf lr
+valueOf rr
+ll
+ll
+valueOf lr
+valueOf rr
+597 (88421222) [object Object]: { 0, 0, 42, 22} (100, 100)
+valueOf lr
+valueOf rr
+valueOf lr
+valueOf rr
+598 (22421222) [object Object]: { 100, 0, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rr
+valueOf ll
+valueOf lr
+valueOf rr
+599 (44421222) [object Object]: { 44, 0, 42, 22} (100, 56)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+600 (    2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+601 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rl
+ll
+ll
+valueOf rl
+valueOf rr
+602 (88  2422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+603 (22  2422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf rl
+valueOf ll
+valueOf rl
+valueOf rr
+604 (44  2422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+605 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+606 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rr
+valueOf rl
+ll
+ll
+valueOf rl
+valueOf rr
+607 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+608 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf rl
+valueOf ll
+valueOf rl
+valueOf rr
+609 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf rr
+valueOf rl
+lr
+lr
+valueOf rl
+valueOf rr
+610 (  842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+valueOf rl
+lr
+lr
+valueOf rl
+valueOf rr
+611 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rl
+ll
+ll
+lr
+lr
+valueOf rl
+valueOf rr
+612 (88842422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+valueOf rl
+lr
+lr
+valueOf rl
+valueOf rr
+613 (22842422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf rl
+valueOf ll
+lr
+lr
+valueOf rl
+valueOf rr
+614 (44842422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+615 (  212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+616 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf rr
+valueOf rl
+ll
+ll
+valueOf rl
+valueOf rr
+617 (88212422) [object Object]: { 0, 24, 0, 22} (100, 100)
+valueOf rr
+valueOf rl
+valueOf rl
+valueOf rr
+618 (22212422) [object Object]: { 100, 24, 0, 22} (100, -78)
+valueOf ll
+valueOf rr
+valueOf rl
+valueOf ll
+valueOf rl
+valueOf rr
+619 (44212422) [object Object]: { 44, 24, 0, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf rl
+valueOf lr
+valueOf rl
+valueOf rr
+620 (  422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf lr
+valueOf rr
+valueOf rl
+valueOf lr
+valueOf rl
+valueOf rr
+621 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
+valueOf lr
+valueOf rr
+valueOf rl
+ll
+ll
+valueOf lr
+valueOf rl
+valueOf rr
+622 (88422422) [object Object]: { 0, 24, 42, 22} (100, 100)
+valueOf lr
+valueOf rr
+valueOf rl
+valueOf lr
+valueOf rl
+valueOf rr
+623 (22422422) [object Object]: { 100, 24, 42, 22} (100, -78)
+valueOf ll
+valueOf lr
+valueOf rr
+valueOf rl
+valueOf ll
+valueOf lr
+valueOf rl
+valueOf rr
+624 (44422422) [object Object]: { 44, 24, 42, 22} (100, 56)
diff --git a/test/trace/sound-setTransform-propertytypes.as b/test/trace/sound-setTransform-propertytypes.as
new file mode 100644
index 0000000..d6d760f
--- /dev/null
+++ b/test/trace/sound-setTransform-propertytypes.as
@@ -0,0 +1,45 @@
+// makeswf -v 7 -s 200x150 -r 1 -o sound-setTransform-propertytypes.swf sound-setTransform-propertytypes.as
+
+Sound.prototype.toString = function () {
+  var tf = this.getTransform ();
+  return tf + ": { " + tf.ll + ", " + tf.rl + ", " + tf.lr + ", " + tf.rr + "} (" + this.getVolume () + ", " + this.getPan () + ")";
+};
+
+N = 5;
+vals = { ll: 44, lr: 42, rl: 24, rr: 22 };
+function modify (o, name, num) {
+  //trace (num);
+  switch (num) {
+    case 0:
+      break;
+    case 1:
+      o[name] = vals[name];
+      break;
+    case 2:
+      o.addProperty (name, function () { trace (name); return vals[name] * 2; }, null);
+      break;
+    case 3:
+      o.__proto__[name] = vals[name] / 2;
+      break;
+    case 4:
+      o[name] = { valueOf: function () { trace ("valueOf " + name); return vals[name]; } };
+      break;
+    default:
+      trace ("ERROR");
+      break;
+  }
+};
+
+for (i = 0; i < N * N * N * N; i++) {
+  o = { __proto__: {}, toString: function () { return "(" + (o.ll ? o.ll : "  ") + (o.lr ? o.lr : "  ") + (o.rl ? o.rl : "  ") + (o.rr ? o.rr : "  ") + ")"; } };
+  modify (o, "ll", int (i) % N);
+  modify (o, "lr", int (i / N) % N);
+  modify (o, "rl", int (i / N / N) % N);
+  modify (o, "rr", int (i / N / N / N) % N);
+  createEmptyMovieClip ("a", 0);
+  x = new Sound (a);
+  x.setTransform (o);
+  trace (i + " " + o + " " + x);
+};
+
+getURL ("fscommand:quit", "");
commit b3f66bc20bf2be919a5848dc0830608d03bf6a32
Author: Benjamin Otte <otte at gnome.org>
Date:   Wed Jun 11 13:43:29 2008 +0200

    implement Sound.[gs]et(Volume|Pan|Transform)

diff --git a/swfdec/swfdec_as_strings.c b/swfdec/swfdec_as_strings.c
index e93063c..8be8570 100644
--- a/swfdec/swfdec_as_strings.c
+++ b/swfdec/swfdec_as_strings.c
@@ -507,5 +507,9 @@ const char swfdec_as_strings[] =
   SWFDEC_AS_CONSTANT_STRING ("onFullScreen")
   SWFDEC_AS_CONSTANT_STRING ("_customHeaders")
   SWFDEC_AS_CONSTANT_STRING ("Content-Type")
+  SWFDEC_AS_CONSTANT_STRING ("ll")
+  SWFDEC_AS_CONSTANT_STRING ("lr")
+  SWFDEC_AS_CONSTANT_STRING ("rl")
+  SWFDEC_AS_CONSTANT_STRING ("rr")
   /* add more here */
 ;
diff --git a/swfdec/swfdec_sound_object.c b/swfdec/swfdec_sound_object.c
index 7a17761..c5cb8a1 100644
--- a/swfdec/swfdec_sound_object.c
+++ b/swfdec/swfdec_sound_object.c
@@ -1,5 +1,5 @@
 /* Swfdec
- * Copyright (C) 2007 Benjamin Otte <otte at gnome.org>
+ * Copyright (C) 2007-2008 Benjamin Otte <otte at gnome.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -89,12 +89,32 @@ swfdec_sound_object_get_sound (SwfdecSoundObject *sound, const char *name)
 
 /*** AS CODE ***/
 
+static SwfdecSoundMatrix *
+swfdec_sound_object_get_matrix (SwfdecSoundObject *sound)
+{
+  if (sound->global) {
+    return &SWFDEC_PLAYER (SWFDEC_AS_OBJECT (sound)->context)->priv->sound_matrix;
+  } else if (SWFDEC_IS_ACTOR (sound->target)) {
+    return &SWFDEC_ACTOR (sound->target)->sound_matrix;
+  }
+  return NULL;
+}
+
 SWFDEC_AS_NATIVE (500, 0, swfdec_sound_object_getPan)
 void
 swfdec_sound_object_getPan (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
-  SWFDEC_STUB ("Sound.getPan");
+  SwfdecSoundObject *sound;
+  const SwfdecSoundMatrix *matrix;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_SOUND_OBJECT, &sound, "");
+
+  matrix = swfdec_sound_object_get_matrix (sound);
+  if (matrix == NULL)
+    return;
+
+  SWFDEC_AS_VALUE_SET_INT (ret, swfdec_sound_matrix_get_pan (matrix));
 }
 
 SWFDEC_AS_NATIVE (500, 1, swfdec_sound_object_getTransform)
@@ -102,7 +122,31 @@ void
 swfdec_sound_object_getTransform (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
-  SWFDEC_STUB ("Sound.getTransform");
+  SwfdecSoundObject *sound;
+  const SwfdecSoundMatrix *matrix;
+  SwfdecAsObject *obj;
+  SwfdecAsValue val;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_SOUND_OBJECT, &sound, "");
+
+  matrix = swfdec_sound_object_get_matrix (sound);
+  if (matrix == NULL)
+    return;
+
+  obj = swfdec_as_object_new (cx);
+  if (obj == NULL)
+    return;
+
+  SWFDEC_AS_VALUE_SET_INT (&val, matrix->ll);
+  swfdec_as_object_set_variable (obj, SWFDEC_AS_STR_ll, &val);
+  SWFDEC_AS_VALUE_SET_INT (&val, matrix->lr);
+  swfdec_as_object_set_variable (obj, SWFDEC_AS_STR_lr, &val);
+  SWFDEC_AS_VALUE_SET_INT (&val, matrix->rl);
+  swfdec_as_object_set_variable (obj, SWFDEC_AS_STR_rl, &val);
+  SWFDEC_AS_VALUE_SET_INT (&val, matrix->rr);
+  swfdec_as_object_set_variable (obj, SWFDEC_AS_STR_rr, &val);
+
+  SWFDEC_AS_VALUE_SET_OBJECT (ret, obj);
 }
 
 SWFDEC_AS_NATIVE (500, 2, swfdec_sound_object_getVolume)
@@ -110,7 +154,16 @@ void
 swfdec_sound_object_getVolume (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
-  SWFDEC_STUB ("Sound.getVolume");
+  SwfdecSoundObject *sound;
+  const SwfdecSoundMatrix *matrix;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_SOUND_OBJECT, &sound, "");
+
+  matrix = swfdec_sound_object_get_matrix (sound);
+  if (matrix == NULL)
+    return;
+
+  SWFDEC_AS_VALUE_SET_INT (ret, matrix->volume);
 }
 
 SWFDEC_AS_NATIVE (500, 3, swfdec_sound_object_setPan)
@@ -118,7 +171,17 @@ void
 swfdec_sound_object_setPan (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
-  SWFDEC_STUB ("Sound.setPan");
+  SwfdecSoundObject *sound;
+  SwfdecSoundMatrix *matrix;
+  int pan;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_SOUND_OBJECT, &sound, "i", &pan);
+
+  matrix = swfdec_sound_object_get_matrix (sound);
+  if (matrix == NULL)
+    return;
+
+  swfdec_sound_matrix_set_pan (matrix, pan);
 }
 
 SWFDEC_AS_NATIVE (500, 4, swfdec_sound_object_setTransform)
@@ -126,7 +189,45 @@ void
 swfdec_sound_object_setTransform (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
-  SWFDEC_STUB ("Sound.setTransform");
+  SwfdecSoundObject *sound;
+  SwfdecSoundMatrix *matrix;
+  SwfdecAsObject *trans;
+  SwfdecAsValue *val;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_SOUND_OBJECT, &sound, "o", &trans);
+
+  matrix = swfdec_sound_object_get_matrix (sound);
+  if (matrix == NULL)
+    return;
+
+  /* ll */
+  val = swfdec_as_object_peek_variable (trans, SWFDEC_AS_STR_ll);
+  if (val) {
+    matrix->ll = swfdec_as_value_to_integer (cx, val);
+  } else if (swfdec_as_object_has_variable (trans, SWFDEC_AS_STR_ll) == trans) {
+    matrix->ll = 0;
+  }
+  /* lr */
+  val = swfdec_as_object_peek_variable (trans, SWFDEC_AS_STR_lr);
+  if (val) {
+    matrix->lr = swfdec_as_value_to_integer (cx, val);
+  } else if (swfdec_as_object_has_variable (trans, SWFDEC_AS_STR_lr) == trans) {
+    matrix->lr = 0;
+  }
+  /* rr */
+  val = swfdec_as_object_peek_variable (trans, SWFDEC_AS_STR_rr);
+  if (val) {
+    matrix->rr = swfdec_as_value_to_integer (cx, val);
+  } else if (swfdec_as_object_has_variable (trans, SWFDEC_AS_STR_rr) == trans) {
+    matrix->rr = 0;
+  }
+  /* rl */
+  val = swfdec_as_object_peek_variable (trans, SWFDEC_AS_STR_rl);
+  if (val) {
+    matrix->rl = swfdec_as_value_to_integer (cx, val);
+  } else if (swfdec_as_object_has_variable (trans, SWFDEC_AS_STR_rl) == trans) {
+    matrix->rl = 0;
+  }
 }
 
 SWFDEC_AS_NATIVE (500, 5, swfdec_sound_object_setVolume)
@@ -134,7 +235,17 @@ void
 swfdec_sound_object_setVolume (SwfdecAsContext *cx, SwfdecAsObject *object,
     guint argc, SwfdecAsValue *argv, SwfdecAsValue *ret)
 {
-  SWFDEC_STUB ("Sound.setVolume");
+  SwfdecSoundObject *sound;
+  SwfdecSoundMatrix *matrix;
+  int volume;
+
+  SWFDEC_AS_CHECK (SWFDEC_TYPE_SOUND_OBJECT, &sound, "i", &volume);
+
+  matrix = swfdec_sound_object_get_matrix (sound);
+  if (matrix == NULL)
+    return;
+
+  matrix->volume = volume;
 }
 
 SWFDEC_AS_NATIVE (500, 9, swfdec_sound_object_getDuration)
diff --git a/swfdec/swfdec_sound_object.h b/swfdec/swfdec_sound_object.h
index c36d12e..ec057b6 100644
--- a/swfdec/swfdec_sound_object.h
+++ b/swfdec/swfdec_sound_object.h
@@ -1,5 +1,5 @@
 /* Swfdec
- * Copyright (C) 2007 Benjamin Otte <otte at gnome.org>
+ * Copyright (C) 2007-2008 Benjamin Otte <otte at gnome.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
commit 69ea7e7fefdb37664adf06ce8b6eb65fbc341092
Author: Benjamin Otte <otte at gnome.org>
Date:   Wed Jun 11 13:43:00 2008 +0200

    make swfdec_as_object_has_variable() return which object has the variable
    
    This will be needed by the sound object stuff

diff --git a/swfdec/swfdec_as_object.c b/swfdec/swfdec_as_object.c
index 3bf10cd..df90ccd 100644
--- a/swfdec/swfdec_as_object.c
+++ b/swfdec/swfdec_as_object.c
@@ -978,9 +978,10 @@ swfdec_as_object_get_variable_and_flags (SwfdecAsObject *object,
  * function does not check variables that are available via an overwritten get 
  * function of the object's class.
  *
- * Returns: %TRUE if the @object contains the given @variable
+ * Returns: the object in the prototype chain that contains @variable or %NULL
+ *          if the @object does not contain this variable.
  **/
-gboolean
+SwfdecAsObject *
 swfdec_as_object_has_variable (SwfdecAsObject *object, const char *variable)
 {
   guint i;
@@ -992,11 +993,11 @@ swfdec_as_object_has_variable (SwfdecAsObject *object, const char *variable)
     var = swfdec_as_object_hash_lookup (object, variable);
     if (var) {
       /* FIXME: propflags? */
-      return TRUE;
+      return object;
     }
     object = swfdec_as_object_get_prototype_internal (object);
   }
-  return FALSE;
+  return NULL;
 }
 
 /**
diff --git a/swfdec/swfdec_as_object.h b/swfdec/swfdec_as_object.h
index d8fcf32..cd84e5d 100644
--- a/swfdec/swfdec_as_object.h
+++ b/swfdec/swfdec_as_object.h
@@ -144,7 +144,7 @@ gboolean	swfdec_as_object_get_variable_and_flags
 						 SwfdecAsValue *	value,
 						 guint *		flags,
 						 SwfdecAsObject **	pobject);
-gboolean	swfdec_as_object_has_variable	(SwfdecAsObject *	object,
+SwfdecAsObject *swfdec_as_object_has_variable	(SwfdecAsObject *	object,
 						 const char *		variable);
 SwfdecAsDeleteReturn
 		swfdec_as_object_delete_variable(SwfdecAsObject *	object,
commit ac3801ca75983c16a4f1dc944a00f985ab009a10
Author: Benjamin Otte <otte at gnome.org>
Date:   Tue Jun 10 15:20:06 2008 +0200

    sound matrices work on TextFields, too

diff --git a/swfdec/swfdec_actor.c b/swfdec/swfdec_actor.c
index 767c862..ce0a921 100644
--- a/swfdec/swfdec_actor.c
+++ b/swfdec/swfdec_actor.c
@@ -158,6 +158,7 @@ swfdec_actor_class_init (SwfdecActorClass *klass)
 static void
 swfdec_actor_init (SwfdecActor *actor)
 {
+  swfdec_sound_matrix_init_identity (&actor->sound_matrix);
 }
 
 static void
diff --git a/swfdec/swfdec_actor.h b/swfdec/swfdec_actor.h
index c299769..6528322 100644
--- a/swfdec/swfdec_actor.h
+++ b/swfdec/swfdec_actor.h
@@ -21,6 +21,7 @@
 #define _SWFDEC_ACTOR_H_
 
 #include <swfdec/swfdec_movie.h>
+#include <swfdec/swfdec_sound_matrix.h>
 
 G_BEGIN_DECLS
 
@@ -44,6 +45,9 @@ struct _SwfdecActor
 
   SwfdecFlashBool	focusrect;		/* if we should draw a focus rectangle or not */
   guint			needs_matrix;		/* number of movies contained that need matrix updates */
+
+  /* sound */
+  SwfdecSoundMatrix	sound_matrix;		/* movie's sound matrix */
 };
 
 struct _SwfdecActorClass
diff --git a/swfdec/swfdec_audio.c b/swfdec/swfdec_audio.c
index 43da325..9848b92 100644
--- a/swfdec/swfdec_audio.c
+++ b/swfdec/swfdec_audio.c
@@ -25,9 +25,9 @@
 
 #include <string.h>
 #include "swfdec_audio_internal.h"
+#include "swfdec_actor.h"
 #include "swfdec_debug.h"
 #include "swfdec_player_internal.h"
-#include "swfdec_sprite_movie.h"
 
 /**
  * SECTION:SwfdecAudio
@@ -63,7 +63,7 @@ swfdec_audio_dispose (GObject *object)
 {
   SwfdecAudio *audio = SWFDEC_AUDIO (object);
 
-  g_assert (audio->movie == NULL);
+  g_assert (audio->actor == NULL);
   g_assert (audio->player == NULL);
 
   G_OBJECT_CLASS (swfdec_audio_parent_class)->dispose (object);
@@ -117,7 +117,7 @@ swfdec_audio_remove (SwfdecAudio *audio)
   if (audio->player != NULL) {
     SwfdecPlayerPrivate *priv = audio->player->priv;
     SWFDEC_INFO ("removing %s %p", G_OBJECT_TYPE_NAME (audio), audio);
-    swfdec_audio_set_movie (audio, NULL);
+    swfdec_audio_set_actor (audio, NULL);
     priv->audio = g_list_remove (priv->audio, audio);
     if (audio->added) {
       g_signal_emit_by_name (audio->player, "audio-removed", audio);
@@ -153,19 +153,19 @@ swfdec_audio_iterate (SwfdecAudio *audio, guint n_samples)
 }
 
 void
-swfdec_audio_set_movie (SwfdecAudio *audio, SwfdecSpriteMovie *movie)
+swfdec_audio_set_actor (SwfdecAudio *audio, SwfdecActor *actor)
 {
   g_return_if_fail (SWFDEC_IS_AUDIO (audio));
   g_return_if_fail (audio->player != NULL);
-  g_return_if_fail (movie == NULL || SWFDEC_IS_SPRITE_MOVIE (movie));
+  g_return_if_fail (actor == NULL || SWFDEC_IS_ACTOR (actor));
 
-  if (movie) {
-    g_object_ref (movie);
+  if (actor) {
+    g_object_ref (actor);
   }
-  if (audio->movie) {
-    g_object_unref (audio->movie);
+  if (audio->actor) {
+    g_object_unref (audio->actor);
   }
-  audio->movie = movie;
+  audio->actor = actor;
 }
 
 /**
@@ -198,10 +198,10 @@ swfdec_audio_render (SwfdecAudio *audio, gint16 *dest,
 
   klass = SWFDEC_AUDIO_GET_CLASS (audio);
   rendered = klass->render (audio, dest, start_offset, n_samples);
-  if (audio->movie) {
+  if (audio->actor) {
     SwfdecSoundMatrix sound;
 
-    swfdec_sound_matrix_multiply (&sound, &audio->movie->sound_matrix,
+    swfdec_sound_matrix_multiply (&sound, &audio->actor->sound_matrix,
 	&audio->player->priv->sound_matrix);
     swfdec_sound_matrix_apply (&sound, dest, rendered);
   } else if (audio->player) {
diff --git a/swfdec/swfdec_audio_internal.h b/swfdec/swfdec_audio_internal.h
index f7d368b..e7deff8 100644
--- a/swfdec/swfdec_audio_internal.h
+++ b/swfdec/swfdec_audio_internal.h
@@ -39,7 +39,7 @@ struct _SwfdecAudio {
 
   SwfdecPlayer *	player;		/* the player that plays us */
   gboolean		added;		/* set to TRUE after the added signal has been emitted */
-  SwfdecSpriteMovie *	movie;		/* NULL or movieclip that controls our volume */
+  SwfdecActor *		actor;		/* NULL or movieclip that controls our volume */
 };
 
 struct _SwfdecAudioClass {
@@ -56,8 +56,8 @@ struct _SwfdecAudioClass {
 void			swfdec_audio_add		(SwfdecAudio *		audio,
 							 SwfdecPlayer *		player);
 void			swfdec_audio_remove		(SwfdecAudio *		audio);
-void			swfdec_audio_set_movie		(SwfdecAudio *		audio,
-							 SwfdecSpriteMovie *	movie);
+void			swfdec_audio_set_actor		(SwfdecAudio *		audio,
+							 SwfdecActor *		actor);
 
 guint			swfdec_audio_iterate		(SwfdecAudio *		audio,
 							 guint			n_samples);
diff --git a/swfdec/swfdec_sprite_movie.c b/swfdec/swfdec_sprite_movie.c
index 9c44e09..b74d61f 100644
--- a/swfdec/swfdec_sprite_movie.c
+++ b/swfdec/swfdec_sprite_movie.c
@@ -793,8 +793,6 @@ swfdec_sprite_movie_init (SwfdecSpriteMovie * movie)
 {
   movie->playing = TRUE;
   movie->frame = (guint) -1;
-
-  swfdec_sound_matrix_init_identity (&movie->sound_matrix);
 }
 
 /* cute little hack */
diff --git a/swfdec/swfdec_sprite_movie.h b/swfdec/swfdec_sprite_movie.h
index 45be4eb..6f5a043 100644
--- a/swfdec/swfdec_sprite_movie.h
+++ b/swfdec/swfdec_sprite_movie.h
@@ -22,7 +22,6 @@
 
 #include <swfdec/swfdec_actor.h>
 #include <swfdec/swfdec_audio.h>
-#include <swfdec/swfdec_sound_matrix.h>
 #include <swfdec/swfdec_types.h>
 
 G_BEGIN_DECLS
@@ -53,7 +52,6 @@ struct _SwfdecSpriteMovie
   /* audio stream handling */
   SwfdecAudio *		sound_stream;	/* stream that currently plays */
   gboolean		sound_active;	/* if the sound stream had a SoundStreamBlock last frame */
-  SwfdecSoundMatrix	sound_matrix;	/* movie's sound matrix */
 };
 
 struct _SwfdecSpriteMovieClass
commit 22917e1d0789c06920c6af4adf75cd3edef9ec9e
Author: Benjamin Otte <otte at gnome.org>
Date:   Tue Jun 10 15:01:50 2008 +0200

    add initial infrastructure for supporting volume
    
    It doesn't do anything useful yet

diff --git a/swfdec/Makefile.am b/swfdec/Makefile.am
index 6c8f5c1..8b78fdf 100644
--- a/swfdec/Makefile.am
+++ b/swfdec/Makefile.am
@@ -127,6 +127,7 @@ libswfdec_source_files = \
 	swfdec_shared_object.c \
 	swfdec_socket.c \
 	swfdec_sound.c \
+	swfdec_sound_matrix.c \
 	swfdec_sound_object.c \
 	swfdec_sprite.c \
 	swfdec_sprite_movie.c \
@@ -289,6 +290,7 @@ noinst_HEADERS = \
 	swfdec_shape.h \
 	swfdec_shape_parser.h \
 	swfdec_sound.h \
+	swfdec_sound_matrix.h \
 	swfdec_sound_object.h \
 	swfdec_sprite.h \
 	swfdec_sprite_movie.h \
diff --git a/swfdec/swfdec_audio.c b/swfdec/swfdec_audio.c
index 238aa64..43da325 100644
--- a/swfdec/swfdec_audio.c
+++ b/swfdec/swfdec_audio.c
@@ -1,7 +1,7 @@
 /* Swfdec
  * Copyright (C) 2003-2006 David Schleef <ds at schleef.org>
  *		 2005-2006 Eric Anholt <eric at anholt.net>
- *		      2006 Benjamin Otte <otte at gnome.org>
+ *		 2006-2008 Benjamin Otte <otte at gnome.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -27,6 +27,7 @@
 #include "swfdec_audio_internal.h"
 #include "swfdec_debug.h"
 #include "swfdec_player_internal.h"
+#include "swfdec_sprite_movie.h"
 
 /**
  * SECTION:SwfdecAudio
@@ -62,6 +63,7 @@ swfdec_audio_dispose (GObject *object)
 {
   SwfdecAudio *audio = SWFDEC_AUDIO (object);
 
+  g_assert (audio->movie == NULL);
   g_assert (audio->player == NULL);
 
   G_OBJECT_CLASS (swfdec_audio_parent_class)->dispose (object);
@@ -115,6 +117,7 @@ swfdec_audio_remove (SwfdecAudio *audio)
   if (audio->player != NULL) {
     SwfdecPlayerPrivate *priv = audio->player->priv;
     SWFDEC_INFO ("removing %s %p", G_OBJECT_TYPE_NAME (audio), audio);
+    swfdec_audio_set_movie (audio, NULL);
     priv->audio = g_list_remove (priv->audio, audio);
     if (audio->added) {
       g_signal_emit_by_name (audio->player, "audio-removed", audio);
@@ -149,6 +152,22 @@ swfdec_audio_iterate (SwfdecAudio *audio, guint n_samples)
   return klass->iterate (audio, n_samples);
 }
 
+void
+swfdec_audio_set_movie (SwfdecAudio *audio, SwfdecSpriteMovie *movie)
+{
+  g_return_if_fail (SWFDEC_IS_AUDIO (audio));
+  g_return_if_fail (audio->player != NULL);
+  g_return_if_fail (movie == NULL || SWFDEC_IS_SPRITE_MOVIE (movie));
+
+  if (movie) {
+    g_object_ref (movie);
+  }
+  if (audio->movie) {
+    g_object_unref (audio->movie);
+  }
+  audio->movie = movie;
+}
+
 /**
  * swfdec_audio_render:
  * @audio: a #SwfdecAudio
@@ -171,13 +190,25 @@ swfdec_audio_render (SwfdecAudio *audio, gint16 *dest,
     guint start_offset, guint n_samples)
 {
   SwfdecAudioClass *klass;
+  guint rendered;
 
   g_return_val_if_fail (SWFDEC_IS_AUDIO (audio), 0);
   g_return_val_if_fail (dest != NULL, 0);
   g_return_val_if_fail (n_samples > 0, 0);
 
   klass = SWFDEC_AUDIO_GET_CLASS (audio);
-  return klass->render (audio, dest, start_offset, n_samples);
+  rendered = klass->render (audio, dest, start_offset, n_samples);
+  if (audio->movie) {
+    SwfdecSoundMatrix sound;
+
+    swfdec_sound_matrix_multiply (&sound, &audio->movie->sound_matrix,
+	&audio->player->priv->sound_matrix);
+    swfdec_sound_matrix_apply (&sound, dest, rendered);
+  } else if (audio->player) {
+    swfdec_sound_matrix_apply (&audio->player->priv->sound_matrix, dest, rendered);
+  }
+
+  return rendered;
 }
 
 /*** SWFDEC_AUDIO_FORMAT ***/
diff --git a/swfdec/swfdec_audio_internal.h b/swfdec/swfdec_audio_internal.h
index 1737437..f7d368b 100644
--- a/swfdec/swfdec_audio_internal.h
+++ b/swfdec/swfdec_audio_internal.h
@@ -1,7 +1,7 @@
 /* Swfdec
  * Copyright (C) 2003-2006 David Schleef <ds at schleef.org>
  *		 2005-2006 Eric Anholt <eric at anholt.net>
- *		 2006-2007 Benjamin Otte <otte at gnome.org>
+ *		 2006-2008 Benjamin Otte <otte at gnome.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -39,6 +39,7 @@ struct _SwfdecAudio {
 
   SwfdecPlayer *	player;		/* the player that plays us */
   gboolean		added;		/* set to TRUE after the added signal has been emitted */
+  SwfdecSpriteMovie *	movie;		/* NULL or movieclip that controls our volume */
 };
 
 struct _SwfdecAudioClass {
@@ -55,6 +56,8 @@ struct _SwfdecAudioClass {
 void			swfdec_audio_add		(SwfdecAudio *		audio,
 							 SwfdecPlayer *		player);
 void			swfdec_audio_remove		(SwfdecAudio *		audio);
+void			swfdec_audio_set_movie		(SwfdecAudio *		audio,
+							 SwfdecSpriteMovie *	movie);
 
 guint			swfdec_audio_iterate		(SwfdecAudio *		audio,
 							 guint			n_samples);
diff --git a/swfdec/swfdec_player.c b/swfdec/swfdec_player.c
index 790ad6c..87763e0 100644
--- a/swfdec/swfdec_player.c
+++ b/swfdec/swfdec_player.c
@@ -2351,6 +2351,8 @@ swfdec_player_init (SwfdecPlayer *player)
   cairo_matrix_init_scale (&priv->stage_to_global, 
       SWFDEC_TWIPS_SCALE_FACTOR, SWFDEC_TWIPS_SCALE_FACTOR);
   priv->global_to_stage = priv->stage_to_global;
+  cairo_matrix_invert (&priv->global_to_stage);
+  swfdec_sound_matrix_init_identity (&priv->sound_matrix);
 }
 
 void
diff --git a/swfdec/swfdec_player_internal.h b/swfdec/swfdec_player_internal.h
index 8391998..70bdbb8 100644
--- a/swfdec/swfdec_player_internal.h
+++ b/swfdec/swfdec_player_internal.h
@@ -30,6 +30,7 @@
 #include <swfdec/swfdec_rect.h>
 #include <swfdec/swfdec_ringbuffer.h>
 #include <swfdec/swfdec_socket.h>
+#include <swfdec/swfdec_sound_matrix.h>
 #include <swfdec/swfdec_system.h>
 
 G_BEGIN_DECLS
@@ -137,6 +138,7 @@ struct _SwfdecPlayerPrivate
   /* audio */
   GList *		audio;		 	/* list of playing SwfdecAudio */
   GSList *		missing_plugins;	/* list of GStreamer detail strings for missing plugins */
+  SwfdecSoundMatrix	sound_matrix;		/* global sound transform - FIXME: is this per-sandbox or global? */
 
   /* events and advancing */
   SwfdecTick		time;			/* current time */
diff --git a/swfdec/swfdec_sound_matrix.c b/swfdec/swfdec_sound_matrix.c
new file mode 100644
index 0000000..40c76c9
--- /dev/null
+++ b/swfdec/swfdec_sound_matrix.c
@@ -0,0 +1,111 @@
+/* Swfdec
+ * Copyright (C) 2008 Benjamin Otte <otte at gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, 
+ * Boston, MA  02110-1301  USA
+ */
+
+#ifndef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <swfdec_sound_matrix.h>
+#include <liboil/liboil.h>
+#include <swfdec_debug.h>
+
+void
+swfdec_sound_matrix_init_identity (SwfdecSoundMatrix *sound)
+{
+  sound->ll = sound->rr = sound->volume = 100;
+  sound->lr = sound->rl = 0;
+}
+
+int
+swfdec_sound_matrix_get_pan (const SwfdecSoundMatrix *sound)
+{
+  g_return_val_if_fail (sound != NULL, 0);
+
+  if (sound->ll == 100)
+    return ABS (sound->rr) - 100;
+  else
+    return 100 - ABS (sound->ll);
+}
+
+void
+swfdec_sound_matrix_set_pan (SwfdecSoundMatrix *sound, int pan)
+{
+  g_return_if_fail (sound != NULL);
+
+  if (pan > 0) {
+    sound->rr = 100;
+    sound->ll = 100 + pan;
+  } else {
+    sound->ll = 100;
+    sound->rr = 100 - pan;
+  }
+}
+
+gboolean
+swfdec_sound_matrix_is_identity (const SwfdecSoundMatrix *sound)
+{
+  g_return_val_if_fail (sound != NULL, FALSE);
+
+  return sound->ll == 100 && sound->rr == 100 &&
+    sound->lr == 0 && sound->rr == 0 && sound->volume == 100;
+}
+
+void
+swfdec_sound_matrix_apply (const SwfdecSoundMatrix *sound,
+    gint16 *dest, guint n_samples)
+{
+  guint i;
+  int left, right;
+
+  if (swfdec_sound_matrix_is_identity (sound))
+    return;
+  for (i = 0; i < n_samples; i++) {
+    left = (sound->ll * dest[0] + sound->lr * dest[1]) / 100;
+    left *= sound->volume / 100;
+    right = (sound->rl * dest[0] + sound->rr * dest[1]) / 100;
+    right *= sound->volume / 100;
+    dest[0] = left;
+    dest[1] = right;
+    dest += 2;
+  }
+}
+
+
+void
+swfdec_sound_matrix_multiply (SwfdecSoundMatrix *dest, 
+    const SwfdecSoundMatrix *a, const SwfdecSoundMatrix *b)
+{
+  int ll, lr, rl, rr;
+
+  g_return_if_fail (dest != NULL);
+  g_return_if_fail (a != NULL);
+  g_return_if_fail (b != NULL);
+
+  ll = (b->ll * a->ll + b->lr * a->rl) / 100;
+  rl = (b->rl * a->ll + b->rr * a->rl) / 100;
+  lr = (b->ll * a->lr + b->lr * a->rr) / 100;
+  rr = (b->rl * a->lr + b->rr * a->rr) / 100;
+
+  dest->volume = b->volume * a->volume / 100;
+  dest->ll = ll;
+  dest->rl = rl;
+  dest->lr = lr;
+  dest->rr = rr;
+}
+
diff --git a/swfdec/swfdec_sound_matrix.h b/swfdec/swfdec_sound_matrix.h
new file mode 100644
index 0000000..0f3327c
--- /dev/null
+++ b/swfdec/swfdec_sound_matrix.h
@@ -0,0 +1,54 @@
+/* Swfdec
+ * Copyright (C) 2008 Benjamin Otte <otte at gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, 
+ * Boston, MA  02110-1301  USA
+ */
+
+#ifndef __SWFDEC_SOUND_MATRIX_H__
+#define __SWFDEC_SOUND_MATRIX_H__
+
+#include <glib.h>
+
+typedef struct _SwfdecSoundMatrix SwfdecSoundMatrix;
+
+struct _SwfdecSoundMatrix
+{
+  int			ll;		/* percentage of left channel */
+  int			rl;		/* "percentage" of left channel on right speaker */
+  int			lr;		/* "percentage" of right channel on left speaker */
+  int			rr;		/* percentage of right channel */
+  int			volume;		/* don't ask me why volume is seperate */
+};
+
+void		swfdec_sound_matrix_init_identity	(SwfdecSoundMatrix *		sound);
+
+gboolean	swfdec_sound_matrix_is_identity		(const SwfdecSoundMatrix *	sound);
+
+int		swfdec_sound_matrix_get_pan		(const SwfdecSoundMatrix *	sound);
+void		swfdec_sound_matrix_set_pan		(SwfdecSoundMatrix *		sound,
+							 int				pan);
+
+void		swfdec_sound_matrix_apply		(const SwfdecSoundMatrix *	sound,
+							 gint16 *			dest,
+							 guint				n_samples);
+
+void		swfdec_sound_matrix_multiply		(SwfdecSoundMatrix *		dest,
+							 const SwfdecSoundMatrix *	a,
+							 const SwfdecSoundMatrix *	b);
+
+
+#endif
+
diff --git a/swfdec/swfdec_sprite_movie.c b/swfdec/swfdec_sprite_movie.c
index 90ba1dc..9c44e09 100644
--- a/swfdec/swfdec_sprite_movie.c
+++ b/swfdec/swfdec_sprite_movie.c
@@ -1,5 +1,5 @@
 /* Swfdec
- * Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
+ * Copyright (C) 2006-2008 Benjamin Otte <otte at gnome.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -793,6 +793,8 @@ swfdec_sprite_movie_init (SwfdecSpriteMovie * movie)
 {
   movie->playing = TRUE;
   movie->frame = (guint) -1;
+
+  swfdec_sound_matrix_init_identity (&movie->sound_matrix);
 }
 
 /* cute little hack */
diff --git a/swfdec/swfdec_sprite_movie.h b/swfdec/swfdec_sprite_movie.h
index 4ab6145..45be4eb 100644
--- a/swfdec/swfdec_sprite_movie.h
+++ b/swfdec/swfdec_sprite_movie.h
@@ -1,5 +1,5 @@
 /* Swfdec
- * Copyright (C) 2006 Benjamin Otte <otte at gnome.org>
+ * Copyright (C) 2006-2008 Benjamin Otte <otte at gnome.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -22,6 +22,7 @@
 
 #include <swfdec/swfdec_actor.h>
 #include <swfdec/swfdec_audio.h>
+#include <swfdec/swfdec_sound_matrix.h>
 #include <swfdec/swfdec_types.h>
 
 G_BEGIN_DECLS
@@ -52,6 +53,7 @@ struct _SwfdecSpriteMovie
   /* audio stream handling */
   SwfdecAudio *		sound_stream;	/* stream that currently plays */
   gboolean		sound_active;	/* if the sound stream had a SoundStreamBlock last frame */
+  SwfdecSoundMatrix	sound_matrix;	/* movie's sound matrix */
 };
 
 struct _SwfdecSpriteMovieClass
commit def43d24cfb78b6b37fe56268ba32e03bffb1667
Author: Benjamin Otte <otte at gnome.org>
Date:   Tue Jun 10 14:43:38 2008 +0200

    reindent

diff --git a/swfdec/swfdec_player.h b/swfdec/swfdec_player.h
index 35f9b4c..08b04ef 100644
--- a/swfdec/swfdec_player.h
+++ b/swfdec/swfdec_player.h
@@ -103,18 +103,18 @@ GType		swfdec_player_get_type		(void);
 
 SwfdecPlayer *	swfdec_player_new		(SwfdecAsDebugger *	debugger);
 
-gboolean	swfdec_player_is_initialized	(SwfdecPlayer *	player);
-glong		swfdec_player_get_next_event  	(SwfdecPlayer *	player);
-double		swfdec_player_get_rate		(SwfdecPlayer *	player);
-void		swfdec_player_get_default_size	(SwfdecPlayer *	player,
-						 guint *	width,
-						 guint *	height);
-void		swfdec_player_get_size		(SwfdecPlayer *	player,
-						 int *		width,
-						 int *		height);
-void		swfdec_player_set_size		(SwfdecPlayer *	player,
-						 int		width,
-						 int		height);
+gboolean	swfdec_player_is_initialized	(SwfdecPlayer *		player);
+glong		swfdec_player_get_next_event  	(SwfdecPlayer *		player);
+double		swfdec_player_get_rate		(SwfdecPlayer *		player);
+void		swfdec_player_get_default_size	(SwfdecPlayer *		player,
+						 guint *		width,
+						 guint *		height);
+void		swfdec_player_get_size		(SwfdecPlayer *		player,
+						 int *			width,
+						 int *			height);
+void		swfdec_player_set_size		(SwfdecPlayer *		player,
+						 int			width,
+						 int			height);
 guint		swfdec_player_get_background_color
 						(SwfdecPlayer *		player);
 SwfdecScaleMode	swfdec_player_get_scale_mode	(SwfdecPlayer *		player);
@@ -170,27 +170,27 @@ void		swfdec_player_render_with_renderer (SwfdecPlayer *	player,
 						 double			y,
 						 double			width,
 						 double			height);
-gulong		swfdec_player_advance		(SwfdecPlayer *	player,
-						 gulong		msecs);
-gboolean	swfdec_player_mouse_move	(SwfdecPlayer *	player, 
-						 double		x,
-						 double		y);
-gboolean	swfdec_player_mouse_press	(SwfdecPlayer *	player, 
-						 double		x,
-						 double		y,
-						 guint		button);
-gboolean	swfdec_player_mouse_release	(SwfdecPlayer *	player, 
-						 double		x,
-						 double		y,
-						 guint		button);
-gboolean	swfdec_player_key_press		(SwfdecPlayer *	player,
-						 guint		keycode,
-						 guint		character);
-gboolean	swfdec_player_key_release	(SwfdecPlayer *	player,
-						 guint		keycode,
-						 guint		character);
+gulong		swfdec_player_advance		(SwfdecPlayer *		player,
+						 gulong			msecs);
+gboolean	swfdec_player_mouse_move	(SwfdecPlayer *		player, 
+						 double			x,
+						 double			y);
+gboolean	swfdec_player_mouse_press	(SwfdecPlayer *		player, 
+						 double			x,
+						 double			y,
+						 guint			button);
+gboolean	swfdec_player_mouse_release	(SwfdecPlayer *		player, 
+						 double			x,
+						 double			y,
+						 guint			button);
+gboolean	swfdec_player_key_press		(SwfdecPlayer *		player,
+						 guint			keycode,
+						 guint			character);
+gboolean	swfdec_player_key_release	(SwfdecPlayer *		player,
+						 guint			keycode,
+						 guint			character);
 /* audio - see swfdec_audio.c */
-const GList *	swfdec_player_get_audio		(SwfdecPlayer *	player);
+const GList *	swfdec_player_get_audio		(SwfdecPlayer *		player);
 
 G_END_DECLS
 #endif
commit 4af79874951ef4900746050812a36d8b666a292e
Author: Benjamin Otte <otte at gnome.org>
Date:   Tue Jun 10 14:42:27 2008 +0200

    fix indentation

diff --git a/swfdec/swfdec_audio_internal.h b/swfdec/swfdec_audio_internal.h
index a69df75..1737437 100644
--- a/swfdec/swfdec_audio_internal.h
+++ b/swfdec/swfdec_audio_internal.h
@@ -44,20 +44,20 @@ struct _SwfdecAudio {
 struct _SwfdecAudioClass {
   GObjectClass		object_class;
 
-  guint			(* iterate)	  		(SwfdecAudio *	audio,
-							 guint		n_samples);
-  guint			(* render)			(SwfdecAudio *	audio,
-							 gint16 *	dest,
-							 guint		start, 
-							 guint		n_samples);
+  guint			(* iterate)	  		(SwfdecAudio *		audio,
+							 guint			n_samples);
+  guint			(* render)			(SwfdecAudio *		audio,
+							 gint16 *		dest,
+							 guint			start, 
+							 guint			n_samples);
 };
 
-void			swfdec_audio_add		(SwfdecAudio *	audio,
-							 SwfdecPlayer *	player);
-void			swfdec_audio_remove		(SwfdecAudio *	audio);
+void			swfdec_audio_add		(SwfdecAudio *		audio,
+							 SwfdecPlayer *		player);
+void			swfdec_audio_remove		(SwfdecAudio *		audio);
 
-guint			swfdec_audio_iterate		(SwfdecAudio *	audio,
-							 guint		n_samples);
+guint			swfdec_audio_iterate		(SwfdecAudio *		audio,
+							 guint			n_samples);
 
 SwfdecAudioFormat	swfdec_audio_format_parse	(SwfdecBits *	  	bits);
 SwfdecAudioFormat	swfdec_audio_format_new		(guint			rate,
commit dd4a226fd0840ecc67123442c695873721b32df8
Author: Benjamin Otte <otte at gnome.org>
Date:   Tue Jun 10 10:17:49 2008 +0200

    add test for recent matrix fix

diff --git a/test/image/Makefile.am b/test/image/Makefile.am
index b5b42af..7b47b06 100644
--- a/test/image/Makefile.am
+++ b/test/image/Makefile.am
@@ -378,6 +378,15 @@ EXTRA_DIST = \
 	replace-shape-shape-6.swf.png \
 	replace-shape-shape-7.swf \
 	replace-shape-shape-7.swf.png \
+	setMask-matrices-5.swf \
+	setMask-matrices-5.swf.png \
+	setMask-matrices-6.swf \
+	setMask-matrices-6.swf.png \
+	setMask-matrices-7.swf \
+	setMask-matrices-7.swf.png \
+	setMask-matrices-8.swf \
+	setMask-matrices-8.swf.png \
+	setMask-matrices.as \
 	swfdec.jpg \
 	text-field-align-5.swf \
 	text-field-align-5.swf.png \
diff --git a/test/image/setMask-matrices-5.swf b/test/image/setMask-matrices-5.swf
new file mode 100644
index 0000000..137368a
Binary files /dev/null and b/test/image/setMask-matrices-5.swf differ
diff --git a/test/image/setMask-matrices-5.swf.png b/test/image/setMask-matrices-5.swf.png
new file mode 100644
index 0000000..49ce875
Binary files /dev/null and b/test/image/setMask-matrices-5.swf.png differ
diff --git a/test/image/setMask-matrices-6.swf b/test/image/setMask-matrices-6.swf
new file mode 100644
index 0000000..b23373f
Binary files /dev/null and b/test/image/setMask-matrices-6.swf differ
diff --git a/test/image/setMask-matrices-6.swf.png b/test/image/setMask-matrices-6.swf.png
new file mode 100644
index 0000000..d743f32
Binary files /dev/null and b/test/image/setMask-matrices-6.swf.png differ
diff --git a/test/image/setMask-matrices-7.swf b/test/image/setMask-matrices-7.swf
new file mode 100644
index 0000000..8bfd359
Binary files /dev/null and b/test/image/setMask-matrices-7.swf differ
diff --git a/test/image/setMask-matrices-7.swf.png b/test/image/setMask-matrices-7.swf.png
new file mode 100644
index 0000000..9032935
Binary files /dev/null and b/test/image/setMask-matrices-7.swf.png differ
diff --git a/test/image/setMask-matrices-8.swf b/test/image/setMask-matrices-8.swf
new file mode 100644
index 0000000..6fa874d
Binary files /dev/null and b/test/image/setMask-matrices-8.swf differ
diff --git a/test/image/setMask-matrices-8.swf.png b/test/image/setMask-matrices-8.swf.png
new file mode 100644
index 0000000..c212a34
Binary files /dev/null and b/test/image/setMask-matrices-8.swf.png differ
diff --git a/test/image/setMask-matrices.as b/test/image/setMask-matrices.as
new file mode 100644
index 0000000..3823175
--- /dev/null
+++ b/test/image/setMask-matrices.as
@@ -0,0 +1,26 @@
+// makeswf -v 7 -s 200x150 -r 1 -o setMask-matrices.swf setMask-matrices.as
+
+rectangle = function (mc, color, x, y, w, h)
+{
+  mc.beginFill (color);
+  mc.moveTo (x + w, y);
+  mc.lineTo (x + w, y + h);
+  mc.lineTo (x, y + h);
+  mc.lineTo (x, y);
+  mc.lineTo (x + w, y);
+  mc.endFill ();
+};
+
+createEmptyMovieClip ("a", 0);
+a.createEmptyMovieClip ("a", 0);
+a._x = 10;
+a.a._x = 10;
+rectangle (a.a, 0xFF, 0, 0, 50, 100);
+
+createEmptyMovieClip ("b", 1);
+b.createEmptyMovieClip ("b", 1);
+b._y = 10;
+b.b._y = 10;
+rectangle (b.b, 0xFF00, 0, 0, 100, 50);
+
+a.a.setMask (b.b);
commit deb8ef5f053d85c7447361c5d1ed5addfb31d027
Author: Benjamin Otte <otte at gnome.org>
Date:   Mon Jun 9 23:43:48 2008 +0200

    only remove weak references to objects that aren't dead yet

diff --git a/swfdec/swfdec_renderer.c b/swfdec/swfdec_renderer.c
index eb41e5c..cd8c071 100644
--- a/swfdec/swfdec_renderer.c
+++ b/swfdec/swfdec_renderer.c
@@ -106,7 +106,8 @@ swfdec_renderer_dispose (GObject *object)
     g_hash_table_iter_init (&iter, priv->cache_lookup);
     while (g_hash_table_iter_next (&iter, NULL, &list)) {
       for (walk = list; walk; walk = walk->next) {
-	g_object_remove_weak_pointer (walk->data, &walk->data);
+	if (walk->data)
+	  g_object_remove_weak_pointer (walk->data, &walk->data);
       }
       g_list_free (list);
     }


More information about the Swfdec-commits mailing list